*{box-sizing:border-box}
:root{--bg:#071019;--panel:#0e1822;--panel2:#111e2a;--line:#283a4d;--text:#eaf1f6;--muted:#8da2b6;--accent:#2da8ff;--good:#4ad487;--warn:#f2bd57;--danger:#ff6262}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Consolas,"Courier New",monospace}button,input,select,textarea{font:inherit}button{cursor:pointer}.screen{display:none;min-height:100vh}.screen.active{display:block}.hidden{display:none!important}.eyebrow,.page-kicker{font-size:11px;letter-spacing:2px;color:#6f89a2}
.menu-screen{position:relative;overflow:auto;background:#050b11}.menu-bg{position:fixed;inset:0;background:radial-gradient(circle at 70% 35%,rgba(45,168,255,.12),transparent 35%),linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px),#071019;background-size:auto,42px 42px,42px 42px,auto}
.menu-shell{position:relative;z-index:1;width:min(1180px,calc(100vw - 48px));margin:0 auto;padding:38px 0 50px}.brand{padding:12px 0 26px;border-bottom:1px solid var(--line)}.brand h1{font-size:clamp(44px,6vw,76px);line-height:.92;letter-spacing:5px;margin:7px 0}.brand-sub{font-size:20px;letter-spacing:8px;color:var(--accent)}.build{margin-top:12px;color:#627b93;font-size:11px}
.menu-layout{display:grid;grid-template-columns:300px 1fr;gap:28px;padding-top:26px}.menu-nav{display:flex;flex-direction:column;gap:9px}.nav-btn,.wide-btn,.ghost-btn,.danger-btn,.time-controls button,.question-buttons button,.free-question button,.cad-buttons button,.roster-actions button,.protocol-control button{border:1px solid #31485e;background:#101c27;color:var(--text);padding:12px 14px;font-weight:700}.nav-btn{text-align:left}.nav-btn:hover,.wide-btn:hover,.ghost-btn:hover,.question-buttons button:hover,.free-question button:hover,.cad-buttons button:hover,.roster-actions button:hover,.protocol-control button:hover{background:#193049}.primary{background:#1f7fb6!important;border-color:#42a9e3!important;color:white!important}.danger-btn{background:#7d2528;border-color:#b4474a;color:white}.menu-content{border-left:1px solid var(--line);padding:8px 0 0 28px}.menu-page{display:none;max-width:780px}.menu-page.active{display:block}.menu-page h2{font-size:30px;margin:12px 0}.menu-page p{color:#aabccc;line-height:1.6}
.feature-grid,.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.feature-grid article,.editor-grid div,.chapter-box,.scenario-card,.save-slot{border:1px solid var(--line);background:rgba(13,23,32,.78);padding:16px}.feature-grid strong,.feature-grid span{display:block}.feature-grid span{color:var(--muted);font-size:12px;line-height:1.4;margin-top:6px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{font-size:11px;color:var(--muted)}input,select,textarea{width:100%;margin-top:5px;padding:9px;background:#09121a;border:1px solid #34495e;color:var(--text)}.chapter-box{margin-top:18px}.chapter-box strong,.chapter-box span{display:block}.chapter-box span{margin-top:7px;color:var(--muted);font-size:12px}.wide-btn{width:100%;margin-top:18px}.scenario-list,.save-slots{display:grid;gap:10px}.scenario-card,.save-slot{text-align:left;color:var(--text)}.scenario-card strong,.scenario-card span,.save-slot strong,.save-slot span{display:block}.scenario-card span,.save-slot span{margin-top:5px;color:var(--muted);font-size:12px}
.brief-shell{width:min(1080px,calc(100vw - 50px));margin:auto;padding:34px 0}.brief-header{display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:18px}.brief-header h2{font-size:34px;margin:7px 0}.brief-header p{color:var(--muted);margin:0}.brief-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.brief-card{border:1px solid var(--line);background:var(--panel);padding:16px}.brief-card h3{font-size:11px;letter-spacing:1px;color:var(--accent);margin-top:0}.span2{grid-column:span 2}.roster-preview{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.roster-mini{border:1px solid #27394b;background:#09131b;padding:10px}.roster-mini strong,.roster-mini span{display:block}.roster-mini span{font-size:11px;color:var(--muted);margin-top:4px}.begin-shift{margin-top:14px;padding:16px}
.topbar{height:70px;display:flex;align-items:center;gap:14px;padding:0 14px;border-bottom:1px solid var(--line);background:#0a141d}.game-brand{display:flex;flex-direction:column;min-width:230px}.game-brand strong{letter-spacing:1px}.game-brand span{font-size:10px;color:var(--accent);margin-top:3px}.time-controls{display:flex;gap:5px}.time-controls button{padding:8px 9px;font-size:10px}.time-controls button.active{background:#1f7fb6}.protocol-control button{padding:8px 10px;font-size:9px}.protocol-control button.active{background:#6c531d;border-color:#a47a2e;color:#ffe9ba}.top-status{margin-left:auto;display:flex;gap:14px;align-items:center}.top-status div{display:flex;flex-direction:column}.top-status small{font-size:9px;color:var(--muted)}.top-status span{font-size:14px}
.ops-banner{padding:8px 14px;background:#6b4d15;color:#ffe5ad;border-bottom:1px solid #9b762b;font-size:11px;letter-spacing:.3px}
.dispatch-grid{height:calc(100vh - 70px);padding:8px;display:grid;grid-template-columns:270px minmax(440px,1fr) 355px;grid-template-rows:minmax(390px,1fr) 255px;gap:8px}.panel{border:1px solid var(--line);background:var(--panel);min-height:0;overflow:hidden}.panel-title{height:34px;padding:0 10px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#142331;font-size:11px;letter-spacing:.8px;font-weight:700}
.queue-panel{grid-column:1;grid-row:1}.call-panel{grid-column:2;grid-row:1}.cad-panel{grid-column:3;grid-row:1/span 2}.resources-panel{grid-column:1;grid-row:2}.map-panel{grid-column:2;grid-row:2}.network-panel,.hospital-panel{display:none}
.call-queue{height:calc(100% - 34px);overflow:auto}.call-card{padding:10px;border-bottom:1px solid #233548;background:#0b151f;cursor:pointer}.call-card:hover,.call-card.selected{background:#173049}.call-card.duplicate{border-left:3px solid var(--warn)}.call-card.callback{border-left:3px solid var(--danger)}.call-card.remote{border-left:3px solid var(--good)}.call-row{display:flex;justify-content:space-between;gap:8px}.call-id{color:var(--accent);font-weight:700}.call-wait{color:var(--warn);font-size:10px}.call-preview{font-size:11px;color:#b6c5d2;margin-top:5px}.call-status{margin-top:7px;font-size:9px;color:#7f95aa}
.empty-state{padding:20px;color:var(--muted)}.active-call{height:calc(100% - 34px);display:flex;flex-direction:column}.call-head{height:56px;padding:9px 12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}.call-head div:first-child{display:flex;flex-direction:column}.call-head span{font-size:11px;color:var(--muted);margin-top:4px}.timer-chip{border:1px solid #3b5166;padding:6px 8px;color:var(--warn);font-size:11px}.conversation{flex:1;overflow:auto;padding:12px;background:#09121a}.msg{margin-bottom:11px;max-width:92%}.msg .who{font-size:9px;color:#6f879e;margin-bottom:3px}.msg.operator{color:#91ccff}.msg.caller{color:#eef3f7}.msg.system{color:#d2ac62}.question-area{border-top:1px solid var(--line);padding:10px;background:#0d1822}.question-label{font-size:9px;color:var(--muted);margin-bottom:6px}.question-buttons{display:flex;gap:6px;flex-wrap:wrap}.question-buttons button{font-size:10px;padding:7px 8px}.free-question{display:grid;grid-template-columns:1fr 74px;gap:6px;margin-top:7px}.free-question input{margin:0}.free-question button{padding:7px}.call-action-row{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:7px}.call-action-row button{padding:8px}
.cad-form{padding:10px;overflow:auto;height:calc(100% - 34px);display:grid;grid-template-columns:1fr 1fr;gap:8px;align-content:start}.wide-label{grid-column:span 2}.cad-buttons{grid-column:span 2;display:flex;gap:8px}.cad-buttons button{flex:1}.cad-feedback{grid-column:span 2;border-top:1px solid var(--line);padding-top:8px;font-size:11px;line-height:1.4}.cad-feedback.good{color:var(--good)}.cad-feedback.warn{color:var(--warn)}.supervisor-panel,.destination-panel{border:1px solid #35516c;background:#0a1824;padding:9px;font-size:10px;line-height:1.45}.supervisor-panel strong,.destination-panel strong{color:var(--accent)}
.resource-list{height:calc(100% - 34px);overflow:auto;padding:8px}.resource-row{border:1px solid #24384a;background:#0a141d;padding:7px;margin-bottom:5px}.resource-main{display:grid;grid-template-columns:62px 1fr 72px;gap:6px;align-items:center}.resource-row strong{color:var(--accent);font-size:11px}.resource-row span{font-size:10px}.resource-row button{padding:6px;font-size:9px;border:1px solid #35506a;background:#183149;color:white}.break-due{color:var(--warn)!important}.shift-note{display:block;color:#7f95aa;margin-top:4px}.roster-actions{display:flex;gap:5px;margin-top:6px}.roster-actions button{padding:5px 6px;font-size:8px}
.map{height:calc(100% - 50px);margin:8px;position:relative;overflow:hidden;border:1px solid #324b61;background:#0d1a25}.map-gridlines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:35px 35px;pointer-events:none}.road-layer,.route-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.road-line{stroke:#36526a;stroke-width:.65;fill:none;vector-effect:non-scaling-stroke}.route-line{stroke:#e6b34e;stroke-width:1.8;fill:none;stroke-dasharray:4 2;vector-effect:non-scaling-stroke}.marker{position:absolute;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;border:2px solid #071019;transform:translate(-50%,-50%)}.marker.incident{background:var(--danger);color:white}.marker.unit{background:var(--accent);color:#02101b}.marker.hospital{background:#f2f4f6;color:#101010}.marker.station{background:#5ed08c;color:#07120b}.marker.divert{background:#ffb44e;color:#201100}
.network-list,.hospital-list{padding:8px;overflow:auto;height:calc(100% - 34px)}.network-card,.hospital-card{border:1px solid #294055;background:#0a141d;padding:8px;margin-bottom:6px}.network-top,.hospital-top{display:flex;justify-content:space-between}.network-card strong,.hospital-card strong{font-size:10px}.network-card span,.hospital-card span{display:block;font-size:9px;color:var(--muted);margin-top:4px}.status-AVAILABLE,.status-OPEN{color:var(--good)!important}.status-BUSY,.status-DIVERT{color:var(--warn)!important}.status-CLOSED{color:var(--danger)!important}
.report-shell{width:min(920px,calc(100vw - 50px));margin:auto;padding:42px 0}.report-header{border-bottom:1px solid var(--line);padding-bottom:16px}.report-header h2{font-size:38px;margin:8px 0}.report-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.stat-card{border:1px solid var(--line);background:var(--panel);padding:16px}.stat-card strong,.stat-card span{display:block}.stat-card strong{font-size:24px}.stat-card span{font-size:10px;color:var(--muted);margin-top:5px}.report-outcome{border:1px solid var(--line);background:#0e1822;padding:18px;line-height:1.6}.report-actions{display:flex;gap:10px;margin-top:16px}.report-actions button{flex:1;padding:13px;border:1px solid #31485e;background:#101c27;color:white}
@media(min-width:1500px){.dispatch-grid{grid-template-columns:260px minmax(500px,1fr) 355px 270px;grid-template-rows:minmax(390px,1fr) 255px}.cad-panel{grid-column:3;grid-row:1/span 2}.network-panel{display:block;grid-column:4;grid-row:1}.hospital-panel{display:block;grid-column:4;grid-row:2}}
@media(max-width:1000px){.menu-layout{grid-template-columns:1fr}.menu-nav{display:grid;grid-template-columns:1fr 1fr}.menu-content{border-left:0;border-top:1px solid var(--line);padding:20px 0}.dispatch-grid{height:auto;grid-template-columns:250px 1fr;grid-template-rows:430px 300px auto}.cad-panel{grid-column:1/span 2;grid-row:3}.resources-panel{grid-column:1;grid-row:2}.map-panel{grid-column:2;grid-row:2}}


/* === v0.6 REAL MAP === */
.real-map{
  height:calc(100% - 50px);
  margin:8px;
  position:relative;
  overflow:hidden;
  border:1px solid #324b61;
  background:#0b151e;
}
.real-map .maplibregl-canvas{outline:none}
.real-map .maplibregl-ctrl-bottom-left,
.real-map .maplibregl-ctrl-bottom-right{font-size:9px}
.real-map .maplibregl-ctrl-attrib{
  background:rgba(5,11,17,.82);
  color:#c4d2df;
}
.real-map .maplibregl-ctrl-attrib a{color:#8ecbff}
.real-map .maplibregl-ctrl-group{
  background:#101c27;
  border:1px solid #31485e;
}
.real-map .maplibregl-ctrl-group button{filter:invert(.85)}
.map-provider-status{font-size:9px;color:var(--warn);margin-right:8px}
.map-provider-status.online{color:var(--good)}
.map-provider-status.fallback{color:var(--warn)}
.map-offline{
  position:absolute;z-index:20;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(420px,80%);padding:16px;border:1px solid #755b28;background:rgba(15,22,28,.94);
  text-align:center;color:#f0d79f;
}
.map-offline strong,.map-offline span{display:block}
.map-offline span{font-size:10px;line-height:1.5;margin-top:7px;color:#cdbb93}
.cad-map-marker{
  width:25px;height:25px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  border:2px solid #071019;font-size:9px;font-weight:800;
  box-shadow:0 1px 7px rgba(0,0,0,.65);
  cursor:pointer;user-select:none;
}
.cad-map-marker.unit{background:#2da8ff;color:#03111b}
.cad-map-marker.incident{background:#ff6262;color:white}
.cad-map-marker.hospital{background:#f0f2f4;color:#111}
.cad-map-marker.hospital.restricted{background:#f2bd57;color:#211600}
.cad-map-marker.station{background:#4ad487;color:#06130c}
.cad-map-marker.selected{
  outline:3px solid rgba(255,255,255,.85);
  outline-offset:2px;
}
.maplibregl-popup-content{
  background:#101c27;color:#eaf1f6;border:1px solid #31485e;
  font-family:Consolas,"Courier New",monospace;font-size:10px;padding:9px;
}
.maplibregl-popup-tip{border-top-color:#101c27!important}
.route-source-badge{
  display:inline-block;padding:2px 5px;margin-left:4px;border:1px solid #38546c;
  font-size:8px;color:#9fc7e4;
}


/* === v0.7 workflow systems === */
.service-toggle-card{
  margin-top:14px;padding:12px;border:1px solid var(--line);background:#0c1620;
  display:flex;gap:20px;flex-wrap:wrap
}
.service-toggle-card input{width:auto;margin-right:6px}
.map-panel{position:relative}
.map-toolbar{
  position:absolute;z-index:25;left:14px;top:42px;width:min(520px,calc(100% - 95px));
  background:rgba(6,13,19,.90);border:1px solid #31485e;padding:7px
}
.map-search{display:grid;grid-template-columns:1fr 72px;gap:5px}
.map-search input{margin:0;padding:6px;font-size:10px}
.map-search button{border:1px solid #35506a;background:#183149;color:white;font-size:9px;font-weight:700}
.map-filter-row{display:flex;gap:9px;flex-wrap:wrap;margin-top:6px}
.map-filter-row label{font-size:8px;color:#b8c8d6}
.map-filter-row input{width:auto;margin:0 3px 0 0}
.address-results{
  position:absolute;top:67px;left:0;width:100%;max-height:180px;overflow:auto;
  background:#09131b;border:1px solid #35506a
}
.address-result{
  padding:8px;border-bottom:1px solid #26384a;cursor:pointer;font-size:9px;line-height:1.35
}
.address-result:hover{background:#163049}
.address-result strong,.address-result span{display:block}.address-result span{color:var(--muted);margin-top:3px}
.cover-panel{display:none}
.cover-list{padding:8px;overflow:auto;height:calc(100% - 34px)}
.cover-row{border:1px solid #294055;background:#0a141d;padding:8px;margin-bottom:6px}
.cover-row-head{display:flex;justify-content:space-between;align-items:center}
.cover-row strong{font-size:10px}.cover-row span{font-size:9px;color:var(--muted)}
.cover-pill{padding:2px 5px;border:1px solid #334b61;font-size:8px;font-weight:700}
.cover-GREEN{color:var(--good)}.cover-AMBER{color:var(--warn)}.cover-RED{color:var(--danger)}
.cover-map-ring{border-radius:50%;border:2px solid rgba(74,212,135,.55);background:rgba(74,212,135,.08)}
.cover-map-ring.amber{border-color:rgba(242,189,87,.65);background:rgba(242,189,87,.08)}
.cover-map-ring.red{border-color:rgba(255,98,98,.70);background:rgba(255,98,98,.08)}
.resource-main{grid-template-columns:58px 1fr 66px!important}
.roster-actions{display:flex;gap:4px;flex-wrap:wrap}
.roster-actions button{padding:4px 5px!important}
.service-badge{
  display:inline-block;margin-left:5px;padding:1px 4px;border:1px solid #3b5368;font-size:8px
}
.service-POLICE{color:#9bc3ff}.service-AMBULANCE{color:#7ee09e}
.alerts-drawer{
  position:fixed;z-index:5000;right:12px;top:82px;width:360px;max-height:48vh;overflow:auto;
  pointer-events:none
}
.alerts-title{
  display:none;background:#162534;border:1px solid #38516a;padding:7px 9px;
  font-size:9px;letter-spacing:.7px
}
.alerts-drawer.has-alerts .alerts-title{display:block}
.alert-card{
  pointer-events:auto;margin-top:6px;border:1px solid #8b6928;background:rgba(31,25,12,.97);
  padding:10px;box-shadow:0 4px 20px rgba(0,0,0,.42)
}
.alert-card.urgent{border-color:#a83d43;background:rgba(45,17,19,.97)}
.alert-card strong,.alert-card span{display:block}
.alert-card strong{font-size:10px}.alert-card span{font-size:9px;color:#d4c7a9;line-height:1.45;margin-top:5px}
.alert-actions{display:flex;gap:6px;margin-top:8px}
.alert-actions button{border:1px solid #735d30;background:#352b16;color:#ffe6a8;padding:5px 7px;font-size:8px;font-weight:700}
.modal{position:fixed;z-index:7000;inset:0;background:rgba(0,0,0,.62);display:flex;align-items:center;justify-content:center}
.modal-card{width:min(560px,90vw);background:#0d1822;border:1px solid #3a536a;padding:14px}
.modal-title{display:flex;justify-content:space-between;font-size:11px;color:var(--accent);letter-spacing:.7px}
.modal-title button{border:0;background:transparent;color:white;font-size:20px;padding:0}
.modal-sub{font-size:10px;color:var(--muted);margin:8px 0}
.standby-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.standby-option{border:1px solid #31485e;background:#101c27;color:#eaf1f6;padding:10px;text-align:left}
.standby-option strong,.standby-option span{display:block}.standby-option span{font-size:9px;color:var(--muted);margin-top:4px}
.search-marker{background:#d59cff!important;color:#14051c!important}
.cad-map-marker.police-unit{background:#8dbaff;color:#06111f}
.cad-map-marker.police-incident{background:#a56fff;color:white}
@media(min-width:1500px){
  .cover-panel{display:block;grid-column:1;grid-row:2}
  .resources-panel{grid-column:1;grid-row:1}
  .queue-panel{grid-column:2;grid-row:1}
  .call-panel{grid-column:3;grid-row:1}
  .cad-panel{grid-column:4;grid-row:1/span 2}
  .map-panel{grid-column:2/span 2;grid-row:2}
  .network-panel,.hospital-panel{display:none}
  .dispatch-grid{grid-template-columns:250px 270px minmax(520px,1fr) 355px;grid-template-rows:minmax(390px,1fr) 255px}
}


/* === v0.8 MULTI-AGENCY / RADIO / CUSTODY === */
.linked-cad-panel{
  border:1px solid #3a5065;background:#0b1721;padding:8px;font-size:9px;line-height:1.45
}
.linked-cad-panel strong{color:var(--accent)}
.linked-cad-chip{
  display:inline-block;margin:2px 4px 2px 0;padding:2px 5px;border:1px solid #41596f;
  background:#101f2b;color:#dbe7f1;font-size:8px;cursor:pointer
}
.radio-panel,.custody-panel{display:none}
.radio-queue,.custody-list{height:calc(100% - 34px);overflow:auto;padding:8px}
.radio-card{
  border:1px solid #30475b;background:#0a151f;padding:8px;margin-bottom:6px
}
.radio-card.unread{border-left:3px solid var(--warn)}
.radio-card.urgent{border-left:3px solid var(--danger)}
.radio-card strong,.radio-card span{display:block}
.radio-card strong{font-size:9px;color:#cbe5fa}
.radio-card span{font-size:9px;color:#9eb1c2;line-height:1.4;margin-top:4px}
.radio-actions{display:flex;gap:5px;margin-top:7px;flex-wrap:wrap}
.radio-actions button{
  border:1px solid #36516a;background:#13283a;color:#eaf1f6;padding:5px 6px;font-size:8px
}
.custody-card{
  border:1px solid #294055;background:#0a141d;padding:8px;margin-bottom:6px
}
.custody-top{display:flex;justify-content:space-between;gap:8px}
.custody-card strong{font-size:9px}.custody-card span{display:block;font-size:8px;color:var(--muted);margin-top:4px}
.custody-bar{height:5px;background:#1a2936;margin-top:6px;overflow:hidden}
.custody-bar > i{display:block;height:100%;background:#76b8e8}
.cad-map-marker.suspect{
  width:18px;height:18px;background:#ffcf5a;color:#1d1400;border-radius:3px
}
.cad-map-marker.fire-unit{background:#ff8a5b;color:#200900}
.cad-map-marker.fire-incident{background:#ff4e35;color:#fff}
.master-tag{
  display:inline-block;padding:1px 4px;border:1px solid #576b7c;color:#bcd0df;font-size:8px
}
@media(min-width:1650px){
  .dispatch-grid{
    grid-template-columns:240px 260px minmax(500px,1fr) 350px 280px;
    grid-template-rows:minmax(380px,1fr) 255px;
  }
  .resources-panel{grid-column:1;grid-row:1}
  .cover-panel{display:block;grid-column:1;grid-row:2}
  .queue-panel{grid-column:2;grid-row:1}
  .radio-panel{display:block;grid-column:2;grid-row:2}
  .call-panel{grid-column:3;grid-row:1}
  .map-panel{grid-column:3;grid-row:2}
  .cad-panel{grid-column:4;grid-row:1/span 2}
  .custody-panel{display:block;grid-column:5;grid-row:1}
  .hospital-panel{display:block;grid-column:5;grid-row:2}
  .network-panel{display:none}
}


/* === v0.9 COMMAND / EDITOR / HISTORY === */
.update-log-list{display:grid;gap:9px;max-height:520px;overflow:auto;padding-right:4px}
.update-log-entry{border:1px solid var(--line);background:#0b1620;padding:12px}
.update-log-head{display:flex;justify-content:space-between;gap:10px}
.update-log-entry strong{font-size:11px;color:#dceaf5}
.update-log-entry em{font-style:normal;font-size:9px;color:var(--accent)}
.update-log-entry ul{margin:8px 0 0 17px;padding:0;color:#91a7ba;font-size:9px;line-height:1.55}
.editor-builder{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}
.editor-sequence{border:1px solid var(--line);background:#09131b;min-height:140px;max-height:240px;overflow:auto;padding:7px}
.editor-sequence-row{display:flex;justify-content:space-between;gap:8px;padding:7px;border-bottom:1px solid #24384a;font-size:9px}
.editor-sequence-row button{border:0;background:transparent;color:var(--danger);font-size:12px}
.editor-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.editor-saved-title{margin-top:22px}
.history-panel,.major-incident-panel{
  border:1px solid #35516c;background:#0a1824;padding:8px;font-size:9px;line-height:1.45
}
.history-panel strong,.major-incident-panel strong{color:var(--accent)}
.history-line{margin-top:4px;color:#a8bac9}
.major-state{display:inline-block;margin-left:5px;padding:1px 5px;border:1px solid #8a5e34;color:#ffd094}
.radio-toolbar{padding:5px 8px;border-bottom:1px solid var(--line);background:#0b1620}
.radio-toolbar select{margin:0;padding:5px;font-size:9px}
.radio-queue{height:calc(100% - 68px)!important}
.radio-channel{
  display:inline-block;margin-left:5px;padding:1px 4px;border:1px solid #435e74;
  color:#8ecbff;font-size:8px
}
.command-drawer{
  position:fixed;z-index:5200;left:12px;bottom:12px;width:390px;max-height:44vh;overflow:auto;
  border:1px solid #8f6832;background:rgba(20,16,10,.97);box-shadow:0 4px 22px rgba(0,0,0,.5)
}
.command-title{padding:8px 10px;border-bottom:1px solid #72552c;color:#ffd89c;font-size:10px;letter-spacing:.7px}
.command-card{padding:10px;border-bottom:1px solid #4c3b22}
.command-card strong,.command-card span{display:block}
.command-card strong{font-size:10px;color:#ffe2b0}.command-card span{font-size:9px;color:#c8b999;margin-top:4px}
.command-levels{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:8px}
.command-level{border:1px solid #5a472a;padding:6px;font-size:8px}
.command-actions{display:flex;gap:5px;margin-top:8px}
.command-actions button{border:1px solid #72582f;background:#312512;color:#ffe0a3;padding:5px 7px;font-size:8px}
.pursuit-tag{color:#ffdb63!important;font-weight:700}
.cad-map-marker.pursuit{
  width:22px;height:22px;background:#ffe05a;color:#1a1300;border-radius:3px;
  box-shadow:0 0 0 3px rgba(255,224,90,.22),0 1px 7px rgba(0,0,0,.65)
}
@media(max-width:850px){
  .editor-builder{grid-template-columns:1fr}
  .command-drawer{width:calc(100vw - 24px)}
}


/* === v1.0 POLISH / ACCESSIBILITY / TRAINING === */
.training-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}
.training-grid article{border:1px solid var(--line);background:#0b1620;padding:14px}
.training-grid strong,.training-grid span{display:block}
.training-grid strong{font-size:10px;color:#dceaf5}
.training-grid span{margin-top:5px;color:var(--muted);font-size:9px;line-height:1.45}
.settings-toggles{margin-top:14px}
.settings-section-title{margin-top:20px;color:var(--accent);font-size:9px;letter-spacing:1px}
.settings-data-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.import-file-btn{
  margin-top:18px;border:1px solid #31485e;background:#101c27;color:var(--text);
  padding:12px 14px;font-weight:700;text-align:center;cursor:pointer
}
.import-file-btn input{display:none}
.settings-note{margin-top:8px;color:var(--muted);font-size:9px;min-height:16px}
.workspace-control select{margin:0;padding:7px;font-size:9px;width:auto}
.top-help-btn{
  width:30px;height:30px;border:1px solid #31485e;background:#101c27;color:#eaf1f6;font-weight:800
}
.tutorial-overlay{
  position:fixed;z-index:8000;inset:0;pointer-events:none;background:rgba(2,6,10,.25)
}
.tutorial-card{
  pointer-events:auto;position:absolute;right:18px;bottom:18px;width:min(420px,calc(100vw - 36px));
  background:#0c1822;border:1px solid #4b6b86;padding:15px;box-shadow:0 8px 30px rgba(0,0,0,.55)
}
.tutorial-step{font-size:8px;color:var(--accent);letter-spacing:1px}
.tutorial-card h3{margin:7px 0;font-size:17px}
.tutorial-card p{margin:0;color:#b7c7d4;font-size:10px;line-height:1.55}
.tutorial-actions{display:flex;gap:8px;margin-top:12px}
.tutorial-actions button{flex:1;border:1px solid #38536a;background:#112333;color:#eaf1f6;padding:8px;font-size:9px;font-weight:700}
.shortcut-card{width:min(620px,90vw)}
.shortcut-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.shortcut-grid span{border:1px solid #2b4052;background:#09131b;padding:8px;font-size:9px;color:#b6c6d4}
kbd{display:inline-block;min-width:32px;text-align:center;border:1px solid #4a6277;background:#142331;color:#fff;padding:2px 5px;margin-right:7px}
.recovery-prompt{
  position:fixed;z-index:8500;left:50%;top:20px;transform:translateX(-50%);
  width:min(580px,calc(100vw - 30px));background:#162333;border:1px solid #58718a;padding:12px;
  box-shadow:0 6px 24px rgba(0,0,0,.5)
}
.recovery-prompt strong,.recovery-prompt span{display:block}
.recovery-prompt strong{font-size:10px;color:#fff}
.recovery-prompt span{margin-top:5px;font-size:9px;color:#b8c6d3}
.recovery-prompt div{display:flex;gap:7px;margin-top:9px}
.recovery-prompt button{flex:1;border:1px solid #38536a;background:#101c27;color:white;padding:7px;font-size:9px}
.runtime-error{
  position:fixed;z-index:9000;left:12px;right:12px;bottom:12px;background:#45191d;border:1px solid #a3474d;
  color:#ffd9dc;padding:10px;display:flex;align-items:center;gap:12px
}
.runtime-error strong{font-size:10px}.runtime-error span{font-size:9px;flex:1}.runtime-error button{border:1px solid #a3474d;background:#2d1013;color:white;padding:5px 8px}
body.high-contrast{--bg:#000;--panel:#050505;--panel2:#0a0a0a;--line:#8a8a8a;--text:#fff;--muted:#d0d0d0;--accent:#57c4ff;--good:#70ff9a;--warn:#ffd35a;--danger:#ff7474}
body.reduced-motion *,body.reduced-motion *::before,body.reduced-motion *::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}
body.ui-90{font-size:90%} body.ui-110{font-size:110%} body.ui-125{font-size:125%}
body.workspace-calls .map-panel{opacity:.55}
body.workspace-calls .cad-panel{border-color:#4b7090}
body.workspace-dispatch .queue-panel{opacity:.65}
body.workspace-dispatch .resources-panel{border-color:#4b7090}
body.workspace-map .map-panel{position:fixed;z-index:3000;left:10px;right:10px;top:78px;bottom:10px;height:auto}
body.workspace-map .map-panel .real-map{height:calc(100% - 50px)}
body.workspace-multi .queue-panel,
body.workspace-multi .resources-panel,
body.workspace-multi .radio-panel,
body.workspace-multi .cad-panel{border-color:#4b7090}
@media(max-width:800px){
  .training-grid,.settings-data-actions,.shortcut-grid{grid-template-columns:1fr}
}


/* === v1.2 AUTHORITATIVE ENGINE DIAGNOSTICS === */
.engine-status{
  display:flex;flex-direction:column;min-width:142px;padding:6px 9px;
  border:1px solid #2e475d;background:#0b1721
}
.engine-status strong{font-size:8px;letter-spacing:.8px;color:#8ecbff}
.engine-status span{font-size:9px;color:#80db9b;margin-top:2px}
.engine-status.denied{border-color:#8e3d43;background:#261217}
.engine-status.denied span{color:#ff8c94}
.engine-status.busy span{color:#f2bd57}


/* === v1.3 PROFESSIONAL CONTROL WORKSTATION === */
.workstation-login-screen{
  background:
    radial-gradient(circle at 70% 25%,rgba(45,168,255,.09),transparent 34%),
    linear-gradient(rgba(255,255,255,.013) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.013) 1px,transparent 1px),
    #071019;
  background-size:auto,36px 36px,36px 36px,auto
}
.workstation-login-shell{width:min(850px,calc(100vw - 40px));margin:auto;padding-top:8vh}
.login-brand{border-bottom:1px solid var(--line);padding-bottom:16px}
.login-brand h2{font-size:36px;margin:7px 0}.login-brand p{color:var(--muted);font-size:11px}
.login-card{margin-top:18px;border:1px solid var(--line);background:rgba(12,24,34,.95);padding:18px}
.login-permissions-preview{margin-top:14px;padding:10px;border:1px solid #2e465a;background:#09131b;font-size:9px;color:#9fb2c2;line-height:1.6}
.login-permissions-preview strong{color:var(--accent)}
.login-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}
.login-actions button{border:1px solid #31485e;background:#101c27;color:#eaf1f6;padding:11px;font-weight:700}

.monitor-control{display:flex;gap:3px}
.monitor-btn,.workspace-control button{
  border:1px solid #31485e;background:#101c27;color:#eaf1f6;padding:7px 8px;font-size:9px;font-weight:700
}
.monitor-btn.active{background:#1f7fb6;border-color:#42a9e3}
.workspace-control{display:flex;gap:4px}
.window-manager-menu{
  position:fixed;z-index:6500;top:73px;right:12px;width:370px;
  background:#0b1620;border:1px solid #38536a;box-shadow:0 8px 30px rgba(0,0,0,.55);padding:9px
}
.window-manager-title{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:var(--accent);letter-spacing:.8px}
.window-manager-title button{border:0;background:transparent;color:white;font-size:18px}
.window-manager-subtitle{font-size:8px;color:#7f95aa;margin:9px 0 5px}
.window-manager-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.window-manager-actions button{border:1px solid #30495f;background:#112333;color:#eaf1f6;padding:7px;font-size:8px;text-align:left}

.game-screen.workstation-live .dispatch-grid{
  display:block!important;position:relative;height:calc(100vh - 78px);padding:0;overflow:hidden
}
.game-screen.workstation-live .panel.workspace-window{
  position:absolute!important;display:block!important;margin:0!important;
  min-width:260px;min-height:160px;max-width:none;max-height:none;
  box-shadow:0 7px 24px rgba(0,0,0,.48);overflow:hidden;
  resize:both;
}
.workspace-window.focused{z-index:2500!important;border-color:#4e7696}
.workspace-window.minimized{height:34px!important;min-height:34px!important;resize:none!important}
.workspace-window.minimized > :not(.workspace-titlebar):not(.panel-title){display:none!important}
.workspace-titlebar{
  height:24px;background:#0a1118;border-bottom:1px solid #273c4d;
  display:flex;align-items:center;padding:0 5px;gap:5px;cursor:move;user-select:none
}
.workspace-titlebar .window-name{font-size:8px;letter-spacing:.6px;color:#a9bfd0;flex:1}
.workspace-titlebar button{
  border:1px solid #31485e;background:#101d28;color:#dce8f1;height:18px;min-width:22px;padding:0 4px;font-size:8px
}
.workspace-titlebar .monitor-cycle{color:#8ecbff}
.workspace-window .panel-title{height:30px}
.game-screen.workstation-live .panel.workspace-window .call-queue,
.game-screen.workstation-live .panel.workspace-window .resource-list,
.game-screen.workstation-live .panel.workspace-window .radio-queue,
.game-screen.workstation-live .panel.workspace-window .hospital-list,
.game-screen.workstation-live .panel.workspace-window .network-list,
.game-screen.workstation-live .panel.workspace-window .custody-list,
.game-screen.workstation-live .panel.workspace-window .cover-list{
  height:calc(100% - 54px)
}
.game-screen.workstation-live .panel.workspace-window .active-call{height:calc(100% - 54px)}
.game-screen.workstation-live .panel.workspace-window .cad-form{height:calc(100% - 54px)}
.game-screen.workstation-live .panel.workspace-window .real-map{height:calc(100% - 70px)}
#mirrorWindowLayer{position:absolute;inset:78px 0 0 0;pointer-events:none;z-index:2400}
.mirror-window{
  pointer-events:auto;position:absolute;min-width:260px;min-height:160px;
  border:1px solid #38536a;background:#0d1822;box-shadow:0 7px 24px rgba(0,0,0,.48);resize:both;overflow:hidden
}
.mirror-body{height:calc(100% - 24px);overflow:auto;padding:8px;font-size:9px;color:#b7c8d5}
.mirror-row{padding:6px;border-bottom:1px solid #263a4c}
.mirror-row strong,.mirror-row span{display:block}.mirror-row span{margin-top:3px;color:#8299ad}
.mirror-map-placeholder{height:100%;display:flex;align-items:center;justify-content:center;text-align:center;color:#90a7b9;padding:20px;background:#09131b}
.service-cad-panel{border:1px solid #35516c;background:#0a1824;padding:8px}
.service-cad-title{font-size:9px;color:var(--accent);letter-spacing:.7px;margin-bottom:7px}
.service-cad-section{border-top:1px solid #24394c;padding-top:7px;margin-top:7px}
.service-cad-section:first-of-type{border-top:0;padding-top:0}
.service-cad-section strong{display:block;font-size:8px;color:#bcd0df;margin-bottom:5px}
.service-cad-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.service-cad-fields label{font-size:8px}.service-cad-fields input,.service-cad-fields select{padding:6px;font-size:9px}
.cad-service-AMBULANCE{border-left:3px solid #4ad487}
.cad-service-POLICE{border-left:3px solid #8dbaff}
.cad-service-FIRE{border-left:3px solid #ff8a5b}
.map-popup-card{font-size:9px;line-height:1.45;min-width:190px}
.map-popup-card strong,.map-popup-card span{display:block}
.map-popup-card span{color:#a8bac9;margin-top:3px}
.map-popup-card button{margin-top:7px;width:100%;border:1px solid #3d5b73;background:#153047;color:white;padding:6px;font-size:8px;font-weight:700}
@media(max-width:900px){
  .monitor-control{display:none}
  .workspace-control{display:none}
  .login-actions{grid-template-columns:1fr}
}


/* === v1.4 LIVING EMERGENCY WORLD === */
.incident-timeline-panel{
  border:1px solid #35516c;background:#08151f;padding:8px;max-height:190px;overflow:auto
}
.incident-timeline-title{font-size:8px;color:var(--accent);letter-spacing:.7px;margin-bottom:6px}
.incident-timeline-entry{position:relative;padding:5px 5px 5px 17px;border-left:1px solid #314a5f;font-size:8px;line-height:1.45;color:#9fb2c3}
.incident-timeline-entry::before{content:"";position:absolute;left:-4px;top:10px;width:7px;height:7px;border-radius:50%;background:#4d7899}
.incident-timeline-entry.evolution::before{background:#f2bd57}
.incident-timeline-entry.secondary::before{background:#ff8a5b}
.incident-timeline-entry.masscall::before{background:#d59cff}
.incident-timeline-entry strong{color:#d9e6ef;margin-right:5px}
.caller-traits{
  display:flex;gap:4px;flex-wrap:wrap;margin:6px 0
}
.caller-trait{
  padding:2px 5px;border:1px solid #334d63;background:#0c1b27;font-size:8px;color:#a8bed0
}
.caller-trait.risk{border-color:#79592b;color:#f1c86d}
.world-badge{
  display:inline-block;padding:1px 5px;margin-left:5px;border:1px solid #50697f;color:#8fc9ee;font-size:8px
}


/* === v1.5 CONTROL ROOM PEOPLE & MANAGEMENT === */
.staffing-preview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.staffing-preview-row{
  display:grid;grid-template-columns:minmax(120px,1fr) 145px 155px;gap:6px;align-items:center;
  border:1px solid #294055;background:#0a141d;padding:7px
}
.staffing-preview-row strong{font-size:9px}.staffing-preview-row span{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.staffing-preview-row select{margin:0;padding:5px;font-size:8px}
.staff-list{height:calc(100% - 54px);overflow:auto;padding:7px}
.staff-row{border:1px solid #294055;background:#0a141d;padding:7px;margin-bottom:6px}
.staff-row.absent{opacity:.58;border-color:#5a3337}.staff-row.break{border-color:#6f592f}
.staff-row-head{display:flex;justify-content:space-between;gap:6px;align-items:center}
.staff-row-head strong{font-size:9px}.staff-row-head span{font-size:8px;color:var(--muted)}
.staff-row-main{display:grid;grid-template-columns:1fr 105px;gap:6px;margin-top:5px}
.staff-bars{display:grid;gap:4px}
.staff-bar-line{display:grid;grid-template-columns:56px 1fr 30px;gap:5px;align-items:center;font-size:8px;color:#859bad}
.staff-meter{height:5px;background:#1a2936;overflow:hidden}.staff-meter i{display:block;height:100%;background:#76b8e8}
.staff-meter.fatigue i{background:#f2bd57}.staff-meter.workload i{background:#d59cff}
.staff-actions{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.staff-actions button,.staff-actions select{
  border:1px solid #30495f;background:#112333;color:#eaf1f6;padding:4px 5px;font-size:8px
}
.staff-actions select{max-width:125px}
.staff-pressure{
  display:inline-block;padding:1px 5px;border:1px solid #3d566c;font-size:8px
}
.staff-pressure.LOW{color:#70df94}.staff-pressure.MODERATE{color:#a7d7ff}.staff-pressure.HIGH{color:#f2bd57}.staff-pressure.CRITICAL{color:#ff7474;border-color:#7c3c42}
.staff-profile-card{width:min(720px,92vw)}
.staff-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.staff-profile-section{border:1px solid #2d4559;background:#09141d;padding:9px}
.staff-profile-section strong{display:block;font-size:9px;color:var(--accent);margin-bottom:6px}
.staff-profile-section span{display:block;font-size:9px;color:#a9bac8;line-height:1.55}
.staff-skill-line{display:grid;grid-template-columns:100px 1fr 36px;gap:6px;align-items:center;margin:5px 0;font-size:8px}
.staff-qualifications{display:flex;gap:4px;flex-wrap:wrap}
.staff-qualifications i{font-style:normal;border:1px solid #38536a;padding:2px 5px;font-size:8px;color:#b9d2e4}
.management-pathway{margin-top:7px;padding:7px;border:1px solid #324a5f;background:#09141d;font-size:8px;color:#99adbd;line-height:1.5}
.management-pathway strong{color:#dce9f2}
.staff-alert{color:#f2bd57;font-weight:700}
@media(max-width:850px){
  .staffing-preview{grid-template-columns:1fr}
  .staffing-preview-row{grid-template-columns:1fr}
  .staff-profile-grid{grid-template-columns:1fr}
}


/* === v1.6 FULL EMERGENCY SERVICES / CALL LINE === */
.story-desk-notice{
  margin-top:12px;border:1px solid #725b2f;background:#20190c;color:#f2d59c;padding:10px;
  font-size:9px;line-height:1.5
}
.story-desk-notice strong{display:block;color:#ffe6b5;margin-bottom:4px}
.line-state-badge{
  display:inline-block;margin-left:5px;padding:2px 5px;border:1px solid #3f596d;
  font-size:8px;color:#97bed8
}
.line-state-badge.connected{border-color:#347452;color:#7ce4a2}
.line-state-badge.disconnected{border-color:#793d43;color:#ff9299}
.call-controls-disabled{opacity:.45;pointer-events:none}
.capability-panel{border:1px solid #314a60;background:#091720;padding:8px;font-size:9px;line-height:1.45}
.capability-panel strong{color:var(--accent)}
.capability-chip{display:inline-block;margin:3px 3px 0 0;padding:2px 5px;border:1px solid #3e596e;font-size:8px;color:#a9bfd0}
.capability-chip.available{border-color:#35714c;color:#79dc98}
.capability-chip.shortfall{border-color:#7f4a34;color:#f5a77e}
.resource-capabilities{display:flex;gap:3px;flex-wrap:wrap;margin-top:4px}
.resource-capabilities i{font-style:normal;border:1px solid #32495c;padding:1px 4px;font-size:7px;color:#8eabc1}
.resource-row.capability-match{border-left:3px solid #52c37c}
.resource-row.capability-poor{border-left:3px solid #b86a43}


/* === v1.7 EMERGENCY OPERATIONS CREATOR === */
.creator-page{max-width:none}
.creator-topbar,.creator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.creator-wide{grid-column:1/-1}
.creator-tabs{display:flex;gap:4px;flex-wrap:wrap;margin:14px 0}
.creator-tab{border:1px solid #314b60;background:#0d1b26;color:#a9bfd0;padding:8px 10px;font-size:8px;font-weight:700}
.creator-tab.active{background:#1a577a;border-color:#3e8fbd;color:#fff}
.creator-section{display:none;border:1px solid #2d4559;background:#09141d;padding:13px}
.creator-section.active{display:block}
.creator-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.creator-section-title{font-size:8px;color:var(--accent);letter-spacing:.8px;margin:7px 0}
.creator-inline-form{display:grid;grid-template-columns:1fr 130px 120px;gap:5px}
.creator-form-stack{display:grid;gap:5px}
.creator-coordinate-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}
.creator-list{border:1px solid #263b4d;background:#071019;min-height:100px;max-height:250px;overflow:auto;margin-top:8px;padding:5px}
.creator-list-tall{max-height:330px}
.creator-list-row{display:grid;grid-template-columns:1fr auto;gap:6px;align-items:center;border-bottom:1px solid #243748;padding:7px}
.creator-list-row:last-child{border-bottom:0}
.creator-list-row strong,.creator-list-row span{display:block}
.creator-list-row strong{font-size:9px;color:#d9e6ef}.creator-list-row span{font-size:8px;color:#859cad;margin-top:2px}
.creator-list-row button{border:1px solid #5a3940;background:#2a1115;color:#ff9ba2;padding:4px 6px;font-size:8px}
.creator-map-upload{display:flex;align-items:end;gap:8px;margin:10px 0}
.creator-map-upload label{flex:1}.creator-map-upload button{border:1px solid #31495d;background:#112331;color:#dfeaf2;padding:7px}
.creator-map-preview{
  height:260px;border:1px solid #36536a;background:
  linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px),
  radial-gradient(circle at center,#102636,#061018);
  background-size:28px 28px,28px 28px,auto;
  display:flex;align-items:center;justify-content:center;background-position:center;background-repeat:no-repeat;
  color:#8ba4b8;font-size:10px;text-align:center;background-size:28px 28px,28px 28px,cover
}
.creator-validation{border:1px solid #314a60;background:#071019;padding:10px;min-height:70px;font-size:9px;line-height:1.55}
.creator-validation .ok{color:#74dc98}.creator-validation .error{color:#ff8f97}.creator-validation .warning{color:#efc269}
.creator-publish-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}
.community-project-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.community-card{border:1px solid #31495d;background:#0a1620;padding:12px}
.community-card strong,.community-card span{display:block}
.community-card strong{font-size:11px;color:#dce9f2}.community-card span{font-size:9px;color:#91a7b9;margin-top:4px;line-height:1.45}
.community-meta{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}
.community-meta i{font-style:normal;border:1px solid #354f64;padding:2px 5px;font-size:8px;color:#9fc6df}
.community-actions{display:flex;gap:6px;margin-top:9px}
.community-actions button{flex:1;border:1px solid #31516b;background:#122a3b;color:#eaf3f8;padding:6px;font-size:8px}
@media(max-width:850px){
  .creator-topbar,.creator-grid,.creator-two-col,.community-project-list,.creator-publish-actions{grid-template-columns:1fr}
  .creator-inline-form{grid-template-columns:1fr}
}

/* === v1.8 SESSION CONTROL === */
.session-config-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.session-wide{grid-column:1/-1}
.session-builder{display:grid;grid-template-columns:330px 1fr;gap:10px;margin-top:14px}
.session-station-list-wrap,.session-station-editor{border:1px solid #2c4559;background:#09141d;padding:10px}
.session-section-title,.session-subtitle{font-size:8px;color:var(--accent);letter-spacing:.8px;margin:4px 0 8px}.session-subtitle{margin-top:12px;color:#9bb4c7}
.session-station-list{display:grid;gap:5px;max-height:480px;overflow:auto;margin-bottom:8px}
.session-station-card{border:1px solid #2d465a;background:#0b1924;padding:8px;cursor:pointer}.session-station-card.active{border-color:#4f8db7;background:#102638}
.session-station-card strong,.session-station-card span{display:block}.session-station-card strong{font-size:9px}.session-station-card span{font-size:8px;color:#8fa5b7;margin-top:3px}
.session-checkbox-row{display:flex;gap:8px;flex-wrap:wrap}.session-checkbox-row label{border:1px solid #2c4558;background:#0b1822;padding:6px 8px;font-size:8px}
.station-permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.station-permission-grid label{border:1px solid #2b4356;background:#091721;padding:6px;font-size:8px;color:#a8bdcd}
.session-editor-actions,.session-template-actions,.session-live-actions{display:flex;gap:7px;margin-top:12px}.session-editor-actions button,.session-live-actions button{flex:1;border:1px solid #35536a;background:#102334;color:#e8f1f7;padding:8px;font-size:8px;font-weight:700}
.session-empty{display:flex;min-height:260px;align-items:center;justify-content:center;color:#72899b;font-size:9px}.session-live-card{width:min(820px,94vw)}
.session-live-status{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:10px 0}.session-live-status div{border:1px solid #2e475b;background:#09151f;padding:7px}
.session-live-status strong,.session-live-status span{display:block}.session-live-status strong{font-size:8px;color:#839bad}.session-live-status span{font-size:10px;color:#e0ecf4;margin-top:3px}
.session-live-station{border:1px solid #304b60;background:#0a1823;padding:9px;font-size:9px;line-height:1.55;color:#a8bccb}.session-live-station strong{color:#dceaf3}
@media(max-width:900px){.session-builder,.session-config-grid{grid-template-columns:1fr}.station-permission-grid{grid-template-columns:1fr 1fr}.session-live-status{grid-template-columns:1fr 1fr}}


/* === v1.9 LOCAL MULTIPLAYER === */
.multiplayer-setup{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.multiplayer-host-card{border:1px solid #30495d;background:#09151f;padding:14px}
.multiplayer-host-card h3{font-size:10px;color:var(--accent);margin:0 0 10px}
.multiplayer-lobby-head{display:grid;grid-template-columns:2fr 1fr 1fr;gap:7px;margin-bottom:12px}
.multiplayer-lobby-head div{border:1px solid #30495d;background:#09151f;padding:9px}
.multiplayer-lobby-head span,.multiplayer-lobby-head strong{display:block}
.multiplayer-lobby-head span{font-size:7px;color:#7f96a9}.multiplayer-lobby-head strong{font-size:12px;color:#e2edf4;margin-top:3px;letter-spacing:.7px}
.multiplayer-lobby-grid{display:grid;grid-template-columns:340px 1fr;gap:10px}
.mp-player-list,.mp-station-board{display:grid;gap:6px}
.mp-player-row,.mp-station-row{border:1px solid #2d4659;background:#0a1823;padding:8px}
.mp-player-row strong,.mp-player-row span,.mp-station-row strong,.mp-station-row span{display:block}
.mp-player-row strong,.mp-station-row strong{font-size:9px}.mp-player-row span,.mp-station-row span{font-size:8px;color:#8fa6b8;margin-top:3px}
.mp-station-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}
.mp-station-row button{border:1px solid #31536c;background:#123047;color:#e7f0f6;padding:6px 9px;font-size:8px}
.mp-station-row.occupied{border-color:#476376}.mp-station-row.mine{border-color:#4f9b6b;background:#0d2519}
.mp-lobby-actions,.mp-disconnect-actions{display:flex;gap:8px;margin-top:12px}
.mp-lobby-actions button,.mp-disconnect-actions button{flex:1;border:1px solid #345169;background:#102334;color:#eaf2f7;padding:9px;font-size:9px;font-weight:700}
.mp-live-badge{border:1px solid #3a7a55;background:#0d2418;color:#76e29e;padding:6px 8px;font-size:8px;font-weight:700;letter-spacing:.6px}
.mp-disconnect-card{width:min(560px,92vw)}
.mp-disconnect-card #mpDisconnectText{font-size:10px;color:#b5c7d4;line-height:1.55;margin:12px 0}
.mp-guest-readonly{opacity:.7}
@media(max-width:850px){
  .multiplayer-setup,.multiplayer-lobby-grid,.multiplayer-lobby-head{grid-template-columns:1fr}
}


/* === v2.0 NETWORK MULTIPLAYER & STATION CONTROL === */
.mp-network-info{
  border:1px solid #32536a;background:#081722;padding:10px;margin:10px 0 14px;
  display:grid;gap:4px;font-size:9px;color:#9bb2c3
}
.mp-network-info strong{color:var(--accent);font-size:8px;letter-spacing:.8px}
.mp-player-row.host-assign{display:grid;grid-template-columns:1fr 170px;gap:7px;align-items:center}
.mp-player-row select{margin:0;padding:5px;font-size:8px}
.mp-station-row.gateway{border-color:#816e35;background:#221d0c}
.mp-station-row.gateway strong{color:#ffe099}
.mp-station-row .station-role-badges{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}
.mp-station-row .station-role-badges i{
  font-style:normal;border:1px solid #345166;padding:1px 4px;font-size:7px;color:#91b3ca
}
.mp-network-good{color:#71dd99}.mp-network-fallback{color:#efc36e}.mp-network-bad{color:#ff858e}

.gateway-routing-panel{
  margin:7px;border:1px solid #8a7131;background:linear-gradient(180deg,#201a09,#111006);
  padding:10px;box-shadow:inset 0 0 20px rgba(255,197,64,.03)
}
.gateway-script{font-size:8px;letter-spacing:1px;color:#d8b45e}
.gateway-question{font-size:17px;font-weight:700;color:#fff2c9;margin-top:7px}
.gateway-reply{border-left:2px solid #d6af50;margin:9px 0;padding:7px 9px;color:#e4d9b9;font-size:10px}
.gateway-route-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.gateway-route-actions button{
  border:1px solid #78622f;background:#2a210b;color:#f7dfa2;padding:8px;font-size:8px;font-weight:800
}
.gateway-route-actions button:hover{background:#3a2d0c}
.call-card.gateway-waiting{border-left:3px solid #d6af50}
.call-card.gateway-waiting .service-badge{background:#3c310f;color:#f0d68e;border-color:#6e5a24}

.session-live-selector{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}
.session-live-config{margin-top:10px}
.session-live-card{max-height:90vh;overflow:auto}
.session-live-readonly{opacity:.6;pointer-events:none}

.station-session-note{
  margin-top:5px;border:1px solid #29495d;background:#081721;padding:6px;font-size:8px;color:#8da9bc
}
.station-session-note strong{color:#cfe6f5}

.session-template-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.session-config-grid label input[type="checkbox"]{width:auto}

@media(max-width:900px){
  .session-live-selector{grid-template-columns:1fr}
  .session-template-actions{grid-template-columns:1fr}
  .mp-player-row.host-assign{grid-template-columns:1fr}
}


/* === v2.1 ACCOUNTS / PROFILES / SYSTEM OWNER === */
.auth-screen{position:relative;background:#050b11;overflow:auto}.auth-bg{position:fixed;inset:0;background:radial-gradient(circle at 65% 28%,rgba(45,168,255,.14),transparent 34%),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),#061018;background-size:auto,42px 42px,42px 42px,auto}
.auth-shell{position:relative;z-index:1;width:min(760px,calc(100% - 34px));margin:0 auto;padding:50px 0}.auth-brand{text-align:center;margin-bottom:22px}.auth-brand h1{font-size:42px;margin:8px 0 0;letter-spacing:3px}.auth-card{width:min(510px,100%);margin:0 auto;border:1px solid #324d63;background:rgba(7,16,24,.96);padding:18px;box-shadow:0 24px 80px rgba(0,0,0,.45)}
.auth-tabs{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:14px}.auth-tab{flex:1;border:1px solid #315069;background:#10202d;color:#9fb8ca;padding:8px;font-size:8px;font-weight:800}.auth-tab.active{background:#1b5779;color:#fff;border-color:#4287ad}.auth-panel{display:none}.auth-panel.active{display:grid;gap:9px}.auth-panel h2{font-size:18px;margin:4px 0}.auth-panel p{font-size:9px;color:#8ea5b7;line-height:1.55;margin:0 0 4px}.auth-panel code{color:#d7e9f4}.auth-message{min-height:19px;margin-top:8px;font-size:9px;color:#78d99a}.auth-message.error{color:#ff8e96}.auth-divider{display:flex;align-items:center;gap:8px;color:#6f8799;font-size:8px;margin:12px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;background:#263c4d;flex:1}.auth-note{font-size:8px;color:#728a9d;line-height:1.5;text-align:center}

.account-strip{display:flex;justify-content:space-between;align-items:center;border:1px solid #283f51;background:#091620;padding:7px 9px;margin:9px 0}.account-strip div>span,.account-strip div>strong,.account-strip div>em{display:inline-block;margin-right:8px}.account-strip div>span{font-size:7px;color:#72899b}.account-strip div>strong{font-size:9px}.account-strip div>em{font-style:normal;border:1px solid #35536a;padding:2px 5px;font-size:7px;color:#a9c9dc}.account-strip-actions{display:flex;gap:5px}.account-strip-actions button{border:1px solid #315069;background:#102331;color:#dceaf2;padding:5px 8px;font-size:8px}.owner-nav{border-color:#8a6b2f!important;color:#f0cc72!important;background:#211a08!important}

.profile-layout{display:grid;grid-template-columns:270px 1fr;gap:10px}.profile-card{border:1px solid #2e485b;background:#09151f;padding:12px}.profile-wide{grid-column:1/-1}.identity-card{text-align:center}.profile-avatar{width:84px;height:84px;margin:4px auto 10px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid #4d88ac;background:#112b3e;font-size:27px;font-weight:800;color:#dff2ff}.identity-card strong,.identity-card span,.identity-card small{display:block}.identity-card strong{font-size:14px}.identity-card span{font-size:9px;color:#e5c979;margin-top:5px}.identity-card small{font-size:8px;color:#748b9c;margin-top:5px}.profile-notice{border:1px solid #6d572d;background:#211a0b;color:#e8c56e;padding:8px;font-size:9px;margin-bottom:10px}.entitlement-grid{display:flex;gap:5px;flex-wrap:wrap}.entitlement-grid span{border:1px solid #315068;background:#0c1c28;padding:4px 7px;font-size:8px;color:#a9c4d7}.entitlement-grid span.privileged{border-color:#80662c;color:#efcb72;background:#211a08}

.owner-page h2{color:#f4db96}.owner-summary-cards{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;margin:10px 0}.owner-summary-cards div{border:1px solid #554723;background:#181407;padding:9px}.owner-summary-cards span,.owner-summary-cards strong{display:block}.owner-summary-cards span{font-size:7px;color:#af985c}.owner-summary-cards strong{font-size:15px;color:#f2d788;margin-top:4px}.owner-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.owner-section{border:1px solid #4f452a;background:#0f120e;padding:10px;margin-bottom:10px}.owner-feature-flags{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:8px}.owner-feature-flags label,.owner-capability-list span{border:1px solid #393d29;background:#151810;padding:7px;font-size:8px;color:#c6c39e}.owner-capability-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.owner-section-head{display:flex;justify-content:space-between;align-items:center}.owner-section-head button{border:1px solid #5d512d;background:#201a08;color:#e8cf86;padding:5px 8px;font-size:8px}
.owner-account-table{display:grid;gap:5px}.owner-account-row{display:grid;grid-template-columns:minmax(220px,1fr) 160px 110px 85px 70px;gap:6px;align-items:center;border:1px solid #2c3d3e;background:#0a1517;padding:7px}.owner-account-id strong,.owner-account-id span{display:block}.owner-account-id strong{font-size:9px}.owner-account-id span{font-size:7px;color:#768e92;margin-top:2px}.owner-account-row select,.owner-account-row button{margin:0;padding:5px;font-size:8px}.owner-publish{font-size:8px;color:#aab9aa}.owner-audit-log{max-height:360px;overflow:auto;display:grid;gap:5px}.owner-audit-row{border:1px solid #283b3c;background:#081215;padding:7px}.owner-audit-row strong,.owner-audit-row span,.owner-audit-row code{display:block}.owner-audit-row strong{font-size:8px;color:#e5cb7b}.owner-audit-row span{font-size:7px;color:#7d9397;margin-top:2px}.owner-audit-row code{font-size:7px;color:#9dafaf;margin-top:4px;white-space:pre-wrap}

.game-account-badge{border:1px solid #315069;background:#0d1c27;color:#a7c6d9;padding:6px 7px;font-size:7px;font-weight:800;max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-account-badge.owner{border-color:#856b2f;background:#211a08;color:#efd17f}.owner-tools-btn{border-color:#7a642e!important;background:#211a08!important;color:#f0d079!important}
.owner-tools-card{width:min(760px,94vw)}.owner-tool-warning{border:1px solid #7a5f2a;background:#211a08;color:#e9c773;padding:8px;font-size:8px;line-height:1.5;margin:9px 0}.owner-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.owner-tool-grid button{border:1px solid #6c592d;background:#1a170c;color:#ecd17e;padding:9px;font-size:8px;font-weight:700}.owner-dev-output{margin-top:10px;border:1px solid #31485a;background:#071119;min-height:110px;max-height:260px;overflow:auto;padding:9px;white-space:pre-wrap;font-size:8px;line-height:1.5;color:#b7cad6}

@media(max-width:900px){.profile-layout,.owner-grid{grid-template-columns:1fr}.profile-wide{grid-column:auto}.owner-summary-cards{grid-template-columns:1fr 1fr}.owner-account-row{grid-template-columns:1fr}.owner-feature-flags,.owner-capability-list{grid-template-columns:1fr}.owner-tool-grid{grid-template-columns:1fr 1fr}}

/* === v2.2 MULTIPLAYER STABILITY & RECOVERY === */
.mp-recovery-card{
  display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;
  border:1px solid #315d70;background:#091a24;padding:10px;margin:10px 0 14px
}
.mp-recovery-card>div{display:grid;gap:3px}.mp-recovery-card strong{font-size:9px;color:#b9e9ff;letter-spacing:.7px}.mp-recovery-card span{font-size:8px;color:#90a9b8}
.mp-sync-badge{border:1px solid #315d70;background:#07141c;color:#8bc7df;padding:4px 6px;font-size:7px;font-weight:800;letter-spacing:.6px}
.mp-sync-badge.good{border-color:#315f44;color:#8ce0a8}.mp-sync-badge.warn{border-color:#80652c;color:#efcf7a}.mp-sync-badge.bad{border-color:#7d3337;color:#ff9399}
.mp-player-row.reconnecting{border-left:3px solid #d2aa4b}.mp-player-row.disconnected{opacity:.7}
.mp-player-row .reconnect-note{font-size:7px;color:#d2aa4b;margin-top:2px}
.mp-save-status{font-size:8px;color:#95afbf;margin-top:6px}
@media(max-width:900px){.mp-recovery-card{grid-template-columns:1fr}.mp-recovery-card button{width:100%}}

/* === v2.4 FARLESTONE PLATFORM ACCOUNTS & CLOUD DATA === */
.cloud-profile-card p{font-size:8px;color:#839bab;line-height:1.55;margin:6px 0 9px}.cloud-save-list,.profile-session-list{display:grid;gap:6px}.cloud-save-row,.profile-session-row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border:1px solid #2c4658;background:#07131c;padding:8px}.cloud-save-row strong,.cloud-save-row span,.profile-session-row strong,.profile-session-row span{display:block}.cloud-save-row strong,.profile-session-row strong{font-size:8px;color:#c9e6f6}.cloud-save-row span,.profile-session-row span{font-size:7px;color:#7f9aaa;margin-top:2px}.cloud-save-row code{font-size:7px;color:#e1c976}.cloud-save-row button,.profile-session-row button,.cloud-profile-card .owner-section-head button{border:1px solid #31516a;background:#102432;color:#d7ebf7;padding:5px 8px;font-size:8px}.cloud-sync-good{color:#74dda0!important}.cloud-sync-warn{color:#e8c46d!important}.cloud-sync-error{color:#ff8f97!important}.profile-session-row.current{border-color:#38634a}.profile-session-row.current strong:after{content:" • THIS DEVICE";color:#77d79a;font-size:7px}.platform-backend-badge{border:1px solid #685b2f;background:#1a1709;color:#e7cb78;padding:2px 5px;font-size:7px;margin-left:5px}@media(max-width:900px){.cloud-save-row,.profile-session-row{grid-template-columns:1fr}.cloud-save-row button,.profile-session-row button{width:100%}}
