:root{--green:#1f9d55;--yellow:#e0a800;--red:#d64545;--ink:#16242f;--muted:#5c6b76;--line:#d9e1e7;--bg:#f4f7f9;--card:#fff;--accent:#1f6f8b;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0}main{max-width:820px;margin:0 auto;padding:16px}h1{margin:0;font-size:1.5rem}a{color:var(--accent);text-decoration:none}button{font:inherit;cursor:pointer}.btn-primary,.btn-secondary{border:1px solid var(--accent);border-radius:8px;padding:8px 14px}.btn-primary{background:var(--accent);color:#fff}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:var(--accent);background:0 0}.slot{border-radius:3px;display:inline-block}.slot-green{background:var(--green)}.slot-yellow{background:var(--yellow)}.slot-red{background:var(--red)}.app-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.tagline{color:var(--muted);margin:4px 0 0;font-size:.9rem}.header-actions{align-items:center;gap:12px;display:flex}.account{color:var(--muted);align-items:center;gap:10px;font-size:.9rem;display:inline-flex}.account-name{color:var(--ink)}.site-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.site-row{background:var(--card);border:1px solid var(--line);border-radius:12px}.site-row-link{color:inherit;padding:14px 16px;display:block}.site-row-head{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.site-name{font-size:1.05rem;font-weight:600}.site-region{color:var(--muted);font-size:.85rem}.prime-strip{grid-template-columns:repeat(8,1fr);gap:3px;height:22px;display:grid}.prime-strip .slot{border-radius:4px;width:100%;height:100%}.legend{color:var(--muted);gap:16px;margin-top:18px;font-size:.85rem;display:flex}.legend .slot{vertical-align:-2px;width:14px;height:14px;margin-right:6px}.back-link{margin-bottom:12px;font-size:.9rem;display:inline-block}.detail-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.day-nav{align-items:center;gap:10px;display:flex}.day-nav-btn{border:1px solid var(--line);background:var(--card);border-radius:8px;padding:6px 10px}.day-heading{text-align:center;min-width:9rem;font-weight:600}.thresholds{flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0;display:flex}.threshold-chip{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:.85rem}.charts{gap:16px;display:grid}.day-chart{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:0;padding:10px 12px}.day-chart figcaption{margin-bottom:4px;font-size:.9rem;font-weight:600}.day-chart svg{width:100%;height:auto}.axis-label{fill:var(--muted);font-size:11px}.chart-grid{stroke:var(--line);stroke-width:1px}.chart-baseline{stroke:var(--muted);stroke-width:1px}.chart-curve{stroke:var(--accent);stroke-width:2px}.chart-threshold{stroke:var(--red);stroke-width:1.5px;stroke-dasharray:5 4}.chart-threshold-label{fill:var(--red);font-size:11px}.chart-marker-line{stroke:#c9a227;stroke-width:1px;stroke-dasharray:2 3}.chart-marker-label{fill:var(--muted);font-size:10px}.chart-annot-label{fill:var(--ink);font-size:10px}.annot-high .chart-annot-dot,.annot-flood .chart-annot-dot{fill:var(--accent)}.annot-low .chart-annot-dot,.annot-ebb .chart-annot-dot{fill:var(--muted)}.timeline-section{margin-top:22px}.timeline-section h2{font-size:1.1rem}.events-timeline{gap:2px;margin:0;padding:0;list-style:none;display:grid}.event{border-bottom:1px solid var(--line);grid-template-columns:5rem 16px 1fr;align-items:center;gap:8px;padding:7px 4px;display:grid}.event-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.9rem}.event-dot{background:var(--accent);border-radius:50%;width:10px;height:10px}.evt-sun .event-dot{background:#c9a227}.evt-current .event-dot{background:var(--muted)}.evt-score.score-green .event-dot{background:var(--green)}.evt-score.score-yellow .event-dot{background:var(--yellow)}.evt-score.score-red .event-dot{background:var(--red)}.event-detail,.empty{color:var(--muted)}.modal-overlay{background:#16242f73;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card);border-radius:14px;max-width:380px;padding:22px}.modal h2{margin-top:0}.modal-error{color:var(--red);margin:0;font-size:.9rem}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}
