/* Subdivision360 Operational Shell v2
   Context-first application shell for issue #269.
   Presentation and client interaction only; authority remains server-side. */

:root{
  --ops-bg:#07111f;--ops-panel:#0b1728;--ops-panel-2:#101d30;--ops-panel-3:#14243a;
  --ops-line:#23354d;--ops-line-strong:#304762;--ops-text:#e7edf5;--ops-muted:#8fa1b8;
  --ops-dim:#62758d;--ops-focus:#7dd3fc;--ops-green:#4ade80;--ops-amber:#fbbf24;
  --ops-red:#fb7185;--ops-titlebar:44px;--ops-accessbar:42px;--ops-statusbar:26px;
  --ops-radius:5px;--ops-shadow:0 10px 26px rgba(0,0,0,.2);--ops-inspector-width:340px
}
html,body{height:100%;margin:0;overflow:hidden;background:var(--ops-bg);color:var(--ops-text)}
body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
.route-registry{display:none!important}
.app-shell{height:100dvh;min-height:0;display:block;background:var(--ops-bg);overflow:hidden}
.app-shell>main{min-width:0;min-height:0;height:100dvh;display:grid;grid-template-rows:var(--ops-titlebar) var(--ops-accessbar) minmax(0,1fr) var(--ops-statusbar);overflow:hidden;background:var(--ops-bg)}
.topbar{min-width:0;padding:0 10px 0 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#0b1728;border-bottom:1px solid var(--ops-line)}
.ops-identity{min-width:0;display:flex;align-items:baseline;gap:8px;overflow:hidden;white-space:nowrap}
.ops-product{font-size:13px;color:#fff}.ops-community{font-size:11px;color:var(--ops-muted)}.ops-divider{color:var(--ops-line-strong)}
.topbar .eyebrow{color:var(--ops-dim);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.topbar h1{margin:0;color:var(--ops-text);font-size:14px;font-weight:650;overflow:hidden;text-overflow:ellipsis}
.user{display:flex;align-items:center;gap:9px;min-width:0}.user>div{min-width:0;text-align:right}.user strong{display:block;color:var(--ops-text);font-size:11px;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}.user span{display:block;margin-top:2px;color:var(--ops-muted);font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.topbar .ghost{padding:5px 8px;border:1px solid var(--ops-line-strong);border-radius:3px;background:#111f32;color:var(--ops-muted);font-size:10px;text-decoration:none}.topbar .ghost:hover{color:#fff;border-color:#47617d}
.ops-accessbar{min-width:0;display:grid;grid-template-columns:minmax(220px,520px) minmax(140px,1fr) auto;align-items:center;gap:8px;padding:5px 8px;background:#0d1929;border-bottom:1px solid var(--ops-line)}
.ops-find{position:relative;min-width:0}.ops-find input{width:100%;height:30px;box-sizing:border-box;padding:0 70px 0 30px;border:1px solid var(--ops-line-strong);border-radius:3px;background:#081523;color:var(--ops-text);outline:none;font-size:11px}.ops-find input:focus{border-color:var(--ops-focus);box-shadow:0 0 0 1px rgba(125,211,252,.25)}.ops-find:before{content:"⌕";position:absolute;left:10px;top:4px;color:var(--ops-muted);font-size:15px;pointer-events:none}.ops-find-hint{position:absolute;right:7px;top:6px;padding:2px 5px;border:1px solid var(--ops-line);border-radius:3px;color:var(--ops-dim);font:9px ui-monospace,SFMono-Regular,Menlo,monospace;pointer-events:none}
.ops-workspace-strip{min-width:0;display:flex;align-items:center;gap:4px;overflow:hidden}.ops-workspace-tab{height:30px;max-width:240px;display:flex;align-items:stretch;border:1px solid var(--ops-line-strong);border-radius:3px;background:#101e31;overflow:hidden}.ops-workspace-tab.active{background:#18304c;border-color:#375f81}.ops-workspace-open,.ops-workspace-close,.ops-context-actions button{border:0;background:transparent;color:var(--ops-text);font-size:10px;cursor:pointer}.ops-workspace-open{min-width:0;padding:0 7px 0 9px;display:flex;align-items:center;gap:6px;white-space:nowrap;overflow:hidden}.ops-workspace-label{overflow:hidden;text-overflow:ellipsis}.ops-workspace-close{width:25px;padding:0;color:var(--ops-dim);font-size:14px}.ops-workspace-close:hover{background:rgba(255,255,255,.06);color:#fff}.ops-workspace-dot{width:6px;height:6px;border-radius:50%;background:var(--ops-green);flex:0 0 auto}.ops-context-actions{display:flex;gap:4px;justify-content:flex-end}.ops-context-actions button{height:30px;padding:0 9px;border:1px solid var(--ops-line-strong);border-radius:3px;background:#101e31}.ops-context-actions button:hover,.ops-workspace-tab:hover{background:#172943;border-color:#41617f}
.ops-workspace-surface{min-width:0;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 0;overflow:hidden;background:var(--ops-bg)}.ops-workspace-surface.inspector-open{grid-template-columns:minmax(0,1fr) minmax(280px,var(--ops-inspector-width))}
.content{min-width:0;min-height:0;padding:10px;overflow:auto;overscroll-behavior:contain;background:#08121f;scrollbar-width:thin;scrollbar-color:var(--ops-line-strong) transparent}
.content>.hero,.content>.grid,.content>.metric-grid{gap:8px!important;margin-bottom:8px!important}.content>.panel,.content .panel{border-color:var(--ops-line)!important;border-radius:var(--ops-radius)!important;box-shadow:none!important}.content .panel{background:#0e1a2a;color:var(--ops-text)}.content .panel h2,.content .panel h3{color:var(--ops-text)}.content .panel p,.content .footer-note,.content .row p{color:var(--ops-muted)}.content .row{border-color:var(--ops-line)!important}.content .metric{background:#0e1a2a!important;border-color:var(--ops-line)!important;border-radius:var(--ops-radius)!important;box-shadow:none!important}.content .metric span{color:var(--ops-muted)!important}.content .metric strong{color:#fff!important}
.content:has(#map){padding:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr)}.content:has(#map)>section{margin:0!important}.content:has(#map)>.metric-grid{display:none!important}.content:has(#map)>.panel:has(#map){height:100%;min-height:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;border:0!important;border-radius:0!important;background:#07111f!important}.content:has(#map)>.panel:has(#map) .panel-header{padding:8px 10px;border-bottom:1px solid var(--ops-line);background:#0d1929}.content:has(#map)>.panel:has(#map) .map-shell{min-height:0;height:100%;border:0!important;border-radius:0!important}.content:has(#map)>.panel:has(#map) .legend{margin:0;padding:5px 10px;border-top:1px solid var(--ops-line);background:#0b1728;color:var(--ops-muted);font-size:9px}.content:has(#map)>.grid{display:none!important}
.content:has(.projects-center),.content:has(.reserve-capital-center),.content:has(.insights-center),.content:has(.work-asset-center),.content:has([data-projects-center]),.content:has([data-work-asset-center]){padding:0;overflow:hidden;background:var(--ops-bg)}
.ops-inspector{min-width:0;min-height:0;display:none;overflow:hidden;border-left:1px solid var(--ops-line);background:#0b1728}.inspector-open .ops-inspector{display:grid;grid-template-rows:auto minmax(0,1fr)}.ops-inspector-header{min-width:0;min-height:46px;padding:7px 8px 7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid var(--ops-line);background:#0d1929}.ops-inspector-header>div{min-width:0}.ops-inspector-header .eyebrow{display:block;color:var(--ops-dim);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.ops-inspector-header strong{display:block;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.ops-inspector-header button{width:28px;height:28px;border:1px solid var(--ops-line);border-radius:3px;background:#101e31;color:var(--ops-muted);cursor:pointer}.ops-inspector-body{min-height:0;padding:8px;overflow:auto;color:var(--ops-muted);font-size:10px}.ops-inspector-body p{line-height:1.45}.ops-inspector-field,.ops-inspector-source{padding:7px 8px;border-bottom:1px solid var(--ops-line);background:#0e1a2a;line-height:1.4}.ops-inspector-field span{display:block;color:var(--ops-dim);font-size:8px;text-transform:uppercase;letter-spacing:.08em}.ops-inspector-field strong{display:block;margin-top:2px;color:var(--ops-text);font-weight:600}.ops-inspector-section{margin:12px 0 5px;color:var(--ops-dim);font-size:8px;text-transform:uppercase;letter-spacing:.1em}.ops-inspector-source{margin-bottom:4px;border:1px solid var(--ops-line);border-radius:3px}.ops-inspector-note{margin:10px 2px 0;color:var(--ops-dim);font-size:9px}
.app-statusbar{min-width:0;height:var(--ops-statusbar);padding:0 8px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--ops-line);background:#07111d;color:var(--ops-muted);font:9px ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow:hidden}.status-group{min-width:0;display:flex;align-items:center;gap:8px;overflow:hidden}.status-item{white-space:nowrap}.status-item.truncate{overflow:hidden;text-overflow:ellipsis}.status-dot{display:inline-block;width:6px;height:6px;margin-right:4px;border-radius:50%;background:var(--ops-green);box-shadow:0 0 0 2px rgba(74,222,128,.08)}
.ops-find-overlay{position:fixed;z-index:1000;inset:0;display:none;place-items:start center;padding-top:10vh;background:rgba(2,8,18,.62);backdrop-filter:blur(4px)}.ops-find-overlay.open{display:grid}.ops-find-dialog{width:min(760px,calc(100vw - 28px));max-height:76vh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid #3a526e;border-radius:7px;background:#0c1828;box-shadow:0 24px 70px rgba(0,0,0,.48)}.ops-find-dialog header{padding:9px;border-bottom:1px solid var(--ops-line)}.ops-find-dialog header input{width:100%;height:40px;box-sizing:border-box;padding:0 11px;border:1px solid var(--ops-line-strong);border-radius:4px;background:#081422;color:#fff;outline:none}.ops-find-dialog header input:focus{border-color:var(--ops-focus)}.ops-find-results{min-height:0;max-height:58vh;overflow:auto;padding:6px}.ops-find-result{width:100%;min-height:44px;padding:7px 9px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid transparent;border-radius:4px;background:transparent;color:var(--ops-text);text-align:left;cursor:pointer}.ops-find-result:hover,.ops-find-result[aria-selected="true"]{background:#142740;border-color:#294662}.ops-find-result small{color:var(--ops-muted)}.ops-find-dialog footer{padding:7px 10px;border-top:1px solid var(--ops-line);color:var(--ops-dim);font-size:9px}
@media(max-width:1100px){:root{--ops-inspector-width:300px}}
@media(max-width:900px){.ops-accessbar{grid-template-columns:minmax(0,1fr) auto}.ops-workspace-strip{display:none}.topbar .eyebrow,.ops-divider{display:none}.ops-workspace-surface.inspector-open{grid-template-columns:minmax(0,1fr)}.inspector-open .ops-inspector{position:absolute;z-index:30;top:calc(var(--ops-titlebar) + var(--ops-accessbar));right:0;bottom:var(--ops-statusbar);width:min(360px,92vw);box-shadow:-12px 0 30px rgba(0,0,0,.35)}}
@media(max-width:640px){:root{--ops-titlebar:42px;--ops-accessbar:40px}.topbar{padding-left:8px}.ops-community{display:none}.user>div{display:none}.ops-accessbar{gap:5px;padding:5px}.ops-find-hint{display:none}.ops-find input{padding-right:8px}.app-statusbar .status-group:last-child .status-item:not(#ui-revision){display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}