@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;750;800&display=swap');
:root{--ink:#172e3d;--muted:#658397;--line:#dee3e6;--paper:#f3f6f8;--teal:#194868;--green:#b7d5e9}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit}button{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e3a75c;outline-offset:3px}button:disabled{opacity:.5;cursor:wait}.sidebar{width:246px;position:fixed;inset:0 auto 0 0;border-right:1px solid var(--line);padding:34px 22px 20px;background:#ebeff2;display:flex;flex-direction:column;z-index:10}.brand{font-family:Manrope,sans-serif;font-size:28px;font-weight:800;text-decoration:none;letter-spacing:-1.4px;display:flex;align-items:center;gap:8px;white-space:nowrap}.brand-mark{font-size:48px;line-height:.6;transform:rotate(-8deg)}.brand-dot{font-size:10px;align-self:flex-start;letter-spacing:0;margin:5px 0 0 -6px}.sidebar-caption{font-size:9px;letter-spacing:2.2px;margin:19px 0 40px 6px;color:#68879b}nav{display:grid;gap:9px}.nav{border:0;background:none;display:flex;align-items:center;text-align:left;width:100%;padding:13px 14px;border-radius:7px;gap:11px;font-size:13px}.nav.active{background:#d8e0e6;font-weight:650}.nav-arrow{margin-left:auto}.side-section{display:flex;align-items:center;justify-content:space-between;margin:34px 8px 10px;font-size:10px;letter-spacing:1.4px;color:#617e92}.icon-button{background:transparent;border:0;font-size:23px;width:32px;height:32px;border-radius:6px;display:inline-grid;place-items:center}.icon-button:hover{background:#dfe4e8}.spot-item{display:flex;align-items:center;gap:9px;margin:3px 0}.spot-select{flex:1;border:0;background:none;text-align:left;padding:10px 12px;font-size:13px;border-radius:6px;min-width:0}.spot-select.selected{background:#fff;box-shadow:0 1px 4px #172e3d08;font-weight:650}.spot-select small{display:block;margin:5px 0 0 18px;color:#6b889c;font-size:10px;font-weight:400}.delete-spot{border:0;background:none;color:#7893a5;font-size:16px;padding:5px}.new-spot{border:1px dashed #b7c5cf;background:transparent;border-radius:6px;padding:11px 5px;margin:16px 4px;font-size:12px;color:#587385}.sidebar-bottom{margin-top:auto;padding:25px 6px 0}.privacy-icon{font-size:28px;color:#7691a3;margin-bottom:10px}.sidebar-bottom strong{font-size:12px}.sidebar-bottom p{font-size:11px;line-height:1.8;color:#708da0}.text-button{border:0;background:none;padding:0;text-align:left;font-size:12px;font-weight:600;color:var(--teal)}.profile{border-top:1px solid #d7dde1;margin-top:27px;padding-top:20px;display:flex;align-items:center;gap:9px}.avatar{background:#d5dee4;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;font-size:12px}.profile b{font-size:11px}.profile small{display:block;font-size:9px;color:#728ea1;margin-top:3px}.small-pill{font-size:8px;border:1px solid #c5d0d8;padding:4px;border-radius:4px;margin-left:auto}main{margin-left:246px}.topbar{height:76px;border-bottom:1px solid var(--line);padding:0 44px;display:flex;align-items:center;justify-content:space-between;font-size:12px}.breadcrumb{color:#738fa1}.breadcrumb span{padding:0 14px;color:#b5c3cd}.breadcrumb b{font-weight:500;color:#3e515e}.top-actions{display:flex;align-items:center;gap:19px}.private-tag{font-size:11px;color:#627f92}.content{max-width:1480px;margin:auto;padding:38px 44px 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:42px;gap:20px}.eyebrow{font-size:9px;letter-spacing:1.8px;font-weight:650;color:#6f8c9f}h1{font-family:Manrope,sans-serif;font-weight:650;letter-spacing:-1.6px;font-size:35px;margin:10px 0 9px}.intro p{color:#7490a2;font-size:12px;margin:0}.region-tabs{display:flex;gap:3px;background:#dfe8ee;border:1px solid #d9e0e5;padding:4px;border-radius:7px;white-space:nowrap}.region-tabs button{background:none;border:0;border-radius:4px;padding:9px 12px;font-size:11px;color:#638195}.region-tabs button.selected{background:#fff;color:#243a48;box-shadow:0 1px 4px #182e3d0c}.spot-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.spot-heading h2{font-family:Manrope,sans-serif;font-size:28px;letter-spacing:-1px;margin:8px 0}.spot-heading h2 span{font-size:22px;color:#849dad;font-weight:400}.spot-heading p{color:#7a94a6;font-size:10px;margin:0}.button{border-radius:6px;padding:11px 15px;border:1px solid #d2dadf;font-size:11px;font-weight:600}.light{background:#fff}.primary{background:var(--ink);color:#fff;border:0;display:block;margin-top:20px;width:100%;font-size:13px}.status{font-size:10px;color:#6a889c;margin:9px 0 15px;min-height:13px}.status.error{color:#ad5938}.overview{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.hero{background:#172f3f;border-radius:10px;color:#e8f0f6;position:relative;overflow:hidden;min-height:251px;padding:23px 25px 19px;display:flex;flex-direction:column}.hero-top{display:flex;justify-content:space-between;gap:10px;position:relative;z-index:1;font-size:9px;letter-spacing:1px}.hero-label{color:#bbc9d2}.live-dot{letter-spacing:0;color:#c0d4e2;white-space:nowrap}.hero-rating{font-family:Manrope,sans-serif;font-weight:600;font-size:42px;letter-spacing:-1.6px;position:relative;z-index:1;margin:25px 0 5px}.hero p{max-width:390px;color:#c5cfd5;font-size:11px;line-height:1.7;position:relative;z-index:1;margin:0 0 35px}.hero-wave{position:absolute;right:-40px;bottom:3px;width:67%;height:150px;opacity:.32;transform:rotate(-8deg)}.hero-wave svg{width:100%;height:100%;fill:none;stroke:#99b0bf;stroke-width:1}.hero-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:20px;position:relative;z-index:1;font-size:9px;color:#99adbb}.hero-bottom span:last-child{font-size:7px;letter-spacing:1px}.map-card{position:relative;border-radius:10px;overflow:hidden;background:#c8d2d9;min-height:251px}.map-card #map{height:100%;min-height:251px;z-index:1}.map-badge{position:absolute;top:14px;left:14px;background:#fffffff0;border:1px solid #e4e9ed;border-radius:5px;padding:8px 10px;font-size:10px;z-index:2;box-shadow:0 2px 12px #162d3d12}.map-add{position:absolute;bottom:26px;left:14px;background:#fff;border:1px solid #d7dfe4;border-radius:5px;padding:9px 12px;font-size:10px;z-index:2}.leaflet-container{font-family:'DM Sans',sans-serif!important}.leaflet-control-attribution{font-size:8px!important}.leaflet-control-zoom{margin-top:55px!important}.metrics{display:grid;grid-template-columns:repeat(4,1fr);margin:18px 0 32px;border:1px solid var(--line);border-radius:8px;background:#fff}.metric{padding:19px 20px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric>span{font-size:8px;letter-spacing:1px;color:#6f8c9f}.metric strong{display:block;font-family:Manrope,sans-serif;font-weight:600;font-size:29px;letter-spacing:-.9px;margin:11px 0 5px}.metric strong small{font-family:'DM Sans',sans-serif;font-size:13px;letter-spacing:0;font-weight:400;color:#708da0}.metric p{font-size:10px;color:#6e8b9f;margin:0}.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.section-title h3{font-family:Manrope,sans-serif;font-size:19px;letter-spacing:-.5px;font-weight:650;margin:0 0 7px}.section-title h3 span{color:#89a0b0;margin-left:7px}.section-title p{font-size:11px;color:#7993a5;margin:0}.legend{font-size:9px;color:#6a889c;display:flex;align-items:center;gap:6px}.dot{display:inline-block;width:6px;height:6px;border-radius:50%;margin-left:10px}.epic{background:#244e6a}.good{background:#74a1bf}.fair{background:#d9bf7a}.forecast-section{margin-bottom:26px}.days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:13px}.day{border:1px solid var(--line);border-radius:6px;background:transparent;padding:11px 5px;text-align:center;font-size:10px;color:#708da0;min-height:64px}.day b{display:block;color:#556e7f;font-size:12px;margin-top:7px;font-weight:600}.day.selected{background:#dde7ed;border-color:#afc1cd;color:#2c4759}.day.selected b{color:#2c4759}.forecast-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:7px;background:#fff}table{border-collapse:collapse;width:100%;text-align:left;white-space:nowrap}th{font-size:8px;letter-spacing:1px;font-weight:500;color:#829bab;background:#e9eff3;padding:14px 15px}td{padding:13px 15px;font-size:11px;border-top:1px solid #e8edf0;color:#546e7f}td:first-child{font-weight:600;color:#2d414f}.rating{display:inline-block;padding:6px 9px;border-radius:4px;font-size:10px;min-width:86px}.rating.epic{background:#d8e2e9;color:#214761}.rating.good{background:#dbe6ee;color:#40637a}.rating.fair{background:#f4eedc;color:#a28a47}.rating.poor,.rating.unknown{background:#eceff1;color:#7d97a9}.reason-cell{font-size:10px;color:#7994a6;max-width:290px;overflow:hidden;text-overflow:ellipsis}.calendar-button{border:1px solid #d5dfe5;border-radius:4px;background:#fff;padding:5px 8px;font-size:10px}.table-footer{display:flex;justify-content:space-between;font-size:9px;color:#7792a4;padding:12px 0}.empty{text-align:center;padding:40px}.bottom-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.knowledge,.source-card{padding:25px;border:1px solid var(--line);border-radius:8px}.knowledge{background:#dfe8ee;position:relative}.mini-label{font-size:8px;letter-spacing:1.6px;color:#7691a3}.bottom-grid h3{font-family:Manrope,sans-serif;font-size:22px;line-height:1.45;letter-spacing:-.6px;font-weight:600;margin:12px 0 10px}.bottom-grid p{font-size:11px;color:#69879b;line-height:1.8;max-width:390px}.knowledge .text-button{margin-top:10px}.source-card{background:#edf2f5}.source-card h3{font-size:18px}.source-links{display:flex;gap:20px;margin:17px 0}.source-links a{font-size:11px;text-decoration:none;font-weight:600}.source-card small{font-size:9px;color:#829bab}footer{padding:28px 0 24px;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#869eae;font-size:9px}.footer-brand{font-family:Manrope,sans-serif;color:#6d8a9d;font-size:15px;font-weight:800;letter-spacing:-.6px}footer button{font-size:10px!important}dialog{border:1px solid #d5dee4;border-radius:13px;box-shadow:0 20px 100px #122c3d30;padding:28px;width:min(520px,calc(100% - 30px));color:var(--ink);background:var(--paper);max-height:90vh;overflow:auto}dialog::backdrop{background:#122c3d65;backdrop-filter:blur(4px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px}dialog h2{font-family:Manrope,sans-serif;font-size:26px;letter-spacing:-1px;margin:6px 0 12px}dialog p{color:#658397;font-size:12px;line-height:1.8}dialog label{font-size:11px;display:block;margin-top:16px;font-weight:600}input,select{width:100%;display:block;padding:11px;margin-top:7px;border:1px solid #cbd5dc;border-radius:5px;background:#fff;color:#293f4e}dialog small{display:block;font-size:10px;line-height:1.7;color:#738fa2;margin-top:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 15px}.rule-note{font-size:10px;line-height:1.8;margin-top:18px;padding:13px;border-radius:5px;background:#dfe7ed;color:#617e91}.error{color:#a54d36!important}.toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%) translateY(100px);background:#172f3f;color:#fff;padding:13px 20px;border-radius:7px;z-index:1000;transition:transform .2s;font-size:12px;max-width:90vw}.toast.show{transform:translateX(-50%) translateY(0)}#infoBody{font-size:12px;line-height:1.9;color:#5f7b8e}#infoBody a{color:var(--teal)}.map-pin{width:16px;height:16px;background:#1c4a69;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 8px #19486820}.map-fallback{padding:70px 25px;color:#516a7a;font-size:12px}
@media(min-width:0px){.sidebar{width:210px;padding:30px 15px 18px}main{margin-left:210px}.content{padding:30px 25px 0}.topbar{padding:0 25px}.intro{align-items:flex-start;flex-direction:column;gap:22px;margin-bottom:30px}.hero-rating{font-size:34px}.hero-bottom span:last-child{display:none}.metric{padding:16px 13px}.metric>span{letter-spacing:.4px}.reason-cell{max-width:190px}.brand{font-size:25px}.brand-mark{font-size:40px}}
@media(min-width:0px){.sidebar{position:relative;width:100%;height:auto;padding:18px 20px;display:block;border-right:0;border-bottom:1px solid var(--line)}.brand{font-size:25px}.sidebar-caption,nav,.side-section,.sidebar-bottom,.new-spot{display:none}#spotList{display:flex;gap:6px;margin-top:15px;overflow:auto}.spot-item{min-width:max-content}.spot-select{padding:8px 12px;background:#dfe6eb}.spot-select small{display:none}.delete-spot{display:none}main{margin-left:0}.topbar{height:49px;padding:0 20px}.content{padding:26px 20px 0}h1{font-size:31px}.intro{gap:20px;margin-bottom:30px}.region-tabs{width:100%}.region-tabs button{flex:1}.spot-heading h2{font-size:25px}.spot-heading .button{font-size:10px;padding:10px}.overview{grid-template-columns:1fr}.hero{min-height:230px}.hero-rating{font-size:41px}.hero p{margin-bottom:20px}.map-card,.map-card #map{min-height:210px;height:210px}.metrics{grid-template-columns:1fr 1fr;margin-top:15px}.metric{padding:17px}.metric:nth-child(2){border-right:0}.metric:nth-child(-n+2){border-bottom:1px solid var(--line)}.section-title{align-items:flex-start;gap:15px}.legend{font-size:8px;gap:3px;margin-top:6px}.dot{margin-left:4px}.section-title h3{font-size:17px}.section-title p{font-size:10px}.days{display:flex;overflow:auto;gap:6px}.day{min-width:69px;flex:1}.bottom-grid{grid-template-columns:1fr}.table-footer{font-size:8px;gap:15px;line-height:1.6}footer{flex-wrap:wrap}footer>span:nth-child(2){display:none}.hero-top{font-size:8px}.private-tag{font-size:10px}.knowledge,.source-card{padding:22px}.metric>span{font-size:8px}}

/* Coast controls and forecast record details */
.coast-controls{display:flex;align-items:flex-end;gap:10px}.coast-picker{display:block;min-width:180px}.coast-picker>span{font-size:8px;letter-spacing:1.5px;color:#6f8c9f}.coast-picker select{margin-top:5px;padding:10px 32px 10px 12px;font-size:12px}.coast-controls>.button{height:39px;white-space:nowrap}.delete-spot{display:block!important;flex-shrink:0;border-radius:4px;width:25px;height:28px}.delete-spot:hover{background:#eddfd3;color:#9b553b}.no-spots{font-size:11px;line-height:1.8;color:#6d8a9e}.undo-remove{padding:8px 12px;font-size:11px}.undo-remove[hidden]{display:none}.metrics{grid-template-columns:repeat(5,1fr)}.metric{padding:17px 13px}.forecast-row{cursor:pointer}.forecast-row:hover{background:#e9f0f5}.record-button{border:0;background:transparent;color:#2d4759;padding:0;font-weight:600;font-size:11px;white-space:nowrap}.record-button:hover{text-decoration:underline}.record-summary{display:flex;align-items:center;gap:12px;font-size:11px;margin-top:12px}.detail-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:20px 0}.detail-metrics>div{border:1px solid #d5dee4;border-radius:6px;padding:11px}.detail-metrics small{margin:0;font-size:9px}.detail-metrics strong{display:block;font-size:20px;margin:7px 0}.detail-metrics span{display:block;font-size:9px;line-height:1.5;color:#7692a4}.swell-details{overflow-x:auto;border:1px solid #d5dee4;border-radius:6px}.swell-details td,.swell-details th{padding:11px 9px}.detail-note{font-size:10px!important}#infoDialog:has(.swell-details){width:min(650px,calc(100% - 24px))}
@media(min-width:0px){.metrics{grid-template-columns:repeat(3,1fr)}.metric:nth-child(3){border-right:0}.metric:nth-child(-n+3){border-bottom:1px solid var(--line)}}
@media(min-width:0px){.coast-controls{width:100%}.coast-picker{flex:1}.metrics{grid-template-columns:1fr 1fr}.metric:nth-child(3){border-right:1px solid var(--line)}.metric:nth-child(4){border-right:0;border-bottom:1px solid var(--line)}.metric:nth-child(5){grid-column:1 / -1;border-bottom:0}.undo-remove{margin-top:8px}.detail-metrics{gap:5px}.detail-metrics>div{padding:9px}.detail-metrics strong{font-size:17px}.record-summary{align-items:flex-start}.record-summary>span:last-child{font-size:10px}}

.breadcrumb{display:flex;align-items:center;white-space:nowrap}.breadcrumb select{width:auto;max-width:170px;display:inline-block;background:transparent;border:0;margin:0;padding:8px 22px 8px 0;font-size:12px;color:#3e515e;cursor:pointer}.breadcrumb>span{padding:0 12px}.coast-controls{width:auto!important}.session-section{margin:0 0 30px}.session-section .section-title{margin-bottom:15px;gap:15px}.session-section h3{font-size:18px}.session-empty{border:1px dashed #c8d5dd;border-radius:7px;padding:17px;color:#7692a4;font-size:11px;line-height:1.7}.session-entry{display:flex;align-items:center;gap:18px;padding:15px 17px;background:#fff;border:1px solid var(--line);border-radius:6px;margin-bottom:7px;font-size:11px}.session-entry>div{flex:1}.session-entry strong{display:block;font-size:12px}.session-entry>div>span{display:block;margin-top:5px;color:#7792a4;font-size:10px}.session-entry>.icon-button{font-size:18px}.session-rating{border:0;padding:0;margin:22px 0}.session-rating legend{font-size:12px;font-weight:600}.session-rating p{margin:8px 0 12px;font-size:11px}.rating-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rating-options label{margin:0;position:relative}.rating-options input{position:absolute;opacity:0;width:1px;height:1px}.rating-options span{display:block;padding:12px 5px;text-align:center;border:1px solid #cbd5dc;border-radius:5px;background:#fff;cursor:pointer;font-size:11px}.rating-options input:checked+span{background:#d5e2ea;border-color:#56758a;color:#244154}.rating-options input:focus-visible+span{outline:3px solid #e3a75c;outline-offset:2px}.session-privacy{padding:15px;background:#dfe8ee;border-radius:6px}.session-privacy strong{font-size:12px}.session-privacy p{font-size:11px;line-height:1.8;margin:7px 0 0}#sessionDialog{width:min(590px,calc(100% - 24px))}#sessionDialog h2{font-size:23px}#sessionDialog input[type=datetime-local]{min-width:0;font-size:12px}
@media(min-width:0px){.breadcrumb select{font-size:11px;max-width:135px}.topbar{padding:0 15px}.top-actions{gap:8px}.private-tag{display:none}.session-section .section-title{align-items:flex-start;flex-direction:column}.session-entry{flex-wrap:wrap;gap:10px}.session-entry>div{flex-basis:100%}.session-entry>.icon-button{margin-left:auto}.session-entry>.rating{margin-left:auto}.rating-options{gap:5px}.rating-options span{font-size:10px}.coast-controls{align-self:flex-end}.intro{gap:15px}#sessionDialog .form-grid{grid-template-columns:1fr}}

.session-conditions{background:#e5edf2;border:1px solid #cddae2;padding:8px 10px;border-radius:5px;font-size:10px;color:#4a6476;white-space:nowrap}.session-entry{flex-wrap:wrap}.session-entry>div{min-width:200px}.history-consent{display:flex!important;align-items:center;gap:10px;line-height:1.6;margin-top:20px}.history-consent input{width:17px;height:17px;margin:0;accent-color:#294c64;flex-shrink:0}.history-disclosure{font-size:10px!important;margin-top:6px!important;color:#738fa2!important}.history-export{margin:16px auto 0;display:block}.session-conditions:disabled{cursor:wait}

.all-swells-hint{font-size:9px;color:#4a6476;margin-top:5px}#backToHistory{margin-top:10px}.detail-metrics strong{overflow-wrap:anywhere}

.cloud-status{border:1px solid #d0dbe2;background:#e5edf3;color:#486171;padding:7px 10px;border-radius:5px;font-size:10px;white-space:nowrap}.cloud-status[data-status=offline],.cloud-status[data-status=conflict]{background:#f4e9d4;color:#997038}.cloud-status[data-status=saving]{color:#628094}.account-gate{position:fixed;inset:0;background:#f3f6f8f5;backdrop-filter:blur(7px);z-index:2000;display:grid;place-items:center;padding:25px}.account-gate>div{max-width:390px;width:100%;text-align:center}.account-gate h2{font-family:Manrope,sans-serif;font-size:28px;letter-spacing:-1px}.account-gate p{color:#6c899d;line-height:1.8}.account-gate a{text-decoration:none}.account-gate .text-button{display:block;margin:20px auto}.account-actions{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.import-records{display:inline-flex;margin:0!important;cursor:pointer}.import-records input{max-width:180px;font-size:10px;display:block}.account-danger{margin:24px 0 16px;border-top:1px solid #d5dde3;padding-top:20px}.account-danger button{color:#a15d43}.account-danger p{font-size:10px!important}.account-actions .button{font-size:11px}#accountDialog>.session-privacy{margin-bottom:18px}.profile{cursor:pointer}#accountDialog h2{font-size:21px;overflow-wrap:anywhere}
@media(min-width:0px){.top-actions{gap:8px}.top-actions .private-tag{display:none}}
@media(min-width:0px){.cloud-status{width:27px;height:29px;font-size:0;padding:0}.cloud-status:before{content:'☁';font-size:17px}.top-actions{gap:4px}.breadcrumb select{max-width:130px}.topbar{padding:0 12px}}

.cloud-status{display:inline-block;background:none;border:0;padding:0;font-size:10px;color:#6c899d;cursor:default}.cloud-status[data-status=offline],.cloud-status[data-status=conflict]{background:none;color:#a57c3d}.account-button{background:#e5edf2;border:1px solid #cbd7df;border-radius:5px;padding:7px 10px;font-size:11px;color:#3e5768}.account-button:hover{background:#d7e3eb}
@media(min-width:0px){.cloud-status{width:8px;height:auto;font-size:0}.cloud-status:before{content:'●';font-size:7px}.account-button{font-size:10px;padding:6px 8px}}

textarea{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #cbd5dc;border-radius:6px;background:#fff;color:#293f4e;font:inherit;font-weight:400;font-size:12px;line-height:1.7;resize:vertical;min-height:100px}textarea:focus-visible{outline:3px solid #e3a75c;outline-offset:2px}.optional-label{font-weight:400;color:#7793a5}.session-note-preview{margin:7px 0 0;color:#607d90;font-size:11px;line-height:1.7;overflow-wrap:anywhere}.session-note-full{margin:17px 0;padding:16px;background:#e1eaf0;border-radius:6px}.session-note-full strong{font-size:11px}.session-note-full p{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;margin:8px 0}.session-entry [data-note]{white-space:nowrap}

.personal-panel{margin:0 0 30px;background:#dfe9ef;border:1px solid #c6d6e0;border-radius:9px;padding:23px 25px}.personal-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.personal-heading h3{font-family:Manrope,sans-serif;font-size:25px;margin:10px 0 4px;letter-spacing:-.8px;font-weight:650}.personal-beta{font-size:8px;letter-spacing:1px;color:#567082;border:1px solid #b6cad7;border-radius:4px;padding:6px 8px;white-space:nowrap}.personal-panel>p{font-size:12px;line-height:1.8;color:#597385;max-width:750px}.personal-progress{font-size:10px;color:#658397;margin:14px 0}.personal-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #c5d3dd;padding-top:15px}.personal-footer>span{font-size:9px;color:#6c899d}.personal-panel>small{display:block;font-size:9px;color:#7490a2;line-height:1.7;margin-top:12px}.personal-pill{border:1px solid #c6d5df;border-radius:4px;background:#e9f0f5;color:#47667b;padding:6px 8px;font-size:10px;white-space:nowrap}.personal-pill.learning{background:#ebeff1;border-color:#dae1e5;color:#7c96a7}.personal-pill.good,.personal-pill.epic{background:#d3e0e9;color:#30536a}.personal-pill.bad{background:#f4e7df;color:#a37352}.personal-pill.surfable{background:#f1edda;color:#9b864b}.personal-detail-title h3{font-family:Manrope,sans-serif;font-size:24px;margin:16px 0 8px}.personal-matches{display:grid;gap:9px;margin-bottom:20px}.personal-matches article{padding:14px;border:1px solid #cedbe3;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:#fff}.personal-matches article>div{display:grid;gap:4px;font-size:12px}.personal-matches article>div>span{font-size:10px;color:#7490a2}.personal-matches article>span{font-size:10px;color:#546e80}.personal-matches article>p{width:100%;margin:4px 0;font-size:11px;white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:0px){.personal-panel{padding:20px}.personal-heading{align-items:flex-start}.personal-heading h3{font-size:22px}.personal-beta{font-size:7px;letter-spacing:.6px;padding:5px}.personal-footer{align-items:flex-start;flex-direction:column;gap:12px}}
/* Private alerts and calendar planner */
.coast-controls{flex-wrap:wrap;justify-content:flex-end;gap:8px}.planner-tabs{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:12px 0}.check-label{display:flex;gap:10px;align-items:center;font-weight:500;margin:12px 0}.check-label input[type=checkbox]{width:18px;height:18px;accent-color:#122c3d;flex:0 0 18px}.watch-spots{display:grid;grid-template-columns:1fr 1fr;gap:0 12px;max-height:190px;overflow:auto}#surfPanel{width:min(720px,94vw)}#surfPanel fieldset{border:1px solid #ccd7de;border-radius:8px;padding:12px;margin:18px 0}#surfPanel legend{padding:0 8px;font-weight:600}#surfSave{color:#465a68;font-size:13px}.push-box{background:#e7eef2;border-radius:10px;padding:18px;margin:22px 0}.push-box small,#surfPanel small{line-height:1.6;display:block}.inbox-item,.plan-item{border-top:1px solid #ccd7de;padding:18px 0}.inbox-item strong,.plan-item strong{display:block;margin:7px 0}.inbox-item p{margin-bottom:0}.plan-item.cancelled{opacity:.65}.planner-tabs .text-button{text-align:left}#surfPanel button:disabled{opacity:.5;cursor:default}@media(min-width:0px){.coast-controls{justify-content:flex-start}.watch-spots{grid-template-columns:1fr}.intro{align-items:flex-start}#surfPanel .form-grid{grid-template-columns:1fr}}
.auth-card{max-width:460px!important;text-align:left!important}.auth-card .brand{display:block;margin-bottom:26px}.auth-card .eyebrow{display:block;margin-bottom:12px}.auth-card h2{font-size:32px}.auth-card .button{width:100%;margin:12px 0}.auth-card small{display:block;line-height:1.6;margin-top:24px;color:#577182}.auth-card .text-button{display:block;margin:10px 0}.auth-divider{text-align:center;font-size:12px;color:#668498;margin:14px 0}.auth-card form label{margin:14px 0}

/* One phone-sized canvas on every device. Tables scroll inside their cards. */
html{background:#e3e7ea;min-height:100%}
body{width:100%;max-width:480px;min-height:100dvh;margin:0 auto;box-shadow:0 0 45px #172e3d12;overflow-wrap:break-word}
main,.content,.overview,.personal-panel,.session-section,.forecast-section{min-width:0}
.sidebar{padding-top:max(18px,env(safe-area-inset-top));position:relative}
.content{padding:24px 16px max(20px,env(safe-area-inset-bottom))}
.topbar{height:auto;min-height:56px;gap:6px;flex-wrap:wrap;padding:8px 12px}
.breadcrumb{display:flex;align-items:center;min-width:0}.breadcrumb span{padding:0 7px}
.top-actions{margin-left:auto;gap:4px}
.coast-controls{width:100%;justify-content:flex-start;gap:8px}.coast-controls .button{flex:1;min-height:44px;padding:10px 8px}
.spot-heading{gap:12px;flex-wrap:wrap}.spot-heading .button{min-height:44px}
.section-title{flex-wrap:wrap}.legend{flex-wrap:wrap}
#spotList{scrollbar-width:thin}.delete-spot{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:44px}
.spot-select{min-height:44px}.icon-button{min-width:36px;min-height:44px}
.forecast-scroll{max-width:100%;overscroll-behavior-x:contain}.days{max-width:100%;overscroll-behavior-x:contain}
button,input,select,textarea{touch-action:manipulation}input,select,textarea{font-size:16px}
dialog,#surfPanel{width:calc(100% - 24px);max-width:456px;max-height:calc(100dvh - 24px);padding:22px;overflow-y:auto}
.account-gate{left:50%;right:auto;transform:translateX(-50%);width:100%;max-width:480px;padding:20px;overflow-y:auto}
.auth-card{max-width:100%;min-width:0}.toast{width:calc(100% - 32px);max-width:448px}
.form-grid{grid-template-columns:1fr}.detail-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
footer{gap:14px;line-height:1.7}.hero{min-height:230px}.hero-rating{font-size:41px}
/* Compact mobile report and progressive disclosure. */
[hidden]{display:none!important}
.hero{min-height:0;padding:16px 18px;background:#e9edf0;color:var(--ink);border:1px solid var(--line);border-left:5px solid #93a9b7}
.hero[data-level=fair]{background:#f4eedc;border-left-color:#ba9c4e}.hero[data-level=good]{background:#dbe6ee;border-left-color:#74a1bf}.hero[data-level=epic]{background:#d8e2e9;border-left-color:#244e6a}
.hero-wave,.hero-bottom{display:none}.hero-rating{font-size:28px;margin:10px 0 5px;letter-spacing:-.7px}.hero p{margin:0;max-width:100%;color:#546e7f}.hero-label,.live-dot{color:#546e7f}
.rating-key{display:flex;flex-wrap:wrap;gap:9px;margin-top:10px;font-size:9px;color:#617e92}.rating-key span{display:flex;align-items:center;gap:4px}.rating-key .dot{margin:0}.dot.poor{background:#93a9b7}
.info-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.info-tile{aspect-ratio:1;text-align:left;display:flex;flex-direction:column;justify-content:space-between;padding:16px;min-width:0}.info-tile h3,.source-card.info-tile h3{font-size:17px;line-height:1.4;margin:10px 0}.info-tile>span:last-child{font-size:10px}.info-tile .mini-label{font-size:7px;letter-spacing:1px}.provider-update{display:block;margin-top:14px;color:#6f8c9f;font-size:9px}
.forecast-scroll{max-height:449px;overflow:auto}.forecast-scroll thead{position:sticky;top:0;z-index:2}.forecast-scroll tbody tr{height:50px}.forecast-scroll td{padding-top:8px;padding-bottom:8px}.forecast-range{font-size:10px;color:#658397;line-height:1.6}.forecast-section .section-title{margin-bottom:12px}
#mapDialog .map-card,#mapDialog #map{height:55dvh;min-height:260px}#mapDialog{padding:16px}.coast-controls .button{flex:0 1 auto}.wind-history{padding:12px;background:#dfe8ee;border-radius:8px;margin:14px 0}.wind-history p{margin:6px 0}

/* Forecast first, with a separate journal view. */
.sidebar{padding:16px 20px 12px}.sidebar #spotList{display:none}.sidebar .brand{font-size:23px}.sidebar .brand-mark{font-size:34px}
.topbar{padding:8px 14px;gap:6px}.breadcrumb{width:100%;font-size:11px}.breadcrumb select{width:auto;flex:1;max-width:45%;min-width:0;margin:0;padding:9px 6px;border:0;background:transparent;font-weight:600;font-size:13px}.breadcrumb #spotSelect{flex:1.2}.top-actions{width:100%;justify-content:flex-end;gap:7px}.top-actions .account-button{min-height:36px;padding:7px 9px;font-size:11px}.top-actions .icon-button{min-height:36px;min-width:30px;width:30px}.cloud-status{margin-right:auto}
.intro{display:none}.content{padding-top:14px}.spot-heading{margin-bottom:0;align-items:center}.spot-heading>div{display:none}.spot-heading .button{min-height:32px;padding:7px 10px;font-size:10px;margin-left:auto}.spot-heading #removeActiveSpot{display:none}
.status{font-size:9px;margin:5px 0 10px;min-height:0}.hero{padding:10px 14px}.hero-top{font-size:8px}.hero-rating{font-size:24px;margin:5px 0 3px}.hero p{font-size:10px;line-height:1.5}.rating-key{margin-top:7px;gap:8px;font-size:8px}
.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 18px}.metric,.metric:nth-child(n){padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);grid-column:auto}.metric:nth-child(3){border-right:0}.metric:nth-child(4),.metric:nth-child(5){border-bottom:0}.metric>span{font-size:7px;letter-spacing:0}.metric strong{font-size:20px;margin:5px 0 0}.metric strong small{font-size:10px}.metric p{display:none}
#sessionsPage h2{font-family:Manrope,sans-serif;font-size:24px;letter-spacing:-.7px}#sessionsPage>.section-title{margin-bottom:20px}.info-tiles{margin-top:20px}

.removal-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.removal-actions .primary{margin:0;background:#963e31;flex:1;min-width:160px}.removal-actions .light{min-height:44px}#infoBody ul{padding-left:20px;line-height:1.8}

.map-coasts{display:flex;gap:6px;margin:12px 0;flex-wrap:wrap}.map-coasts .button{min-height:40px;flex:1;padding:8px}.map-coasts [aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.selected-map-pin{background:#b88636;box-shadow:0 0 0 7px #b8863633}.map-card .leaflet-marker-icon:focus-visible{outline:3px solid #e3a75c;outline-offset:5px}

/* Ocean palette: deep water, blue shallows, seafoam and warm sand. */
:root{--ink:#123c55;--muted:#617e90;--line:#d6e5ed;--paper:#f7fbfd;--teal:#087da7;--green:#d9f1f6}
html{background:#dcecf3}body{background:var(--paper);box-shadow:0 0 48px #123c5515}
.sidebar{background:linear-gradient(115deg,#103d5b 0%,#086f98 70%,#168eae 100%);border:0;position:relative;overflow:hidden;padding-top:18px;padding-bottom:18px}
.sidebar:after{content:'';position:absolute;bottom:-30px;right:-20px;width:240px;height:55px;border:1px solid #ffffff26;border-radius:50%;transform:rotate(-8deg);pointer-events:none;box-shadow:0 -9px 0 -8px #ffffff30,0 -18px 0 -17px #ffffff22}
.sidebar .brand{color:#f4fcff;position:relative;z-index:1}.brand-mark{color:#90e4f2}
.topbar{background:#edf7fb;border-bottom-color:#cee2ed}.breadcrumb{color:#59788b}.breadcrumb select{color:#123c55}.breadcrumb span{color:#8da9b8}
.account-button,.button.light{background:#fff;border-color:#c9dfe9;color:#245873}.account-button:hover,.button.light:hover{background:#e7f5fb}.text-button{color:#087ba4}.primary{background:#075f88}.icon-button:hover{background:#dceef6}.icon-button{color:#245873}
.hero{background:#edf4f8;border-color:#d6e5ed;border-left-color:#8da5b3}.hero[data-level=poor],.hero[data-level=unknown]{background:#eef3f6;border-left-color:#94a7b2}.hero[data-level=fair]{background:#fff5df;border-left-color:#d3a345}.hero[data-level=good]{background:#e2f5fb;border-left-color:#249bc3}.hero[data-level=epic]{background:#dcecfb;border-left-color:#1768ad}.hero-label,.live-dot{color:#526f81}.hero p{color:#4d6a7c}.hero-rating{color:#123c55}
.dot.poor{background:#94a7b2}.dot.fair{background:#d3a345}.dot.good{background:#249bc3}.dot.epic{background:#1768ad}.rating-key{color:#5e7889}
.rating.fair{background:#fff2d2;color:#805b10}.rating.good{background:#dff3fa;color:#12698b}.rating.epic{background:#dceafa;color:#17578c}.rating.poor,.rating.unknown{background:#edf2f5;color:#667f8c}
.day{border-color:#d8e7ef;color:#607e91;background:#f5fafc}.day b{color:#44677c}.day.selected{background:#dff2fb;border-color:#73b9d5;color:#0b6286}.day.selected b{color:#0b6286}
th{background:#eaf4f9;color:#607f92}td{color:#4e7085;border-top-color:#e8f0f5}td:first-child{color:#214f6b}.forecast-row:hover,.forecast-row:focus-within{background:#eef8fd}.forecast-scroll{border-color:#d6e5ed;scrollbar-color:#8fbccd #edf6fa}.days{scrollbar-color:#8fbccd #edf6fa}.metric>span{color:#607d90}.metric strong{color:#164f70}.metric strong small{color:#608093}
.knowledge{background:linear-gradient(145deg,#e0f1f8,#edf8fb);border-color:#cce4ef}.source-card{background:linear-gradient(145deg,#eef6fb,#f8fbfd);border-color:#d6e5ed}.mini-label{color:#587f95}.info-tile>span:last-child{color:#087ba4}
.personal-panel,.wind-history,.session-privacy,.rule-note,.push-box{background:#e9f5fb;border-color:#cfe4ef}.personal-heading h3{color:#164f70}.personal-panel>p,.personal-progress,.personal-panel>small{color:#5a7c90}.personal-beta{color:#31718e;border-color:#b8d8e7}.personal-footer{border-color:#cde4ef}.personal-pill.good,.personal-pill.epic{background:#dff2fb;color:#146a90}.personal-pill.learning{background:#edf3f7;color:#647e8f}
dialog{background:#f7fbfd;border-color:#cfe2ec}dialog::backdrop{background:#092e4e70}.auth-card{background:#fff;border-color:#d6e5ed}.account-gate{background:#f0f8fc}.auth-card .brand{color:#075f88}input,select,textarea{border-color:#c6dce8;color:#244e69}.toast{background:#103f5c}.map-pin{background:#087fac;border-color:#fff;box-shadow:0 0 0 7px #148bb322}.selected-map-pin{background:#e4aa46;box-shadow:0 0 0 7px #e4aa4633}.map-coasts [aria-pressed=true]{background:#075f88;border-color:#075f88}.map-card{background:#cce7f2}.map-badge,.map-add{color:#245873;border-color:#d2e6ef}
footer,.provider-update{color:#6d8798}.footer-brand{color:#296786}.removal-actions .primary{background:#963e31}
/* Warm sand around the ocean-blue accents. */
:root{--paper:#faf7ef;--line:#e5dfd1}
html{background:#e9e0cf}body{background:var(--paper)}
.topbar{background:#f4efe3;border-bottom-color:#e2dac9}.content{background:#faf7ef}
.metrics,.forecast-scroll{background:#fffdf8;border-color:#e5dfd1}.metric,.metric:nth-child(n){border-color:#e5dfd1}
th{background:#f1ecdf}.forecast-row:hover,.forecast-row:focus-within{background:#f6f1e6}td{border-top-color:#eee8dc}
.day{background:#f5f0e5;border-color:#e3dac8}.day.selected{background:#e2eff3;border-color:#86b5c6}
.account-button,.button.light{background:#fffdf7;border-color:#ddd6c5}.account-button:hover,.button.light:hover{background:#f2ecdd}
.knowledge{background:linear-gradient(145deg,#eee2cb,#f7efdf);border-color:#e1d3b8}.source-card{background:linear-gradient(145deg,#f2eadb,#fbf7ef);border-color:#e5dac7}
.personal-panel,.wind-history,.session-privacy,.rule-note,.push-box{background:#f2ecdd;border-color:#e1d6c1}
dialog{background:#faf7ef;border-color:#e3d8c5}.account-gate{background:#f7f1e5}.auth-card{background:#fffdf8;border-color:#e3dac8}input,select,textarea{background:#fffdf8;border-color:#ddd4c2}
.forecast-scroll,.days{scrollbar-color:#b7b5a7 #f3eddf}
/* A light touch of sand, with airy white surfaces. */
:root{--paper:#fbfbf8;--line:#e3e5df}
html{background:#eaece8}body,.content{background:#fbfbf8}
.topbar{background:#f5f5ef;border-bottom-color:#e2e5de}
.metrics,.forecast-scroll{background:#fffefa;border-color:#e3e5df}.metric,.metric:nth-child(n){border-color:#e3e5df}
th{background:#f3f3ec}td{border-top-color:#eeeee7}.forecast-row:hover,.forecast-row:focus-within{background:#f6f8f6}
.day{background:#f6f6f0;border-color:#e3e5db}.day.selected{background:#e2eff3;border-color:#86b5c6}
.account-button,.button.light{background:#fffffc;border-color:#dce2de}.account-button:hover,.button.light:hover{background:#eff5f5}
.knowledge{background:linear-gradient(145deg,#f1eee3,#faf9f3);border-color:#e4dfd1}.source-card{background:linear-gradient(145deg,#eef5f6,#fbfcfa);border-color:#dfe7e5}
.personal-panel,.wind-history,.session-privacy,.rule-note,.push-box{background:#f3f4ed;border-color:#e0e4d8}
dialog{background:#fbfbf8;border-color:#e0e4dd}.account-gate{background:#f8f9f5}.auth-card{background:#fffefa;border-color:#e2e5dc}input,select,textarea{background:#fffffc;border-color:#d9e1dd}
.forecast-scroll,.days{scrollbar-color:#a6bdc3 #f3f5f1}

/* A compact, readable sign-in card with a clear form rhythm. */
#authGate{background:radial-gradient(ellipse at 80% 0%,#e1f0f5 0%,transparent 45%),linear-gradient(180deg,#f6f8f7,#f7f5ef);padding:28px 18px;align-items:center;justify-items:center;align-content:safe center}
#authGate .auth-card{width:100%;max-width:400px!important;background:#fffefa;border:1px solid #dfe7e6;border-radius:20px;padding:26px 24px 20px;box-shadow:0 12px 40px #123c550a}
#authGate .brand{font-size:26px;line-height:1.2;letter-spacing:-1.1px;margin:0 0 24px;color:#075f88}
#authGate .eyebrow{font-size:9px;letter-spacing:1.8px;color:#6a8796;margin:0 0 8px}
#authGate h2{font-size:28px;line-height:1.2;letter-spacing:-1px;margin:0 0 10px}
#authGate .auth-card>p{font-size:13px;line-height:1.6;margin:0 0 22px;color:#607e90}
#authGate #googleAuth{min-height:46px;font-size:13px;font-weight:600;border:1px solid #cfdfe5;background:white;border-radius:9px;margin:0;display:flex;justify-content:center;align-items:center;gap:12px}
#authGate #googleAuth img{width:20px;height:20px;flex:0 0 20px;object-fit:contain}
#authGate .auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#7b919b;font-size:11px}
#authGate .auth-divider:before,#authGate .auth-divider:after{content:'';height:1px;flex:1;background:#e1e8e9}
#authGate form{display:grid;gap:14px}#authGate form label{display:block;margin:0;font-size:12px;font-weight:600;color:#2b5369}
#authGate input{width:100%;min-height:46px;margin:7px 0 0;padding:11px 13px;border-radius:8px;background:#fff;font-size:16px;border-color:#cfdfe5}
#authGate #authMessage{font-size:12px;line-height:1.5;margin:0}#authGate #authMessage:empty{display:none}
#authGate form .primary{min-height:46px;font-size:14px;border-radius:9px;margin:2px 0 0;background:#075f88}
#authGate .text-button{font-size:12px;line-height:1.5;min-height:36px;display:flex;align-items:center;margin:0;color:#087ba4;font-weight:600}
#authGate #switchAuth{margin-top:14px}#authGate #forgotAuth{font-size:11px;font-weight:500;color:#607e90;min-height:30px}
#authGate #backAuth{margin-top:12px}
#authGate .auth-footnote{border-top:1px solid #e6e9e6;margin-top:18px;padding-top:14px}
#authGate .auth-footnote small{font-size:10px;line-height:1.7;margin:0;color:#6d8490}
#authGate .auth-footnote p{font-size:10px;line-height:1.6;margin:12px 0 0;color:#55798d}
@media(max-height:700px){#authGate{align-items:start;align-content:start;padding-top:16px;padding-bottom:16px}#authGate .auth-card{padding:22px 20px 18px}#authGate .brand{margin-bottom:18px}}

/* SwellHunch wordmark and wave/intuition symbol. */
.brand-logo{display:block;flex:0 0 auto;object-fit:contain}.sidebar .brand{gap:10px;letter-spacing:-.9px;font-size:25px}.sidebar .brand-logo{border-radius:11px;box-shadow:0 0 0 1px #ffffff26}.footer-brand{letter-spacing:-.5px}
#authGate .brand{display:flex;align-items:center;gap:10px;font-size:27px;letter-spacing:-1px}#authGate .eyebrow{font-size:8px;letter-spacing:1.4px}
