/* Athena Bridge — local-only design layer. Existing application contracts retained. */
:root{--bridge-bg:#09141c;--bridge-surface:#101f2a;--bridge-raised:#172a36;--bridge-line:#2b414e;--bridge-text:#edf5f7;--bridge-muted:#a4b8c3;--bridge-accent:#7aead0;--bridge-accent-ink:#072c26;--bridge-danger:#ff9eac;--bridge-warn:#f1cb82;--bg:var(--bridge-bg);--panel:var(--bridge-surface);--panel2:var(--bridge-raised);--line:var(--bridge-line);--text:var(--bridge-text);--muted:var(--bridge-muted)}
html[data-theme=light]{--bridge-bg:#edf2f2;--bridge-surface:#fff;--bridge-raised:#e8f0f0;--bridge-line:#c3d2d5;--bridge-text:#162d38;--bridge-muted:#49636f;--bridge-accent:#006d5e;--bridge-accent-ink:#fff;--bridge-danger:#a52d43;--bridge-warn:#795211}
html body{background:var(--bridge-bg)!important;color:var(--bridge-text)!important;font:14px/1.5 'Segoe UI',Arial,sans-serif;min-width:0}
html body .app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100dvh}
html body .app-shell[hidden]{display:none!important}
html body .sidebar{background:var(--bridge-bg)!important;border-right:1px solid var(--bridge-line);width:auto;position:sticky;top:0;height:100dvh;padding:24px 16px 38px;gap:0;z-index:1100}
html body .sidebar>.brand{height:92px;min-height:92px;padding:0 12px 22px;display:flex;justify-content:flex-start;gap:12px;border:0}
html body .sidebar .sidebar-brand-logo{width:54px!important;height:58px!important;max-width:none!important;object-fit:contain}
.bridge-brand-copy{display:flex!important;flex-direction:column;gap:3px}.bridge-brand-copy strong{font-size:17px!important;letter-spacing:2px}.bridge-brand-copy small{font-size:10px;letter-spacing:2.6px;color:var(--bridge-muted)}
html body .sidebar nav{display:flex!important;flex-direction:column;gap:3px;padding:0 3px 12px;overflow-y:auto;min-height:0;scrollbar-width:thin;scrollbar-color:var(--bridge-line) transparent}
html body .nav-group{font-size:10px!important;letter-spacing:1.8px;color:var(--bridge-muted)!important;margin:23px 12px 8px;font-weight:600}
html body .nav-item{display:flex;align-items:center;justify-content:flex-start;min-height:43px;padding:10px 12px;gap:13px;border:1px solid transparent;border-radius:9px;font-size:13px!important;color:var(--bridge-muted)!important;background:transparent!important;box-shadow:none!important;font-weight:500}
html body .nav-item:hover{background:var(--bridge-raised)!important;color:var(--bridge-text)!important}
html body .nav-item.active{background:var(--bridge-raised)!important;border-color:var(--bridge-line);color:var(--bridge-accent)!important;box-shadow:inset 3px 0 var(--bridge-accent)!important}
html body .nav-item>span:first-child{display:grid;place-items:center;background:transparent!important;color:inherit!important;width:21px;height:21px;border-radius:0}
.bridge-icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html body .user-card{margin-top:16px;background:var(--bridge-surface)!important;border:1px solid var(--bridge-line);padding:12px;min-height:65px;flex-shrink:0;color:var(--bridge-text)!important;border-radius:12px}
html body .user-card strong{font-size:12px}.user-card small{font-size:10px!important;color:var(--bridge-muted)!important}
html body .avatar{background:var(--bridge-raised);color:var(--bridge-accent);font-size:12px;width:33px;height:33px}
html body main{padding:0 32px 64px;min-width:0;max-width:1900px;width:100%;margin:auto}
html body .topbar{min-height:112px;border:0;padding:26px 0;gap:16px;align-items:center;background:transparent!important}
html body h1{font-size:26px!important;line-height:1.25;letter-spacing:-.7px;font-weight:600;color:var(--bridge-text)!important}
html body .eyebrow{color:var(--bridge-muted)!important;font-size:10px!important;letter-spacing:2px;margin:0 0 8px}
html body .top-actions{gap:10px;flex-wrap:wrap}.top-actions .timestamp{display:none!important}
html body button{font-family:inherit;cursor:pointer;transition:background .16s,color .16s,border-color .16s;font-size:13px}
html body button:not(.nav-item):not(.leaflet-control-zoom-in):not(.leaflet-control-zoom-out){min-height:40px}
html body .primary{background:var(--bridge-accent)!important;color:var(--bridge-accent-ink)!important;border:1px solid var(--bridge-accent)!important;box-shadow:none!important;border-radius:8px;font-size:13px!important;font-weight:650;padding:12px 18px}
html body .secondary,html body .refresh,html body .theme-toggle{background:var(--bridge-surface)!important;color:var(--bridge-text)!important;border:1px solid var(--bridge-line)!important;border-radius:8px;box-shadow:none!important;font-size:12px!important}
html body .safety-pill,html body .live{font-size:10px!important;color:var(--bridge-muted)!important;border-color:var(--bridge-line)!important;background:var(--bridge-surface)!important}
html body :focus-visible{outline:2px solid var(--bridge-accent)!important;outline-offset:3px}
html body #view-panel{background:transparent!important;border:0!important;border-radius:0;overflow:visible;min-width:0}
html body .panel-head,html body .subpanel-head{background:transparent!important;color:var(--bridge-text)!important;padding:20px 22px;border-bottom:1px solid var(--bridge-line);gap:12px}
html body .panel-head h2,html body .subpanel-head h3{font-size:15px!important;font-weight:600;letter-spacing:-.2px;color:var(--bridge-text)!important}
html body .subpanel-head span,html body .panel-head p{font-size:12px!important;color:var(--bridge-muted)!important;line-height:1.6}
html body .subpanel,html body .detail-card,html body .system-gauge,html body .metrics article{background:var(--bridge-surface)!important;border:1px solid var(--bridge-line)!important;border-radius:14px;box-shadow:none!important;min-width:0}
html body .detail-card h3{font-size:14px!important}.section-stack{gap:20px}
html body .table-wrap{width:100%;max-width:100%;overflow-x:auto;border-radius:12px;scrollbar-width:thin}
html body table{background:var(--bridge-surface)!important;color:var(--bridge-text)!important;width:100%;font-variant-numeric:tabular-nums}
html body th{font-size:10px!important;letter-spacing:1.1px;color:var(--bridge-muted)!important;background:var(--bridge-surface)!important;padding:15px 18px;white-space:nowrap}
html body td{font-size:12px!important;padding:18px;border-color:var(--bridge-line)!important;line-height:1.6;background:transparent!important;color:var(--bridge-text)!important}
html body tbody tr:nth-child(even){background:color-mix(in srgb,var(--bridge-raised) 35%,transparent)!important}
html body tbody tr:hover{background:var(--bridge-raised)!important}
html body td small,html body .sub{font-size:11px!important;color:var(--bridge-muted)!important}
html body .badge,html body .policy,html body .health{font-size:11px!important}
html body input,html body select,html body textarea{font:13px/1.4 inherit!important;min-height:44px;background:var(--bridge-bg)!important;color:var(--bridge-text)!important;border:1px solid var(--bridge-line)!important;border-radius:8px!important;padding:11px 12px!important;max-width:100%}
html body label{font-size:12px!important;color:var(--bridge-muted)!important;line-height:1.7}
html body .view-body{padding:22px;background:var(--bridge-surface);border-radius:14px}
html body .empty{font-size:14px;color:var(--bridge-muted)!important;padding:60px 20px}
html body .notice{background:var(--bridge-surface)!important;border-color:var(--bridge-line)!important;color:var(--bridge-muted)!important;font-size:12px}
.bridge-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px 34px;border:1px solid var(--bridge-line);border-radius:16px;background:var(--bridge-surface);margin-bottom:22px;min-height:178px}
.bridge-hero:after{content:'';position:absolute;right:-80px;top:-160px;width:510px;height:510px;border-radius:50%;border:1px solid var(--bridge-line);box-shadow:0 0 0 50px color-mix(in srgb,var(--bridge-line) 30%,transparent),0 0 0 100px color-mix(in srgb,var(--bridge-line) 14%,transparent);pointer-events:none}
.bridge-hero-copy{position:relative;z-index:1;max-width:62%}.bridge-kicker{display:flex;align-items:center;gap:8px;font-size:10px;letter-spacing:2px;color:var(--bridge-accent);font-weight:600;text-transform:uppercase}
.bridge-kicker i{width:6px;height:6px;background:var(--bridge-accent);border-radius:50%}
.bridge-hero h2{font-size:32px!important;font-weight:500;line-height:1.2;letter-spacing:-1px;margin:14px 0 10px;color:var(--bridge-text)!important}
.bridge-hero p{font-size:13px;color:var(--bridge-muted);margin:0;max-width:580px}
.bridge-ship-art{width:230px;height:130px;color:var(--bridge-accent);opacity:.8;z-index:1;flex-shrink:0}
.bridge-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}
.bridge-kpi{border:1px solid var(--bridge-line);border-radius:13px;background:var(--bridge-surface);padding:20px 22px;min-width:0;position:relative}
.bridge-kpi>span{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--bridge-muted);gap:8px}
.bridge-kpi strong{display:block;font-size:36px;font-weight:550;letter-spacing:-1.5px;line-height:1.4;margin:9px 0 4px;font-variant-numeric:tabular-nums}
.bridge-kpi small{font-size:11px;color:var(--bridge-muted)}.bridge-kpi .bridge-icon{color:var(--bridge-accent)}.bridge-kpi.attention .bridge-icon{color:var(--bridge-danger)}
.bridge-main-grid{display:grid;grid-template-columns:minmax(0,1.85fr) minmax(275px,1fr);gap:20px;margin-bottom:22px}
.bridge-map-card{overflow:hidden}.bridge-map-card #admin-dashboard-map{height:385px;min-height:385px;background:var(--bridge-bg)}
html[data-theme=dark] .bridge-map-card .leaflet-tile-pane{filter:invert(1) hue-rotate(180deg) saturate(.4) brightness(.75)}
.bridge-map-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 20px;border-top:1px solid var(--bridge-line);font-size:11px;color:var(--bridge-muted);flex-wrap:wrap}
.bridge-legend{display:flex;gap:14px}.bridge-legend span:before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:6px;background:var(--bridge-accent)}.bridge-legend .down:before{background:var(--bridge-danger)}
.bridge-roster{padding:4px 16px 12px}.bridge-roster button{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:13px 7px;background:none;border:0;border-bottom:1px solid var(--bridge-line);color:var(--bridge-text)}
.bridge-roster button:last-child{border-bottom:0}.bridge-roster button:hover{background:var(--bridge-raised)}.bridge-roster button[aria-pressed=true]{background:var(--bridge-raised);border-radius:8px}
.bridge-vessel-icon{display:grid;place-items:center;width:36px;height:36px;background:var(--bridge-raised);border-radius:10px;color:var(--bridge-accent);flex-shrink:0}.bridge-roster button>span:nth-child(2){flex:1;min-width:0}.bridge-roster strong{font-size:12px;display:block;font-weight:600}.bridge-roster small{font-size:10px;color:var(--bridge-muted);display:block}.bridge-roster b{font-size:9px;letter-spacing:1px;color:var(--bridge-accent);font-weight:600}.bridge-roster b.down{color:var(--bridge-danger)}
.bridge-count{font-size:11px;padding:4px 8px;background:var(--bridge-raised);border-radius:6px;color:var(--bridge-muted)}
.bridge-bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:22px}.bridge-quick{display:flex;gap:10px;padding:20px;flex-wrap:wrap}.bridge-quick button{display:flex;gap:9px;align-items:center}
.bridge-note{font-size:12px;color:var(--bridge-muted);padding:0 22px 20px;line-height:1.7}.bridge-resource{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:22px}.bridge-resource small{color:var(--bridge-muted);font-size:11px}.bridge-resource strong{display:block;font-size:22px;font-weight:500;margin:6px 0}.bridge-resource progress{width:100%;height:5px;accent-color:var(--bridge-accent)}
.bridge-loader{display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:340px;gap:12px;color:var(--bridge-muted);text-align:center}.bridge-loader svg{width:180px;height:100px;color:var(--bridge-accent)}.bridge-loader .ship-hull{animation:bridge-bob 2.4s ease-in-out infinite;transform-origin:center}.bridge-loader .ship-wave{animation:bridge-wave 2s linear infinite}.bridge-loader strong{font-size:16px;font-weight:500;color:var(--bridge-text)}.bridge-loader small{font-size:12px}.bridge-loader-dialog{background:var(--bridge-surface);color:var(--bridge-text);border:1px solid var(--bridge-line);border-radius:20px;width:min(440px,90vw)}.bridge-loader-dialog::backdrop{background:#020b14bb}.bridge-loader-dialog .bridge-loader{min-height:260px}.bridge-loader-dialog>button{float:right}
.bridge-menu{display:none}.bridge-scrim{display:none}.bridge-search{margin:0 6px 10px;position:relative}.bridge-search input{width:100%;font-size:12px!important;min-height:38px!important;padding:8px 12px!important}.bridge-search label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes bridge-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes bridge-wave{to{transform:translateX(-24px)}}
@media(min-width:1600px){.bridge-map-card #admin-dashboard-map{height:460px}.bridge-hero{min-height:194px}}
@media(max-width:1150px){html body .app-shell{grid-template-columns:218px minmax(0,1fr)}html body main{padding:0 20px 60px}.bridge-main-grid{grid-template-columns:minmax(0,1.6fr) minmax(245px,1fr)}.bridge-kpis{gap:10px}.bridge-kpi{padding:16px}.bridge-hero h2{font-size:28px!important}.bridge-ship-art{width:170px}.top-actions .safety-pill{display:none!important}}
@media(max-width:900px){html body .app-shell{display:block}.bridge-menu{display:inline-flex;align-items:center;justify-content:center;width:42px;flex-shrink:0}.bridge-scrim:not([hidden]){display:block;position:fixed;inset:0;background:#020b14aa;border:0;z-index:1090}.bridge-scrim[hidden]{display:none}html body .sidebar{position:fixed;left:0;top:0;width:248px;transform:translateX(-100%);transition:transform .2s;visibility:hidden}html body.bridge-nav-open .sidebar{transform:none;visibility:visible}html body .topbar{min-height:100px;flex-wrap:wrap}.topbar>div:first-of-type{flex:1}.top-actions{margin-left:auto}.bridge-main-grid{grid-template-columns:1fr 1fr}.bridge-map-card{grid-column:1/-1}.bridge-main-grid>.subpanel:last-child{grid-column:1/-1}.bridge-roster{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.bridge-bottom-grid{grid-template-columns:1fr}.bridge-hero-copy{max-width:70%}.bridge-ship-art{width:140px}}
@media(max-width:520px){html body main{padding:0 14px 56px}html body h1{font-size:23px!important}html body .topbar{gap:12px;padding:20px 0}.top-actions{width:100%;justify-content:flex-end}.bridge-hero{padding:24px;min-height:190px}.bridge-hero-copy{max-width:100%}.bridge-hero h2{font-size:27px!important}.bridge-hero p{max-width:240px}.bridge-ship-art{position:absolute;right:-45px;bottom:-8px;opacity:.16;width:230px}.bridge-kpis{grid-template-columns:1fr 1fr}.bridge-kpi strong{font-size:30px}.bridge-kpi>span{font-size:11px}.bridge-map-card #admin-dashboard-map{height:330px;min-height:330px}.bridge-roster{grid-template-columns:1fr}.bridge-resource{gap:10px;padding:16px}.bridge-resource strong{font-size:19px}html body .form-grid{grid-template-columns:1fr}html body input,html body select,html body textarea{font-size:16px!important}.bridge-main-grid{display:block}.bridge-main-grid>.subpanel{margin-bottom:20px}html body .subpanel-head{padding:17px}.bridge-kicker{font-size:9px}.bridge-quick{padding:16px}html body .system-resource-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){html body *,html body *:before,html body *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* Explicit boundary against the baseline's high-specificity responsive overrides. */
html body #app-shell>main{padding:0 32px 64px!important;margin:0 auto!important;background:var(--bridge-bg)!important}
html body #app-shell>.sidebar{background:var(--bridge-bg)!important;padding:24px 16px 38px!important;height:100dvh!important;border-color:var(--bridge-line)!important}
html body #app-shell .topbar{padding:26px 0!important;min-height:112px!important;border:0!important}
html body #app-shell h1{font-size:26px!important;color:var(--bridge-text)!important}
html body #app-shell .nav-item{font-size:13px!important;color:var(--bridge-muted)!important;box-shadow:none!important;background:transparent!important}
html body #app-shell .nav-item.active{background:var(--bridge-raised)!important;color:var(--bridge-accent)!important;border-color:var(--bridge-line)!important;box-shadow:inset 3px 0 var(--bridge-accent)!important}
html body #app-shell .nav-item[hidden]{display:none!important}
html body #app-shell .subpanel{box-shadow:none!important;background:var(--bridge-surface)!important}
html body #app-shell .nav-item>span{background:transparent!important;color:inherit!important}
html body #app-shell .subpanel-head{background:transparent!important}
html body #app-shell .bridge-map-card .leaflet-control-attribution{font-size:10px!important;background:var(--bridge-surface)!important;color:var(--bridge-text)!important;max-width:100%}
html body #app-shell .bridge-map-card .leaflet-control-attribution a{color:var(--bridge-accent)!important}
@media(max-width:900px){html body #app-shell>.sidebar{position:fixed!important;top:0!important;left:0!important;width:248px!important;height:100dvh!important;overflow:hidden!important}html body #app-shell>main{padding:0 20px 60px!important}html body #app-shell .sidebar nav{flex:1!important;overflow-y:auto!important;display:flex!important}html body #app-shell .topbar{min-height:100px!important}}
@media(max-width:520px){html body #app-shell>main{padding:0 14px 56px!important}html body #app-shell .topbar{padding:20px 0!important}html body #app-shell h1{font-size:23px!important}}
