:root{font-family:Segoe UI,Microsoft YaHei,Arial,sans-serif;color:#17202b;background:#f5f6f8;font-synthesis:none;--bg:#f5f6f8;--surface:#fff;--surface-alt:#f8f9fb;--text:#17202b;--muted:#687384;--border:#dfe3e8;--border-strong:#cbd1d9;--accent:#0877a8;--accent-hover:#05658f;--accent-soft:#e7f4f9;--success:#18805a;--success-soft:#e8f6ef;--warning:#9a6612;--warning-soft:#fff5dd;--danger:#c63f3f;--danger-soft:#fff0f0;line-height:1.5;font-weight:400;color-scheme:light}*{box-sizing:border-box;letter-spacing:0}html,body,#app{margin:0;min-height:100%}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.58}a{color:inherit}.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:#161d25;color:#dce3ea;padding:18px 14px;display:flex;flex-direction:column;z-index:20}.brand-row{height:48px;display:flex;align-items:center;gap:11px;padding:0 8px 16px;border-bottom:1px solid #2b343e}.brand-row>div:nth-child(2){display:flex;flex-direction:column}.brand-row strong{font-size:16px;color:#fff}.brand-row span{font-size:12px;color:#8f9baa}.brand-mark{width:34px;height:34px;border-radius:6px;background:#0c83b6;color:#fff;display:grid;place-items:center;flex:0 0 auto}.sidebar nav{display:flex;flex-direction:column;gap:3px;padding-top:16px}.sidebar nav a{height:42px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:5px;text-decoration:none;color:#aeb8c4;font-size:14px;font-weight:500;transition:background .18s,color .18s}.sidebar nav a:hover{background:#202a34;color:#fff}.sidebar nav a.active{background:#263745;color:#fff;box-shadow:inset 3px 0 #20a0d2}.station-panel{margin-top:auto;padding:14px 10px 2px;border-top:1px solid #2b343e;display:flex;flex-direction:column}.station-panel strong{font-size:13px;margin-top:10px;color:#fff}.station-panel>span{font-size:12px;color:#8f9baa;overflow:hidden;text-overflow:ellipsis}.station-state{font-size:12px;color:#b8c1cb;display:flex;align-items:center;gap:7px}.status-dot,.connection-indicator i,.availability i{width:7px;height:7px;border-radius:50%;background:#6f7b88}.status-dot.online,.connection-indicator.online i,.availability.online i{background:#35bb7d;box-shadow:0 0 0 3px #35bb7d21}.text-button{border:0;background:transparent;color:#9fabb8;text-align:left;padding:12px 0 0;font-size:12px}.text-button:hover{color:#fff}.main-content{min-height:100vh;margin-left:248px;padding:28px 32px 56px}.page{max-width:1440px;margin:0 auto}.page.narrow{max-width:1060px}.page-header{display:flex;align-items:flex-start;gap:28px;min-height:86px;margin-bottom:22px}.page-header>div:first-child{margin-right:auto}.page-header h1{font-size:24px;line-height:1.25;margin:2px 0 6px}.page-header p{color:var(--muted);margin:0;font-size:14px}.eyebrow{text-transform:uppercase;font-size:11px!important;color:#7b8794!important;font-weight:700;letter-spacing:.08em!important}.header-stat{padding-left:24px;border-left:1px solid var(--border);display:flex;flex-direction:column}.header-stat strong{font-size:21px}.header-stat span{font-size:12px;color:var(--muted)}.toolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px;min-height:44px}.segmented{display:inline-flex;padding:3px;background:#e9edf1;border-radius:6px}.segmented button{height:34px;padding:0 13px;border:0;border-radius:4px;background:transparent;color:#5e6977;font-size:13px;font-weight:600}.segmented button.active{background:#fff;color:#18212b;box-shadow:0 1px 3px #141e281f}.segmented button span{margin-left:5px;color:#8993a0}.search-field{height:40px;display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:5px;padding:0 11px;margin-left:auto;color:#7a8695;min-width:280px}.search-field:focus-within{outline:2px solid rgb(8 119 168 / 18%);border-color:var(--accent)}.search-field input{border:0;outline:0;width:100%;min-width:0}.icon-button{width:40px;height:40px;border:1px solid var(--border);border-radius:5px;background:#fff;color:#53606e;display:inline-grid;place-items:center;transition:background .18s,border-color .18s,color .18s}.icon-button:hover{background:#f5f7f9;border-color:var(--border-strong);color:#1f2935}.icon-button.danger:hover{color:var(--danger);background:var(--danger-soft);border-color:#efcaca}.data-surface,.form-surface,.settings-section,.alert-settings{background:#fff;border:1px solid var(--border);border-radius:7px;overflow:hidden}table{width:100%;border-collapse:collapse;font-size:13px}th{height:42px;padding:0 15px;text-align:left;background:#f7f8fa;border-bottom:1px solid var(--border);color:#657180;font-size:11px;text-transform:uppercase;font-weight:700;white-space:nowrap}td{padding:13px 15px;border-bottom:1px solid #edf0f2;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfcfd}td>strong,td>span{display:block}.supplier-cell{display:flex;align-items:center;gap:10px;min-width:160px}.supplier-cell>div{display:flex;flex-direction:column}.supplier-cell span{font-size:12px;color:var(--muted)}.supplier-avatar{width:32px;height:32px;border-radius:5px;background:#e2f2f8;color:#0b709b;display:grid!important;place-items:center;font-weight:700;font-size:14px!important}.supplier-avatar.outline{background:#f1f3f5;color:#576373}.model-list{display:flex;flex-wrap:wrap;gap:5px;max-width:320px}.model-tag{padding:3px 7px;border:1px solid #d6e6ec;background:#f2f9fb;border-radius:4px;color:#2d6278;font-size:11px;white-space:nowrap}.model-tag.subtle{background:#f6f7f8;border-color:#e1e4e8;color:#596573}.price{font-variant-numeric:tabular-nums}.cell-note{font-size:11px!important;color:var(--muted);margin-top:2px}.quality{display:flex;flex-direction:column;color:var(--muted);font-size:11px}.quality span{display:flex;align-items:center;gap:5px}.quality .good{color:var(--success)}.quality .neutral{color:var(--muted)}.row-action{text-align:right;white-space:nowrap}.primary-button,.secondary-button{min-height:40px;border-radius:5px;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;font-size:13px;border:1px solid transparent;transition:background .18s,border-color .18s,box-shadow .18s}.primary-button{background:var(--accent);color:#fff}.primary-button:hover{background:var(--accent-hover)}.secondary-button{background:#fff;color:#344150;border-color:var(--border-strong)}.secondary-button:hover{background:#f5f7f9;border-color:#aeb7c1}.compact{min-height:34px;padding:0 11px;font-size:12px}.directory-notice{min-height:42px;padding:9px 14px;background:#f6f9fa;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;color:#5f6c79;font-size:12px}.availability{display:flex!important;align-items:center;gap:7px;color:#596573}.availability.offline{color:var(--danger)}.availability.degraded{color:var(--warning)}.source-link{display:inline-flex;align-items:center;gap:5px;color:#176e94;text-decoration:none}.source-link:hover{text-decoration:underline}.claimed-label{display:inline-flex!important;align-items:center;gap:5px;color:var(--success)}.loading-band,.empty-cell{height:120px;text-align:center;color:var(--muted)}.empty-cell svg{display:block;margin:0 auto 8px}.status-pill,.plan-badge{display:inline-flex!important;align-items:center;min-height:25px;border-radius:4px;padding:2px 8px;background:#eff1f3;color:#5d6874;font-size:11px;font-weight:700;width:max-content}.status-pill.active,.plan-badge.active,.status-pill.published{background:var(--success-soft);color:var(--success)}.status-pill.awaiting_funding,.status-pill.pending,.status-pill.review{background:var(--warning-soft);color:var(--warning)}.status-pill.failed,.status-pill.revoked{background:var(--danger-soft);color:var(--danger)}.error-text{color:var(--danger)!important;max-width:260px}.form-surface section,.settings-section{padding:22px}.form-surface section+section{border-top:1px solid var(--border)}.section-heading{display:flex;align-items:flex-start;gap:20px;margin-bottom:18px}.section-heading>div{margin-right:auto}.section-heading h2,.routing-rules h2{font-size:16px;margin:0 0 3px}.section-heading p,.routing-rules p{font-size:12px;color:var(--muted);margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid .full{grid-column:1/-1}label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:#4d5967}input,textarea,select{width:100%;min-height:40px;border:1px solid var(--border-strong);border-radius:5px;background:#fff;padding:8px 10px;color:var(--text);outline:none}textarea{resize:vertical}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px #0877a81f}.toggle-label{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:40px}.toggle-label input{width:18px;min-height:18px}.toggle-label span{display:flex;flex-direction:column}.toggle-label small{color:var(--muted);font-weight:400}.model-editor{display:grid;grid-template-columns:120px minmax(180px,1.5fr) 110px 110px 90px 40px;gap:10px;align-items:end;padding:12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:5px;margin-bottom:8px}.form-footer{min-height:68px;padding:14px 20px;display:flex;align-items:center;justify-content:flex-end;gap:20px;border-top:1px solid var(--border);background:#fafbfc}.form-footer p{font-size:12px;color:var(--muted);margin-right:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0e151d7a;display:grid;place-items:center;z-index:50;padding:20px}.modal{width:min(480px,100%);background:#fff;border-radius:7px;border:1px solid var(--border);box-shadow:0 20px 60px #0003;padding:22px;display:flex;flex-direction:column;gap:16px}.modal-header h2{font-size:18px;margin:0}.modal-header p{font-size:12px;color:var(--muted);margin:4px 0 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.upgrade-band{display:flex;gap:12px;padding:14px 16px;margin-bottom:14px;border:1px solid #ead9ac;background:#fff9e9;border-radius:6px;color:#765614}.upgrade-band strong{font-size:13px}.upgrade-band p{font-size:12px;margin:2px 0 0;color:#896c29}.routing-form{padding-top:22px}.routing-form>.form-grid,.routing-form fieldset{margin:0 22px 22px}.routing-form fieldset{border:0;padding:0}.routing-form legend{font-size:12px;font-weight:700;margin-bottom:10px}.strategy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.strategy-option{position:relative;min-height:138px;border:1px solid var(--border);border-radius:6px;padding:15px;display:flex;align-items:flex-start;gap:10px;cursor:pointer}.strategy-option:hover{border-color:#aeb8c3}.strategy-option.selected{border-color:var(--accent);background:#f2f9fc;box-shadow:0 0 0 2px #0877a81a}.strategy-option input{position:absolute;opacity:0;width:1px;min-height:1px}.strategy-option span{display:flex;flex-direction:column}.strategy-option strong{font-size:14px;color:var(--text)}.strategy-option small{font-size:12px;color:var(--muted);font-weight:400;margin-top:5px}.strategy-option em{font-size:10px;color:#36718a;font-style:normal;margin-top:10px}.routing-rules{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.routing-rules dl{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.routing-rules dt{font-size:11px;color:var(--muted);text-transform:uppercase;font-weight:700}.routing-rules dd{font-size:12px;margin:4px 0 0}.alert-settings{padding:4px 20px}.alert-row{min-height:82px;display:flex;align-items:center;gap:13px;border-bottom:1px solid var(--border)}.alert-row:last-child{border:0}.alert-row>div{margin-right:auto}.alert-row strong{font-size:13px}.alert-row p{font-size:12px;color:var(--muted);margin:2px 0 0}.alert-icon{width:36px;height:36px;border-radius:5px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}.alert-icon.red{background:var(--danger-soft);color:var(--danger)}.alert-icon.amber{background:var(--warning-soft);color:var(--warning)}.switch{display:block}.switch input{position:absolute;opacity:0}.switch span{display:block;width:38px;height:22px;border-radius:12px;background:#c8ced5;padding:3px}.switch span:after{content:"";display:block;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .18s}.switch input:checked+span{background:var(--success)}.switch input:checked+span:after{transform:translate(16px)}.empty-state{text-align:center;padding:64px 20px;color:#85909c}.empty-state h2{font-size:15px;color:#53606e;margin:10px 0 4px}.empty-state p{font-size:12px;margin:0}.settings-section{margin-bottom:14px}.definition-list{margin:0}.definition-list div{display:grid;grid-template-columns:140px 1fr;padding:9px 0;border-top:1px solid #edf0f2;font-size:13px}.definition-list dt{color:var(--muted)}.definition-list dd{margin:0}.inline-action{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end;margin-top:16px}.connection-indicator{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.secret-output{position:relative;padding:14px;background:#161d25;color:#dce3ea;border-radius:5px}.secret-output>div{display:flex;gap:9px;align-items:center}.secret-output span{display:flex;flex-direction:column}.secret-output small{color:#96a2af}.secret-output code{display:block;margin-top:12px;padding:11px;background:#0f151c;overflow:auto;font-size:11px;color:#b5ddea}.secret-output>.icon-button{position:absolute;right:10px;top:10px;background:#27323d;border-color:#364553;color:#dce3ea}.mono{font-family:Cascadia Code,SFMono-Regular,Consolas,monospace}.small{font-size:11px}.toast-stack{position:fixed;right:20px;bottom:20px;z-index:100;display:flex;flex-direction:column;gap:8px}.toast{min-width:260px;max-width:420px;padding:11px 13px;background:#15202b;color:#fff;border-radius:5px;box-shadow:0 8px 24px #0003;display:flex;align-items:center;gap:9px;font-size:13px}.toast.error{background:#8c2d2d}.auth-shell{min-height:100vh}.login-layout{min-height:100vh;display:grid;grid-template-columns:minmax(380px,1.1fr) minmax(430px,.9fr);background:#f5f6f8}.login-context{background:#17212b;color:#fff;padding:42px clamp(40px,7vw,110px);display:flex;flex-direction:column;min-height:100vh}.login-brand{display:flex;align-items:center;gap:11px}.login-brand strong{font-size:18px}.context-copy{margin:auto 0;max-width:620px}.context-copy h1{font-size:clamp(34px,4.4vw,62px);line-height:1.12;margin:12px 0 20px;font-weight:650}.context-copy>p:last-child{font-size:16px;line-height:1.7;color:#aebbc8;max-width:560px}.trust-list{display:flex;gap:28px;color:#aebbc8;font-size:12px}.trust-list div{display:flex;align-items:center;gap:8px}.login-panel{display:grid;place-items:center;padding:32px}.login-form-wrap{width:min(440px,100%)}.auth-tabs{margin-bottom:24px}.auth-tabs button{flex:1}.login-form-wrap form{display:flex;flex-direction:column;gap:15px}.login-form-wrap .form-grid{gap:13px}.submit-button{width:100%;margin-top:5px}.submit-button span{margin-right:auto}.form-error{padding:10px 12px;background:var(--danger-soft);color:var(--danger);border-radius:5px;font-size:12px;margin:0}.legal-copy{font-size:11px;color:#7c8793;margin-top:16px}.scrim,.mobile-menu,.sidebar-close{display:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:980px){.sidebar{transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:translate(0)}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0a101673;z-index:19}.mobile-menu{display:grid;position:fixed;left:14px;top:14px;z-index:18}.sidebar-close{display:grid;margin-left:auto;background:transparent;border-color:#36414d;color:#dce3ea}.main-content{margin-left:0;padding:72px 18px 40px}.page-header{flex-wrap:wrap}.model-editor{grid-template-columns:1fr 1fr}.model-editor .icon-button{align-self:end}.strategy-grid,.login-layout{grid-template-columns:1fr}.login-context{min-height:340px;padding:30px}.context-copy{margin:55px 0}.context-copy h1{font-size:38px}.trust-list{display:none}.login-panel{padding:32px 20px}}@media(max-width:700px){.page-header{gap:14px}.header-stat{display:none}.toolbar{flex-wrap:wrap}.search-field{order:-1;width:100%;min-width:0;margin:0}.data-surface{overflow-x:auto}table{min-width:840px}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.model-editor{grid-template-columns:1fr}.model-editor .icon-button{width:100%}.routing-rules dl{grid-template-columns:1fr}.login-context{min-height:280px}.context-copy{margin:35px 0}.context-copy h1{font-size:32px}.login-panel{align-items:start}.toast-stack{left:14px;right:14px}.toast{min-width:0}.inline-action{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
