:root{
  --bg:#06100e;--panel:rgba(5,16,13,.82);--panel2:rgba(8,24,20,.9);--line:rgba(174,231,214,.11);
  --text:#eaf7f3;--muted:#78908a;--accent:#85f1d1;--accent2:#4ad8b3;--warn:#f2c56e;--danger:#ff8f7b;
}
*{box-sizing:border-box}html,body,#app,#cesiumContainer{width:100%;height:100%;margin:0;overflow:hidden}body{font-family:Inter,"Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit}.cesium-widget-credits{display:none!important}.cesium-viewer-bottom{display:none!important}
.glass{background:linear-gradient(180deg,rgba(7,22,18,.91),rgba(4,13,11,.84));border:1px solid var(--line);box-shadow:0 12px 40px rgba(0,0,0,.2);backdrop-filter:blur(16px)}
.topbar{position:absolute;z-index:30;left:12px;right:12px;top:10px;height:62px;border-radius:18px;display:flex;align-items:center;padding:0 12px 0 10px;gap:15px}.brand{display:flex;align-items:center;gap:10px;min-width:230px}.logo,.loading-logo{display:grid;place-items:center;background:linear-gradient(145deg,#143b32,#0b2c25);border:1px solid rgba(132,241,208,.25);color:var(--accent);font-weight:800}.logo{width:38px;height:38px;border-radius:12px;font-size:15px}.brand-title{font-weight:800;letter-spacing:.13em;font-size:13px}.brand-subtitle{font-size:9px;color:#78908a;margin-top:3px}
.view-switch{display:flex;align-items:center;gap:3px;background:rgba(255,255,255,.035);padding:3px;border:1px solid rgba(255,255,255,.05);border-radius:11px}.view-btn{border:0;background:transparent;color:#778a84;padding:7px 10px;border-radius:8px;font-size:9px;cursor:pointer;white-space:nowrap}.view-btn:hover{color:#bfd7d0}.view-btn.active{background:rgba(132,241,208,.1);color:var(--accent);box-shadow:inset 0 0 0 1px rgba(132,241,208,.1)}
.top-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.policy-mini{height:30px;padding:0 10px;border-radius:9px;display:flex;align-items:center;gap:7px;border:1px solid rgba(132,241,208,.08);background:rgba(255,255,255,.025);font-size:9px;color:#9db1ab;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.policy-mini .status-dot{width:6px;height:6px;border-radius:50%;background:#52625e}.policy-mini.active-policy{color:#c8fff0;background:rgba(132,241,208,.07);border-color:rgba(132,241,208,.17)}.policy-mini.active-policy .status-dot{background:var(--accent);box-shadow:0 0 10px rgba(132,241,208,.8)}
.primary-btn{border:1px solid rgba(132,241,208,.25);background:linear-gradient(180deg,rgba(132,241,208,.17),rgba(132,241,208,.1));color:#d9fff4;border-radius:9px;padding:8px 12px;font-size:9px;font-weight:700;cursor:pointer;white-space:nowrap}.primary-btn:hover{background:linear-gradient(180deg,rgba(132,241,208,.25),rgba(132,241,208,.13))}.primary-btn.wide{width:100%;height:38px;margin-top:2px}
.top-stats{display:flex;align-items:center;gap:14px;border-left:1px solid var(--line);padding-left:13px}.top-stats>div{display:flex;align-items:baseline;gap:5px}.top-stats span{font-size:8px;color:#70847e}.top-stats strong{font-size:11px}.run-state i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px rgba(132,241,208,.75)}
.tool-rail{position:absolute;z-index:26;left:14px;top:88px;width:46px;border-radius:15px;padding:5px;display:flex;flex-direction:column;gap:4px}.rail-btn{width:36px;height:36px;border:0;border-radius:10px;background:transparent;color:#81938e;cursor:pointer;position:relative}.rail-btn:hover,.rail-btn.active{background:rgba(132,241,208,.08);color:var(--accent)}.rail-btn span{font-size:11px;font-weight:800}.rail-btn b{position:absolute;right:0;top:0;min-width:15px;height:15px;border-radius:99px;background:var(--accent);color:#05110e;font-size:8px;line-height:15px;padding:0 3px}
.side-drawer,.policy-drawer,.detail-panel{position:absolute;z-index:28;top:86px;bottom:82px;border-radius:17px;padding:15px;overflow:auto;transition:.2s ease}.side-drawer{left:72px;width:280px}.policy-drawer{left:72px;width:390px}.detail-panel{right:404px;width:340px}.side-drawer.hidden,.policy-drawer.hidden{opacity:0;transform:translateX(-12px);pointer-events:none}.detail-panel.hidden{opacity:0;transform:translateX(12px);pointer-events:none}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid var(--line);margin-bottom:13px}.eyebrow{font-size:7px;letter-spacing:.17em;color:var(--accent);margin-bottom:4px}.drawer-head h2{margin:0;font-size:15px}.icon-btn{border:0;background:rgba(255,255,255,.045);color:#91a49e;width:28px;height:28px;border-radius:9px;cursor:pointer;font-size:17px}.icon-btn.small{width:25px;height:25px;font-size:13px}.drawer-section+.drawer-section{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.section-title{font-size:8px;letter-spacing:.13em;color:var(--muted);text-transform:uppercase;margin-bottom:8px}.drawer-note{font-size:9px;line-height:1.7;color:#71837e;margin:10px 0 0}
.toggle-row{display:flex;align-items:center;justify-content:space-between;height:34px;color:#cad7d3;font-size:10px;cursor:pointer}.toggle-row input{display:none}.toggle-row i{width:31px;height:17px;border-radius:99px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.06);position:relative}.toggle-row i:after{content:"";position:absolute;width:11px;height:11px;left:2px;top:2px;border-radius:50%;background:#657772;transition:.2s}.toggle-row input:checked+i{background:rgba(132,241,208,.16);border-color:rgba(132,241,208,.18)}.toggle-row input:checked+i:after{transform:translateX(14px);background:var(--accent);box-shadow:0 0 8px rgba(132,241,208,.5)}
.legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.legend-grid>div{display:flex;align-items:center;gap:7px;font-size:9px;color:#aebfba;padding:7px 8px;border:1px solid rgba(255,255,255,.045);border-radius:9px;background:rgba(255,255,255,.02)}.legend-person{width:9px;height:9px;border-radius:50%;box-shadow:0 0 0 2px rgba(255,255,255,.05)}.legend-person.move{background:#7ce8cc}.legend-person.talk{background:#7eb8ff}.legend-person.react{background:#f2c56e}.legend-person.idle{background:#a2aaa7}
.policy-form{display:flex;flex-direction:column;gap:11px}.policy-form label{display:flex;flex-direction:column;gap:6px;font-size:9px;color:#93a8a2}.policy-form input,.policy-form textarea,.policy-form select{width:100%;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);color:#e4f2ee;border-radius:10px;padding:9px 10px;outline:none;font-size:10px}.policy-form textarea{resize:vertical;min-height:115px;line-height:1.65}.policy-form input:focus,.policy-form textarea:focus,.policy-form select:focus{border-color:rgba(132,241,208,.24);box-shadow:0 0 0 2px rgba(132,241,208,.04)}.policy-form option{background:#0d1b18}.policy-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.policy-analysis{margin-top:14px;padding-top:13px;border-top:1px solid var(--line)}.policy-analysis.hidden{display:none}.analysis-head{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:var(--muted);margin-bottom:9px}.analysis-head strong{color:var(--accent)}.tag-row{display:flex;gap:5px;flex-wrap:wrap}.tag{font-size:8px;padding:4px 7px;border-radius:99px;background:rgba(132,241,208,.07);border:1px solid rgba(132,241,208,.1);color:#c9f6ea}.analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:10px}.analysis-grid>div{padding:9px;border-radius:10px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.045)}.analysis-grid span{display:block;font-size:7px;color:#71837e;margin-bottom:4px}.analysis-grid strong{font-size:10px}.analysis-summary{font-size:9px;color:#8fa39d;line-height:1.65;margin:10px 0 0}
.activity-dock{position:absolute;z-index:25;right:14px;top:86px;bottom:82px;width:378px;border-radius:17px;padding:12px;display:flex;flex-direction:column;transition:.2s ease}.activity-dock.collapsed{bottom:auto;height:58px;overflow:hidden}.activity-head{height:35px;display:flex;align-items:center;justify-content:space-between}.activity-head strong{font-size:11px}.activity-tabs{display:flex;gap:3px;padding:8px 0;border-bottom:1px solid var(--line)}.activity-tab{border:0;background:transparent;color:#748680;padding:5px 7px;border-radius:7px;font-size:8px;cursor:pointer}.activity-tab.active{background:rgba(132,241,208,.08);color:var(--accent)}.activity-list{flex:1;overflow:auto;padding-right:3px}.activity-item{padding:9px 3px;border-bottom:1px solid rgba(255,255,255,.045)}.activity-meta{display:flex;align-items:center;gap:6px;margin-bottom:5px;font-size:7px;color:#637771}.activity-kind{padding:2px 5px;border-radius:5px;background:rgba(255,255,255,.045);color:#8ea09a}.activity-kind.dialogue{color:#9fc6ff;background:rgba(100,155,255,.08)}.activity-kind.policy{color:var(--warn);background:rgba(242,197,110,.08)}.activity-kind.opinion{color:#d8b5ff;background:rgba(180,120,255,.08)}.activity-body{font-size:9px;line-height:1.58;color:#c7d5d1}.activity-body b{color:var(--accent);font-weight:600}.dialogue-line{display:grid;grid-template-columns:38px 1fr;gap:6px;margin:3px 0}.dialogue-line .who{color:#7f9690}.dialogue-line .say{color:#d9e4e1}.activity-reason{margin-top:6px;padding:6px 7px;border-radius:7px;background:rgba(132,241,208,.035);color:#748b84;font-size:7px;line-height:1.5}
.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:11px}.metric{padding:9px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05)}.metric span{display:block;color:var(--muted);font-size:7px;margin-bottom:4px}.metric strong{font-size:10px}.detail-section{padding:11px 0;border-top:1px solid var(--line)}.detail-label{font-size:7px;letter-spacing:.1em;color:var(--muted);margin-bottom:6px}.bar{height:4px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden;margin-top:5px}.bar i{display:block;height:100%;background:linear-gradient(90deg,rgba(132,241,208,.42),var(--accent))}.belief-scale{display:flex;justify-content:space-between;font-size:7px;color:#60736d;margin-top:4px}.history-line{display:grid;grid-template-columns:45px 1fr;gap:7px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.035);font-size:8px;color:#8fa19c}.history-line strong{color:#cbd9d5;font-weight:500}
.timeline{position:absolute;z-index:28;left:72px;right:14px;bottom:13px;height:56px;border-radius:16px;display:grid;grid-template-columns:auto 76px 1fr auto auto;gap:13px;align-items:center;padding:0 13px}.play-controls{display:flex;align-items:center;gap:4px}.play-btn{width:30px;height:30px;border:0;border-radius:50%;background:var(--accent);color:#04100d;font-weight:900;cursor:pointer}.speed-btn{height:25px;min-width:30px;border:0;border-radius:8px;background:rgba(255,255,255,.045);color:#6f817b;font-size:8px;cursor:pointer}.speed-btn.active{background:rgba(132,241,208,.09);color:var(--accent)}.time-main{font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.time-block .muted{font-size:7px;color:var(--muted);margin-top:2px}.timeline-track{height:3px;border-radius:99px;background:rgba(255,255,255,.07);position:relative}.timeline-fill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,rgba(132,241,208,.28),var(--accent))}.timeline-thumb{position:absolute;left:0;top:50%;width:8px;height:8px;border-radius:50%;background:var(--accent);transform:translate(-50%,-50%);box-shadow:0 0 8px rgba(132,241,208,.55)}.phase-chip{font-size:8px;color:#81958f;padding:5px 8px;border-radius:99px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.025);white-space:nowrap}.phase-chip.active{color:var(--warn);border-color:rgba(242,197,110,.14);background:rgba(242,197,110,.055)}.reset-btn{border:1px solid var(--line);background:rgba(255,255,255,.04);color:#8c9d98;border-radius:8px;padding:6px 9px;font-size:8px;cursor:pointer}
.speech-layer{position:absolute;inset:0;pointer-events:none;z-index:24}.screen-speech{position:absolute;max-width:230px;padding:7px 9px;border-radius:10px;background:rgba(4,14,12,.88);border:1px solid rgba(132,241,208,.15);box-shadow:0 8px 24px rgba(0,0,0,.22);font-size:8px;line-height:1.45;color:#d8e6e2;transform:translate(-50%,-110%);animation:speechIn .18s ease}.screen-speech b{color:var(--accent);margin-right:4px}.screen-speech:after{content:"";position:absolute;left:50%;bottom:-5px;width:8px;height:8px;background:rgba(4,14,12,.88);border-right:1px solid rgba(132,241,208,.15);border-bottom:1px solid rgba(132,241,208,.15);transform:translateX(-50%) rotate(45deg)}@keyframes speechIn{from{opacity:0;transform:translate(-50%,-100%) scale(.96)}to{opacity:1;transform:translate(-50%,-110%) scale(1)}}
.diagnostic-toast{position:fixed;z-index:90;right:18px;top:79px;display:flex;align-items:center;gap:8px;max-width:min(520px,calc(100vw - 40px));padding:8px 10px;border-radius:10px;border:1px solid rgba(132,241,208,.15);background:rgba(5,16,13,.88);font-size:9px;color:#b8cbc5;backdrop-filter:blur(14px)}.diagnostic-toast.hidden{display:none}.diagnostic-toast.fatal{border-color:rgba(255,143,123,.3);color:#ffd8d2}.diagnostic-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px rgba(132,241,208,.65)}.diagnostic-toast button{margin-left:auto;border:0;background:transparent;color:inherit;cursor:pointer;font-size:14px}
.loading-screen{position:fixed;z-index:100;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 43%,#10251f 0,#07110f 48%,#030706 100%);transition:opacity .45s}.loading-screen.hide{opacity:0;pointer-events:none}.loading-card{width:310px;text-align:center}.loading-logo{width:46px;height:46px;margin:0 auto 14px;border-radius:14px}.loading-card h1{font-size:18px;letter-spacing:.18em;margin:0 0 6px}.loading-card p{color:var(--muted);font-size:9px;margin:0 0 17px}.loading-bar{height:3px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}.loading-bar span{display:block;width:42%;height:100%;background:var(--accent);animation:load 1.2s infinite ease-in-out}@keyframes load{0%{transform:translateX(-120%)}100%{transform:translateX(260%)}}
.muted{color:var(--muted)}
@media(max-width:1200px){.policy-mini{display:none}.top-stats>div:nth-child(2){display:none}.detail-panel{right:326px}.activity-dock{width:312px}.view-btn{padding:7px 7px}.brand{min-width:200px}.timeline{left:14px}.tool-rail{top:auto;bottom:82px;flex-direction:row;width:auto}.side-drawer,.policy-drawer{left:14px}}

/* v0.6 functional-city additions */
.district-drawer{position:absolute;z-index:29;left:72px;top:86px;bottom:82px;width:350px;border-radius:17px;padding:15px;overflow:auto;transition:.2s ease}.district-drawer.hidden{opacity:0;transform:translateX(-12px);pointer-events:none}
.legend-person.wait{background:#ff9b7e}.activity-zone{padding:2px 5px;border-radius:5px;background:rgba(255,255,255,.03);color:#70847e}.district-summary{margin-bottom:12px}.monitor-kpis{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:10px}.monitor-kpis>div{padding:9px;border-radius:10px;background:rgba(255,255,255,.028);border:1px solid rgba(255,255,255,.05)}.monitor-kpis span{display:block;font-size:7px;color:var(--muted);margin-bottom:4px}.monitor-kpis strong{font-size:12px}.monitor-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.04);font-size:8px;color:#7f928c}.monitor-row strong{font-size:9px;color:#c9d8d4;font-weight:600;text-align:right}.district-title{margin-top:14px}.district-list{display:flex;flex-direction:column;gap:7px}.district-card{width:100%;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.022);border-radius:11px;padding:10px;text-align:left;color:var(--text);cursor:pointer}.district-card:hover,.district-card.selected{border-color:rgba(132,241,208,.18);background:rgba(132,241,208,.045)}.district-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px}.district-card-head strong{font-size:10px}.district-card-head span{font-size:8px;color:#7e918b}.district-mini-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;font-size:7px;color:#758983}.district-mini-grid b{color:#c8d8d3}.district-stance{height:3px;margin:8px 0 6px;border-radius:99px;background:linear-gradient(90deg,rgba(255,143,123,.35),rgba(255,255,255,.08) 50%,rgba(132,241,208,.35));position:relative}.district-stance i{position:absolute;top:50%;width:7px;height:7px;border-radius:50%;transform:translate(-50%,-50%);background:#b5c4c0;box-shadow:0 0 8px rgba(255,255,255,.15)}.district-stance.support i{background:var(--accent)}.district-stance.oppose i{background:var(--danger)}.district-foot{font-size:7px;color:#667a74;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.anchor-list{display:flex;flex-direction:column;gap:6px}.anchor-list>div{display:grid;grid-template-columns:38px 1fr;gap:8px;font-size:8px}.anchor-list span{color:#748882}.anchor-list strong{color:#c7d6d2;font-weight:500}.building-hours,.cognition-note,.policy-reaction-text{margin-top:8px;font-size:8px;color:#7d918b;line-height:1.6}.clickable-agent{cursor:pointer}.clickable-agent:hover{background:rgba(132,241,208,.14)}.active-tag{border-color:rgba(132,241,208,.42)!important;background:rgba(132,241,208,.12)!important;color:#d9f8ef}
@media(max-width:1200px){.district-drawer{left:14px;width:330px}.top-stats>div:nth-child(4){display:none}}


/* v2.0 Cohort Policy Digital Society UI refinement */
.runtime-chip{display:flex;align-items:center;gap:6px;height:30px;padding:0 9px;border:1px solid rgba(132,241,208,.10);border-radius:10px;background:rgba(132,241,208,.035);color:#829a93;font-size:7px;white-space:nowrap}.runtime-chip i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px rgba(132,241,208,.55)}
.glass{background:linear-gradient(180deg,rgba(5,18,15,.86),rgba(4,13,11,.80));border-color:rgba(166,229,210,.095);box-shadow:0 18px 48px rgba(0,0,0,.16),inset 0 1px rgba(255,255,255,.018)}
.topbar{backdrop-filter:blur(22px) saturate(115%)}.view-switch{background:rgba(255,255,255,.018);border:1px solid rgba(255,255,255,.035);padding:3px;border-radius:12px}.view-btn{transition:background .18s ease,color .18s ease,transform .18s ease}.view-btn:hover{color:#c9ddd7;transform:translateY(-1px)}
.activity-dock{width:354px;background:linear-gradient(180deg,rgba(4,15,12,.90),rgba(3,11,9,.84));backdrop-filter:blur(24px);transition:width .22s ease,height .22s ease,opacity .22s ease,transform .22s ease}.activity-item{transition:background .16s ease}.activity-item:hover{background:rgba(132,241,208,.018)}
.side-drawer,.policy-drawer,.district-drawer,.detail-panel{backdrop-filter:blur(24px);transition:opacity .22s ease,transform .22s cubic-bezier(.2,.8,.2,1)}
.legend-person{width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,.30);box-shadow:0 0 5px currentColor,0 0 10px currentColor}.legend-person.move{color:#7ce8cc}.legend-person.talk{color:#7eb8ff}.legend-person.react{color:#f2c56e}.legend-person.idle{color:#a2aaa7}.legend-person.wait{color:#ff9b7e}
.focus-stack{display:flex;flex-direction:column;gap:7px;margin:7px 0 10px}.focus-row{display:grid;grid-template-columns:48px 1fr 34px;align-items:center;gap:7px;font-size:8px}.focus-row>span{color:#8aa098}.focus-row>i{height:4px;overflow:hidden;border-radius:99px;background:rgba(255,255,255,.055)}.focus-row>i>b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,rgba(132,241,208,.30),var(--accent));box-shadow:0 0 7px rgba(132,241,208,.25)}.focus-row>strong{text-align:right;color:#cfe2dc;font-size:8px}
.monitor-kpis small{display:block;margin-top:4px;color:#61766f;font-size:6px;font-weight:500}.zone-analysis-block{margin:9px 0;padding:10px;border-radius:11px;background:rgba(255,255,255,.021);border:1px solid rgba(255,255,255,.042)}.zone-analysis-title{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:8px;font-size:7px;color:#758a83}.zone-analysis-title b{color:#a8bbb5;font-weight:600}.zone-delta-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.zone-delta-grid>div{padding:7px 8px;border-radius:8px;background:rgba(255,255,255,.021)}.zone-delta-grid span{display:block;color:#6d827b;font-size:6px}.zone-delta-grid strong{display:block;margin-top:3px;font-size:10px;color:#d5e4df}.zone-delta-grid em{display:block;margin-top:2px;color:#70a493;font-size:6px;font-style:normal}.zone-spark{height:34px;display:flex;align-items:flex-end;gap:2px}.zone-spark i{display:block;flex:1;min-width:2px;border-radius:3px 3px 1px 1px;background:linear-gradient(180deg,var(--accent),rgba(132,241,208,.18));opacity:.72}
.screen-speech{background:rgba(3,13,11,.92);border-color:rgba(132,241,208,.12);box-shadow:0 12px 34px rgba(0,0,0,.28)}
.district-card{transition:transform .16s ease,border-color .16s ease,background .16s ease}.district-card:hover{transform:translateX(2px)}
.timeline{backdrop-filter:blur(22px)}
@media(max-width:1380px){.runtime-chip{display:none}.activity-dock{width:330px}}

/* v2.0 Cohort + Skyline refinement */
:root{--bg:#08141c;--panel:rgba(7,18,23,.82);--panel2:rgba(10,25,30,.90);--line:rgba(174,226,226,.105);--text:#edf7f7;--muted:#7f9596;--accent:#81e7d0;--accent2:#55cbbb}
body{background:linear-gradient(180deg,#0b1a23 0%,#081418 48%,#050b0e 100%)}
.glass{background:linear-gradient(180deg,rgba(7,20,24,.90),rgba(5,14,17,.84));border-color:rgba(169,226,220,.10);box-shadow:0 18px 52px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.018)}
.topbar{height:64px;gap:12px}.brand{min-width:212px}.brand-subtitle{font-size:8px}.view-btn{padding:7px 8px}.top-stats{gap:10px;padding-left:10px}.top-stats>div:nth-child(2){display:flex}.top-stats span{font-size:7px}.top-stats strong{font-size:10px}.top-actions{gap:6px}.runtime-chip{padding:0 7px}.policy-mini{max-width:150px}
.logo,.loading-logo{background:linear-gradient(145deg,#17353b,#0b262a);border-color:rgba(129,231,208,.20)}
.metric strong{font-variant-numeric:tabular-nums}.district-card-head span,.monitor-kpis strong,.detail-grid strong{font-variant-numeric:tabular-nums}
.cohort-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:999px;background:rgba(129,231,208,.06);border:1px solid rgba(129,231,208,.10);font-size:7px;color:#a9c9c2}.cohort-chip i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px rgba(129,231,208,.65)}
@media(max-width:1500px){.policy-mini{display:none}.top-stats>div:nth-child(5){display:none}}
@media(max-width:1320px){.top-stats>div:nth-child(4){display:none}.brand{min-width:190px}.view-btn{padding:7px 6px;font-size:8px}}

/* v2.0.1 interaction + research-bridge patch */
#cesiumContainer{cursor:grab}
#cesiumContainer:active{cursor:grabbing}
.secondary-btn{border:1px solid rgba(129,231,208,.16);background:rgba(255,255,255,.035);color:#d7efea;border-radius:9px;padding:8px 12px;font-size:9px;font-weight:700;cursor:pointer;white-space:nowrap}
.secondary-btn:hover{background:rgba(129,231,208,.08);border-color:rgba(129,231,208,.24)}
.secondary-btn.wide,.primary-btn.wide{display:flex;align-items:center;justify-content:center}
@media(max-width:1380px){.activity-dock{width:338px}}

/* v2.1.0 city boundary / QGIS planning / formal research bridge */
.city-vignette{position:absolute;z-index:10;inset:0;pointer-events:none;background:radial-gradient(ellipse at 47% 54%,transparent 0%,transparent 54%,rgba(2,8,10,.06) 68%,rgba(2,7,9,.30) 88%,rgba(1,5,7,.62) 100%);box-shadow:inset 0 0 120px rgba(0,0,0,.28);transition:opacity .25s ease}.city-vignette.hidden{opacity:0}
#planningDrawer{width:365px}.planning-card .district-foot{margin-top:7px}.planning-card .district-mini-grid{grid-template-columns:1fr 1fr}.planning-card:hover{border-color:rgba(129,231,208,.28)}
#btnPlanning.active{background:rgba(129,231,208,.10);color:var(--accent)}
#apiStatusChip.active-policy .status-dot{animation:apiPulse 1.8s ease-in-out infinite}@keyframes apiPulse{0%,100%{opacity:.7;box-shadow:0 0 6px rgba(129,231,208,.45)}50%{opacity:1;box-shadow:0 0 14px rgba(129,231,208,.85)}}
@media(max-width:1200px){#planningDrawer{left:14px;width:330px}}

/* v2.2.0 digital-twin / hand-camera / multi-provider UI */
:root{--accent:#67f4df;--accent2:#37c7ff;--grid:rgba(65,218,235,.085)}
body{background:#000}
#cesiumContainer{cursor:default}
body.hand-mode #cesiumContainer{cursor:grab}
body.hand-mode #cesiumContainer:active{cursor:grabbing}
.glass{background:linear-gradient(180deg,rgba(3,12,18,.88),rgba(2,8,12,.82));border-color:rgba(78,231,232,.13);box-shadow:0 18px 52px rgba(0,0,0,.28),inset 0 1px rgba(125,255,244,.028),0 0 28px rgba(31,182,207,.035)}
.topbar:before,.activity-dock:before,.side-drawer:before,.policy-drawer:before,.district-drawer:before,.detail-panel:before{content:"";position:absolute;left:10px;top:-1px;width:52px;height:1px;background:linear-gradient(90deg,var(--accent),transparent);box-shadow:0 0 10px rgba(103,244,223,.45);pointer-events:none}
.digital-grid-overlay{position:absolute;z-index:8;inset:0;pointer-events:none;opacity:.38;background-image:linear-gradient(rgba(48,208,221,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(48,208,221,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:radial-gradient(circle at 48% 53%,#000 0,#000 44%,transparent 82%)}
.scanline-overlay{position:absolute;z-index:9;inset:0;pointer-events:none;opacity:.18;background:repeating-linear-gradient(180deg,transparent 0,transparent 3px,rgba(132,255,246,.025) 4px,transparent 5px)}
.projection-hud{position:absolute;z-index:21;left:78px;top:86px;display:flex;align-items:center;gap:10px;pointer-events:none;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:7px;letter-spacing:.12em;color:rgba(132,237,231,.55)}
.projection-hud b{font-size:8px;color:rgba(190,255,250,.72);font-weight:500}.projection-hud i{font-style:normal;color:var(--accent);padding:2px 5px;border:1px solid rgba(103,244,223,.18);background:rgba(103,244,223,.035);box-shadow:0 0 12px rgba(103,244,223,.06)}
.provider-section{margin-top:16px;padding-top:15px;border-top:1px solid var(--line)}
.provider-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.provider-form-grid label{display:flex;flex-direction:column;gap:5px;font-size:8px;color:#87a0a2}.provider-form-grid .span-2{grid-column:1 / -1}.provider-form-grid input,.provider-form-grid select{width:100%;border:1px solid rgba(84,222,234,.11);background:rgba(9,22,29,.72);color:#e8fbfa;border-radius:8px;padding:8px 9px;outline:none;font-size:9px}.provider-form-grid input:focus,.provider-form-grid select:focus{border-color:rgba(103,244,223,.28);box-shadow:0 0 0 2px rgba(103,244,223,.04)}
.provider-buttons{margin-top:8px}.provider-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}.provider-card{position:relative;border:1px solid rgba(82,221,232,.09);background:linear-gradient(90deg,rgba(20,80,88,.075),rgba(255,255,255,.015));border-radius:10px;padding:9px}.provider-card:before{content:"";position:absolute;left:-1px;top:8px;bottom:8px;width:2px;background:linear-gradient(var(--accent2),var(--accent));box-shadow:0 0 8px rgba(70,220,239,.35)}.provider-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.provider-head strong{font-size:9px}.provider-head span{font-size:7px;color:#6dcfd3}.provider-meta{display:grid;grid-template-columns:1fr 1fr;gap:4px 10px;margin-top:6px;font-size:7px;color:#78999a}.provider-actions{display:flex;gap:5px;margin-top:7px}.provider-actions button{border:1px solid rgba(99,221,227,.11);background:rgba(255,255,255,.025);color:#9ec4c4;border-radius:6px;padding:4px 7px;font-size:7px;cursor:pointer}.provider-actions button:hover{color:#eaffff;border-color:rgba(103,244,223,.24)}
.camera-hint{border-color:rgba(55,199,255,.12);background:linear-gradient(180deg,rgba(3,13,19,.82),rgba(2,8,12,.76));box-shadow:0 10px 30px rgba(0,0,0,.2),0 0 28px rgba(47,194,222,.035)}
.hint-hand{color:#72eaff;border-color:rgba(55,199,255,.18);background:rgba(55,199,255,.07);box-shadow:0 0 16px rgba(55,199,255,.09)}
.city-vignette{background:radial-gradient(ellipse at 50% 53%,transparent 0%,transparent 56%,rgba(0,0,0,.10) 70%,rgba(0,0,0,.56) 94%,#000 100%);box-shadow:inset 0 0 160px rgba(0,0,0,.55)}
.activity-kind.dialogue{color:#79d7ff;background:rgba(55,199,255,.08)}
.runtime-chip,.policy-mini,.phase-chip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}
@media(max-width:1400px){.projection-hud{display:none}.provider-form-grid{grid-template-columns:1fr}.provider-form-grid .span-2{grid-column:auto}}

/* v2.2.3 direct map interaction */
#cesiumContainer{cursor:grab!important}
#cesiumContainer.dragging-map{cursor:grabbing!important}

/* v2.2.4 truthful activity states */
.activity-empty{margin:14px 8px;padding:16px 14px;border:1px dashed rgba(112,229,204,.18);border-radius:12px;background:rgba(7,24,25,.52);color:#8fa9a4;font-size:11px;line-height:1.75;}

/* v2.2.8 Global Simulation Clock */
.timeline{height:68px;grid-template-columns:auto 150px 1fr auto auto;gap:14px;padding:0 15px;overflow:visible}
.play-controls{flex-wrap:nowrap}.speed-btn{min-width:32px}
.time-button{border:0;background:transparent;color:inherit;text-align:left;cursor:pointer;padding:5px 8px;border-radius:10px;transition:.18s ease}
.time-button:hover{background:rgba(132,241,208,.055);box-shadow:inset 0 0 0 1px rgba(132,241,208,.08)}
.time-sub{display:flex;align-items:center;gap:7px;margin-top:3px;font-size:7px;color:#71847f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
#clockModeMini{color:var(--accent);padding:1px 5px;border:1px solid rgba(132,241,208,.12);border-radius:99px;background:rgba(132,241,208,.04)}
.timeline-shell{display:grid;grid-template-rows:auto auto auto;gap:4px;min-width:240px}.timeline-track{cursor:pointer;height:4px}.timeline-track:hover{background:rgba(255,255,255,.11)}
.timeline-marks{display:flex;justify-content:space-between;color:#526560;font-size:6px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.02em}.rate-readout{text-align:center;color:#718981;font-size:7px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap}
.time-console{position:absolute;z-index:44;left:84px;bottom:91px;width:520px;padding:18px;border-radius:20px;background:linear-gradient(180deg,rgba(5,18,22,.97),rgba(3,12,15,.95));border:1px solid rgba(132,241,208,.13);box-shadow:0 28px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.025)}
.time-console::before{content:"";position:absolute;left:18px;right:18px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.55}.time-console-head{display:flex;align-items:flex-start;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.06)}.time-console-head strong{font-size:15px}.clock-mode-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.clock-mode{border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);color:#728a84;border-radius:10px;padding:9px;font-size:8px;cursor:pointer}.clock-mode.active{color:var(--accent);border-color:rgba(132,241,208,.18);background:rgba(132,241,208,.065)}
.clock-form{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:8px;margin-top:12px}.clock-form label{font-size:7px;color:#7d918c;display:flex;flex-direction:column;gap:5px}.clock-form input{height:34px;border:1px solid rgba(255,255,255,.07);border-radius:10px;background:rgba(255,255,255,.028);color:#dcece8;padding:0 9px;font-size:8px;outline:none}.clock-form input:focus{border-color:rgba(132,241,208,.22)}
.clock-presets,.clock-jump-row{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.clock-presets button,.clock-jump-row button{border:1px solid rgba(255,255,255,.06);background:rgba(255,255,255,.025);color:#78908a;border-radius:8px;padding:7px 9px;font-size:7px;cursor:pointer}.clock-presets button:hover,.clock-jump-row button:hover{color:var(--accent);border-color:rgba(132,241,208,.18)}
.clock-status-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-top:12px}.clock-status-grid>div{padding:9px;border-radius:11px;background:rgba(255,255,255,.023);border:1px solid rgba(255,255,255,.05)}.clock-status-grid span{display:block;color:#60736e;font-size:6px;margin-bottom:5px}.clock-status-grid strong{display:block;color:#dcebe7;font-size:8px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clock-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
@media(max-width:980px){.timeline{grid-template-columns:auto 120px 1fr auto}.timeline .reset-btn{display:none}.time-console{left:14px;width:min(520px,calc(100vw - 28px))}.clock-form{grid-template-columns:1fr}.clock-status-grid{grid-template-columns:1fr 1fr}}


/* v2.2.9 compact side simulation-clock drawer */
.time-console{
  position:absolute!important;z-index:44;left:72px!important;right:auto!important;top:92px!important;bottom:84px!important;
  width:360px!important;max-height:calc(100vh - 176px);overflow:auto;padding:15px 14px 16px!important;border-radius:0 18px 18px 0!important;
  background:linear-gradient(180deg,rgba(4,17,21,.985),rgba(3,12,15,.975))!important;
  border:1px solid rgba(132,241,208,.13)!important;border-left-color:rgba(132,241,208,.2)!important;
  box-shadow:20px 0 60px rgba(0,0,0,.38),inset 1px 0 0 rgba(132,241,208,.05)!important;
  transform:translateX(0);opacity:1;visibility:visible;transition:transform .24s cubic-bezier(.2,.8,.2,1),opacity .18s ease,visibility .18s ease;
}
.time-console.hidden{display:block!important;transform:translateX(calc(-100% - 76px));opacity:0;visibility:hidden;pointer-events:none}
.time-console::before{left:0!important;right:0!important;background:linear-gradient(90deg,var(--accent),rgba(132,241,208,.08),transparent)!important}
.time-console-head{position:sticky;top:-15px;z-index:2;margin:-15px -14px 0;padding:15px 14px 11px;background:rgba(4,17,21,.985);backdrop-filter:blur(16px)}
.time-console-head strong{font-size:13px!important}.time-console .eyebrow{font-size:7px!important}
.clock-mode-tabs{grid-template-columns:1fr!important;gap:5px!important;margin-top:11px!important}.clock-mode{padding:8px 10px!important;text-align:left!important}
.clock-form{grid-template-columns:1fr!important;gap:7px!important;margin-top:10px!important}.clock-form input{height:32px!important}
.clock-presets,.clock-jump-row{gap:5px!important;margin-top:8px!important}.clock-presets button,.clock-jump-row button{padding:6px 8px!important}
.clock-status-grid{grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:10px!important}.clock-status-grid>div{padding:8px!important}
.clock-actions{grid-template-columns:1fr!important;gap:6px!important;margin-top:10px!important}
.time-console::-webkit-scrollbar{width:5px}.time-console::-webkit-scrollbar-thumb{background:rgba(132,241,208,.18);border-radius:99px}.time-console::-webkit-scrollbar-track{background:transparent}
@media(max-width:980px){.time-console{left:58px!important;top:80px!important;bottom:78px!important;width:min(340px,calc(100vw - 70px))!important}.time-console.hidden{transform:translateX(calc(-100% - 62px))}}

/* v2.3.3 provider UX + truthful dialogue rendering */
.provider-buttons{position:sticky;bottom:-8px;z-index:5;padding:8px 0 6px;background:linear-gradient(180deg,rgba(3,14,18,.35),rgba(3,14,18,.96) 28%);backdrop-filter:blur(10px)}
.provider-buttons button:disabled{opacity:.55;cursor:wait;filter:saturate(.65)}
.provider-form-status{margin:5px 1px 9px;padding:7px 9px;border-radius:8px;border:1px solid rgba(112,229,204,.10);background:rgba(5,20,23,.5);color:#799695;font-size:8px;line-height:1.55;min-height:29px}
.provider-form-status.busy{color:#a9d9d4;border-color:rgba(103,244,223,.16)}
.provider-form-status.ok{color:#7cead5;border-color:rgba(103,244,223,.22);background:rgba(30,112,98,.08)}
.provider-form-status.error{color:#ffb4a8;border-color:rgba(255,135,118,.20);background:rgba(120,35,30,.08)}

/* v2.3.3 provider responsiveness + direct speech + dialogue corpus export */
.activity-actions{display:flex;align-items:center;gap:6px}.trace-export-btn{height:25px;padding:0 9px;border-radius:7px;border:1px solid rgba(103,244,223,.17);background:rgba(103,244,223,.055);color:#8fe9dc;font-size:8px;font-weight:700;cursor:pointer;letter-spacing:.04em}.trace-export-btn:hover{background:rgba(103,244,223,.11);border-color:rgba(103,244,223,.28);color:#c8fff7}.trace-export-btn:active{transform:translateY(1px)}
#addProvider:disabled{opacity:.7;cursor:progress}.provider-form-status{transition:border-color .15s ease,background .15s ease,color .15s ease}

/* v2.4.5 city context inside the time drawer */
.city-context-panel{margin-top:11px;padding:10px;border:1px solid rgba(132,241,208,.10);background:rgba(132,241,208,.025)}
.city-context-panel .section-title{margin-bottom:8px}.city-context-field{display:grid;grid-template-columns:72px 1fr;align-items:center;gap:8px;margin-top:6px;font-size:8px;color:#7c918b}
.city-context-field select{width:100%;height:32px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.035);color:#d9ebe6;padding:0 8px;border-radius:0;outline:none;font-size:8px}
.city-context-field select:focus{border-color:rgba(132,241,208,.24)}
.city-context-kpis{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:9px}.city-context-kpis>div{padding:8px;border:1px solid rgba(255,255,255,.05);background:rgba(255,255,255,.022)}
.city-context-kpis span{display:block;font-size:6px;color:#62766f;margin-bottom:4px}.city-context-kpis strong{font-size:10px;color:#dff6ef;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.city-context-state{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.05)}.city-context-state>span{display:block;font-size:8px;color:#9bc4ba;margin-bottom:4px}.city-context-state small{display:block;font-size:7px;line-height:1.55;color:#687c76}
.active-tag{border-color:rgba(132,241,208,.42)!important;background:rgba(132,241,208,.12)!important;color:#d9f8ef}

/* v2.6.0 Fusion — unified real/experimental city selector + dark native controls */
.city-context-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.city-context-title-row .section-title{margin-bottom:0}
.city-source-badge{display:inline-flex;align-items:center;min-height:20px;padding:0 7px;border:1px solid rgba(132,241,208,.13);background:rgba(132,241,208,.045);color:#8ec6b7;font-size:6px;letter-spacing:.06em;white-space:nowrap}
.city-context-field{position:relative}
.city-context-field select{color-scheme:dark!important;background:#0a1719!important;color:#d9ebe6!important;border-color:rgba(132,241,208,.13)!important}
.city-context-field select option{background:#0a1719!important;color:#d9ebe6!important}
.compat-select{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important;clip-path:inset(100%)!important}
.mass-select{position:relative;width:100%}
.mass-select-button{width:100%;height:36px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 11px;border:1px solid rgba(132,241,208,.15);background:linear-gradient(180deg,rgba(13,31,32,.98),rgba(8,23,25,.98));color:#dff2ed;font-size:8px;text-align:left;cursor:pointer;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.mass-select-button:hover,.mass-select-button[aria-expanded="true"]{border-color:rgba(132,241,208,.31);background:rgba(14,34,34,.99)}
.mass-select-button b{font-size:13px;font-weight:400;color:#cfe8e2;transition:transform .16s ease}.mass-select-button[aria-expanded="true"] b{transform:rotate(180deg)}
.mass-select-menu{position:absolute;z-index:80;left:0;right:0;top:calc(100% + 5px);max-height:280px;overflow:auto;border:1px solid rgba(132,241,208,.18);background:#071416;box-shadow:0 18px 42px rgba(0,0,0,.48);padding:4px}
.mass-select-menu.hidden{display:none!important}
.mass-select-group{padding:7px 9px 4px;color:#56756d;font-size:6px;letter-spacing:.12em;text-transform:uppercase;border-top:1px solid rgba(255,255,255,.04)}
.mass-select-group:first-child{border-top:0}
.mass-select-option{width:100%;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:9px 10px;border:0;background:transparent;color:#aac1bb;text-align:left;font-size:8px;cursor:pointer}
.mass-select-option:hover{background:rgba(132,241,208,.055);color:#ecfaf6}
.mass-select-option.active{background:rgba(132,241,208,.085);color:#e8fff9}
.mass-select-option small{display:block;margin-top:2px;color:#5e7771;font-size:6px;line-height:1.35}.mass-select-option.active small{color:#71978d}
.mass-select-option em{font-style:normal;color:#74b7a5;font-size:7px}
.city-context-kpis.four{grid-template-columns:1fr 1fr!important}.city-context-kpis.four>div{min-height:55px}
.city-context-state small{line-height:1.6!important}
@media(max-width:980px){.mass-select-menu{position:fixed;left:68px;right:auto;width:min(300px,calc(100vw - 86px));top:148px;max-height:46vh}}

/* v2.6.6 runtime identity guard + v2.6.5 dialogue reliability */
.provider-talk-now{width:100%;margin-top:7px;border-color:rgba(101,235,220,.18)!important;color:#b9ece5!important;background:rgba(43,119,108,.08)!important}
.provider-talk-now:hover{background:rgba(43,119,108,.16)!important;color:#eafffb!important}
.provider-health{position:absolute;right:9px;top:29px;font-size:6.5px;line-height:1;padding:3px 5px;border-radius:999px;border:1px solid rgba(130,160,160,.12);color:#7f9998;background:rgba(0,0,0,.12)}
.provider-health.ok{color:#70ebd0;border-color:rgba(103,244,223,.22);background:rgba(34,110,97,.10)}
.provider-health.error{color:#ffad9f;border-color:rgba(255,135,118,.20);background:rgba(120,35,30,.10)}
.screen-speech.indoor-speech{filter:drop-shadow(0 5px 14px rgba(0,0,0,.28));border-color:rgba(126,229,211,.28)}

/* v2.6.7 multi-provider capacity display */
.provider-capacity-summary{margin:8px 1px 5px;padding:7px 9px;border:1px solid rgba(103,244,223,.12);border-radius:8px;background:rgba(6,24,28,.56);color:#8fb8b7;font-size:8px;line-height:1.55}
.provider-capacity-summary b{color:#dffcf8;font-weight:700}

/* MASS Lab integrated web entry */
.mass-lab-return{display:inline-flex;align-items:center;justify-content:center;height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:rgba(220,230,242,.72);font:600 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.08em;text-decoration:none;white-space:nowrap;background:rgba(6,12,20,.38);transition:.18s ease}
.mass-lab-return:hover{color:#fff;border-color:rgba(255,255,255,.26);background:rgba(21,34,50,.7)}
@media(max-width:1150px){.mass-lab-return{display:none}}


/* 2026-09-13 · 一份 SiliconFlow Key 自动生成固定三模型 */
.preset-provider-section{margin-top:0!important;padding-top:0!important;border-top:0!important}
.provider-preset-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.provider-preset-head .section-title{margin:0!important;color:#c5d9d5!important;font-size:10px!important;letter-spacing:.12em!important}
.provider-preset-note{margin:5px 0 0;color:#789490;font-size:8px;line-height:1.55}
.provider-preset-badge{flex:0 0 auto;padding:5px 7px;border-radius:999px;border:1px solid rgba(103,244,223,.14);background:rgba(103,244,223,.045);color:#83cfc3;font-size:7px;letter-spacing:.12em}
.provider-preset-models{display:grid;gap:6px;margin:0 0 12px}
.provider-preset-models>div{display:grid;grid-template-columns:24px 1fr;gap:2px 8px;padding:9px 10px;border:1px solid rgba(106,211,202,.08);border-radius:9px;background:rgba(6,20,25,.50)}
.provider-preset-models span{grid-row:1/3;color:#587a77;font-size:7px;padding-top:2px}
.provider-preset-models b{font-size:9px;color:#d7eeea;font-weight:650}
.provider-preset-models small{font-size:7px;color:#708d89;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.preset-provider-buttons{position:static!important;margin-top:0!important;padding:0!important;background:none!important;backdrop-filter:none!important;display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
.preset-provider-buttons button{height:40px!important;font-size:9px!important}
#uploadProvider:disabled{opacity:.58;cursor:wait}
.preset-provider-status{display:block!important;margin:8px 0 0!important;min-height:0!important;padding:7px 9px!important;font-size:8px!important;color:#7f9a97!important;background:rgba(5,20,23,.38)!important}
.preset-provider-status.ok{color:#81e0cf!important;border-color:rgba(103,244,223,.18)!important;background:rgba(37,112,96,.07)!important}
.preset-provider-status.busy{color:#a8d7d1!important}
.preset-provider-status.error{color:#ffb4a8!important;border-color:rgba(255,135,118,.18)!important;background:rgba(120,35,30,.06)!important}
.preset-provider-list{margin-top:9px!important}
.preset-empty{padding:9px 10px;border:1px dashed rgba(106,211,202,.08);border-radius:9px;color:#6f8a87!important;background:rgba(4,17,21,.32)}
.provider-bundle-card{padding:10px;border:1px solid rgba(82,221,232,.08);border-radius:10px;background:linear-gradient(180deg,rgba(10,30,34,.68),rgba(5,20,25,.52));margin-bottom:7px}
.provider-bundle-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.045)}
.provider-bundle-head>div{min-width:0}
.provider-bundle-head strong{display:block;font-size:9px;color:#e1f4f0}
.provider-bundle-head span{display:block;margin-top:3px;font-size:7px;color:#6f928e}
.provider-bundle-head>b{font-size:8px;color:#70d4c5;font-weight:650}
.provider-bundle-models{display:grid;gap:5px;padding-top:8px}
.preset-model-row{display:grid;grid-template-columns:8px 1fr auto;gap:7px;align-items:center;font-size:8px;color:#abc5c1}
.preset-model-row i{width:6px;height:6px;border-radius:50%;background:#607572;box-shadow:0 0 0 2px rgba(96,117,114,.08)}
.preset-model-row i.ok{background:#72dfc8;box-shadow:0 0 7px rgba(114,223,200,.35)}
.preset-model-row i.bad{background:#e58d82;box-shadow:0 0 7px rgba(229,141,130,.20)}
.preset-model-row small{font-size:7px;color:#647f7b}
@media(max-width:520px){.preset-provider-buttons{grid-template-columns:1fr!important}.provider-preset-badge{display:none}}

.provider-hidden-meta,.bridge-runtime-hidden{display:none!important}

/* API 极简：Key + 添加 API + 按区域随机分配 */
.api-key-only-section{padding-top:14px!important}.compact-key-head{margin-bottom:14px!important}
.api-key-only-label{display:grid;gap:8px;color:#89a09d;font-size:12px;margin:4px 0 14px}
.api-key-only-label input{height:48px;border:1px solid rgba(100,196,181,.18);border-radius:13px;background:#0b2027;color:#e5f7f2;padding:0 14px;font-size:14px;outline:none}
.api-key-only-label input:focus{border-color:rgba(100,221,199,.58);box-shadow:0 0 0 3px rgba(88,214,191,.08)}
.api-key-actions{grid-template-columns:1fr 1fr!important;gap:10px!important}.provider-hidden-meta{display:none!important}


/* 2026-09-13 · topbar stats restored; runtime/status chips remain hidden */
.ui-runtime-hidden{display:none!important}
.restored-top-stats{display:flex;align-items:center;gap:10px;white-space:nowrap;flex:0 0 auto}
.restored-top-stats>div{min-width:38px}
.restored-top-stats span{font-size:8px;line-height:1.05;letter-spacing:.04em}
.restored-top-stats strong{font-size:12px;line-height:1.1;font-variant-numeric:tabular-nums}
@media(max-width:1480px){.restored-top-stats{gap:7px}.restored-top-stats>div{min-width:34px}.restored-top-stats span{font-size:7px}.restored-top-stats strong{font-size:11px}}
@media(max-width:1180px){.view-switch{display:none!important}}
@media(max-width:900px){.restored-top-stats{display:none!important}}
