:root{--ink:#0d1728;--ink-soft:#15253d;--ink-muted:#93a4be;--blue:#6685ff;--blue-strong:#506fe6;--blue-soft:#edf1ff;--mint:#62d7b0;--mint-strong:#2fb789;--mint-soft:#e8f8f2;--paper:#f7f9fc;--surface:#fff;--line:#dce4ef;--line-strong:#c5d1e1;--text:#172033;--muted:#6f7b8f;--danger:#c7525a;--danger-soft:#fff0f1;--warning:#a86c20;--warning-soft:#fff6e7;--focus:#6685ff52;--radius:10px;--radius-lg:16px;--shadow:0 18px 50px #0d17281f;--mono:"Cascadia Mono", "SFMono-Regular", Consolas, monospace}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased;font-family:Segoe UI Variable,Microsoft YaHei UI,PingFang SC,system-ui,sans-serif;font-size:14px;line-height:1.6}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:var(--blue-strong);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{box-shadow:0 0 #62d7b03d}50%{box-shadow:0 0 0 8px #62d7b000}}@keyframes enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.app{flex-direction:column;min-height:100vh;display:flex}.header{background:var(--ink);color:#fff}.header-inner{justify-content:space-between;align-items:center;gap:20px;width:min(1240px,100%);margin:0 auto;padding:19px 28px;display:flex}.brand{color:#fff;align-items:center;gap:12px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand-mark{width:34px;height:34px;color:var(--ink);background:var(--mint);border:1px solid #ffffff47;border-radius:9px;place-items:center;font-family:Bahnschrift,Segoe UI Variable,sans-serif;font-size:17px;font-weight:800;display:grid}.brand>span:last-child{gap:1px;display:grid}.brand-name{letter-spacing:.02em;font-family:Bahnschrift,Segoe UI Variable,sans-serif;font-size:17px;font-weight:800}.brand-sub{color:var(--ink-muted);font-size:12px}.header-right{align-items:center;display:flex}.header-badge{color:#d6e1f4;border:1px solid #ffffff29;border-radius:999px;align-items:center;gap:8px;padding:7px 11px;font-size:12px;display:inline-flex}.header-badge i{background:var(--mint);border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #62d7b024}.main{flex:1;width:min(1240px,100%);margin:0 auto;padding:42px 28px 56px}.workspace-layout{grid-template-columns:minmax(260px,.76fr) minmax(0,1.35fr);align-items:start;gap:24px;display:grid}.hero-panel{border-radius:var(--radius-lg);color:#fff;background:linear-gradient(160deg, var(--ink-soft), var(--ink) 72%);box-shadow:var(--shadow);padding:30px;position:sticky;top:22px;overflow:hidden}.hero-panel:after{content:"";border:1px solid #62d7b02e;border-radius:50%;width:180px;height:180px;position:absolute;top:-74px;right:-74px;box-shadow:0 0 0 26px #62d7b009,0 0 0 52px #62d7b006}.hero-kicker,.eyebrow{color:var(--mint);letter-spacing:.16em;font-size:10px;font-weight:800}.hero-panel h1{z-index:1;letter-spacing:-.03em;max-width:360px;margin:20px 0 14px;font-family:Bahnschrift,Segoe UI Variable,sans-serif;font-size:clamp(28px,3vw,42px);line-height:1.12;position:relative}.hero-copy{z-index:1;color:#b8c7dc;max-width:370px;margin:0;font-size:14px;position:relative}.assurance-list{z-index:1;border-top:1px solid #ffffff1f;gap:14px;margin:30px 0;padding-top:20px;display:grid;position:relative}.assurance-list>div{align-items:flex-start;gap:12px;display:flex}.assurance-icon{color:var(--mint);font-family:var(--mono);flex:0 0 26px;padding-top:2px;font-size:11px}.assurance-list strong,.assurance-list small{display:block}.assurance-list strong{color:#f3f7ff;font-size:13px}.assurance-list small{color:var(--ink-muted);margin-top:2px;font-size:12px}.timeline-card{z-index:1;background:#060e1b4d;border:1px solid #ffffff21;border-radius:12px;padding:18px;position:relative}.timeline-card-head{border-bottom:1px solid #ffffff1a;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:14px;display:flex}.timeline-card-head span{font-weight:800}.timeline-card-head small{color:var(--ink-muted);font-size:11px}.timeline-persistent{margin-top:16px}.timeline-persistent .timeline-step{padding-bottom:15px}.timeline-persistent .timeline-step:last-child{padding-bottom:0}.timeline-persistent .step-line strong{color:#d5dfef}.timeline-persistent .step-line span,.timeline-persistent .step-body small{color:var(--ink-muted)}.timeline-persistent .timeline-step:before{background:#ffffff29}.timeline-persistent .timeline-step.is-succeeded:before{background:var(--mint-strong)}.timeline-persistent .timeline-step.is-running .dot{border-color:var(--mint);color:var(--mint);background:#62d7b01f}.timeline-persistent .timeline-step.is-running .step-line strong{color:#fff}.timeline-persistent .timeline-step.is-succeeded .dot{border-color:var(--mint);background:var(--mint);color:var(--ink)}.timeline-persistent .timeline-step.is-succeeded .step-line strong{color:var(--mint)}.workspace-panel{min-width:0;animation:.3s ease-out enter}.tabs{border:1px solid var(--line);background:#ffffffbd;border-radius:12px;gap:6px;margin-bottom:14px;padding:5px;display:flex}.tabs button{min-height:42px;color:var(--muted);background:0 0;border:0;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:9px;padding:8px 12px;font-weight:700;transition:all .18s;display:flex}.tabs button:hover{color:var(--text);background:#fff}.tabs button.active{color:var(--ink);background:#fff;box-shadow:0 4px 14px #0d172814}.tab-index{color:var(--blue);font-family:var(--mono);font-size:10px}.panel{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);padding:30px;box-shadow:0 10px 30px #0d17280f}.panel-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:26px;display:flex}.panel-title h2,.panel-title h1{color:var(--ink);letter-spacing:-.025em;margin:8px 0 0;font-family:Bahnschrift,Segoe UI Variable,sans-serif;font-size:25px;line-height:1.2}.panel-title p{color:var(--muted);margin:8px 0 0;font-size:13px}.panel-state{color:var(--blue-strong);background:var(--blue-soft);font-family:var(--mono);border-radius:999px;flex:none;padding:5px 10px;font-size:11px;font-weight:700}.panel-head-actions{align-items:center;gap:12px;display:flex}.counter{color:var(--blue-strong);background:var(--blue-soft);font-family:var(--mono);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}form{gap:17px;display:grid}.field{gap:7px;display:grid}.field-label{color:var(--ink);font-size:13px;font-weight:800}.field-label em{float:right;color:var(--blue-strong);font-style:normal;font-family:var(--mono);font-size:11px}.field-hint{color:var(--muted);font-size:12px}.field-hint.error{color:var(--danger)}input,textarea{border:1px solid var(--line-strong);background:#fff;border-radius:9px;width:100%;padding:12px 13px;transition:border-color .16s,box-shadow .16s,background .16s}input{font-family:var(--mono);letter-spacing:.03em}textarea{resize:none;min-height:150px;font-family:var(--mono);font-size:12px;line-height:1.65}input:hover,textarea:hover{border-color:#aabbd0}input:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--focus);outline:none}input.is-invalid,textarea.is-invalid{border-color:var(--danger);box-shadow:0 0 0 4px #c7525a1f}.input-wrap{position:relative}.input-wrap input{padding-right:40px}.clear{width:28px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:50%;font-size:18px;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.clear:hover{color:var(--ink);background:var(--paper)}.btn{border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 16px;font-weight:800;transition:background .16s,border-color .16s,transform 80ms,box-shadow .16s;display:inline-flex}.btn:active:not(:disabled){transform:translateY(1px)}.btn.is-loading:before{content:"";border:2px solid #fff6;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.btn-primary,.btn-commit{color:#fff;width:100%}.btn-primary{background:var(--blue-strong);box-shadow:0 7px 14px #506fe62e}.btn-primary:hover:not(:disabled){background:#405ec9;box-shadow:0 9px 18px #506fe640}.btn-commit{background:var(--mint-strong);box-shadow:0 7px 14px #2fb7892e}.btn-commit:hover:not(:disabled){background:#249b73}.btn-secondary{border-color:var(--line-strong);color:var(--text);background:#fff}.btn-secondary:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft)}.guide{border:1px solid #c9d5fb;border-left:3px solid var(--blue);background:var(--blue-soft);border-radius:10px;margin-bottom:20px;padding:16px 18px}.guide strong{color:var(--ink);font-size:13px}.guide ol{color:var(--muted);margin:8px 0 0;padding-left:18px;font-size:12px}.guide li+li{margin-top:3px}.plan{border:1px solid var(--line);background:var(--paper);border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:10px;margin:20px 0;padding:16px 18px;display:flex}.plan span{color:var(--muted);font-size:12px}.plan strong{color:var(--ink);font-size:18px}.plan small{color:var(--blue-strong);font-family:var(--mono);margin-left:auto;font-size:11px;font-weight:700}.account{border:1px solid var(--line);background:var(--line);border-radius:10px;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin:20px 0 0;display:grid;overflow:hidden}.account>div{background:#fbfcfe;padding:13px 15px}.account dt{color:var(--muted);font-size:11px}.account dd{overflow-wrap:anywhere;color:var(--ink);margin:4px 0 0;font-size:13px;font-weight:700}.account.blocked>div{background:var(--warning-soft)}.account.blocked dd{color:var(--warning)}.badge,.pill{border-radius:999px;align-items:center;padding:3px 9px;font-size:11px;font-weight:800;display:inline-flex}.badge-ok,.pill-unused{color:#18765b;background:var(--mint-soft)}.badge-no{color:var(--muted);background:#edf0f4}.blocked-actions{margin-top:16px}.blocked-actions .btn{width:100%}.confirm-box{background:linear-gradient(135deg,#f2fcf8,#fff);border:1px solid #b9ead9;border-radius:12px;gap:18px;margin-top:20px;padding:18px;display:grid}.confirm-box div{gap:3px;display:grid}.confirm-box span,.confirm-box small{color:var(--muted);font-size:12px}.confirm-box strong{color:var(--ink);font-size:19px}.btn-commit{margin-top:0}.order{margin-top:22px}.order-success,.order-failed{border-radius:10px;align-items:center;gap:10px;margin-bottom:17px;padding:13px 15px;font-size:13px;font-weight:800;display:flex}.order-success{color:#18765b;background:var(--mint-soft);border:1px solid #b9ead9}.order-failed{color:var(--danger);background:var(--danger-soft);border:1px solid #f1c5c9}.check{color:#fff;background:currentColor;border-radius:50%;flex:none;place-items:center;width:24px;height:24px;font-size:13px;display:grid}.order-success .check{color:var(--mint-strong)}.order-failed .check{color:var(--danger)}.order-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.order-head h3{color:var(--ink);margin:0;font-size:18px}.reconnect{color:var(--danger);margin:12px 0 0;font-size:12px}.batch-list{gap:13px;display:grid}.batch-cdk-entry{gap:17px;display:grid}.batch-cdk-entry textarea{min-height:170px}.batch-item{border:1px solid var(--line);background:#fff;border-radius:12px;padding:17px;box-shadow:0 5px 16px #0d17280a}.batch-item-actions{margin-top:11px;display:flex}.batch-head{align-items:center;gap:11px;margin-bottom:14px;display:flex}.num{color:var(--blue);font-family:var(--mono);font-size:12px;font-weight:800}.batch-title{flex:1;gap:2px;min-width:0;display:grid}.batch-title strong{text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:14px;overflow:hidden}.batch-title small{color:var(--muted);font-size:12px}.remove{width:30px;height:30px;color:var(--muted);background:0 0;border:0;border-radius:50%;font-size:18px}.remove:hover:not(:disabled){color:var(--danger);background:var(--danger-soft)}.batch-fields{grid-template-columns:1fr 1.4fr;gap:12px;display:grid}.batch-fields textarea{min-height:100px}.entry-error{border-left:3px solid var(--danger);color:var(--danger);background:var(--danger-soft);border-radius:0 7px 7px 0;margin:12px 0 0;padding:9px 11px;font-size:12px}.mini-timeline{border-top:1px solid var(--line);gap:8px;margin-top:15px;padding-top:13px;display:grid}.mini-timeline .timeline-step{grid-template-columns:20px 1fr auto;align-items:center;gap:8px;padding-bottom:0}.mini-timeline .timeline-step:before{display:none}.mini-timeline .dot{width:20px;height:20px;font-size:10px}.mini-timeline .mini-label{color:var(--text);font-size:12px}.mini-timeline small{color:var(--muted);font-size:11px}.add{border:1px dashed var(--line-strong);width:100%;color:var(--blue-strong);background:0 0;border-radius:9px;margin-top:13px;padding:12px;font-weight:800}.add:hover:not(:disabled){border-color:var(--blue);background:var(--blue-soft)}.batch-actions{grid-template-columns:1fr 1fr;gap:11px;margin-top:18px;display:grid}.timeline{margin:20px 0 0;padding:0;list-style:none}.timeline-step{grid-template-columns:24px 1fr;gap:12px;padding-bottom:18px;display:grid;position:relative}.timeline-step:last-child{padding-bottom:0}.timeline-step:before{content:"";background:var(--line);width:2px;position:absolute;top:26px;bottom:0;left:11px}.timeline-step:last-child:before{display:none}.timeline-step.is-succeeded:before{background:var(--mint-strong)}.timeline-step.is-failed:before{background:var(--danger)}.dot{z-index:1;border:1px solid var(--line-strong);width:24px;height:24px;color:var(--muted);background:#fff;border-radius:50%;place-items:center;font-size:12px;font-weight:800;display:grid;position:relative}.step-body{min-width:0}.step-line{justify-content:space-between;gap:12px;padding-top:2px;display:flex}.step-line strong{color:var(--muted);font-size:13px}.step-line span{color:var(--muted);font-size:12px}.step-body small{color:var(--muted);margin-top:2px;font-size:12px;display:block}.timeline-step.is-running .dot{border-color:var(--blue);color:var(--blue);background:var(--blue-soft);animation:1.6s ease-out infinite pulse}.timeline-step.is-running .step-line strong{color:var(--blue-strong)}.timeline-step.is-current .dot{border-color:var(--blue);color:var(--blue);background:var(--blue-soft)}.timeline-step.is-current .step-line strong{color:var(--blue-strong)}.timeline-step.is-succeeded .dot{border-color:var(--mint-strong);color:#fff;background:var(--mint-strong)}.timeline-step.is-succeeded .step-line strong{color:var(--mint-strong)}.timeline-step.is-failed .dot{border-color:var(--danger);color:#fff;background:var(--danger)}.timeline-step.is-failed .step-line strong{color:var(--danger)}.timeline-step.is-skipped .dot{border-color:var(--warning);color:#fff;background:var(--warning)}.timeline-step.is-skipped .step-line strong{color:var(--warning)}.notice{z-index:50;color:#18765b;background:var(--mint-soft);width:max-content;max-width:min(90vw,560px);box-shadow:var(--shadow);border:1px solid #b9ead9;border-radius:10px;margin:0;padding:12px 16px;font-size:13px;animation:.25s ease-out enter;position:fixed;top:18px;left:50%;transform:translate(-50%)}.notice-error{color:var(--danger);background:var(--danger-soft);border-color:#f1c5c9}.order-progress{border:1px solid var(--line-strong);color:var(--blue-strong);background:var(--blue-soft);overflow-wrap:anywhere;border-radius:9px;margin:0 0 16px;padding:12px 14px;font-size:13px}.batch-item .order-progress{margin:14px 0}.result-card{border:1px solid var(--line);background:var(--paper);border-radius:12px;margin-top:20px;padding:18px}.result-card-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.result-card-head h3{color:var(--ink);margin:8px 0 0;font-size:17px}.pill-consumed{color:var(--blue-strong);background:var(--blue-soft)}.pill-processing{color:var(--warning);background:var(--warning-soft)}.pill-disabled,.pill-deleted{color:var(--danger);background:var(--danger-soft)}.kv{border-top:1px solid var(--line);margin:15px 0 0;padding:0}.kv>div{border-bottom:1px solid var(--line);grid-template-columns:90px 1fr;gap:12px;padding:11px 0;display:grid}.kv dt{color:var(--muted);font-size:12px}.kv dd{overflow-wrap:anywhere;color:var(--ink);margin:0;font-size:13px;font-weight:700}.footer{border-top:1px solid var(--line);color:var(--muted);text-align:center;background:#fff;padding:17px 28px;font-size:12px}@media (width<=900px){.workspace-layout{grid-template-columns:1fr}.hero-panel{position:relative;top:auto}.hero-panel h1{max-width:540px}.assurance-list{grid-template-columns:repeat(3,1fr)}}@media (width<=640px){.header-inner,.main{padding-left:16px;padding-right:16px}.main{padding-top:24px}.hero-panel{padding:23px 20px}.hero-panel h1{font-size:31px}.assurance-list{grid-template-columns:1fr;gap:11px;margin:24px 0;padding-top:16px}.timeline-card{padding:15px}.panel{padding:21px 17px}.panel-head{margin-bottom:21px}.panel-title h2{font-size:22px}.header-badge{display:none}.tabs button{padding:8px 5px;font-size:12px}.tab-index{display:none}.account,.batch-fields,.batch-actions{grid-template-columns:1fr}.batch-actions .btn-commit{order:-1}.footer{padding:15px 16px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (forced-colors:active){.hero-panel{forced-color-adjust:none;color:canvas;background:canvastext}.header-badge,.timeline-card{border-color:canvas}.dot,input,textarea,.tabs,.panel,.batch-item{border-color:canvastext}}@media (width>=901px){.header-inner{padding-top:12px;padding-bottom:12px}.main{flex:auto;align-self:center;width:min(1240px,100%);padding-top:22px;padding-bottom:20px;display:block}.workspace-layout{width:100%;min-height:calc(100vh - 132px);display:grid}.main.workspace-layout{width:min(1240px,100%)}.hero-panel{align-self:start;padding:22px 24px;top:22px}.hero-panel h1{margin-top:14px;margin-bottom:11px;font-size:32px}.hero-copy{font-size:13px}.assurance-list{gap:9px;margin-top:18px;margin-bottom:18px;padding-top:14px}.timeline-card{padding:14px}.timeline-card-head{padding-bottom:10px}.timeline-persistent{margin-top:12px}.timeline-persistent .timeline-step{padding-bottom:10px}.timeline-step{grid-template-columns:22px 1fr;gap:10px;padding-bottom:12px}.dot{width:22px;height:22px}.timeline-step:before{top:24px;left:10px}.workspace-panel{flex-direction:column;display:flex}.workspace-tabs{flex:none}.workspace-panel>.panel{flex:1;padding:24px}.footer{padding-top:10px;padding-bottom:10px}}
