@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/pjs-400.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/pjs-500.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/fonts/pjs-600.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/pjs-700.woff2) format("woff2")}:root{--blue: #3366ff;--blue-2: #5c86ff;--sky: #8fb0ff;--bg: #0d0f12;--surface: #15181d;--surface-2: #1c2027;--surface-3: #242931;--ink: #f2f4f7;--muted: #a9b1bd;--muted-2: #8a93a0;--line: rgba(255, 255, 255, .09);--line-soft: rgba(255, 255, 255, .055);--line-strong: rgba(255, 255, 255, .16);--accent: var(--blue);--accent-ink: #ffffff;--accent-text: #86a6ff;--link: #9bb6ff;--accent-fill: rgba(51, 102, 255, .16);--ok: #51cf66;--ok-text: #74dd86;--ok-fill: rgba(81, 207, 102, .12);--ok-fill-strong: rgba(81, 207, 102, .26);--bad: #ff8a4c;--bad-text: #ffa877;--bad-bg: #2e1d14;--bad-fill: rgba(255, 138, 76, .18);--warn-text: #ffd166;--warn-bg: #2d2712;--wind: #8fb0ff;--win: rgba(92, 134, 255, .16);--win-edge: rgba(134, 166, 255, .8);--notice: #f783ac;--current: #22d3ee;--wave: #b197fc;--turbine: #ffffff;--night: rgba(0, 0, 0, .45);--shadow: 0 10px 30px rgba(0, 0, 0, .35);--viv-fill: rgba(81, 207, 102, .14);--tide: #74c0fc;--land: #262b33;--land-edge: #4f5866;--golden: #ffc04d;--bluehr: #9aaeff;--iso: #5f86c9;--iso-text: #a9c0ea;--glass: rgba(21, 24, 29, .94);--stab: #f5a524;--stab-text: #f5a524;--accent-ring: rgba(92, 134, 255, .45);--r-card: 14px;--r-ctl: 10px;--r-pill: 999px;--t: .16s ease;color-scheme:dark}:root[data-theme=light]{--bg: #eceef2;--surface: #ffffff;--surface-2: #f2f4f7;--surface-3: #e6e9ee;--ink: #0f1115;--muted: #3c4453;--muted-2: #4f5767;--line: rgba(15, 17, 21, .13);--line-soft: rgba(15, 17, 21, .07);--line-strong: rgba(15, 17, 21, .24);--accent: #1f46c4;--accent-ink: #ffffff;--accent-text: #1a3cae;--link: #1a3cae;--accent-fill: rgba(31, 70, 196, .12);--ok: #2b8a3e;--ok-text: #145222;--ok-fill: rgba(43, 138, 62, .16);--ok-fill-strong: rgba(43, 138, 62, .36);--bad: #d9480f;--bad-text: #8a2500;--bad-bg: #ffe8d9;--bad-fill: rgba(217, 72, 15, .22);--warn-text: #5c3600;--warn-bg: #fff6d6;--wind: #1c5fc8;--win: rgba(31, 70, 196, .12);--win-edge: rgba(31, 70, 196, .85);--notice: #c2255c;--current: #0b7285;--wave: #6741d9;--turbine: #0f1115;--night: rgba(15, 17, 21, .18);--shadow: 0 1px 2px rgba(15, 17, 21, .06), 0 8px 24px rgba(15, 17, 21, .08);--viv-fill: rgba(43, 138, 62, .24);--tide: #1864ab;--land: #e6e0d2;--land-edge: #a89f8a;--golden: #6e3e00;--bluehr: #2f3fb0;--iso: #4a83b8;--iso-text: #1f5a8f;--glass: rgba(255, 255, 255, .95);--stab: #d9820f;--stab-text: #7a4a00;--accent-ring: rgba(31, 70, 196, .45);color-scheme:light}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 Plus Jakarta Sans,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}h1,h2{margin:0;letter-spacing:-.01em}h2{font-size:15px;font-weight:650;display:flex;align-items:center;gap:8px}.num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:12px}.muted{color:var(--muted)}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}.vh{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0}.link{background:none;border:0;padding:0;color:var(--link);text-decoration:underline;text-underline-offset:2px}.badtxt{color:var(--bad-text);font-weight:600}.warntxt{color:var(--warn-text);font-weight:600}svg.ico{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.app{display:grid;grid-template-columns:76px minmax(0,1fr);min-height:100vh}.rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:var(--surface);border-right:1px solid var(--line);z-index:6}.rail .brand{display:grid;place-items:center;width:44px;height:44px;margin-bottom:10px;text-decoration:none}.rail .brand .co{display:none}.logo{width:30px;height:30px;flex:none}.logo path{fill:var(--blue)}.rail .tabs{display:flex;flex-direction:column;gap:4px;margin:0;width:100%}.rail a,.rail .rbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:60px;height:56px;border-radius:12px;color:var(--muted);text-decoration:none;font-size:10px;font-weight:600;letter-spacing:.01em;background:transparent;border:0;padding:0;white-space:nowrap}.rail a:hover,.rail .rbtn:hover{color:var(--ink);background:var(--surface-2)}.rail a.on{color:var(--ink);background:var(--accent-fill);box-shadow:inset 0 0 0 1px var(--accent-ring)}.rail a.on .ico{color:var(--accent-text)}.rail-end{margin-top:auto;display:flex;flex-direction:column;gap:4px}.shell{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:flex-start;gap:14px 24px;padding:18px 28px 0}.pagehead{min-width:0;margin-right:auto}.pagehead h1{font-size:clamp(20px,1.2vw + 12px,26px);font-weight:700;letter-spacing:-.02em;color:var(--ink);line-height:1.15}.pagehead .pagesub{margin:3px 0 0;font-size:13px;color:var(--muted)}.topbar .file-btn{margin-top:2px}.kpis{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;min-width:0;min-height:34px}.kpis:empty{display:none}.kpi{display:inline-flex;align-items:baseline;gap:6px;padding:6px 11px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-size:12.5px;color:var(--muted);white-space:nowrap;text-decoration:none}.kpi b{color:var(--ink);font-weight:700;font-size:13px}.kpi.k-ok b{color:var(--ok-text)}.kpi.k-warn b{color:var(--warn-text)}.kpi.k-bad b{color:var(--bad-text)}.kpi.k-live:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);align-self:center}a.kpi:hover{border-color:var(--line-strong);color:var(--ink)}.t-moon{display:none}:root[data-theme=light] .t-sun{display:none}:root[data-theme=light] .t-moon{display:block}.file-btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--accent-ink);border:0;border-radius:var(--r-ctl);padding:9px 14px;font-weight:600;white-space:nowrap;cursor:pointer;min-height:40px}.file-btn .ico{width:18px;height:18px;stroke-width:2}.file-btn:focus-within{outline:2px solid var(--sky);outline-offset:3px}.file-btn:hover{background:var(--blue-2)}:root[data-theme=light] .file-btn:hover{background:#1a3aa6}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--sky);outline-offset:3px}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--sky);outline-offset:2px}:focus:not(:focus-visible){outline:none}.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--accent);color:var(--accent-ink);padding:12px 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--r-ctl);font-weight:600;text-decoration:none}.skip:focus{top:12px}main{width:100%;max-width:1280px;margin:0;padding:14px 28px 40px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px 18px;margin-bottom:14px;min-width:0}.card-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px}.card-head.m-head{justify-content:flex-end}.drop{border:1.5px dashed var(--line-strong);border-radius:var(--r-card);background:var(--surface);min-height:50vh;display:grid;place-items:center;align-content:center;gap:6px;text-align:center;padding:24px}.drop-label{display:grid;place-items:center;gap:4px;cursor:pointer;padding:18px 16px;border-radius:var(--r-ctl)}.drop-label:hover{background:var(--surface-2)}.drop-label p{margin:0}.drop>.muted{margin:0;max-width:560px}.drop svg{width:44px;height:44px;color:var(--sky)}.drop:focus-within{outline:2px solid var(--sky);outline-offset:3px}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}.help>summary,#tShomBox>summary{display:flex;align-items:center;gap:10px}.help>summary:before,#tShomBox>summary:before,.m-layerbox>summary:before,.m-about>summary:before,.more>summary:before,.pg-string>summary .pg-head:before{content:"";width:7px;height:7px;border-right:1.8px solid var(--muted);border-bottom:1.8px solid var(--muted);transform:rotate(-45deg);flex:none;margin:0 2px 0 4px;transition:transform var(--t)}details[open]>summary:before,.pg-string[open]>summary .pg-head:before{transform:rotate(45deg)}.m-layerbox>summary,.m-about>summary,.more>summary{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:var(--muted);padding:8px 0}.m-layerbox>summary:hover,.m-about>summary:hover,.more>summary:hover{color:var(--ink)}.m-layerbox[open]>summary,.m-about[open]>summary{color:var(--ink)}.m-about{margin-top:8px}.more .hint{margin-top:4px}body.dragging .drop,body.dragging #app{outline:3px dashed var(--accent);outline-offset:6px;border-radius:16px}.meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 18px;margin:0 2px 12px;font-size:14px}.meta .turbine{font-size:17px}.meta select{font:inherit;font-weight:700;padding:2px 6px;border-radius:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink)}.meta .file{font-family:ui-monospace,monospace;font-size:12.5px;word-break:break-all}.meta .ext,.drop a{color:var(--link)}.meta .warn{flex-basis:100%;margin:4px 0 0}.warn{background:var(--bad-bg);color:var(--bad-text);padding:7px 12px;border-radius:8px;font-size:13.5px}.win-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin-top:10px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.lbl{font-size:12.5px;font-weight:600}.lbl small{color:var(--muted);font-weight:500}.field input,.field select{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);min-height:38px}.field input[type=number]{width:84px}.seg{display:inline-flex}.seg button,.daybtns button,.hourrow button,.stepper button:not(.link),.t-nav button:not(.link),.m-zoom button,.lk-btn{border:1px solid var(--line);background:var(--surface-2);color:var(--ink);padding:6px 11px;min-height:38px;font-size:13.5px;border-radius:var(--r-ctl)}.seg button:hover,.daybtns button:hover,.hourrow button:hover,.stepper button:not(.link):hover,.t-nav button:not(.link):hover,.m-zoom button:hover,.lk-btn:hover,.chip:hover{border-color:var(--line-strong);background:var(--surface-3)}.seg button:disabled,.daybtns button:disabled,.hourrow button:disabled,.lk-btn:disabled{opacity:.45;cursor:default}.seg button+button{border-left:0}.seg button{border-radius:0}.seg button:first-child{border-radius:var(--r-ctl) 0 0 var(--r-ctl)}.seg button:last-child{border-radius:0 var(--r-ctl) var(--r-ctl) 0}.seg button.on,.daybtns button.on{background:var(--accent-fill);border-color:var(--accent-ring);color:var(--ink);font-weight:700}.seg button.on+button{border-left:1px solid var(--line)}.daybtns{display:flex;flex-wrap:wrap;gap:4px}.daybtns button{white-space:nowrap}.hourrow{display:flex;gap:4px;align-items:center;max-width:100%}.f-hour{flex:1 1 260px}.hourrow select{flex:1 1 auto;min-width:0}.win-fields .field{max-width:100%}.hourrow .to{font-size:13px;color:var(--muted);padding:0 2px}.hourrow button{white-space:nowrap}.settings summary{font-size:13px;color:var(--muted);cursor:pointer;padding:10px 0}.settings[open]{flex-basis:100%}.viv-pair{display:flex;align-items:center;gap:6px}.viv-pair .to{font-size:13px;color:var(--muted)}.viv-note{flex-basis:100%;margin:-4px 0 0;font-size:12.5px;color:var(--muted)}.settings-body{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;padding:4px 0 2px}input[aria-invalid]{border-color:var(--bad)!important;color:var(--bad-text)}.local{margin:10px 0 4px;font-size:13.5px;font-weight:600}.hint{margin:4px 0 0;font-size:12.5px;color:var(--muted)}#strip{display:block;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none}#strip [data-role]{touch-action:none}#strip [data-role=grip]{cursor:ew-resize}#strip [data-role=win]{cursor:grab}.hit{fill:transparent;stroke:none;pointer-events:all}.s-frame{fill:none;stroke:var(--line)}.s-grid{stroke:var(--line-soft)}.s-day{stroke:var(--line)}.s-daylbl{fill:var(--muted);font-size:11.5px;font-weight:600}.s-ylbl{fill:var(--muted);font-size:11px;text-anchor:end;dominant-baseline:central}.s-ylbl.r{text-anchor:start}.s-win{fill:var(--win);stroke:var(--win-edge);stroke-width:1.5}.s-team{fill:var(--ok);opacity:.8}.s-night{fill:var(--night)}.s-grip{fill:var(--accent);pointer-events:none}.s-band{fill:var(--ok-fill)}.s-band.win{fill:var(--ok-fill-strong)}.s-gap{fill:var(--bad-bg);opacity:.85}.s-gaplbl{fill:var(--bad-text);font-size:11px;font-weight:700;text-anchor:middle}.s-dir{fill:none;stroke:var(--wind);stroke-width:1.6;stroke-opacity:.7;pointer-events:none}.s-pt{fill:var(--muted);pointer-events:none}.s-pt.win{fill:var(--wind)}.s-pt.ok{fill:var(--ok)}.s-pt.bad{fill:var(--bad);stroke:var(--surface);stroke-width:1.5}.s-pt.free{fill:var(--surface);stroke:var(--muted);stroke-width:1.6}.s-hi{fill:none;stroke:var(--ink);stroke-width:1.6;pointer-events:none}.s-hourlbl{fill:var(--muted);font-size:10.5px;text-anchor:middle}.s-viv{fill:var(--viv-fill);pointer-events:none}.s-thresh{stroke:var(--muted);stroke-dasharray:4 3;pointer-events:none}.s-threshlbl{fill:var(--muted);font-size:10.5px;text-anchor:end;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.s-mark{stroke-width:1.4;stroke-dasharray:5 3;pointer-events:none}.s-mark.now{stroke:var(--ink)}.s-mark.notice{stroke:var(--notice)}.s-mark.conf{stroke:var(--muted);stroke-dasharray:2 3}.s-marklbl{font-size:10.5px;font-weight:600}.s-marklbl.now{fill:var(--ink)}.s-marklbl.notice{fill:var(--notice)}.s-marklbl.conf{fill:var(--muted)}.s-ws{fill:none;stroke:var(--wind);stroke-width:1.4;stroke-opacity:.55;pointer-events:none}.s-ws.win{stroke-width:2.4;stroke-opacity:1}.s-wspt{fill:var(--wind);pointer-events:none}.s-wspt.free{fill:var(--surface);stroke:var(--muted);stroke-width:1.4}.s-cur{fill:none;stroke:var(--current);stroke-width:1.4;stroke-opacity:.5;pointer-events:none}.s-cur.win{stroke-width:2.4;stroke-opacity:1}.s-arrow{fill:none;stroke:var(--current);stroke-width:1.6;stroke-opacity:.75;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.s-arrow.win{stroke-opacity:1;stroke-width:2}.s-wv{fill:none;stroke:var(--wave);stroke-width:1.4;stroke-opacity:.5;pointer-events:none}.s-wv.win{stroke-width:2.4;stroke-opacity:1}.s-arrow.wv{stroke:var(--wave)}.s-arrow.ws{stroke:var(--wind)}.s-tide{fill:none;stroke:var(--tide);stroke-width:1.4;stroke-opacity:.6;pointer-events:none}.s-tide.win{stroke-width:2.4;stroke-opacity:1}.s-curnote{fill:var(--muted);font-size:11.5px;text-anchor:middle}.s-sptitle{fill:var(--muted);font-size:11px;font-weight:600;pointer-events:none}.s-lowconf{fill:var(--surface);opacity:.45;pointer-events:none}.s-lowconf-pat{opacity:.5;pointer-events:none}.s-lowconf-hatch{stroke:var(--muted);stroke-width:1;stroke-opacity:.35}.s-lowconf-lbl{fill:var(--muted);font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.steps tr.lowconf td{color:var(--muted);font-style:italic}.steps tr.lowconf.bad td{color:var(--bad-text)}.steps .tbl-note{color:var(--muted);font-size:12.5px;margin:6px 0 0}.s-cursor{stroke:var(--ink);stroke-opacity:.35;pointer-events:none}.s-tip{pointer-events:none}.s-tip rect{fill:var(--surface);stroke:var(--line)}.s-tip text{fill:var(--ink);font-size:12px;font-family:ui-monospace,monospace}.s-tip text.bad{fill:var(--bad-text);font-weight:700}.heading-grid{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:8px 28px;align-items:start;margin-top:8px}#dial{width:100%;display:block;touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;outline:none}#dial:focus-visible{outline:2px solid var(--accent);outline-offset:4px;border-radius:50%}#dial [data-role]{touch-action:none;cursor:pointer}.d-ring{fill:var(--line-soft)}.d-allowed{fill:var(--ok-fill-strong);stroke:var(--ok);stroke-width:1.2}.d-tick{stroke:var(--muted);pointer-events:none}.d-label{fill:var(--muted);font-size:12px;text-anchor:middle;dominant-baseline:central;pointer-events:none}.d-label.card{fill:var(--ink);font-weight:700;font-size:15px}.d-wedge{pointer-events:none}.d-wedge.main.ok{fill:var(--ok-fill-strong)}.d-wedge.main.bad{fill:var(--bad-fill)}.d-wedge.alt{fill:none;stroke:var(--line);stroke-dasharray:4 4}.d-spread{fill:none;stroke:var(--wind);stroke-width:4;stroke-linecap:round;stroke-opacity:.5}.d-spread-dot{fill:var(--wind)}.d-guide{fill:none;stroke:var(--line);stroke-dasharray:3 4;pointer-events:none}.d-trail{fill:none;stroke:var(--wind);stroke-width:1.6;stroke-opacity:.5;pointer-events:none}.d-step{fill:var(--wind);stroke:var(--surface);stroke-width:1.2;pointer-events:none}.d-step.ok{fill:var(--ok)}.d-step.bad{fill:var(--bad)}.d-step.free{fill:var(--surface);stroke:var(--muted);stroke-width:1.6}.d-hi{fill:none;stroke:var(--ink);stroke-width:2;pointer-events:none}#dial [data-t]{cursor:pointer;touch-action:none}.d-time.hi{fill:var(--accent-text);font-size:12px}.d-time{dominant-baseline:central;fill:var(--ink);font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.d-axis{stroke-width:2;stroke-dasharray:4 4;pointer-events:none}.d-axis.ok{stroke:var(--ok)}.d-axis.bad{stroke:var(--bad)}.d-turbine{pointer-events:none}.d-turbine rect{fill:var(--turbine)}.d-turbine .rotor{stroke:var(--turbine);stroke-width:5;stroke-linecap:round}.d-turbine .hub{fill:var(--accent);stroke:var(--turbine);stroke-width:2}.d-turbine .tower{fill:var(--surface);stroke:var(--turbine);stroke-width:2}.d-handle{stroke:var(--surface);stroke-width:3}.d-handle.ok{fill:var(--ok)}.d-handle.bad{fill:var(--bad)}.d-tower-only{fill:var(--surface);stroke:var(--turbine);stroke-width:2.5}.d-prompt{fill:var(--accent-text);font-size:15px;font-weight:700;text-anchor:middle;pointer-events:none}.panel{min-width:0}.hd-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.big{font-size:64px;font-weight:750;line-height:1;letter-spacing:-.03em;color:var(--muted)}.big.ok{color:var(--ok-text)}.big.bad{color:var(--bad-text)}.hd-row:has(.big[hidden]){display:none}.tag{padding:3px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface-2);font-size:13px;font-weight:600}.tag.bad{border-color:var(--bad);color:var(--bad-text)}.stepper{display:flex;align-items:center;gap:6px;margin:14px 0 12px}.stepper button:not(.link){width:44px;height:44px;padding:0;font-size:22px;font-weight:600;line-height:1}.stepper input{width:96px;height:44px;text-align:center;font:inherit;font-size:20px;font-weight:700;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--ink)}.stepper .link{margin-left:8px;font-size:13px}.status{margin:0 0 12px;padding:9px 12px;border-radius:8px;font-weight:600}.status.ok{background:var(--ok-fill);color:var(--ok-text)}.status.bad{background:var(--bad-bg);color:var(--bad-text)}.status.neutral{background:var(--win)}.status.warn{background:var(--warn-bg);color:var(--warn-text)}.facts{margin:0}.facts>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-top:1px solid var(--line-soft);min-height:44px}.facts dt{color:var(--muted);font-size:13.5px}.facts dd{margin:0;text-align:right}.chip{border:1px solid var(--ok);background:var(--ok-fill);color:var(--ink);border-radius:999px;padding:5px 12px;font-weight:700;min-height:34px;margin-left:4px}.chip small{font-weight:500;color:var(--muted)}.chip.on{background:var(--ok);color:var(--surface)}.chip.on small{color:inherit}.note{margin:8px 0 0;padding:7px 12px;border-radius:8px;background:var(--warn-bg);color:var(--warn-text);font-size:13.5px}.steps{margin-top:12px;font-size:13.5px}.steps summary{cursor:pointer;color:var(--link);padding:6px 0}.tbl-wrap{max-height:280px;overflow:auto}.steps table{border-collapse:collapse;width:100%}.steps th,.steps td{text-align:right;padding:4px 8px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.steps th:first-child,.steps td:first-child{text-align:left}.steps th{color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--surface)}.steps tr.bad td{color:var(--bad-text);font-weight:600}.dial-col{min-width:0}.dial-info{margin:6px 0 0;min-height:3.2em;font-size:12.5px;color:var(--muted);text-align:center}.dial-info.on{color:var(--ink);font-weight:600;font-size:13.5px}.steps tr.free td{color:var(--muted)}.foot{font-size:12.5px;color:var(--muted);max-width:860px}.foot.more>summary{font-size:13px;font-weight:600;padding:6px 0}.foot.more p{margin:8px 0 0}code{font-size:.92em}.site{max-width:none;margin:0;padding:24px 28px 36px;border-top:1px solid var(--line);font-size:13px;color:var(--muted);line-height:1.6}.site .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 24px;margin-bottom:10px}.site .co{color:var(--ink);font-weight:700;letter-spacing:.08em}.wa{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:var(--r-ctl);color:var(--ink)!important;font-weight:600;text-decoration:none;min-height:40px}.wa:hover{border-color:var(--sky)}.wa svg{width:18px;height:18px;fill:#25d366;flex:none}.wa svg.mail{fill:var(--sky)}.wa span{overflow-wrap:normal;word-break:normal}.site .disc{margin:0}.help{margin-top:24px}.help>summary h2{margin:0}.help[open]>summary{margin-bottom:4px}.steps-list{list-style:none;margin:14px 0 0;padding:0}.steps-list li{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px 24px;align-items:center;padding:14px 0;border-top:1px solid var(--line-soft)}.steps-list li:first-child{border-top:0;padding-top:4px}.step-txt{display:flex;gap:12px;align-items:flex-start}.step-txt .num{flex:none;margin-top:2px}.step-txt p{margin:0;line-height:1.5}.steps-list figure{margin:0;background:var(--surface-2);border:1px solid var(--line);border-radius:8px;padding:6px}.steps-list img{display:block;width:100%;height:auto;border-radius:4px}.legend{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px;color:var(--muted)}.legend li{display:inline-flex;align-items:center;gap:6px}.legend svg{width:18px;height:14px;flex:none}.legend-note{margin:6px 0 0;font-size:12.5px;color:var(--muted)}.l-win{fill:var(--win);stroke:var(--win-edge);stroke-width:1.5}.l-team{fill:var(--ok);opacity:.8}.l-night{fill:var(--night);stroke:var(--line)}.l-hatch{fill:var(--surface);stroke:var(--muted);stroke-dasharray:2 2}.l-free{fill:var(--surface);stroke:var(--muted);stroke-width:1.6}.l-arrow{fill:none;stroke:var(--wind);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:20;white-space:pre-line;display:flex;gap:14px;align-items:center;background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:8px;max-width:calc(100% - 32px)}.toast button{background:none;border:1px solid currentColor;color:inherit;border-radius:6px;padding:4px 10px;font-weight:600}.toast.bad{background:var(--bad-bg);color:var(--bad-text);border:1px solid var(--bad)}@media(max-width:820px){.heading-grid,.steps-list li{grid-template-columns:minmax(0,1fr)}.steps-list figure{max-width:420px}#dial{max-width:380px;margin:0 auto}}@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:fixed;top:auto;bottom:0;left:0;right:0;height:auto;flex-direction:row;justify-content:space-around;gap:0;padding:4px 6px calc(4px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--line);background:var(--glass)}.rail .brand{display:none}.rail .tabs{flex-direction:row;justify-content:space-around;width:auto;flex:1 1 auto;gap:0}.rail a,.rail .rbtn{width:auto;min-width:48px;height:52px;flex:1 1 0;gap:2px;border-radius:10px;padding:0 2px}.rail .tabs a span{font-size:9.5px}.rail .tabs a{min-width:56px}.rail .tabs a span{font-size:11px}.rail-end{position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px;margin:0;flex-direction:row;gap:2px;z-index:7}.rail-end .rbtn span,.rail-end a span{display:none}.rail-end .rbtn,.rail-end a{min-width:44px;width:44px;flex:0 0 auto;height:44px;color:var(--muted)}.rail-end .rbtn .ico,.rail-end a .ico{width:21px;height:21px}.shell{padding-bottom:calc(68px + env(safe-area-inset-bottom))}.topbar{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;padding:12px 16px 0;gap:10px 10px}.pagehead{grid-column:1 / -1;padding-right:140px;min-height:44px;display:flex;flex-direction:column;justify-content:center}.pagehead h1{font-size:21px}.topbar .file-btn{grid-column:1;margin:0;padding:8px 12px}.kpis{grid-column:2;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin:0 -16px 0 0;padding:1px 16px 1px 0;mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 36px),transparent)}.kpis::-webkit-scrollbar{display:none}.topbar:has(.file-btn[hidden]) .kpis{grid-column:1 / -1}.topbar .kpis{order:2}.topbar .file-btn{order:1}main{padding:12px 16px 28px}.site{padding:22px 16px 28px}.card{padding:14px}.big{font-size:52px}}@media(pointer:coarse){input,select,textarea{font-size:16px!important}}#viewTides .status{margin:12px 0}.t-level{margin:-4px 0 6px;font-size:14.5px}.t-gauge{margin:0 0 10px;font-size:13.5px;color:var(--muted)}.t-gauge strong{color:var(--ink)}.t-gauge:empty{display:none}.t-gauge .surge{display:inline-block;margin-top:4px;padding:3px 9px;border-radius:8px;font-weight:600}.t-gauge .surge.note{background:var(--warn-bg);color:var(--warn-text)}.t-gauge .surge.warn{background:var(--bad-bg);color:var(--bad-text)}.t-obs{fill:none;stroke:var(--notice);stroke-width:2;stroke-dasharray:2 4;stroke-linecap:round}.t-obs.surge{stroke-dasharray:none;stroke-width:3}.t-obslbl{fill:var(--notice);font-size:10.5px;font-weight:700;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.tides td.ht small{display:block;font-size:11px}.tides th.ht small{display:block}.t-curve-wrap{margin:4px 0 12px}#tCurve{display:block}.t-curve{fill:none;stroke:var(--wind);stroke-width:2}.t-ext{fill:var(--ink)}.t-extlbl{fill:var(--ink);font-size:11px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.t-kind{display:inline-block;min-width:26px;text-align:center;font-size:10.5px;font-weight:700;border-radius:4px;padding:1px 4px;background:var(--line-soft);color:var(--muted);margin-right:2px}.t-kind.hi{background:var(--win);color:var(--ink)}.tides tr.lw td{color:var(--muted)}.t-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:4px 0 10px}.t-nav button:not(.link){white-space:nowrap}.t-nav span{font-weight:600;font-size:14px}.t-wrap{overflow-x:auto}.tides{border-collapse:collapse;width:100%;font-size:15px}.tides th,.tides td{padding:7px 10px;text-align:right;white-space:nowrap}.tides thead th{color:var(--muted);font-size:12.5px;font-weight:600;border-bottom:1px solid var(--line);vertical-align:bottom}.tides thead small{font-weight:500}.tides .hw{text-align:left}.tides tr.dayrow th{text-align:left;font-weight:700;padding-top:14px;border-top:1px solid var(--line-soft)}.tides tr.dayrow:first-child th{border-top:0;padding-top:8px}.tides small{color:var(--muted);font-weight:500;font-size:12px}.tides .gates{display:none}.tides .tagc{text-align:left;width:1%;padding-left:0}.tides tr.past>*{color:var(--muted);opacity:.6}.tides tr.open>td{background:var(--ok-fill)}.tides tr.next>td{background:var(--win)}.t-tag{display:inline-block;padding:1px 8px;border-radius:999px;border:1px solid var(--line);font-size:11.5px;font-weight:700;color:var(--ink)}.t-tag.open{border-color:var(--ok);color:var(--ok-text)}.t-settings{margin:-4px 0 10px}.t-settings>summary{padding:4px 0}.shom{overflow-x:auto;margin-top:10px}.shom iframe{width:691px;height:916px;max-width:none;border:1px solid var(--line);border-radius:8px;background:#fff;display:block}#viewTides h2 small{font-weight:500;font-size:13px}.foot a,.site a{color:var(--link)}.lt-now{margin:10px 0 12px}.light th.lt-day,.light td.lt-day{text-align:left}.light td small{display:block;font-size:11px}.light tr.today>*{background:var(--win)}.light tr.today td.lt-day{font-weight:700}.light .lt-g,.light .lt-b{font-weight:600}.light .lt-g{color:var(--golden)}.light .lt-b{color:var(--bluehr)}.light .lt-sun{color:var(--muted)}.light .lt-n{display:none}.lt-key{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:4px;vertical-align:0}.lt-key.g{background:var(--golden)}.lt-key.b{background:var(--bluehr)}@media(max-width:560px){.light .lt-w{display:none}.light .lt-n{display:table-cell}.light td.lt-n span{display:block}.light td.lt-n span small{display:inline}}@media(max-width:380px){.tides.light{font-size:13px}.tides.light th,.tides.light td{padding:6px 3px}}.show-sm{display:none}@media(max-width:700px){.hide-sm{display:none}.show-sm{display:inline}}@media(max-width:560px){.tides{font-size:14px}.tides th,.tides td{padding:6px 4px}.tides .gate{display:none}.tides .gates{display:table-cell}.tides .tagc{display:none}.tides tr.open>td.gates,.tides tr.next>td.gates{font-weight:700}.tides td.hw small{display:block}.tides td.gates small{font-size:11px;display:block}.tides td.gates{white-space:normal}}.auth-main{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.auth-card{width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px}.auth-card .brand{margin-bottom:4px}.auth-card h2{font-size:18px}.auth-card .field input{width:100%}.auth-card .file-btn{text-align:center}.small{font-size:12.5px;margin:0}.admin-link{text-decoration:none;display:inline-flex;align-items:center}.invite-box{margin-top:12px;padding:12px;border:1px solid var(--ok);border-radius:8px;background:var(--ok-fill)}.invite-box p{margin:0 0 8px}.invite-box input{flex:1;font:13px ui-monospace,monospace;padding:6px 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);min-width:0}.users{border-collapse:collapse;width:100%;font-size:14px}.users th,.users td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.users th{color:var(--muted);font-size:12.5px;font-weight:600}.users tr.off td{color:var(--muted)}.users .acts{display:flex;gap:12px}.users .sh-sel{font:inherit;font-size:13px;padding:4px 6px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink)}.users .danger{color:var(--bad-text)}.users-wrap{max-height:none}.audit td{white-space:normal;vertical-align:top;font-size:13px}.audit td:first-child,.audit td:nth-child(2){white-space:nowrap}.aud>summary{color:var(--link);cursor:pointer;font-size:12.5px}.aud div{margin-top:4px;font-size:12.5px;word-break:break-word;max-width:520px}.aud b{color:var(--muted);font-weight:600;margin-right:4px}.auth-card .link.small{align-self:flex-start}.pk-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px}.pk-list{list-style:none;margin:8px 0 12px;padding:0;display:grid;gap:6px}.pk-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding:8px 0;border-bottom:1px solid var(--line-soft)}.pk-list .link{margin-left:auto}.auth-card .status{margin:0;font-size:14px}.sw{position:relative;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13px}.sw input{position:absolute;opacity:0;width:1px;height:1px}.sw span{position:relative;width:38px;height:22px;border-radius:11px;background:var(--line);transition:background .15s;flex:none}.sw span:after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;transition:transform .15s}.sw input:checked+span{background:var(--ok)}.sw input:checked+span:after{transform:translate(16px)}.sw input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}.sw input:disabled+span{opacity:.5}.win-fields .file-btn{align-self:flex-end}.locks{border-collapse:collapse;width:100%;font-size:14px}.locks th,.locks td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}.locks th{color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap}.locks tr.released td{color:var(--muted)}.lk-wrap{max-height:none}.lk-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;border:1px solid var(--line);white-space:nowrap}.lk-st.requested{color:var(--warn-text);border-color:var(--warn-text);background:var(--warn-bg)}.lk-st.locked{color:var(--ok-text);border-color:var(--ok);background:var(--ok-fill)}.lk-st.released{color:var(--muted)}.lk-who{font-size:12.5px;line-height:1.5}.lk-acts{white-space:nowrap}.lk-acts>*+*{margin-left:10px}.lk-acts .danger{color:var(--bad-text)}.lk-btn{padding:7px 12px;font-weight:600;font-size:13px;min-height:36px}.lk-note{flex:1 1 220px}.lk-note input{width:100%}.lk-note-cell{max-width:320px}.lk-hist summary{cursor:pointer;font-weight:650}.lk-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.lk-editing{outline:2px solid var(--accent);outline-offset:-2px}.locks tr.editing,.locks tr.editing td{background:var(--win)}#lkInfo:empty{display:none}.reg{margin-top:14px;padding-top:12px;border-top:1px solid var(--line-soft)}.reg .hourrow{margin-top:6px}.reg select{font:inherit;padding:6px 9px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);min-height:38px}.reg .file-btn:disabled{opacity:.45;cursor:default}#turbines{width:100%;font:13.5px/1.5 ui-monospace,monospace;background:var(--bg);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:8px 0}@media(max-width:700px){.locks thead{display:none}.locks tr{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--line-soft)}.locks td{border:0;padding:0}.locks td:nth-child(4){grid-column:3;grid-row:1;justify-self:end}.locks td:nth-child(3),.locks td:nth-child(5),.locks td:nth-child(6){grid-column:1 / -1}.locks td:nth-child(3):has(.muted:only-child){display:none}.locks .lk-acts{display:flex;align-items:center;gap:14px;margin-top:4px}.locks .lk-acts>*+*{margin-left:0}.locks .lk-acts .danger{margin-left:auto}.meta .file{display:none}}.map-grid{position:relative;margin-top:10px}.map-wrap{min-width:0;border:1px solid var(--line);border-radius:8px;overflow:hidden}.map-info h3{margin:0 0 6px;font-size:15px}.map-info .facts>div{min-height:36px}.map-info .lk-btn{margin-top:10px}.m-sea{fill:var(--bg)}.m-land{fill:var(--land);stroke:var(--land-edge);stroke-width:1.2}.m-grat{stroke:var(--line-soft)}.m-gratlbl{fill:var(--muted);font-size:10px}.m-port{fill:var(--ink)}.m-portlbl{fill:var(--ink);font-size:12px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-t{fill:var(--sky);stroke:var(--surface);stroke-width:1.2;cursor:pointer}.m-t.other{fill:var(--muted);opacity:.6}.m-t.oss{fill:var(--ink)}.m-t.requested{fill:var(--warn-text);opacity:1}.m-t.locked{fill:var(--ok);opacity:1}.m-t.sel{stroke:var(--ink);stroke-width:2.5}.m-t.pick{stroke:var(--accent);stroke-width:3}.m-tlbl{fill:var(--muted);font-size:10px;text-anchor:middle;pointer-events:none;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-tlbl.requested{fill:var(--warn-text);font-weight:700}.m-tlbl.locked{fill:var(--ok-text);font-weight:700}.m-hd line{stroke-width:2.5;stroke-linecap:round;pointer-events:none}.m-hd circle{fill:var(--surface);stroke-width:2;pointer-events:none}.m-hd.requested line,.m-hd.requested circle{stroke:var(--warn-text)}.m-hd.locked line,.m-hd.locked circle{stroke:var(--ok)}.m-hd.plan line,.m-hd.plan circle{stroke:var(--accent)}.m-hd.plan line{stroke-dasharray:4 3}.m-hd.big line{stroke-width:3.5}.m-hdlbl{font-size:11px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;pointer-events:none}.m-hdlbl.requested{fill:var(--warn-text)}.m-hdlbl.locked{fill:var(--ok-text)}.m-hdlbl.plan{fill:var(--accent-text)}.m-fc{fill:var(--notice);stroke:var(--surface);stroke-width:1.2}.m-fclbl{fill:var(--notice);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-offset{stroke:var(--notice);stroke-width:1.4;stroke-dasharray:5 4}.m-wind line,.m-wind path{stroke:var(--wind);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.m-cur line,.m-cur path{stroke:var(--current);stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round}.m-wind-lbl{fill:var(--wind);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-cur-lbl{fill:var(--current);font-size:11px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-inset rect{fill:var(--surface);stroke:var(--line);opacity:.92}.m-inset-sub{fill:var(--muted);font-size:10.5px}.m-north path{fill:var(--ink)}.m-north text{fill:var(--ink);font-size:11px;font-weight:700;text-anchor:middle}.m-scale rect{fill:var(--ink)}.m-scale text{fill:var(--ink);font-size:11px}#mapNote:empty{display:none}.m-link{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.m-link.c1{stroke-dasharray:6 4}.m-link.hl{stroke-width:5;opacity:1}.m-link.other{stroke:var(--muted);stroke-width:1.5;opacity:.45}.m-sw{display:inline-block;width:14px;height:4px;border-radius:2px;margin-right:6px;vertical-align:middle}.str-5{stroke:#4dabf7}.m-sw.str-5{background:#4dabf7}.str-6{stroke:#da77f2}.m-sw.str-6{background:#da77f2}.str-7{stroke:#38d9a9}.m-sw.str-7{background:#38d9a9}.str-8{stroke:#ffd43b}.m-sw.str-8{background:#ffd43b}.str-0{stroke:var(--muted)}.m-sw.str-0{background:var(--muted)}:root[data-theme=light] .str-5{stroke:#1c7ed6}:root[data-theme=light] .m-sw.str-5{background:#1c7ed6}:root[data-theme=light] .str-6{stroke:#ae3ec9}:root[data-theme=light] .m-sw.str-6{background:#ae3ec9}:root[data-theme=light] .str-7{stroke:#0ca678}:root[data-theme=light] .m-sw.str-7{background:#0ca678}:root[data-theme=light] .str-8{stroke:#e8a300}:root[data-theme=light] .m-sw.str-8{background:#e8a300}#mapStrLegend{margin-top:4px}.map-info .facts .cab{flex-direction:column;align-items:flex-start;gap:4px}.map-info .facts .cab dd{text-align:left;line-height:1.6}.m-tile{pointer-events:none}:root:not([data-theme=light]) .m-tile{filter:invert(1) hue-rotate(180deg) brightness(.85) contrast(.85) saturate(.6)}.m-attr{fill:var(--ink);font-size:10px;text-anchor:end;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-strlbl{font-size:11.5px;font-weight:700;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}.m-strlbl.str-2{fill:#adb5bd}.m-strlbl.str-5{fill:#4dabf7}.m-strlbl.str-6{fill:#da77f2}.m-strlbl.str-7{fill:#38d9a9}.m-strlbl.str-8{fill:#ffd43b}:root[data-theme=light] .m-strlbl.str-2{fill:#868e96}:root[data-theme=light] .m-strlbl.str-5{fill:#1c7ed6}:root[data-theme=light] .m-strlbl.str-6{fill:#ae3ec9}:root[data-theme=light] .m-strlbl.str-7{fill:#0ca678}:root[data-theme=light] .m-strlbl.str-8{fill:#e8a300}.map-wrap{position:relative}#farmMap{display:block;touch-action:pan-y;cursor:grab;user-select:none;-webkit-user-select:none}#farmMap:active{cursor:grabbing}.m-zoom{position:absolute;right:10px;top:56px;z-index:2;display:flex;flex-direction:column;gap:4px}.m-zoom button{width:34px;height:34px;padding:0;font-size:20px;line-height:1;font-weight:600}.m-zoom button:disabled{opacity:.4}.m-zoom button[aria-pressed=true]{background:var(--accent-fill);border-color:var(--accent-ring);color:var(--accent-text)}.m-zoom button svg.ico{width:18px;height:18px}#farmMap.measuring{cursor:crosshair}.m-meacc{fill:var(--accent);fill-opacity:.12;stroke:var(--accent);stroke-opacity:.5;stroke-width:1;pointer-events:none}.m-me{fill:var(--accent);stroke:#fff;stroke-width:2.5;cursor:pointer}.m-me.sel{stroke:var(--ink);stroke-width:3}.m-mehdg{stroke:var(--accent);stroke-width:3;stroke-linecap:round;pointer-events:none}.m-melbl{fill:var(--accent-text);font-size:11px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;pointer-events:none}.m-meline:empty{display:none}.m-meas{stroke:var(--notice);stroke-width:2;stroke-dasharray:7 5;fill:none;pointer-events:none}.m-measpt{stroke:var(--notice);stroke-width:2;fill:var(--surface);pointer-events:none}.m-measlbl{fill:var(--notice);font-size:11.5px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px;stroke-linejoin:round;pointer-events:none}:root[data-theme=light] .m-melbl,:root[data-theme=light] .m-measlbl{stroke:#fff}.m-zoom button:active{transform:scale(.95)}.m-zoom button svg{display:block;margin:auto}.map-grid.map-fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:block;margin:0;background:var(--bg);padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-sizing:border-box}.map-fs .map-wrap{height:100%;border:0;border-radius:0}.map-fs #farmMap{touch-action:none}.map-info{position:absolute;left:12px;bottom:12px;z-index:2;width:min(340px,calc(100% - 24px));max-height:50%;overflow:auto;background:var(--glass);border:1px solid var(--line-strong);border-radius:12px;padding:12px 14px;box-shadow:var(--shadow);font-size:14px}.map-info:not(.sel){width:auto;max-width:min(360px,calc(100% - 24px));padding:7px 12px;font-size:12.5px;pointer-events:none}.map-info:not(.sel) p{margin:0}.map-fs .map-info{left:calc(12px + env(safe-area-inset-left));bottom:calc(12px + env(safe-area-inset-bottom));max-height:45%}.map-fs .map-info:not(.sel){display:none}.m-infox{display:block;float:right;margin:-4px -6px 0 8px;width:32px;height:32px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink);font-size:20px;line-height:1}@media(max-width:560px){.map-fs .map-info{max-height:40%}}html.map-fs-on,html.map-fs-on body{overflow:hidden}.m-layers{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:10px 0 0}.m-layerbox .m-layers{margin-top:2px}.m-layerbox>summary{margin-top:6px}.m-chk{display:inline-flex;align-items:center;gap:8px;padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:13px;color:var(--muted);background:var(--surface-2);cursor:pointer;min-height:36px}.m-chk:has(input:checked){color:var(--ink)}.m-chk input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;margin:0;width:30px;height:18px;border-radius:999px;background:var(--line-strong);position:relative;cursor:pointer;flex:none;transition:background .15s}.m-chk input[type=checkbox]:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fff;transition:transform .15s;box-shadow:0 1px 2px #0000004d}.m-chk input[type=checkbox]:checked{background:var(--accent)}.m-chk input[type=checkbox]:checked:after{transform:translate(12px)}.m-chk input[type=checkbox]:focus-visible{outline:2px solid var(--sky);outline-offset:2px}.pills{display:inline-flex;flex-wrap:wrap;gap:4px}.pills button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);border-radius:var(--r-pill);padding:6px 11px;min-height:36px;font-size:13px;font-weight:600}.pills button .cnt{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--surface-3);color:var(--ink);font-size:11.5px;font-weight:700}.pills button:hover{color:var(--ink);border-color:var(--line-strong)}.pills button.on{color:var(--ink);background:var(--accent-fill);border-color:var(--accent-ring)}.pills button.on .cnt{background:var(--accent);color:var(--accent-ink)}.m-cpsctl{padding-right:6px}.m-cpsctl .pills{margin-left:2px}.hit-line{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke}.m-link.rest{stroke-width:1.8;opacity:.75}.m-link.camp{stroke-width:3.2;opacity:.95}.m-zone{fill:none;stroke-width:1.4}.m-zone.conc{stroke:var(--ink);stroke-width:1.2;opacity:.6}.m-zonelbl{font-size:10.5px;font-weight:600;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-zonelbl.conc{fill:var(--ink)}.m-z500{fill:var(--notice);fill-opacity:.035;stroke:var(--notice);stroke-width:1.2;stroke-dasharray:6 5;stroke-opacity:.8;pointer-events:none}.m-z500lbl{fill:var(--notice);font-size:10.5px;font-weight:700;text-anchor:middle;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round;pointer-events:none}:root[data-theme=light] .m-z500lbl{stroke:#fff}.m-export{fill:none;stroke:var(--ink);stroke-width:2.6;opacity:.85;stroke-dasharray:14 3 2 3;stroke-linejoin:round}.m-exportlbl{fill:var(--ink);font-size:11px;font-weight:700;paint-order:stroke;stroke:var(--bg);stroke-width:3px}.m-scour{fill:var(--muted);fill-opacity:.25;stroke:var(--muted);stroke-width:1}.str-1{stroke:#ff8787}.m-sw.str-1{background:#ff8787}.m-strlbl.str-1{fill:#ff8787}.str-3{stroke:#a9e34b}.m-sw.str-3{background:#a9e34b}.m-strlbl.str-3{fill:#a9e34b}.str-4{stroke:#adb5bd}.m-sw.str-4{background:#adb5bd}.m-strlbl.str-4{fill:#ced4da}.str-2{stroke:#ffa94d}.m-sw.str-2{background:#ffa94d}.m-strlbl.str-2{fill:#ffa94d}:root[data-theme=light] .str-1{stroke:#e03131}:root[data-theme=light] .m-sw.str-1{background:#e03131}:root[data-theme=light] .m-strlbl.str-1{fill:#e03131}:root[data-theme=light] .str-2{stroke:#e8590c}:root[data-theme=light] .m-sw.str-2{background:#e8590c}:root[data-theme=light] .m-strlbl.str-2{fill:#e8590c}:root[data-theme=light] .str-3{stroke:#5c940d}:root[data-theme=light] .m-sw.str-3{background:#5c940d}:root[data-theme=light] .m-strlbl.str-3{fill:#5c940d}:root[data-theme=light] .str-4{stroke:#495057}:root[data-theme=light] .m-sw.str-4{background:#495057}:root[data-theme=light] .m-strlbl.str-4{fill:#495057}text.m-strlbl{stroke:var(--bg);stroke-width:3.5px}.m-jacket{fill:none;stroke:var(--ink);stroke-width:1.2;stroke-linejoin:round;stroke-linecap:round;opacity:.8;pointer-events:none}.m-jacket.det{stroke-width:.8;opacity:.9}.m-pile{fill:none;stroke:var(--warn-text);stroke-width:1.4;pointer-events:none}.m-pilelbl{fill:var(--warn-text);font-size:10px;paint-order:stroke;stroke:var(--bg);stroke-width:3px;pointer-events:none}.m-t.ring{fill:none;stroke-width:1.5}.m-t.ring:not(.requested):not(.locked){stroke:var(--sky)}.m-tlbl.big{font-size:12px;font-weight:700;fill:var(--ink)}.m-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.m-btns .lk-btn{margin:0}.m-ship{fill:#ff922b;stroke:#fff;stroke-width:2;stroke-linejoin:round;cursor:pointer;filter:drop-shadow(0 1px 2px rgba(0,0,0,.6))}.m-shiphalo{fill:#ff922b;fill-opacity:.22;stroke:#ff922b;stroke-opacity:.55;stroke-width:1.2;pointer-events:none}.m-shiphalo.stale{fill:var(--muted);stroke:var(--muted)}.m-ship.stale{fill:var(--muted)}.m-ship.sel{stroke:var(--ink);stroke-width:3}.m-shiplbl{fill:#ffd8a8;font-size:13.5px;font-weight:800;paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round;pointer-events:none}.m-shipsub{fill:var(--ink);font-size:11.5px;font-weight:600;paint-order:stroke;stroke:var(--bg);stroke-width:3.5px;pointer-events:none}:root[data-theme=light] .m-shiplbl{fill:#d9480f}#mapAis:empty{display:none}:root[data-theme=light] .m-ship{stroke:#fff}.m-hull{fill:#ff922b;fill-opacity:.55;stroke:#ff922b;stroke-width:2;stroke-linejoin:round;cursor:pointer}.m-hull.unk{fill-opacity:.12;stroke-dasharray:5 4}.m-inside{color:var(--stab-text);font-weight:700}.m-visits{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}.m-visits .link{font:inherit;font-weight:600}.m-hull.stale{fill:var(--muted);stroke:var(--muted)}.m-hull.sel{stroke:var(--ink);stroke-width:3}.m-antenna{fill:var(--ink);pointer-events:none}.m-shiplead{stroke:#ffa94d;stroke-width:1;stroke-opacity:.7;pointer-events:none}@media(max-width:560px){.m-shiplbl{font-size:12px}.m-shipsub{font-size:10.5px}}.m-cps{cursor:pointer;stroke-width:1.8}.m-cps.none{fill:var(--bg);stroke:var(--ink)}.m-cps.stab{fill:var(--stab);stroke:#fff}.m-cps.done{fill:var(--ok);stroke:#fff}.m-cps.sel{stroke:var(--accent);stroke-width:3}.m-cpsctl label{display:inline-flex;gap:8px;align-items:center}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;margin:10px 0 6px}.tile{padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);min-width:0}.tile .tl{font-size:12px;color:var(--muted)}.tile .tv{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.2;margin-top:2px}.tile .tv small{font-size:12.5px;font-weight:500;color:var(--muted);margin-left:4px}.tile.hl .tv{color:var(--accent-text)}.bagchart{margin:4px 0 8px}.bagchart svg{display:block;width:100%;height:110px}.bc-bar{fill:var(--accent)}.bc-bar:hover{fill:var(--blue-2)}.bc-lbl{fill:var(--muted);font-size:10.5px;text-anchor:middle}.bc-val{fill:var(--ink);font-size:10.5px;text-anchor:middle;font-weight:600}.bc-axis{stroke:var(--line)}.bc-title{fill:var(--muted);font-size:11.5px;font-weight:600}.trips{border-collapse:collapse;width:100%;font-size:14px;margin-top:6px}.trips th,.trips td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}.trips th{color:var(--muted);font-size:12.5px;font-weight:600;white-space:nowrap}.trips td.nmr,.trips th.nmr{text-align:right;font-variant-numeric:tabular-nums}@media(max-width:700px){.trips thead{display:none}.trips tr{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding:10px 0;border-bottom:1px solid var(--line-soft)}.trips td{border:0;padding:0}.trips td.tr-name{flex-basis:100%}.trips td[data-l]:before{content:attr(data-l) " ";color:var(--muted);font-size:12px}.trips td.nmr{text-align:left;font-weight:600}.trips td.lk-acts{margin-left:auto}}.trips td .neg{color:var(--bad-text);font-weight:600}.pg-bags{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}.pg-bags b{color:var(--ink)}.pg-bags .link{font-size:11.5px;margin-left:4px}.dlg{border:1px solid var(--line-strong);border-radius:var(--r-card);background:var(--surface);color:var(--ink);padding:18px;width:min(560px,calc(100vw - 32px));box-shadow:var(--shadow)}.dlg::backdrop{background:#00000073}.dlg h2{font-size:16px}.dlg .win-fields{margin-top:12px}.dlg-acts{display:flex;align-items:center;gap:10px;margin-top:16px}.dlg-acts .grow{flex:1}.dlg .field input[type=number]{width:110px}.sh-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}.sh-q{flex:1 1 220px;min-width:0;font:inherit;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);min-height:40px}.sh-tools select{font:inherit;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);color:var(--ink);min-height:40px}.sh-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.sh-tags:empty{display:none}.tag{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface-2);font-size:12.5px;color:var(--muted)}.tag.cps{font-family:ui-monospace,monospace;font-size:12px}button.tag{cursor:pointer;min-height:32px}@media(pointer:coarse){button.tag{min-height:44px;padding:3px 14px}.sh-q,#shSort{min-height:44px}}button.tag:hover{color:var(--ink);border-color:var(--line-strong)}button.tag.on{color:var(--ink);background:var(--accent-fill);border-color:var(--accent-ring)}.tag .cnt{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--surface-3);color:var(--ink);font-size:11px;font-weight:700}.sh-list{display:grid;gap:10px}.sh-item{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:12px 16px;align-items:start;margin:0}.sh-thumb{width:120px;height:84px;border-radius:8px;overflow:hidden;background:var(--surface-2);display:grid;place-items:center;border:1px solid var(--line-soft)}.sh-thumb img{width:100%;height:100%;object-fit:cover;display:block}.sh-fmt{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.sh-name{margin:0;font-size:15px;font-weight:650;word-break:break-word}.sh-meta{margin:3px 0 0;font-size:12.5px;color:var(--muted)}.sh-tags-row{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px}.tag.more{border-style:dashed}.sh-disclaimer{margin:0 0 12px;padding:10px 14px;border-radius:10px;border:1px solid var(--stab);background:color-mix(in srgb,var(--stab) 12%,transparent);color:var(--ink);font-size:13.5px;line-height:1.45}.sh-disclaimer strong{color:var(--stab-text)}:root[data-theme=light] .sh-disclaimer strong{color:var(--ink)}.sh-thumb img,.sh-prev{cursor:zoom-in}.dlg.sh-light{width:auto;max-width:96vw;padding:8px;background:var(--bg)}.sh-light img{display:block;max-width:calc(96vw - 16px);max-height:86vh;width:auto;height:auto;border-radius:8px;cursor:zoom-out}.sh-light .dlg-acts{margin-top:8px;align-items:center}.sh-light .cap{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-legend{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-size:12px;color:var(--muted)}.sh-legend i{display:inline-block;width:64px;height:8px;border-radius:4px;background:linear-gradient(90deg,#dc3c28,#fabe28,#b4e63c,#3ed692,#21acda,#2160c7,#171c63)}.sh-notes{margin:6px 0 0;font-size:13.5px}.sh-acts{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:120px}.sh-acts .link{text-align:center}.sh-queue{display:grid;gap:8px;margin-bottom:12px}.sh-job{margin:0}.sh-jobhead{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;font-size:14px}.sh-jobstate{margin-left:auto;font-size:12.5px;color:var(--muted)}.sh-jobstate.bad{color:var(--bad-text);font-weight:600}.sh-jobform{margin-top:10px}.sh-tagf{flex:1 1 240px}.sh-onmap{flex:1 1 100%;margin-top:4px;font-size:13.5px}.sh-tagbox{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:4px 6px;border:1px solid var(--line);border-radius:var(--r-ctl);background:var(--surface-2);min-height:40px;cursor:text}.sh-tagbox input{flex:1 1 80px;min-width:60px;border:0;background:transparent;color:var(--ink);font:inherit;padding:4px;outline:none}.sh-tagbox.mono .tag{font-family:ui-monospace,monospace;font-size:12px}.sh-tagbox .tag .x{border:0;background:transparent;color:inherit;font-size:14px;line-height:1;padding:0 0 0 2px;cursor:pointer}.sh-prev{display:block;max-width:100%;max-height:50vh;margin:10px 0;border-radius:8px;border:1px solid var(--line-soft);background:var(--surface-2)}#shDlg{width:min(720px,calc(100vw - 32px))}.sh-name{cursor:pointer}.link.danger{color:var(--bad-text)}.dlg.rpt{width:min(760px,calc(100vw - 32px))}a.file-btn{text-decoration:none}.rpt-wrap{margin:10px 0}.rpt-wrap img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid var(--line-soft)}.rpt-skel{height:420px;border-radius:10px}.m-survey{opacity:.92;pointer-events:none;image-rendering:auto}.m-survey.shadow{filter:drop-shadow(0 0 1.5px rgba(255,255,255,.85)) drop-shadow(4px 6px 5px rgba(0,0,0,.9)) drop-shadow(8px 14px 18px rgba(0,0,0,.7))}:root[data-theme=light] .m-survey.shadow{filter:drop-shadow(0 0 1px rgba(255,255,255,.9)) drop-shadow(3px 5px 5px rgba(0,0,0,.4)) drop-shadow(8px 14px 18px rgba(0,0,0,.25))}.m-surveyfp{fill:transparent;stroke:#f2f4f7;stroke-opacity:.55;stroke-width:1;stroke-dasharray:3 3;vector-effect:non-scaling-stroke;cursor:pointer}.m-surveyfp:hover,.m-surveyfp.sel{stroke:var(--accent);stroke-opacity:1;stroke-width:2;stroke-dasharray:none}.legend .m-surveyfp{stroke:var(--muted);stroke-opacity:1}.m-foot{fill:var(--accent-fill);stroke:var(--accent);stroke-width:2;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.m-footlbl{font-size:12px;font-weight:600;fill:var(--accent-text);paint-order:stroke;stroke:var(--bg);stroke-width:3px}.sh-name:hover{color:var(--accent-text)}@media(max-width:700px){.sh-item{grid-template-columns:84px minmax(0,1fr)}.sh-thumb{width:84px;height:64px}.sh-acts{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap}.sh-acts .file-btn,.sh-acts .lk-btn{flex:1 1 auto}}.pg-total{font-size:15px;margin:8px 0 4px}.pg-string>summary{display:block}.pg-string>summary .pg-head{align-items:center}.pg-string>summary .pg-head:before{order:-1}.pg-string:not([open])>summary .pg-bar{margin-bottom:0}.pg-string .pg-table{margin-top:10px}.pg-id{white-space:nowrap}.pg-id small{font-size:11.5px}.pg-bar{display:flex;height:8px;border-radius:4px;background:var(--line-soft);overflow:hidden;margin:6px 0 4px}.pg-bar span{display:block;height:100%}.pg-bar span.done{background:var(--ok)}.pg-bar span.stab{background:var(--stab)}.pg-c{white-space:nowrap}.pg-head{flex-wrap:wrap;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.pg-head h2{display:flex;align-items:center;gap:8px;white-space:nowrap}.pg-count{font-size:14px}.pg-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:14px;margin-top:8px}.pg-table th,.pg-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line-soft);vertical-align:top}.pg-table th{color:var(--muted);font-size:12.5px;font-weight:600}.pg-table a{color:var(--link)}.pg-table col.c1{width:13%}.pg-table col.c2{width:33%}.pg-table col.c3,.pg-table col.c4{width:27%}.pg-tick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:2px 8px 2px 4px;border-radius:999px;border:1px solid var(--line);font-size:12.5px;font-weight:700;color:var(--muted)}.pg-tick input{width:18px;height:18px;margin:0;accent-color:var(--stab);cursor:pointer}.pg-tick.survey input{accent-color:var(--ok)}.pg-tick.on{color:var(--stab-text);border-color:var(--stab);background:color-mix(in srgb,var(--stab) 14%,transparent)}.pg-tick.survey.on{color:var(--ok-text);border-color:var(--ok);background:var(--ok-fill)}.pg-who{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}.pg-err{display:block;color:var(--bad-text);font-size:13px;margin-top:4px}.pg-table tr.pg-focus td{background:var(--warn-bg)}.pg-step{white-space:nowrap}@media(max-width:560px){.pg-table col.c1{width:17%}.pg-table col.c2{width:37%}.pg-table col.c3,.pg-table col.c4{width:23%}.pg-table th,.pg-table td{padding:6px 3px}.pg-table td:nth-child(2) small{display:block}.pg-tick span,.pg-who{display:none}.pg-tick{padding:10px 11px}.pg-tick input{width:22px;height:22px}}:root[data-theme=light] :is(.m-tlbl,.m-gratlbl,.m-portlbl,.m-fclbl,.m-wind-lbl,.m-cur-lbl,.m-zonelbl,.m-exportlbl,.m-strlbl,.m-attr,.m-shiplbl,.m-shipsub){paint-order:stroke;stroke:#fff;stroke-width:3.5px;stroke-linejoin:round}:root[data-theme=light] .m-tlbl{fill:var(--ink);font-size:11px;font-weight:600}:root[data-theme=light] .m-tlbl.big{font-size:12.5px;font-weight:700}:root[data-theme=light] .m-tlbl.requested{fill:#8a5200}:root[data-theme=light] .m-tlbl.locked{fill:#1b6b2c}:root[data-theme=light] .m-gratlbl{fill:var(--ink);opacity:.8;font-size:10.5px}:root[data-theme=light] .m-inset-sub{fill:#33405a}:root[data-theme=light] .m-zonelbl{font-weight:700}:root[data-theme=light] .m-strlbl{font-weight:800}:root[data-theme=light] .m-strlbl.str-1{fill:#b02525}:root[data-theme=light] .m-strlbl.str-2{fill:#b5470b}:root[data-theme=light] .m-strlbl.str-3{fill:#466e09}:root[data-theme=light] .m-strlbl.str-4{fill:#343a40}:root[data-theme=light] .m-strlbl.str-5{fill:#1864ab}:root[data-theme=light] .m-strlbl.str-6{fill:#8f2fa8}:root[data-theme=light] .m-strlbl.str-7{fill:#087054}:root[data-theme=light] .m-strlbl.str-8{fill:#8f5b00}:root[data-theme=light] .m-shiplbl{fill:#b8380a}.m-iso{fill:none;stroke:var(--iso);stroke-width:.8;stroke-opacity:.45;stroke-linejoin:round;pointer-events:none}.m-iso.major{stroke-width:1.4;stroke-opacity:.75}.m-isolbl{fill:var(--iso-text);font-size:10px;font-weight:600;text-anchor:middle;dominant-baseline:central;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.m-isolbl.major{font-weight:800}:root[data-theme=light] .m-isolbl{stroke:#fff;stroke-width:3.5px;font-size:10.5px}.m-shade{opacity:.85;pointer-events:none}:root:not([data-theme=light]) .m-shade{opacity:.5}.m-shade.survey{opacity:.95}:root:not([data-theme=light]) .m-shade.survey{opacity:.85}.m-depthramp{display:inline-block;width:64px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px;background:linear-gradient(90deg,#e0f3fb,#a6d4ec 25%,#5aa5d6,#2c6fb2 75%,#0b3d80)}.m-cpslbl{fill:var(--ink);font-size:10.5px;font-weight:700;paint-order:stroke;stroke:var(--bg);stroke-width:3px;stroke-linejoin:round;cursor:pointer}.m-cpslbl.stab{fill:var(--warn-text)}.m-cpslbl.done{fill:var(--ok-text)}.m-cpslbl.sel{text-decoration:underline}.m-cpsdep{fill:var(--iso-text);font-weight:600}:root[data-theme=light] .m-cpslbl{stroke:#fff;stroke-width:3.5px}:root[data-theme=light] .m-cpslbl.stab{fill:#8a5200}:root[data-theme=light] .m-cpslbl.done{fill:#1b6b2c}@media(max-width:900px){.kpi,.pills button,.m-chk,.lk-btn,.wa,.m-cpsctl .pills button,.reg select,.field input,.field select,.seg button,.daybtns button,.hourrow button,.chip,.file-btn,.t-nav button:not(.link),.m-infox{min-height:44px}.m-infox{width:44px}.m-zoom button{width:44px;height:44px}.meta .ext,.meta .link{padding:12px 0;margin:-12px 0}.m-cpsctl{flex-basis:100%;flex-wrap:wrap;row-gap:6px;border:0;background:none;padding:0;min-width:0}.m-cpsctl label{padding:6px 10px 6px 6px;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--surface-2);min-height:44px}.m-cpsctl .pills{display:flex;flex:1 1 100%;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0}.m-cpsctl .pills::-webkit-scrollbar{display:none}.m-cpsctl .pills button{white-space:nowrap;flex:none}}@media(max-width:560px){.map-info:not(.sel){display:none}.drop{min-height:0;padding:18px 14px}.f-hour{flex-basis:100%}.f-hour .hourrow select{flex:1 1 auto}}@media(max-width:900px){.pg-top{position:sticky;top:0;z-index:4;padding:10px 14px}.pg-top .card-head{gap:6px}.pg-top .pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;margin:0 -14px;padding:0 14px}.pg-top .pills::-webkit-scrollbar{display:none}.pg-top .pills button{white-space:nowrap;flex:none}.pg-top .pg-total{margin:6px 0 0;font-size:13.5px}.pg-total .pg-bar{display:none}}.skel,.kpi.skel{position:relative;overflow:hidden;color:transparent!important;background:var(--surface-2);border-color:transparent}.kpi.skel{width:118px;height:32px}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,var(--line) 50%,transparent);transform:translate(-100%);animation:shimmer 1.4s infinite}tr.skel td span{display:block;height:12px;border-radius:6px;background:var(--surface-3)}.pg-skel{height:64px;margin-bottom:14px;border-radius:var(--r-card);border:1px solid transparent}.empty{margin:4px 0;color:var(--muted)}.m-missing{display:inline;margin-left:6px}.m-missing>summary{display:inline;color:var(--link);cursor:pointer}.m-missing>summary:before{content:none}@keyframes shimmer{to{transform:translate(100%)}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:no-preference){.rail a,.rail .rbtn,.pills button,.kpi,.file-btn,.chip,.m-chk,.m-chk input,.m-chk input:after,.drop-label,.link,.lk-editing,.seg button,.daybtns button,.hourrow button,.stepper button,.t-nav button,.m-zoom button,.lk-btn,.pg-tick,.lk-st,.sw span,.sw span:after{transition:background-color var(--t),border-color var(--t),color var(--t),box-shadow var(--t),transform var(--t),outline-color var(--t)}.pills button:active,.file-btn:active,.seg button:active,.daybtns button:active,.hourrow button:active,.stepper button:not(.link):active,.t-nav button:active,.lk-btn:active,.chip:active,.rail a:active,.rail .rbtn:active{transform:scale(.97)}.toast{animation:toast-in .22s ease-out}.map-info.sel{animation:rise .18s ease-out}.m-chk input[type=checkbox]:after{transition:transform .16s cubic-bezier(.2,.8,.2,1.2)}::view-transition-old(root),::view-transition-new(root){animation-duration:.12s}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}
