:root{color-scheme:light;--bg: #eef3f5;--panel: #ffffff;--ink: #162126;--muted: #65777e;--line: #d6e0e4;--green: #16735f;--blue: #1d5fa7;--amber: #c77800;--orange: #d9501f;--red: #b42318;--yellow: #ffd21f;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink)}button,input{font:inherit}button{min-height:42px;border:1px solid var(--line);border-radius:8px;padding:0 16px;background:#fff;color:var(--ink);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button.primary{border-color:var(--green);background:var(--green);color:#fff}button.secondary{background:#f4f8f9}a{color:var(--blue);font-weight:700}.app-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:24px 0 48px}.app-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.header-notes{display:grid;gap:8px}.project-kicker,.pill{display:inline-flex;width:fit-content;border-radius:999px;padding:6px 10px;background:#fff7d1;color:#5e4a00;font-size:12px;font-weight:800;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(28px,4vw,42px);line-height:1.05;letter-spacing:0}h2{font-size:22px;margin-bottom:14px}h3{font-size:15px;margin:18px 0 8px}.scope-note{border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--muted);padding:10px 12px;white-space:nowrap}.step-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:18px}.step-nav button.active{border-color:var(--green);background:#e8f4f1;color:var(--green);font-weight:800}.center-stage{min-height:520px;display:grid;place-items:center}.entry-card{width:min(620px,100%);background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:34px;box-shadow:0 24px 80px #1e333a1f}.entry-card h2{font-size:clamp(28px,5vw,46px);line-height:1.05;margin-top:14px}.entry-card p,.muted{color:var(--muted)}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-layout{grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr)}.wide{grid-column:1 / -1}.panel{border:1px solid var(--line);border-radius:8px;background:var(--panel);padding:20px}.panel-title,.button-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.upload-box{min-height:190px;margin:16px 0;border:2px dashed #a9bbc1;border-radius:8px;background:#f8fbfc;display:grid;place-items:center;gap:8px;padding:22px;text-align:center;cursor:pointer}.upload-box input{width:min(360px,100%)}.upload-box span{color:var(--muted)}.advanced{display:grid;gap:10px;margin-top:14px}.setup-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.weather-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.weather-grid button.selected{border-color:var(--green);background:#e8f4f1;color:var(--green);font-weight:800}.frame-strip{min-height:82px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0 16px}.frame-strip img,.frame-strip span{border:1px solid var(--line);border-radius:8px;background:#f8fbfc}.frame-strip img{width:100%;height:82px;object-fit:cover}.frame-strip span{grid-column:1 / -1;display:grid;place-items:center;color:var(--muted);padding:12px}.info{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#f8fbfc}.info span{color:var(--muted);font-size:13px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px}.mission-line{display:grid;grid-template-columns:minmax(180px,.6fr) 1fr minmax(180px,.6fr);gap:16px;align-items:center}.mission-line>div:not(.line){border:1px solid var(--line);border-radius:8px;padding:14px;background:#f8fbfc;display:grid;gap:4px}.mission-line span{color:var(--muted)}.line{height:8px;border-radius:999px;background:linear-gradient(90deg,var(--green),var(--yellow),var(--blue))}.relay{border:1px solid #f0c36a;border-radius:8px;background:#fff7df;color:#6a4300;padding:12px;margin-bottom:14px;font-weight:800}.progress-block{display:grid;gap:8px;margin:12px 0}.progress-block>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--muted)}.progress-block strong{color:var(--ink)}.progress-track{height:12px;overflow:hidden;border-radius:999px;background:#dde8eb}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--green),var(--blue))}.danger-track span{background:linear-gradient(90deg,var(--amber),var(--orange),var(--red))}.route-map{position:relative;min-height:310px;overflow:hidden;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,#16735f14,#1d5fa714),repeating-linear-gradient(0deg,#f7fafb 0 38px,#eef4f6 39px 40px)}.route-road{position:absolute;left:8%;right:8%;top:46%;height:18px;border-radius:999px;background:#303c41;box-shadow:inset 0 0 0 4px #46565c}.route-road:after{content:"";position:absolute;inset:8px 18px auto;height:2px;background:repeating-linear-gradient(90deg,#ffffff 0 22px,transparent 22px 42px)}.drone-dot{position:absolute;top:calc(46% - 34px);width:54px;height:54px;transform:translate(-50%);border:3px solid #fff;border-radius:999px;background:var(--yellow);display:grid;place-items:center;font-weight:900;box-shadow:0 12px 28px #0003;transition:left .3s ease}.map-label{position:absolute;top:28px;width:min(260px,38%);border:1px solid var(--line);border-radius:8px;background:#ffffffeb;padding:12px;display:grid;gap:4px}.map-label span{color:var(--muted)}.map-label.start{left:22px}.map-label.target{right:22px}.phase-strip{position:absolute;left:22px;right:22px;bottom:22px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.phase-strip span{min-height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:#ffffffeb;color:var(--muted);text-align:center;padding:6px}.phase-strip span.active{border-color:var(--green);background:#e8f4f1;color:var(--green);font-weight:900}.video-frame{position:relative;min-height:360px;overflow:hidden;border-radius:8px;background:#10191d}.video-frame video,.video-empty{width:100%;height:100%;min-height:360px}.video-frame video{display:block;object-fit:cover}.video-empty{display:grid;place-items:center;color:#cbd9dd}.box{position:absolute;border:3px solid var(--yellow);border-radius:6px;box-shadow:0 0 0 999px #0000000a}.box span{position:absolute;left:-3px;top:-30px;max-width:220px;border-radius:6px 6px 0 0;background:var(--yellow);color:#1d1d1d;padding:4px 8px;font-size:12px;font-weight:900;white-space:nowrap}.box.level-4{border-color:var(--orange)}.box.level-4 span{background:var(--orange);color:#fff}.box.level-5{border-color:var(--red)}.box.level-5 span{background:var(--red);color:#fff}.severity{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin-bottom:14px}.severity>div{min-height:94px;border:1px solid var(--line);border-radius:8px;background:#f5f8f9;padding:10px;display:grid;gap:4px}.severity>div.filled{background:#fff2df;border-color:var(--amber)}.severity>div:nth-child(4).filled{background:#fff0ea;border-color:var(--orange)}.severity>div:nth-child(5).filled{background:#fff0f0;border-color:var(--red)}.severity.compact>div{min-height:16px;padding:0}.severity.compact strong,.severity.compact span,.severity.compact small{display:none}.plain-list,.history-list{margin:0;padding:0;list-style:none;display:grid;gap:10px}.plain-list li,.history-item{border:1px solid var(--line);border-radius:8px;padding:12px;background:#f8fbfc}.plain-list li{display:grid;gap:4px}.plain-list span,.history-item small{color:var(--muted)}.history-item{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:16px;align-items:center}.history-item span{display:block;color:var(--muted);margin-top:4px}@media(max-width:900px){.app-header,.panel-title,.button-row{align-items:stretch;flex-direction:column}.scope-note{white-space:normal}.step-nav,.grid.two,.analysis-layout,.mission-line,.metric-grid,.setup-summary,.weather-grid,.frame-strip,.severity,.history-item,.phase-strip{grid-template-columns:1fr}.route-map{min-height:430px}.map-label{position:static;width:auto;margin:12px}.route-road{top:54%}.drone-dot{top:calc(54% - 34px)}.phase-strip{position:static;margin:120px 12px 12px}}@media print{body{background:#fff}.step-nav,button,.video-frame video{display:none!important}.app-shell{width:100%;padding:0}.panel,.entry-card{box-shadow:none;break-inside:avoid}}
