:root{--neutral-0: #ffffff;--neutral-50: #f6f7f8;--neutral-100: #eef0f2;--neutral-150: #e4e6e9;--neutral-200: #d2d5d9;--neutral-300: #b4b7be;--neutral-400: #8f929a;--neutral-450: #7d8088;--neutral-500: #62656c;--neutral-600: #4a4d54;--neutral-700: #2e3035;--neutral-800: #1c1d20;--neutral-850: #151618;--neutral-900: #0f1012;--neutral-950: #0b0c0e;--neutral-1000: #08090a;--brand-blue: #3366ff;--over: #f52415;--font-sans: "Inter Variable", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "Geist Mono Variable", "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--font-features-sans: "calt", "cv05", "ss03";--font-features-mono: "tnum", "zero";--type-display-size: clamp(2.25rem, 1.45rem + 3.6vw, 4rem);--type-display-line: 1;--type-display-tracking: -.025em;--type-display-weight: 500;--type-h1-size: clamp(2rem, 1.45rem + 2.2vw, 3rem);--type-h1-line: 1.05;--type-h1-tracking: -.022em;--type-h1-weight: 500;--type-h2-size: clamp(1.625rem, 1.4rem + .95vw, 2.125rem);--type-h2-line: 1.12;--type-h2-tracking: -.02em;--type-h2-weight: 500;--type-h3-size: 1.25rem;--type-h3-line: 1.3;--type-h3-tracking: -.018em;--type-h3-weight: 500;--type-h4-size: .9375rem;--type-h4-line: 1.4;--type-h4-tracking: -.011em;--type-h4-weight: 550;--type-lead-size: clamp(1rem, .95rem + .3vw, 1.125rem);--type-lead-line: 1.55;--type-lead-tracking: -.012em;--type-lead-weight: 400;--type-body-size: .9375rem;--type-body-line: 1.6;--type-body-tracking: -.009em;--type-body-weight: 400;--type-ui-size: .8125rem;--type-ui-line: 1.25rem;--type-ui-tracking: -.004em;--type-ui-weight: 500;--type-small-size: .75rem;--type-small-line: 1rem;--type-small-tracking: 0em;--type-small-weight: 400;--type-label-size: .6875rem;--type-label-line: 1rem;--type-label-tracking: .06em;--type-label-weight: 500;--type-mono-size: .8125rem;--type-mono-line: 1.25rem;--type-mono-tracking: -.01em;--type-mono-weight: 400;--type-mono-word-spacing: -.22em;--type-mono-sm-size: .75rem;--type-mono-sm-line: 1rem;--spacing: .25rem;--space-0: 0px;--space-px: 1px;--space-0_5: 2px;--space-1: 4px;--space-1_5: 6px;--space-2: 8px;--space-2_5: 10px;--space-3: 12px;--space-3_5: 14px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--space-32: 128px;--gutter: clamp(16px, 4vw, 32px);--section-y: clamp(64px, 9vw, 128px);--container: 1200px;--container-narrow: 960px;--container-prose: 640px;--radius: .5rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 999px;--radius-button: var(--radius-full);--control-sm: 32px;--control-md: 40px;--control-lg: 48px;--touch-min: 44px;--header-h: 60px;--appbar-h: 52px;--rail-w: 64px;--bottombar-h: 60px;--duration-fast: .1s;--duration-base: .16s;--duration-slow: .24s;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--z-base: 0;--z-raised: 1;--z-sticky: 100;--z-rail: 200;--z-header: 300;--z-popover: 400;--z-scrim: 500;--z-dialog: 600;--z-toast: 700;--z-tooltip: 800;--ring-width: 2px;--ring-offset: 2px}:root,[data-theme=dark]{color-scheme:dark;--background: var(--neutral-1000);--card: var(--neutral-900);--popover: var(--neutral-850);--muted: var(--neutral-850);--secondary: var(--neutral-800);--accent: var(--neutral-800);--surface-inset: #060607;--raised: #26282c;--field: rgba(255, 255, 255, .03);--foreground: var(--neutral-50);--foreground-secondary: #c9ccd1;--muted-foreground: #9396a0;--faint-foreground: #868992;--card-foreground: var(--neutral-50);--popover-foreground: var(--neutral-50);--secondary-foreground: var(--neutral-50);--accent-foreground: var(--neutral-50);--border: rgba(255, 255, 255, .08);--border-soft: rgba(255, 255, 255, .05);--border-strong: rgba(255, 255, 255, .2);--input: #666971;--highlight: rgba(255, 255, 255, .06);--hover: rgba(255, 255, 255, .05);--pressed: rgba(255, 255, 255, .09);--active: rgba(255, 255, 255, .15);--primary: #e8e9eb;--primary-hover: var(--neutral-0);--primary-active: #c9ccd1;--primary-foreground: var(--neutral-1000);--brand: var(--brand-blue);--brand-hover: #4d7aff;--brand-foreground: var(--neutral-0);--brand-text: #7b9cff;--brand-muted: rgba(51, 102, 255, .16);--brand-border: rgba(92, 133, 255, .5);--ring: #5c85ff;--ok: #34c979;--ok-foreground: #62d67f;--ok-muted: rgba(52, 201, 121, .13);--ok-border: rgba(52, 201, 121, .32);--warning: #ffc21a;--warning-foreground: #f7b84a;--warning-muted: rgba(255, 194, 26, .12);--warning-border: rgba(255, 194, 26, .32);--over-foreground: #ff6f61;--over-muted: rgba(245, 36, 21, .16);--over-border: rgba(245, 36, 21, .5);--info: #3d9bf0;--info-foreground: #6cb6f7;--info-muted: rgba(61, 155, 240, .14);--info-border: rgba(61, 155, 240, .34);--destructive: #d92015;--destructive-hover: #b81508;--destructive-active: #9a1106;--destructive-foreground: var(--neutral-0);--destructive-text: #ff6f61;--scrim: rgba(0, 0, 0, .62);--header-bg: rgba(8, 9, 10, .78);--appbar-bg: rgba(8, 9, 10, .94);--glow: rgba(255, 255, 255, .07);--glow-brand: rgba(51, 102, 255, .22);--shadow-float: 0 0 0 1px rgba(255, 255, 255, .1), 0 16px 48px rgba(0, 0, 0, .55);--skeleton: rgba(255, 255, 255, .06);--skeleton-shine: rgba(255, 255, 255, .11);--chart-1: #c9ccd1;--chart-2: #7b9cff;--chart-3: #9396a0;--chart-4: #62656c;--chart-5: #4a4d54;--chart-grid: rgba(255, 255, 255, .07);--sidebar: var(--neutral-950);--sidebar-foreground: #c9ccd1;--sidebar-primary: #e8e9eb;--sidebar-primary-foreground: var(--neutral-1000);--sidebar-accent: var(--neutral-800);--sidebar-accent-foreground: var(--neutral-50);--sidebar-border: rgba(255, 255, 255, .08);--sidebar-ring: #5c85ff}[data-theme=light]{color-scheme:light;--background: var(--neutral-50);--card: var(--neutral-0);--popover: var(--neutral-0);--muted: var(--neutral-100);--secondary: var(--neutral-150);--accent: var(--neutral-150);--surface-inset: var(--neutral-100);--raised: var(--neutral-0);--field: var(--neutral-0);--foreground: var(--neutral-950);--foreground-secondary: #33363c;--muted-foreground: #54575e;--faint-foreground: #63666d;--card-foreground: var(--neutral-950);--popover-foreground: var(--neutral-950);--secondary-foreground: var(--neutral-950);--accent-foreground: var(--neutral-950);--border: rgba(11, 12, 14, .14);--border-soft: rgba(11, 12, 14, .1);--border-strong: rgba(11, 12, 14, .34);--input: var(--neutral-450);--highlight: rgba(255, 255, 255, .7);--hover: rgba(11, 12, 14, .05);--pressed: rgba(11, 12, 14, .09);--active: rgba(11, 12, 14, .15);--primary: var(--neutral-950);--primary-hover: var(--neutral-700);--primary-active: #4a4d54;--primary-foreground: var(--neutral-0);--brand: var(--brand-blue);--brand-hover: #2452e6;--brand-foreground: var(--neutral-0);--brand-text: #2148d9;--brand-muted: rgba(51, 102, 255, .1);--brand-border: rgba(51, 102, 255, .45);--ring: #3366ff;--ok: #147a52;--ok-foreground: #14622a;--ok-muted: rgba(20, 122, 82, .11);--ok-border: rgba(20, 122, 82, .38);--warning: #b86a00;--warning-foreground: #7c4700;--warning-muted: rgba(214, 137, 0, .14);--warning-border: rgba(184, 106, 0, .42);--over-foreground: #b81508;--over-muted: rgba(245, 36, 21, .09);--over-border: rgba(245, 36, 21, .45);--info: #1670cf;--info-foreground: #0f55a3;--info-muted: rgba(22, 112, 207, .1);--info-border: rgba(22, 112, 207, .38);--destructive: #d92015;--destructive-hover: #b81508;--destructive-active: #9a1106;--destructive-foreground: var(--neutral-0);--destructive-text: #b81508;--scrim: rgba(11, 12, 14, .38);--header-bg: rgba(246, 247, 248, .8);--appbar-bg: rgba(246, 247, 248, .95);--glow: rgba(255, 255, 255, .9);--glow-brand: rgba(51, 102, 255, .12);--shadow-float: 0 0 0 1px rgba(11, 12, 14, .12), 0 16px 40px rgba(11, 12, 14, .14);--skeleton: rgba(11, 12, 14, .06);--skeleton-shine: rgba(11, 12, 14, .11);--chart-1: #33363c;--chart-2: #2148d9;--chart-3: #63666d;--chart-4: #8f929a;--chart-5: #b4b7be;--chart-grid: rgba(11, 12, 14, .09);--sidebar: var(--neutral-0);--sidebar-foreground: #33363c;--sidebar-primary: var(--neutral-950);--sidebar-primary-foreground: var(--neutral-0);--sidebar-accent: var(--neutral-150);--sidebar-accent-foreground: var(--neutral-950);--sidebar-border: rgba(11, 12, 14, .14);--sidebar-ring: #3366ff}@media(pointer:coarse){:root{--control-sm: 44px;--control-md: 44px}}@media(prefers-reduced-motion:reduce){:root{--duration-fast: 0ms;--duration-base: 0ms;--duration-slow: 0ms}}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/inter-latin-ext-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/geist-mono-latin-wght-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fonts/geist-mono-latin-ext-wght-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:Plus Jakarta Sans;font-weight:500;src:url(/assets/fonts/pjs-500.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-weight:600;src:url(/assets/fonts/pjs-600.woff2) format("woff2")}@font-face{font-family:Plus Jakarta Sans;font-weight:700;src:url(/assets/fonts/pjs-700.woff2) format("woff2")}body>div[style*="-20000px"] text{font-family:Plus Jakarta Sans,sans-serif;letter-spacing:0;word-spacing:0}:root{--blue: var(--brand);--blue-2: var(--brand-hover);--sky: var(--foreground-secondary);--bg: var(--background);--surface: var(--card);--surface-2: var(--neutral-850);--surface-3: var(--secondary);--ink: var(--foreground);--muted: var(--muted-foreground);--muted-2: var(--faint-foreground);--line: var(--border);--line-soft: var(--border-soft);--line-strong: var(--border-strong);--accent: var(--brand);--accent-ink: var(--brand-foreground);--accent-text: var(--brand-text);--link: var(--brand-text);--accent-fill: var(--brand-muted);--accent-ring: var(--brand-border);--ok-text: var(--ok-foreground);--ok-fill: var(--ok-muted);--ok-fill-strong: var(--ok-border);--viv-fill: var(--ok-muted);--warn-text: var(--warning-foreground);--warn-bg: var(--warning-muted);--stab: var(--warning);--stab-text: var(--warning-foreground);--win: var(--brand-muted);--win-edge: var(--brand-border);--notice: var(--info-foreground);--wind: var(--chart-1);--wave: var(--chart-1);--current: var(--chart-2);--tide: var(--chart-2);--turbine: var(--foreground);--land: var(--secondary);--land-edge: var(--border-strong);--iso: var(--faint-foreground);--iso-text: var(--muted-foreground);--golden: var(--foreground);--bluehr: var(--muted-foreground);--glass: var(--appbar-bg);--shadow: var(--shadow-float);--night: rgba(0, 0, 0, .5);--r-card: var(--radius-lg);--r-ctl: var(--radius-md);--r-pill: var(--radius-full);--t: var(--duration-base) var(--ease-out);--bad: #ff8a4c;--bad-text: #ffa877;--bad-bg: rgba(255, 138, 76, .13);--bad-fill: rgba(255, 138, 76, .18)}:root[data-theme=light]{--surface-2: var(--neutral-100);--night: rgba(11, 12, 14, .1);--bad: #d9480f;--bad-text: #8a2500;--bad-bg: rgba(217, 72, 15, .1);--bad-fill: rgba(217, 72, 15, .22)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font:400 14px/1.45 var(--font-sans);font-feature-settings:var(--font-features-sans);-webkit-font-smoothing:antialiased}h1,h2{margin:0;letter-spacing:-.011em}h2{font-size:15px;font-weight:550;display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px}b,strong{font-weight:600}a{color:var(--link);text-underline-offset:3px}code,svg text,.clock,.kpi b,.num,.cnt,.big,.facts dd,input[type=number],.meta .file,.tides td,.steps td,.sh-meas-table td,.tile .tv,.u-n,.tag.cps,.tag.crs,.tag.sh-ref,.sh-cm-ref,.pg-id,.pg-c,.sh-meas-live,.sh-meas-scale,.rail-badge,#turbines,#inviteUrl,th{font-family:var(--font-mono);font-feature-settings:var(--font-features-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--type-mono-tracking);word-spacing:var(--type-mono-word-spacing)}.num{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--line-strong);background:var(--hover);color:var(--ink);font-size:11px;font-weight:500}.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-decoration-color:var(--brand-border);text-underline-offset:3px}.link:hover{text-decoration-color:currentColor}a:not(.file-btn):active,.link:active,summary:active,.sh-name:active,.tag.sh-ref:active{opacity:.7}.badtxt{color:var(--bad-text);font-weight:600}.oktxt{color:var(--ok-text);font-weight:600}.warntxt{color:var(--warn-text);font-weight:600}svg.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex:none}:focus-visible,label.file-btn:has(:focus-visible){outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset)}:focus:not(:focus-visible){outline:none}:is(.tbl-wrap,.t-wrap,.kpis,.pills,.seg,.sh-cm-list,.rail,.map-info,.dlg,.pl-scroll) :focus-visible,:is(input,select,textarea):focus-visible{outline-offset:-2px}:disabled,[aria-disabled=true]{opacity:.45;cursor:not-allowed}button:disabled,[aria-disabled=true]{pointer-events:none}.file-btn,.lk-btn,.hourrow button:not(.file-btn),.stepper button:not(.link),.t-nav button:not(.link),.toast button,.m-zoom button,.m-infox{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:var(--control-md);max-width:100%;padding:6px 16px;border:1px solid var(--line-strong);border-radius:var(--radius-button);background:var(--hover);color:var(--ink);box-shadow:inset 0 1px 0 var(--highlight);font-size:14px;line-height:1.2;font-weight:500;text-align:center;text-decoration:none;cursor:pointer;user-select:none}:is(.lk-btn,.hourrow button:not(.file-btn),.stepper button:not(.link),.t-nav button:not(.link),.toast button,.m-zoom button,.m-infox):hover{background:var(--pressed)}:is(.lk-btn,.hourrow button:not(.file-btn),.stepper button:not(.link),.t-nav button:not(.link),.toast button,.m-zoom button,.m-infox):active{background:var(--active)}.file-btn{background:var(--primary);border-color:transparent;color:var(--primary-foreground);box-shadow:none}.file-btn:hover{background:var(--primary-hover)}.file-btn:active{background:var(--primary-active)}.file-btn .ico,.lk-btn .ico{width:16px;height:16px;margin-right:4px}.lk-btn{min-height:var(--control-sm);padding:4px 12px;font-size:13px}input:not([type=checkbox],[type=radio],[type=file]),select,textarea{min-height:var(--control-md);max-width:100%;padding:6px 12px;border:1px solid var(--input);border-radius:var(--radius-md);background:var(--field);color:var(--ink);font:inherit}:is(input,select,textarea):hover{border-color:var(--muted)}:is(input,select,textarea)::placeholder{color:var(--muted-2);opacity:1}:is(input,select,textarea,.sh-seg)[aria-invalid]{border-color:var(--destructive)!important;outline-color:var(--destructive)}.seg{display:inline-flex;align-self:flex-start;flex-wrap:wrap;gap:2px;max-width:100%;padding:2px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface-2)}.seg button{min-height:26px;padding:0 10px;border:0;border-radius:5px;background:transparent;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap}.seg button:hover{color:var(--ink)}.seg button:active{background:var(--pressed)}.seg button:is(.on,[aria-pressed=true]){background:var(--raised);color:var(--ink);box-shadow:inset 0 1px 0 var(--highlight),0 0 0 1px var(--line)}.pills button,.daybtns button,button.tag,.sh-new{display:inline-flex;align-items:center;gap:6px;min-height:var(--control-sm);padding:0 12px;border:1px solid var(--line);border-radius:var(--radius-full);background:transparent;color:var(--muted);font-size:13px;font-weight:500;white-space:nowrap;cursor:pointer}:is(.pills button,.daybtns button,button.tag,.sh-new):hover{color:var(--ink);border-color:var(--line-strong);background:var(--hover)}:is(.pills button,.daybtns button,button.tag,.sh-new):active{background:var(--pressed)}:is(.pills button,.daybtns button,button.tag,.sh-new).on{color:var(--accent-text);background:var(--accent-fill);border-color:var(--accent-ring)}.cnt{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--surface-3);color:var(--ink);font-size:11px;font-weight:500}.on>.cnt,#shUpOpen .cnt{background:var(--accent);color:var(--accent-ink)}.m-chk input[type=checkbox],.sw span{appearance:none;-webkit-appearance:none;position:relative;flex:none;margin:0;width:34px;height:20px;border:1px solid var(--input);border-radius:var(--radius-full);background:var(--field);cursor:pointer}.m-chk input[type=checkbox]:after,.sw span:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--muted)}.m-chk input[type=checkbox]:checked,.sw input:checked+span{background:var(--accent);border-color:var(--accent)}.m-chk input[type=checkbox]:checked:after,.sw input:checked+span:after{transform:translate(14px);background:var(--accent-ink)}.m-chk input[type=checkbox]:active,.sw input:active+span{border-color:var(--ink)}.sw input:focus-visible+span{outline:var(--ring-width) solid var(--ring);outline-offset:var(--ring-offset)}.sw input:disabled+span{opacity:.45}.app{display:grid;grid-template-columns:var(--rail-w) minmax(0,1fr);min-height:100dvh}.rail{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 0;background:var(--sidebar);border-right:1px solid var(--sidebar-border);z-index:6}.rail .brand{display:grid;place-items:center;width:44px;height:44px;margin-bottom:10px;text-decoration:none}.brand .co{font-weight:600;letter-spacing:.02em;color:var(--ink)}.rail .brand .co{display:none}.logo{width:22px;height:22px;flex:none}.logo path{fill:var(--blue)}.rail .tabs{display:flex;flex-direction:column;align-items:center;gap:2px;margin:0;width:100%}:where(.rail,.rail-end) :is(a,.rbtn){position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:52px;height:46px;border-radius:var(--radius-md);color:var(--muted);text-decoration:none;font-size:10px;line-height:12px;font-weight:500;background:transparent;border:0;padding:0;white-space:nowrap}:where(.rail,.rail-end) :is(a,.rbtn):hover{color:var(--ink);background:var(--hover)}:where(.rail,.rail-end) :is(a,.rbtn):active{background:var(--pressed)}.rail a.on{color:var(--ink);background:var(--sidebar-accent)}.rail a.on:before{content:"";position:absolute;left:-6px;top:13px;bottom:13px;width:2px;border-radius:2px;background:var(--blue)}.rail-end{margin-top:auto;display:flex;flex-direction:column;gap:2px}.rail-badge{position:absolute;top:4px;right:6px;min-width:14px;height:14px;padding:0 3px;border-radius:var(--radius-full);background:var(--accent);color:var(--accent-ink);font-size:9px;line-height:14px;text-align:center}.shell{min-width:0;display:flex;flex-direction:column}.topbar{display:flex;flex-direction:column;min-width:0}.statusrow{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap;min-width:0;min-height:var(--appbar-h);padding:8px 16px;border-bottom:1px solid var(--line)}.pagerow,.topbar>.pagehead{display:flex;align-items:flex-end;gap:12px 24px;min-width:0;padding:16px 16px 0}.topbar>.pagehead{display:block}.pagehead{min-width:0;margin-right:auto}.pagehead h1{font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.02em;overflow-wrap:anywhere}.pagehead .pagesub{margin:0;font-size:13px;line-height:20px;color:var(--muted)}.clock{order:2;margin-left:auto;display:inline-flex;align-items:center;flex-wrap:wrap;gap:0 14px;font-size:12px;color:var(--muted)}.clock .ck-cell{display:inline-flex;align-items:baseline;gap:5px;white-space:nowrap}.clock b,.clock .ck-date{color:var(--ink);font-weight:500}.clock small{font-size:11px}.clock .ck-sun .ico{width:14px;height:14px;align-self:center}.kpis{display:flex;flex-wrap:wrap;gap:6px;min-width:0;flex:1 1 200px}.kpis:empty,.kpis[hidden]{display:none}.kpi{display:inline-flex;align-items:center;gap:8px;min-height:28px;padding:0 10px;border:1px solid var(--line);border-radius:var(--radius-sm);background:transparent;font-size:12px;color:var(--muted);white-space:nowrap;text-decoration:none}.kpi b{color:var(--ink);font-weight:500}.kpi .k-x{color:var(--muted)}.kpi .k-pend{color:var(--stab-text)}.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:6px;height:6px;border-radius:50%;background:var(--ok)}a.kpi:hover,button.kpi:hover{border-color:var(--line-strong);background:var(--hover)}a.kpi:active,button.kpi:active{background:var(--pressed)}.tile{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 12px;min-width:0}.tile .tl{font-size:12px;color:var(--muted)}.tile .tv{font-size:18px;line-height:24px;letter-spacing:-.03em;color:var(--ink);margin-top:2px;overflow-wrap:anywhere}.tile .tv small{font-size:12px;color:var(--muted)}.u-bar{fill:var(--chart-3)}.u-day:hover .u-bar,.u-day.sel .u-bar,.u-day:focus-visible .u-bar{fill:var(--ink)}.t-moon{display:none}:root[data-theme=light] .t-sun{display:none}:root[data-theme=light] .t-moon{display:block}.skip{position:absolute;left:12px;top:-80px;z-index:100;background:var(--primary);color:var(--primary-foreground);padding:0 16px;min-height:44px;display:inline-flex;align-items:center;border-radius:var(--radius-button);font-weight:500;text-decoration:none}.skip:focus{top:12px}main{width:100%;max-width:1280px;margin:0;padding:16px 16px 40px}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:16px;margin-bottom:16px;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:1px dashed var(--line-strong);border-radius:var(--r-card);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(--hover)}.drop-label:active{background:var(--pressed)}.drop-label p{margin:0}.drop>.muted{margin:0;max-width:560px}.drop svg{width:40px;height:40px;color:var(--muted)}details>summary{list-style:none;cursor:pointer}details>summary::-webkit-details-marker{display:none}.help>summary{display:flex;align-items:center;gap:10px}.help>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:500;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:2px dashed var(--ring);outline-offset:6px;border-radius:var(--r-card)}.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{min-height:var(--control-sm);padding:2px 8px;font-weight:500}.meta .file{font-size:12px;word-break:break-all}.meta .warn{flex-basis:100%;margin:4px 0 0}.warn,.note,.status,.sh-disclaimer{padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-md);font-size:13px;line-height:20px;color:var(--foreground-secondary)}.warn{background:color-mix(in srgb,var(--destructive) 12%,transparent);border-color:color-mix(in srgb,var(--destructive) 45%,transparent);color:var(--destructive-text)}.status.ok{background:var(--ok-fill);border-color:var(--ok-border);color:var(--ok-text)}.status.bad{background:var(--bad-bg);border-color:color-mix(in srgb,var(--bad) 45%,transparent);color:var(--bad-text)}.status.warn,.note,.sh-disclaimer{background:var(--warn-bg);border-color:var(--warning-border);color:var(--warn-text)}.win-fields{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;margin-top:10px}.field,.su-f{display:flex;flex-direction:column;gap:4px;min-width:0}.lbl,.su-f>span{font-size:13px;font-weight:500}.lbl small,.su-f small{color:var(--muted);font-weight:400}.su-f>small{font-size:12px}.field input[type=number]{width:84px}.daybtns{display:flex;flex-wrap:wrap;gap:4px}.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:has(>.muted){flex-wrap:wrap}.hourrow>.muted{flex:1 1 120px;min-width:0}.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);white-space:nowrap}.viv-pair input{min-width:0;flex:1 1 0}.viv-note{flex-basis:100%;margin:-4px 0 0;font-size:12px;color:var(--muted)}.settings-body{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 18px;padding:4px 0 2px}.local{margin:10px 0 4px;font-size:13px;font-weight:500}.hint{margin:4px 0 0;font-size:12px;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-family:var(--font-sans);font-size:11px;font-weight:500;word-spacing:0}.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:600;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-ws10{fill:none;stroke:var(--wind);stroke-width:1.2;stroke-dasharray:4 3;stroke-opacity:.8;pointer-events:none}.s-ws10t{fill:var(--muted);font-weight:400}.s-overline{fill:none;stroke:var(--over);stroke-width:2.6;stroke-linejoin:round;pointer-events:none}.s-overline.s10{stroke-width:1.8}.s-nogo{fill:var(--bad-fill);opacity:.45;pointer-events:none}.s-overfill{fill:var(--over);opacity:.3;pointer-events:none}.s-opstrack{fill:var(--muted);opacity:.22}.s-opsbar{fill:var(--over)}.s-barlbl{fill:var(--muted);font-size:9.5px;text-anchor:end}.s-limit{stroke:var(--over);stroke-width:1.2;stroke-dasharray:6 3;pointer-events:none}.s-limitlbl{fill:var(--over-foreground);font-size:10.5px;font-weight:600;text-anchor:end;pointer-events:none;paint-order:stroke;stroke:var(--surface);stroke-width:3px}.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-sn{pointer-events:none;fill:var(--tide)}.s-sn.spring{fill-opacity:.17}.s-sn.neap{fill-opacity:.05}.s-snpeak{stroke:var(--tide);stroke-width:1;stroke-dasharray:3 3;pointer-events:none}.s-snlbl{font-size:10.5px;font-weight:600;text-anchor:middle;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round;pointer-events:none}.s-snlbl.neap{fill:var(--muted);font-weight:600}.s-curnote{fill:var(--muted);font-family:var(--font-sans);font-size:11px;word-spacing:0;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:600;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:12px;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(--popover);stroke:var(--line-strong)}.s-tip text{fill:var(--ink);font-size:12px}.s-tip text.bad{fill:var(--bad-text);font-weight:600}.s-tip text.over{fill:var(--over-foreground);font-weight:600}.overtxt{color:var(--over-foreground);font-weight:600}.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}#dial:focus-visible{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:600;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:600;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}.panel{min-width:0}.hd-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.big{font-size:64px;font-weight:500;line-height:1;letter-spacing:-.04em;color:var(--muted)}.big.ok{color:var(--ok-text)}.big.bad{color:var(--bad-text)}.hd-row:has(.big[hidden]){display:none}.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:20px}.stepper input{width:96px;height:44px;text-align:center;font-family:var(--font-mono);font-size:20px}.stepper .link{margin-left:8px;font-size:13px}.status{margin:0 0 12px;font-weight:500}.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:13px}.facts dd{margin:0;text-align:right}.facts dd{min-width:0}#lims .lim-run{display:inline-block;margin-left:6px}#lims .lim-next{display:block;margin-top:6px}#lims .chip{white-space:normal;text-align:center;max-width:100%;margin-left:0}.chip{border:1px solid var(--ok-border);background:var(--ok-fill);color:var(--ok-text);border-radius:var(--radius-full);padding:4px 12px;font-family:var(--font-mono);font-weight:500;min-height:var(--control-sm);margin-left:4px}.chip:hover{border-color:var(--ok)}.chip:active{background:var(--ok-border)}.chip small{font-family:var(--font-sans);font-weight:400;color:var(--muted)}.chip.on{background:var(--ok);border-color:var(--ok);color:var(--card)}.chip.on small{color:inherit}.note{margin:8px 0 0}.steps{margin-top:12px;font-size:13px}.steps summary{cursor:pointer;color:var(--link);padding:6px 0}.tbl-wrap{max-height:280px;overflow:auto}.steps table{border-collapse:collapse;width:100%}th{font-size:11px;line-height:16px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.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{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:12px;color:var(--muted);text-align:center}.dial-info.on{color:var(--ink);font-weight:500;font-size:13px}.steps tr.free td{color:var(--muted)}.steps tr td.over{color:var(--over-foreground);font-weight:600}.foot{font-size:12px;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 16px 32px;border-top:1px solid var(--line);font-size:12px;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:600;letter-spacing:.02em}.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{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}.legend{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12px;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:12px;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:16px;left:50%;transform:translate(-50%);z-index:20;white-space:pre-line;display:flex;gap:12px;align-items:center;background:var(--popover);color:var(--popover-foreground);padding:12px 14px;border-radius:var(--radius-lg);box-shadow:var(--shadow-float),inset 0 1px 0 var(--highlight);font-size:13px;line-height:20px;max-width:calc(100% - 32px)}.toast button{min-height:var(--control-sm);padding:4px 12px;font-size:13px}.toast.bad{color:var(--destructive-text)}@media(max-width:820px){.heading-grid{grid-template-columns:minmax(0,1fr)}#dial{max-width:380px;margin:0 auto}}@media(max-width:900px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:fixed;inset:auto 0 0;height:auto;flex-direction:row;justify-content:space-around;gap:0;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-right:0;border-top:1px solid var(--sidebar-border)}.rail .brand{display:none}.rail .tabs{flex-direction:row;justify-content:space-around;width:auto;flex:1 1 auto;gap:0;min-width:0}.rail a,.rail .rbtn{width:auto;min-width:0;height:48px;flex:1 1 0}.rail a.on:before{inset:-7px 18px auto;width:auto;height:2px}.rail-end{position:fixed;top:calc(8px + env(safe-area-inset-top));right:8px;margin:0;flex-direction:row;gap:0;z-index:7;border-radius:var(--radius-md);background:var(--glass)}.rail-end .rbtn span,.rail-end a span{display:none}.rail-end .rbtn,.rail-end a{width:44px;flex:0 0 auto;height:44px}.shell{padding-bottom:calc(var(--bottombar-h) + env(safe-area-inset-bottom))}.pagerow{order:0;flex-wrap:wrap;align-items:center;padding:8px 12px 0}.statusrow{order:1;flex-direction:column;align-items:stretch;min-height:0;padding:8px 12px;border-bottom:0}.pagehead{flex:1 1 100%;padding-right:140px;min-height:44px;display:flex;flex-direction:column;justify-content:center}.pagerow{position:relative}.pagerow>.rail-end{position:absolute}.topbar>.pagehead{padding:8px 60px 0 12px}.kpis{flex:0 0 auto;contain:inline-size;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -12px 0 0;padding:1px 12px 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}.clock{order:0;margin:0;justify-content:space-between}main{padding:12px 12px 28px}.site{padding:20px 12px 28px}.card{padding:12px}.big{font-size:52px}.toast{bottom:calc(var(--bottombar-h) + 12px + env(safe-area-inset-bottom))}}@media(pointer:coarse){input,select,textarea{font-size:16px!important}}#viewTides .status{margin:12px 0}.t-level{margin:-4px 0 6px;font-size:14px}.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;overflow:visible}.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:500;border-radius:var(--radius-xs);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:13px}.tides th,.tides td{padding:7px 10px;text-align:right;white-space:nowrap}.tides thead th{border-bottom:1px solid var(--line);vertical-align:bottom}.tides thead small{text-transform:none;letter-spacing:0}.tides .hw{text-align:left}.tides tr.dayrow th{text-align:left;color:var(--ink);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-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)}.lk-st,.t-tag{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px 0 7px;border:1px solid var(--line);border-radius:var(--radius-full);font:500 12px/20px var(--font-sans);letter-spacing:0;color:var(--foreground-secondary);white-space:nowrap}.lk-st:before,.t-tag:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.lk-st.requested{color:var(--warn-text);border-color:var(--warning-border);background:var(--warn-bg)}.lk-st.locked,.t-tag.open{color:var(--ok-text);border-color:var(--ok-border);background:var(--ok-fill)}.lk-st.released,.lk-st.done{color:var(--muted)}.lk-st.confirmed{color:var(--ink);border-color:var(--line-strong);background:var(--surface-3)}.lk-st.cancelled{color:var(--muted);text-decoration:line-through}.t-settings{margin:-4px 0 10px}.t-settings>summary{padding:4px 0}h2 small{font-weight:400;font-size:13px}.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:600}.light .lt-g,.light .lt-b{font-weight:500}.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:600}.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:100dvh;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{display:flex;align-items:center;gap:8px;margin-bottom:4px}.auth-card h1{font-size:20px;line-height:28px;font-weight:500;letter-spacing:-.02em}.auth-card .field input{width:100%}.auth-card .file-btn{text-align:center}.small{font-size:12px;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);border-radius:var(--radius-md);background:var(--ok-fill)}.invite-box p{margin:0 0 8px}.invite-box input{flex:1;min-width:0;font-size:12px}.users{border-collapse:collapse;width:100%;font-size:13px}.users th,.users td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);white-space:nowrap}.users th{border-bottom-color:var(--line)}.users tr.off td{color:var(--muted)}.users .acts{display:flex;gap:12px}.users .sh-sel{min-height:var(--control-sm);padding:2px 8px;font-size:13px}.hint.roles{margin:10px 0 0;padding-left:18px}.roles li{margin:2px 0}.users .danger,.lk-acts .danger,.link.danger{color:var(--destructive-text)}.users-wrap{max-height:none}.u-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}.u-chart{margin:6px 0 4px}.u-cap{font-size:12px;font-weight:500;margin-bottom:4px}.u-cap .muted{font-weight:400}#uChart{width:100%;height:150px;display:block}.u-grid{stroke:var(--chart-grid);stroke-width:1}.u-base{stroke:var(--line-strong);stroke-width:1}.u-bar.today{fill-opacity:.55}.u-hit{fill:transparent;cursor:pointer}.u-day:focus-visible{outline:none}.u-day:focus-visible .u-hit{stroke:var(--ring);stroke-width:2}.u-lbl{fill:var(--muted);font-size:10.5px}.u-lbl.y{text-anchor:end;dominant-baseline:central}.u-lbl.x{text-anchor:middle}.u-val{fill:var(--ink);font-size:10.5px;font-weight:600;text-anchor:middle}.users .u-n{text-align:right}.u-users tr.quiet td{color:var(--muted)}.u-users .u-name small{display:block;color:var(--muted);font-size:11.5px}.u-area{display:inline-block;margin:1px 4px 1px 0;padding:0 7px;border:1px solid var(--line);border-radius:var(--r-pill);font-size:11.5px;color:var(--foreground-secondary)}.u-area b{font-weight:600}.u-more{margin:4px 0 10px}.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:12px}.aud div{margin-top:4px;font-size:12px;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{min-height:var(--control-md)}.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}.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}.nt-h{margin:18px 0 2px;font-size:15px;font-weight:550}.nt-add input{flex:1;min-width:0}.win-fields .file-btn{align-self:flex-end}.locks{border-collapse:collapse;width:100%;font-size:13px}.locks th,.locks td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line-soft);vertical-align:top}.locks th{border-bottom-color:var(--line);white-space:nowrap}.locks tr.released td{color:var(--muted)}.lk-wrap{max-height:none}.lk-who{font-size:12px;line-height:1.5}.lk-acts{white-space:nowrap}.lk-acts>*+*{margin-left:10px}.lk-note{flex:1 1 220px}.lk-note input,.lk-note textarea{width:100%}.lk-note textarea{resize:vertical;line-height:1.4}.lk-note-cell{max-width:320px}.lk-hist summary{cursor:pointer;font-weight:550}.lk-submit{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.lk-editing{outline:var(--ring-width) solid var(--ring);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}#turbines{width:100%;font-size:13px;line-height:1.5;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:var(--r-card);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(--surface-inset)}.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:600}.m-tlbl.locked{fill:var(--ok-text);font-weight:600}.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:600;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:600;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.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}.map-info .facts dd{min-width:0;overflow-wrap:anywhere}.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:600;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:var(--control-sm);min-height:var(--control-sm);padding:0;border-radius:var(--radius-md);background:var(--popover);box-shadow:none;font-size:18px}.m-zoom button:hover{background:var(--surface-3)}.m-zoom button:active{background:var(--raised)}.m-zoom button[aria-pressed=true]{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:600;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:600;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 svg{display:block;margin:auto}.map-grid.map-fs{position:fixed;inset: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(--popover);border-radius:var(--r-card);padding:12px 14px;box-shadow:var(--shadow),inset 0 1px 0 var(--highlight);font-size:13px}.map-info:not(.sel){width:auto;max-width:min(360px,calc(100% - 24px));padding:7px 12px;font-size:12px;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{float:right;margin:-4px -6px 0 8px;width:var(--control-sm);min-height:var(--control-sm);padding:0;font-size:18px}@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;min-height:var(--control-sm);padding-right:8px;font-size:13px;color:var(--muted);cursor:pointer}.m-chk:has(input:checked){color:var(--ink)}.pills{display:inline-flex;flex-wrap:wrap;gap:4px}.m-cpsctl{padding-right:6px}.m-cpsctl .pills{margin-left:2px}.m-cpssum{margin-left:8px;font-size:12px;white-space:nowrap}.m-cpssum b{color:var(--ink)}.m-cpssum b.skipped{color:var(--info-foreground)}.m-cpssum b.pending{color:var(--stab-text)}.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:600;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:600;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:600;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:13px;font-weight:600;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:600}.m-visits{margin:6px 0 0;padding-left:18px;display:grid;gap:4px}.m-visits .link{font-weight:500}.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.skipped{fill:var(--info);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.hl .tv{color:var(--accent-text)}.dlg{border:0;border-radius:var(--radius-xl);background:var(--popover);color:var(--popover-foreground);padding:20px;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:var(--shadow-float),inset 0 1px 0 var(--highlight)}.dlg::backdrop{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.dlg h2{font-size:16px;line-height:24px}.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}.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:1px 8px;border-radius:var(--r-pill);border:1px solid var(--line);font-size:12px;font-weight:500;color:var(--foreground-secondary)}.tag.cps{font-family:var(--font-mono);font-size:12px}@media(pointer:coarse){button.tag{padding:3px 14px}}.sh-list{display:grid;gap:10px}.sh-item{display:grid;grid-template-columns:24px 120px minmax(0,1fr) auto;gap:12px 12px;align-items:start;margin:0}.sh-item.picked{border-color:var(--accent-ring);background:var(--accent-fill)}.sh-pick{display:grid;place-items:center;width:24px;height:84px;margin:0;cursor:pointer}.sh-pick input{width:20px;height:20px;margin:0;accent-color:var(--accent);cursor:pointer}.sh-bulk{position:sticky;bottom:12px;z-index:5;margin-top:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px;background:var(--popover);border:0;box-shadow:var(--shadow-float)}.sh-bulk .n{font-weight:500}.sh-bulk .sep{width:1px;height:22px;background:var(--line);margin:0 2px}.sh-bulk .msg{flex-basis:100%;margin:0;font-size:13px}.sh-thumb{width:120px;height:84px;border-radius:var(--radius-md);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-family:var(--font-mono);font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.sh-name{margin:0;font-size:15px;font-weight:550;word-break:break-word}.sh-meta{margin:3px 0 0;font-size:12px;color:var(--muted)}.sh-tags-row{margin:8px 0 0;display:flex;flex-wrap:wrap;gap:4px}.tag.more{border-style:dashed}.tag.phase,.tag.state{color:var(--ink)}.tag.phase.pre{border-color:var(--warning-border);background:var(--warn-bg)}.tag.phase.post{border-color:var(--ok-border);background:var(--ok-fill)}.tag.state.as-found{border-color:var(--line-strong)}.tag.state.as-left{border-color:var(--accent-ring);background:var(--accent-fill)}.sh-joberr{flex-basis:100%;margin:0}.sh-meta .tag{padding:0 8px;font-size:11.5px;vertical-align:1px}.sh-disclaimer{margin:0 0 12px;color:var(--ink)}.sh-disclaimer strong{color:var(--warn-text)}.sh-thumb img,.sh-prev{cursor:zoom-in}.dlg.sh-light{width:auto;max-width:96vw;padding:8px;background:var(--bg)}.dlg.sh-meas{width:min(1280px,calc(100vw - 24px));max-height:calc(100vh - 24px);padding:12px 14px;flex-direction:column;gap:10px}.dlg.sh-meas[open]{display:flex}.dlg.sh-meas.fs,.dlg.sh-meas:fullscreen{width:100vw;max-width:100vw;height:100vh;max-height:100vh;margin:0;border:0;border-radius:0;padding:10px 12px calc(10px + env(safe-area-inset-bottom))}.dlg.sh-meas.fs .sh-meas-canvas,.dlg.sh-meas:fullscreen .sh-meas-canvas{height:auto;min-height:0}.dlg.sh-meas.fs .sh-meas-body,.dlg.sh-meas:fullscreen .sh-meas-body{grid-template-rows:minmax(0,1fr)}.sh-meas-fsbtn{width:44px;padding:0}.sh-meas-fsbtn[aria-pressed=true]{border-color:var(--accent-ring);color:var(--accent-text)}.sh-meas-table{width:100%;border-collapse:collapse;font-size:12px}.sh-meas-table th,.sh-meas-table td{padding:4px 6px;text-align:right;border-bottom:1px solid var(--line-soft);white-space:nowrap}.sh-meas-table th:first-child,.sh-meas-table td:first-child{text-align:left}.sh-meas-table tr.hl td{background:var(--accent-fill)}.sh-meas-export{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.sh-meas-export select{flex:1 1 160px;font-size:13px}.sh-meas-long{width:100%;height:auto;display:block}@media(max-width:900px){.dlg.sh-meas.fs .sh-meas-body{grid-template-rows:minmax(0,1fr) auto}.dlg.sh-meas.fs .sh-meas-panel{max-height:40vh}}.sh-meas-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.sh-meas-head h2{font-size:15px}.sh-meas-head .small{flex:1 1 200px;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sh-meas-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:12px;min-height:0;flex:1 1 auto}.dlg.sh-meas:not(.measuring) .sh-meas-body{grid-template-columns:minmax(0,1fr)}.dlg.sh-meas:not(.measuring) .sh-meas-panel{display:none}.dlg.sh-meas:not(.measuring) .sh-meas-canvas canvas{cursor:grab}#shMeasToggle[aria-pressed=true]{background:var(--raised);color:var(--ink);box-shadow:0 0 0 1px var(--line-strong)}.sh-meas-canvas{position:relative;min-height:360px;height:min(70vh,720px);border-radius:var(--radius-md);overflow:hidden;background:var(--bg);border:1px solid var(--line)}.sh-meas-canvas canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none}.sh-meas-live{position:absolute;left:10px;top:10px;padding:6px 10px;border-radius:var(--radius-md);background:var(--glass);border:1px solid var(--line);font-size:12px;pointer-events:none;max-width:calc(100% - 80px)}.sh-meas-live b{color:var(--ink)}.sh-meas-zoom{right:10px;top:10px}.sh-meas-scale{position:absolute;right:12px;bottom:10px;padding:3px 8px;font-size:11.5px;color:var(--ink);background:var(--glass);border-radius:var(--radius-sm);border-bottom:3px solid var(--ink);pointer-events:none}.sh-meas-panel{overflow:auto;min-height:0;display:flex;flex-direction:column;gap:10px;font-size:13px}.sh-meas-panel h3{margin:0;font-size:13px;color:var(--muted);font-weight:600}.sh-meas-panel .facts dd{text-align:right}.sh-meas-panel .pt{border:1px solid var(--line);border-radius:var(--radius-md);padding:8px 10px;background:var(--surface-2)}.sh-meas-panel .pt .n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-size:11.5px;font-weight:600;margin-right:6px}.sh-meas-panel .pt .depth{font-family:var(--font-mono);font-size:17px;font-weight:500;margin:4px 0}.sh-meas-panel .pt .muted{font-size:12px}.sh-meas-panel .acts{display:flex;flex-wrap:wrap;gap:8px}.sh-meas-prof{width:100%;height:120px;display:block}.sh-meas-hint{margin:0;font-size:12px;color:var(--muted)}.sh-meas-tools{display:flex;flex-wrap:wrap}.sh-meas-tools button{flex:1 1 auto;font-size:12px;padding:6px 8px}.sh-meas-fence{width:100%;height:auto;display:block}.sh-meas-panel .facts dd input{min-height:28px;padding:2px 6px;text-align:right}@media(max-width:900px){.sh-meas-body{grid-template-columns:minmax(0,1fr)}.sh-meas-canvas{height:52vh;min-height:260px}.sh-meas-panel{max-height:36vh}}.sh-light img{display:block;max-width:calc(96vw - 16px);max-height:86vh;width:auto;height:auto;border-radius:var(--radius-md);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:var(--radius-xs);background:linear-gradient(90deg,#dc3c28,#fabe28,#b4e63c,#3ed692,#21acda,#2160c7,#171c63)}.sh-notes{margin:6px 0 0;font-size:13px}.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-new,.sh-pend{margin-left:10px;min-height:26px;padding:0 10px;font-size:12px}.sh-new:before,.sh-pend:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}.sh-pend{display:inline-flex;align-items:center;gap:6px;border-radius:var(--r-pill);border:1px solid var(--warning-border);background:var(--warn-bg);color:var(--warn-text);font-weight:500;cursor:pointer}.sh-pend:before{background:var(--stab)}.sh-pend:hover,.sh-pend.on{border-color:var(--stab)}.sh-pend:active{background:var(--warning-border)}.sh-pending{margin-bottom:10px}.sh-pend-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:8px}.sh-pend-head h2{margin:0;font-size:15px}.sh-pend-head .cnt{background:var(--warn-bg);color:var(--warn-text)}.sh-pend-head p{margin:0}.sh-pend-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.sh-pend-list li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:6px 0;border-top:1px solid var(--line)}.sh-pend-list li:first-child{border-top:0}.sh-pend-meta{flex:1 1 200px;color:var(--muted);font-size:13px}.sh-pend-meta b{color:var(--ink)}.sh-pend-list .lk-btn{margin:0}@media(max-width:560px){.sh-pend-list li{padding:8px 0}}@media(max-width:900px){#shCount{display:flex;flex-wrap:wrap;align-items:center;gap:6px 0}}.tag.new,.sh-cm-unread{padding:0 6px;border:1px solid var(--accent-ring);border-radius:var(--radius-xs);background:var(--accent-fill);color:var(--accent-text);font-family:var(--font-mono);font-size:10px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}.dlg.sh-updlg{width:min(760px,calc(100vw - 32px))}.dlg.sh-updlg .sh-queue{margin:10px 0 0}.dlg.sh-updlg .sh-meas-head .small{white-space:normal;overflow:visible}.dlg.sh-updlg .sh-meas-head #shUpHide,.sh-bulk .danger{margin-left:auto}.sh-cpspick{display:flex;flex-direction:column;gap:6px;flex:1 1 100%}.sh-cpschips{display:flex;flex-wrap:wrap;gap:4px;min-height:24px}.sh-derived{flex:1 1 100%;margin:0;font-size:13px;color:var(--muted)}.sh-derived b{color:var(--ink)}.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:12px;color:var(--muted)}.sh-jobstate.bad,.pg-err,.sh-cm-left.bad{color:var(--destructive-text);font-weight:500}.sh-jobform{margin-top:10px}.sh-tagf{flex:1 1 240px}.sh-onmap{flex:1 1 100%;margin-top:4px;font-size:13px}.sh-tagbox{display:flex;flex-wrap:wrap;gap:4px;align-items:center;padding:4px 6px;border:1px solid var(--input);border-radius:var(--r-ctl);background:var(--field);min-height:var(--control-md);cursor:text}.sh-tagbox:focus-within{outline:var(--ring-width) solid var(--ring);outline-offset:-1px}.sh-tagbox input{flex:1 1 80px;min-width:60px;min-height:0;border:0;background:transparent;padding:4px;outline:none}.sh-tagbox.mono .tag{font-family:var(--font-mono);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:var(--radius-md);border:1px solid var(--line-soft);background:var(--surface-2)}#shDlg{width:min(720px,calc(100vw - 32px))}.sh-name{cursor:pointer}.dlg.rpt{width:min(760px,calc(100vw - 32px))}.rpt-wrap{margin:10px 0}.rpt-wrap img{display:block;width:100%;height:auto;border-radius:var(--radius-md);border:1px solid var(--line-soft)}.rpt-skel{height:420px;border-radius:var(--radius-md)}.ov-btn{display:inline-flex;align-items:center;gap:6px;margin-left:auto}.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-surveyfp.pin{stroke:#b197fc;stroke-opacity:1;stroke-dasharray:none;fill:#b197fc59}.m-surveyfp.pin:hover,.m-surveyfp.pin.sel{stroke:var(--accent);stroke-width:2}.m-footlbl.sv{fill:#c9bcff;pointer-events:none}.m-edge{cursor:pointer}.m-edge-hit{fill:transparent}.m-edge-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}.m-edge-arrow{fill:var(--accent-ink)}.m-edge.stale .m-edge-dot{fill:var(--muted)}.m-edge-lbl{font-size:12px;font-weight:600;fill:var(--ink);paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}.m-edge-sub{font-size:11px;font-weight:500;fill:var(--muted)}.m-edge:focus{outline:none}.m-edge:focus-visible .m-edge-dot,.m-edge:hover .m-edge-dot{stroke:var(--accent-ring);stroke-width:4}.m-away{font-weight:600}.m-surveypin-lead{stroke:#b197fc;stroke-width:1.5;pointer-events:none}:root[data-theme=light] .m-surveypin-lead{stroke:#7048e8}:root[data-theme=light] .m-surveyfp.pin{stroke:#7048e8;fill:#7048e84d}:root[data-theme=light] .m-footlbl.sv{fill:#4c2fb8}.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-bulk{bottom:calc(var(--bottombar-h) + 8px + env(safe-area-inset-bottom))}.sh-item{grid-template-columns:24px 84px minmax(0,1fr)}.sh-thumb{width:84px;height:64px}.sh-pick{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:14px;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:var(--radius-xs);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-bar span.skipped{background:var(--info)}.pg-c{white-space:nowrap}.pg-head{flex-wrap:wrap;display:flex;justify-content:space-between;align-items:baseline;gap:10px}.pg-head h2{margin-right:auto;white-space:nowrap}.pg-count{font-size:13px}.pg-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:13px;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{border-bottom-color:var(--line);overflow:hidden;text-overflow:ellipsis}.pg-table col.c1{width:12%}.pg-table col.c2{width:30%}.pg-table col.c3,.pg-table col.c4{width:21%}.pg-table col.c5{width:16%}.pg-tick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;padding:2px 8px 2px 4px;border-radius:var(--radius-full);border:1px solid var(--line);font-size:12px;font-weight:500;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(--warning-border);background:var(--warn-bg)}.pg-tick.survey.on{color:var(--ok-text);border-color:var(--ok-border);background:var(--ok-fill)}.pg-tick.skipped input{accent-color:var(--info)}.pg-tick.skipped.on{color:var(--info-foreground);border-color:var(--info-border);background:var(--info-muted)}.pg-table tr.pg-skipped td{color:var(--muted)}.pg-table tr.pg-skipped .pg-tick:not(.skipped){opacity:.45}.pg-c.skipped strong,.pg-why{color:var(--info-foreground)}.pg-c.skipped.none strong{color:var(--muted)}.pg-c.pending strong{color:var(--stab-text)}.pg-file{display:block;font-size:11.5px;margin-top:2px;color:var(--muted)}.pg-file.pending{color:var(--stab-text);font-weight:500}.pg-file a{text-decoration:none}.pg-file a:hover{text-decoration:underline}.pills button.pending.on{color:var(--warn-text);background:var(--warn-bg);border-color:var(--warning-border)}.pills button.pending.on .cnt{background:var(--card);color:var(--warn-text)}.pg-who{display:block;color:var(--muted);font-size:11.5px;margin-top:2px;white-space:normal}.pg-why{display:block;font-size:11.5px;margin-top:2px;white-space:normal;overflow-wrap:anywhere}.pg-why .link{font-size:11.5px;margin-left:4px}.pg-why q{quotes:"“" "”"}.pg-err{display:block;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:15%}.pg-table col.c2{width:31%}.pg-table col.c3,.pg-table col.c4,.pg-table col.c5{width:18%}.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-file{display:none}.pg-file.pending{display:block;font-size:10.5px;white-space:normal;margin-top:0}.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.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-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}: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,#ff783c,#fabe28 15%,#b4e63c 25%,#3ed692 33%,#21acda 40%,#2160c7 49%,#171c63 64%,#0a0c32)}.m-cpslbl{fill:var(--ink);font-size:10.5px;font-weight:600;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.skipped{fill:var(--info-foreground)}.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}.pl-ctl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}.pl-ctl .t-nav{margin:0}.pl-acts{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}.pl-range{margin:12px 0 8px;font-weight:600}.pl-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-ctl)}.pl-grid{--name-w: 168px;--bar-h: 30px;--lines: 2}.pl-head,.pl-row{display:grid;grid-template-columns:var(--name-w) minmax(0,1fr)}.pl-row{border-top:1px solid var(--line-soft)}.pl-name{position:sticky;left:0;z-index:3;padding:8px 10px;background:var(--surface);border-right:1px solid var(--line);font-size:13px;font-weight:500;overflow-wrap:anywhere}.pl-name small{display:block;color:var(--muted);font-weight:400;font-size:12px}.pl-corner{color:var(--muted);font-size:12px}.pl-axis,.pl-track{position:relative;overflow:hidden}.pl-axis{height:44px}.pl-dl{position:absolute;top:6px;padding-left:6px;font-size:12px;font-weight:600;white-space:nowrap}.pl-hl{position:absolute;bottom:4px;transform:translate(-50%);font-family:var(--font-mono);font-size:11px;color:var(--muted)}.pl-track{height:calc(var(--lanes) * (var(--bar-h) + 4px) + 8px)}.pl-day{position:absolute;inset-block:0;border-left:1px solid var(--line)}.pl-tick{position:absolute;inset-block:0;border-left:1px dashed var(--line-soft)}.pl-now{position:absolute;inset-block:0;border-left:2px solid var(--brand);z-index:1}.pl-bar{position:absolute;top:calc(var(--lane) * (var(--bar-h) + 4px) + 4px);height:var(--bar-h);min-width:12px;display:flex;align-items:center;gap:4px;padding:0 6px;overflow:hidden;border:1px solid var(--input);border-radius:var(--radius-sm);background:var(--surface);color:var(--ink);font-size:12px;font-weight:500;text-align:left;white-space:nowrap;z-index:2}.pl-key{display:inline-block;width:16px;height:10px;margin-right:5px;vertical-align:-1px;border:1px solid var(--input);border-radius:2px}.pl-bar:hover{background-image:linear-gradient(var(--hover),var(--hover))}:is(.pl-bar,.pl-key).confirmed{background-color:var(--surface-3);border-color:var(--line-strong)}:is(.pl-bar,.pl-key).done{border-color:var(--line);color:var(--muted)}:is(.pl-bar,.pl-key).cancelled{border-style:dashed;border-color:var(--line-strong);color:var(--muted)}.pl-bar.cancelled :is(.pl-t,.pl-lbl){text-decoration:line-through}:is(.pl-bar,.pl-key).ok{border-color:var(--ok)}:is(.pl-bar,.pl-key).over{border:2px solid var(--over)}.pl-bar:focus-visible{z-index:4;outline-color:var(--foreground);box-shadow:inset 0 0 0 2px var(--background)}.pl-bar.cut-l{border-top-left-radius:0;border-bottom-left-radius:0}.pl-bar.cut-r{border-top-right-radius:0;border-bottom-right-radius:0}.pl-t{min-width:0;overflow:hidden;text-overflow:ellipsis}.pl-bar.out{overflow:visible}.pl-lbl{position:absolute;top:50%;left:calc(100% + 4px);transform:translateY(-50%);max-width:var(--room, none);overflow:hidden;text-overflow:ellipsis;color:var(--foreground-secondary)}.pl-bar.left .pl-lbl{left:auto;right:calc(100% + 4px)}.pl-bar:is(.done,.cancelled) .pl-lbl{color:var(--muted)}.pl-lbl .pl-ic{margin-right:4px;vertical-align:-2px}.pl-bar.wrap :is(.pl-t,.pl-lbl){white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--lines);line-height:13px;overflow-wrap:anywhere}.pl-ic{width:14px;height:14px;color:var(--warn-text)}.pl-legend .pl-ic,.pl-fk .pl-ic{margin-right:4px;vertical-align:-2px}.pl-find{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:10px;font-size:13px}.lk-st.finding{color:var(--warn-text);border-color:var(--warning-border);background:var(--warn-bg)}.lk-st.over{color:var(--over-foreground);border-color:var(--over);background:var(--over-muted)}.lk-st.ok{color:var(--ok-text);border-color:var(--ok-border);background:var(--ok-fill)}.lk-st.unchecked{color:var(--muted);border-style:dashed;border-color:var(--line-strong)}.pl-tbl{position:relative;overflow-x:auto}.pl-tbl td:is(:nth-child(3),:nth-child(8)){white-space:nowrap}.pl-fk{white-space:nowrap}@media(max-width:700px){.pl-tbl .locks tr{grid-template-columns:minmax(0,1fr) auto}.pl-tbl .locks td{grid-column:1 / -1}.pl-tbl .locks td:nth-child(2){grid-column:1;grid-row:1}.pl-tbl .locks td:nth-child(4){grid-column:2;grid-row:1}.pl-tbl .locks td:has(>.pl-none){display:none}}.pl-dlg{width:min(640px,calc(100vw - 32px))}.pl-fs{border:0;margin:12px 0 0;padding:0;min-width:0}.pl-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:12px 16px}.pl-fields .pl-note{grid-column:1 / -1}.pl-fields :is(input,select,textarea){width:100%}.pl-dlg [data-finds] .status{margin:8px 0 0}.pl-fs:disabled,.pl-fs:disabled :disabled{opacity:1}.pl-fs:disabled :is(input,select,textarea){border-color:transparent;background:none;color:var(--ink);-webkit-text-fill-color:currentColor;appearance:none;padding-inline:0}.pl-fs:disabled :is(.su-f>small,.opt){display:none}.pl-fs:disabled ::-webkit-calendar-picker-indicator{display:none}:is(#plDlgTitle,#plFindH):focus{outline:none}.pl-dlg .warn{margin:12px 0 0}.pl-fields>.warn{grid-column:1 / -1;margin:0}.pl-dlg [data-live]{margin:12px 0 0}.pl-dlg [data-finds] .lk-btn{margin-left:4px}.pl-count{margin:-4px 0 8px;font-size:13px}.pl-asof{display:none}@media(max-width:600px){.pl-grid{--name-w: 104px}.pl-acts{margin-left:0}}@media(max-width:900px),(pointer:coarse){.pl-grid{--bar-h: 44px;--lines: 3}.pl-bar{min-width:44px}}@media(max-width:900px),(pointer:coarse){:root{--control-sm: 44px;--control-md: 44px}a.kpi,button.kpi,.seg button,.sh-new,.sh-pend,.pg-tick,.sw,summary{min-height:44px;align-content:center}.seg button,.pills button{min-width:44px;justify-content:center}.link,a:not([class]),.ext,.m-missing>summary{padding-block:14px;margin-block:-14px}button.link{min-width:44px;flex:none}}@media(max-width:900px){.m-cpsctl{flex-basis:100%;flex-wrap:wrap;row-gap:6px;padding:0;min-width:0}.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}.m-cpssum{flex:1 1 100%;margin:0 0 0 4px;white-space:normal}}@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:13px}.pg-total .pg-bar{display:none}}.skel,.kpi.skel{position:relative;overflow:hidden;color:transparent!important;background:var(--skeleton);border-color:transparent}.kpi.skel{width:118px}.skel:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,var(--skeleton-shine) 50%,transparent);transform:translate(-100%);animation:shimmer 1.4s infinite}tr.skel td span{display:block;height:12px;border-radius:var(--radius-xs);background:var(--skeleton)}.pg-skel{height:64px;margin-bottom:14px;border-radius:var(--r-card);border:1px solid transparent}.empty{margin:4px 0;padding:24px;border:1px dashed var(--line-strong);border-radius:var(--r-card);text-align:center;color:var(--muted)}.m-missing{display:inline;margin-left:6px}.m-missing>summary{display:inline;color:var(--link);cursor:pointer;min-height:0}.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%)}}a,button,input,select,textarea,label,summary,.kpi,.sw span,.sw span:after,.m-chk input:after{transition:background-color var(--duration-fast) var(--ease-out),border-color var(--duration-fast) var(--ease-out),color var(--duration-fast) var(--ease-out),transform var(--duration-base) var(--ease-out)}@media(prefers-reduced-motion:no-preference){.toast{animation:toast-in .22s ease-out}.map-info.sel{animation:rise .18s ease-out}::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}}.sh-cm{margin-bottom:10px}.sh-cm-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin-bottom:8px}.sh-cm-head h2{margin:0;font-size:15px}.sh-cm-head .pills{margin-left:auto}.sh-cm-head .link{font-size:12px}.sh-cm-list{display:grid;gap:8px;max-height:min(60vh,520px);overflow:auto;padding-right:4px;overscroll-behavior:contain}.sh-cm-day{position:sticky;top:0;z-index:1;margin:0;padding:4px 0;font-size:12px;font-weight:500;color:var(--muted);background:var(--surface)}.sh-cm-item{display:grid;grid-template-columns:32px minmax(0,1fr);gap:2px 10px;padding:6px 8px;border-radius:var(--r-ctl)}.sh-cm-item:focus{outline:var(--ring-width) solid var(--ring);outline-offset:-2px}.sh-cm-item.new{background:var(--accent-fill)}.sh-cm-av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--surface-3);border:1px solid var(--line);color:var(--foreground-secondary);font-family:var(--font-mono);font-size:11px;font-weight:500}.sh-cm-item.own .sh-cm-av{box-shadow:0 0 0 2px var(--accent-ring)}.sh-cm-item.reply{grid-template-columns:24px minmax(0,1fr);padding-left:4px}.sh-cm-item.reply .sh-cm-av{width:24px;height:24px;font-size:10px;margin-top:2px}.sh-cm-main{min-width:0}.sh-cm-meta{margin:0;font-size:12px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}.sh-cm-meta b{color:var(--ink)}.sh-cm-meta .tag.sh-cm-file{cursor:pointer;font-size:11.5px;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:0}.sh-cm-body{margin:2px 0 0;font-size:14px;line-height:1.45;overflow-wrap:anywhere;white-space:normal}.tag.sh-ref{cursor:pointer;font-size:11.5px;font-weight:500;color:var(--accent-text);border-color:var(--accent-ring);background:var(--accent-fill)}.tag.sh-ref:hover{border-color:var(--accent-text)}.tag.crs{font-size:11.5px;color:var(--ink);border-color:var(--line-strong)}.tag.crs.unknown{color:var(--muted);border-style:dashed}.sh-cm-ref{font-weight:500;color:var(--accent-text);text-decoration:none;border-bottom:1px dotted var(--accent-ring)}a.sh-cm-ref:hover{border-bottom-style:solid}.sh-cm-ref.gone{color:var(--muted);border-bottom:0;text-decoration:line-through}.sh-cm-hint{font-weight:500;margin-left:4px}.sh-cm-hint b{font-weight:600;color:var(--accent-text)}.sh-cm-item.gone .sh-cm-body{color:var(--muted-2);font-style:italic}.sh-cm-acts{margin:2px 0 0;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px}.sh-cm-acts .link,.sh-cm-more{font-size:12px}.sh-cm-replies{margin-left:42px;padding-left:10px;border-left:2px solid var(--line);display:grid;gap:4px}.sh-cm-more{justify-self:start}.sh-cm-newline{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:11px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-text)}.sh-cm-newline:before,.sh-cm-newline:after{content:"";flex:1;height:1px;background:var(--accent-ring)}.sh-cm-older{justify-self:center}.sh-cm-edit,.sh-cm-compose textarea{display:block;width:100%;min-height:44px;line-height:1.4;resize:none}.sh-cm-edit{margin:4px 0}.sh-cm-compose{margin-top:10px;padding-top:10px;border-top:1px solid var(--line-soft);display:grid;gap:6px}.sh-cm-replyto{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;color:var(--muted)}.sh-cm-replyto b{color:var(--ink)}.sh-cm-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.sh-cm-foot .warn{margin:0;flex:1 1 200px}.sh-cm-foot .grow{flex:1}.sh-cm-left{font-size:12px;color:var(--muted)}.sh-cm-dlg{border-left:0;margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--line)}.sh-cm-dlg h3{margin:0 0 8px;font-size:14px;display:flex;align-items:center;gap:8px}.sh-cm-dlg .sh-cm-list{max-height:40vh}@media(max-width:900px){.rail-badge{right:calc(50% - 20px)}.sh-cm-list{max-height:50vh}.sh-cm-head .pills{margin-left:0}}.proj-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.proj-list a{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-weight:500;text-decoration:none}.proj-list a:hover{border-color:var(--line-strong);background:var(--hover)}.proj-list a:active{background:var(--pressed)}.proj-list small{font-size:12px;font-weight:400;color:var(--muted)}@media print{.rail,.statusrow,.pagerow>.file-btn,.pagerow>.rail-end,.site,.toast,.skip,.pl-ctl,.pl-act,.pl-count,#plFind .lk-btn{display:none!important}#viewPlanning{display:flex;flex-direction:column}.pl-asof{display:block;order:-2;margin:0 0 10px;font-size:12px}.pl-listcard{order:-1}.app{display:block}.shell{padding:0}main{max-width:none;padding:0}.pagerow{padding:0 0 8px}.card{border:0;padding:0;margin:0 0 14px;background:none;box-shadow:none}.pl-scroll,.pl-tbl{overflow:visible}.pl-grid{min-width:0!important;--bar-h: 42px;--lines: 3}.pl-bar{min-width:12px}.pl-name{position:static}.pl-bar,.pl-key,.lk-st,.pl-now{print-color-adjust:exact;-webkit-print-color-adjust:exact}.pl-row,.pl-find li,tr{break-inside:avoid}}
