:root{--surface:#fff;--soft:#f1f5ef}body{background:radial-gradient(ellipse at top right,#dcebdc,transparent 55%),#f2f5f3}.panel,.mapdetail,.dronecard{box-shadow:0 8px 30px #153b3210;border-radius:24px}header{padding-top:env(safe-area-inset-top)}button{transition:background .15s,transform .15s;min-height:46px}button:active{transform:scale(.97)}.primary{background:linear-gradient(135deg,#d5f59b,#aee1a1);color:#143329}.preference{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.preference input{width:23px;height:23px;min-height:0;margin:0;accent-color:#429569}#appearance{margin-bottom:30px}.backtop{position:fixed;right:20px;bottom:calc(100px + env(safe-area-inset-bottom));z-index:1200;border-radius:50%;box-shadow:0 4px 20px #0002}.toast{position:sticky;top:10px;z-index:1200;border:1px solid #a9ccb4;cursor:pointer}.flightrow{content-visibility:auto;contain-intrinsic-size:auto 120px}.models button{content-visibility:auto;contain-intrinsic-size:auto 76px}#splash{position:fixed;inset:0;z-index:9999;background:#102d33;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#e5f8e5;gap:16px;transition:opacity .25s;pointer-events:none}#splash strong{font-size:34px;letter-spacing:-1px}#splash span{font-size:13px;color:#b8ccc5}.splashmark{font-size:80px;color:#cbf181}.loadline{height:3px;width:140px;border-radius:4px;background:linear-gradient(90deg,#44635c,#cbf181,#44635c);background-size:200% 100%;animation:loading 1s infinite}#splash.finished{opacity:0}@keyframes loading{to{background-position:200% 0}}
html[data-theme=dark]{color-scheme:dark;--ink:#e0eee8;--line:#30444d;--muted:#abc0bc;--surface:#192b34;--soft:#223943;background:#101b25;color:#e0eee8}html[data-theme=dark] body{background:radial-gradient(ellipse at top right,#203e43,transparent 60%),#101b25}html[data-theme=dark] .panel,html[data-theme=dark] .mapdetail,html[data-theme=dark] .dronecard,html[data-theme=dark] dialog,html[data-theme=dark] button{background:var(--surface);color:#e0eee8}html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea,html[data-theme=dark] .segmented{background:#11232c;color:#e0eee8;border-color:#45606a}html[data-theme=dark] .primary,html[data-theme=dark] nav button[aria-current=page]{background:#b9e697;color:#153329}html[data-theme=dark] .gridnotice,html[data-theme=dark] .toast,html[data-theme=dark] .tag{background:#233e46;color:#dfefec;border-color:#48616a}html[data-theme=dark] .rulebox{background:#393528;color:#f4e5c2;border-color:#706344}html[data-theme=dark] .rulebox p{color:#e0d2b4}html[data-theme=dark] .muted{color:#b4c7c4}html[data-theme=dark] .mapnote{background:#182a34ed;color:#e0eee8}html[data-theme=dark] .sidebar{background:#12242d}html[data-theme=dark] .source,html[data-theme=dark] .rulebox a{color:#b9e697}html[data-theme=dark] .dronecard.active{border-color:#b9e697;background:#223d39}html[data-theme=dark] .segmented button.active{background:#3a535b}.large-text p,.large-text label,.large-text button,.large-text .muted{font-size:17px!important}.high-contrast{--muted:#314e48;--line:#657f73}.high-contrast[data-theme=dark]{--muted:#e0eee8;--line:#9ab6b0}.reduce-motion *{animation:none!important;transition:none!important;scroll-behavior:auto!important}@media(prefers-reduced-motion:reduce){.loadline{animation:none}}@media(max-width:850px){.sidebar{border-radius:22px 22px 0 0;box-shadow:0 -5px 30px #102d3312}nav button{border-radius:15px}.workspace{padding-bottom:130px}.panel{padding:20px}.mapframe{border-radius:24px}}
/* Semantic surfaces: foreground colors must never double as card backgrounds. */
:root{--surface:#ffffff;--soft:#eaf0eb;--ink:#16343a;--muted:#506762;--accent:#c5ec94;--accent-ink:#183022;--hero:#153a38;--hero-text:#f2faef;--focus:#45772a;--page:#f2f5f3}
html[data-theme=dark]{--surface:#192e35;--soft:#203b42;--ink:#edf6f2;--muted:#b7ccc5;--line:#3c555c;--hero:#163e3d;--hero-text:#f2faef;--focus:#c5ec94;--page:#101e25;color:var(--ink)}
html[data-accent=sky]{--accent:#a4dffc;--accent-ink:#123341}html[data-accent=lavender]{--accent:#d7c4ff;--accent-ink:#332447}
body{color:var(--ink);background:var(--page)}html[data-theme=dark] body{background:var(--page)}
.panel,.metric,.mapdetail,.dronecard,dialog,html[data-theme=dark] .metric{background:var(--surface);color:var(--ink)}
.metric{box-shadow:0 6px 24px #00000006;border-radius:20px;min-width:0}.metric strong{color:var(--ink);font-variant-numeric:tabular-nums}.metric small{color:var(--muted);line-height:1.5;min-height:2.8em}.muted,.sectiontop p,html[data-theme=dark] .muted{color:var(--muted)}
.weatherhero,html[data-theme=dark] .weatherhero{background:radial-gradient(ellipse at 95% 20%,#386e54,transparent 70%),var(--hero);color:var(--hero-text);border:1px solid #426454;position:relative}.weatherhero h2{color:var(--hero-text);font-variant-numeric:tabular-nums}.weatherhero p{color:#d3e8dd}.weatherhero .eyebrow,.sunart{color:var(--accent)}
button,html[data-theme=dark] button{color:var(--ink);background:var(--surface)}button:hover,html[data-theme=dark] button:hover{background:var(--soft)}button.primary,html[data-theme=dark] button.primary,nav button[aria-current=page],html[data-theme=dark] nav button[aria-current=page]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.textbtn{background:transparent}button.danger,html[data-theme=dark] button.danger{color:#ad3b30}html[data-theme=dark] button.danger{color:#ffb6a8}
.sidebar,html[data-theme=dark] .sidebar{background:#112c32}nav button,html[data-theme=dark] nav button{background:transparent;color:#c1d4cf}.wordmark span{color:var(--accent)}
input,select,textarea,html[data-theme=dark] input,html[data-theme=dark] select,html[data-theme=dark] textarea{background:var(--page);color:var(--ink);border-color:var(--line)}input::placeholder,textarea::placeholder{color:var(--muted);opacity:1}
:focus-visible{outline:3px solid var(--focus)!important;outline-offset:3px}.dronecard.active,html[data-theme=dark] .dronecard.active{background:var(--soft);border-color:var(--focus)}.droneart{color:var(--muted)}
.gridlegend{color:var(--ink)}html[data-theme=dark] .gridlegend span{color:#d6e8e2!important}.gridpointrow{border-color:var(--line)}.empty{border-color:var(--muted)}.tablewrap{border-radius:8px}tbody tr:hover{background:var(--soft)}th{color:var(--muted)}.tag,html[data-theme=dark] .tag{color:var(--ink);background:var(--soft)}.avatar{padding:0;flex-shrink:0}
.high-contrast{--muted:#304b43;--line:#637c72}.high-contrast[data-theme=dark]{--muted:#e0eee8;--line:#9ab6b0}.large-text .metric small,.large-text td,.large-text th,.large-text small{font-size:15px}.large-text .metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
#landing{max-width:1200px;padding:30px 36px 40px;text-align:left;margin:auto} .landingnav{display:flex;justify-content:space-between;gap:15px;align-items:center}.landingbrand{font-size:26px;font-weight:800;text-decoration:none;color:var(--ink);letter-spacing:-1px}.landingbrand span{display:block;font-size:8px;letter-spacing:2px;margin-top:5px}.landinghero{display:grid;grid-template-columns:1.1fr 1fr;gap:35px;align-items:center;padding:90px 0 65px}#landing h1{font-size:clamp(40px,5vw,68px);line-height:1.08;letter-spacing:-3px;margin:22px 0}#landing em{color:#4a773d}html[data-theme=dark] #landing em{color:var(--accent)}#landing p{color:var(--muted);font-size:16px;line-height:1.8;max-width:490px}.landingactions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}#landing .primary{display:inline-block;width:auto;margin:0;padding:16px 22px}.landingpromise{font-size:12px;color:var(--muted);margin-top:20px}.landingvisual{height:390px;position:relative;background:radial-gradient(circle,#3c6552 0,#183b38 60%);border-radius:40px;overflow:hidden;box-shadow:0 24px 70px #102d3320}.orbit{position:absolute;border:1px solid #a0c8a62e;border-radius:50%;width:300px;height:300px;left:50%;top:50%;transform:translate(-50%,-50%)}.orbit-two{width:470px;height:470px}.visualcenter{position:absolute;top:105px;left:calc(50% - 60px);font-size:120px;color:var(--accent);line-height:1;transform:rotate(-15deg)}.visualchip{position:absolute;padding:17px 20px;border:1px solid #59796d;background:#153a35;color:#f2faef;border-radius:18px;box-shadow:0 12px 25px #0002}.visualchip span{font-size:8px;color:#c5ec94;letter-spacing:1.5px;display:block}.visualchip strong{display:block;font-size:19px;margin-top:8px}#landing .visualchip small{color:#d0e1d8;font-size:11px;margin-top:7px}.chip-map{top:25px;left:24px}.chip-weather{top:155px;right:20px}.chip-fleet{bottom:25px;left:35px}.landingfeatures{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.landingfeatures article{padding:25px;background:var(--surface);border:1px solid var(--line);border-radius:24px}.landingfeatures article>span{display:grid;place-items:center;background:var(--soft);width:44px;height:44px;border-radius:13px;font-size:24px;margin-bottom:22px}.landingfeatures h2{font-size:20px;line-height:1.3}#landing .landingfeatures p{font-size:14px;margin:0}.landingfooter{display:flex;justify-content:space-between;gap:35px;border-top:1px solid var(--line);padding-top:25px;margin-top:45px}#landing .landingfooter small{margin:0;max-width:490px;line-height:1.7}.landingfooter strong{white-space:nowrap}.sunart{flex-shrink:0}.toast{box-shadow:0 6px 25px #0001}
@media(max-width:850px){.sidebar,html[data-theme=dark] .sidebar{background:var(--surface)}nav button,html[data-theme=dark] nav button{color:var(--muted)}#landing{padding:22px}.landinghero{padding:55px 0 35px;grid-template-columns:1fr;gap:32px}.landingvisual{height:340px}.landingfeatures{grid-template-columns:1fr}.landingfeatures article{padding:22px}.landingfeatures article>span{float:left;margin-right:16px}.landingfeatures h2{min-height:44px;padding-top:9px}.landingfooter{flex-direction:column;gap:15px}.landingbrand{font-size:22px}.landingnav .tag{font-size:8px;letter-spacing:1px}.weatherhero{gap:12px}.weatherhero h2{font-size:56px}.sunart{font-size:64px}.metric strong{font-size:24px}.workspace{padding-top:calc(20px + env(safe-area-inset-top))}.sectiontop{flex-wrap:wrap}.headright .tag{letter-spacing:.7px}.large-text header{flex-wrap:wrap}}
@media(max-width:360px){.weatherhero{padding:20px}.sunart{font-size:48px}.metric{padding:14px}.landingactions button{width:100%!important}.visualchip{padding:12px}.chip-weather{right:10px}.chip-fleet{left:20px}}
