:root{font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,sans-serif;color:#203044;background:#f4f6f9;font-synthesis:none;--blue:#2365e8;--muted:#758295;--line:#e8edf3;--radius:18px}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button,.button{cursor:pointer;border:0;transition:background .15s,transform .15s;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none}button:disabled{opacity:.5;cursor:wait}button:hover,.button:hover{filter:brightness(.97)}button:focus-visible,a:focus-visible{outline:3px solid #9fbfff;outline-offset:3px}input,textarea{border:1px solid #dbe2eb;border-radius:10px;padding:12px 14px;color:#203044;background:white;min-width:0}input:focus,textarea:focus{outline:2px solid #acc7ff;border-color:var(--blue)}label{display:block;font-weight:600;font-size:13px;margin:20px 0 9px}h1,h2,h3,p{margin-top:0}h2{font-size:20px;margin-bottom:7px}p{line-height:1.65}.muted{color:var(--muted);font-size:13px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#8d9bb1}.brand{display:flex;align-items:center;gap:11px;font-size:20px;font-weight:750;text-decoration:none;color:inherit;white-space:nowrap}.brand-icon{height:34px;width:34px;background:var(--blue);color:white;border-radius:10px;display:grid;place-items:center;font-size:23px;font-style:italic;box-shadow:0 5px 12px #2365e82b}.tag{font-size:9px;letter-spacing:1px;color:#8a9bb3;border:1px solid #d7e0ec;border-radius:5px;padding:4px 6px;margin-left:4px}.primary,.secondary,.quiet,.ghost,.button{padding:11px 17px;border-radius:9px;font-size:13px;font-weight:600}.primary{background:var(--blue);color:white;box-shadow:0 4px 10px #2365e81c}.secondary{background:white;border:1px solid #dbe3ed;color:#405269}.quiet{background:transparent;color:#718098;padding:8px 11px}.ghost{background:#ffffff24;color:inherit;padding:6px 10px;font-size:11px}.full{width:100%;justify-content:space-between}.error{color:#b33c47;font-size:13px;min-height:20px;white-space:pre-wrap}.warning{background:#fff9eb;border:1px solid #f7e8bb;border-radius:10px;padding:12px 15px;color:#8a6725;font-size:12px}.login-shell{display:grid;grid-template-columns:1fr 1fr;min-height:100vh}.login-story{background:#eaf0fb;padding:42px 7vw 28px;display:flex;flex-direction:column;background-image:radial-gradient(ellipse at 10% 80%,#dceff1,transparent 65%)}.story-copy{margin:auto 0;padding:65px 0}.story-copy h1{font-size:clamp(32px,3.8vw,58px);font-weight:750;line-height:1.35;letter-spacing:-2px;margin:22px 0}.story-copy>p{color:#7d8fa8;font-size:15px}.route-illustration{display:flex;align-items:center;margin:40px 0;color:#8292ac;font-size:11px}.route-illustration i{width:40px;border-top:2px dashed #bdcce4}.route-hub{height:52px;width:52px;display:grid;place-items:center;border-radius:16px;background:white;color:var(--blue);box-shadow:0 8px 25px #9fb7dc33;font-size:25px;font-style:italic}.route-start,.route-end{padding:10px;background:#ffffff70;border:1px solid #dce5f2;border-radius:8px}.story-features{display:flex;gap:18px;flex-wrap:wrap;font-size:11px;color:#68809f}.fine-print{font-size:10px;color:#93a3ba}.login-panel{display:grid;place-items:center;background:#fff;padding:35px}.login-card{width:100%;max-width:355px}.login-card h2{font-size:30px;margin:14px 0 9px}.login-card>input{width:100%}.login-card>.primary{margin-top:27px;padding:14px 18px}.privacy-note{border-top:1px solid var(--line);display:flex;gap:12px;margin-top:22px;padding-top:20px;color:#9ba7b7;font-size:11px}.privacy-note>span{font-size:24px}.privacy-note p{margin:0}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:white;border-right:1px solid var(--line);padding:30px 22px;display:flex;flex-direction:column}.sidebar .brand{font-size:18px}.sidebar-caption{font-size:10px;color:#a5afbe;letter-spacing:1px;margin:45px 12px 13px}.nav{display:flex;justify-content:flex-start;gap:15px;width:100%;padding:13px 15px;margin:5px 0;background:transparent;color:#8591a3;border-radius:10px;font-size:17px}.nav span{font-size:13px}.nav.active{background:#edf3ff;color:var(--blue);font-weight:700}.sidebar-bottom{margin-top:auto;font-size:11px;color:#6e7e94;padding-left:12px}.sidebar-bottom p{font-size:9px;color:#a8b2c0;margin:7px 0}.private-dot{display:inline-block;width:6px;height:6px;background:#4bb9a8;border-radius:50%;margin-right:8px}.workspace{margin-left:224px;max-width:1700px;padding:31px 42px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px}.topbar h1{font-size:26px;margin:9px 0 0}.top-actions{display:flex;align-items:center;gap:9px}.private-label{font-size:11px;color:#6f9b8f;background:#e6f4ef;padding:7px 11px;border-radius:20px}.scope-note{font-size:11px;color:#8593a7;margin:25px 0 19px}.scope-note strong{color:#536c8c}.overview{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;margin-bottom:28px}.usage-card{padding:22px 24px;border-radius:var(--radius);background:linear-gradient(115deg,#2866d6,#3e80f1);color:white;box-shadow:0 9px 23px #2365e819}.card-heading{display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1px;color:#d5e4ff}.traffic-value{font-size:25px;font-weight:650;margin:13px 0}.traffic-value small{font-size:10px;font-weight:400;color:#c8dfff;margin-left:8px;white-space:nowrap}.meter{height:4px;border-radius:5px;background:#ffffff26;overflow:hidden}.meter>div{height:100%;width:0;background:#b6e0ff}.usage-card p{font-size:10px;color:#d1e1ff;margin:10px 0 0;max-width:100%}.metric-card{padding:24px;border:1px solid var(--line);background:white;border-radius:var(--radius);display:flex;flex-direction:column}.metric-card strong{font-size:32px;margin:16px 0 9px;font-weight:650}.metric-card p{font-size:10px;color:#8e9caf;margin:0}.metric-card strong.version-label{font-size:20px;padding-top:9px}.panel{background:white;border:1px solid var(--line);border-radius:var(--radius);padding:25px 26px;min-height:270px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading h2{font-size:17px;display:flex;gap:9px;align-items:center}.section-heading p{font-size:11px;color:#91a0b3;margin-bottom:0}.count-badge{background:#eef3fa;color:#7a8faa;font-size:10px;padding:3px 7px;border-radius:6px}.actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:23px 0 8px;border-bottom:1px solid var(--line);padding-bottom:18px}.toolbar input{font-size:12px;width:285px;padding:10px 13px;background:#f9fbfd}.toolbar>span{font-size:10px}.node-row{display:flex;align-items:center;gap:15px;padding:20px 0;border-bottom:1px solid #f0f3f7}.node-row:last-child{border-bottom:0}.node-icon{width:40px;height:40px;border-radius:12px;background:#edf3ff;color:#5c84c4;display:grid;place-items:center;font-size:12px;font-weight:700;flex-shrink:0}.node-info{min-width:0;flex:1}.node-info h3{font-size:13px;font-weight:650;margin:0 0 6px;overflow-wrap:anywhere}.node-info p{font-size:10px;color:#99a6b7;margin:0;overflow-wrap:anywhere}.status-pill{padding:4px 8px;color:#529b85;background:#edf7f2;font-size:9px;border-radius:6px;white-space:nowrap}.status-pill.off{color:#999;background:#f0f2f5}.node-controls{display:flex;align-items:center;gap:5px}.node-controls button{font-size:11px;padding:7px 10px;border-radius:7px;background:transparent;color:#8a99ac}.node-controls .danger{color:#bb7b7e}.node-controls .toggle{color:#4c7ed1;background:#eff4fc}.empty{text-align:center;padding:45px 15px;color:#9aa7b9}.empty>span{font-size:40px;color:#a4bce2}.empty h3{font-size:15px;margin:14px 0 8px;color:#5b6c84}.empty p{font-size:12px}.footer{font-size:9px;color:#aab4c3;text-align:center;margin:24px 0 0}.group-card{border:1px solid var(--line);border-radius:12px;margin-top:20px;padding:20px}.group-card h3{font-size:14px;margin:0 0 5px}.group-card>p{font-size:10px;color:#8f9db1}.group-members{list-style:none;margin:12px 0;padding:0}.group-members li{display:flex;align-items:center;gap:8px;padding:9px 10px;margin:5px 0;border-radius:8px;background:#f7f9fc;font-size:12px}.group-members li span{flex:1;overflow-wrap:anywhere}.group-members button{font-size:12px;background:white;border:1px solid #e3e9f1;border-radius:5px;width:28px;height:26px;color:#6882a3}.history-row{display:flex;align-items:center;gap:20px;border-bottom:1px solid var(--line);padding:19px 0}.history-row>div{flex:1}.history-row strong{font-size:12px}.history-row p{font-size:10px;color:#9ba6b6;margin:4px 0}.subscription-box{max-width:800px;margin:25px 0}.subscription-box input{width:100%;font-size:13px;background:#f9fbfe}.subscription-box p{font-size:12px;color:#8998ac}.subscription-box code{display:block;overflow-wrap:anywhere;font-size:11px;color:#6981a0;background:#f6f8fc;padding:15px;border-radius:8px;margin:18px 0}.subscription-box .actions{margin-top:22px}dialog{border:1px solid #dce4ef;box-shadow:0 25px 90px #172c4a35;border-radius:18px;width:min(720px,calc(100% - 30px));padding:26px;color:#24384f;max-height:90vh}dialog::backdrop{background:#132c4a60;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.dialog-heading h2{margin:8px 0 10px}.icon-button{background:#f2f5f9;border-radius:8px;color:#8697ae;font-size:23px;width:32px;height:32px}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}textarea{width:100%;min-height:300px;font:12px/1.7 Consolas,monospace;resize:vertical;tab-size:2;white-space:pre}pre{background:#f6f8fb;padding:16px;border-radius:10px;font:11px/1.7 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;max-height:50vh;overflow:auto}summary{cursor:pointer;font-size:12px;color:#6a82a2;padding:15px 0}#confirm-warnings{font-size:12px;line-height:1.9;padding-left:22px;color:#886b34}fieldset{border:1px solid var(--line);border-radius:10px;margin-top:15px;padding:12px}legend{font-size:12px}#group-checks label{display:inline-flex;gap:8px;margin:5px 15px 5px 0;font-size:12px;font-weight:400}#group-checks input{width:auto}input[type=file]{font-size:11px;padding:8px;width:100%}.notice{position:fixed;top:18px;left:50%;transform:translateX(-50%);z-index:20;background:#1f3c5a;color:white;box-shadow:0 5px 30px #142b4a33;font-size:12px;border-radius:10px;padding:12px 20px;max-width:90%;white-space:pre-wrap}.notice.bad{background:#9c4351}[hidden]{display:none!important}@media(min-width:1500px){.workspace{padding-left:60px;padding-right:60px}.usage-card{min-height:175px}}@media(max-width:1000px){.sidebar{width:185px;padding:25px 16px}.workspace{margin-left:185px;padding:25px}.overview{grid-template-columns:1.6fr 1fr}.overview .metric-card:last-child{display:none}.top-actions{gap:0}.private-label{display:none}.toolbar>span{display:none}}@media(max-width:650px){.login-shell{display:block}.login-story{padding:22px 25px;min-height:auto}.story-copy{padding:30px 0 0}.story-copy h1{font-size:32px;margin:12px 0}.story-copy>p,.route-illustration,.story-features,.fine-print{display:none}.login-story .eyebrow{font-size:8px}.login-panel{padding:32px 25px 45px}.login-card{max-width:none}.login-card h2{font-size:25px}.sidebar{position:static;width:100%;border-right:0;padding:17px 19px 10px;border-bottom:1px solid var(--line)}.sidebar .brand{font-size:17px}.sidebar .brand-icon{width:29px;height:29px;font-size:20px}.sidebar-caption,.sidebar-bottom{display:none}.sidebar nav{display:flex;gap:2px;margin-top:14px}.nav{width:auto;flex:1;gap:5px;justify-content:center;padding:9px 4px;font-size:13px}.nav span{font-size:10px}.workspace{margin-left:0;padding:21px 16px}.topbar h1{font-size:22px;margin-top:7px}.topbar .eyebrow{font-size:8px;letter-spacing:1.4px}.quiet{font-size:10px;padding:7px}.scope-note{font-size:9px;margin:20px 0 14px}.overview{grid-template-columns:1fr 95px;gap:10px;margin-bottom:20px}.usage-card{padding:15px;border-radius:13px}.traffic-value{font-size:18px;margin:13px 0}.traffic-value small{font-size:8px;display:block;margin:5px 0}.card-heading{font-size:8px;letter-spacing:0}.ghost{font-size:9px;padding:4px 6px}.usage-card p{font-size:8px;line-height:1.6}.metric-card{padding:17px 12px;border-radius:13px}.metric-card .muted{font-size:10px}.metric-card strong{font-size:29px;margin-top:25px}.metric-card p{font-size:9px}.panel{padding:19px 14px;border-radius:13px}.section-heading{align-items:flex-start;gap:10px}.section-heading h2{font-size:15px}.section-heading p{font-size:9px;max-width:200px}.section-heading .actions{gap:6px;flex-wrap:nowrap}.section-heading button{font-size:10px;padding:9px 10px;white-space:nowrap}.toolbar{margin-top:17px;padding-bottom:12px}.toolbar input{width:100%;font-size:11px}.node-row{gap:10px;flex-wrap:wrap;padding:17px 0}.node-icon{width:33px;height:33px;border-radius:9px;font-size:10px}.node-info h3{font-size:12px}.node-info p{font-size:9px}.status-pill{font-size:8px;padding:3px 6px}.node-controls{margin-left:43px;width:calc(100% - 43px);justify-content:flex-end;margin-top:0}.node-controls button{font-size:10px;padding:5px 9px}.footer{font-size:8px;line-height:1.7;margin-top:18px}.group-card{padding:14px}.group-members li{font-size:11px;padding:8px}.history-row{gap:10px}.history-row strong{font-size:10px}.history-row button{font-size:10px;padding:8px}.subscription-box code{font-size:10px}.subscription-box .actions{gap:7px}.subscription-box .actions>*{font-size:11px;padding:10px 12px}dialog{padding:19px}textarea{min-height:280px}.dialog-heading h2{font-size:18px}}

/* Strategy membership controls stay usable with long names and on phones. */
select{font:inherit;border:1px solid #dbe2eb;border-radius:10px;padding:11px 12px;color:#203044;background:white;min-width:0;max-width:100%}select:focus{outline:2px solid #acc7ff;border-color:var(--blue)}.group-card h3{overflow-wrap:anywhere}.group-members li span{min-width:0}.group-members button{flex-shrink:0;min-height:32px}.group-members button.member-remove{width:auto;padding:0 8px;color:#a85460}.group-add{display:flex;gap:9px;align-items:center;margin:15px 0}.group-add select{flex:1;width:0;font-size:12px}.group-add button{flex-shrink:0}.group-card .actions{gap:8px}.group-card button:disabled{cursor:not-allowed}@media(max-width:650px){.group-add{align-items:stretch;flex-direction:column}.group-add select{width:100%;font-size:12px}.group-add button{align-self:flex-end}.group-members button{min-height:36px;min-width:32px}.group-card .actions button{font-size:11px;padding:10px 12px}.group-members li{gap:5px}#panel-groups .section-heading p{max-width:none}}

/* Credential links exist only in this temporary manual-copy dialog. */
#subscription-link-url{width:100%;font-size:12px;font-family:Consolas,monospace}#panel-subscription .subscription-box .warning{color:#8a6725}

/* Source identity is independent from provider quota and survives narrow screens. */
.renewal-link{display:inline-flex;margin-top:14px;color:#fff;font-size:11px;line-height:1.6;text-underline-offset:3px}.source-filters{display:flex;gap:7px;flex-wrap:wrap;margin:23px 0 14px}.filter-chip{padding:9px 14px;border:1px solid #e1e8f2;border-radius:9px;background:#fff;color:#6c7e98;font-size:12px;min-height:38px}.filter-chip.active{background:#edf3ff;border-color:#bfd3f8;color:#215ecb;font-weight:650}.source-toolbar{margin-top:0;align-items:flex-end}.source-toolbar>input{flex:1;width:0;max-width:450px;min-height:42px}.source-select-label{display:flex;align-items:center;gap:9px;margin:0;font-size:11px;color:#758295;min-width:0;max-width:55%}.source-select-label select{font-size:12px;max-width:360px;min-width:170px}.source-scope{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:12px 0}.source-scope p{margin:0;font-size:11px;overflow-wrap:anywhere}.source-scope button{flex-shrink:0;min-height:38px;font-size:11px}.secondary.danger{color:#ad4956;border-color:#e9cdd2;background:#fffafb}.filter-result{font-size:10px;color:#91a0b3;margin:13px 0 0}.node-sources{display:flex;align-items:baseline;gap:7px;margin-top:8px;min-width:0}.source-badge{display:inline-flex;font-size:10px;padding:3px 7px;border-radius:5px;white-space:nowrap;flex-shrink:0}.source-badge.self-hosted{color:#426aaf;background:#edf3ff}.source-badge.external{color:#8860ad;background:#f5effb}.source-name{font-size:10px;color:#7f8ca0;overflow-wrap:anywhere}.node-row .node-controls button{min-height:36px}.import-fields{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}.import-fields input,.import-fields select,#import-mode{width:100%}.import-fields label{font-size:12px}.import-hint{margin:17px 0 7px;font-size:11px;line-height:1.8}.confirm-scope{background:#f6f8fc;border:1px solid #e5eaf2;border-radius:12px;padding:15px 17px;margin:18px 0;font-size:12px;overflow-wrap:anywhere}.confirm-scope p{margin:9px 0}.confirm-scope ul{line-height:1.8;max-height:200px;overflow:auto;padding-left:22px}.confirm-scope .warning{margin-bottom:0}.import-fields>div{min-width:0}
@media(max-width:900px){.source-toolbar{flex-direction:column;align-items:stretch;gap:12px}.source-toolbar>input{width:100%;max-width:none}.source-select-label{max-width:none;justify-content:space-between}.source-select-label select{max-width:none;flex:1}.source-scope{align-items:flex-start}.source-scope button{max-width:160px}.import-fields{grid-template-columns:1fr 1fr}.import-fields>div:first-child{grid-column:1/-1}}
@media(max-width:650px){#panel-nodes .section-heading{flex-wrap:wrap;gap:15px}#panel-nodes .section-heading p{font-size:11px;max-width:none}#panel-nodes .section-heading .actions{width:100%}#panel-nodes .section-heading button{flex:1;font-size:12px;min-height:42px}.source-filters{margin-top:20px}.filter-chip{flex:1;min-height:42px;padding:9px 10px;font-size:12px}.source-toolbar input,.source-select-label select{font-size:12px;min-height:42px}.source-scope{flex-direction:column;gap:10px}.source-scope p{font-size:11px;line-height:1.8}.source-scope button{align-self:flex-end;max-width:none;min-height:42px}.source-name,.source-badge{font-size:10px}.node-row .node-controls button{min-height:40px;padding:7px 14px;font-size:12px}.node-info h3{font-size:13px}.node-info p{font-size:11px}.status-pill{font-size:10px}.renewal-link{font-size:10px;margin-top:11px}.import-fields{gap:10px}.import-fields input,.import-fields select{font-size:12px}.import-hint{font-size:11px}#import-mode{font-size:12px}#confirm-scope{padding:13px}.dialog-actions button{min-height:42px}#editor-dialog textarea{min-height:220px}}
