@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--sky-bg:#0a0c10;--sky-sidebar:#0e1116;--sky-surface:#141820;--sky-surface-2:#1a1f29;--sky-surface-hover:#1e2430;--sky-border:#222834;--sky-border-strong:#2c3442;--sky-m-bg:#000;--sky-m-group:#1c1c1e;--sky-m-separator:#2c2c2e;--sky-text:#e9ecf2;--sky-text-2:#b4bccb;--sky-muted:#7d8699;--sky-faint:#545d6e;--sky-blue:#2f7bff;--sky-blue-strong:#1f63e0;--sky-blue-soft:#2f7bff24;--sky-purple:#a75cf6;--sky-orange:#f59e0b;--sky-yellow:#eab308;--sky-green:#22c55e;--sky-red:#ef4444;--sky-gray-tile:#4b5563;--sky-green-soft:#22c55e24;--sky-red-soft:#ef444424;--sky-orange-soft:#f59e0b24;--sky-purple-soft:#a75cf624;--sky-font:"Inter Variable", "Segoe UI", system-ui, -apple-system, sans-serif;--sky-fs-xs:12px;--sky-fs-sm:13px;--sky-fs-md:14px;--sky-fs-lg:16px;--sky-fs-xl:20px;--sky-fs-2xl:26px;--sky-fs-kpi:32px;--sky-fs-m-row:17px;--sky-1:4px;--sky-2:8px;--sky-3:12px;--sky-4:16px;--sky-5:20px;--sky-6:24px;--sky-8:32px;--sky-r-sm:6px;--sky-r-md:8px;--sky-r-lg:12px;--sky-r-xl:16px;--sky-r-m-group:14px;--sky-r-m-tile:9px;--sky-icon-sm:16px;--sky-icon-md:18px;--sky-tile-sm:28px;--sky-tile-md:36px;--sky-tile-m:38px;--sky-sidebar-w:248px;--sky-topbar-h:64px;--sky-m-bottom-h:64px;--sky-m-row-h:58px;--sky-focus:0 0 0 2px var(--sky-bg), 0 0 0 4px var(--sky-blue);--sky-shadow:0 8px 24px #00000073;--sky-ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--sky-bg);color:var(--sky-text);font-family:var(--sky-font);font-size:var(--sky-fs-md);-webkit-font-smoothing:antialiased;margin:0;line-height:1.45}a{color:var(--sky-blue);text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{box-shadow:var(--sky-focus);border-radius:var(--sky-r-sm);outline:none}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.shell{grid-template-columns:var(--sky-sidebar-w) 1fr;min-height:100vh;display:grid}.sidebar{background:var(--sky-sidebar);border-right:1px solid var(--sky-border);height:100vh;padding:var(--sky-5) var(--sky-3) var(--sky-3);flex-direction:column;display:flex;position:sticky;top:0}.brand{padding:0 var(--sky-2) var(--sky-5);align-items:center;gap:10px;display:flex}.brand-name{letter-spacing:-.01em;font-size:19px;font-weight:700}.brand-name em{color:var(--sky-blue);font-style:normal}.brand-version{font-size:var(--sky-fs-xs);color:var(--sky-muted);margin-top:-2px}.nav{scrollbar-width:thin;scrollbar-color:var(--sky-border-strong) transparent;flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden auto}.nav-section{letter-spacing:.06em;text-transform:uppercase;color:var(--sky-faint);padding:var(--sky-4) var(--sky-3) var(--sky-1);font-size:11px;font-weight:600}.nav-item{align-items:center;gap:var(--sky-3);height:40px;padding:0 var(--sky-3);border-radius:var(--sky-r-md);color:var(--sky-text-2);transition:background .15s var(--sky-ease), color .15s var(--sky-ease);font-weight:500;display:flex}.nav-item:hover{background:var(--sky-surface);color:var(--sky-text)}.nav-item.active .nav-icon{box-shadow:0 1px 2px #00000059}.nav-item.disabled{cursor:default;color:var(--sky-faint)}.nav-item.disabled:hover{background:0 0}.nav-icon{width:var(--sky-tile-sm);height:var(--sky-tile-sm);border-radius:var(--sky-r-sm);flex:none;place-items:center;display:grid}.nav-label{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav-item.disabled .badge.planned{flex:none;height:16px;padding:0 5px;font-size:9.5px}.project-card{align-items:center;gap:var(--sky-3);margin-top:var(--sky-3);padding:var(--sky-3);border-radius:var(--sky-r-lg);background:var(--sky-surface);border:1px solid var(--sky-border);text-align:left;cursor:pointer;width:100%;display:flex}.project-card:hover{background:var(--sky-surface-hover)}.project-name{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.project-meta{font-size:var(--sky-fs-xs);color:var(--sky-muted);align-items:center;gap:6px;display:flex}.powered{color:var(--sky-faint);text-align:center;margin-top:var(--sky-2);font-size:11px}.monogram{width:var(--sky-tile-md);height:var(--sky-tile-md);border-radius:var(--sky-r-md);color:#fff;flex:none;place-items:center;font-weight:700;display:grid;overflow:hidden}.monogram img{object-fit:cover;width:100%;height:100%}.main{flex-direction:column;min-width:0;display:flex}.topbar{z-index:20;height:var(--sky-topbar-h);align-items:center;gap:var(--sky-4);padding:0 var(--sky-8);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--sky-border);background:#0a0c10db;display:flex;position:sticky;top:0}.content{padding:var(--sky-6) var(--sky-8) var(--sky-8);width:100%;max-width:1440px}.page-head{margin-bottom:var(--sky-6)}.page-title{font-size:var(--sky-fs-2xl);letter-spacing:-.015em;margin:0;font-weight:700}.page-sub{color:var(--sky-muted);margin:4px 0 0}.search{flex:1;max-width:460px;position:relative}.search input{width:100%;height:40px;padding:0 var(--sky-3) 0 38px;background:var(--sky-surface);border:1px solid var(--sky-border);border-radius:var(--sky-r-md)}.search input::placeholder{color:var(--sky-muted)}.search>svg{color:var(--sky-muted);position:absolute;top:11px;left:12px}.search-results{background:var(--sky-surface-2);border:1px solid var(--sky-border-strong);border-radius:var(--sky-r-md);box-shadow:var(--sky-shadow);max-height:340px;padding:4px;position:absolute;top:46px;left:0;right:0;overflow:auto}.search-results button{border-radius:var(--sky-r-sm);text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:8px 10px;display:flex}.search-results button:hover,.search-results button[aria-selected=true]{background:var(--sky-surface-hover)}.search-results small{color:var(--sky-muted);margin-left:auto}.user-chip{align-items:center;gap:10px;margin-left:auto;display:flex}.user-avatar{border-radius:var(--sky-r-md);background:#5865f2;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.user-name{align-items:center;gap:4px;font-weight:600;display:flex}.user-role{font-size:var(--sky-fs-xs);color:var(--sky-muted)}.grid{gap:var(--sky-4);display:grid}.kpis{margin-bottom:var(--sky-4);grid-template-columns:repeat(4,minmax(0,1fr))}.cols-2{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr)}.cols-even{grid-template-columns:repeat(2,minmax(0,1fr))}.det-chips{margin-top:var(--sky-3);flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--sky-border-strong);background:var(--sky-bg);height:32px;color:var(--sky-text-2);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;font-size:13px;display:inline-flex}.chip:hover{background:var(--sky-surface-hover)}.chip[aria-pressed=true]{background:var(--sky-blue);border-color:var(--sky-blue);color:#fff}.chip[aria-pressed=true]:before{content:"✓";font-weight:700}.monitor-layout{gap:var(--sky-4);grid-template-columns:minmax(0,1fr) 340px;align-items:start;display:grid}.id-list{gap:6px;padding:4px 0;display:grid}.id-row{grid-template-columns:150px minmax(0,1fr);gap:10px;font-size:13px;display:grid}.id-kind{color:var(--sky-muted)}.id-vals{word-break:break-all;flex-wrap:wrap;gap:4px 12px;display:flex}.autosave{border:1px solid var(--sky-border-strong);height:32px;color:var(--sky-text-2);cursor:pointer;cursor:default;border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:12px;display:inline-flex}.autosave-dot{background:var(--sky-green);border-radius:99px;width:8px;height:8px}.autosave.pending .autosave-dot,.autosave.saving .autosave-dot{background:var(--sky-blue)}.autosave.error .autosave-dot{background:var(--sky-red)}.autosave.saved{color:#86efac;border-color:#22c55e80}.autosave.saving,.autosave.pending{border-color:var(--sky-blue)}.autosave.error{color:#fca5a5;border-color:#ef444480}.monitor-frame{aspect-ratio:16/9;border-radius:var(--sky-r-md);background:#000;place-items:center;display:grid;overflow:hidden}.monitor-frame img{object-fit:contain;width:100%;height:100%}@media (width<=1000px){.monitor-layout{grid-template-columns:1fr}}.res-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;display:grid}.res-item{border-radius:var(--sky-r-sm);border:1px solid var(--sky-border-strong);background:var(--sky-bg);min-height:38px;color:var(--sky-text-2);font:inherit;text-align:left;cursor:pointer;align-items:center;gap:8px;padding:6px 10px;font-size:13px;display:flex}.res-item span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.res-item small{color:var(--sky-muted);font-size:11px}.res-item:hover:not(:disabled){border-color:var(--sky-blue)}.res-item[data-safe=true]{background:var(--sky-green-soft,#22c55e24);color:#86efac;border-color:#22c55e80}.card.mt{margin-top:var(--sky-4)}a.btn{text-decoration:none}a.btn.disabled{opacity:.5;pointer-events:none}.det-pagehead{justify-content:space-between;align-items:flex-start;gap:var(--sky-4);flex-wrap:wrap;display:flex}.det-tabs{justify-content:space-between;align-items:center;gap:var(--sky-3);margin:var(--sky-4) 0;flex-wrap:wrap;display:flex}.det-grid{columns:3 360px;column-gap:var(--sky-4)}.det-grid>.det-group{break-inside:avoid;margin-bottom:var(--sky-5,24px)}.det-group-head{letter-spacing:.06em;text-transform:uppercase;color:var(--sky-text-2);justify-content:space-between;align-items:center;padding:0 4px 8px;font-size:12px;font-weight:700;display:flex}.det-group-head span{align-items:center;gap:6px;display:inline-flex}.det-group-count{letter-spacing:0;text-transform:none;color:var(--sky-muted);font-weight:500}.det-panel{background:var(--sky-surface);border:1px solid var(--sky-border);border-radius:var(--sky-r-lg);padding:4px 0}.det-line{border-top:1px solid var(--sky-border);align-items:center;gap:8px;min-height:44px;padding:4px 12px 4px 14px;display:flex}.det-line:first-child{border-top:0}.det-line[data-changed=true]{box-shadow:inset 3px 0 0 var(--sky-orange)}.det-line-name{min-width:0;color:var(--sky-text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;padding:6px 0;font-weight:600;display:flex}.det-line-name>span{align-items:center;gap:6px;line-height:1.3;display:inline-flex}.det-line-name small{color:var(--sky-muted);white-space:normal;font-size:12px;font-weight:400;line-height:1.35}.det-line-name[data-off=true]>span{color:var(--sky-muted)}.det-line-name:hover>span{color:#fff}.det-i{color:var(--sky-muted);flex:none}.det-hits{background:var(--sky-orange-soft,#f59e0b26);min-width:22px;height:20px;color:var(--sky-orange);border-radius:99px;flex:none;place-items:center;padding:0 6px;font-size:11px;font-weight:700;display:grid}.det-line-name small.det-flag{text-transform:uppercase;letter-spacing:.03em;color:var(--sky-orange);white-space:nowrap;border:1px solid #f59e0b66;border-radius:4px;align-self:flex-start;padding:0 5px;font-size:10px;font-weight:700;line-height:1.4}.det-dur{background:var(--sky-red-soft);color:#fca5a5;height:24px;font:inherit;cursor:pointer;border:1px solid #ef444466;border-radius:6px;flex:none;padding:0 8px;font-size:12px;font-weight:600}.det-line .det-mini{flex:none;width:auto;min-width:104px;height:30px;padding:0 26px 0 10px;font-size:13px;font-weight:600}.dialog.wide{width:min(760px,100%);max-height:calc(100vh - 48px);overflow-y:auto}.dialog.wide h2{align-items:center;gap:8px;display:flex}.det-section{text-transform:uppercase;letter-spacing:.05em;color:var(--sky-muted);margin-bottom:8px;font-size:12px;font-weight:700}.cond-row{grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr) minmax(0,1.2fr) 36px;align-items:center;gap:8px;margin-bottom:8px;display:grid}.cond-row .icon-btn{width:34px;height:34px}.tpl-grid{gap:var(--sky-3);margin-bottom:var(--sky-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.tpl{text-align:left;background:var(--sky-surface);border:1px solid var(--sky-border-strong);border-radius:var(--sky-r-md);color:var(--sky-text);font:inherit;cursor:pointer;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.tpl span{color:var(--sky-muted);font-size:13px}.tpl:hover{border-color:var(--sky-blue)}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.tag{background:var(--sky-green-soft,#22c55e24);color:#86efac;height:28px;font-family:var(--sky-font-mono,ui-monospace, monospace);border-radius:6px;align-items:center;gap:6px;padding:0 6px 0 10px;font-size:12px;display:inline-flex}.tag button{width:18px;height:18px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;display:grid}.tag button:hover{background:#ffffff1a}.code-block{background:var(--sky-bg);border:1px solid var(--sky-border);border-radius:var(--sky-r-sm);color:var(--sky-text-2);padding:10px 12px;font-size:12px;overflow-x:auto}.savebar{z-index:20;align-items:center;gap:var(--sky-3);margin-top:var(--sky-4);border-radius:var(--sky-r-lg);background:var(--sky-surface-2);border:1px solid var(--sky-blue);padding:12px 16px;display:flex;position:sticky;bottom:16px;box-shadow:0 10px 30px #00000073}.savebar>span{flex:1}@media (width<=1280px){.tpl-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.tpl-grid{grid-template-columns:1fr}.cond-row{grid-template-columns:1fr 1fr}.savebar{flex-wrap:wrap}}.cols-wide{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);align-items:start}.stack{gap:var(--sky-4);flex-direction:column;display:flex}.card{background:var(--sky-surface);border:1px solid var(--sky-border);border-radius:var(--sky-r-lg);padding:var(--sky-4) var(--sky-5);min-width:0}.card-head{margin-bottom:var(--sky-3);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--sky-fs-lg);margin:0;font-weight:600}.card-link{font-size:var(--sky-fs-sm);align-items:center;gap:4px;display:inline-flex}.kpi-label{font-weight:600;font-size:var(--sky-fs-md);align-items:center;gap:8px;display:flex}.kpi-value{margin-top:var(--sky-3);font-size:var(--sky-fs-kpi);letter-spacing:-.02em;font-variant-numeric:tabular-nums;align-items:baseline;gap:10px;font-weight:700;display:flex}.kpi-unit{font-size:var(--sky-fs-lg);color:var(--sky-text-2);font-weight:500}.kpi-note{font-size:var(--sky-fs-xs);color:var(--sky-muted);letter-spacing:0;margin-top:2px;font-weight:400}.status-list{flex-direction:column;display:flex}.status-row{align-items:center;gap:var(--sky-3);padding:10px 0;display:flex}.status-row+.status-row{border-top:1px solid var(--sky-border)}.status-label{flex:1;font-weight:500}.status-value{color:var(--sky-text-2);font-variant-numeric:tabular-nums;align-items:center;gap:8px;display:flex}.tile{width:var(--sky-tile-md);height:var(--sky-tile-md);border-radius:var(--sky-r-md);color:#fff;flex:none;place-items:center;display:grid}.dot{background:var(--sky-muted);border-radius:50%;flex:none;width:8px;height:8px}.dot.green{background:var(--sky-green);box-shadow:0 0 0 3px var(--sky-green-soft)}.dot.red{background:var(--sky-red);box-shadow:0 0 0 3px var(--sky-red-soft)}.dot.orange{background:var(--sky-orange);box-shadow:0 0 0 3px var(--sky-orange-soft)}.badge{height:22px;font-size:var(--sky-fs-xs);background:var(--sky-surface-2);color:var(--sky-text-2);white-space:nowrap;border-radius:999px;align-items:center;gap:5px;padding:0 8px;font-weight:600;display:inline-flex}.badge.green{background:var(--sky-green-soft);color:#4ade80}.badge.red{background:var(--sky-red-soft);color:#f87171}.badge.orange{background:var(--sky-orange-soft);color:#fbbf24}.badge.blue{background:var(--sky-blue-soft);color:#6ea3ff}.badge.purple{background:var(--sky-purple-soft);color:#c4a1fb}.badge.planned{border:1px solid var(--sky-border-strong);height:18px;color:var(--sky-faint);background:0 0;padding:0 6px;font-size:10px}.table-wrap{margin:0 calc(-1 * var(--sky-5));overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:var(--sky-fs-sm)}table.data th{text-align:left;color:var(--sky-muted);padding:8px var(--sky-5);border-bottom:1px solid var(--sky-border);white-space:nowrap;font-weight:500}table.data td{padding:10px var(--sky-5);border-bottom:1px solid var(--sky-border);white-space:nowrap}table.data tbody tr:last-child td{border-bottom:0}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover td{background:var(--sky-surface-hover)}.mono{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12.5px}.field{margin-bottom:var(--sky-4);flex-direction:column;gap:6px;display:flex}.field label{font-size:var(--sky-fs-sm);color:var(--sky-text-2);font-weight:500}.field small{color:var(--sky-muted);font-size:var(--sky-fs-xs)}.input,.select{height:38px;padding:0 var(--sky-3);background:var(--sky-bg);border:1px solid var(--sky-border-strong);border-radius:var(--sky-r-md);width:100%}.input:focus,.select:focus{border-color:var(--sky-blue);box-shadow:none}textarea.input{height:auto;min-height:84px;padding:10px var(--sky-3);resize:vertical}.field-error{color:#f87171;font-size:var(--sky-fs-xs)}.row{gap:var(--sky-3);flex-wrap:wrap;align-items:center;display:flex}.btn{height:38px;padding:0 var(--sky-4);border-radius:var(--sky-r-md);border:1px solid var(--sky-border-strong);background:var(--sky-surface-2);cursor:pointer;transition:background .15s var(--sky-ease), transform 50ms;justify-content:center;align-items:center;gap:8px;font-weight:600;display:inline-flex}.btn:hover{background:var(--sky-surface-hover)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--sky-blue);border-color:var(--sky-blue);color:#fff}.btn.primary:hover{background:var(--sky-blue-strong)}.btn.danger{background:var(--sky-red-soft);color:#fca5a5;border-color:#ef444466}.btn.danger:hover{background:#ef44443d}.btn.sm{height:32px;padding:0 var(--sky-3);font-size:var(--sky-fs-sm)}.toggle-row{align-items:center;gap:var(--sky-4);padding:var(--sky-3) 0;display:flex}.toggle-row+.toggle-row{border-top:1px solid var(--sky-border)}.toggle-text{flex:1}.toggle-title{font-weight:500}.toggle-desc{font-size:var(--sky-fs-xs);color:var(--sky-muted)}.switch{background:var(--sky-border-strong);cursor:pointer;width:42px;height:24px;transition:background .15s var(--sky-ease);border:0;border-radius:999px;flex:none;position:relative}.switch:after{content:"";width:18px;height:18px;transition:transform .15s var(--sky-ease);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px}.switch[aria-checked=true]{background:var(--sky-green)}.switch[aria-checked=true]:after{transform:translate(18px)}.switch:disabled{opacity:.4;cursor:not-allowed}.segmented{background:var(--sky-bg);border:1px solid var(--sky-border-strong);border-radius:var(--sky-r-md);padding:2px;display:inline-flex}.segmented button{border-radius:var(--sky-r-sm);font-size:var(--sky-fs-sm);color:var(--sky-muted);cursor:pointer;background:0 0;border:0;padding:6px 12px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--sky-surface-2);color:var(--sky-text)}.empty{text-align:center;padding:var(--sky-8) var(--sky-4);color:var(--sky-muted);flex-direction:column;align-items:center;gap:6px;display:flex}.empty-title{color:var(--sky-text-2);font-weight:600}.notice{gap:var(--sky-3);padding:var(--sky-3) var(--sky-4);border-radius:var(--sky-r-md);border:1px solid var(--sky-border-strong);background:var(--sky-surface-2);font-size:var(--sky-fs-sm);margin-bottom:var(--sky-4);display:flex}.notice.warn{background:var(--sky-orange-soft);border-color:#f59e0b73}.notice.danger{background:var(--sky-red-soft);border-color:#ef444473}.notice.success{background:var(--sky-green-soft);border-color:#22c55e73}.demo-banner{color:#fcd34d;font-size:var(--sky-fs-xs);letter-spacing:.04em;text-align:center;background:repeating-linear-gradient(45deg,#3b2a05,#3b2a05 10px,#2e2104 10px 20px);padding:4px;font-weight:700}.spinner{border:2px solid var(--sky-border-strong);border-top-color:var(--sky-blue);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.secret-box{gap:var(--sky-2);align-items:stretch;display:flex}.secret-box code{background:var(--sky-bg);border:1px dashed var(--sky-border-strong);border-radius:var(--sky-r-md);white-space:pre;flex:1;padding:9px 12px;overflow-x:auto}.evidence-grid{gap:var(--sky-3);grid-template-columns:repeat(auto-fill,minmax(220px,1fr));display:grid}.evidence-item{background:var(--sky-bg);border:1px solid var(--sky-border);border-radius:var(--sky-r-md);margin:0;overflow:hidden}.evidence-item img,.evidence-item video{aspect-ratio:16/9;object-fit:cover;background:#000;width:100%;display:block}.evidence-item figcaption{font-size:var(--sky-fs-sm);padding:8px 10px}.dialog-backdrop{z-index:60;padding:var(--sky-4);background:#000000a6;place-items:center;display:grid;position:fixed;inset:0}.dialog{background:var(--sky-surface);border:1px solid var(--sky-border-strong);border-radius:var(--sky-r-xl);width:min(480px,100%);padding:var(--sky-6);box-shadow:var(--sky-shadow)}.dialog h2{font-size:var(--sky-fs-xl);margin:0 0 6px}.dialog p{color:var(--sky-text-2);margin:0 0 var(--sky-4)}.dialog-actions{justify-content:flex-end;gap:var(--sky-2);margin-top:var(--sky-2);display:flex}.toasts{right:var(--sky-6);bottom:var(--sky-6);gap:var(--sky-2);z-index:80;flex-direction:column;display:flex;position:fixed}.toast{min-width:260px;max-width:380px;padding:var(--sky-3) var(--sky-4);border-radius:var(--sky-r-md);background:var(--sky-surface-2);border:1px solid var(--sky-border-strong);box-shadow:var(--sky-shadow);border-left:3px solid var(--sky-blue)}.toast.error{border-left-color:var(--sky-red)}.toast.success{border-left-color:var(--sky-green)}.ac-preview{border-radius:var(--sky-r-lg);border:1px solid var(--sky-border);background:#1b1d21;font-family:Segoe UI,Arial,sans-serif;overflow:hidden}.ac-preview .ac-body>*+*{margin-top:10px}.ac-preview .ac-body{padding:16px}.ac-container-emphasis{background:#25282e}.ac-columns{gap:12px;display:flex}.ac-col-stretch{flex:1;min-width:0}.ac-c-good{color:#54d26b}.ac-c-attention{color:#ff6b6b}.ac-c-warning{color:#f3c13a}.ac-subtle{opacity:.6}.ac-s-good{background:#2e7d32}.ac-s-attention{background:#c62828}.ac-s-warning{background:#b7860b}.ac-s-emphasis{background:#33363d}.m-header,.m-bottom{display:none}@media (width<=1100px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.cols-2,.cols-even,.cols-wide{grid-template-columns:1fr}}@media (width<=767px){body{background:var(--sky-m-bg)}.shell{display:block}.sidebar,.topbar{display:none}.m-header{padding:var(--sky-4) var(--sky-4) var(--sky-2);justify-content:space-between;align-items:center;display:flex}.m-header .brand{padding:0}.content{padding:var(--sky-2) var(--sky-4) calc(var(--sky-m-bottom-h) + var(--sky-6))}.page-head{margin-bottom:var(--sky-4)}.page-title{font-size:24px}.kpis{gap:var(--sky-3)}.card{background:var(--sky-m-group);border-radius:var(--sky-r-m-group);padding:var(--sky-4);border:0}.kpi-label{font-size:15px}.kpi-value{font-size:30px}.m-section{letter-spacing:.04em;text-transform:uppercase;color:var(--sky-muted);padding:var(--sky-5) var(--sky-4) var(--sky-2);font-size:13px;font-weight:500}.status-row{min-height:var(--sky-m-row-h);font-size:var(--sky-fs-m-row)}.status-row+.status-row{border-top-color:var(--sky-m-separator)}.tile{width:var(--sky-tile-m);height:var(--sky-tile-m);border-radius:var(--sky-r-m-tile)}.table-wrap{margin:0 calc(-1 * var(--sky-4))}.toasts{left:var(--sky-4);right:var(--sky-4);bottom:calc(var(--sky-m-bottom-h) + var(--sky-4))}.m-bottom{height:var(--sky-m-bottom-h);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--sky-m-separator);z-index:40;background:#121214f5;grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.m-bottom a,.m-bottom button{color:var(--sky-muted);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:3px;font-size:11px;font-weight:500;display:flex;position:relative}.m-bottom .active{color:#fff}.m-bottom .active:before{content:"";background:#fff;border-radius:0 0 3px 3px;width:32px;height:3px;position:absolute;top:0}}.sheet-backdrop{z-index:50;background:#0009;position:fixed;inset:0}.sheet{background:var(--sky-m-bg);z-index:55;padding:10px var(--sky-4) calc(var(--sky-m-bottom-h) + var(--sky-6));animation:sheet-in .22s var(--sky-ease);border-radius:18px 18px 0 0;position:fixed;inset:48px 0 0;overflow-y:auto}@keyframes sheet-in{0%{transform:translateY(24px)}}@media (prefers-reduced-motion:reduce){.sheet{animation:none}}.sheet-grip{background:var(--sky-m-separator);width:40px;height:5px;margin:0 auto var(--sky-4);border-radius:3px}.sheet-brand{align-items:center;gap:var(--sky-3);margin:var(--sky-2) var(--sky-1) var(--sky-5);display:flex}.sheet-brand-logo{background:var(--sky-m-group);border-radius:14px;place-items:center;width:54px;height:54px;display:grid}.m-group{background:var(--sky-m-group);border-radius:var(--sky-r-m-group);overflow:hidden}.m-row{align-items:center;gap:var(--sky-4);min-height:var(--sky-m-row-h);padding:0 var(--sky-4);color:var(--sky-text);font-size:var(--sky-fs-m-row);text-align:left;background:0 0;border:0;width:100%;display:flex}.m-row+.m-row .m-row-text{border-top:1px solid var(--sky-m-separator)}.m-row-text{align-self:stretch;align-items:center;gap:var(--sky-2);flex:1;display:flex}.m-row.active{color:#000;background:#fff;font-weight:700}.m-row.disabled{color:var(--sky-faint)}.m-row svg.chev{color:var(--sky-muted)}.m-user{align-items:center;gap:var(--sky-3);padding:var(--sky-3) var(--sky-4);background:var(--sky-m-group);border-radius:var(--sky-r-m-group);margin-top:var(--sky-5);display:flex}.m-user .user-avatar{background:var(--sky-orange);border-radius:50%;width:46px;height:46px}.icon-btn{background:var(--sky-surface-2);cursor:pointer;width:40px;height:40px;color:var(--sky-text-2);border:0;border-radius:50%;place-items:center;display:grid}.login{min-height:100vh;padding:var(--sky-4);background:radial-gradient(1200px 600px at 70% -10%, #2f7bff1f, transparent 60%), var(--sky-bg);place-items:center;display:grid}.login-card{width:min(420px,100%)}.login-card .brand{padding-bottom:var(--sky-2);justify-content:center}.discord-btn{color:#fff;background:#5865f2;border-color:#5865f2;width:100%;height:44px}.divider{align-items:center;gap:var(--sky-3);color:var(--sky-faint);font-size:var(--sky-fs-xs);margin:var(--sky-5) 0;display:flex}.divider:before,.divider:after{content:"";background:var(--sky-border);flex:1;height:1px}.slider-field{grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:10px;display:grid}.slider-field input[type=range]{width:100%;accent-color:var(--sky-blue)}.livemap-layout{gap:var(--sky-4);grid-template-columns:minmax(0,1fr) 360px;align-items:start;display:grid}.livemap-side{gap:var(--sky-4);display:grid}.livemap-card{padding:0;overflow:hidden}.livemap-wrap{height:min(78vh,820px);min-height:420px;position:relative}.livemap-svg{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.livemap-svg:active{cursor:grabbing}.lm-sea{fill:#0d2a3a}.lm-grid{stroke:#ffffff0d;stroke-width:6px}.lm-place{fill:#e9ecf28c;pointer-events:none;paint-order:stroke;stroke:#00000073;stroke-width:6px;font-weight:600}.lm-label{fill:#fff;paint-order:stroke;stroke:#000c;stroke-width:8px;pointer-events:none;font-weight:700}.lm-trail{fill:none;stroke:var(--sky-yellow);stroke-opacity:.85;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 0}.lm-pulse{fill:none;stroke-width:8px;opacity:.6;transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite lm-pulse}@keyframes lm-pulse{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.4)}}@media (prefers-reduced-motion:reduce){.lm-pulse{animation:none}}.lm-controls{gap:6px;display:grid;position:absolute;top:12px;right:12px}.lm-legend{color:var(--sky-text-2);background:#0a0c10bf;border-radius:8px;gap:12px;padding:6px 10px;font-size:12px;display:flex;position:absolute;bottom:12px;left:12px}.lm-legend i{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.lm-list{gap:4px;max-height:52vh;display:grid;overflow-y:auto}.lm-row{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;align-items:center;gap:10px;padding:8px 10px;display:flex}.lm-row:hover{background:var(--sky-surface-hover)}.lm-row[data-sel=true]{border-color:var(--sky-blue);background:var(--sky-surface-2)}.lm-dot{border-radius:50%;flex:none;width:10px;height:10px}.lm-name{flex:1;min-width:0;display:grid}.lm-name b,.lm-name small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lm-name small{color:var(--sky-muted)}.lm-detail{grid-template-columns:1fr 1fr;gap:8px 14px;display:grid}.lm-detail div{gap:2px;display:grid}.lm-detail span{color:var(--sky-muted);font-size:12px}.lm-detail b{align-items:center;gap:4px;display:inline-flex}@media (width<=1100px){.livemap-layout{grid-template-columns:1fr}.livemap-wrap{height:60vh}}.lm-stage{background:#6fbfdf;border:3px solid #2aa7d8;border-radius:18px;height:min(80vh,860px);min-height:480px;position:relative;overflow:hidden;box-shadow:0 10px 40px #00000059}.lm-stage .livemap-svg{position:absolute;inset:0}.lm-beach{fill:#e9dfb8;stroke:#e9dfb8;stroke-width:70px;stroke-linejoin:round}.lm-land{fill:#b9d99a;stroke:#9cc47b;stroke-width:10px;stroke-linejoin:round}.lm-desert{fill:#e6dcae;opacity:.9}.lm-forest{fill:#8fbf6e;opacity:.85}.lm-city{fill:#d7d9dc;stroke:#c3c6cb;stroke-width:10px;stroke-linejoin:round}.lm-town{fill:#d7d9dc;stroke:#c3c6cb;stroke-width:6px}.lm-airport{fill:#c9ccd1;stroke:#b4b8bf;stroke-width:6px}.lm-lake{fill:#6fbfdf;stroke:#5aaed0;stroke-width:8px}.lm-river{fill:none;stroke:#6fbfdf;stroke-width:30px;stroke-linecap:round;stroke-linejoin:round}.lm-highway{fill:none;stroke:#f5c84b;stroke-width:26px;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 6px #00000026)}.lm-road{fill:none;stroke:#fff;stroke-width:14px;stroke-linecap:round;stroke-linejoin:round;opacity:.95}.lm-stage .lm-place{fill:#4b5563;letter-spacing:.04em;text-transform:uppercase;paint-order:stroke;stroke:#ffffffd9;stroke-width:8px;pointer-events:none;font-weight:700}.lm-stage .lm-label{fill:#111827;stroke:#fffffff2;stroke-width:10px}.lm-player{cursor:pointer;transition:transform .9s linear}@media (prefers-reduced-motion:reduce){.lm-player{transition:none}}.lm-float{z-index:2;color:#e5e7eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111827eb;border:1px solid #ffffff14;border-radius:14px;position:absolute;box-shadow:0 12px 30px #00000059}.lm-left{width:290px;top:16px;left:16px}.lm-right{flex-direction:column;width:300px;max-height:calc(100% - 32px);display:flex;top:16px;right:16px}.lm-detail-card{width:min(440px,100% - 660px);min-width:300px;top:16px;left:50%;transform:translate(-50%)}.lm-float-head{align-items:center;gap:10px;padding:12px 14px;display:flex}.lm-float-head>div{display:grid}.lm-float-head small{color:#9ca3af;font-size:12px}.lm-count{color:#9ca3af;white-space:nowrap;margin-left:auto;font-size:12px}.lm-icon-btn{width:28px;height:28px;color:inherit;cursor:pointer;background:#ffffff14;border:0;border-radius:50%;place-items:center;margin-left:auto;display:grid}.lm-count+.lm-icon-btn{margin-left:0}.lm-float-body{gap:10px;padding:0 14px 14px;display:grid}.lm-search{color:#9ca3af;background:#ffffff0f;border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.lm-search input{color:#e5e7eb;background:0 0;border:0;outline:none;flex:1;min-width:0}.lm-seg{background:#ffffff0f;border-radius:10px;grid-template-columns:repeat(4,1fr);gap:4px;padding:3px;display:grid}.lm-seg button{color:#cbd5e1;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:6px 0;font-size:12px}.lm-seg button[aria-pressed=true]{color:#052e16;background:#22c55e;font-weight:700}.lm-toggle{background:#ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;display:flex}.lm-wide-btn{color:#e5e7eb;cursor:pointer;background:#ffffff14;border:0;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:9px;font-weight:600;display:flex}.lm-wide-btn:hover,.lm-icon-btn:hover{background:#ffffff24}.lm-legend-row{color:#9ca3af;gap:12px;font-size:12px;display:flex}.lm-legend-row i{border-radius:50%;width:9px;height:9px;margin-right:5px;display:inline-block}.lm-plist{gap:2px;overflow-y:auto}.lm-prow{color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;width:100%;padding:8px;display:flex}.lm-prow:hover{background:#ffffff0f}.lm-prow[data-sel=true]{background:#3b82f61f;border-color:#3b82f6}.lm-avatar{color:#fff;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-size:12px;font-weight:800;display:grid}.lm-stage .lm-name small{color:#9ca3af}.lm-pill{border-radius:999px;align-items:center;gap:3px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.lm-pill.live{color:#4ade80;background:#22c55e26}.lm-pill.risk{color:#f87171;background:#ef444426}.lm-pill.admin{color:#c084fc;background:#a855f72e}.lm-empty{color:#9ca3af;margin:0;font-size:13px}.lm-detail-card .lm-detail span{color:#9ca3af}.lm-zoombar{z-index:2;background:#111827eb;border-radius:999px;gap:4px;padding:4px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #00000059}.lm-zoombar button{color:#e5e7eb;cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;min-width:34px;height:34px;padding:0 12px;font-weight:700;display:grid}.lm-zoombar button:hover{background:#ffffff1a}@media (width<=1200px){.lm-detail-card{width:300px;min-width:0;top:auto;bottom:70px;left:16px;transform:none}}@media (width<=800px){.lm-stage{height:75vh}.lm-left,.lm-right{width:calc(100% - 32px)}.lm-right{max-height:40%;top:auto;bottom:64px}.lm-detail-card{width:calc(100% - 32px)}}.lm-zone rect{fill-opacity:.18;stroke-dasharray:40 24}.lm-zone.exclude rect{fill:#22c55e;stroke:#16a34a}.lm-zone.speed_limit rect{fill:#f59e0b;stroke:#d97706}.lm-zone-draft{fill-opacity:.25;stroke-dasharray:30 18}.lm-zone-draft.exclude{fill:#22c55e;stroke:#16a34a}.lm-zone-draft.speed_limit{fill:#f59e0b;stroke:#d97706}.lm-hint{color:#9ca3af;margin:-4px 2px 0;font-size:11.5px;line-height:1.35}.lm-wide-btn[aria-pressed=true]{color:#052e16;background:#22c55e}.lm-zone-list{gap:4px;display:grid}.lm-zone-row{background:#ffffff0a;border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:flex}.lm-zone-row i{border-radius:3px;flex:none;width:10px;height:10px}.lm-zone-row i.exclude{background:#22c55e}.lm-zone-row i.speed_limit{background:#f59e0b}.lm-zone-name{text-align:left;min-width:0;color:inherit;cursor:pointer;background:0 0;border:0;flex:1;font-size:13px;font-weight:600;display:grid}.lm-zone-name small{color:#9ca3af;font-weight:400}.lm-left{max-height:calc(100% - 32px);overflow-y:auto}.an-grid{gap:var(--sky-4);margin-top:var(--sky-4);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);display:grid}.an-donut-wrap{flex-wrap:wrap;align-items:center;gap:24px;display:flex}.an-donut{flex:none;width:190px;height:190px}.an-donut-num{fill:var(--sky-text);font-size:26px;font-weight:800}.an-donut-sub{fill:var(--sky-muted);font-size:10px}.an-legend{flex:1;gap:6px;min-width:200px;display:grid}.an-legend-row{border-bottom:1px solid var(--sky-border);grid-template-columns:12px 1fr auto 36px;align-items:center;gap:10px;padding:6px 0;display:grid}.an-legend-row i{border-radius:50%;width:10px;height:10px}.an-legend-row small{color:var(--sky-muted)}.an-legend-row b{text-align:right}.an-bars{gap:12px;display:grid}.an-bar-label{justify-content:space-between;margin-bottom:4px;display:flex}.an-bar{background:var(--sky-surface-2);border-radius:3px;height:6px;overflow:hidden}.an-bar i{background:#a855f7;border-radius:3px;height:100%;display:block}.an-columns{grid-template-columns:repeat(7,1fr);align-items:end;gap:10px;height:190px;display:grid}.an-col{text-align:center;grid-template-rows:1fr auto;gap:6px;height:100%;display:grid}.an-col small{color:var(--sky-muted);font-size:11px}.an-col-bars{justify-content:center;align-items:flex-end;gap:3px;height:100%;display:flex}.an-col-bars i{border-radius:3px 3px 0 0;width:30%;min-height:2px}.an-legend-inline{color:var(--sky-muted);justify-content:center;gap:14px;margin-top:10px;font-size:12px;display:flex}.an-legend-inline i{border-radius:2px;width:9px;height:9px;margin-right:4px;display:inline-block}.an-line{width:100%;height:190px}@media (width<=1100px){.an-grid{grid-template-columns:1fr}}.ev-layout{gap:var(--sky-4);grid-template-columns:minmax(0,420px) minmax(0,1fr);align-items:start;display:grid}.ev-list-card{padding:6px}.ev-list{gap:2px;max-height:70vh;display:grid;overflow-y:auto}.ev-row{color:inherit;text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;width:100%;padding:10px;display:flex}.ev-row:hover{background:var(--sky-surface-hover)}.ev-row[data-sel=true]{border-color:var(--sky-blue);background:var(--sky-surface-2)}.ev-icon{color:#fff;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;display:grid}.ev-text{flex:1;min-width:0;display:grid}.ev-text small{color:var(--sky-muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ev-row time{color:var(--sky-muted);font-size:12px}@media (width<=1000px){.ev-layout{grid-template-columns:1fr}}.console-box{border:1px solid var(--sky-border);color:#d1d5db;background:#05070a;border-radius:10px;height:60vh;min-height:320px;padding:10px 12px;font-size:12.5px;line-height:1.55;overflow-y:auto}.console-line{white-space:pre-wrap;word-break:break-word;gap:8px;display:flex}.console-line time{color:#6b7280;flex:none}.console-ch{color:#60a5fa;flex:none}.console-line.panel span:last-child{color:#fbbf24}.console-input{border:1px solid var(--sky-border);background:#05070a;border-radius:10px;align-items:center;gap:8px;margin-top:10px;padding:6px 6px 6px 12px;display:flex}.console-input input{color:var(--sky-text);background:0 0;border:0;outline:none;flex:1;font-size:13px}.clip-player{gap:8px;display:grid}.clip-frame{aspect-ratio:16/9;background:#000;border-radius:10px;position:relative;overflow:hidden}.clip-frame img{object-fit:contain;width:100%;height:100%;display:block}.clip-badge{color:#fff;background:#000000b3;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;position:absolute;top:10px;left:10px}.clip-badge.after{background:#dc2626d9}.clip-controls{align-items:center;gap:10px;display:flex}.clip-controls input[type=range]{accent-color:var(--sky-red);flex:1}.res-item small.rec{color:var(--sky-green)}.setup-steps{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;display:grid}.setup-step{border:1px solid var(--sky-border);color:inherit;background:var(--sky-surface-2);border-radius:12px;gap:12px;padding:12px;text-decoration:none;display:flex}.setup-step:hover{border-color:var(--sky-blue)}.setup-step span:last-child{gap:3px;display:grid}.setup-step small{color:var(--sky-muted);line-height:1.4}.setup-num{background:var(--sky-blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.setup-step[data-done=true] .setup-num{background:var(--sky-green)}.setup-step[data-done=true]{opacity:.75}.lm-highway-casing{fill:none;stroke:#c9962b;stroke-linecap:round;stroke-linejoin:round}.lm-highway,.lm-road,.lm-river,.lm-trail{fill:none}.lm-forest-edge{stroke:#79a957;stroke-width:6px}.lm-city-edge{stroke:#cfd1d4;stroke-width:10px}.lm-town-edge{stroke:#d6d6d0;stroke-width:6px}.lm-area{fill:#3b82f61f;stroke:#3b82f6;stroke-dasharray:30 18}.lm-zone.safezone rect,.lm-zone-draft.safezone,.lm-zone-draft.select,.lm-zone-draft.zone{fill:#38bdf8;stroke:#0ea5e9}.lm-zone-row i.safezone{background:#38bdf8}.lm-switches{grid-template-columns:1fr 1fr;gap:6px;display:grid}.lm-switches label{background:#ffffff0d;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;font-size:13px;display:flex}.lm-btn-row{grid-template-columns:1fr auto;align-items:center;gap:6px;display:grid}.lm-btn-row .lm-icon-btn{width:36px;height:36px;margin:0}.lm-icon-btn:disabled{opacity:.4;cursor:default}.lm-hint-muted{opacity:.7}.lm-range{gap:6px;padding:4px 2px;display:grid}.lm-range-head{justify-content:space-between;font-size:13px;font-weight:600;display:flex}.lm-range-head small{color:#9ca3af;font-weight:500}.lm-range-track{height:22px;position:relative}.lm-range-track:before{content:"";background:#ffffff26;border-radius:2px;height:4px;position:absolute;top:9px;left:0;right:0}.lm-range-track i{background:#22c55e;border-radius:2px;height:4px;position:absolute;top:9px}.lm-range-track input[type=range]{pointer-events:none;appearance:none;background:0 0;width:100%;margin:0;position:absolute;inset:0}.lm-range-track input[type=range]::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;cursor:pointer;background:#fff;border:0;border-radius:50%;width:20px;height:20px;box-shadow:0 1px 4px #0006}.lm-range-track input[type=range]::-moz-range-thumb{pointer-events:auto;cursor:pointer;background:#fff;border:0;border-radius:50%;width:20px;height:20px}.lm-range-track input[type=range]::-webkit-slider-runnable-track{background:0 0}.lm-range-track input[type=range]::-moz-range-track{background:0 0}.lm-stage .lm-float{background:#152a36f0;border-color:#78c8e61f}.lm-profile{width:270px;right:332px}.lm-rep{grid-template-columns:1fr auto;align-items:center;gap:4px 8px;display:grid}.lm-rep span{color:#9ca3af;font-size:12px}.lm-rep b{font-size:20px}.lm-rep-bar{background:#ffffff1a;border-radius:3px;grid-column:1/-1;height:6px;overflow:hidden}.lm-rep-bar i{height:100%;display:block}.lm-factor{color:#cbd5e1;justify-content:space-between;font-size:12px;display:flex}.lm-factor .neg{color:#f87171}.lm-factor .pos{color:#4ade80}.lm-avatar.discord{background:#5865f2;border-radius:50%;flex:none;place-items:center;display:grid}.lm-drawhint{z-index:3;color:#052e16;background:#22c55e;border-radius:999px;padding:8px 14px;font-size:13px;font-weight:700;position:absolute;top:16px;left:50%;transform:translate(-50%);box-shadow:0 8px 20px #0000004d}.lm-drawhint button{color:inherit;cursor:pointer;background:#00000026;border:0;border-radius:999px;margin-left:6px;padding:2px 10px;font-weight:700}.zone-types{grid-template-columns:repeat(3,1fr);gap:10px;margin:10px 0;display:grid}.zone-type{border:2px solid var(--sky-border);background:var(--sky-surface-2);color:inherit;text-align:left;cursor:pointer;border-radius:12px;gap:4px;padding:14px;display:grid}.zone-type[aria-pressed=true]{border-color:var(--sky-green)}.zone-type small{color:var(--sky-muted);line-height:1.35}.zone-presets{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}@media (width<=700px){.zone-types{grid-template-columns:1fr}}.lm-zone-buttons{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.lm-zone-btn{color:#e5e7eb;cursor:pointer;background:#ffffff0f;border:1px solid #ffffff14;border-radius:10px;place-items:center;gap:4px;padding:10px 4px;font-size:12px;font-weight:700;display:grid}.lm-zone-btn.safe{color:#7dd3fc}.lm-zone-btn.speed{color:#fcd34d}.lm-zone-btn.excl{color:#86efac}.lm-zone-btn[aria-pressed=true]{color:#052e16;background:#22c55e}.lm-guide{fill:#ef4444;paint-order:stroke;stroke:#fff;stroke-width:6px;pointer-events:none;font-weight:800}:root:not([data-theme=light]){--sky-bg:#000;--sky-sidebar:#0b0b0c;--sky-surface:#161618;--sky-surface-2:#1c1c1f;--sky-surface-hover:#222226;--sky-border:#232327}body{background:var(--sky-bg)}.sidebar{background:#0b0b0c}.nav-item{color:#e5e7eb;background:#141416;border-radius:10px;height:42px;margin:1px 0;font-weight:600}.nav-item+.nav-item{border-top:0}.nav-item:hover{background:#1c1c20}.nav-item.active{color:#052e16;background:#22c55e}.nav-item.active .nav-chev{color:#052e16;opacity:1}.nav-chev{color:#6b7280;opacity:.8;flex:none}.nav-section{color:#9ca3af}.page-title{letter-spacing:-.02em;font-size:34px;font-weight:800}.project-card-wrap{margin-top:var(--sky-3);position:relative}.project-card-wrap .project-card{margin-top:0;padding-right:44px}.project-edit{color:#cbd5e1;background:#ffffff12;border-radius:50%;place-items:center;width:28px;height:28px;display:grid;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.project-edit:hover{color:#fff;background:#ffffff24}.sidebar-user{border:1px solid var(--sky-border);background:#141416;border-radius:12px;align-items:center;gap:10px;margin-top:8px;padding:10px 12px;display:flex}.sidebar-user .user-name{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;font-weight:700;display:flex;overflow:hidden}.sidebar-user .user-role{color:var(--sky-muted);font-size:12px}.sidebar-user .user-avatar{color:#fff;background:#f59e0b;border-radius:50%;flex:none;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.card{border-radius:16px}.nav-item.active,.nav-item.active .nav-chev{color:#fff}.announce-banner{text-align:center;color:#fff;background:#2563eb;padding:8px 16px;font-size:13px;font-weight:700}.announce-banner.warning{background:#d97706}.announce-banner.danger{background:#dc2626}.lm-import{color:#fff;background:#2563eb}.lm-import:hover{background:#1d4ed8}:root{--sky-sidebar-w:300px}.nav-item{height:auto;min-height:46px;padding:8px 12px;font-size:15px}.nav-label{white-space:normal;text-overflow:clip;line-height:1.25;overflow:visible}.tile-icon{border-radius:9px;width:32px;height:32px}.nav-section{padding:18px 12px 6px;font-size:12px}.project-name{white-space:normal;overflow:visible}.project-meta,.sidebar-user .user-name{white-space:normal}button:disabled,.btn:disabled,.lm-wide-btn:disabled,.lm-zone-btn:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.42;filter:grayscale();cursor:not-allowed;pointer-events:none}html.tablet-mode,html.tablet-mode body,html.tablet-mode #root{background:0 0!important}html.tablet-mode body{overflow:hidden}.tablet-backdrop{background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.tablet-frame{background:var(--sky-bg);border:7px solid #18181b;border-radius:24px;width:min(94vw,1680px);height:90vh;position:relative;overflow:hidden;transform:translateZ(0);box-shadow:0 0 0 1px #2a2a2e,0 30px 90px #000000a6}.tablet-frame .shell{height:100%;min-height:0}.tablet-frame .sidebar,.tablet-frame .main{height:100%;overflow-y:auto}.tablet-frame .login{min-height:100%}.tablet-close{z-index:60;cursor:pointer;color:#fff;background:#dc2626;border:0;border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:10px;right:12px;box-shadow:0 4px 14px #dc262673}.tablet-close:hover{background:#ef4444}.maint-strip{color:#1c1917;text-align:center;background:repeating-linear-gradient(-45deg,#f59e0b 0 14px,#fbbf24 14px 28px);border-bottom:2px solid #b45309;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 12px;padding:8px 16px;font-size:13px;display:flex}.maint-strip b{text-transform:uppercase;letter-spacing:.04em}.maint-strip .maint-text{font-weight:700}.maint-strip .maint-since{opacity:.75}.maint-strip .maint-dot{background:#7c2d12;border-radius:50%;width:9px;height:9px;animation:1.4s ease-in-out infinite maint-pulse}.maint-strip.preview{border:2px solid #b45309;border-radius:10px}@keyframes maint-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.maint-strip .maint-dot{animation:none}}.owner-filters{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:10px;display:flex}.owner-actions{flex-wrap:wrap;justify-content:flex-end;gap:4px;display:flex}
