:root{--bg-deep: #020A14;--bg-base: #04101C;--bg-panel: #081B2E;--bg-card: #0C2238;--bg-hover: #12304A;--bg-input: #061829;--cyan: #00D4FF;--cyan-dim: rgba(0, 212, 255, .15);--teal: #2DD4BF;--green: #00E396;--green-dim: rgba(0, 227, 150, .15);--amber: #FFB020;--amber-dim: rgba(255, 176, 32, .15);--orange: #FF7A45;--orange-dim: rgba(255, 122, 69, .15);--red: #FF3B4E;--red-dim: rgba(255, 59, 78, .15);--purple: #8B5CF6;--purple-dim: rgba(139, 92, 246, .15);--blue: #3B82F6;--text-1: #E8F4FF;--text-2: #8BA8C4;--text-3: #4A6A88;--text-inverse: #021019;--border: rgba(0, 212, 255, .12);--border-bright: rgba(0, 212, 255, .35);--border-glow: rgba(0, 212, 255, .5);--font-mono: "JetBrains Mono", "Roboto Mono", "Consolas", monospace;--font-sans: "Inter", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--r-sm: 4px;--r-md: 8px;--r-lg: 12px;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 14px;--fs-lg: 16px;--fs-xl: 20px;--fs-2xl: 28px;--fs-3xl: 36px;--shadow-glow: 0 0 20px rgba(0, 212, 255, .15);--shadow-card: 0 4px 24px rgba(0, 0, 0, .4)}.risk-L1{--risk: var(--green);--risk-dim: var(--green-dim)}.risk-L2{--risk: var(--amber);--risk-dim: var(--amber-dim)}.risk-L3{--risk: var(--orange);--risk-dim: var(--orange-dim)}.risk-L4{--risk: var(--red);--risk-dim: var(--red-dim)}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--fs-md);color:var(--text-1);background:var(--bg-deep);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-user-select:none;user-select:none}.markdown-text{display:flex;flex-direction:column;gap:5px;-webkit-user-select:text;user-select:text}.markdown-text p{margin:0;color:inherit}.markdown-text strong{color:#ecfbff;font-weight:650}.markdown-text code{padding:1px 4px;border:1px solid rgba(74,192,220,.2);border-radius:3px;color:#7be9fb;background:#0c4d6233;font:inherit}.markdown-text .md-heading{margin-top:4px;color:#79eaff;font-weight:700;letter-spacing:.02em}.markdown-text .md-heading.level-1{font-size:1.14em}.markdown-text .md-heading.level-2{font-size:1.08em}.markdown-text .md-heading.level-3,.markdown-text .md-heading.level-4{font-size:1.02em}.markdown-text .md-list-item{display:grid;grid-template-columns:18px 1fr;gap:2px}.markdown-text .md-list-item>i{color:#4fe3f8;font-style:normal;font-family:var(--font-mono)}.markdown-text .md-list-item.ordered>i{color:#ffcc73}.markdown-text .md-meta{display:block;margin-top:3px;color:#6f929f;font-size:.82em}.markdown-text .md-space{height:3px}.assistant-markdown{gap:4px}.assistant-markdown .md-heading{color:var(--cyan)}*{scrollbar-width:none}*::-webkit-scrollbar{width:0;height:0;display:none}.ai-scroll{scrollbar-width:thin;scrollbar-color:rgba(0,212,255,.55) transparent}.ai-scroll::-webkit-scrollbar{width:6px;height:6px;display:block}.ai-scroll::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#00d4ff8c,#00d4ff40);border-radius:3px}.ai-scroll::-webkit-scrollbar-track{background:transparent}.ai-scroll{mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 28px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 28px),transparent 100%)}.page-container,.v2-page,.decision-panel__body,.phase-timeline,.scenario-console__choices,.incident-variant-bar,.marine-ai-report>.markdown-text{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.panel{background:linear-gradient(180deg,var(--bg-panel) 0%,var(--bg-card) 100%);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-card);position:relative;overflow:hidden}.panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border-bright),transparent)}.panel-title{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--border);font-size:var(--fs-sm);font-weight:600;letter-spacing:.5px}.panel-title .icon-wrap{display:flex;align-items:center;gap:var(--sp-2);color:var(--cyan)}.panel-title .meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);font-weight:400}.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:8px 16px;border:1px solid var(--border-bright);border-radius:var(--r-sm);background:transparent;color:var(--text-1);font-family:var(--font-sans);font-size:var(--fs-sm);cursor:pointer;transition:all .2s;white-space:nowrap}.btn:hover{background:var(--cyan-dim);border-color:var(--cyan);box-shadow:0 0 12px #00d4ff33}.btn-primary{background:linear-gradient(135deg,var(--cyan),#0099cc);border-color:var(--cyan);color:var(--text-inverse);font-weight:600}.btn-primary:hover{background:linear-gradient(135deg,#3df,#0ad);box-shadow:0 0 20px #00d4ff66}.btn-danger{border-color:var(--red);color:var(--red)}.btn-danger:hover{background:var(--red-dim)}.live-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 8px var(--green);animation:pulse-dot 2s ease-in-out infinite}.live-dot.red{background:var(--red);box-shadow:0 0 8px var(--red)}.live-dot.amber{background:var(--amber);box-shadow:0 0 8px var(--amber)}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.eyebrow{font-family:var(--font-mono);font-size:10px;letter-spacing:2px;color:var(--cyan);text-transform:uppercase}@keyframes alarm-pulse{0%,to{opacity:1}50%{opacity:.4}}.alarm-pulse{animation:alarm-pulse .8s ease-in-out infinite}@keyframes scan-line{0%{transform:translateY(-100%)}to{transform:translateY(100%)}}.page-fade-enter{opacity:0;transform:translateY(8px)}.page-fade-enter-active{opacity:1;transform:translateY(0);transition:all .3s ease}.grid-bg{background-image:linear-gradient(rgba(0,212,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,255,.03) 1px,transparent 1px);background-size:40px 40px}.app-shell{display:flex;width:100%;height:100vh;background:var(--bg-deep);overflow:hidden}.sidebar{width:64px;background:var(--bg-panel);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:var(--sp-3) 0;gap:var(--sp-2);transition:width .3s ease;z-index:100;flex-shrink:0}.sidebar.expanded{width:200px;align-items:stretch;padding:var(--sp-3) var(--sp-2)}.sidebar>div:not(.sidebar-logo){width:100%}.sidebar-logo{display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-2);margin-bottom:var(--sp-3);color:var(--cyan);font-weight:700;font-size:var(--fs-lg);white-space:nowrap;overflow:hidden}.sidebar-logo .logo-icon{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--cyan-dim);border:1px solid var(--border-bright);border-radius:var(--r-sm)}.sidebar-logo .logo-text{opacity:0;max-width:0;overflow:hidden;transition:opacity .2s}.sidebar.expanded .sidebar-logo .logo-text{opacity:1;max-width:140px}.nav-item{width:100%;display:flex;align-items:center;gap:var(--sp-3);padding:10px 12px;border-radius:var(--r-sm);cursor:pointer;color:var(--text-2);font-size:var(--fs-sm);transition:all .2s;white-space:nowrap;overflow:hidden;border:1px solid transparent;background:transparent;text-align:left;font-family:inherit}.nav-item:hover{background:var(--bg-hover);color:var(--text-1)}.nav-item.active{background:var(--cyan-dim);color:var(--cyan);border-color:var(--border-bright)}.nav-item .nav-icon{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center}.nav-item .nav-label{opacity:0;max-width:0;overflow:hidden;transition:opacity .2s}.sidebar.expanded .nav-item .nav-label{opacity:1;max-width:150px}.nav-group-label{font-size:10px;color:var(--text-3);text-transform:uppercase;letter-spacing:1px;padding:var(--sp-2) var(--sp-2) var(--sp-1);opacity:0;transition:opacity .2s}.sidebar.expanded .nav-group-label{opacity:1}.sidebar:not(.expanded) .nav-item{justify-content:center;padding:10px 0;gap:0}.sidebar:not(.expanded) .nav-group-label{height:6px;padding:0;overflow:hidden}.sidebar:not(.expanded) .sidebar-logo{width:100%;justify-content:center;gap:0;padding:var(--sp-2) 0}.sidebar-toggle{margin-top:auto;padding:8px;background:transparent;border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center}.sidebar-toggle:hover{color:var(--cyan);border-color:var(--border-bright)}.app-content{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.topbar{height:48px;background:var(--bg-panel);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--sp-4);flex-shrink:0;z-index:50}.topbar-left{display:flex;align-items:center;gap:var(--sp-4);min-width:0}.topbar-title{font-size:var(--fs-md);font-weight:600;display:flex;align-items:center;gap:var(--sp-2)}.topbar-title .ship-badge{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--cyan);background:var(--cyan-dim);border:1px solid var(--border-bright);padding:2px 8px;border-radius:3px}.topbar-right{display:flex;align-items:center;gap:var(--sp-4);font-size:var(--fs-sm);color:var(--text-2);min-width:0}.topbar-stat{display:flex;align-items:center;gap:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-xs)}.topbar-stat .label{color:var(--text-3)}.topbar-stat .value{color:var(--text-1)}.risk-badge{display:flex;align-items:center;gap:6px;padding:4px 12px;border-radius:3px;font-weight:600;font-size:var(--fs-xs);font-family:var(--font-mono)}.risk-badge.L1{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.risk-badge.L2{background:var(--amber-dim);color:var(--amber);border:1px solid var(--amber)}.risk-badge.L3{background:var(--orange-dim);color:var(--orange);border:1px solid var(--orange)}.risk-badge.L4{background:var(--red-dim);color:var(--red);border:1px solid var(--red)}.page-container{flex:1;overflow:auto;position:relative}@media(max-width:1450px){.sidebar.expanded{width:184px}.topbar{padding:0 10px}.topbar-left,.topbar-right{gap:9px}.topbar-stat{gap:4px}.topbar-stat .label{display:none}}@media(max-width:1050px){.topbar-left .topbar-stat:nth-of-type(n+2),.topbar-right .topbar-stat:nth-of-type(-n+2){display:none}}.opening-sequence{position:fixed;z-index:2147483647;top:0;right:0;bottom:0;left:0;overflow:hidden;display:grid;place-items:center;background:radial-gradient(circle at 50% 55%,#0a3851 0,#051a2b 34%,#020a12 72%);animation:opening-exit .7s 3.8s ease-in forwards}.opening-sequence:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:conic-gradient(from 180deg at 50% 50%,transparent 0 38%,rgba(40,222,249,.08) 43%,transparent 49% 100%);animation:opening-rotate 7s linear infinite}.opening-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(54,217,241,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(54,217,241,.06) 1px,transparent 1px);background-size:56px 56px;transform:perspective(500px) rotateX(64deg) scale(1.7) translateY(25%);-webkit-mask-image:linear-gradient(to top,#000,transparent 75%);mask-image:linear-gradient(to top,#000,transparent 75%);animation:grid-drift 4s linear infinite}.opening-radar{position:absolute;width:min(74vw,820px);aspect-ratio:1;border:1px solid rgba(65,219,243,.11);border-radius:50%;opacity:.62}.opening-radar>i{position:absolute;top:16%;right:16%;bottom:16%;left:16%;border:1px solid rgba(65,219,243,.12);border-radius:50%}.opening-radar>i:nth-child(2){top:32%;right:32%;bottom:32%;left:32%}.opening-radar>i:nth-child(3){top:46%;right:46%;bottom:46%;left:46%}.opening-radar>span{position:absolute;left:50%;top:50%;width:50%;height:1px;transform-origin:left;background:linear-gradient(90deg,rgba(79,231,255,.65),transparent);box-shadow:0 0 16px #32dcf6b3;animation:opening-rotate 2.8s linear infinite}.opening-ship{position:absolute;left:50%;top:45%;width:min(58vw,760px);transform:translate(-50%,-50%);filter:drop-shadow(0 25px 36px rgba(0,0,0,.45));animation:ship-arrive 1.4s cubic-bezier(.16,.75,.19,1) both}.opening-ship svg{display:block;width:100%;overflow:visible}.opening-ship svg>path:not(.opening-hull):not(.opening-windows):not(.opening-wake){fill:#072435eb;stroke:#47e6fb;stroke-width:1.2}.opening-hull{fill:url(#opening-hull);fill-opacity:.23;stroke:#69efff;stroke-width:1.6}.opening-windows{fill:none;stroke:#8df5ff;stroke-width:7;stroke-dasharray:4 12;opacity:.65}.opening-wake{fill:none;stroke:#4be2f8;stroke-width:2;opacity:.34;filter:drop-shadow(0 0 7px #2cd7ee);stroke-dasharray:8 7;animation:wake-flow 1s linear infinite}.opening-scanline{position:absolute;left:8%;right:8%;top:0;height:2px;background:#85f4ff;box-shadow:0 0 18px 5px #4ae6fa61;animation:ship-scan 2s ease-in-out infinite}.opening-copy{position:absolute;left:50%;top:70%;width:min(86vw,680px);transform:translate(-50%);text-align:center;animation:copy-rise .8s .6s both}.opening-mark{position:absolute;left:0;top:8px;display:flex;align-items:center;gap:7px;color:#47e5fb}.opening-mark span{padding:3px 7px;border:1px solid rgba(71,229,251,.4);border-radius:3px;font:9px var(--font-mono);letter-spacing:.12em}.opening-eyebrow{display:flex;align-items:center;justify-content:center;gap:6px;color:#60dff1;font:9px var(--font-mono);letter-spacing:.28em}.opening-copy h1{margin:8px 0 2px;color:#eaffff;font-size:clamp(34px,4vw,58px);font-weight:720;letter-spacing:.18em;text-indent:.18em;text-shadow:0 0 30px rgba(65,225,249,.35)}.opening-copy p{color:#9fc8d3;font-size:clamp(11px,1.2vw,15px);letter-spacing:.14em}.opening-status{margin:17px auto 11px;display:flex;justify-content:center;gap:19px;color:#7097a4;font:8px var(--font-mono)}.opening-status span{display:flex;align-items:center;gap:5px}.opening-status svg{color:#43e2f7}.opening-progress{width:min(76%,470px);height:3px;margin:auto;overflow:hidden;border-radius:4px;background:#59aec229}.opening-progress i{display:block;height:100%;background:linear-gradient(90deg,#23b9dd,#79f4ff,#45d9a6);box-shadow:0 0 12px #49e2f7;animation:opening-progress 3.7s .35s ease both}.opening-copy>small{display:block;margin-top:8px;color:#50727f;font:7px var(--font-mono);letter-spacing:.12em}.opening-sequence>button{position:absolute;right:24px;bottom:20px;padding:7px 11px;border:1px solid rgba(91,177,198,.23);border-radius:4px;color:#638a98;background:#03121d9e;font:8px var(--font-mono);cursor:pointer}.opening-sequence>button:hover{color:#d5f9ff;border-color:#4adef685}@keyframes opening-rotate{to{transform:rotate(360deg)}}@keyframes grid-drift{to{background-position:0 56px,56px 0}}@keyframes ship-arrive{0%{opacity:0;transform:translate(-62%,-42%) scale(.78);filter:blur(8px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 25px 36px rgba(0,0,0,.45))}}@keyframes ship-scan{0%,to{top:5%;opacity:0}20%,80%{opacity:1}50%{top:93%}}@keyframes wake-flow{to{stroke-dashoffset:-30}}@keyframes copy-rise{0%{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%)}}@keyframes opening-progress{0%{width:0}to{width:100%}}@keyframes opening-exit{to{opacity:0;visibility:hidden;pointer-events:none}}@media(max-width:700px){.opening-ship{width:88vw}.opening-copy{top:64%}.opening-mark{display:none}.opening-status{gap:8px;flex-wrap:wrap}.opening-copy h1{font-size:34px}.opening-sequence>button{right:12px;bottom:12px}}.opening-sequence{animation:opening-exit .8s 5.15s ease-in forwards}.opening-progress i{transition:width .25s ease}.opening-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 52%,rgba(1,6,12,.62) 100%)}.dashboard-page{width:100%;height:100%;display:flex;flex-direction:column;padding:var(--sp-3);gap:var(--sp-3);overflow:hidden}.dashboard-grid{flex:1;display:grid;grid-template-columns:300px 1fr 300px;gap:var(--sp-3);min-height:0}.dashboard-grid .left-stack,.dashboard-grid .right-stack{display:flex;flex-direction:column;gap:var(--sp-3);overflow-y:auto;overflow-x:hidden;padding-right:2px}.dashboard-grid .left-stack>.panel,.dashboard-grid .right-stack>.panel{flex-shrink:0}.dashboard-grid .center-stack{display:flex;flex-direction:column;gap:var(--sp-2);min-height:0}.viewport-toolbar{display:flex;align-items:center;justify-content:space-between;background:#081626e6;border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 12px;flex-shrink:0}.viewport-toolbar .viewport-label{position:static;display:flex;align-items:center;gap:8px;font-size:var(--fs-xs);color:var(--text-2);font-family:var(--font-mono)}.viewport-toolbar .mode-switcher{position:static;background:transparent;border:none;padding:0;z-index:auto}.ship-viewport{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--bg-deep);border:1px solid var(--border);min-height:0;flex:1}.ship-viewport canvas{display:block;width:100%;height:100%}.r3f-canvas{pointer-events:none!important}.r3f-canvas canvas{pointer-events:auto!important}.viewport-overlay{position:absolute;top:var(--sp-3);left:var(--sp-3);right:var(--sp-3);display:flex;justify-content:space-between;pointer-events:none;z-index:10}.viewport-overlay>*{pointer-events:auto}.viewport-label{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--text-2);background:#04101ccc;padding:6px 12px;border-radius:var(--r-sm);border:1px solid var(--border);font-family:var(--font-mono)}.viewport-hint{position:absolute;bottom:50px;left:50%;transform:translate(-50%);font-size:var(--fs-xs);color:var(--text-3);background:#04101cb3;padding:4px 12px;border-radius:var(--r-sm);z-index:10}.mode-switcher{position:absolute;top:var(--sp-3);right:var(--sp-3);display:flex;gap:2px;background:#04101cf2;border:1px solid var(--border);border-radius:var(--r-sm);padding:3px;z-index:30}.mode-btn{padding:7px 14px;background:transparent;border:none;color:var(--text-2);font-size:var(--fs-xs);cursor:pointer;border-radius:3px;transition:all .2s;font-family:var(--font-sans);white-space:nowrap;flex:0 0 auto}.mode-btn:hover{color:var(--text-1)}.mode-btn.active{background:var(--cyan-dim);color:var(--cyan)}.deck-switcher{position:absolute;top:50%;left:var(--sp-3);transform:translateY(-50%);display:flex;align-items:center;gap:var(--sp-2);background:#04101ceb;border:1px solid var(--border);border-radius:var(--r-sm);padding:6px 10px;z-index:20}.deck-switcher button{background:transparent;border:none;color:var(--text-2);cursor:pointer;padding:4px;display:flex}.deck-switcher button:hover{color:var(--cyan)}.deck-switcher .deck-info{text-align:center;min-width:120px}.deck-switcher .deck-info b{display:block;font-family:var(--font-mono);color:var(--cyan);font-size:var(--fs-sm)}.deck-switcher .deck-info small{font-size:10px;color:var(--text-3)}.deck-switcher--bottom{top:auto;left:50%;bottom:14px;transform:translate(-50%)}.loading-screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-deep);z-index:100;gap:var(--sp-4)}.loading-screen .spinner{width:48px;height:48px;border:2px solid var(--border);border-top-color:var(--cyan);border-radius:50%;animation:spin 1s linear infinite}.loading-screen .loading-text{color:var(--text-2);font-size:var(--fs-sm);font-family:var(--font-mono)}.loading-screen .loading-bar{width:240px;height:3px;background:var(--bg-card);border-radius:2px;overflow:hidden}.loading-screen .loading-bar-fill{height:100%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);transition:width .3s}.metric-card{display:flex;flex-direction:column;gap:4px;padding:var(--sp-3) var(--sp-4);background:var(--bg-card);border:1px solid var(--border);border-radius:var(--r-sm)}.metric-card .metric-label{font-size:var(--fs-xs);color:var(--text-3);display:flex;align-items:center;gap:6px}.metric-card .metric-value{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:700;color:var(--text-1);font-variant-numeric:tabular-nums}.metric-card .metric-value.cyan{color:var(--cyan)}.metric-card .metric-value.green{color:var(--green)}.metric-card .metric-value.amber{color:var(--amber)}.metric-card .metric-value.red{color:var(--red)}.metric-card .metric-unit{font-size:var(--fs-xs);color:var(--text-3);font-weight:400}.metric-card .metric-delta{font-size:var(--fs-xs);font-family:var(--font-mono)}.metric-card .metric-delta.up{color:var(--red)}.metric-card .metric-delta.down{color:var(--green)}.list-item{display:flex;align-items:center;gap:var(--sp-3);padding:8px 0;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.list-item:last-child{border-bottom:none}.list-item .item-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.list-item .item-label{flex:1;color:var(--text-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-item .item-value{font-family:var(--font-mono);color:var(--text-1);font-size:var(--fs-xs)}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:3px;font-size:10px;font-family:var(--font-mono);font-weight:600;letter-spacing:.5px}.badge.cyan{background:var(--cyan-dim);color:var(--cyan);border:1px solid var(--border-bright)}.badge.green{background:var(--green-dim);color:var(--green);border:1px solid var(--green)}.badge.amber{background:var(--amber-dim);color:var(--amber);border:1px solid var(--amber)}.badge.red{background:var(--red-dim);color:var(--red);border:1px solid var(--red)}.badge.purple{background:var(--purple-dim);color:var(--purple);border:1px solid var(--purple)}.segmented{display:flex;gap:2px;background:var(--bg-input);border-radius:var(--r-sm);padding:2px}.segmented button{padding:5px 12px;background:transparent;border:none;color:var(--text-2);font-size:var(--fs-xs);cursor:pointer;border-radius:3px;transition:all .2s;font-family:var(--font-sans)}.segmented button:hover{color:var(--text-1)}.segmented button.active{background:var(--cyan-dim);color:var(--cyan)}.alert-item{display:flex;gap:10px;padding:10px;border-radius:var(--r-sm);border-left:3px solid;background:var(--bg-input);margin-bottom:6px;font-size:var(--fs-sm)}.alert-item.L1{border-left-color:var(--green)}.alert-item.L2{border-left-color:var(--amber)}.alert-item.L3{border-left-color:var(--orange)}.alert-item.L4{border-left-color:var(--red)}.alert-item .alert-time{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--text-3);flex-shrink:0}.alert-item .alert-title{color:var(--text-1)}.alert-item .alert-loc{font-size:var(--fs-xs);color:var(--text-3);margin-top:2px}.toolbar{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);border-bottom:1px solid var(--border)}.toolbar .spacer{flex:1}.page-header{padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.page-header h1{font-size:var(--fs-xl);font-weight:600;display:flex;align-items:center;gap:var(--sp-3)}.page-header .subtitle{font-size:var(--fs-sm);color:var(--text-3);margin-top:4px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-8);color:var(--text-3);gap:var(--sp-3)}.progress-ring{transform:rotate(-90deg)}.progress-ring circle{fill:none;stroke-width:3}.progress-ring .bg{stroke:var(--bg-input)}.progress-ring .fg{stroke-linecap:round;transition:stroke-dashoffset .5s}.mission-page{height:100%;min-height:0;padding:10px 12px 8px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:9px;background:radial-gradient(circle at 58% 12%,rgba(33,114,153,.12),transparent 34%),linear-gradient(180deg,#06111d,#030a12 74%)}.scenario-console{min-height:52px;display:grid;grid-template-columns:minmax(230px,1fr) auto auto;align-items:center;gap:12px;padding:7px 9px 7px 13px;border:1px solid rgba(93,162,196,.18);background:linear-gradient(90deg,#0b1f2ff5,#071522f0);border-radius:8px;box-shadow:0 10px 30px #00000038}.mission-page--presentation .scenario-console{border-color:#41bbe157;box-shadow:0 10px 34px #007caa1f}.mission-page--standard .eyebrow{letter-spacing:.04em;opacity:.72}.scenario-console__heading{min-width:0}.scenario-console__heading .eyebrow{display:block;margin-bottom:2px;color:#69b7d5}.scenario-console__heading strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;color:#d9e9f4}.scenario-console__choices{display:flex;gap:5px}.scenario-choice{border:1px solid rgba(123,166,190,.16);background:#0e2739b8;color:#7895a7;border-radius:5px;padding:7px 10px;font:500 11px var(--font-sans);cursor:pointer;transition:.16s ease}.scenario-choice:hover{border-color:#4ab8e075;color:#d9eef8}.scenario-choice.hero{color:#94d8ee}.scenario-choice.active{color:#eaf8ff;border-color:#39b9df;background:#2896be38;box-shadow:inset 0 0 0 1px #39b9df24}.scenario-console__actions{display:flex;align-items:center;justify-content:flex-end;gap:6px}.icon-button{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(110,162,188,.2);border-radius:5px;color:#8ca6b7;background:#081927bd;cursor:pointer}.icon-button:hover{color:#dff6ff;border-color:#39b9df7a}.phase-counter{min-width:30px;text-align:center;color:#8ca6b7;font-size:11px}.advance-button{padding:7px 11px}.advance-button:disabled{opacity:.38;cursor:default}.scenario-idle{font-size:11px;color:#6f899b;display:flex;align-items:center;gap:7px}.scenario-idle i{width:6px;height:6px;border-radius:50%;background:#35d39b;box-shadow:0 0 8px #35d39b}.mission-grid{min-height:0;display:grid;grid-template-columns:224px minmax(440px,1fr) 318px;gap:9px}.status-rail,.decision-panel,.twin-workspace{min-height:0;border:1px solid rgba(93,162,196,.17);border-radius:8px;background:linear-gradient(180deg,#091b2af5,#05101bf5);box-shadow:0 14px 36px #0000003d}.status-rail{padding:13px;display:flex;flex-direction:column;gap:10px;overflow:hidden}.status-rail__identity{padding:2px 3px 11px;border-bottom:1px solid rgba(104,153,179,.14)}.status-rail__identity h1{font-size:19px;font-weight:620;margin:4px 0}.status-rail__identity h1 i{font-style:normal;color:#36bce6;margin:0 5px}.status-rail__identity p{font-size:10px;color:#6e8798}.status-rail__metrics{display:grid;gap:7px}.mission-metric{padding:9px 10px;border:1px solid rgba(104,153,179,.13);border-radius:6px;background:#0a1e2ead}.mission-metric__label{display:flex;align-items:center;gap:6px;color:#7893a4;font-size:10px}.mission-metric__value{margin:4px 0 2px;color:#48c7ea;font-size:19px;font-weight:700;line-height:1}.mission-metric__value small{margin-left:5px;color:#647f91;font-size:9px;font-weight:500}.mission-metric p{color:#536c7d;font-size:9px;line-height:1.35}.mission-metric--amber .mission-metric__value{color:#f3bd61}.mission-metric--green .mission-metric__value{color:#43d5a1}.mission-metric--purple .mission-metric__value{color:#a998ed}.mini-trend-card{margin-top:auto;padding:10px;border-radius:6px;background:#051420b8;border:1px solid rgba(104,153,179,.12)}.mini-trend-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px;color:#718c9e;font-size:9px}.mini-trend-card header b{color:#7cd7f0;font-weight:600}.mini-trend-card svg{width:100%}.risk-overview{display:flex;align-items:center;justify-content:space-between;padding:9px 10px;border-left:2px solid var(--risk-color);background:color-mix(in srgb,var(--risk-color) 7%,transparent);border-radius:4px}.risk-overview span{display:block;color:#6d8798;font-size:9px}.risk-overview strong{display:block;margin-top:2px;color:var(--risk-color);font-size:12px}.risk-overview>b{color:var(--risk-color);font-size:23px}.twin-workspace{padding:7px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:7px;overflow:hidden}.twin-workspace .viewport-toolbar{border-color:#629bb726;background:#061623c7}.twin-workspace .viewport-toolbar .viewport-label{font-size:10px}.twin-stage{position:relative;min-height:0;overflow:hidden;border-radius:6px;background:#06121e}.twin-stage>.ship-viewport{height:100%;border:0;border-radius:6px}.twin-stage__stamp{position:absolute;top:10px;left:10px;z-index:24;display:flex;align-items:center;gap:6px;padding:5px 8px;border:1px solid rgba(88,161,193,.2);border-radius:4px;background:#030d16b8;color:#7192a5;font-size:9px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.twin-stage__stamp i{width:1px;height:12px;background:#6d9bb333}.phase-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.phase-step{min-width:0;display:flex;align-items:center;gap:7px;padding:7px 8px;border:1px solid rgba(101,151,178,.12);border-radius:5px;background:#071826ad}.phase-step>span{width:19px;height:19px;flex:0 0 19px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(115,156,177,.25);color:#657f90;font:600 9px var(--font-mono)}.phase-step b,.phase-step small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.phase-step b{color:#849dad;font-size:9px}.phase-step small{margin-top:2px;color:#4b6576;font-size:8px}.phase-step--current{border-color:#34b8e080;background:#2284aa24}.phase-step--current>span{color:#dff8ff;border-color:#38bee8;background:#38bee833;box-shadow:0 0 12px #38bee833}.phase-step--current b{color:#aee9fa}.phase-step--complete>span{color:#153d32;border-color:#3bd3a0;background:#3bd3a0}.phase-step--complete b{color:#71bfa4}.decision-panel{display:flex;flex-direction:column;overflow:hidden}.decision-panel__header{display:flex;align-items:center;justify-content:space-between;padding:13px 13px 11px;border-bottom:1px solid rgba(104,153,179,.13)}.decision-panel__header h2{margin-top:3px;font-size:15px;font-weight:620}.decision-panel__header .risk-badge i{width:5px;height:5px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}.decision-panel__body{min-height:0;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:13px}.decision-empty{flex:1;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:28px;text-align:center}.decision-empty__icon{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;color:#3bcf9c;background:#3bcf9c17;border:1px solid rgba(59,207,156,.23)}.decision-empty strong{margin-top:12px;font-size:13px}.decision-empty p{max-width:240px;margin-top:7px;color:#647e8f;font-size:10px;line-height:1.6}.capability-legend{display:flex;gap:12px;margin-top:18px;color:#6f899a;font-size:9px}.capability-legend span{display:flex;align-items:center;gap:4px}.tag-dot{width:5px;height:5px;border-radius:50%}.tag-dot.calc{background:#38d2a0}.tag-dot.sim{background:#3db8e0}.tag-dot.replay{background:#a68eed}.decision-summary{display:grid;grid-template-columns:72px 1fr;gap:11px;align-items:center}.risk-score-ring{width:70px;height:70px;display:grid;place-items:center;align-content:center;border-radius:50%;background:radial-gradient(circle at center,#081a29 56%,transparent 58%),conic-gradient(var(--risk) var(--score),rgba(90,131,152,.13) 0)}.risk-score-ring span{color:var(--risk);font-size:22px;font-weight:700;line-height:1}.risk-score-ring small{margin-top:3px;color:#667f90;font-size:8px}.phase-kicker{color:var(--risk);font-size:9px;font-weight:650}.decision-summary h3{margin:4px 0;font-size:13px;line-height:1.3}.decision-summary p{color:#718a9b;font-size:10px;line-height:1.55}.section-caption{display:flex;align-items:center;gap:6px;margin-bottom:7px;color:#91a9b8;font-size:10px;font-weight:650}.evidence-list{display:grid;gap:6px}.evidence-item{padding:8px 9px;border:1px solid rgba(105,151,175,.13);border-radius:5px;background:#081b2aad}.evidence-item>div{display:flex;align-items:center;justify-content:space-between;gap:8px}.evidence-item>div+div{margin-top:5px}.evidence-item strong{color:#9cb1bf;font-size:9px;font-weight:550}.evidence-item b{color:#d9edf5;font-size:12px}.evidence-item small{color:#5f7888;font-size:8px}.source-tag{padding:2px 5px;border-radius:3px;font-size:8px}.source-tag--实算,.source-tag--规则{color:#57d6ab;background:#3bcf9c17}.source-tag--仿真{color:#5cc7e7;background:#3db8e017}.source-tag--回放{color:#b19df0;background:#a68eed1a}.muted-copy{padding:9px;color:#5e7788;font-size:9px;line-height:1.5}.fusion-formula{padding:8px;border-left:2px solid #4ec4e5;border-radius:3px;color:#7d9aac;background:#2a8baf14;font:9px/1.5 var(--font-mono)}.fusion-contributions{display:grid;gap:5px;margin-top:7px}.fusion-contributions>div{display:grid;grid-template-columns:30px 1fr 30px;align-items:center;gap:6px;color:#7893a4;font-size:8px}.fusion-contributions i{height:4px;overflow:hidden;border-radius:3px;background:#5c8fa824}.fusion-contributions b{display:block;height:100%;border-radius:3px;background:#45cae9}.fusion-contributions strong{color:#9fc7d7;font:8px var(--font-mono);text-align:right}.action-checklist{display:grid;gap:5px}.action-checklist button{display:flex;align-items:center;gap:7px;width:100%;padding:7px;color:#8098a8;background:#071724b3;border:1px solid rgba(103,151,176,.15);border-radius:4px;font:9px var(--font-sans);text-align:left;cursor:pointer}.action-checklist button span{width:15px;height:15px;flex:0 0 15px;display:grid;place-items:center;border:1px solid rgba(111,159,184,.28);border-radius:3px}.action-checklist button.done{color:#73c9ac;border-color:#3bcf9c42;background:#3bcf9c12}.action-checklist button.done span{color:#08251d;border-color:#3bcf9c;background:#3bcf9c}.event-export{width:100%;justify-content:center}.mission-footer{display:flex;align-items:center;gap:16px;min-height:20px;padding:0 3px;color:#526d7d;font:9px var(--font-mono)}.mission-footer span{display:flex;align-items:center;gap:5px}.mission-footer__hint{margin-left:auto}@media(max-width:1180px){.mission-grid{grid-template-columns:190px minmax(390px,1fr) 286px}.scenario-console{grid-template-columns:minmax(180px,1fr) auto}.scenario-console__choices{grid-row:2;grid-column:1 / -1}.mission-metric p{display:none}}@media(max-width:1400px){.twin-workspace .viewport-toolbar .viewport-label{font-size:0}.twin-workspace .viewport-toolbar .viewport-label:after{content:"360m 数字孪生 · 18层语义甲板";font-size:9px}.twin-workspace .mode-btn{padding-left:8px;padding-right:8px}}@media(max-height:740px){.status-rail{gap:7px;padding:10px}.status-rail__identity{padding-bottom:7px}.mission-metric{padding:7px 9px}.mission-metric__value{font-size:17px}.mini-trend-card{display:none}.decision-panel__body{gap:9px;padding:9px}.phase-step{padding:5px 6px}}.electronic-chart{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;color:#d9eef6;background:#041a2a;-webkit-user-select:none;user-select:none;contain:layout paint}.chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#6fcfe7;background:#03111c;font-size:11px}.electronic-chart>svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;touch-action:none;cursor:grab}.electronic-chart>svg:active{cursor:grabbing}.chart-world{transform-origin:0 0}.chart-graticule{fill:none;stroke:#39718a;stroke-width:.22;stroke-opacity:.42;vector-effect:non-scaling-stroke}.chart-land{fill:#143546;stroke:#5d94a8;stroke-width:.34;vector-effect:non-scaling-stroke}.depth-contour{fill:none;stroke:#2e7897;stroke-width:.48;stroke-dasharray:2 2;vector-effect:non-scaling-stroke;opacity:.68}.depth-1{opacity:.46}.depth-2{opacity:.28}.traffic-lane{fill:none;vector-effect:non-scaling-stroke}.traffic-lane.outer{stroke:#5f8190;stroke-width:12;stroke-opacity:.12}.traffic-lane.inner{stroke:#8eb0ba;stroke-width:6;stroke-opacity:.1;stroke-dasharray:12 6}.voyage-line{fill:none;vector-effect:non-scaling-stroke}.voyage-line.shadow{stroke:#12d9ff;stroke-width:8;opacity:.15;filter:url(#chart-glow)}.voyage-line.active{stroke:#78efff;stroke-width:1.8;stroke-dasharray:7 4;animation:chart-route-flow 1.15s linear infinite}.waypoint circle{fill:#061b27;stroke:#a4f5ff;stroke-width:.8;vector-effect:non-scaling-stroke}.waypoint text,.port-symbol text,.ais-target text,.restricted-zone text,.own-ship text{fill:#c7e4ec;font:10px var(--font-mono);paint-order:stroke;stroke:#03111c;stroke-width:3px;stroke-linejoin:round}.sea-label{fill:#54aecc52;font:italic 22px var(--font-sans);letter-spacing:.22em;text-anchor:middle;paint-order:stroke;stroke:#03111c;stroke-width:4px}.port-symbol circle{fill:#d9fbff;stroke:#17d7ff;stroke-width:1;vector-effect:non-scaling-stroke}.ais-target path{fill:#f6d16e;stroke:#fff3c2;stroke-width:.5;vector-effect:non-scaling-stroke}.ais-target line{stroke:#f6d16e;stroke-width:.7;vector-effect:non-scaling-stroke}.ais-target text{fill:#d9c988}.restricted-zone circle{fill:#fba73114;stroke:#f6ad45;stroke-width:.9;stroke-dasharray:2 1;vector-effect:non-scaling-stroke}.restricted-zone path{stroke:#f6ad45;stroke-width:.65;vector-effect:non-scaling-stroke}.own-ship circle{fill:#08233099;stroke:#54eaff;stroke-width:.75;vector-effect:non-scaling-stroke}.own-ship circle:first-child{stroke-dasharray:2 1;animation:chart-ring 2s linear infinite}.own-ship path{fill:#f5fdff;stroke:#26dcff;stroke-width:.8;vector-effect:non-scaling-stroke;filter:url(#chart-glow)}.own-ship line{stroke:#58e8ff;stroke-width:.7;vector-effect:non-scaling-stroke}.own-ship text{fill:#fff;font-weight:700}.chart-title{position:absolute;left:18px;top:18px;z-index:5;text-shadow:0 2px 12px #00101b;pointer-events:none}.chart-title>span{display:flex;align-items:center;gap:6px;color:#70e6ff;font-size:9px;font-weight:700;letter-spacing:.08em}.chart-title h2{margin:7px 0 3px;font-size:21px}.chart-title h2 i{color:#3fdcff;font-style:normal}.chart-title p{margin:0;color:#7191a3;font-size:9px}.chart-controls{position:absolute;z-index:7;left:18px;top:116px;display:grid;overflow:hidden;border:1px solid rgba(93,174,207,.28);border-radius:7px;background:#03121deb;box-shadow:0 8px 24px #00000047}.chart-controls button{width:34px;height:31px;display:grid;place-items:center;color:#8eb4c5;border:0;border-bottom:1px solid rgba(95,155,181,.16);background:transparent;cursor:pointer}.chart-controls button:hover{color:#e8fbff;background:#31ccef24}.chart-controls span{height:24px;display:grid;place-items:center;color:#46dbf9;font:8px var(--font-mono)}.chart-layer-panel{position:absolute;top:18px;right:18px;z-index:5;width:138px;padding:9px 10px;display:grid;gap:5px;border:1px solid rgba(93,162,196,.18);border-radius:6px;background:#03121dd1;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}.chart-layer-panel b{display:flex;align-items:center;gap:6px;color:#cde8f1;font-size:10px;border-bottom:1px solid rgba(95,155,181,.15);padding-bottom:6px}.chart-layer-panel span{color:#72a0b2;font-size:8px}.chart-compass{position:absolute;z-index:4;right:228px;top:18px;width:42px;height:42px;display:grid;place-items:center;color:#78b8cc;border:1px solid rgba(98,169,198,.2);border-radius:50%;background:#03121db3}.chart-compass b{position:absolute;top:1px;font-size:7px;color:#dbf7ff}.chart-status{position:absolute;left:16px;right:16px;bottom:15px;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(91,163,194,.2);border-radius:7px;background:#03121ddb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.chart-status>div{display:flex;align-items:center;gap:8px;padding:8px 11px;border-right:1px solid rgba(99,155,179,.14)}.chart-status>div:last-child{border-right:0}.chart-status svg{color:#4bdcf7}.chart-status span{display:grid}.chart-status small{color:#607f8f;font-size:8px}.chart-status b{color:#cce4ec;font:9px var(--font-mono);margin-top:2px}.chart-scale{position:absolute;right:18px;bottom:72px;color:#87a8b7;font:8px var(--font-mono);text-align:right}.chart-scale div{width:65px;height:5px;border:solid #9bc0ce;border-width:0 1px 1px;margin-top:2px}.chart-hint{position:absolute;left:50%;bottom:72px;transform:translate(-50%);color:#689;font-size:8px;padding:4px 8px;border-radius:4px;background:#03121db8}@keyframes chart-route-flow{to{stroke-dashoffset:-22}}@keyframes chart-ring{to{stroke-dashoffset:-18}}.weather-node{pointer-events:none}.weather-node .weather-halo{animation:weather-breathe 2.8s ease-in-out infinite}.weather-node.high .weather-halo{animation-duration:1.7s}.weather-node .weather-core{fill:#a7f3ff;stroke:#28dbff;stroke-width:.7;vector-effect:non-scaling-stroke;filter:url(#chart-glow)}.weather-node.high .weather-core{fill:#ffd19a;stroke:#ff754f}.wind-vector line,.wind-vector path{fill:none;stroke:#79ddf4;stroke-width:.72;vector-effect:non-scaling-stroke}.weather-node.high .wind-vector line,.weather-node.high .wind-vector path{stroke:#ffb461}.weather-node text{fill:#ffcf9e;font:8px var(--font-mono);paint-order:stroke;stroke:#03111c;stroke-width:2px}.chart-intel-panel{position:absolute;z-index:12;right:15px;top:14px;width:204px;padding:10px;overflow:hidden;border:1px solid rgba(76,199,232,.28);border-radius:8px;color:#cce7ef;background:linear-gradient(145deg,#051b2bf0,#04101de6);box-shadow:0 15px 38px #00000059,inset 0 1px #62dcf814;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.chart-intel-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(64,220,255,.055) 50%,transparent 65%);animation:intel-scan 4.8s linear infinite}.chart-intel-panel header{position:relative;display:flex;align-items:center;justify-content:space-between}.chart-intel-panel header>div{display:flex;align-items:center;gap:7px;min-width:0}.chart-intel-panel header svg{color:#41d9f6}.chart-intel-panel header span{display:grid;min-width:0}.chart-intel-panel header b{color:#a9edfa;font:700 8px var(--font-mono);letter-spacing:.12em}.chart-intel-panel header small{margin-top:2px;overflow:hidden;color:#638796;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.chart-intel-panel header>i{width:6px;height:6px;border-radius:50%;background:#44cce8;box-shadow:0 0 9px #44cce8}.chart-intel-panel header>i.online{background:#42d69f;box-shadow:0 0 9px #42d69f}.weather-mode-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:3px;margin:9px 0 8px;padding:3px;border:1px solid rgba(87,166,194,.16);border-radius:5px;background:#020d179e}.weather-mode-switch button{min-width:0;height:23px;display:flex;align-items:center;justify-content:center;gap:4px;border:0;border-radius:3px;color:#5f8292;background:transparent;font:8px var(--font-sans);cursor:pointer}.weather-mode-switch button.active{color:#d8f8ff;background:linear-gradient(90deg,#1e9ac33d,#2ccce621);box-shadow:inset 0 0 0 1px #42ccee33}.intel-metrics{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:5px}.intel-metrics>div{min-width:0;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid rgba(93,155,180,.13);border-radius:4px;background:#061825b3}.intel-metrics svg{flex:0 0 auto;color:#42d7f1}.intel-metrics span{display:grid;min-width:0}.intel-metrics small{color:#5f7d8c;font-size:7px}.intel-metrics b{margin-top:2px;color:#daf6fc;font:9px var(--font-mono);white-space:nowrap}.intel-risk{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;margin-top:8px;color:#668694;font:7px var(--font-mono)}.intel-risk i{height:4px;overflow:hidden;border-radius:3px;background:#5a90a629}.intel-risk i b{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,#28d6ed,#f6b84a,#ff536d);box-shadow:0 0 8px #ff6f5e80}.intel-risk strong{color:#f6bd65;font-size:7px}.chart-intel-panel>p{position:relative;margin:7px 0;overflow:hidden;color:#698998;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.marine-ai-button{position:relative;width:100%;height:29px;display:flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(75,225,248,.45);border-radius:5px;color:#e8fdff;background:linear-gradient(105deg,#0e82b3c2,#1fcad994);box-shadow:0 0 18px #17c0e124,inset 0 1px #ffffff1f;font:600 9px var(--font-sans);cursor:pointer}.marine-ai-button:hover{filter:brightness(1.16);box-shadow:0 0 22px #17c0e147}.marine-ai-button:disabled{opacity:.55;cursor:wait}.intel-layers{position:relative;display:flex;align-items:center;gap:5px;margin-top:7px;color:#578;font-size:7px}.marine-ai-report{position:absolute;z-index:16;left:66px;bottom:79px;width:min(520px,calc(100% - 300px));padding:15px 16px 13px;border:1px solid rgba(87,218,242,.52);border-radius:10px;background:linear-gradient(145deg,#051c2dfc,#030f1cfb);box-shadow:0 22px 52px #00000085,0 0 34px #1bbcde26;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.marine-ai-report.fallback{border-color:#f4b74f66}.marine-ai-report header{display:flex;align-items:center;justify-content:space-between}.marine-ai-report header>div{display:flex;align-items:center;gap:8px}.marine-ai-report header svg{color:#55e6ff}.marine-ai-report header span{display:grid}.marine-ai-report header b{color:#e3fbff;font:700 10px var(--font-mono);letter-spacing:.1em}.marine-ai-report header small{margin-top:3px;color:#9bb9c4;font-size:9px}.marine-ai-report header button{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(102,178,203,.28);border-radius:5px;color:#b7d4dd;background:#030e18c2;cursor:pointer}.marine-ai-report>.markdown-text{max-height:225px;margin:13px 0;overflow:auto;color:#d9eef4;font-size:12.5px;line-height:1.72}.marine-ai-report footer{display:flex;align-items:center;gap:14px;padding-top:10px;border-top:1px solid rgba(90,164,190,.22);color:#91acb6;font-size:9px}.marine-ai-report footer span{display:flex;align-items:center;gap:4px}.spin{animation:spin 1s linear infinite}@keyframes weather-breathe{0%,to{opacity:.66;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes intel-scan{0%{transform:translate(-120%)}to{transform:translate(120%)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1320px){.chart-intel-panel{width:184px;right:10px;top:10px;padding:8px}.chart-compass{right:204px;top:12px}.chart-intel-panel header small,.intel-layers{display:none}.marine-ai-report{width:min(470px,calc(100% - 230px))}}@media(max-width:1320px){.mission-page{height:auto;min-height:100%;overflow:visible;grid-template-rows:auto auto auto}.mission-grid{grid-template-columns:180px minmax(0,1fr);grid-template-rows:minmax(520px,calc(100vh - 150px)) minmax(300px,auto)}.decision-panel{grid-column:1/-1;min-height:300px}.decision-empty{min-height:260px}.chart-status{grid-template-columns:repeat(2,1fr)}.chart-status>div:nth-child(2){border-right:0}.chart-status>div:nth-child(-n+2){border-bottom:1px solid rgba(99,155,179,.14)}.chart-scale,.chart-hint{bottom:102px}.marine-ai-report{bottom:108px}}@media(max-width:760px){.mission-page{padding:8px}.scenario-console{grid-template-columns:1fr}.scenario-console__choices,.scenario-console__actions{grid-column:1;grid-row:auto;overflow-x:auto}.scenario-console__choices{padding-bottom:2px}.mission-grid{display:grid;grid-template-columns:1fr;grid-template-rows:auto 600px auto}.status-rail{display:grid;grid-template-columns:1fr;overflow:visible}.status-rail__metrics{grid-template-columns:repeat(2,1fr)}.mini-trend-card{display:none}.decision-panel{grid-column:1}.phase-timeline{overflow-x:auto}.phase-step{min-width:100px}.chart-intel-panel{width:168px}.chart-compass{display:none}.intel-metrics>div:nth-child(n+3){display:none}.marine-ai-report{left:10px;right:10px;width:auto}.marine-ai-report>.markdown-text{max-height:210px;font-size:12px}.mission-footer{flex-wrap:wrap}.mission-footer__hint{width:100%;margin-left:0}}.section-deck-index{position:absolute;z-index:8;right:8px;top:6px;width:196px;max-height:calc(100% - 12px);overflow-y:auto;padding:7px;display:grid;grid-template-columns:1fr;gap:3px;border:1px solid rgba(77,181,214,.22);border-radius:7px;background:#03111cdb;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);box-shadow:0 10px 30px #0000003d}.section-deck-index .deck-index-head{display:flex;align-items:center;justify-content:space-between;padding:1px 2px 6px}.section-deck-index .deck-index-head b{color:#82ddef;font:11px var(--font-mono);letter-spacing:.08em}.section-deck-index .deck-index-toggle{display:flex;align-items:center;justify-content:center;width:22px;height:20px;padding:0;border:1px solid rgba(75,143,170,.25);border-radius:3px;color:#6fd9f2;background:#08212ea3;cursor:pointer}.section-deck-index .deck-index-toggle:hover{color:#d9f7ff;border-color:#37d3f273}.section-deck-index.is-collapsed{width:auto;padding:5px}.section-deck-index button:not(.deck-index-toggle){min-width:0;height:25px;padding:1px 7px;display:grid;grid-template-columns:34px 1fr;align-items:center;gap:5px;border:1px solid rgba(75,143,170,.12);border-radius:3px;color:#8fb0c2;background:#08212ea3;cursor:pointer;text-align:left}.section-deck-index button:not(.deck-index-toggle):hover{color:#d9f7ff;border-color:#37d3f24d}.section-deck-index button.active{color:#dffbff;border-color:#23dcff9e;background:#0089ae38;box-shadow:inset 2px 0 #26dcff}.section-deck-index span{color:#43d9f5;font:10.5px var(--font-mono)}.section-deck-index small{overflow:hidden;color:inherit;font-size:10.5px;line-height:1.1;white-space:nowrap;text-overflow:ellipsis}.incident-beacon-label{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;border:1px solid rgba(251,77,97,.65);border-radius:6px;background:#2a060ce0;box-shadow:0 0 18px #fb4d6159;white-space:nowrap}.incident-beacon-label b{color:#ffb3bd;font-size:12px}.incident-beacon-label small{color:#e0808c;font-size:10px;font-family:var(--font-mono)}.deck-plan-stage{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;padding:20px 20px 20px 58px;transition:padding .5s ease}.deck-plan-stage>div{width:100%;max-width:900px}.has-incident-evidence .deck-plan-stage{padding-right:43%}.incident-stage{position:absolute;z-index:13;top:0;right:0;bottom:0;left:0;pointer-events:none}.incident-variant-bar{position:absolute;z-index:15;left:50%;top:9px;transform:translate(-50%);display:flex;align-items:center;gap:4px;padding:4px;border:1px solid rgba(72,197,229,.24);border-radius:7px;background:#03111de0;box-shadow:0 10px 28px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.incident-variant-bar>span{display:flex;align-items:center;gap:4px;padding:0 6px;color:#5e8798;font-size:8px;white-space:nowrap}.incident-variant-bar button{height:27px;min-width:106px;display:grid;grid-template-columns:22px 1fr;align-items:center;gap:4px;padding:3px 7px;border:1px solid rgba(77,148,176,.15);border-radius:4px;color:#7292a1;background:#08202eb3;cursor:pointer;text-align:left}.incident-variant-bar button.active{color:#e6fbff;border-color:#37daf68c;background:linear-gradient(90deg,#0c85ae59,#1dc3d726);box-shadow:inset 2px 0 #2de0ff,0 0 14px #1ecae81f}.incident-variant-bar button b{color:#45dff9;font:9px var(--font-mono)}.incident-variant-bar button small{overflow:hidden;font-size:8px;white-space:nowrap;text-overflow:ellipsis}.hull-incident-pin{position:absolute;width:1px;height:1px;filter:drop-shadow(0 0 8px rgba(255,70,91,.85))}.hull-incident-pin>i{position:absolute;left:-18px;top:-18px;width:36px;height:36px;border:1px solid #ff536d;border-radius:50%;animation:incident-ring 1.4s ease-out infinite}.hull-incident-pin>i:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:50%;background:#ff536d;box-shadow:0 0 16px #ff536d}.hull-incident-pin>span{position:absolute;left:13px;top:-1px;width:82px;height:1px;transform:rotate(-18deg);transform-origin:left;background:linear-gradient(90deg,#ff536d,#ff536d26)}.hull-incident-pin>div{position:absolute;left:88px;top:-54px;width:176px;padding:8px 10px;display:grid;grid-template-columns:18px 1fr;border:1px solid rgba(255,83,109,.52);border-radius:5px;background:#1c0811e6;box-shadow:0 10px 28px #0000005c,inset 3px 0 #ff536d}.hull-incident-pin svg{grid-row:1/3;align-self:center;color:#ff6a7f}.hull-incident-pin b{color:#ffd8df;font-size:10px}.hull-incident-pin small{margin-top:2px;color:#b77d89;font-size:8px}.hull-alert-card{position:absolute;right:14px;bottom:15px;width:272px;padding:10px;border:1px solid rgba(255,85,108,.34);border-radius:8px;background:linear-gradient(145deg,#140a14f0,#04111deb);box-shadow:0 18px 42px #0006,0 0 30px #ff426117;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto}.hull-alert-card>header,.deck-evidence-card>header{display:flex;align-items:center;gap:7px}.hull-alert-card>header svg{color:#ff6077}.hull-alert-card>header span,.deck-evidence-card>header span{display:grid;min-width:0;flex:1}.hull-alert-card>header b,.deck-evidence-card>header b{color:#dff9ff;font:700 8px var(--font-mono);letter-spacing:.1em}.hull-alert-card>header small,.deck-evidence-card>header small{margin-top:2px;color:#6e8997;font-size:7px}.hull-alert-card>strong{display:block;margin-top:8px;color:#ff9cab;font-size:11px}.hull-alert-card>p{margin:4px 0 8px;color:#8ca5b1;font-size:8px;line-height:1.5}.deck-evidence-card{position:absolute;top:48px;right:12px;width:39%;min-width:280px;display:flex;flex-direction:column;padding:10px;border:1px solid rgba(69,217,241,.34);border-radius:9px;background:linear-gradient(150deg,#041928f7,#030d18f2);box-shadow:0 20px 48px #00000073,0 0 35px #27cae714;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px);pointer-events:auto}.deck-evidence-card>header{min-height:32px;padding-bottom:8px}.deck-evidence-card>header svg{color:#43def5}.deck-evidence-card>header em{width:30px;height:22px;display:grid;place-items:center;border:1px solid rgba(255,86,109,.5);border-radius:4px;color:#ff8091;background:#ff4b6814;font:9px var(--font-mono);font-style:normal}.deck-evidence-meta{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:5px;margin-top:8px}.deck-evidence-meta span{min-width:0;display:grid;grid-template-columns:14px 1fr;padding:6px;border:1px solid rgba(79,152,178,.15);border-radius:4px;color:#6c8b99;font-size:7px}.deck-evidence-meta svg{grid-row:1/3;color:#39d8ef}.deck-evidence-meta b{overflow:hidden;color:#d5f5fa;font:8px var(--font-mono);text-overflow:ellipsis;white-space:nowrap}.cctv-replay{position:relative;flex:1;min-height:0;overflow:hidden;border:1px solid rgba(78,177,204,.28);border-radius:6px;background:#02080d;box-shadow:inset 0 0 30px #00000059}.cctv-replay.compact{height:122px;flex:none}.deck-evidence-card .cctv-replay{width:100%;height:auto;flex:0 0 auto;aspect-ratio:16/9}.cctv-replay video{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.82) contrast(1.06) brightness(.82)}.cctv-replay.detected video{filter:saturate(1.06) contrast(1.09) brightness(.88)}.cctv-replay:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(rgba(42,229,255,.025) 50%,transparent 50%);background-size:100% 4px;mix-blend-mode:screen}.cctv-scan{position:absolute;z-index:2;left:0;right:0;height:1px;top:0;background:#55e6ff;box-shadow:0 0 12px #34d9ef;opacity:.45;animation:cctv-scan 3.2s linear infinite}.cctv-replay>header{position:absolute;z-index:4;left:7px;right:7px;top:6px;display:flex;align-items:center;justify-content:space-between;padding:4px 6px;color:#d8faff;background:#020e17ad;border-radius:3px;font:7px var(--font-mono);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.cctv-replay>header span{display:flex;align-items:center;gap:5px}.cctv-replay>header i{width:5px;height:5px;border-radius:50%;background:#36d99b;box-shadow:0 0 8px #36d99b}.cctv-replay.detected>header i{background:#ff536d;box-shadow:0 0 8px #ff536d}.cctv-replay>header b{color:#54e9ff;font-size:7px}.cctv-replay.detected>header b{color:#ff8798}.cctv-location{position:absolute;z-index:4;left:8px;bottom:25px;display:flex;align-items:center;gap:4px;padding:3px 5px;border-radius:3px;color:#cceef4;background:#020e17b8;font-size:7px}.cctv-detection-box{position:absolute;z-index:3;border:2px solid #ff536d;box-shadow:0 0 14px #ff536da8,inset 0 0 14px #ff536d1a;animation:detection-lock .6s ease-out;transition:left .16s linear,top .16s linear,width .16s linear,height .16s linear;will-change:left,top,width,height}.cctv-detection-box.crowd{border-color:#ffbf52;box-shadow:0 0 14px #ffbf5299,inset 0 0 14px #ffbf521a}.cctv-detection-box span{position:absolute;left:-2px;top:-17px;padding:2px 5px;color:#fff;background:#d92e4a;font:7px var(--font-mono);white-space:nowrap}.cctv-detection-box.crowd span{background:#b77609}.cctv-detection-box.tracking{border-color:#31e2f2;box-shadow:0 0 14px #31e2f294,inset 0 0 14px #31e2f21a}.cctv-detection-box.tracking span{color:#03131c;background:#31e2f2}.cctv-replay.tracking>header i{background:#31e2f2;box-shadow:0 0 8px #31e2f2}.cctv-replay.tracking>header b{color:#78eff8}.cctv-replay>footer{position:absolute;z-index:4;left:7px;right:7px;bottom:6px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;color:#8fa9b4;font:6px var(--font-mono)}.cctv-replay>footer>i{height:3px;overflow:hidden;border-radius:3px;background:#84b3c338}.cctv-replay>footer>i b{display:block;height:100%;background:linear-gradient(90deg,#2bd7ee,#ffbd52,#ff536d)}@keyframes incident-ring{0%{transform:scale(.6);opacity:1}to{transform:scale(1.45);opacity:0}}@keyframes cctv-scan{to{top:100%}}@keyframes detection-lock{0%{opacity:0;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@media(max-width:1320px){.incident-variant-bar button{min-width:88px}.deck-evidence-card{width:42%}.has-incident-evidence .deck-plan-stage{padding-right:45%}.hull-alert-card{width:238px}.cctv-replay.compact{height:106px}}@media(max-width:760px){.incident-variant-bar{max-width:calc(100% - 18px);overflow-x:auto}.incident-variant-bar>span{display:none}.deck-evidence-card{top:auto;left:8px;right:8px;bottom:8px;width:auto;min-width:0;height:48%}.has-incident-evidence .deck-plan-stage{padding:20px 20px 48%}.hull-alert-card{right:8px;bottom:8px;width:220px}.hull-incident-pin>div{left:36px;width:145px}.hull-incident-pin>span{width:34px}}.v2-page{height:100%;min-width:0;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:14px;background:radial-gradient(circle at 90% 0,rgba(0,212,255,.05),transparent 28%);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.v2-page>*{flex:0 0 auto}.v2-page-header{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:50px}.v2-page-header h1{margin:0;display:flex;align-items:center;gap:10px;font-size:20px}.v2-page-header h1 svg{color:var(--cyan)}.v2-page-header p{margin:5px 0 0;color:var(--text-3);font-size:12px}.v2-page-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.v2-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.v2-metric{min-height:92px}.v2-note{margin-top:5px;color:var(--text-3);font-size:10px}.metric-value.red{color:var(--red)}.v2-two-col{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:12px}.v2-design-layout,.v2-safety-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}.v2-span-2{min-width:0}.v2-panel{min-width:0;min-height:0;padding:0;overflow:hidden;isolation:isolate}.v2-panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--border);font-size:12px}.v2-panel-head span{min-width:0;font-size:10px;color:var(--text-3);text-align:right}.v2-panel>:not(.v2-panel-head){margin-left:14px;margin-right:14px}.v2-panel>:last-child{margin-bottom:14px}.v2-table-wrap{max-width:100%;overflow:auto;margin:0!important;overscroll-behavior:contain}.v2-table{width:100%;min-width:590px;border-collapse:collapse;font-size:11px}.v2-table th{padding:9px 10px;text-align:left;color:var(--text-3);font-weight:500;border-bottom:1px solid var(--border);white-space:nowrap}.v2-table td{padding:10px;color:var(--text-2);border-bottom:1px solid rgba(83,111,136,.15)}.v2-table tbody tr.selected{background:#22d3ee0f;box-shadow:inset 3px 0 #22d3ee}.v2-table td b{display:block;color:var(--text-1)}.v2-table td small{display:block;color:var(--text-3);margin-top:3px}.v2-status{display:inline-flex;align-items:center;padding:2px 7px;border-radius:10px;font-size:9px;border:1px solid currentColor;white-space:nowrap}.v2-status.cyan{color:#22d3ee;background:#22d3ee14}.v2-status.green{color:#34d399;background:#34d39914}.v2-status.amber{color:#fbbf24;background:#fbbf2414}.v2-status.red{color:#fb4d61;background:#fb4d6114}.v2-status.purple{color:#a78bfa;background:#a78bfa14}.v2-purpose-banner{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.v2-purpose-banner>div{min-width:0;display:flex;align-items:flex-start;gap:9px;padding:11px 12px;border:1px solid rgba(50,194,222,.18);border-radius:7px;background:linear-gradient(135deg,#092a3dd6,#041420c7);color:var(--text-2);font-size:10px;line-height:1.5}.v2-purpose-banner svg{flex:0 0 auto;color:var(--cyan)}.v2-purpose-banner span{min-width:0}.v2-purpose-banner b{display:block;margin-bottom:2px;color:var(--text-1);font-size:11px}.v2-optimisation-workbench{display:grid;grid-template-columns:minmax(230px,.9fr) minmax(260px,1.1fr) minmax(220px,.8fr);gap:12px;padding:13px 0}.v2-zone-selector>b{display:block;margin-bottom:8px;color:var(--text-2);font-size:10px}.v2-zone-selector>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.v2-zone-selector button{min-width:0;display:grid;padding:8px;border:1px solid var(--border);border-radius:5px;color:var(--text-2);background:var(--bg-input);text-align:left;cursor:pointer}.v2-zone-selector button.active{border-color:var(--cyan);background:#22d3ee17;box-shadow:inset 2px 0 var(--cyan)}.v2-zone-selector button span{color:var(--cyan);font:9px var(--font-mono)}.v2-zone-selector button small{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.v2-slider-stack{display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--border);border-radius:6px;background:#03111c94}.v2-slider-stack label{display:grid;gap:4px}.v2-slider-stack label span{display:flex;justify-content:space-between;color:var(--text-3);font-size:9px}.v2-slider-stack label b{color:var(--text-1);font:10px var(--font-mono)}.v2-range-control{display:grid;grid-template-columns:24px 1fr 24px;align-items:center;gap:5px}.v2-range-control button{height:22px;padding:0;border:1px solid var(--border);border-radius:4px;color:var(--cyan);background:var(--bg-input);cursor:pointer}.v2-slider-stack input{width:100%;accent-color:var(--cyan)}.v2-process-flow{display:flex;flex-direction:column;gap:5px}.v2-process-flow>div{display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:7px;padding:8px;border:1px solid var(--border);border-radius:5px;background:var(--bg-input)}.v2-process-flow i{color:var(--cyan);font:9px var(--font-mono);font-style:normal}.v2-process-flow span{display:grid}.v2-process-flow b{font-size:10px}.v2-process-flow small{margin-top:2px;color:var(--text-3);font-size:8px}.v2-process-flow svg{color:var(--green)}.v2-evidence-list{display:flex;flex-direction:column;gap:11px;padding-top:14px}.v2-evidence-list>div{display:flex;gap:10px;color:var(--text-2);font-size:11px;line-height:1.5}.v2-evidence-list svg{color:var(--cyan);flex:0 0 auto}.v2-evidence-list b{display:block;color:var(--text-1)}.v2-evidence-list.compact{padding-top:12px;border-top:1px solid var(--border)}.v2-formula{padding:10px;border:1px solid var(--border-bright);background:#00d4ff0d;border-radius:6;color:var(--cyan);font:10px var(--font-mono);margin-top:14px}.v2-disclaimer{color:var(--text-3);font-size:10px;line-height:1.6;display:flex;align-items:center;gap:6px}.v2-chart{overflow:auto;padding:8px 0}.v2-camera-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px 0}.v2-replay{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:linear-gradient(160deg,#0a2639,#020a12)}.v2-replay.alert{border-color:var(--red);box-shadow:0 0 14px #fb4d6129}.v2-replay-grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(54,95,120,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(54,95,120,.08) 1px,transparent 1px);background-size:18px 18px}.v2-replay-hud{position:absolute;z-index:2;inset:6px 7px auto;display:flex;justify-content:space-between;font:8px var(--font-mono);color:#34d399}.v2-replay-name{position:absolute;left:7px;bottom:6px;font-size:8px;color:var(--text-3)}.v2-detection-box{position:absolute;left:38%;top:35%;width:24%;height:34%;border:2px solid var(--red);box-shadow:0 0 8px #fb4d6180}.v2-detection-box.crowd{left:22%;top:44%;width:54%;height:32%;border-color:#fbbf24}.v2-detection-box span{position:absolute;left:-2px;top:-15px;padding:1px 4px;background:var(--red);color:#fff;font:8px var(--font-mono)}.v2-detection-box.crowd span{background:#b78108}.v2-phase-title{margin-top:14px!important;margin-bottom:5px!important;font-size:14px;color:var(--text-1)}.v2-copy{font-size:11px;color:var(--text-2);line-height:1.6}.v2-evidence-stack{display:flex;flex-direction:column;gap:7px}.v2-evidence-stack>div{display:flex;align-items:center;gap:8px;padding:8px;background:var(--bg-input);border-radius:5px;font-size:10px}.v2-evidence-stack b{display:block;color:var(--text-1)}.v2-evidence-stack span:nth-child(2){flex:1;color:var(--text-2)}.v2-empty{display:flex;flex-direction:column;align-items:center;gap:8px;padding:48px 10px;color:var(--text-3);font-size:11px;text-align:center}.v2-empty svg{color:var(--green)}.v2-strategy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:12px 0}.v2-strategy-grid button{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px;border:1px solid var(--border);border-radius:6px;color:var(--text-2);background:var(--bg-input);cursor:pointer;text-align:left}.v2-strategy-grid button.active{border-color:var(--cyan);background:#22d3ee17;box-shadow:inset 3px 0 var(--cyan)}.v2-strategy-grid span{min-width:0;display:grid}.v2-strategy-grid b{color:var(--text-1);font-size:10px}.v2-strategy-grid small{margin-top:3px;overflow:hidden;color:var(--text-3);font-size:8px;text-overflow:ellipsis;white-space:nowrap}.v2-strategy-grid strong{color:var(--cyan);font:14px var(--font-mono)}.v2-route-map{height:150px;position:relative;margin-top:12px!important;border:1px solid var(--border);border-radius:7px;background:radial-gradient(circle at center,rgba(34,211,238,.08),transparent 60%),#05121f}.v2-route-map .from,.v2-route-map .to{position:absolute;top:62px;color:var(--text-1);font-weight:600;font-size:12px}.v2-route-map .from{left:34px}.v2-route-map .to{right:34px}.v2-route-map .route-a,.v2-route-map .route-b{position:absolute;left:78px;right:74px;top:74px;border-top:1px dashed #6b87a2}.v2-route-map .route-b{top:65px;height:45px;border:0;border-top:2px solid #34d399;border-radius:50%}.v2-route-map svg{position:absolute;right:12px;top:12px;color:#6b87a2}.v2-device-list{max-height:330px;overflow:auto;display:flex;flex-direction:column;padding:9px 0;overscroll-behavior:contain}.v2-device-list>div{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--border)}.v2-device-list svg{color:var(--amber)}.v2-device-list span{min-width:0;flex:1}.v2-device-list b{display:block;font-size:11px}.v2-device-list small{font-size:9px;color:var(--text-3)}.v2-device-list strong{color:var(--green);font:13px var(--font-mono)}.v2-dispatch-board{padding:12px 0}.v2-dispatch-summary{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input)}.v2-dispatch-summary>svg{color:var(--amber)}.v2-dispatch-summary>span{min-width:0;display:grid;flex:1}.v2-dispatch-summary b{font-size:11px}.v2-dispatch-summary small{margin-top:3px;color:var(--text-3);font-size:9px}.v2-dispatch-tasks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-top:8px}.v2-dispatch-tasks button{min-width:0;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:6px;color:var(--text-2);background:#03111cb3;text-align:left;cursor:pointer}.v2-dispatch-tasks button:disabled{opacity:.48;cursor:not-allowed}.v2-dispatch-tasks button.done{border-color:#34d3997a;background:#34d39912}.v2-dispatch-tasks button>svg:first-child{color:var(--cyan)}.v2-dispatch-tasks button>svg:last-child{color:var(--text-3)}.v2-dispatch-tasks button.done>svg:last-child{color:var(--green)}.v2-dispatch-tasks span{min-width:0;display:grid}.v2-dispatch-tasks b{font-size:10px}.v2-dispatch-tasks small{margin-top:3px;color:var(--text-3);font-size:8px;line-height:1.35}.v2-success-strip{display:flex;align-items:center;gap:7px;margin-top:8px;padding:9px;border:1px solid rgba(52,211,153,.28);border-radius:5px;color:#8ff3cd;background:#34d39912;font-size:10px}.v2-design-workbench{display:grid;grid-template-columns:250px minmax(0,1fr);gap:12px;padding:12px 0}.v2-design-inputs{display:flex;flex-direction:column;gap:11px;padding:10px;border:1px solid var(--border);border-radius:6px;background:#03111c9e}.v2-design-inputs label{display:grid;gap:5px}.v2-design-inputs label span{display:flex;justify-content:space-between;color:var(--text-3);font-size:9px}.v2-design-inputs label b{color:var(--text-1);font:10px var(--font-mono)}.v2-design-inputs input{width:100%;accent-color:var(--cyan)}.v2-design-inputs>div>span{display:block;margin-bottom:6px;color:var(--text-3);font-size:9px}.v2-design-inputs section{display:grid;grid-template-columns:1fr 1fr;gap:5px}.v2-design-inputs section button{padding:6px;border:1px solid var(--border);border-radius:4px;color:var(--text-2);background:var(--bg-input);font-size:9px;cursor:pointer}.v2-design-inputs section button.active{color:#e9fcff;border-color:var(--cyan);background:#22d3ee1a}.v2-concept-grid{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:7px;overflow:auto;overscroll-behavior:contain}.v2-concept-grid>button{min-width:150px;padding:9px;border:1px solid var(--border);border-radius:6px;color:var(--text-2);background:var(--bg-input);text-align:left;cursor:pointer}.v2-concept-grid>button.active{border-color:var(--cyan);box-shadow:inset 0 0 0 1px #22d3ee33,0 0 16px #22d3ee14}.v2-concept-grid>button.infeasible{border-color:#fb4d6157}.v2-concept-grid header{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.v2-concept-grid header span{min-width:0;display:grid}.v2-concept-grid header b{font-size:10px}.v2-concept-grid header small{margin-top:3px;color:var(--text-3);font-size:8px}.v2-concept-grid header strong{color:var(--cyan);font:18px var(--font-mono)}.v2-concept-grid>button>div{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:10px 0}.v2-concept-grid>button>div span{padding:5px;border-radius:3px;background:#020b128c;color:var(--text-3);font-size:8px}.v2-concept-result{grid-column:1/-1;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:12px;padding:10px;border:1px solid rgba(52,211,153,.23);border-radius:6px;background:#34d3990d}.v2-concept-result>span{display:grid}.v2-concept-result b{color:#baf4dc;font-size:11px}.v2-concept-result small{margin-top:4px;color:var(--text-3);font-size:9px;line-height:1.45}.v2-concept-result ul{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:0;list-style:none}.v2-concept-result li{display:flex;align-items:center;gap:5px;color:var(--text-2);font-size:9px}.v2-concept-result li svg{flex:0 0 auto;color:var(--green)}.v2-deck-stack{max-height:390px;overflow:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:12px 0}.v2-deck-stack button{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:8px;padding:8px;border:1px solid color-mix(in srgb,var(--deck-color) 40%,transparent);border-left:3px solid var(--deck-color);background:color-mix(in srgb,var(--deck-color) 7%,var(--bg-input));color:var(--text-1);cursor:pointer;text-align:left;border-radius:5px}.v2-deck-stack button:hover{transform:translate(2px)}.v2-deck-stack small{color:var(--deck-color);font-size:9px}.v2-check-list{max-height:390px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:8px 0}.v2-check-list>div{display:flex;align-items:center;gap:8px;padding:10px 0;border-bottom:1px solid var(--border);font-size:11px}.v2-check-list svg{color:var(--green)}.v2-check-list span:nth-child(2){flex:1}.v2-feedback-grid{display:grid;grid-template-columns:repeat(3,minmax(210px,1fr));gap:10px;padding:12px 0;overflow:auto;overscroll-behavior:contain}.v2-feedback-grid>div{padding:12px;background:var(--bg-input);border:1px solid var(--border);border-radius:7px}.v2-feedback-grid svg{color:var(--cyan);margin-bottom:8px}.v2-feedback-grid b{display:block;font-size:12px}.v2-feedback-grid p{font-size:10px;color:var(--text-2);line-height:1.6;min-height:48px}.v2-architecture{max-height:min(430px,55vh);overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:7px;padding:12px 0}.v2-architecture>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:center;padding:10px;border-left:3px solid var(--layer-color);background:color-mix(in srgb,var(--layer-color) 6%,var(--bg-input))}.v2-architecture strong{color:var(--layer-color);font-size:11px}.v2-architecture section{min-width:0;display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:7px;overflow:auto}.v2-architecture span{padding:7px;text-align:center;background:var(--bg-panel);border:1px solid var(--border);border-radius:4px;font-size:10px}.v2-capability-list{max-height:420px;overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;padding:8px 0}.v2-capability-list>div{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid var(--border);font-size:11px;color:var(--text-2)}.v2-settings-list{display:flex;flex-direction:column;padding:8px 0;gap:4px}.v2-settings-list label,.v2-setting-row{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--border)}.v2-settings-list label>span,.v2-setting-row>span{display:grid;grid-template-columns:24px 1fr;align-items:center}.v2-settings-list b,.v2-setting-row b{font-size:11px}.v2-settings-list small,.v2-setting-row small{grid-column:2;color:var(--text-3);font-size:9px;margin-top:3px}.v2-settings-list input{accent-color:var(--cyan)}.v2-setting-row select{background:var(--bg-input);color:var(--text-1);border:1px solid var(--border);padding:5px;border-radius:4px}@media(max-width:1100px){.v2-metric-grid{grid-template-columns:repeat(2,1fr)}.v2-two-col,.v2-design-layout,.v2-safety-grid,.v2-purpose-banner{grid-template-columns:1fr}.v2-optimisation-workbench{grid-template-columns:1fr 1fr}.v2-process-flow{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,1fr)}.v2-strategy-grid{grid-template-columns:repeat(2,1fr)}.v2-dispatch-tasks,.v2-design-workbench{grid-template-columns:1fr}.v2-concept-grid{grid-template-columns:repeat(4,minmax(160px,1fr))}.v2-camera-grid,.v2-deck-stack{grid-template-columns:repeat(2,1fr)}.v2-architecture>div{grid-template-columns:120px minmax(0,1fr)}.v2-architecture section{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media(max-width:720px){.v2-page-header{align-items:flex-start;flex-direction:column}.v2-page-actions{width:100%;justify-content:flex-start}.v2-optimisation-workbench{grid-template-columns:1fr}.v2-process-flow{grid-column:auto;grid-template-columns:1fr 1fr}.v2-strategy-grid,.v2-concept-result,.v2-concept-result ul{grid-template-columns:1fr}.v2-architecture>div{grid-template-columns:1fr}.v2-architecture section{grid-template-columns:repeat(2,minmax(130px,1fr))}}@media(max-width:520px){.v2-metric-grid,.v2-process-flow{grid-template-columns:1fr}.v2-zone-selector>div{grid-template-columns:1fr}.v2-deck-stack{grid-template-columns:1fr}.v2-panel-head{align-items:flex-start;flex-direction:column}.v2-panel-head span{text-align:left}}.algo-layout{grid-template-columns:minmax(0,1.35fr) minmax(330px,1fr)}.algo-trace{width:auto;height:150px;margin-top:10px!important;overflow:visible}.algo-trace path{stroke:#5e91aa2e;stroke-width:1;fill:none}.algo-trace polyline{fill:none;stroke-width:2}.algo-trace .actual{stroke:#22d3ee}.algo-trace .forecast{stroke:#fbbf24;stroke-dasharray:5 3}.algo-trace text{fill:#6d8fa2;font:9px var(--font-mono)}.algo-mini-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:3px!important}.algo-mini-metrics span{display:grid;padding:8px;border:1px solid var(--border);border-radius:5px;color:var(--text-3);font-size:9px}.algo-mini-metrics b{margin-top:3px;color:var(--text-1);font:12px var(--font-mono)}.algo-confusion{display:grid;grid-template-columns:repeat(2,1fr);gap:7px;padding:14px 0 2px}.algo-confusion div{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input)}.algo-confusion small{color:var(--text-3)}.algo-confusion b{color:var(--cyan);font:18px var(--font-mono)}.algo-class-grid{display:grid;gap:7px;padding:14px 0}.algo-class-grid>div{display:grid;grid-template-columns:58px 44px 1fr;align-items:center;gap:7px;color:var(--text-2);font-size:10px}.algo-class-grid b{color:var(--text-1);font:10px var(--font-mono)}.algo-class-grid i{height:5px;overflow:hidden;border-radius:3px;background:#5d94ae26}.algo-class-grid em{display:block;height:100%;border-radius:3px;background:#34d399}.algo-hvac{display:flex;gap:10px;padding:11px;border:1px solid var(--border-bright);border-radius:6px;background:#22d3ee0d;color:var(--text-2);font-size:10px;line-height:1.6}.algo-hvac svg{flex:0 0 auto;color:var(--cyan)}.algo-hvac b{display:block;color:var(--text-1)}.algo-datasets{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:12px 0}.algo-datasets>div,.algo-datasets>a{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--border);border-radius:6px;background:var(--bg-input)}.algo-datasets a{text-decoration:none;color:inherit}.algo-datasets svg{color:var(--cyan);flex:0 0 auto}.algo-datasets span{display:grid;min-width:0;flex:1}.algo-datasets b{font-size:10px}.algo-datasets small{margin-top:3px;color:var(--text-3);font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vision-input-grid{display:grid;grid-template-columns:220px minmax(220px,320px) 1fr;gap:12px;align-items:stretch;padding:13px 0}.vision-upload{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:150px;border:1px dashed var(--border-bright);border-radius:7px;color:var(--cyan);cursor:pointer;background:#00d4ff09}.vision-upload b{font-size:11px}.vision-upload small{color:var(--text-3);font-size:9px}.vision-upload input{position:absolute;width:1px;height:1px;opacity:0}.vision-input-grid canvas{width:100%;height:150px;object-fit:contain;border:1px solid var(--border);border-radius:7px;background:#020b12}.vision-input-grid canvas.empty{background:linear-gradient(135deg,#061827,#030c14)}.vision-output{display:flex;flex-direction:column;justify-content:center;padding:12px;border:1px solid var(--border);border-radius:7px;background:var(--bg-input)}.vision-output>span{display:flex;align-items:center;gap:7px;color:var(--text-2);font-size:10px}.vision-output>strong{margin:8px 0 2px;color:var(--cyan);font:24px var(--font-mono)}.vision-output>small,.vision-output p{color:var(--text-3);font-size:9px}.vision-output>div{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-top:8px}.vision-output i{font:8px var(--font-mono);color:var(--text-3);font-style:normal}.vision-output i b{color:var(--text-1)}@media(max-width:1100px){.algo-layout{grid-template-columns:1fr}.algo-datasets{grid-template-columns:repeat(2,1fr)}.vision-input-grid{grid-template-columns:1fr 1fr}.vision-output{grid-column:1/-1}}@media(max-width:720px){.v2-page{padding:10px}.algo-mini-metrics,.algo-datasets{grid-template-columns:1fr 1fr}.vision-input-grid{grid-template-columns:1fr}.vision-output{grid-column:auto}}.vision-sample-row{display:flex;flex-wrap:wrap;gap:7px;padding-top:12px}.yolo-grid{grid-template-columns:210px minmax(320px,1.5fr) minmax(250px,.8fr)}.yolo-canvas-wrap{position:relative;display:flex;min-height:230px;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:7px;background:#020b12;overflow:hidden}.yolo-canvas-wrap canvas{width:100%;height:auto;max-height:360px;border:0;border-radius:0}.yolo-canvas-wrap>small{position:absolute;color:var(--text-3)}.yolo-output{justify-content:flex-start;gap:10px}.yolo-output>p{display:flex;align-items:flex-start;gap:5px;margin:0;line-height:1.5}.yolo-output>p.error{color:#ff6b6b}.yolo-summary{display:grid!important;grid-template-columns:repeat(2,1fr)!important;gap:6px!important;margin-top:2px!important}.yolo-summary i{display:flex;justify-content:space-between;padding:8px;border:1px solid var(--border);border-radius:5px;background:#020c1473;font-size:9px}.yolo-summary b{color:var(--cyan);font:13px var(--font-mono)}@media(max-width:1100px){.yolo-grid{grid-template-columns:190px 1fr}.yolo-output{grid-column:1/-1}}@media(max-width:720px){.yolo-grid{grid-template-columns:1fr}.yolo-output{grid-column:auto}.yolo-canvas-wrap{min-height:190px}}.vision-live-evidence{display:flex;align-items:center;gap:8px;margin:0 0 10px;padding:9px;border:1px solid rgba(52,211,153,.24);border-radius:6px;background:#34d3990f}.vision-live-evidence>svg{flex:0 0 auto;color:#34d399}.vision-live-evidence>span{display:grid;min-width:0;flex:1}.vision-live-evidence b{font-size:10px;color:var(--text-1)}.vision-live-evidence small{margin-top:3px;color:var(--text-3);font-size:8px}.vision-alert-empty .decision-empty__icon{color:#fb923c;border-color:#fb923c47;background:#fb923c17}.cctv-library-grid{grid-template-columns:repeat(3,minmax(210px,1fr))}.cctv-library-card{min-width:0;padding:0;overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#06131f;color:inherit;cursor:pointer;text-align:left;transition:border-color .2s,transform .2s,box-shadow .2s}.cctv-library-card:hover{transform:translateY(-2px);border-color:#37d7f361;box-shadow:0 12px 28px #00000047}.cctv-library-card.active{border-color:#ff5d74;box-shadow:0 0 20px #ff4a652b,inset 0 0 0 1px #ff536d1f}.cctv-library-card>.cctv-replay{height:auto;aspect-ratio:16/9;border:0;border-bottom:1px solid rgba(70,142,170,.18);border-radius:0}.cctv-library-card>span{display:grid;padding:8px 9px}.cctv-library-card>span b{color:#d9f5fa;font-size:10px}.cctv-library-card>span small{margin-top:3px;color:#688795;font-size:8px}@media(max-width:1100px){.cctv-library-grid{grid-template-columns:repeat(2,minmax(210px,1fr))}}@media(max-width:620px){.cctv-library-grid{grid-template-columns:1fr}}.yolo-class-grid{grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px}.yolo-class-grid>div{grid-template-columns:70px 44px 1fr;padding:8px;border:1px solid var(--border);border-radius:5px;background:var(--bg-input)}@media(max-width:900px){.yolo-class-grid{grid-template-columns:repeat(2,1fr)}}
