:root{--font-sans:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-display:"Inter Tight","Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--ease:cubic-bezier(0.2,0.7,0.3,1);--bg:#ffffff;--panel:#f5f6f8;--panel-2:#eceef2;--surface:#ffffff;--border:#e4e7ec;--border-strong:#d5dae1;--text:#111418;--text-2:#4a525c;--muted:#5b6470;--accent:#0a6cff;--accent-2:#0050c8;--accent-soft:#eaf2ff;--on-accent:#ffffff;--ok:#12805c;--ok-soft:#e3f4ec;--warn:#9a5b00;--warn-soft:#fff4e0;--danger:#d0312d;--danger-soft:#fdecec;--info:#7048e8;--info-soft:#f0ecfe;--sidebar:#f7f8fa;--sidebar-text:#4a525c;--drone-arm:#9aa3af;--radius:16px;--radius-sm:12px;--shadow:0 1px 2px rgba(17,20,24,0.04);--shadow-lift:0 14px 32px -14px rgba(17,20,24,0.22);--warn-bg:var(--warn-soft);--warn-fg:var(--warn);--warn-border:#f2d39b;--danger-bg:var(--danger-soft);--danger-fg:var(--danger);--danger-border:#f2b8b6;--info-bg:var(--accent-soft);--info-fg:var(--accent-2);--info-border:#b9d3ff;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0b1220;--panel:#0f1a2d;--panel-2:#16233a;--surface:#121c2e;--border:#1c2940;--border-strong:#24344f;--text:#e6edf7;--text-2:#a9b7cc;--muted:#8a9bb4;--accent:#3d8bff;--accent-2:#8db8ff;--accent-soft:#14284a;--on-accent:#ffffff;--ok:#2bd67b;--ok-soft:#0f2e22;--warn:#f5b83d;--warn-soft:#33270c;--danger:#ff7a7a;--danger-soft:#3a1717;--info:#a78bfa;--info-soft:#241a45;--sidebar:#0d1526;--sidebar-text:#a9b7cc;--drone-arm:#5b6f8e;--shadow:none;--shadow-lift:0 14px 32px -14px rgba(61,139,255,0.35);--warn-border:#5c4512;--danger-border:#6b2626;--info-border:#24406e;color-scheme:dark}}:root[data-theme=dark]{--bg:#0b1220;--panel:#0f1a2d;--panel-2:#16233a;--surface:#121c2e;--border:#1c2940;--border-strong:#24344f;--text:#e6edf7;--text-2:#a9b7cc;--muted:#8a9bb4;--accent:#3d8bff;--accent-2:#8db8ff;--accent-soft:#14284a;--on-accent:#ffffff;--ok:#2bd67b;--ok-soft:#0f2e22;--warn:#f5b83d;--warn-soft:#33270c;--danger:#ff7a7a;--danger-soft:#3a1717;--info:#a78bfa;--info-soft:#241a45;--sidebar:#0d1526;--sidebar-text:#a9b7cc;--drone-arm:#5b6f8e;--shadow:none;--shadow-lift:0 14px 32px -14px rgba(61,139,255,0.35);--warn-border:#5c4512;--danger-border:#6b2626;--info-border:#24406e;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:var(--bg);color:var(--text);font:15px/1.55 var(--font-sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.02em}h1{font-size:2.1rem;line-height:1.15;margin:0 0 4px}h1,h2{font-weight:600}h2{font-size:1.15rem;margin:0 0 12px}h3{font-size:.98rem;font-weight:600;margin:0 0 8px}.muted{color:var(--muted)}.mono,.small{font-size:.85rem}.eyebrow,.mono{font-family:var(--font-mono)}.eyebrow{font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px}.shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{background:var(--sidebar);color:var(--sidebar-text);padding:24px 14px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:4px;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:12px;color:var(--text);font-family:var(--font-display);font-weight:700;font-size:1.3rem;letter-spacing:-.02em;padding:0 10px 20px}.brand svg{flex:none}.brand .logo-ring{transform-box:fill-box;transform-origin:center;animation:fk-spin 8s linear infinite}.nav-section{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:16px 12px 6px;font-weight:600}.nav a{display:flex;align-items:center;gap:12px;color:var(--sidebar-text);padding:9px 12px;border-radius:10px;font-size:.93rem;font-weight:500;transition:background .2s,color .2s}.nav a svg{flex:none;opacity:.85}.nav a:hover{background:var(--panel-2);color:var(--text)}.nav a.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.nav a.active svg{opacity:1}.sidebar .user{margin-top:auto;padding:14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);font-size:.85rem}.sidebar .user .name{color:var(--text);font-weight:600}.main{padding:36px 44px 64px;max-width:1320px;width:100%}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px;flex-wrap:wrap}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}.card+.card{margin-top:16px}.grid>.card+.card,.row>.card+.card{margin-top:0}.card.hoverable,a.card{color:inherit;transition:transform .25s var(--ease),border-color .25s,box-shadow .25s}.card.hoverable:hover,a.card:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--border));box-shadow:var(--shadow-lift);color:inherit}.grid{display:grid;grid-gap:16px;gap:16px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.row{flex-wrap:wrap}.row,.spread{display:flex;gap:10px;align-items:center}.spread{justify-content:space-between}.stack>*+*{margin-top:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--accent);background:var(--accent);min-height:44px;padding:0 20px;border-radius:var(--radius-sm);font:inherit;font-weight:600;cursor:pointer;transition:transform .2s var(--ease),background .2s,border-color .2s}.btn,.btn:hover{color:var(--on-accent)}.btn:hover{background:var(--accent-2);border-color:var(--accent-2);transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn .rotor{transform-box:fill-box;transform-origin:center}.btn:hover .rotor{animation:fk-spin .6s linear infinite}.btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn.secondary:hover{background:var(--panel-2);color:var(--text)}.btn.danger{background:var(--surface);color:var(--danger);border-color:var(--border-strong)}.btn.danger:hover{background:var(--danger-soft);color:var(--danger)}.btn.small{min-height:36px;padding:0 14px;font-size:.86rem;border-radius:10px}label{display:block;font-size:.85rem;font-weight:600;margin-bottom:6px;color:var(--text-2)}input,select,textarea{width:100%;min-height:44px;padding:10px 14px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;transition:border-color .2s,box-shadow .2s}textarea{min-height:0}input[type=checkbox],input[type=radio]{width:auto;min-height:0;accent-color:var(--accent)}input[type=file]{padding:8px 10px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.field{margin-bottom:12px}table{width:100%;border-collapse:collapse;font-size:.92rem}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600}td,th{padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}tr:last-child td{border-bottom:none}tbody tr{transition:background .2s}tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}.table-wrap{overflow-x:auto}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.b-ok{background:var(--ok-soft);color:var(--ok)}.b-warn{background:var(--warn-soft);color:var(--warn)}.b-danger{background:var(--danger-soft);color:var(--danger)}.b-info{background:var(--info-soft);color:var(--info)}.b-muted{background:var(--panel-2);color:var(--muted)}.stat{display:flex;flex-direction:column;gap:4px;position:relative}.stat .label{font-size:.8rem;color:var(--muted);font-weight:500}.stat .value{font-family:var(--font-display);font-size:1.9rem;font-weight:600;letter-spacing:-.02em;line-height:1.15}.stat.danger,.stat.ok,.stat.warn{--tone:var(--ok)}.stat.warn{--tone:var(--warn)}.stat.danger{--tone:var(--danger)}.stat.danger .value,.stat.ok .value,.stat.warn .value{color:var(--tone)}.stat.danger:after,.stat.ok:after,.stat.warn:after{content:"";position:absolute;top:22px;right:22px;width:10px;height:10px;border-radius:50%;background:var(--tone);box-shadow:0 0 0 0 var(--tone);animation:fk-ping 2.4s var(--ease) infinite}.notice{border-radius:var(--radius-sm);padding:12px 14px;font-size:.9rem;border:1px solid transparent}.notice strong{display:block;margin-bottom:2px}.n-info{background:var(--accent-soft);border-color:var(--info-border)}.n-warn{background:var(--warn-soft);border-color:var(--warn-border)}.n-danger{background:var(--danger-soft);border-color:var(--danger-border)}.map{height:460px;border-radius:var(--radius);border:1px solid var(--border);z-index:0}.map.tall{height:calc(100vh - 170px)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:.8rem;color:var(--muted);margin-top:10px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{width:12px;height:12px;border-radius:3px;display:inline-block;border:2px solid}.error{color:var(--danger);font-size:.9rem}details summary{cursor:pointer}.empty{text-align:center;padding:36px;color:var(--muted)}.check-item{display:flex;gap:14px;align-items:center;min-height:56px;padding:12px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;cursor:pointer;background:var(--surface);transition:background .2s,border-color .2s}.check-item:hover{border-color:var(--border-strong)}.check-item.done{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.check-item.done span{color:var(--text-2)}.check-item input{width:22px;height:22px;flex:none}.wind-bar{height:8px;border-radius:4px}.hero{--bg:#0b0c0e;--text:#ffffff;--text-2:#b8bec7;--muted:#9aa1ab;--border:#2a2e35;--panel:#16181c;--surface:#16181c;--accent:#3d8bff;--drone-arm:#6b7280;--ok:#2bd67b;--warn:#ffb020;--danger:#ff7a7a;--info:#a78bfa;position:relative;overflow:hidden;background:#0b0c0e;color:#ffffff;border-radius:24px;border:1px solid #1c1f24}.hero .grid-bg{background-image:linear-gradient(#ffffff0d 1px,transparent 0),linear-gradient(90deg,#ffffff0d 1px,transparent 0);background-size:32px 32px}.hero .hero-art{border-right:1px solid #2a2e35}@media (max-width:680px){.hero .hero-art{border-right:0;border-bottom:1px solid #2a2e35}}.hero .chip{padding:14px;border-radius:14px;background:#16181c;border:1px solid #2a2e35;display:flex;flex-direction:column;gap:4px}.hero .chip .k{font-size:.78rem;color:#9aa1ab}.hero .chip .v{font-family:var(--font-mono);font-size:1.35rem;font-weight:600}.hero .chip .v small{font-size:.8rem;color:#9aa1ab;font-weight:400}.auth{min-height:100vh;display:flex;flex-wrap:wrap}.auth-scene{position:relative;flex:999 1 520px;min-height:360px;overflow:hidden;background:#000;color:#fff}.auth-scene svg{position:absolute;inset:0;width:100%;height:100%}.auth-scene .tagline{position:absolute;left:48px;right:48px;bottom:56px;max-width:520px}.auth-scene .tagline p{margin:8px 0 0;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.6rem);font-weight:600;line-height:1.1;letter-spacing:-.02em}.auth-drone{offset-rotate:auto;animation:fk-fly 12s cubic-bezier(.45,0,.55,1) infinite}.auth-ring{transform-box:fill-box;transform-origin:center;animation:fk-ring-out 4s var(--ease) infinite}@keyframes fk-ring-out{0%{transform:scale(.3);opacity:.8}to{transform:scale(1.4);opacity:0}}.auth-side{flex:1 1 420px;display:flex;align-items:center;justify-content:center;padding:48px 32px}.auth-side form{width:100%;max-width:380px;display:flex;flex-direction:column;gap:18px}@keyframes fk-spin{to{transform:rotate(1turn)}}@keyframes fk-hover{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes fk-shadow{0%,to{transform:scaleX(1);opacity:.55}50%{transform:scaleX(.8);opacity:.3}}@keyframes fk-pulse{0%{transform:scale(.6);opacity:.9}to{transform:scale(2);opacity:0}}@keyframes fk-ping{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--tone,var(--accent)) 55%,transparent)}to{box-shadow:0 0 0 10px transparent}}@keyframes fk-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fk-dash{to{stroke-dashoffset:-320}}@keyframes fk-ring{0%{stroke-dashoffset:302}}@keyframes fk-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes fk-grow-y{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes fk-twinkle{0%,to{opacity:.25}50%{opacity:1}}@keyframes fk-fly{0%{offset-distance:0}to{offset-distance:100%}}@keyframes fk-lift{to{transform:translateY(-90px) scale(.7);opacity:0}}@keyframes fk-pop{0%{transform:scale(.4)}70%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.fk-rise{opacity:0;animation:fk-rise .6s var(--ease) forwards;animation-delay:calc(var(--i, 0) * 60ms)}.fk-hover{animation:fk-hover 4s ease-in-out infinite}.fk-shadow{transform-origin:center;animation:fk-shadow 4s ease-in-out infinite}.fk-rotor{animation:fk-blade .22s linear infinite}.fk-rotor.rev{animation-direction:reverse}@keyframes fk-blade{to{stroke-dashoffset:-48}}.fk-pulse{animation:fk-pulse 2.4s var(--ease) infinite}.fk-path{stroke-dasharray:6 10;animation:fk-dash 8s linear infinite}.fk-ring{animation:fk-ring 1.6s var(--ease) both}.fk-grow{transform-origin:left;animation:fk-grow 1s var(--ease) both}.fk-bar{transform-origin:bottom;animation:fk-grow-y .9s var(--ease) both}.fk-twinkle{animation:fk-twinkle 3s ease-in-out infinite}.fk-lift{animation:fk-lift 2.2s cubic-bezier(.5,0,.7,.4) .4s forwards}.fk-pop{animation:fk-pop .35s var(--ease)}.status-dot{position:relative;display:inline-block;width:14px;height:14px;flex:none}.status-dot:after,.status-dot:before{content:"";position:absolute;border-radius:50%;background:var(--tone,var(--ok))}.status-dot:before{inset:0;animation:fk-pulse 2.4s var(--ease) infinite}.status-dot:after{inset:3px}.tone-ok{--tone:var(--ok)}.tone-warn{--tone:var(--warn)}.tone-danger{--tone:var(--danger)}.tone-info{--tone:var(--info)}.radar-chip{position:relative;width:44px;height:44px;flex:none;border-radius:50%;overflow:hidden;border:1px solid color-mix(in srgb,var(--tone,var(--accent)) 40%,transparent);background:var(--surface)}.radar-chip:before{content:"";position:absolute;inset:0;background:conic-gradient(color-mix(in srgb,var(--tone,var(--accent)) 45%,transparent),transparent 25%);animation:fk-spin 4s linear infinite}.radar-chip:after{content:"";position:absolute;inset:18px;border-radius:50%;background:var(--tone,var(--accent))}.brief-row{display:flex;align-items:center;gap:16px;padding:14px;border-radius:14px;border:1px solid var(--border);background:var(--surface)}.brief-row,.brief-row:hover{color:var(--text)}.meter{height:8px;background:var(--panel-2);overflow:hidden}.meter,.meter>i{border-radius:999px}.meter>i{display:block;height:100%;background:var(--tone,var(--accent));transform-origin:left;animation:fk-grow 1s var(--ease) both}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}.fk-rise{opacity:1}.auth-drone{offset-distance:60%}}@media (max-width:900px){.shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--border);padding:12px}.brand{padding:0 8px}.nav{display:flex;flex-wrap:nowrap;gap:2px;width:100%;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.nav>div{flex:none}.nav a{white-space:nowrap}.nav a.active{box-shadow:inset 0 -3px 0 var(--accent)}.nav-section,.sidebar .user{display:none}.main{padding:20px 16px 40px}.g2,.g3,.g4{grid-template-columns:1fr}h1{font-size:1.7rem}.auth-scene{min-height:280px}.auth-scene .tagline{left:24px;right:24px;bottom:28px}}@media print{.no-print,.sidebar{display:none!important}.shell{display:block}.main{padding:0;max-width:none}body{background:#fff;color:#000}.card{box-shadow:none;page-break-inside:avoid;break-inside:avoid}.hero{background:#fff;color:#000;border-color:#ccc}.map{height:380px}*,:after,:before{animation:none!important}.fk-rise{opacity:1}}a.badge.link-badge{text-decoration:none;cursor:pointer;transition:opacity .15s,transform .1s;box-shadow:0 0 0 1px color-mix(in srgb,var(--danger) 25%,transparent)}a.badge.link-badge:hover{text-decoration:none;opacity:.88;transform:translateY(-1px)}.area-title-btn{background:none;border:none;padding:0;color:inherit;font:inherit;cursor:pointer;text-align:left;display:inline}.area-title-btn:hover strong{color:var(--accent);text-decoration:underline}.nature-link-btn{display:inline-flex;align-items:center;gap:4px;background:var(--ok-soft);color:var(--ok);border:1px solid;border-radius:6px;padding:1px 7px;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .15s ease;vertical-align:baseline;text-decoration:none}.nature-link-btn:hover{filter:brightness(1.1);transform:translateY(-1px)}.nature-link-btn.np-badge{background:var(--info-soft);color:var(--info)}.sub-link{color:var(--muted);text-decoration:none;font-size:.8rem;display:inline-flex;align-items:center;gap:2px;background:none;border:none;padding:0;cursor:pointer;font-family:inherit}.sub-link:hover{color:var(--accent);text-decoration:underline}.sub-link.highlight{color:var(--accent);font-weight:600}.modal-backdrop{position:fixed;inset:0;background:rgba(11,12,14,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10000;display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease-out}.modal-box{width:100%;max-width:660px;max-height:88vh;overflow-y:auto;position:relative;background:var(--bg);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);box-shadow:0 24px 48px rgba(0,0,0,.3);animation:slideUp .2s var(--ease)}.modal-header{border-bottom:1px solid var(--border);padding-bottom:12px}.info-section .section-title{margin:0 0 6px;font-size:.95rem;font-weight:700}.caution-box{background:var(--warn-soft);border:1px solid var(--warn-border);border-radius:var(--radius-sm);padding:12px 14px}.facts-box{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}.guidance-list{margin:6px 0 0;padding-left:20px;line-height:1.5;font-size:.88rem}.guidance-list li+li{margin-top:6px}