:root{--bg:#f4efe6;--surface:#fffdf9;--text:#13262b;--muted:#5b6d71;--line:#e2dbcf;--brand:#0e6e7e;--brand-fg:#fff;--high:#0e6e7e;--low:#b5652b;--water:#8fd3d9;--water-line:#0e6e7e;--ok:#2f6b3f;--error:#a4372b;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0c1a1e;--surface:#132a30;--text:#e9f2f1;--muted:#9db3b5;--line:#22414a;--brand:#4fb8c4;--brand-fg:#06262c;--high:#6fcbd4;--low:#f0a86e;--water:#1f5761;--water-line:#6fcbd4;--ok:#8fd29d;--error:#ff9b8c;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font:16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.app{max-width:560px;min-height:100vh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);margin:0 auto}a{color:var(--brand)}.header{z-index:1;background:var(--bg);grid-template-columns:44px 1fr auto;align-items:center;gap:8px;padding:10px 16px;display:grid;position:sticky;top:0}.header.no-back{grid-template-columns:1fr auto}.header h1{white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:1.25rem;overflow:hidden}.header-back{place-items:center;width:44px;height:44px;font-size:2rem;line-height:1;text-decoration:none;display:grid}.header-action{text-align:right;min-width:44px}.content{gap:14px;padding:4px 16px 32px;display:grid}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.card h2{margin:0 0 10px;font-size:1rem}.card p{margin:8px 0 0}.card-title-row{justify-content:space-between;align-items:center;display:flex}.card-title-row h2{margin:0}.muted{color:var(--muted)}.small{font-size:.85rem}.center{text-align:center}.error,.error-inline{color:var(--error)}.ok{color:var(--ok)}.note{color:var(--muted);border-left:3px solid var(--brand);padding-left:10px}.places{gap:10px;margin:0;padding:0;list-style:none;display:grid}.place{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);gap:2px;padding:16px;text-decoration:none;display:grid}.place-name{font-weight:600}.place-next{color:var(--muted);font-size:.95rem}.button{background:var(--brand);width:100%;min-height:48px;color:var(--brand-fg);font:inherit;text-align:center;cursor:pointer;border:0;border-radius:12px;padding:12px 16px;font-weight:600;text-decoration:none;display:block}.button:disabled{opacity:.5;cursor:default}.button.secondary{color:var(--brand);border:1.5px solid var(--brand);background:0 0;margin-top:12px}.button.danger{color:var(--error);border:1.5px solid var(--error);background:0 0}.hero{border-radius:var(--radius);color:#fff;background:linear-gradient(160deg,#0e6e7e,#13505c);padding:20px}.hero.low{background:linear-gradient(160deg,#b5652b,#7c4420)}.hero p{margin:0}.hero-dir{text-transform:uppercase;letter-spacing:.06em;opacity:.85;font-size:.85rem}.hero-main{font-size:1.9rem;font-weight:700;line-height:1.2;margin-top:4px!important}.hero-sub{opacity:.9}.curve-card{padding:8px 8px 4px}.curve{width:100%;height:auto;display:block}.curve-placeholder{aspect-ratio:320/120}.curve-area{fill:var(--water);opacity:.55}.curve-line{fill:none;stroke:var(--water-line);stroke-width:2px}.curve-tick,.curve-label{fill:var(--muted);font-size:9px}.curve-label{fill:var(--text);font-weight:600}.curve-dot.high{fill:var(--high)}.curve-dot.low{fill:var(--low)}.curve-now{stroke:var(--text);stroke-dasharray:2 3;opacity:.6}.curve-now-dot{fill:var(--surface);stroke:var(--text);stroke-width:2px}.days{margin:0;padding:0;list-style:none}.day{border-top:1px solid var(--line);grid-template-columns:112px 1fr;align-items:start;gap:8px;padding:10px 0;display:grid}.day:first-child{border-top:0;padding-top:0}.day-label{white-space:nowrap;font-weight:600}.day-tides{flex-wrap:wrap;gap:6px;display:flex}.chip{font-variant-numeric:tabular-nums;border:1px solid var(--line);border-radius:999px;align-items:baseline;gap:4px;padding:3px 8px;font-size:.9rem;display:inline-flex}.chip-kind{font-weight:600}.chip.high .chip-kind{color:var(--high)}.chip.low .chip-kind{color:var(--low)}.chip-level{color:var(--muted);font-size:.8rem}.row{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;min-height:48px;margin-top:8px;display:flex}select,input{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:8px 10px}input[type=checkbox]{width:22px;height:22px;accent-color:var(--brand)}.switch{background:var(--line);cursor:pointer;border:0;border-radius:999px;flex:none;width:52px;height:32px;position:relative}.switch span{background:#fff;border-radius:50%;width:26px;height:26px;transition:transform .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.switch.on{background:var(--brand)}.switch.on span{transform:translate(20px)}.switch:disabled{opacity:.4}.preview{margin-top:12px}.preview h3{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin:0 0 6px;font-size:.85rem}.preview-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.preview-list li{font-size:.95rem;display:grid}.preview-when{font-variant-numeric:tabular-nums;font-weight:600}.coords{grid-template-columns:1fr 1fr;gap:10px;display:grid}.coords label,.field{color:var(--muted);gap:4px;min-width:0;font-size:.9rem;display:grid}.coords input,.field input{width:100%}.field{margin-bottom:12px}.credits{gap:10px;margin:0;padding:0;list-style:none;display:grid}.credits li{gap:2px;display:grid}.source p{font-size:.95rem}
