@font-face{font-family:Archivo;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/archivo-latin.woff2) format("woff2");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:Archivo;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/archivo-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,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:Archivo Narrow;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/archivonarrow-latin.woff2) format("woff2");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:Archivo Narrow;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/archivonarrow-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--water-open: #e9f1f1;--water-deep: #ffffff;--water-mid: #f4f8f8;--shoal-1: #d3e9ea;--shoal-2: #a9d9dd;--land: #ece1c8;--land-deep: #e1d2b0;--land-edge: #cbb88c;--rule: #c6d3d4;--rule-2: #9aacae;--ink: #12232a;--ink-2: #5b6e77;--ink-1: #3d5560;--ink-3: #93a5a7;--course: #2a4cd7;--course-ink: #1e3a9e;--course-dim: #e4e9fb;--course-edge: #aabbf2;--up: #00843d;--up-dim: #dcefe2;--down: #d0021b;--down-dim: #fbe2e2;--caution: #8f5a00;--caution-dim: #f7ead1;--btn-ink: #ffffff;--buy: var(--up);--accum: #2f7d4f;--hold: var(--ink-2);--reduce: var(--caution);--sell: var(--down);--hachure-ink: var(--down);--hachure: repeating-linear-gradient(45deg, currentColor 0 1px, transparent 1px 5px);--r: 3px;--r-sm: 2px;--shadow: 0 10px 28px -12px rgba(18, 35, 42, .34), 0 2px 6px -2px rgba(18, 35, 42, .16);--sheet-lift: 0 1px 0 var(--rule);--narrow: "Archivo Narrow", "Archivo", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--sans: "Archivo", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, monospace;--ts-2xs: .6875rem;--ts-xs: .75rem;--ts-sm: .8125rem;--ts-base: .9375rem;--ts-lg: 1.0625rem;--ts-xl: 1.375rem;--ts-2xl: 1.75rem;--bg: var(--water-open);--bg-1: var(--water-deep);--bg-2: var(--water-mid);--bg-3: var(--shoal-1);--line: var(--rule);--line-2: var(--rule-2);--fg: var(--ink);--fg-1: var(--ink-1);--fg-2: var(--ink-2);--fg-3: var(--ink-3);--accent: var(--course-ink);--accent-dim: var(--course-dim);--warn: var(--caution)}[data-theme=night]{--water-open: #05131a;--water-deep: #0b2029;--water-mid: #0f2831;--shoal-1: #163a42;--shoal-2: #1f5259;--land: #171d1c;--land-deep: #101615;--land-edge: #2c3a36;--rule: #1d3d45;--rule-2: #2f5b64;--ink: #dfeceb;--ink-1: #b3c7c8;--ink-2: #8ba4a7;--ink-3: #567175;--course: #6b8cff;--course-ink: #93aaff;--course-dim: #12224d;--course-edge: #3c56a8;--up: #35c46e;--up-dim: #0d3020;--down: #ff5a5f;--down-dim: #3a1418;--caution: #e2a13c;--caution-dim: #34260e;--btn-ink: var(--water-open);--accum: #6fd18f;--hold: var(--ink-2);--shadow: 0 12px 32px -12px rgba(0, 0, 0, .72), 0 2px 8px -2px rgba(0, 0, 0, .5)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{font-size:16px}body{font-family:var(--sans);background:var(--water-open);color:var(--ink);font-size:var(--ts-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-kerning:normal}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--rule-2);border-radius:0;border:3px solid var(--water-open)}::-webkit-scrollbar-track{background:transparent}.ico{width:16px;height:16px;flex:0 0 auto}.mono,.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;letter-spacing:0}.mono{font-family:var(--narrow);font-weight:600}.chart-label,.label-2,.card-h h3,.tbl th,.stat .k,.pill,.seg button,.chip{font-family:var(--narrow)}.shell{display:grid;grid-template-columns:232px 1fr;height:100%}.sidebar{background:var(--land);border-right:1px solid var(--land-edge);display:flex;flex-direction:column;padding:0;gap:0}.brand{display:flex;align-items:center;gap:10px;padding:14px 14px 13px;border-bottom:1px solid var(--land-edge)}.brand .logo{width:30px;height:30px;flex:0 0 30px;border-radius:50%;border:1.5px solid var(--course);color:var(--course-ink);display:grid;place-items:center;font-family:var(--narrow);font-weight:700;font-size:14px}.brand b{font-family:var(--narrow);font-size:var(--ts-lg);font-weight:700;letter-spacing:.01em}.brand span{display:block;margin-top:-2px;color:var(--ink-1);font-family:var(--narrow);font-size:var(--ts-2xs);letter-spacing:.06em;text-transform:uppercase}.sidebar nav{padding:8px 0;display:flex;flex-direction:column}.nav-item{display:flex;align-items:center;gap:11px;padding:8px 14px;border:none;background:none;width:100%;text-align:left;color:var(--ink-1);font-family:var(--narrow);font-weight:500;font-size:var(--ts-base);border-left:2px solid transparent}.nav-item:hover{background:var(--land-deep);color:var(--ink)}.nav-item.active{background:var(--land-deep);color:var(--ink);border-left-color:var(--course);font-weight:700}.nav-item .ico{width:17px;height:17px;flex:0 0 17px}.nav-item .badge{margin-left:auto;background:var(--down);color:var(--btn-ink);font-family:var(--narrow);font-size:10px;font-weight:700;padding:1px 6px;border-radius:2px;font-variant-numeric:tabular-nums}.sidebar .spacer{flex:1}.corrections{padding:10px 14px;border-top:1px solid var(--land-edge);font-family:var(--narrow);font-size:var(--ts-2xs);line-height:1.6;color:var(--ink-1);letter-spacing:.03em;text-transform:uppercase}.corrections b{color:var(--ink-1);font-variant-numeric:tabular-nums}.main{display:flex;flex-direction:column;overflow:hidden;min-width:0}.grid{min-width:0}.grid>*{min-width:0}.topbar{height:54px;flex:0 0 54px;border-bottom:1px solid var(--rule-2);background:var(--land);display:flex;align-items:center;gap:12px;padding:0 16px}.topbar h1{font-family:var(--narrow);font-size:var(--ts-lg);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.topbar .grow{flex:1}.page{overflow:auto;padding:20px 22px 40px;flex:1}.tide{display:flex;align-items:stretch;gap:0;border:1px solid var(--rule-2);background:var(--water-deep)}.tide-now{display:flex;align-items:center;gap:10px;padding:11px 14px;border-right:1px solid var(--rule);flex:0 0 auto}.tide-name{font-family:var(--narrow);font-size:var(--ts-lg);font-weight:700;letter-spacing:.04em;text-transform:uppercase;line-height:1}.tide-note{padding:11px 14px;color:var(--ink-1);font-size:var(--ts-sm);flex:1;min-width:0;align-self:center}.tide-scale{display:flex;align-items:stretch;border-left:1px solid var(--rule);flex:0 0 auto}.tide-tick{display:grid;place-items:center;padding:0 10px;min-width:54px;font-family:var(--narrow);font-size:var(--ts-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);border-right:1px solid var(--rule);position:relative}.tide-tick:last-child{border-right:0}.tide-tick.past{color:var(--ink-2);background:var(--water-mid)}.tide-tick.on{color:var(--water-deep);background:var(--phase, var(--ink-1));font-weight:700}.leg{background:var(--water-deep);border:1px solid var(--rule);display:grid;grid-template-columns:1fr auto;align-items:stretch}.leg+.leg{border-top:0}.leg-body{padding:12px 14px;min-width:0;cursor:pointer}.leg-head{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-bottom:3px}.leg-sym{font-family:var(--narrow);font-size:var(--ts-lg);font-weight:700;letter-spacing:.03em;text-transform:uppercase}.leg-sub{font-size:var(--ts-sm);color:var(--ink-1);line-height:1.55}.leg-note{font-size:var(--ts-xs);color:var(--ink-2);margin-top:3px}.leg-act{display:flex;flex-direction:column;justify-content:center;gap:6px;padding:12px 14px;border-left:1px solid var(--rule);background:var(--water-mid)}.leg.hazard{background:linear-gradient(var(--down-dim),var(--down-dim)) 0 0 / 100% 100% no-repeat,var(--water-deep);border-color:var(--down)}.leg.hazard .leg-act{background:transparent;border-left-color:var(--down)}.band{margin-top:16px}.band-line{position:relative;height:22px;border-bottom:1px solid var(--rule-2)}.band-safe{position:absolute;top:8px;height:6px;background:var(--shoal-1);border:1px solid var(--ink-2);border-right:0}.band-run{position:absolute;top:8px;height:6px;background:var(--course);opacity:.34}.band-ground{position:absolute;top:0;bottom:0;left:0;color:var(--down);background-image:var(--hachure);opacity:.5;border-right:1.5px solid var(--down)}.band-mark{position:absolute;top:2px;width:0;height:18px;border-left:1.5px solid var(--mark, var(--ink-1))}.band-mark.last{border-left-width:2px;border-left-color:var(--course);top:-4px;height:30px}.band-mark.last:after{content:attr(data-v);position:absolute;top:-14px;left:0;transform:translate(-50%);font-family:var(--narrow);font-variant-numeric:tabular-nums;font-size:var(--ts-2xs);font-weight:700;color:var(--course-ink);background:var(--water-deep);padding:0 3px;white-space:nowrap}.band-likely{position:relative;height:10px}.band-likely-span{position:absolute;top:2px;height:5px;border:1px solid var(--ink-2);border-top:0;opacity:.8}.band-likely-mid{position:absolute;top:0;width:0;height:9px;border-left:1.5px solid var(--ink-1)}.band-keys{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:7px;font-family:var(--narrow);font-size:var(--ts-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}.band-keys b{font-variant-numeric:tabular-nums;letter-spacing:0;color:inherit}.legend-head{display:flex;align-items:center;gap:9px;padding-bottom:7px;margin-bottom:12px;border-bottom:1px solid var(--rule-2)}.legend-head h2{font-family:var(--narrow);font-size:var(--ts-sm);font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.legend-head .hint{font-size:var(--ts-xs);color:var(--ink-2)}.legend-head .grow{flex:1}.legend-head .count{font-family:var(--narrow);font-variant-numeric:tabular-nums;font-size:var(--ts-2xs);font-weight:700;color:var(--water-deep);background:var(--tone, var(--ink-1));padding:1px 6px;letter-spacing:.04em}.card{background:var(--water-deep);border:1px solid var(--rule);border-radius:0}.pad,.card.pad{padding:15px 16px}.card-h{display:flex;align-items:center;gap:9px;padding:10px 14px;border-bottom:1px solid var(--rule);background:var(--water-mid)}.card-h h3{font-size:var(--ts-2xs);font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-1)}.card-h .grow{flex:1}.muted{color:var(--ink-2)}.tiny{font-size:var(--ts-xs);line-height:1.5}.label-2{font-size:var(--ts-2xs);text-transform:uppercase;letter-spacing:.09em;color:var(--ink-2);font-weight:700}.grid{display:grid;gap:14px}.cols-4{grid-template-columns:repeat(4,1fr)}.cols-3{grid-template-columns:repeat(3,1fr)}.cols-2{grid-template-columns:repeat(2,1fr)}.readings{display:flex;flex-wrap:wrap;border:1px solid var(--rule);background:var(--water-deep)}.readings>*{flex:1 1 0;min-width:130px;padding:11px 14px;border-right:1px solid var(--rule)}.readings>*:last-child{border-right:0}.stat .k{font-family:var(--narrow);font-size:var(--ts-2xs);color:var(--ink-2);text-transform:uppercase;letter-spacing:.08em;font-weight:600;margin-bottom:5px}.stat .v{font-family:var(--narrow);font-size:var(--ts-xl);font-weight:700;letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1.1}.stat .sub{font-size:var(--ts-xs);margin-top:3px;color:var(--ink-2)}.pill{display:inline-flex;align-items:center;gap:4px;font-size:var(--ts-2xs);font-weight:700;letter-spacing:.07em;padding:2px 7px;text-transform:uppercase;border:1px solid currentColor;border-radius:0}.pill.BUY{color:var(--up);background:var(--up-dim)}.pill.ACCUMULATE{color:var(--accum);background:var(--up-dim)}.pill.HOLD{color:var(--ink-2);background:var(--water-mid)}.pill.REDUCE{color:var(--caution);background:var(--caution-dim)}.pill.SELL{color:var(--down);background:var(--down-dim)}.pos{color:var(--up)}.neg{color:var(--down)}.hazard-mark{display:inline-flex;align-items:center;gap:5px;font-family:var(--narrow);font-size:var(--ts-2xs);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--down);padding:2px 7px 2px 6px;border:1px solid var(--down);background:var(--down-dim)}.hazard-mark.caution{color:var(--caution);border-color:var(--caution);background:var(--caution-dim)}.hazard-mark.doubtful{color:var(--ink-2);border-color:var(--ink-3);background:transparent;border-style:dashed}.tbl{width:100%;border-collapse:collapse;font-size:var(--ts-sm);font-variant-numeric:tabular-nums}.tbl th{text-align:right;font-size:var(--ts-2xs);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);font-weight:700;padding:8px 12px;border-bottom:1px solid var(--rule-2);position:sticky;top:0;background:var(--water-mid);z-index:2;-webkit-user-select:none;user-select:none}.tbl th.sortable{cursor:pointer}.tbl th:first-child,.tbl td:first-child{text-align:left}.tbl th.sortable:hover{color:var(--course-ink)}.tbl td{padding:8px 12px;border-bottom:1px solid var(--rule);text-align:right}.tbl tbody tr:nth-child(2n){background:var(--water-mid)}.tbl tbody tr:hover{background:var(--course-dim);cursor:pointer}.tbl .sym{font-family:var(--narrow);font-weight:700;letter-spacing:.03em;text-transform:uppercase}.tbl .nm{color:var(--ink-2);font-size:var(--ts-xs);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tbl tbody tr.shoaling,.tbl tbody tr.shoaling:nth-child(2n){background:var(--caution-dim)}input,select,textarea{background:var(--water-deep);border:1px solid var(--rule-2);color:var(--ink);border-radius:0;padding:7px 10px;font-size:var(--ts-sm);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--course);box-shadow:inset 0 -2px 0 var(--course)}input::placeholder,textarea::placeholder{color:var(--ink-2);opacity:1}.btn{background:var(--water-deep);border:1px solid var(--rule-2);color:var(--ink);padding:7px 13px;border-radius:0;font-family:var(--narrow);font-size:var(--ts-sm);font-weight:600;letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .12s,border-color .12s,color .12s}.btn:hover{border-color:var(--ink-1);background:var(--water-mid)}.btn.primary{background:var(--course);border-color:var(--course);color:var(--btn-ink)}.btn.primary:hover{background:var(--course-ink);border-color:var(--course-ink)}.btn.up{background:var(--up);border-color:var(--up);color:var(--btn-ink);font-weight:700}.btn.down{background:var(--down);border-color:var(--down);color:var(--btn-ink);font-weight:700}.btn.up:hover,.btn.down:hover{filter:brightness(1.1)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--water-mid);border-color:var(--rule)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:disabled:hover{background:var(--water-deep);border-color:var(--rule-2)}.seg{display:inline-flex;border:1px solid var(--rule-2);background:var(--water-deep)}.seg button{background:none;border:0;border-right:1px solid var(--rule);color:var(--ink-2);padding:5px 11px;cursor:pointer;font-size:var(--ts-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.seg button:last-child{border-right:0}.seg button:hover{color:var(--ink);background:var(--water-mid)}.seg button.on{background:var(--course);color:var(--btn-ink)}.chip{font-family:var(--narrow);font-size:var(--ts-2xs);font-weight:600;letter-spacing:.05em;padding:3px 8px;border-radius:0;border:1px solid var(--rule-2);background:var(--water-deep);color:var(--ink-1);cursor:pointer}.chip:hover{border-color:var(--ink-2)}.chip.on{background:var(--course-dim);border-color:var(--course);color:var(--course-ink);font-weight:700}.mkt-chip{-webkit-user-select:none;user-select:none}.mkt-chip:disabled{opacity:.5;cursor:default}.switch{position:relative;display:inline-flex;flex:0 0 auto;width:40px;height:22px;cursor:pointer}.switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.switch .slider{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--water-mid);border:1px solid var(--rule-2);transition:background .16s,border-color .16s}.switch .slider:before{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--ink-3);transition:transform .16s cubic-bezier(.32,.72,0,1),background .16s}.switch input:checked+.slider{background:var(--course-dim);border-color:var(--course)}.switch input:checked+.slider:before{transform:translate(18px);background:var(--course)}.switch input:focus-visible+.slider{outline:2px solid var(--course);outline-offset:2px}.live{display:inline-flex;align-items:center;gap:7px;flex:0 0 auto;white-space:nowrap;font-family:var(--narrow);font-size:var(--ts-xs);letter-spacing:.04em;color:var(--ink-1);background:var(--water-deep);border:1px solid var(--rule-2);padding:4px 10px}.dot{width:7px;height:7px;border-radius:50%;background:var(--ink-3);flex:0 0 auto}.dot.on{background:var(--up);animation:pulse 2.4s ease-out infinite}.dot.warn{background:var(--caution)}@keyframes pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--up) 55%,transparent)}70%{box-shadow:0 0 0 6px color-mix(in srgb,var(--up) 0%,transparent)}to{box-shadow:0 0 color-mix(in srgb,var(--up) 0%,transparent)}}.only-sm{display:none}.market-seg{flex:0 0 auto}.market-seg button{display:inline-flex;align-items:center;gap:5px;opacity:.6}.market-seg button:hover{opacity:.85}.market-seg button.on{opacity:1}.market-seg .mkt-flag{font-size:13px;line-height:1}.market-seg .mkt-dot{width:5px;height:5px;border-radius:50%;background:var(--ink-3)}.market-seg .mkt-dot.open{background:var(--up)}.market-seg button.on .mkt-dot{background:#ffffff8c}.market-seg button.on .mkt-dot.open{background:#fff}.ribbon-bar{display:flex;height:7px;background:var(--shoal-1);border:1px solid var(--rule)}.ribbon-bar i{flex:1}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--ink) 46%,transparent);z-index:40}.drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,96vw);background:var(--water-deep);border-left:1px solid var(--rule-2);z-index:50;display:flex;flex-direction:column;box-shadow:var(--shadow);animation:sheet-out .22s cubic-bezier(.32,.72,0,1)}@keyframes sheet-out{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;padding:24px;background:color-mix(in srgb,var(--ink) 46%,transparent);animation:fadein .16s ease;overflow:auto}.modal{width:min(560px,100%);max-height:100%;display:flex;flex-direction:column;background:var(--water-deep);border:1px solid var(--rule-2);box-shadow:var(--shadow);animation:sheet-lay .2s cubic-bezier(.32,.72,0,1)}.modal-lg{width:min(980px,100%)}.modal-h{display:flex;align-items:center;gap:9px;flex:0 0 auto;padding:11px 13px;border-bottom:1px solid var(--rule-2);background:var(--water-mid);font-family:var(--narrow)}.modal-h .grow{flex:1}.modal-h .ico{width:17px;height:17px;flex:0 0 17px}.modal-body{padding:14px;overflow:auto;-webkit-overflow-scrolling:touch}@keyframes sheet-lay{0%{transform:translateY(10px) scale(.99);opacity:0}to{transform:none;opacity:1}}.toast-wrap{position:fixed;bottom:18px;right:18px;z-index:80;display:flex;flex-direction:column;gap:7px}.toast{background:var(--water-deep);border:1px solid var(--rule-2);border-top:3px solid var(--ink-1);padding:10px 13px;max-width:340px;cursor:pointer;box-shadow:var(--shadow);animation:hoist .24s cubic-bezier(.32,.72,0,1)}@keyframes hoist{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.toast.BUY,.toast.GOLDEN_CROSS,.toast.TIME_TO_BUY{border-top-color:var(--up)}.toast.SELL,.toast.DEATH_CROSS,.toast.TIME_TO_SELL{border-top-color:var(--down)}.toast.act{border-top-width:4px}.toast.act.buy{background:var(--up-dim)}.toast.act.sell{background:var(--down-dim)}.alert-row.act{background:var(--course-dim)}.spin{width:15px;height:15px;border:2px solid var(--rule-2);border-top-color:var(--course);border-radius:50%;animation:rot .8s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.center{display:grid;place-items:center}.empty{text-align:center;color:var(--ink-2);padding:42px 20px;font-size:var(--ts-sm)}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}hr.sep{border:none;border-top:1px solid var(--rule);margin:14px 0}button:focus-visible,a:focus-visible,[role=option]:focus-visible,[role=button]:focus-visible,.chip:focus-visible,.tbl th:focus-visible{outline:2px solid var(--course);outline-offset:2px}.chip:has(input:focus-visible){outline:2px solid var(--course);outline-offset:2px}.vis-hidden{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.topsearch{position:relative;display:flex;align-items:center}.topsearch input{width:216px;padding:6px 38px 6px 26px}.topsearch kbd{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-family:var(--narrow);font-size:10px;color:var(--ink-2);background:var(--water-mid);border:1px solid var(--rule-2);padding:1px 4px;pointer-events:none}.search-pop{position:fixed;z-index:70;background:var(--water-deep);border:1px solid var(--rule-2);box-shadow:var(--shadow);overflow:hidden;padding:0}.search-row{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);color:var(--ink);padding:8px 11px;font-size:var(--ts-sm);cursor:pointer}.search-row:last-child{border-bottom:0}.search-row.on{background:var(--course-dim);color:var(--course-ink)}.search-row .nm{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skel{position:relative;overflow:hidden;background:var(--water-mid);border:1px solid var(--rule)}.skel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--shoal-2) 55%,transparent),transparent);animation:shimmer 1.5s ease-out infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.hide-sm{display:inline}.scrim{display:none}@keyframes fadein{0%{opacity:0}to{opacity:1}}.ptr{display:flex;align-items:center;justify-content:center;gap:8px;overflow:hidden;transition:opacity .16s;color:var(--ink-2);font-family:var(--narrow);font-size:var(--ts-xs);letter-spacing:.05em;text-transform:uppercase}.trend-tag{display:inline-flex;align-items:center;gap:4px;line-height:1;white-space:nowrap}.trend-tag.up{color:var(--up)}.trend-tag.down{color:var(--down)}.trend-tag.soft{opacity:.74}.trend-tag.flat{color:var(--ink-2)}.trend-lbl{font-family:var(--narrow);font-size:11px;font-weight:600}.cmp{width:100%;border-collapse:collapse;font-size:var(--ts-sm);font-variant-numeric:tabular-nums}.cmp th{padding:11px 10px;border-bottom:1px solid var(--rule-2);text-align:center;vertical-align:top;min-width:130px}.cmp td{padding:8px 10px;border-bottom:1px solid var(--rule);text-align:center}.cmp .cmp-k{text-align:left;color:var(--ink-2);font-family:var(--narrow);font-size:var(--ts-xs);white-space:nowrap;position:sticky;left:0;background:var(--water-deep);z-index:1}.cmp .cmp-sec td{background:var(--water-mid);color:var(--ink-1);font-family:var(--narrow);font-size:var(--ts-2xs);font-weight:700;text-transform:uppercase;letter-spacing:.09em;text-align:left;padding:6px 10px}.cmp .cmp-best{background:var(--up-dim);font-weight:700}.index-strip{display:none}@media (min-width: 821px){.menu-btn{display:none}}@media (min-width: 821px) and (max-width: 1120px){.tide{flex-wrap:wrap}.tide-now{flex:0 0 auto}.tide-scale{flex:1 1 auto}.tide-note{flex:1 1 100%;order:3;border-top:1px solid var(--rule)}}@media (min-width: 821px) and (max-width: 1180px){.cols-2{grid-template-columns:1fr}.cols-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 820px){.shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:60;width:258px;max-width:84vw;height:100%;transform:translate(-100%);transition:transform .22s cubic-bezier(.32,.72,0,1);box-shadow:var(--shadow)}.sidebar.open{transform:none}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:color-mix(in srgb,var(--ink) 46%,transparent);animation:fadein .18s ease}.cols-4{grid-template-columns:repeat(2,1fr)}.cols-3,.cols-2{grid-template-columns:1fr}.topbar{padding:0 10px;gap:7px;height:50px;flex:0 0 50px}.topbar h1{font-size:var(--ts-base);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}.topbar .btn{padding:6px 7px}.topbar-mid,.hide-sm{display:none}.only-sm{display:inline}.live{padding:3px 7px;font-size:11px;gap:5px}.topsearch,.refresh-btn{display:none}.market-seg button{padding:5px 7px}.index-strip{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;white-space:nowrap;padding:7px 10px;border-bottom:1px solid var(--rule-2);background:var(--water-deep);scrollbar-width:none}.index-strip::-webkit-scrollbar{display:none}.idx-item{display:inline-flex;align-items:baseline;gap:5px;padding:0 12px;flex:0 0 auto;position:relative}.idx-item:first-child{padding-left:0}.idx-item+.idx-item:before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:1px;background:var(--rule)}.page{padding:12px 11px 32px;overflow-x:hidden}.card.pad{padding:12px}.card{max-width:100%}.drawer{width:100vw}.modal-wrap{padding:0}.modal,.modal-lg{width:100vw;height:100%;max-height:100%;border:none}.modal-body{padding:12px}.nav-item{padding:12px 14px;font-size:var(--ts-base)}.btn{padding:9px 12px}.topbar .btn{padding:10px;min-width:44px;min-height:44px;justify-content:center}.market-seg button{min-height:40px}.tide{flex-wrap:wrap;position:relative}.tide-now{flex:1 1 100%;border-right:0;border-bottom:1px solid var(--rule);padding-right:52px}.tide-note{flex:1 1 100%;padding:9px 12px;border-bottom:1px solid var(--rule)}.tide-scale{flex:1 1 100%;border-left:0;overflow-x:auto;scrollbar-width:none}.tide-scale::-webkit-scrollbar{display:none}.tide-tick{flex:1 0 auto;padding:7px 12px}.tide>.btn{position:absolute;top:0;right:0;height:45px;border-left:1px solid var(--rule)!important;border-bottom:1px solid var(--rule)}.legend-head{flex-wrap:wrap;row-gap:3px}.legend-head h2{flex:0 0 auto}.legend-head .hint{flex:1 1 100%;order:3}.legend-head .grow{display:none}.legend-head>:last-child{margin-left:auto}.leg{grid-template-columns:1fr}.leg-act{border-left:0;border-top:1px solid var(--rule);flex-direction:row;justify-content:flex-end;padding:9px 12px}.leg.hazard .leg-act{border-left:0;border-top-color:var(--down)}.readings>*{flex:1 1 44%;min-width:0;border-bottom:1px solid var(--rule)}.readings>*:nth-child(2n){border-right:0}.tbl-wrap{overflow:visible!important}.tbl,.tbl tbody,.tbl tr,.tbl td{display:block;width:auto}.tbl thead{display:none}.tbl tbody tr,.tbl tbody tr:nth-child(2n){background:var(--water-deep);border:1px solid var(--rule);padding:10px 12px;margin-bottom:7px;display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 14px}.tbl tbody tr:hover{background:var(--water-deep)}.tbl tbody tr.shoaling,.tbl tbody tr.shoaling:nth-child(2n){background:var(--caution-dim);border-color:var(--caution)}.tbl td{border:0;padding:0;text-align:right;display:inline-flex;align-items:baseline;gap:5px;flex:0 0 auto}.tbl td:not([data-l]):not(.cell-caret):not(.cell-empty):not(.cell-actions){display:block;flex:1 1 100%;text-align:left;padding:0 0 6px;margin-bottom:5px;border-bottom:1px solid var(--rule)}.tbl td[data-l]:before{content:attr(data-l);text-align:left;color:var(--ink-2);font-family:var(--narrow);font-size:var(--ts-2xs);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.tbl td.cell-key{flex:0 0 auto;font-size:var(--ts-base);font-weight:700}.tbl td.cell-key:before{content:none}.tbl td.cell-actions{flex:1 1 100%;justify-content:flex-end;margin-top:6px}.tbl td.cell-actions:before{content:none}.tbl td[data-l]:empty{display:none}.tbl .nm{max-width:100%;white-space:normal}.tbl td.cell-caret{display:none}.tbl tr.detail-row{padding:0;background:transparent;border:0}.tbl tr.detail-row td{display:block;padding:0;text-align:left}.tbl tr.detail-row td:before{content:none}.tbl td.cell-empty{display:block;text-align:center}.tbl td.cell-empty:before{content:none}.filters input[type=text],.filters input:not([type]){flex:1 1 100%!important;width:100%;min-width:0}.filters select,.filters input[type=number]{flex:1 1 44%!important;width:auto;min-width:0}.filters .seg{width:100%}.filters .seg button{flex:1;text-align:center}.topsearch.mobile-open{display:flex;position:fixed;top:50px;left:0;right:0;z-index:58;padding:7px 10px;background:var(--water-deep);border-bottom:1px solid var(--rule-2)}.topsearch.mobile-open input{width:100%;padding:10px 12px 10px 28px}.topsearch.mobile-open input:focus{width:100%}.topsearch.mobile-open kbd{display:none}}.search-btn{display:none}@media (max-width: 820px){.search-btn{display:inline-flex}}@media (min-width: 641px) and (max-width: 820px){.tbl,.tbl tbody,.tbl tr,.tbl td,.tbl thead{display:revert}.tbl tbody tr,.tbl tbody tr:nth-child(2n){border:0;border-radius:0;padding:0;margin:0;display:table-row}.tbl tbody tr:nth-child(2n){background:var(--water-mid)}.tbl tbody tr:hover{background:var(--course-dim)}.tbl td{border-bottom:1px solid var(--rule);padding:8px;text-align:right;display:table-cell}.tbl td:not([data-l]):not(.cell-caret):not(.cell-empty){display:table-cell;text-align:left;margin:0;padding:8px;border-bottom:1px solid var(--rule)}.tbl td[data-l]:before{content:none}.tbl td.cell-caret{display:table-cell}.tbl-wrap{overflow:auto!important}.tbl .nm{max-width:170px;white-space:nowrap}.topsearch{display:flex}.search-btn{display:none}.leg{grid-template-columns:1fr auto}.leg-act{border-left:1px solid var(--rule);border-top:0;flex-direction:column}}@media (max-width: 600px){.topbar{gap:4px}.topbar h1{flex:1 1 auto;min-width:0;font-size:var(--ts-sm);letter-spacing:.05em}.topbar .btn{padding:10px 8px;min-width:40px}.live .mono{display:none}.live{padding:4px 6px}.market-seg button{padding:5px 6px;gap:3px;min-height:40px}}@media (max-width: 360px){.cols-4{grid-template-columns:1fr}.stat .v{font-size:var(--ts-lg)}.readings>*{flex:1 1 100%;border-right:0}}@keyframes tvbar{0%{transform:translate(-100%)}to{transform:translate(360%)}}@media (prefers-reduced-motion: reduce){@keyframes tvbar{0%,to{transform:none}}}
