:root{--bg: #EDF5F8;--surface: #FFFFFF;--surface-2: #E2EFF3;--surface-3: #F5FAFB;--primary: #0E8FB8;--primary-hover: #0A7698;--primary-ink: #FFFFFF;--primary-soft: #D3ECF3;--aqua: #15BEC2;--aqua-soft: #CFF2F2;--navy: #08354A;--heading: #08354A;--text: #0E2E3E;--text-2: #4C6878;--text-3: #8AA6B2;--line: #D7E7ED;--line-2: #BFD8E1;--sand: #F2B544;--sand-soft: #FBEDD0;--coral: #F2724B;--ok: #17A673;--warn: #E08A1E;--err: #DE4B4B;--chart-line: #0E8FB8;--chart-fill-0: rgba(14,143,184,.3);--chart-fill-1: rgba(14,143,184,.02);--chart-grid: rgba(8,53,74,.16);--chart-night: rgba(8,53,74,.055);--chart-now: #F2724B;--moon-lit: #F4E6AE;--moon-dark: #C3D4DC;--moon-edge: rgba(8,53,74,.18);--shadow-sm: 0 1px 2px rgba(8,53,74,.06);--shadow: 0 10px 30px rgba(8,53,74,.1);--shadow-lg: 0 24px 60px rgba(8,53,74,.16);--r: 18px;--r-sm: 12px;--r-lg: 26px;--r-pill: 999px;--wrap: 860px;--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-display: "Plus Jakarta Sans", var(--font);--font-dv: "Noto Sans Thaana", var(--font);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #05131D;--surface: #0C2130;--surface-2: #10293A;--surface-3: #091A27;--primary: #2DB7E0;--primary-hover: #4CC6EC;--primary-ink: #042030;--primary-soft: #0E3346;--aqua: #34D0D4;--aqua-soft: #0D3A3B;--navy: #D9EAF2;--heading: #E9F4FA;--text: #E0EDF4;--text-2: #A0B6C3;--text-3: #6B8593;--line: #1A3244;--line-2: #27485E;--sand: #F6C260;--sand-soft: #38300F;--coral: #FF845E;--chart-line: #34C6EC;--chart-fill-0: rgba(52,198,236,.32);--chart-fill-1: rgba(52,198,236,.02);--chart-grid: rgba(217,234,242,.14);--chart-night: rgba(217,234,242,.05);--chart-now: #FF845E;--moon-lit: #F6E9B4;--moon-dark: #223949;--moon-edge: rgba(217,234,242,.22);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 10px 30px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px rgba(0,0,0,.6);color-scheme:dark}}:root[data-theme=dark]{--bg: #05131D;--surface: #0C2130;--surface-2: #10293A;--surface-3: #091A27;--primary: #2DB7E0;--primary-hover: #4CC6EC;--primary-ink: #042030;--primary-soft: #0E3346;--aqua: #34D0D4;--aqua-soft: #0D3A3B;--navy: #D9EAF2;--heading: #E9F4FA;--text: #E0EDF4;--text-2: #A0B6C3;--text-3: #6B8593;--line: #1A3244;--line-2: #27485E;--sand: #F6C260;--sand-soft: #38300F;--coral: #FF845E;--chart-line: #34C6EC;--chart-fill-0: rgba(52,198,236,.32);--chart-fill-1: rgba(52,198,236,.02);--chart-grid: rgba(217,234,242,.14);--chart-night: rgba(217,234,242,.05);--chart-now: #FF845E;--moon-lit: #F6E9B4;--moon-dark: #223949;--moon-edge: rgba(217,234,242,.22);--shadow-sm: 0 1px 2px rgba(0,0,0,.4);--shadow: 0 10px 30px rgba(0,0,0,.5);--shadow-lg: 0 24px 60px rgba(0,0,0,.6);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{font-size:15px;line-height:1.55}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}[hidden]{display:none!important}h1,h2,h3,h4{font-family:var(--font-display);color:var(--heading);letter-spacing:-.02em;line-height:1.14;margin:0;font-weight:800;text-wrap:balance}html[dir=rtl] body,[lang=dv]{font-family:var(--font-dv);line-height:1.85}html[dir=rtl]{direction:rtl}::selection{background:var(--primary-soft);color:var(--primary)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.shell{min-height:100%;display:flex;flex-direction:column}.main{flex:1;width:100%;max-width:var(--wrap);margin:0 auto;padding:14px 16px calc(84px + env(safe-area-inset-bottom,0px))}.muted{color:var(--text-2)}.center{text-align:center}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm)}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.loc-btn{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:4px 7px;background:none;border:0;color:var(--text);cursor:pointer;padding:4px;text-align:left;min-width:0}.loc-btn svg:first-child{color:var(--primary);grid-row:span 2}.loc-btn .loc-name{font-family:var(--font-display);font-weight:800;font-size:17px;color:var(--heading);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-btn .loc-atoll{grid-column:2 / 4;font-size:11.5px;color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.loc-btn>svg:last-child{color:var(--text-3);grid-row:span 2}.top-now{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap}.top-now strong{font-family:var(--font-display);font-size:16px}.top-now .muted{font-size:12px}.trend.up,.big-arrow.up,.mini-trend.up{color:var(--aqua)}.trend.dn,.big-arrow.dn,.mini-trend.dn{color:var(--coral)}.hero{padding:18px;background:linear-gradient(160deg,var(--surface) 55%,var(--surface-2));overflow:hidden}.hero-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hero-level{display:flex;align-items:baseline;gap:6px}.big-arrow{font-size:30px;line-height:1;font-weight:700}.big-num{font-family:var(--font-display);font-size:56px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--heading);font-variant-numeric:tabular-nums}.big-unit{font-size:20px;font-weight:700;color:var(--text-2)}.hero-sub{margin-top:4px;color:var(--text-2);font-size:13.5px}.hero-sub b{color:var(--text)}.progress{margin-top:16px}.progress-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--text-2);margin-bottom:7px;gap:8px}.progress-ends b{color:var(--text)}.progress-track{position:relative;height:7px;border-radius:999px;background:var(--surface-2);overflow:visible}.progress-fill{position:absolute;inset:0 auto 0 0;border-radius:999px;background:linear-gradient(90deg,var(--aqua),var(--primary))}.progress-dot{position:absolute;top:50%;width:14px;height:14px;border-radius:50%;background:var(--surface);border:3px solid var(--primary);transform:translate(-50%,-50%);box-shadow:var(--shadow-sm)}.dayswitch{display:flex;align-items:center;gap:10px;margin:14px 0 10px}.dayswitch>button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--text);font-size:20px;cursor:pointer;flex:0 0 auto}.dayswitch>button:hover{border-color:var(--primary);color:var(--primary)}.dayswitch-mid{flex:1;text-align:center;display:flex;flex-direction:column;gap:4px;align-items:center}.dayswitch-mid strong{font-family:var(--font-display);font-size:16px}.coef{display:inline-block;font-size:11.5px;font-weight:700;padding:2px 10px;border-radius:999px}.coef-hi{background:var(--sand-soft);color:#9a6a0e}.coef-mid{background:var(--primary-soft);color:var(--primary-hover)}.coef-lo{background:var(--aqua-soft);color:var(--primary-hover)}:root[data-theme=dark] .coef-hi,:root:not([data-theme=light]) .coef-hi{color:var(--sand)}:root[data-theme=dark] .coef-mid,:root[data-theme=dark] .coef-lo{color:var(--primary)}.chart-card{padding:12px 10px 6px}.tidechart{width:100%;height:auto;display:block;aspect-ratio:760 / 300}.tidechart .ax-y,.tidechart .ax-x{fill:var(--text-3);font-size:11px;font-family:var(--font)}.tidechart .mk-time{fill:var(--heading);font-size:12px;font-weight:700;font-family:var(--font-display)}.tidechart .mk-h{fill:var(--text-2);font-size:10.5px;font-family:var(--font)}.hl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.hl-col{padding:14px}.hl-head{display:flex;align-items:center;gap:6px;font-size:13px;margin-bottom:8px}.hl-head.high{color:var(--primary)}.hl-head.low{color:var(--coral)}.hl-row{display:flex;align-items:baseline;justify-content:space-between;padding:6px 0;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}.hl-row:first-of-type{border-top:0}.hl-time{font-weight:600}.hl-h{color:var(--text-2);font-size:13.5px}.sun-card{display:flex;justify-content:space-around;gap:8px;padding:14px;margin-top:12px}.sun-item{display:flex;align-items:center;gap:10px;min-width:0}.sun-item svg{color:var(--sand);flex:0 0 auto}.sun-item>div{display:flex;flex-direction:column}.sun-item .muted{font-size:11.5px}.sun-item strong{font-family:var(--font-display);font-size:15px}.disclaimer{margin:16px 2px 4px;font-size:11.5px;color:var(--text-3);line-height:1.6}.moon{display:inline-flex;filter:drop-shadow(0 2px 5px rgba(8,53,74,.18))}.moon.sm{filter:none}.week-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:10px;flex-wrap:wrap}.week-head h2{font-size:20px}.week-row{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:12px 14px;margin-bottom:10px;background:var(--surface);border:1px solid var(--line);cursor:pointer;text-align:left}.week-row:hover{border-color:var(--primary)}.week-left{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:64px}.week-left strong{font-family:var(--font-display);font-size:14px}.minicurve{width:100%;height:46px;opacity:.95}.week-ex{display:flex;flex-direction:column;gap:3px;font-size:11px;font-variant-numeric:tabular-nums;min-width:92px}.wex{color:var(--text-2);white-space:nowrap}.wex i{font-style:normal;margin-right:3px}.wex b{color:var(--text)}.wex.high i{color:var(--primary)}.wex.low i{color:var(--coral)}.map-wrap{position:relative;border-radius:var(--r);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-sm)}.leaflet-host{height:min(62vh,520px);width:100%;background:var(--surface-2)}.map-sat{position:absolute;top:10px;right:10px;z-index:500;background:var(--surface);color:var(--text);border:1px solid var(--line-2);border-radius:var(--r-pill);padding:7px 14px;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:var(--shadow-sm)}.map-geo{position:absolute;bottom:12px;left:10px;z-index:500;display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:var(--primary-ink);border:0;border-radius:var(--r-pill);padding:8px 14px;font-size:12.5px;font-weight:700;cursor:pointer;box-shadow:var(--shadow)}.map-note{font-size:12px;color:var(--text-2);margin:10px 2px;line-height:1.55}.map-current{display:flex;align-items:center;gap:10px;padding:12px 14px}.map-current svg{color:var(--primary)}.map-current strong{font-family:var(--font-display);display:block}.map-current .muted{font-size:12px}.sel-pin .sel-dot{width:18px;height:18px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 0 0 3px #f2724b66}.search{display:flex;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-pill);padding:10px 16px;margin-bottom:14px;box-shadow:var(--shadow-sm)}.search svg{color:var(--text-3)}.search input{flex:1;border:0;background:none;color:var(--text);font-size:15px;outline:none;font-family:inherit}.place-group{margin-bottom:16px}.place-group h3{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);margin:0 4px 8px;font-weight:700}.place-list{overflow:hidden}.place-row{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;padding:11px 14px;border-top:1px solid var(--line)}.place-row:first-child{border-top:0}.place-row.on{background:var(--primary-soft)}.place-main{text-align:left;background:none;border:0;cursor:pointer;min-width:0;padding:0}.place-name{font-family:var(--font-display);font-weight:700;font-size:14.5px;color:var(--heading);display:flex;align-items:center;gap:7px}.cap{font-style:normal;font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--primary);background:var(--primary-soft);padding:1px 6px;border-radius:999px}.place-meta{font-size:11.5px;color:var(--text-2)}.place-tide{text-align:right;display:flex;flex-direction:column;font-size:12px;font-variant-numeric:tabular-nums}.place-tide .muted{font-size:10.5px}.star{background:none;border:0;font-size:18px;color:var(--line-2);cursor:pointer;padding:2px 4px;line-height:1}.star.on{color:var(--sand)}.set-card{padding:16px;margin-bottom:14px}.set-card h3,.info-card h3{font-size:16px;margin-bottom:12px}.set-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid var(--line);flex-wrap:wrap}.set-row:first-of-type{border-top:0}.segs{display:inline-flex;background:var(--surface-2);border-radius:var(--r-pill);padding:3px;gap:2px}.seg{border:0;background:none;color:var(--text-2);font-size:12.5px;font-weight:600;padding:6px 13px;border-radius:var(--r-pill);cursor:pointer;font-family:inherit}.seg.on{background:var(--surface);color:var(--primary);box-shadow:var(--shadow-sm)}.info-card{padding:16px;margin-bottom:14px}.info-card p{font-size:13.5px;color:var(--text-2);margin:0 0 10px;line-height:1.65}.info-card p:last-child{margin-bottom:0}.info-card b{color:var(--text)}.info-card.warn{border-color:color-mix(in srgb,var(--sand) 50%,var(--line));background:color-mix(in srgb,var(--sand-soft) 40%,var(--surface))}.datum-note{font-size:12.5px!important;padding-top:10px;border-top:1px dashed var(--line)}.more-foot{text-align:center;padding:22px 10px 6px;display:flex;flex-direction:column;gap:3px}.more-foot strong{font-family:var(--font-display);font-size:18px;color:var(--primary)}.more-foot span{font-size:13px;color:var(--text-2)}.more-foot small{font-size:11px;color:var(--text-3);margin-top:4px}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;justify-content:space-around;gap:2px;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line)}.tabbtn{flex:1;max-width:120px;display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:0;color:var(--text-3);cursor:pointer;padding:4px 2px;font-family:inherit}.tabbtn span{font-size:10.5px;font-weight:600}.tabbtn.on{color:var(--primary)}.tabbtn.on svg{transform:translateY(-1px)}@media (max-width: 460px){.big-num{font-size:48px}.hl-grid{gap:10px}.week-row{grid-template-columns:auto 1fr}.week-ex{grid-column:1 / 3;flex-direction:row;flex-wrap:wrap;min-width:0}.sun-card{flex-direction:column;align-items:stretch}.sun-item{justify-content:flex-start}}
