html,body,#root{min-height:100%}body{color:#f8fafc;background:radial-gradient(circle at 0 0,#22d3ee14,#0000 34rem),radial-gradient(circle at 100% 0,#22c55e0f,#0000 30rem),#020617;margin:0;font-family:Inter,system-ui,Arial,sans-serif;overflow-x:hidden}button,select{font:inherit}.app{min-height:100vh;padding:22px}.start-screen{background:radial-gradient(circle at 50% 35%,#22d3ee29,#0000 18rem),radial-gradient(circle at 20% 18%,#94a3b814,#0000 24rem),radial-gradient(circle at 78% 72%,#ef444414,#0000 22rem),linear-gradient(#020617,#030712 54%,#010409);grid-template:"topbar topbar topbar""left center right"1fr"bottom bottom bottom"/minmax(220px,.8fr) minmax(340px,1.4fr) minmax(220px,.8fr);align-items:center;gap:clamp(14px,2vw,28px);min-height:100vh;padding:clamp(18px,3vw,36px);display:grid;position:relative;overflow:hidden}.start-screen:before,.start-screen:after{content:"";pointer-events:none;position:absolute;inset:0}.start-screen:before{opacity:.8;background:linear-gradient(105deg,#0000 0 42%,#22d3ee17 48%,#0000 55%),radial-gradient(circle at 50% 52%,#0000 0 16rem,#22d3ee0d 16.1rem,#0000 16.4rem),radial-gradient(circle at 50% 52%,#0000 0 23rem,#94a3b80a 23.1rem,#0000 23.4rem);animation:8s ease-in-out infinite ambientSweep}.start-screen:after{opacity:.55;background-image:radial-gradient(circle at 18% 26%,#22d3ee47 0 2px,#0000 3px),radial-gradient(circle at 78% 36%,#ef44443d 0 2px,#0000 3px),radial-gradient(circle at 64% 76%,#22d3ee3d 0 2px,#0000 3px),radial-gradient(circle at 32% 69%,#94a3b833 0 2px,#0000 3px);animation:4.5s ease-in-out infinite trackTwinkle}.start-screen.booting{animation:1.8s both bootOpen}.start-topbar{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#94a3b8;letter-spacing:.1em;text-transform:uppercase;background:linear-gradient(#0f172ab3,#02061780);border:1px solid #33415599;border-radius:14px;grid-area:topbar;justify-content:center;align-items:center;padding:10px 18px;font-size:11px;font-weight:800;display:flex;position:relative}.start-topbar-left,.start-topbar-right{align-items:center;gap:8px;display:flex}.start-topbar-center{color:#67e8f9}.start-dot{border-radius:999px;width:7px;height:7px;animation:2s ease-in-out infinite dotPulse}.start-dot.green{background:#22c55e;box-shadow:0 0 10px #22c55eb3}.start-dot.amber{background:#f59e0b;box-shadow:0 0 10px #f59e0bb3}@keyframes dotPulse{0%,to{opacity:1}50%{opacity:.4}}.start-col{z-index:2;gap:14px;min-width:0;transition:opacity .6s,transform .6s;display:grid;position:relative}.start-col-left{grid-area:left;justify-self:stretch}.start-col-right{grid-area:right;justify-self:stretch}.start-bottombar{z-index:2;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f172ab3,#02061780);border:1px solid #33415599;border-radius:14px;grid-area:bottom;justify-content:center;gap:clamp(12px,3vw,36px);padding:14px 20px;display:flex;position:relative}.start-stat{text-align:center;min-width:0}.start-stat span{color:#64748b;text-transform:uppercase;letter-spacing:.08em;font-size:10px;font-weight:900;display:block}.start-stat strong{color:#e2e8f0;margin-top:3px;font-size:14px;display:block}.start-background-grid{background-image:linear-gradient(#22d3ee12 1px,#0000 1px),linear-gradient(90deg,#22d3ee12 1px,#0000 1px);background-size:52px 52px;animation:18s linear infinite gridDrift;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 72%);mask-image:radial-gradient(circle,#000,#0000 72%)}.start-scan-sweep{opacity:.75;pointer-events:none;background:conic-gradient(from 210deg,#0000 0deg,#22d3ee26 18deg,#22d3ee08 32deg,#0000 52deg);animation:13s linear infinite scanRotate;position:absolute;inset:-20%}.start-orbit{pointer-events:none;border:1px solid #22d3ee1f;border-radius:999px;position:absolute}.start-orbit:after{content:"";background:#22d3ee;border-radius:999px;width:7px;height:7px;position:absolute;box-shadow:0 0 18px #22d3eebf}.orbit-one{aspect-ratio:1;width:min(720px,86vw);animation:24s linear infinite slowOrbit}.orbit-one:after{top:18%;right:17%}.orbit-two{aspect-ratio:1;border-color:#ef44441f;width:min(520px,68vw);animation:31s linear infinite reverse slowOrbit}.orbit-two:after{background:#ef4444;bottom:12%;left:19%;box-shadow:0 0 18px #ef4444a6}.start-track,.start-route{pointer-events:none;position:absolute}.start-track{opacity:.66;background:#22d3ee;border-radius:999px;width:8px;height:8px;box-shadow:0 0 18px #22d3eead}.track-one{animation:8s ease-in-out infinite trackMoveOne;top:32%;left:17%}.track-two{background:#ef4444;animation:9.5s ease-in-out infinite trackMoveTwo;top:39%;right:18%;box-shadow:0 0 18px #ef44449e}.track-three{animation:10s ease-in-out infinite trackMoveThree;bottom:20%;left:33%}.start-route{transform-origin:0;opacity:.5;background:linear-gradient(90deg,#0000,#22d3ee57,#0000);height:1px}.route-one{width:min(280px,26vw);animation:4s ease-in-out infinite routeFlow;top:35%;left:16%;transform:rotate(28deg)}.route-two{background:linear-gradient(90deg,#0000,#ef44445c,#0000);width:min(240px,23vw);animation:4.8s ease-in-out infinite routeFlow;top:44%;right:17%;transform:rotate(-20deg)}.route-three{width:min(340px,34vw);animation:5.4s ease-in-out infinite routeFlow;bottom:24%;left:35%;transform:rotate(-38deg)}.start-panel{z-index:2;text-align:center;grid-area:center;justify-items:center;padding:clamp(20px,4vw,42px);transition:opacity .24s,transform .24s;display:grid;position:relative}.start-info-panel,.start-sequence,.start-signal-grid>div{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#0f172ab8,#02061785),#02061794;border:1px solid #334155d1;box-shadow:0 18px 60px #0000003d}.start-info-panel,.start-sequence{border-radius:20px;padding:16px}.start-info-panel.accent{border-color:#22d3ee47}.start-info-panel span,.start-sequence>span,.start-signal-grid span{color:#67e8f9;letter-spacing:.08em;text-transform:uppercase;font-size:11px;font-weight:900;display:block}.start-info-panel strong,.start-signal-grid strong{color:#f8fafc;overflow-wrap:anywhere;margin-top:8px;font-size:clamp(15px,1.8vw,19px);line-height:1.15;display:block}.start-info-panel p{color:#94a3b8;margin:8px 0 0;font-size:13px;line-height:1.55}.start-signal-grid{grid-template-columns:1fr;gap:10px;display:grid}.start-signal-grid>div{border-radius:16px;min-width:0;padding:12px}.start-signal-grid strong{font-size:15px}.start-sequence ol{counter-reset:start-sequence;gap:11px;margin:12px 0 0;padding:0;list-style:none;display:grid}.start-sequence li{color:#cbd5e1;min-width:0;padding-left:34px;font-size:13px;line-height:1.45;position:relative}.start-sequence li:before{counter-increment:start-sequence;content:counter(start-sequence);color:#ecfeff;background:#0891b24d;border:1px solid #22d3ee57;border-radius:999px;place-items:center;width:22px;height:22px;font-size:11px;font-weight:900;display:grid;position:absolute;top:-2px;left:0}.start-logo-wrap{aspect-ratio:1;place-items:center;width:min(330px,68vw);margin-bottom:22px;display:grid;position:relative}.start-logo{aspect-ratio:1;object-fit:cover;border:1px solid #67e8f93d;border-radius:32px;width:min(255px,54vw);transition:transform .18s,box-shadow .18s;animation:.9s both logoIntro;box-shadow:0 0 34px #22d3ee47,0 28px 80px #0000008c}.start-logo:hover{transform:perspective(700px)rotateX(3deg)rotateY(-5deg)translateY(-2px);box-shadow:0 0 44px #22d3ee61,0 32px 90px #0009}.radar-ring{border:1px solid #22d3ee57;border-radius:999px;animation:2.8s ease-out infinite radarPulse;position:absolute;inset:12%}.radar-ring.ring-two{border-color:#94a3b833;animation-delay:.9s;inset:0}.radar-sweep{opacity:.7;background:conic-gradient(#22d3ee47,#0000 46deg);border-radius:999px;animation:3.5s linear infinite scanRotate;position:absolute;inset:11%;-webkit-mask-image:radial-gradient(circle,#0000 0 44%,#000 45% 46%,#0000 47%);mask-image:radial-gradient(circle,#0000 0 44%,#000 45% 46%,#0000 47%)}.start-title{letter-spacing:0;color:#f8fafc;text-shadow:0 0 28px #22d3ee57;margin:0;font-size:clamp(42px,9vw,84px);line-height:.95}.start-tagline{color:#67e8f9;margin:14px 0 0;font-size:clamp(17px,3vw,26px);font-weight:900}.start-description{color:#cbd5e1;max-width:540px;margin:10px 0 0;font-size:clamp(14px,2vw,17px);line-height:1.6}.start-button{color:#ecfeff;cursor:pointer;background:linear-gradient(135deg,#0891b2b8,#0f172af0);border:1px solid #22d3ee94;border-radius:16px;min-height:52px;margin-top:28px;padding:0 30px;font-weight:900;transition:transform .16s,box-shadow .16s,border-color .16s;box-shadow:0 0 0 5px #22d3ee14,0 18px 50px #0891b238}.start-button:hover{border-color:#67e8f9;transform:translateY(-2px);box-shadow:0 0 0 7px #22d3ee1c,0 24px 60px #0891b252}.start-status{color:#94a3b8;margin:13px 0 0;font-size:13px;font-weight:800}.boot-lines{color:#bae6fd;gap:9px;margin-top:18px;font-size:14px;font-weight:800;display:grid}.scan-loader{background:#0f172ad1;border:1px solid #22d3ee47;border-radius:999px;width:min(390px,76vw);height:8px;margin-top:28px;overflow:hidden;box-shadow:inset 0 0 20px #22d3ee14}.scan-loader span{border-radius:inherit;background:linear-gradient(90deg,#0000,#67e8f9,#0000);width:42%;height:100%;animation:.9s ease-in-out infinite scanLoad;display:block}.boot-lines span{opacity:0;animation:1.2s infinite bootLine}.boot-lines span:nth-child(2){animation-delay:.18s}.boot-lines span:nth-child(3){animation-delay:.36s}.header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:20px;display:flex}.header>div:first-child{min-width:0}.brand{align-items:center;gap:14px;min-width:0;display:flex}.brand-logo{aspect-ratio:1;object-fit:cover;border:1px solid #67e8f947;border-radius:18px;flex:none;width:clamp(54px,7vw,78px);box-shadow:0 0 24px #22d3ee38,0 12px 32px #02061752}.eyebrow{color:#67e8f9;letter-spacing:.12em;text-transform:uppercase;margin:0 0 6px;font-size:12px;font-weight:800}.header h1{margin:0;font-size:clamp(32px,5vw,52px);line-height:.95}.header p{color:#94a3b8;margin:8px 0 0}.header-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.75rem;min-width:0;display:flex}.header-scenario-control{flex:260px;min-width:240px;max-width:360px}.badge{color:#cbd5e1;background:#0f172adb;border:1px solid #1e293b;border-radius:999px;align-items:center;gap:8px;min-height:42px;padding:10px 14px;font-size:14px;display:inline-flex;box-shadow:0 12px 36px #02061738}.badge.danger{color:#fecaca;background:#7f1d1d52;border-color:#ef444480}.icon-button,.demo-button{color:#cbd5e1;cursor:pointer;background:#0f172adb;border:1px solid #1e293b;min-height:42px;transition:transform .16s,border-color .16s,background .16s,color .16s}.icon-button{border-radius:14px;justify-content:center;align-items:center;width:42px;display:inline-flex}.demo-button{color:#67e8f9;background:#22d3ee1a;border-color:#22d3ee59;border-radius:14px;padding:0 14px;font-weight:800}.icon-button:hover,.demo-button:hover{color:#e0f2fe;background:#0e74902e;border-color:#38bdf8;transform:translateY(-1px)}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes gridDrift{to{background-position:52px 52px}}@keyframes ambientSweep{0%,to{opacity:.42;transform:translate(-4%)}50%{opacity:.84;transform:translate(4%)}}@keyframes trackTwinkle{0%,to{opacity:.36}50%{opacity:.72}}@keyframes scanRotate{to{transform:rotate(360deg)}}@keyframes slowOrbit{to{transform:rotate(360deg)}}@keyframes trackMoveOne{0%,to{transform:translate(0)}50%{transform:translate(46px,28px)}}@keyframes trackMoveTwo{0%,to{transform:translate(0)}50%{transform:translate(-38px,34px)}}@keyframes trackMoveThree{0%,to{transform:translate(0)}50%{transform:translate(56px,-32px)}}@keyframes routeFlow{0%,to{opacity:.22}50%{opacity:.62}}@keyframes bootOpen{0%{filter:brightness()}30%{filter:brightness(1.4)saturate(1.3)}70%{filter:brightness(2.2)saturate(.5)}to{filter:brightness(3)saturate(0);opacity:0}}@keyframes scanLoad{0%{transform:translate(-110%)}to{transform:translate(250%)}}@keyframes radarPulse{0%{opacity:0;transform:scale(.72)}35%{opacity:.7}to{opacity:0;transform:scale(1.18)}}@keyframes logoIntro{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bootLine{0%,to{opacity:.28}45%{opacity:1}}.view-tabs{background:#0f172a9e;border:1px solid #1e293b;border-radius:18px;flex-wrap:wrap;gap:9px;margin:0 0 18px;padding:6px;display:flex;box-shadow:0 14px 40px #02061738}.view-tab{color:#94a3b8;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;min-height:38px;padding:0 16px;font-weight:900;transition:border-color .16s,background .16s,color .16s,transform .16s}.view-tab:hover{color:#e0f2fe;background:#0e74901f;border-color:#38bdf857;transform:translateY(-1px)}.view-tab.active{color:#ecfeff;background:#22d3ee29;border-color:#22d3ee8c;box-shadow:0 0 0 4px #22d3ee12}.view-content{min-height:0}.live-layout{grid-template-columns:minmax(0,1.7fr) minmax(320px,.8fr);align-items:start;gap:1rem;display:grid}.live-layout .map-card{min-height:0}.live-sidebar{gap:1rem;min-width:0;display:grid}.dashboard-grid{align-items:start;gap:18px;min-width:0;display:grid}.dashboard-grid.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.layout{grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) minmax(360px,420px);align-items:stretch;gap:18px;display:grid}.map-card,.panel{background:linear-gradient(#0f172af0,#0f172ad1);border:1px solid #1e293b;border-radius:24px;box-shadow:0 18px 60px #0206174d}.map-card{min-width:0;padding:14px;overflow:hidden}.map{aspect-ratio:1;background:#020617;border-radius:18px;width:100%;height:auto;max-height:none;display:block;overflow:hidden}.side{flex-direction:column;gap:14px;min-height:0;padding-right:4px;display:flex;overflow:visible}.bottom-grid{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(360px,420px);gap:18px;display:grid}.control-stack,.narrative-stack{gap:14px;display:grid}.panel{min-width:0;padding:16px;transition:transform .16s,border-color .16s,box-shadow .16s}.panel:hover{border-color:#38bdf861;transform:translateY(-1px);box-shadow:0 22px 70px #02061761}.panel-header{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.panel h2{color:#f8fafc;align-items:center;gap:8px;margin:0;font-size:17px;display:flex}.panel-subtitle,.panel p{color:#94a3b8;margin:6px 0 0;font-size:13px;line-height:1.5}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.metric-tile,.cluster-row,.action,.scenario-stat,.summary-card,.log-entry{background:#0206179e;border:1px solid #1e293b;border-radius:16px}.metric-tile{min-width:0;padding:12px}.metric-tile span,.scenario-stat span{color:#94a3b8;text-transform:uppercase;font-size:12px;font-weight:700;display:block}.metric-tile strong,.scenario-stat strong{color:#f8fafc;overflow-wrap:anywhere;min-width:0;margin-top:5px;font-size:25px;line-height:1;display:block}.progress-track{background:#1e293b;border-radius:999px;height:7px;margin-top:11px;overflow:hidden}.progress-fill{border-radius:inherit;height:100%;transition:width .32s}.progress-fill.green{background:linear-gradient(90deg,#16a34a,#86efac)}.progress-fill.red{background:linear-gradient(90deg,#ef4444,#fca5a5)}.progress-fill.amber{background:linear-gradient(90deg,#d97706,#fbbf24)}.progress-fill.cyan{background:linear-gradient(90deg,#0891b2,#67e8f9)}.summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.summary-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.summary-card{min-width:0;padding:11px}.summary-card span{color:#94a3b8;text-transform:uppercase;font-size:11px;font-weight:800;display:block}.summary-card strong{color:#f8fafc;overflow-wrap:anywhere;margin-top:5px;font-size:18px;line-height:1.12;display:block}.summary-card.green{border-color:#22c55e59}.summary-card.red{border-color:#ef44446b}.rate-row{color:#cbd5e1;justify-content:space-between;align-items:center;gap:12px;margin-top:13px;font-size:13px;display:flex}.rate-row strong{color:#67e8f9}.risk-bar{background:#1e293b;border-radius:999px;height:9px;margin-top:8px;overflow:hidden}.risk-bar-fill{border-radius:inherit;height:100%;transition:width .32s}.risk-bar-fill.cyan{background:linear-gradient(90deg,#0891b2,#67e8f9)}.interpretation,.validation-note,.safety-note{color:#cbd5e1;margin-top:12px;font-size:13px;line-height:1.5}.validation-note,.safety-note{color:#94a3b8}.improvement{color:#86efac;background:#052e16d1;border:1px solid #22c55e6b;border-radius:16px;margin-top:12px;padding:13px;font-weight:800}.threat-list,.action-list{gap:10px;display:grid}.cluster-row,.action{padding:12px}.cluster-row.top-threat{background:linear-gradient(135deg,#7f1d1d57,#020617b8);border-color:#ef44448c}.cluster-main,.action-main,.log-main{justify-content:space-between;align-items:center;gap:10px;display:flex}.cluster-main b,.action-main b{color:#f8fafc}.action-badges{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.action-status{text-transform:uppercase;color:#bae6fd;background:#0ea5e91f;border:1px solid #0ea5e957;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.action-status.held{color:#fcd34d;background:#f59e0b1f;border-color:#f59e0b57}.action-status.switched{color:#fecaca;background:#ef44441f;border-color:#ef444457}.threat-badge{text-transform:uppercase;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900}.threat-badge.low{color:#86efac;background:#22c55e1f;border:1px solid #22c55e4d}.threat-badge.medium{color:#fcd34d;background:#f59e0b1f;border:1px solid #f59e0b4d}.threat-badge.critical{color:#fca5a5;background:#ef44441f;border:1px solid #ef44444d}.cluster-meta{color:#94a3b8;flex-wrap:wrap;gap:8px;margin-top:9px;font-size:12px;display:flex}.cluster-score{margin-top:10px}.action-warning{color:#cbd5e1!important}.action-hold{font-weight:800;color:#fcd34d!important}.verdict-card{background:#02061794;border:1px solid #334155;border-radius:18px;padding:14px}.verdict-card strong{color:#f8fafc;letter-spacing:.04em;font-size:15px;display:block}.verdict-card p{margin-top:7px}.status-contained{background:#052e1652;border-color:#22c55e6b}.status-warning{background:#78350f47;border-color:#f59e0b75}.status-danger{background:#7f1d1d47;border-color:#ef44447a}.command-facts{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.command-facts span{color:#cbd5e1;background:#0f172ad6;border:1px solid #334155;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.timeline{gap:0;display:grid}.timeline-item{grid-template-columns:58px 1fr;gap:12px;padding:0 0 14px;display:grid;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-item:not(:last-child):after{content:"";background:#334155;width:1px;position:absolute;top:23px;bottom:3px;left:57px}.timeline-item>span{color:#67e8f9;white-space:nowrap;font-size:12px;font-weight:900}.timeline-item strong{color:#f8fafc;font-size:13px}.timeline-item p{margin-top:3px}.pipeline{gap:0;display:grid}.pipeline-step{grid-template-columns:34px 1fr auto;gap:10px;padding:0 0 16px;display:grid;position:relative}.pipeline-step:last-child{padding-bottom:0}.pipeline-step:not(:last-child):after{content:"";background:#334155;width:1px;position:absolute;top:34px;bottom:4px;left:16px}.step-index{color:#94a3b8;z-index:1;background:#020617;border:1px solid #334155;border-radius:999px;place-items:center;width:34px;height:34px;font-size:13px;font-weight:900;display:grid}.pipeline-step.active .step-index{color:#ecfeff;background:#22d3ee29;border-color:#22d3ee8c;box-shadow:0 0 0 5px #22d3ee14}.step-copy strong{color:#f8fafc;font-size:14px}.step-state{color:#cbd5e1;background:#1e293b;border-radius:999px;align-self:start;padding:4px 8px;font-size:10px;font-weight:900}.pipeline-step.active .step-state{color:#86efac;background:#22c55e1f}.scenario-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.scenario-stat{min-width:0;padding:12px}.scenario-stat strong{overflow-wrap:anywhere;word-break:break-word;font-size:clamp(16px,2vw,23px)}.scenario-selector.compact{border-radius:16px;gap:6px;min-height:42px;padding:8px 10px;display:grid;box-shadow:0 12px 36px #02061738}.scenario-selector.compact .select-field{border-radius:11px;min-height:34px;padding:7px 10px;font-size:13px}.scenario-selector-label{color:#94a3b8;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:900;line-height:1;display:inline-flex}.select-field{color:#f8fafc;background:#020617;border:1px solid #334155;border-radius:14px;outline:none;width:100%;padding:11px 12px}.select-field:focus{border-color:#38bdf8;box-shadow:0 0 0 4px #38bdf81f}.alert-box{background:#0206177a;border:1px solid #334155;border-radius:16px;margin-top:12px;padding:13px}.alert-box.red{background:#7f1d1d2e;border-color:#ef444461}.alert-box.green{background:#052e1647;border-color:#22c55e61}.alert-box strong{color:#f8fafc;margin-bottom:4px;display:block}.log-list{flex-direction:column;gap:8px;max-height:260px;padding-right:2px;display:flex;overflow-y:auto}.log-entry{padding:10px}.log-time{color:#64748b;white-space:nowrap;font-size:11px}.log-entry p{margin:4px 0 0}.log-kind{border-radius:999px;flex:none;width:8px;height:8px}.log-kind.green{background:#22c55e;box-shadow:0 0 16px #22c55ebf}.log-kind.red{background:#ef4444;box-shadow:0 0 16px #ef4444bf}.log-kind.cyan{background:#22d3ee;box-shadow:0 0 16px #22d3eebf}.log-kind.gray{background:#94a3b8}.loading,.error{color:#fff;place-items:center;min-height:420px;font-size:20px;display:grid}.loading-card{background:#0f172a;border:1px solid #1e293b;border-radius:24px;width:min(520px,100%);padding:22px}.skeleton{background:linear-gradient(90deg,#1e293b,#334155,#1e293b) 0 0/200% 100%;border-radius:999px;height:14px;margin-top:12px;animation:1.3s infinite shimmer}.skeleton.wide{height:180px}@keyframes shimmer{to{background-position:-200% 0}}.error{color:#fca5a5}.map-line{stroke-dasharray:10 10;animation:1.6s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-40px}}.map-point{transition:cx .26s,cy .26s,opacity .16s}.cluster-ring{transform-origin:50%;animation:2.8s ease-in-out infinite clusterPulse}@keyframes clusterPulse{50%{opacity:.62}}.boot-overlay{z-index:200;pointer-events:none;position:fixed;inset:0;overflow:hidden}.boot-scanline{background:repeating-linear-gradient(0deg,#0000,#0000 2px,#22d3ee0a 2px 4px);animation:.3s linear infinite scanlineScroll;position:absolute;inset:0}.boot-flash{background:radial-gradient(circle,#22d3ee80,#020617fa 65%);animation:1.8s ease-out both bootFlash;position:absolute;inset:0}@keyframes scanlineScroll{to{background-position:0 4px}}@keyframes bootFlash{0%{opacity:0;filter:blur(40px);transform:scale(.5)}25%{opacity:1;filter:blur();transform:scale(1)}60%{opacity:.8;transform:scale(1.1)}to{opacity:0;filter:blur(16px);background:radial-gradient(circle,#ffffffb3,#02061700 55%);transform:scale(1.4)}}.start-screen.booting .start-panel{animation:1.8s ease-in both panelOut}.start-screen.booting .start-col-left{animation:1.2s ease-in both slideLeft}.start-screen.booting .start-col-right{animation:1.2s ease-in both slideRight}.start-screen.booting .start-topbar,.start-screen.booting .start-bottombar{animation:.8s ease-in both barFade}@keyframes panelOut{0%{opacity:1;filter:blur();transform:translateY(0)scale(1)}50%{opacity:.6;filter:blur();transform:translateY(-18px)scale(1.04)}to{opacity:0;filter:blur(6px);transform:translateY(-50px)scale(.92)}}@keyframes slideLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-40px)}}@keyframes slideRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(40px)}}@keyframes barFade{0%{opacity:1}to{opacity:0;transform:translateY(10px)}}@media (width<=1120px){.start-screen{grid-template:"topbar""center""left""right""bottom"/1fr}.start-signal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.start-bottombar{flex-wrap:wrap}.live-layout,.dashboard-grid.two-column,.dashboard-grid.three-column,.layout,.bottom-grid{grid-template-rows:auto;grid-template-columns:1fr}.side{max-height:none;padding-right:0;overflow:visible}.live-sidebar{padding-right:0;overflow:visible}}@media (width<=720px){.app{padding:14px}.start-screen{padding:18px;overflow-y:auto}.start-logo-wrap{width:min(280px,76vw)}.start-signal-grid{grid-template-columns:1fr}.header{flex-direction:column;align-items:flex-start}.header-actions{justify-content:flex-start;width:100%}.badge,.demo-button,.header-scenario-control{flex:auto;width:100%;max-width:none}.view-tabs{margin-bottom:14px}.view-tab{flex:calc(50% - 9px)}.metric-grid,.scenario-grid,.summary-grid,.summary-grid.compact{grid-template-columns:1fr 1fr}.map-card{padding:10px}}.ai-explanation{color:#cbd5e1;background:#082f4940;border:1px solid #22d3ee40;border-radius:12px;margin-top:10px;padding:10px;font-size:13px}.ai-explanation ul{margin:8px 0;padding-left:18px}.trust-badge{color:#86efac;background:#22c55e26;border-radius:999px;margin-top:6px;padding:4px 8px;font-size:11px;font-weight:700;display:inline-block}.mission-summary-text{color:#cbd5e1;font-size:13px;line-height:1.6}.mission-impact{background:#082f4938;border:1px solid #22d3ee40;border-radius:12px;margin-top:12px;padding:10px}.mission-impact strong{color:#67e8f9;font-size:13px}.mission-impact p{color:#cbd5e1;margin-top:4px;font-size:13px}.report-summary{color:#cbd5e1;margin-top:12px;font-size:13px;line-height:1.6}.report-section{margin-top:14px}.report-section h3{color:#67e8f9;margin-bottom:6px;font-size:13px}.report-section ul{color:#cbd5e1;padding-left:18px;font-size:13px;line-height:1.6}.snapshot-analysis{color:#cbd5e1;margin-top:12px;font-size:13px;line-height:1.6}.snapshot-analysis p{margin-top:10px}:root{color:#f8fafc;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#020617;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}#root{min-height:100vh}body{background:#020617;min-width:320px;margin:0}.demo-button{color:#67e8f9;cursor:pointer;background:#22d3ee1f;border:1px solid #22d3ee59;border-radius:14px;width:100%;padding:10px 12px;font-weight:700}.demo-button:hover{background:#22d3ee33}.action-card{background:#22d3ee14;border:1px solid #22d3ee59;border-radius:14px;padding:12px}.action-card strong{color:#67e8f9}.action-card p{color:#cbd5e1;margin-top:8px;font-size:13px;line-height:1.5}.muted{color:#94a3b8;font-size:13px}
