:root{--ink:#153d42;--muted:#658084;--aqua:#168f90;--orange:#e79346;--paper:#fbfdfa;--line:#dce7e4;--header:80px;--nav:66px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:#f2f6f3;font:14px/1.45 system-ui,'Malgun Gothic',sans-serif}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:0;background:none}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #49b7c3;outline-offset:2px}[hidden]{display:none!important}header{height:var(--header);display:flex;gap:18px;align-items:center;padding:0 24px;background:var(--paper);border-bottom:1px solid var(--line);position:relative;z-index:1000}.brand{font-size:23px;font-weight:900;letter-spacing:-1px}.brand span{color:var(--aqua);margin-left:3px}.brand small{display:block;font-size:9px;font-weight:500;letter-spacing:2px}form{position:relative;display:flex;align-items:center;width:340px;background:#edf3ef;border-radius:12px;padding:0 12px}form input{border:0;background:none;min-width:0;flex:1;height:43px;outline:none}form button{font-size:27px;width:32px}.icon{width:39px;height:39px;display:grid;place-items:center;font-size:24px;background:var(--paper);border-radius:10px}header>.icon{margin-left:auto}#searchResults{position:absolute;top:50px;left:0;right:0;border-radius:12px;background:var(--paper);box-shadow:0 8px 26px #173b3e25;overflow:hidden}#searchResults button{display:block;text-align:left;width:100%;padding:13px 16px;border-bottom:1px solid var(--line)}#searchResults button:hover{background:#edf5f2}main{height:calc(100dvh - var(--header) - var(--nav));overflow:hidden}.screen{height:100%}.home{overflow-y:auto;max-width:850px;margin:auto;padding:24px 28px 28px}.home-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.eyebrow{color:var(--muted);font-size:10px}.home h1{font-size:25px;margin:4px 0 0}.update{font-size:10px;color:var(--muted)}.week{display:flex;overflow-x:auto;gap:4px;padding:0 0 17px;margin-bottom:8px;scrollbar-width:thin}.week>button{flex:1;min-width:76px;display:grid;gap:4px;text-align:center;padding:10px 6px;border-radius:12px;font-size:12px}.week button.active{background:#dceee7}.week b{font-size:20px;font-weight:700}.week b small{font-size:10px;margin-left:2px;font-weight:400}.week em{font-size:11px;font-style:normal;color:var(--muted)}.week .dayrain{color:#6888a2;font-size:11px}.week>span{padding:12px;color:var(--muted)}.wind-panel,.tide-panel{padding:22px 0;border-top:1px solid #d3e1da}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-top h2{font-size:16px;margin:0;font-weight:700}.section-top>span{font-size:11px;color:var(--muted)}.weather-now{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.weather-now strong{display:block;font-size:49px;line-height:1.1;letter-spacing:-1.5px}.weather-now strong small{font-size:14px;font-weight:400;letter-spacing:0}.weather-now #windArrow{display:inline-block;font-size:31px;color:var(--aqua)}.weather-now #windDirection{font-size:17px;font-weight:500;display:block;margin:10px 0 0 4px}.rain-now{display:grid;text-align:right;gap:6px}.rain-now>span{font-size:12px;color:var(--muted)}.rain-now b{font-size:24px}.rain-now small{font-size:10px;color:var(--muted)}.hours{display:flex;gap:4px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:#b5cdca transparent}.hours button{flex:1;min-width:65px;display:grid;gap:6px;border-radius:9px;padding:10px 4px;font-size:11px;text-align:center}.hours button.active{background:#e4f0eb}.hours em{font-size:10px;font-style:normal;color:var(--muted)}.hours small{font-size:9px;font-weight:400;color:var(--muted)}.hours b{font-size:13px}.hours button>span{font-size:10px;color:var(--muted)}.weather-scrub{display:flex;align-items:center;gap:13px;margin-top:17px;font-size:11px;color:var(--muted)}.weather-scrub input{flex:1;accent-color:var(--aqua)}.weather-scrub output{font-size:13px;font-variant-numeric:tabular-nums}.wind-panel #weatherStatus{font-size:10px;color:var(--muted);margin:8px 0 0;min-height:15px}.tides{display:flex;margin:10px 0 18px}.tides>div{width:25%;display:grid;gap:7px}.tides span{color:var(--muted);font-size:12px}.tides b{font-weight:650;font-size:17px}.tidal-range{display:flex;justify-content:space-between;align-items:center;font-size:12px}.tidal-range span{font-size:10px;color:var(--muted)}.home-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);padding-top:18px;font-size:10px;color:var(--muted)}.home-footer button{background:var(--ink);color:white;padding:12px 18px;border-radius:11px;font-size:12px}.map-screen{position:relative;background:#d7e8e6}#map{height:100%;width:100%;background:#d7e8e6}.map-plan{position:absolute;left:18px;top:16px;z-index:900;display:flex;background:var(--paper);border-radius:13px;padding:10px 2px;box-shadow:0 4px 20px #173b3e15}.map-plan label{display:flex;flex-direction:column;border-right:1px solid var(--line);padding:0 13px;gap:3px}.map-plan label:last-child{border:0}.map-plan span{color:var(--muted);font-size:9px}.map-plan input,.map-plan select{background:none;border:0;font-size:12px;max-width:132px;padding:0;min-height:25px}.map-tools{position:absolute;top:17px;right:18px;z-index:900;display:grid;gap:8px}.map-tools .icon{box-shadow:0 3px 15px #173b3e12}.hint{position:absolute;top:90px;left:20px;z-index:850;color:var(--ink);background:#ffffffe0;border-radius:8px;padding:6px 10px;font-size:11px;pointer-events:none}.legend{position:absolute;bottom:157px;left:20px;z-index:850;display:flex;align-items:center;gap:7px;font-size:10px;background:#fbfdfae8;padding:6px 10px;border-radius:8px}.line{display:inline-block;width:16px;border-top:3px solid var(--ink)}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.khoa{background:var(--aqua)}.windy{background:var(--orange)}.map-dock{position:absolute;z-index:950;bottom:28px;left:18px;width:430px;max-width:calc(100% - 36px);padding:12px 16px 9px;background:#fbfdfaf7;border-radius:17px;box-shadow:0 7px 30px #183e4224;backdrop-filter:blur(10px)}.summary{display:flex;justify-content:space-between;align-items:center;gap:10px}.summary strong{font-size:30px;letter-spacing:-1px;line-height:1.1}.summary strong small{font-size:12px;letter-spacing:0;font-weight:500}.summary-right{text-align:right;display:grid;gap:3px;flex:1}.summary-right b{font-size:12px}.summary-right span{font-size:10px;color:var(--muted)}#details{border-left:1px solid var(--line);padding-left:10px;font-size:11px}.timeline{display:flex;gap:12px;align-items:center;padding-top:11px}.timeline button{font-size:10px;white-space:nowrap;border:1px solid var(--line);border-radius:7px;padding:6px}.timeline input{flex:1;min-width:0;accent-color:var(--aqua)}.timeline output{font-size:12px;font-variant-numeric:tabular-nums}.footnote{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:var(--muted);padding-top:7px}.leaflet-top.leaflet-left{top:127px;left:9px}.leaflet-control-zoom{border:0!important;box-shadow:0 3px 15px #173b3e12!important}.leaflet-control-attribution{font-size:9px!important}.waypoint{border:2px solid white;border-radius:50%;background:var(--ink);color:white;text-align:center;line-height:22px;font-size:10px;box-shadow:0 2px 5px #0004}.flow-icon{background:none;border:0}.flow-shell{height:32px;width:32px;position:relative}.flow-motion{position:absolute;font-size:23px;line-height:1;left:5px;top:6px;animation:flow 1.5s linear infinite;filter:drop-shadow(0 1px 1px #fff);font-weight:900}.flow-motion:nth-child(2){animation-delay:-.75s}@keyframes flow{0%{transform:translateY(9px);opacity:0}30%{opacity:1}100%{transform:translateY(-10px);opacity:0}}@media(prefers-reduced-motion:reduce){.flow-motion{animation:none}.flow-motion:nth-child(2){display:none}}.leaflet-popup-content{font-size:12px;line-height:1.7}.leaflet-popup-content b{font-size:13px}.warning{color:#ad6130}.bottom-nav{height:var(--nav);padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;gap:10px;background:var(--paper);border-top:1px solid var(--line);position:relative;z-index:1000}.bottom-nav button{width:150px;display:flex;justify-content:center;align-items:center;gap:8px;color:var(--muted);font-size:12px}.bottom-nav button span{font-size:22px}.bottom-nav button.active{color:var(--ink);font-weight:750}.bottom-nav button.active:after{content:'';height:3px;width:24px;position:absolute;bottom:5px;background:var(--aqua);border-radius:3px}dialog{border:0;background:var(--paper);color:var(--ink);width:620px;max-width:calc(100% - 28px);max-height:82dvh;border-radius:22px;padding:22px;box-shadow:0 16px 80px #153d4244}dialog::backdrop{background:#14383d50;backdrop-filter:blur(3px)}.sheet-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.sheet-top h2{font-size:20px;margin:0}#sheetBody p{font-size:12px;color:var(--muted)}.source-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line)}.status-dot{width:8px;height:8px;border-radius:50%;background:#b7c8c7;display:inline-block;margin-right:8px}.status-dot.ok{background:var(--aqua)}table{width:100%;border-collapse:collapse;font-size:11px}th{text-align:left;color:var(--muted);font-weight:500}td,th{padding:12px 4px;border-bottom:1px solid var(--line)}tr[data-row]{cursor:pointer}.actions{display:flex;gap:10px;margin-top:20px;flex-wrap:wrap}.actions button{border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:12px}a{color:var(--aqua)}
@media(max-width:600px){:root{--header:68px;--nav:calc(60px + env(safe-area-inset-bottom))}header{padding:0 12px;gap:10px}.brand{font-size:19px}.brand small{letter-spacing:1px;font-size:8px}form{width:auto;flex:1;padding:0 8px}form input{width:100%;height:39px;font-size:12px}form button{font-size:22px;width:24px}header>.icon{width:30px;font-size:21px}.home{padding:18px 17px 25px}.home h1{font-size:22px}.home-heading{margin-bottom:13px}.update{font-size:9px;max-width:45%;text-align:right}.week{gap:2px;padding-bottom:13px;margin-bottom:0}.week>button{min-width:47px;gap:3px;font-size:10px;padding:8px 3px}.week b{font-size:14px}.week b small{font-size:8px}.week em,.week .dayrain{font-size:9px}.wind-panel,.tide-panel{padding:18px 0}.weather-now strong{font-size:42px}.weather-now #windDirection{font-size:15px}.rain-now b{font-size:19px}.rain-now>span{font-size:10px}.rain-now small{font-size:9px}.hours button{min-width:56px;font-size:10px;padding:8px 3px;gap:5px}.hours b{font-size:12px}.tides b{font-size:13px}.tides span{font-size:10px}.tidal-range{font-size:11px}.tidal-range span{font-size:9px}.home-footer{flex-direction:column;align-items:stretch;text-align:center;gap:12px}.map-plan{left:10px;right:10px;top:10px;padding:8px 0}.map-plan label{padding:0 8px;flex:1;min-width:0}.map-plan input,.map-plan select{width:100%;max-width:none;font-size:11px}.map-plan input[type=date]{min-width:100px}.map-tools{right:10px;top:85px;gap:7px}.map-tools .icon{width:35px;height:35px;font-size:22px}.hint{top:83px;left:10px;font-size:10px;max-width:calc(100% - 63px)}.leaflet-top.leaflet-left{top:122px;left:1px}.legend{left:10px;bottom:145px;font-size:9px}.map-dock{left:10px;right:10px;width:auto;max-width:none;bottom:24px;padding:11px 13px 8px}.summary strong{font-size:27px}.summary-right b{font-size:11px}.summary-right span{font-size:9px}.footnote{font-size:8px}.bottom-nav button{flex:1;max-width:190px}.bottom-nav button.active:after{bottom:calc(4px + env(safe-area-inset-bottom))}}

.week-tides{border-top:1px solid var(--line);padding:20px 0}.week-tides h2{font-size:14px}.week-tides p{font-size:10px;color:var(--muted);margin:0 0 13px}.tide-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px}.tide-day{border:1px solid var(--line);border-radius:12px;background:var(--paper);padding:11px 8px;text-align:left}.tide-day.active{border-color:var(--aqua);background:#e9f3ed}.tide-day header{height:auto;display:flex;align-items:center;justify-content:space-between;padding:0;border:0;background:none;font-size:11px}.tide-day header b{font-size:14px}.tide-day .tag{font-size:8px;display:block;color:#976a39;margin:7px 0}.tide-day dl{margin:0;font-size:10px}.tide-day dl>div{margin-top:8px}.tide-day dt{color:var(--muted);font-size:9px}.tide-day dd{margin:2px 0 0;font-size:11px}.draw-controls{position:absolute;top:89px;left:18px;z-index:910;display:flex;gap:7px}.draw-controls button{background:var(--paper);padding:9px 14px;border-radius:9px;font-size:11px;box-shadow:0 3px 15px #173b3e14}.draw-controls button.active{background:var(--ink);color:white}.hint{top:135px}.leaflet-top.leaflet-left{top:178px}.waypoint.start{background:#168f90}.waypoint.end{background:#e79346}#map[data-drawing=true]{cursor:crosshair}@media(max-width:600px){.tide-week-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.tide-day{padding:12px}.tide-day dl{display:grid;grid-template-columns:1fr 1fr;gap:1px 8px}.tide-day dd{font-size:12px}.tide-day header b{font-size:15px}.draw-controls{top:84px;left:10px}.draw-controls button{padding:8px 11px;font-size:10px}.hint{top:127px}.leaflet-top.leaflet-left{top:169px}.map-tools{top:84px}}

.follow{background:#178772}.against{background:#d66549}.cross{background:#8a6cc4}#briefing{font-size:11px;border-left:1px solid var(--line);padding-left:8px}.brief-lead{font-size:16px!important;color:var(--ink)!important;line-height:1.75!important}.brief-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0}.brief-metrics>div{background:#edf3ee;padding:12px;border-radius:10px;font-size:11px}.brief-metrics b{display:block;font-size:16px;margin-top:5px}.brief-list{padding:0;margin:14px 0;list-style:none}.brief-list li{padding:10px 0;border-bottom:1px solid var(--line);font-size:12px}.brief-loading{color:var(--muted);padding:18px 0}

@media(max-width:600px){.summary{gap:6px}#briefing,#details{font-size:10px;padding-left:6px;padding-right:6px}.summary-right{min-width:0;max-width:120px}}

#favorites{display:flex;gap:7px;overflow-x:auto;padding:0 0 15px}#favorites button{white-space:nowrap;border:1px solid var(--line);border-radius:20px;padding:8px 12px;font-size:12px}#favorites button.active{background:var(--ink);color:white}.home-heading h1{display:inline}#saveFavorite{font-size:22px;color:var(--aqua);margin-left:8px}#retryTides{font-size:11px;color:var(--aqua)}.week-tides .tide-error{color:#b45534;font-weight:600}#searchResults{z-index:2000}#tideStatus{white-space:normal;overflow-wrap:anywhere}
/* 3.7 · original two-tab SEA FLOW restored with a compact week and SwimUp links */
.home{max-width:850px;padding-top:18px;padding-bottom:12px;display:flex;flex-direction:column}.home-heading{margin-bottom:10px}.home h1{margin-right:3px}.week-title{display:flex;justify-content:space-between;align-items:center;padding:7px 0 12px}.week-title h2{font-size:14px;margin:0}.week-title button{font-size:10px;color:var(--muted)}#favorites{padding-bottom:9px;flex-shrink:0;scrollbar-width:none}#favorites button{font-size:10px;padding:5px 9px}.forecast-head,.forecast-day{display:grid;grid-template-columns:58px 1.1fr 1.35fr .8fr;align-items:center;gap:10px}.forecast-head{font-size:10px;color:var(--muted);padding:8px 11px;border-bottom:1px solid var(--line)}.forecast-day{width:100%;text-align:left;padding:10px 11px;border-bottom:1px solid var(--line);min-height:66px;border-radius:9px}.forecast-day.active{background:#e0eee7}.forecast-day>div{min-width:0}.forecast-date strong{font-size:15px;display:block}.forecast-date small{font-size:10px;color:var(--muted)}.forecast-weather b{display:block;font-size:12px;font-weight:600}.forecast-weather small,.forecast-weather em{display:block;font-size:10px;color:var(--muted);font-style:normal;line-height:1.6}.forecast-tide{font-size:11px;line-height:1.9;font-variant-numeric:tabular-nums}.forecast-tide span{display:block;white-space:nowrap}.forecast-tide .hi{color:#147f7c}.forecast-tide .lo{color:#788584}.forecast-sun{font-size:11px;line-height:1.9;font-variant-numeric:tabular-nums}.forecast-sun span{display:block;white-space:nowrap}.forecast-sun i{font-style:normal;color:#b28240;margin-right:3px}.week-overview{flex-shrink:0}.week-note{font-size:10px;color:var(--muted);margin:10px 4px;line-height:1.5}.week-note.tide-error{color:#9c6b39}.home-actions{display:flex;gap:10px;justify-content:space-between;margin-top:auto;padding-top:10px;flex-shrink:0}.home-actions button{padding:9px 12px;border:1px solid var(--line);border-radius:9px;font-size:11px}.home-actions #goMap{background:var(--ink);color:#fff;border-color:var(--ink)}.bottom-nav button{position:relative;max-width:230px}.bottom-nav button.active:after{left:calc(50% - 12px)}.sea-screen{overflow-y:auto;max-width:850px;margin:auto;padding:22px 28px}.sea-heading h1{font-size:24px;margin:5px 0}.sea-heading p,.sea-note{font-size:11px;color:var(--muted);line-height:1.7}.sea-place-label{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);border-radius:12px;padding:13px 16px;margin:18px 0;font-size:12px}.sea-place-label select{max-width:65%;border:0;background:transparent;font-weight:700}.sea-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.sea-link-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:18px;border:1px solid #d4e4dd;border-radius:15px;background:#e9f2ed;color:var(--ink);text-decoration:none;min-height:100px}.sea-link-card:hover{background:#dceee7}.sea-link-card strong{font-size:17px;display:block}.sea-link-card small{font-size:11px;color:var(--muted);display:block;margin-top:5px}.sea-link-card .ico{font-size:37px}.sea-note{margin-top:16px}.departure-tools{display:flex;gap:8px;align-items:center;padding-top:11px;color:var(--muted);font-size:10px}.departure-tools span{margin-right:auto}.departure-tools button{background:#e8f1eb;border-radius:6px;padding:4px 8px;font-size:11px}.departure-tools output{font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink)}.map-dock{width:470px}.legend{bottom:193px}.summary-right{max-width:none}#details{font-weight:700;color:var(--aqua)}.result-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.result-metrics div{padding:13px;background:#eaf2ec;border-radius:10px;font-size:11px}.result-metrics b{font-size:19px;display:block;margin-top:6px}.course-sentence{font-size:14px;line-height:1.8}.flow-summary{display:flex;gap:7px;flex-wrap:wrap;font-size:11px}.flow-summary span{padding:7px 10px;border-radius:20px;background:#eaf2ec}.result-source{font-size:10px!important}.depth-profile{height:155px;display:grid;place-items:center;font-size:11px;color:var(--muted);margin-top:16px}.depth-profile svg{width:100%;height:100%}.saved-row{display:block;width:100%;padding:14px 6px;text-align:left;border-bottom:1px solid var(--line);font-size:13px}#sheetBody .wind-panel{border-top:0;padding-top:0}.map-plan label{padding:0 10px}.map-plan select{max-width:100px}
@media(max-width:600px){.home{padding:14px 13px 9px}.home-heading{margin-bottom:8px}.home h1{font-size:23px}.eyebrow{font-size:9px}.forecast-head,.forecast-day{grid-template-columns:34px minmax(92px,1.1fr) minmax(101px,1.2fr) 66px;gap:5px}.forecast-head{font-size:8px;padding:7px 5px}.forecast-day{padding:8px 5px;min-height:65px}.forecast-date strong{font-size:14px}.forecast-date small{font-size:9px}.forecast-weather b{font-size:10px}.forecast-weather small,.forecast-weather em{font-size:9px}.forecast-tide,.forecast-sun{font-size:10px;line-height:1.9}.week-title{padding:4px 1px 8px}.week-title h2{font-size:12px}.week-note{font-size:9px;margin:8px 2px}.home-actions{padding-top:6px}.home-actions button{font-size:10px;padding:8px 10px}.bottom-nav button{font-size:11px;gap:6px}.bottom-nav button span{font-size:20px}.sea-screen{padding:16px 15px}.sea-heading h1{font-size:22px}.sea-place-label{padding:11px 13px;margin:14px 0}.sea-links{gap:9px}.sea-link-card{padding:15px 12px;min-height:88px;border-radius:14px}.sea-link-card strong{font-size:15px}.sea-link-card small{font-size:10px}.sea-link-card .ico{font-size:31px}.sea-note{font-size:10px}.map-plan label{padding:0 6px}.map-plan label:first-child{flex:1.4}.map-plan input[type=date]{min-width:90px;font-size:10px}.map-plan input,.map-plan select{font-size:10px}.draw-controls button{font-size:10px;padding:8px 9px}.map-dock{bottom:19px}.legend{bottom:185px}.departure-tools{font-size:9px}.departure-tools button{font-size:10px}.summary-right{max-width:120px}#details,#briefing{font-size:10px}}
@media(max-width:370px){.home{padding-left:9px;padding-right:9px}.forecast-head,.forecast-day{grid-template-columns:31px minmax(83px,1fr) minmax(98px,1.2fr) 61px;gap:4px}.forecast-sun,.forecast-tide{font-size:9px}.forecast-weather b{font-size:9px}.forecast-weather small,.forecast-weather em{font-size:8px}.sea-link-card .ico{font-size:27px}}
@media(max-height:740px) and (max-width:600px){.home{padding-top:10px}.home-heading{margin-bottom:5px}.home h1{font-size:20px}#favorites{padding-bottom:5px}#favorites button{padding:4px 8px}.forecast-day{min-height:55px;padding-top:5px;padding-bottom:5px}.forecast-head{padding-top:4px;padding-bottom:4px}.week-note{margin:5px 2px}.home-actions button{padding-top:6px;padding-bottom:6px}}
.wind-time{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--muted);margin-left:auto;margin-right:12px}.wind-time input{font-size:11px;border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:4px;max-width:84px}.forecast-weather .inline-unit{display:inline;font-size:9px}.forecast-weather em{font-size:8px}.week-title h2{margin-right:8px}@media(max-width:600px){.week-title h2{font-size:11px}.wind-time{font-size:9px;margin-right:5px}.wind-time input{font-size:10px;max-width:74px}.week-title #retryTides{font-size:9px;padding:0}}

/* 3.8: one weekly subject per view. Keep labels readable on narrow phones. */
.home{overflow:hidden;min-height:0;padding-top:12px;padding-bottom:10px}
.home-heading,#favorites,.week-title,.forecast-tabs,.forecast-head,.forecast-footer,.home-actions{flex-shrink:0}
.home .home-heading{margin-bottom:8px}.home h1{font-size:24px}.home .eyebrow{display:none}.home .update{font-size:12px}
.home #favorites{padding-bottom:7px}.home #favorites button{font-size:13px;padding:6px 10px}
.home .week-title{padding:4px 0 9px;gap:8px}.home .week-title h2{font-size:15px;margin:0}
.home .wind-time{font-size:13px;gap:6px;margin:0 0 0 auto;white-space:nowrap}.home .wind-time input{font-size:14px;padding:5px;max-width:92px}.home #retryTides{font-size:22px;min-width:36px;min-height:36px;padding:0}
.forecast-tabs{display:flex;padding:4px;background:#e3ede7;border-radius:12px;gap:4px}
.forecast-tabs button{flex:1;min-height:42px;padding:6px 4px;font-size:15px;font-weight:650;border-radius:9px}
.forecast-tabs button[aria-selected=true]{background:var(--paper);box-shadow:0 2px 5px #153d4210;color:#087c7d}
.home .forecast-head,.home .forecast-day{display:grid;grid-template-columns:46px minmax(0,1fr);gap:12px;padding-left:12px;padding-right:12px}
.home .forecast-head{font-size:13px;color:#4d6f71;padding-top:9px;padding-bottom:8px;border:0}
.forecast-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;align-items:center}
.home .week-overview{min-height:76px;flex:1 1 auto;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-width:thin;scrollbar-color:#a9c7be transparent;padding:1px 2px 2px}
.home .forecast-day{min-height:68px;margin-bottom:5px;background:var(--paper);border:1px solid #dce7e0;border-radius:12px;padding-top:9px;padding-bottom:9px;width:100%;text-align:left}
.home .forecast-day.active{background:#e0eee7;border-color:#8cbbb0;box-shadow:inset 3px 0 #168f90}
.home .forecast-date strong{font-size:20px;line-height:1.1}.home .forecast-date small{font-size:12px;color:#547578;line-height:1.5}
.forecast-value{display:flex;min-width:0;flex-direction:column;gap:3px;font-variant-numeric:tabular-nums}
.home .forecast-value b{display:block;font-size:22px;line-height:1.2;font-weight:750;white-space:nowrap;letter-spacing:-.4px}
.home .forecast-value b small{font-size:13px;font-weight:500;letter-spacing:0}
.home .forecast-value>span{display:block;font-size:13px;line-height:1.35;color:#527174;overflow-wrap:anywhere}
.home .daily-peak b{font-size:20px;font-weight:650}.home .tide-high b{color:#0b7774}.home .tide-low b{color:#526c70}.home .tide-high,.home .tide-low{gap:5px}
.forecast-footer{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:5px;flex-wrap:wrap}
.home .week-note{font-size:12px;line-height:1.5;margin:0}.home .tide-error{color:#9a5930}.text-help{font-size:13px;color:#087d7e;padding:7px 0;min-height:32px}
.home .home-actions{padding-top:5px;margin-top:0;gap:10px}.home .home-actions button{font-size:14px;padding:10px 12px;min-height:42px}
.result-basis{padding:14px 16px;border-radius:12px;background:#e4f1e9;line-height:1.65;font-size:15px}.result-basis.caution{background:#fcf0df;border:1px solid #ead3b0}.result-basis strong{font-size:18px}.result-basis p{margin:7px 0 0!important;font-size:15px!important}.result-basis .baseline-note{font-weight:650;color:#754d24}
.result-metrics{gap:10px}.result-metrics div{font-size:14px;padding:15px 13px}.result-metrics b{font-size:25px;margin-top:6px;line-height:1.25}.result-actions{display:flex;gap:10px;margin:12px 0}.result-actions button{flex:1;padding:12px 6px;border:1px solid #bbd4c9;background:#e9f3ed;border-radius:10px;font-size:15px}.result-source{font-size:12px!important}.depth-profile{height:140px;margin-top:9px}
@media(max-width:600px){.home{padding-left:12px;padding-right:12px}.home .forecast-head,.home .forecast-day{grid-template-columns:38px minmax(0,1fr);gap:9px;padding-left:10px;padding-right:10px}.home .week-title h2{font-size:14px}.forecast-columns{gap:10px}.home .forecast-value b{font-size:22px}.home .daily-peak b{font-size:20px}.home .forecast-value>span{font-size:13px}.home .forecast-head{font-size:13px}.home .forecast-day{min-height:68px}.home .forecast-date strong{font-size:20px}.home .forecast-date small{font-size:12px}.bottom-nav button{font-size:13px}.home .home-actions button{font-size:13px}#sheet{padding:20px;max-height:90dvh}.result-metrics div{font-size:13px}.result-metrics b{font-size:23px}}
@media(max-width:360px){.home{padding-left:9px;padding-right:9px}.home .wind-time{font-size:12px}.home .wind-time input{max-width:82px;font-size:13px}.home .week-title{gap:4px}.home .week-title h2{font-size:13px}.home .forecast-head,.home .forecast-day{padding-left:8px;padding-right:8px;gap:8px}.forecast-columns{gap:8px}.home .forecast-value>span{font-size:12px}.home .forecast-value b{font-size:21px}.home .daily-peak b{font-size:20px}}
@media(max-height:650px){.home{padding-top:8px}.home .home-heading{margin-bottom:4px}.home #favorites{padding-bottom:4px}.home #favorites button{padding:4px 10px}.home .forecast-day{min-height:64px;padding-top:7px;padding-bottom:7px}.home .forecast-footer{padding-top:2px}}
/* 3.9: course analysis starts with places and causes rather than calculation diagnostics. */
.insight-lead{padding:4px 0 10px;border-bottom:1px solid var(--line)}.insight-lead>strong{font-size:21px;line-height:1.45}.insight-lead p{font-size:13px!important;margin:7px 0 0}.insight-ai-state{font-size:12px!important;margin:9px 0 13px;color:#087d7e!important}#sheetBody>h3,.insight-timing h3{font-size:17px;margin:15px 0 12px}
.insight-card{border:1px solid #d0e1d9;background:#edf5ef;border-left:4px solid #69a38f;border-radius:12px;padding:13px 15px;margin:10px 0}.insight-card.against{border-left-color:#cc6746;background:#fbf1e9}.insight-card.cross{border-left-color:#8b6bbb;background:#f4eff8}.insight-card.unknown{border-left-color:#879b9d;background:#f0f3f2}.insight-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:0;min-height:30px;text-align:left}.insight-card-top strong{font-size:17px}.insight-card-top span{font-size:13px;white-space:nowrap;color:#86533b}.insight-place{font-size:16px;display:block;margin:5px 0}.insight-card>small{font-size:12px;color:var(--muted)}#sheetBody .insight-card>p{font-size:15px;line-height:1.8;color:var(--ink);margin:9px 0}.insight-card details{border-top:1px solid #d5e2da;margin-top:10px;padding-top:8px}.insight-card details p{font-size:13px!important;line-height:1.7}.insight-card summary{font-size:13px;cursor:pointer}.insight-context,.insight-extra,.insight-more{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.insight-context summary,.insight-extra summary,.insight-more>summary{font-size:15px;cursor:pointer}.insight-context p{font-size:14px!important;line-height:1.8}.insight-timing{margin-top:18px}.insight-timing>p{font-size:13px!important;line-height:1.7}.timing-option{display:flex;justify-content:space-between;align-items:center;text-align:left;width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 13px;margin:7px 0;gap:8px;background:#f2f7f3}.timing-option.current{border-color:#67aaa1;background:#e2f1e9}.timing-option>span{font-size:14px}.timing-option b{font-size:19px;display:block}.timing-option small{display:block;font-size:12px;color:var(--muted);margin-top:2px}.timing-option>span:last-child{text-align:right}.insight-source{font-size:11px!important;line-height:1.7}.insight-marker{border-radius:50%;background:#db6a35;color:white;text-align:center;line-height:30px;font-size:22px;font-weight:800;border:2px solid white;box-shadow:0 2px 7px #153d4240}
@media(max-width:600px){.insight-card{padding:12px}.insight-card-top strong{font-size:16px}.insight-card-top span{font-size:12px}.insight-lead>strong{font-size:20px}#sheetBody .insight-card>p{font-size:15px}.insight-place{font-size:15px}}
/* 3.10: currents belong to the drawn course; swim direction is a separate white chevron. */
/* 3.12: concise continuous ranges and a reusable place list. */
/* 3.13: native expanding search works independently of dialog handlers. */
.inline-place-search{position:relative;display:flex;align-items:center;gap:8px;width:100%;flex:none;min-height:43px;margin:0 0 8px;padding:3px 9px;background:#fff;border:1px solid #bfd7cd;border-radius:10px}.inline-place-search input{min-width:0;width:auto;flex:1;font-size:15px;height:35px}.inline-place-search button{flex:none;width:auto;font-size:14px;font-weight:700;padding:4px 9px;color:#087c7d}.home .place-search-message{flex:none;margin:0 0 7px;font-size:12px!important}.home .place-search-results{flex:none;max-height:170px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:9px;margin-bottom:8px}.sea-place-search{margin-bottom:14px}.sea-place-search>.sea-add-place{cursor:pointer;list-style:none;text-align:center;margin:0 0 10px}.sea-place-search>.sea-add-place::-webkit-details-marker{display:none}.sea-place-search[open]>.sea-add-place{background:#d8ede5}.sea-place-search .place-search-results{max-height:240px;overflow:auto}.saved-place-manager{font-size:13px;padding:8px 0}.saved-place-manager>summary{cursor:pointer}.sea-link-card{text-align:left;width:100%}.legend .strongest{background:#a82625}.legend-water{color:#d6533e}.strongest-summary{display:block;width:100%;font-size:13px;font-weight:750;text-align:left;color:#a82625;background:#fff0e9;border-radius:8px;padding:7px 9px;margin:8px 0 0}.point-current{display:block;font-size:23px;margin:14px 0}.home .inline-place-search{flex-shrink:0}
.insight-plain{padding:5px 0 16px}.insight-range{display:block;width:100%;padding:12px 0 16px;border-bottom:1px solid var(--line);text-align:left;font-size:21px;font-weight:750;line-height:1.6;color:#a3442d}.insight-plain>strong{font-size:20px;line-height:1.6}.insight-plain>p{font-size:16px!important;line-height:1.7!important}.insight-plain>small{display:block;font-size:12px;color:var(--muted);line-height:1.6}.insight-detail{margin-top:3px}.insight-map-link{font-size:14px;padding:8px 0;color:var(--aqua)}.sea-add-place{display:block;width:100%;margin:-3px 0 16px;padding:11px;border:1px solid #b6d5c9;border-radius:10px;background:#e7f3ed;font-size:14px;font-weight:700;color:#176a62}.place-search-form{display:flex;gap:8px}.place-search-form input{min-width:0;flex:1;padding:12px;border:1px solid var(--line);border-radius:10px;font-size:16px;background:#fff}.place-search-form button{flex-shrink:0;background:var(--ink);color:#fff;border-radius:10px;padding:10px 15px;font-size:15px}.place-search-message{font-size:14px!important;line-height:1.6!important}.place-search-results>button{display:block;text-align:left;width:100%;padding:14px 6px;border-bottom:1px solid var(--line)}.place-search-results strong{display:block;font-size:17px}.place-search-results small{display:block;color:var(--muted);font-size:12px;line-height:1.6;margin-top:4px}.saved-place-row{display:flex;gap:10px;border-bottom:1px solid var(--line)}.saved-place-row>button:first-child{flex:1;text-align:left;padding:12px 0;font-size:15px}.saved-place-row>button:last-child{font-size:13px;color:#9b553d;padding:8px}.place-search-form button:disabled{opacity:.5}
.course-current-marker,.course-swim-marker{background:none;border:0}.course-flow-glyph{position:relative;width:36px;height:36px;display:block;color:var(--flow-color);filter:drop-shadow(0 2px 2px #16464a55)}.course-water-arrow,.swim-chevron{display:block;transform-origin:center}.course-flow-badge{position:absolute;top:37px;left:18px;transform:translateX(-50%);padding:3px 7px;border-radius:7px;background:#fff;color:var(--flow-color);border:1px solid currentColor;font-size:12px;font-weight:800;line-height:1.2;white-space:nowrap;filter:none;box-shadow:0 1px 5px #173b3e20}.current-unavailable,.current-calm{display:block;width:30px;height:30px;margin:3px;border-radius:50%;border:2px solid #fff;background:#88999c;color:white;font-size:21px;font-weight:800;text-align:center;line-height:26px}.current-calm{background:#587b87}.course-swim-marker{pointer-events:none!important}.waypoint-small{width:24px;height:24px;border:6px solid transparent!important;background-clip:padding-box!important;box-shadow:none!important;font-size:0!important;background-color:#274b50!important;border-radius:50%;color:transparent!important}.waypoint-small:hover{border-color:#ffffffb0!important}
.map-screen .legend{left:12px;right:auto;bottom:calc(var(--dock-height,162px) + 25px);max-width:calc(100% - 24px);display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:8px 10px;font-size:11px;background:#fffffff2;border:1px solid #d6e5e0;pointer-events:none}.legend-types{display:flex;flex-wrap:wrap;gap:6px 12px}.legend-types>span{display:flex;gap:5px;align-items:center;white-space:nowrap}.legend .dot{height:8px;width:8px}.legend .follow{background:#12866e}.legend .against{background:#d6533e}.legend .cross{background:#8258b5}.legend .unknown{background:#88999c}.legend-arrows{display:flex;align-items:center;gap:5px;font-size:10px;color:#547174}.legend-swim{color:#fff;text-shadow:-1px 0 #204c54,0 1px #204c54,1px 0 #204c54,0 -1px #204c54;font-size:17px;line-height:1}.legend-water{color:#12866e;font-size:20px;line-height:1;margin-left:7px}#backgroundTime{margin-left:7px;color:#2b5e63;font-size:10px}
.map-screen .map-dock{left:12px;right:auto;width:min(470px,calc(100% - 24px));max-width:calc(100% - 24px);bottom:12px;padding:11px 13px 9px;overflow:hidden}.map-dock .summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:2px 10px}.map-dock .summary>strong{grid-column:1;grid-row:1;font-size:27px;white-space:nowrap}.map-dock .summary-right{grid-column:1;grid-row:2;text-align:left;max-width:none;display:flex;flex-wrap:wrap;gap:1px 7px;min-width:0}.map-dock .summary-right b{font-size:11px}.map-dock .summary-right span{font-size:10px}.map-dock #details{grid-column:2;grid-row:1/span 2}.map-dock #briefing{grid-column:3;grid-row:1/span 2}.map-dock #details,.map-dock #briefing{font-size:12px;padding:8px 7px;white-space:nowrap;border:1px solid #d5e4dc;border-radius:8px;min-height:38px;background:#e8f3ec}.map-dock .departure-tools{padding-top:8px;gap:7px;font-size:12px;min-width:0;display:flex;flex-wrap:wrap}.map-dock .departure-tools>span{margin-right:auto;white-space:nowrap}.map-dock .departure-tools button{font-size:12px;padding:5px 8px;white-space:nowrap}.map-dock .departure-tools output{font-size:13px}.map-dock .timeline{padding-top:7px;gap:8px;min-width:0}.map-dock .timeline button{font-size:11px;padding:6px 8px}.map-dock .timeline input{min-width:0;max-width:100%;flex:1 1 60px}.map-dock .timeline output{font-size:12px;white-space:nowrap;margin-left:auto}.map-dock .footnote{font-size:10px;line-height:1.4;flex-wrap:wrap;padding-top:5px;gap:1px 8px}.map-dock .footnote>span{min-width:0;overflow-wrap:anywhere}
@media(max-width:600px){.map-screen .map-dock{left:10px;width:calc(100% - 20px);max-width:calc(100% - 20px);bottom:10px}.map-screen .legend{left:10px;max-width:calc(100% - 20px);bottom:calc(var(--dock-height,162px) + 20px)}.map-dock .summary{gap:2px 6px}.map-dock .summary>strong{font-size:25px}.map-dock #details,.map-dock #briefing{font-size:11px;padding-left:6px;padding-right:6px}.map-dock .summary-right{display:grid}.map-dock .departure-tools{font-size:11px;gap:5px}.map-dock .departure-tools button{font-size:12px;padding:5px 7px}.map-dock .timeline{gap:6px}.map-dock .timeline button{font-size:10px}.map-dock .footnote{font-size:9px}.course-flow-badge{font-size:11px}.map-screen .legend-arrows{font-size:10px}}
@media(max-width:360px){.map-dock .summary>strong{font-size:23px}.map-dock #details,.map-dock #briefing{font-size:10px;padding:7px 5px}.map-dock .summary{gap:2px 5px}.map-dock .departure-tools>span{font-size:10px}.map-screen .legend{font-size:10px;padding:7px 8px}.legend-types{gap:5px 10px}#backgroundTime{margin-left:3px;font-size:9px}}
/* 3.14: map legend is part of the dock, never a floating map box. */
.map-screen .map-dock .legend{position:static;left:auto;right:auto;bottom:auto;max-width:none;width:100%;margin:0 0 8px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;gap:4px;pointer-events:auto}.map-dock .legend-types{gap:8px 13px}.map-dock .legend-arrows{font-size:10px}.map-dock #backgroundTime{margin-left:auto}.map-screen .hint[hidden]{display:none!important}
/* Place selection uses one name in a large search entry. */
.home .home-heading{gap:12px}.place-heading-meta{display:grid;gap:4px;justify-items:end;flex-shrink:0}.place-heading-meta #saveFavorite{position:static;font-size:22px;padding:0 5px;min-height:27px}.place-heading-meta .update{font-size:11px}.location-picker>form{position:sticky;top:0;z-index:1;min-height:48px}.location-picker>form input{font-size:16px}.location-picker h3{font-size:16px;margin:15px 0 9px}.region-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.region-grid button{background:#e8f3ec;border:1px solid #cfdfd6;border-radius:10px;text-align:left;padding:12px;font-size:16px;min-height:48px}.region-grid button:hover{background:#d6ece1}.region-back,.sea-browse{font-size:14px;color:var(--aqua);padding:8px 0}.recent-query-chips{display:flex;gap:7px;flex-wrap:wrap}.recent-query-chips button{font-size:14px;background:#e8f3ec;border-radius:20px;padding:7px 12px}.location-picker .place-search-results>button{min-height:56px}.map-screen .map-dock .legend-arrows{flex-wrap:wrap}.map-screen .map-dock .legend-water{color:#d6533e}
@media(max-width:600px){.home .home-heading{gap:9px}.place-heading-meta .update{font-size:10px}.region-grid{gap:8px}.region-grid button{font-size:15px;padding:10px}.location-picker>form{top:0}}

/* Keep update status on one line beside the location entry. */
.home .place-heading-meta{min-width:94px}.home .place-heading-meta .update{white-space:nowrap}

/* 3.18: compact sea information with all eight cards visible together. */
.sea-screen{display:flex;flex-direction:column;gap:8px;padding:12px 20px;scrollbar-gutter:stable}
.sea-heading{flex:none}.sea-heading h1{margin:0;font-size:22px;line-height:1.4}
.sea-screen .sea-place-label{flex:none;min-height:40px;margin:0;padding:8px 12px;font-size:13px}
.sea-screen .sea-place-search{flex:none;margin:0}
.sea-screen .sea-place-search>.sea-add-place{min-height:36px;margin:0;padding:7px 10px;line-height:20px}
.sea-screen .sea-place-search[open]>.sea-add-place{margin-bottom:8px}
.sea-screen .sea-links{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(4,minmax(64px,1fr));gap:8px;flex:1 0 280px;min-height:280px}
.sea-screen .sea-link-card{min-height:64px;padding:8px 11px;gap:7px;border-radius:12px}
.sea-link-card>div{min-width:0}.sea-screen .sea-link-card strong{font-size:16px;line-height:1.3}
.sea-screen .sea-link-card small{font-size:11px;line-height:1.35;margin-top:3px;word-break:keep-all}
.sea-screen .sea-link-card .ico{font-size:28px;line-height:1;flex:none}


@media(max-width:600px){.sea-screen{padding:10px 12px;gap:7px}.sea-screen .sea-link-card{min-height:60px;padding:8px 10px}.sea-screen .sea-links{gap:7px;grid-template-rows:repeat(4,minmax(60px,1fr));flex-basis:261px;min-height:261px}.sea-screen .sea-link-card .ico{font-size:26px}}
@media(max-width:350px){.sea-screen{padding:8px;gap:6px}.sea-screen .sea-link-card{padding:7px 8px;gap:5px}.sea-screen .sea-link-card strong{font-size:15px}.sea-screen .sea-link-card small{font-size:10px}.sea-screen .sea-link-card .ico{font-size:24px}}

/* 3.19: one header search entry and a plain selected-location heading. */
.home .home-heading{min-height:34px;gap:10px;margin-bottom:7px;flex-shrink:0}
.home .home-heading>h1{flex:1;min-width:0;margin:0;font-size:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home .place-heading-meta{display:flex;align-items:center;gap:8px;min-width:0}
.home .place-heading-meta .update{font-size:10px}

/* 3.20: compact map dock; source/status details do not occupy map rows. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-screen .map-dock{bottom:8px;padding:7px 9px 6px;border-radius:13px}
.map-dock .summary{gap:2px 6px;align-items:center}
.map-dock .summary>strong{font-size:23px;line-height:1.1}
.map-dock .summary-right{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;gap:1px 7px;align-items:center}
.map-dock .summary-right b,.map-dock .summary-right span{font-size:11px;line-height:1.35}
.map-screen:not(.has-course) .summary-right{display:none}
.map-dock #details{grid-column:2;grid-row:1}.map-dock #briefing{grid-column:3;grid-row:1}
.map-dock #details,.map-dock #briefing{min-height:30px;padding:4px 7px;font-size:12px;line-height:1.3}
.map-dock .departure-tools{padding-top:4px;gap:5px;font-size:11px;flex-wrap:nowrap;align-items:center}
.map-dock .departure-tools>span{margin-right:0;font-size:11px}
.map-dock .departure-tools button{padding:3px 7px;min-height:28px;font-size:12px;line-height:1.3}
.map-dock .departure-tools output{font-size:12px;white-space:nowrap}
.map-dock #windyCurrent{margin-left:auto;display:inline-flex;align-items:center;min-height:28px;white-space:nowrap;font-size:12px;font-weight:700;text-decoration:none}
.map-dock .timeline{padding-top:3px;gap:6px;min-height:28px}
.map-dock .timeline button{min-height:27px;font-size:10px;padding:3px 6px;line-height:1.3}
.map-dock .timeline input{height:24px;margin:0}
.map-dock .timeline output{font-size:11px}
.map-screen .map-dock .legend{margin:0 0 4px;padding:0;border:0;font-size:10px;line-height:1.3}
.map-dock .legend-types{gap:5px 10px}.map-screen .map-dock .legend-arrows{display:none}
.map-dock .strongest-summary{font-size:11px;line-height:1.35;padding:3px 6px;margin:4px 0 0;min-height:22px}
@media(max-width:350px){.map-screen .map-dock{padding:6px 7px}.map-dock .summary>strong{font-size:21px}.map-dock #details,.map-dock #briefing{font-size:11px;padding:4px 6px}.map-dock .departure-tools{gap:4px}.map-dock .departure-tools button{padding:3px 5px}.map-dock #windyCurrent{font-size:11px}}
/* Community route reports */
.bottom-nav button{min-width:0;flex:1;width:auto;gap:5px}.bottom-nav button span{font-size:19px}
.reports-screen{display:flex;flex-direction:column;padding:12px 16px;gap:7px;overflow-y:auto;max-width:1000px;margin:auto}
.reports-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex:none}.reports-heading small{font-size:10px;color:var(--muted)}.reports-heading h1{font-size:21px;line-height:1.2;margin:3px 0}.reports-heading h1 span{font-size:13px;font-weight:500;margin-left:8px;color:var(--muted)}
.reports-primary{background:var(--ink);color:white;border-radius:10px;min-height:36px;padding:8px 13px;font-weight:700;font-size:14px}
.reports-filters,.reports-write-tools{display:flex;align-items:center;gap:6px;overflow-x:auto;flex:none;scrollbar-width:none}.reports-filters button,.reports-write-tools button,.report-file{border:1px solid var(--line);border-radius:8px;min-height:32px;padding:5px 10px;white-space:nowrap;font-size:12px;background:#fbfdfa;cursor:pointer}.reports-filters button.active{background:var(--ink);color:white}.reports-filters #reportsRefresh{margin-left:auto}.reports-write-tools #reportRouteDone{background:#d9eee7;font-weight:700}
.reports-hint{flex:none;font-size:12px;line-height:1.45;margin:0;color:var(--muted)}.reports-map{flex:1 0 190px;min-height:190px;border-radius:13px;border:1px solid #d2e2dd;background:#d7e8e6;isolation:isolate}.reports-map .leaflet-top.leaflet-left{top:7px;left:7px}.reports-map .leaflet-control-attribution{font-size:8px!important}.reports-message{font-size:12px;line-height:1.5;flex:none;color:#167f7b;min-height:0}.reports-message:empty{display:none}
.reports-list{flex:0 1 auto;max-height:27dvh;overflow:auto;min-height:30px}.report-card{width:100%;display:grid;grid-template-columns:1fr auto;gap:3px 12px;text-align:left;padding:10px 12px;background:#fbfdfa;border:1px solid var(--line);border-radius:10px;margin:0 0 6px}.report-card strong{font-size:15px}.report-card span{font-size:11px;color:var(--muted)}.report-card small{grid-column:1/-1;font-size:12px;color:#a83f2e}.reports-empty{padding:12px;margin:0;font-size:13px;color:var(--muted);text-align:center}
.report-detail{flex:0 1 auto;max-height:30dvh;overflow:auto;border:1px solid var(--line);background:#fbfdfa;border-radius:12px;padding:10px 12px}.report-detail>strong{font-size:16px}.report-detail p{font-size:12px;margin:5px 0}.report-detail-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.report-detail-actions button{min-height:32px;padding:5px 9px;background:#e6f1eb;border-radius:7px;font-size:12px}.report-copy{width:100%;min-height:80px;font-size:12px}
.report-editor{flex:0 1 auto;max-height:43dvh;overflow:auto;min-height:120px}.report-step{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px;margin-bottom:6px}.report-step button{font-size:12px;color:var(--aqua);padding:4px}.report-range-chips{display:flex;gap:5px;flex-wrap:wrap;margin:4px 0}.report-range-chips button{font-size:11px;background:#fff0e9;color:#a83f2e;border:1px solid #efc8b7;border-radius:20px;padding:5px 8px}.report-distance-picker{font-size:11px;margin:5px 0}.report-distance-picker summary{cursor:pointer;color:var(--aqua)}.report-distance-picker label{display:flex;align-items:center;gap:8px}.report-distance-picker input{flex:1;accent-color:#d6533e}.report-distance-picker button{font-size:12px;padding:5px 9px;background:#fff0e9;border-radius:6px}
.report-form{width:100%;padding:0;background:none;border-radius:0;display:grid;grid-template-columns:1fr 1fr;gap:7px 9px;align-items:stretch}.report-form label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted);min-width:0}.report-form input,.report-form select{min-width:0;width:100%;height:34px;min-height:34px;border:1px solid #ccdfd7;border-radius:7px;background:#fff;font-size:14px;padding:4px 7px;color:var(--ink)}.report-form .report-note-field{grid-column:1/-1}.report-form button{width:auto;font-size:14px}.report-form #reportSubmit{margin-top:3px}.report-form #reportCaptcha:empty{display:none}.reports-small{font-size:10px;color:var(--muted);margin:6px 0}
.report-range-marker{background:#d6533e;border:2px solid white;color:white;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:700;box-shadow:0 2px 5px #0003}.report-endpoint{background:#153d42;color:white;border:2px solid white;border-radius:50%;display:grid;place-items:center;font-size:10px}
@media(max-width:600px){.bottom-nav button{font-size:10px;gap:4px}.bottom-nav button span{font-size:18px}.reports-screen{padding:9px 10px;gap:6px}.reports-heading h1{font-size:20px}.reports-heading small{font-size:9px}.reports-map{min-height:165px;flex-basis:165px}.reports-filters button,.reports-write-tools button,.report-file{font-size:11px;padding:5px 8px;min-height:31px}.reports-hint{font-size:11px}.report-card{grid-template-columns:1fr;gap:2px}.report-card span{font-size:10px}.report-form input,.report-form select{font-size:14px}}

/* 3.23: familiar route drawing with an explicit two-point current marker. */
.reports-write-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;overflow:visible}
.reports-write-tools .reports-back{grid-column:2;grid-row:1;justify-self:end;background:none;border:0;color:var(--muted);padding:4px 2px;min-height:26px}
.report-route-controls{grid-column:1;grid-row:1;display:flex;align-items:center;gap:7px;min-width:0}
.reports-write-tools .report-route-controls button{min-height:36px;padding:8px 11px;background:var(--paper);border:0;border-radius:9px;font-size:12px;box-shadow:0 3px 15px #173b3e14}
.reports-write-tools .report-route-controls button.active{background:var(--ink);color:white}
.reports-write-tools .report-mark-current{grid-column:1/-1;justify-self:start;min-height:34px;padding:6px 12px;font-size:13px;font-weight:700;color:#a83b29;background:#fff4ef;border:1px solid #e8c6bb;border-radius:9px}
.reports-write-tools .report-mark-current::before{content:'●';margin-right:6px;font-size:11px}
.reports-write-tools .report-mark-current.active{background:#d6533e;border-color:#d6533e;color:white}
.report-details{margin-top:7px}.report-details>summary{min-height:36px;font-size:14px;font-weight:700;color:var(--aqua);cursor:pointer;padding:7px 0}.report-details[open]>summary{margin-bottom:6px}
.reports-map[data-drawing=true]{cursor:crosshair}
@media(max-width:360px){.report-route-controls{gap:5px}.reports-write-tools .report-route-controls button{font-size:11px;padding:8px}.reports-write-tools .reports-back{font-size:11px}}

/* 3.24: large explicit time picker instead of a browser-dependent time input. */
.map-plan #openEntryTime{font-size:13px;text-align:left;min-height:32px;padding:3px 0;width:100%;white-space:nowrap}.map-plan #start{display:none}
.map-dock #departureClock{font-size:13px;font-weight:700;padding:3px 5px;background:#f5faf6;text-decoration:underline;text-underline-offset:3px}
.entry-time-picker{width:min(360px,calc(100vw - 28px));max-height:90dvh;overflow:auto;border:0;border-radius:22px;padding:22px;background:var(--paper);color:var(--ink);box-shadow:0 15px 60px #153d4240}.entry-time-picker::backdrop{background:#12373e70;backdrop-filter:blur(3px)}
.entry-time-heading{display:flex;align-items:center;justify-content:space-between}.entry-time-heading h2{font-size:23px;margin:0}.entry-time-heading button{font-size:30px;min-width:40px;min-height:40px}.entry-time-picker #entryTimeDate{font-size:14px;color:var(--muted);margin:4px 0 10px}.entry-time-picker #entryTimePreview{display:block;text-align:center;font-size:43px;font-weight:750;font-variant-numeric:tabular-nums;margin:10px 0}
.entry-time-columns{display:grid;grid-template-columns:1fr 18px 1fr;gap:8px;align-items:center}.entry-time-columns>span{text-align:center;font-size:28px;padding-top:21px}.entry-time-columns label{display:flex;flex-direction:column;gap:5px;font-size:14px}.entry-time-columns select{width:100%;min-height:58px;border:1px solid #afcfc3;border-radius:12px;background:#e9f3ed;color:var(--ink);font-size:29px;padding:7px 12px}
.entry-time-shortcuts{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:17px 0}.entry-time-shortcuts button{min-height:43px;background:#e6f1eb;border-radius:9px;font-size:14px}.entry-time-source{font-size:12px;color:var(--muted);line-height:1.5;margin:13px 0}.entry-time-apply{width:100%;min-height:48px;background:var(--ink);color:white;font-size:17px;font-weight:700;border-radius:12px}

.report-flow-arrow{background:none;border:0;filter:drop-shadow(0 2px 2px #153d4240);pointer-events:none!important}.report-flow-origin{font-size:22px;color:#d6533e;text-align:center;background:none;border:0;line-height:24px;pointer-events:none!important}.report-flow-origin small{display:block;font-size:11px;white-space:nowrap;background:white;border-radius:7px;padding:3px;box-shadow:0 2px 5px #153d4230;color:#a83b29}
.report-direction-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border-radius:9px;padding:8px;background:#fff0e9;font-size:12px}.report-direction-tools strong{flex:1 0 100%;font-size:12px}.report-direction-tools button{min-height:33px;border:1px solid #e4c1b5;background:white;border-radius:7px;padding:5px 9px;font-size:12px}.report-range-chip{display:inline-flex;background:#fff0e9;border:1px solid #efc8b7;border-radius:15px;overflow:hidden}.report-range-chip button{border:0!important;border-radius:0!important;margin:0;font-size:12px!important}.report-range-chip button:last-child{border-left:1px solid #efc8b7!important;min-width:30px;font-size:17px!important}

.legend .dot.experience{background:#b37a28}

/* 3.25: switch the hourly wind day directly from its title. */
#weatherDateTrigger{font-size:inherit;font-weight:750;line-height:1.4;color:var(--aqua);padding:5px 2px;min-height:40px;text-align:left;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
#weatherTitleSuffix{white-space:nowrap}.weather-date-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;padding:9px;background:#e6f1eb;border:1px solid #d2e4db;border-radius:12px;margin:0 0 15px}.weather-date-picker button{display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;min-height:57px;padding:7px 5px;border-radius:9px;background:var(--paper);font-size:14px;border:1px solid transparent}.weather-date-picker button b{font-size:17px}.weather-date-picker button.active{background:var(--ink);color:white}.weather-date-picker button:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}
@media(max-width:380px){.sheet-top h2:has(#weatherDateTrigger:not([hidden])){font-size:17px}.weather-date-picker{gap:6px;padding:7px}}

/* 3.26: browse first and open the full course only when selected. */
.reports-screen{gap:10px;padding:16px 20px}.reports-heading h1{font-size:24px}.reports-heading small{font-size:11px}.reports-heading h1 span{font-size:14px}.reports-heading .reports-primary{min-height:42px}
.reports-access{flex:none;margin:0;padding:8px 11px;background:#e7efea;border-radius:9px;color:var(--muted);font-size:12px;line-height:1.5}
.reports-browse-header{display:flex;flex-direction:column;gap:10px;flex:none}.reports-search{display:flex;flex:none;width:100%;padding:0 7px 0 13px;border:1px solid #caddd5;background:var(--paper);border-radius:12px}.reports-search label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.reports-search input{height:44px;font-size:15px}.reports-search button{width:42px;min-height:42px;font-size:26px}
.reports-display{display:flex;background:#e1ece6;padding:4px;border-radius:10px;gap:4px}.reports-display button{flex:1;min-height:37px;padding:6px 12px;font-size:14px;border-radius:8px;color:var(--muted)}.reports-display button.active{background:var(--paper);color:var(--ink);font-weight:750;box-shadow:0 2px 5px #153d420a}.reports-display #reportsMine{flex:0 0 auto;margin-left:auto}.reports-filters button{border-radius:18px;min-height:35px;font-size:13px;padding:6px 12px}
.reports-list{display:grid;grid-template-columns:1fr 1fr;gap:10px;flex:none;max-height:none;min-height:0;overflow:visible}.report-card{display:flex;align-items:center;gap:12px;min-width:0;width:100%;padding:12px;margin:0;border-radius:14px;background:var(--paper);border:1px solid #d3e1da;text-align:left}.report-card:hover{border-color:var(--aqua)}.report-card-thumb{display:block;flex:0 0 108px;min-width:0;overflow:hidden}.report-card-thumb svg{display:block;width:100%;height:auto}.report-card-body{display:flex;flex-direction:column;gap:4px;min-width:0}.report-card strong{font-size:18px;line-height:1.3;overflow-wrap:anywhere}.report-card .report-card-meta{font-size:12px;color:var(--muted);font-weight:500}.report-card .report-card-strength{font-size:13px;color:#a83b29}.report-card .report-card-range{font-size:13px;line-height:1.4;color:#a83b29}.report-card .report-card-author{font-size:11px;color:var(--muted)}
.reports-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:220px;padding:25px 16px;background:#e8f0eb;border:1px dashed #bdd3c9;border-radius:16px;color:var(--muted)}.reports-empty strong{font-size:18px;color:var(--ink)}.reports-empty p{font-size:14px;line-height:1.6;margin:9px 0 18px;max-width:300px}.reports-empty .reports-primary{font-size:14px;min-height:42px}.reports-more{flex:none;min-height:42px;padding:9px;border:1px solid var(--line);background:var(--paper);border-radius:10px;font-size:14px}
.reports-screen[data-reports-mode=map] .reports-map{flex:1 0 240px;min-height:240px}.reports-screen[data-reports-mode=map] .reports-list{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity}.reports-screen[data-reports-mode=map] .report-card{flex:0 0 310px;scroll-snap-align:start}.reports-screen[data-reports-mode=map] .report-card-thumb{flex-basis:78px}.reports-screen[data-reports-mode=map] .reports-empty{flex:1;min-height:140px}
.reports-screen[data-reports-mode=detail] .reports-map{flex:1 0 240px;min-height:240px}.report-detail{flex:none;max-height:none;overflow:visible;padding:13px 15px}.report-detail>strong{display:block;font-size:21px}.report-detail p{font-size:14px;margin:8px 0}.report-detail .report-detail-strength{color:#a83b29;font-size:14px;font-weight:650}.report-detail .report-detail-range{padding:9px 11px;border-radius:8px;background:#fff0e9;color:#a83b29;font-size:15px;font-weight:650}.report-detail-back{display:block;padding:0 0 10px;font-size:13px;color:var(--aqua)}.report-detail-actions button{min-height:39px;font-size:13px}.report-detail .reports-small{display:block;margin-top:10px;font-size:11px}
@media(max-width:700px){.reports-screen{padding:11px 12px;gap:8px}.reports-heading h1{font-size:23px}.reports-heading .reports-primary{font-size:13px;padding:8px 11px}.reports-list{grid-template-columns:1fr}.report-card-thumb{flex-basis:104px}.report-card strong{font-size:18px}.reports-access{font-size:11px}.reports-search input{font-size:14px}.reports-filters button{font-size:12px;min-height:33px;padding:5px 11px}.reports-screen[data-reports-mode=write] .reports-map{flex-basis:200px;min-height:200px}.reports-screen[data-reports-mode=map] .reports-map,.reports-screen[data-reports-mode=detail] .reports-map{min-height:220px;flex-basis:220px}}
@media(max-width:360px){.report-card{gap:8px;padding:10px}.report-card-thumb{flex-basis:82px}.report-card strong{font-size:17px}.report-card .report-card-range{font-size:12px}.reports-display button{padding:6px 9px}}

/* 3.27: a large editing workspace with explicit range and direction stages. */
.reports-map-workspace{display:flex;flex-direction:column;gap:8px;min-height:0;flex:1 0 250px}.reports-map-workspace>.reports-map{flex:1 0 240px;min-height:240px}.reports-screen[data-reports-mode=write] .reports-map-workspace{flex:1 0 auto;min-height:clamp(390px,65dvh,650px)}.reports-screen[data-reports-mode=write] .reports-map-workspace>.reports-map{flex:1 1 auto;min-height:260px}
.report-map-actions{grid-column:1/-1;display:flex;align-items:center;gap:7px;min-width:0}.reports-write-tools .report-map-actions .report-mark-current{margin-right:auto;min-height:39px;font-size:13px}.report-map-actions #reportExpandMap,.report-map-actions #reportUndo{background:#f7fbf8;border:1px solid #d3e2da;min-height:36px;border-radius:8px;font-size:12px;padding:6px 9px}.reports-write-tools .report-route-controls button{min-height:40px;font-size:13px}.reports-write-tools .reports-back{font-size:13px;min-height:36px}.reports-map-workspace .reports-hint{font-size:13px;min-height:19px;color:var(--ink)}
.report-map-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex:none}.report-map-footer strong{font-size:13px;font-weight:600}.report-map-footer button{background:var(--ink);color:white;min-height:42px;border-radius:9px;padding:9px 12px;font-size:14px;font-weight:700;white-space:nowrap}
.reports-map-workspace[data-expanded=true]{position:fixed;inset:0;z-index:2500;max-width:none;width:100%;height:100dvh;padding:calc(10px + env(safe-area-inset-top)) 12px calc(10px + env(safe-area-inset-bottom));background:#f2f6f3;overflow:hidden;gap:8px}.reports-screen[data-reports-mode=write] .reports-map-workspace[data-expanded=true]>.reports-map{flex:1 1 0;min-height:70px;border-radius:15px}.reports-map-workspace[data-expanded=true] .reports-write-tools{flex:none}.reports-map-workspace[data-expanded=true] #reportExpandMap{border-color:var(--aqua);color:var(--aqua);font-weight:700}
.reports-map-workspace .report-direction-tools{display:flex;flex-direction:column;align-items:stretch;gap:6px;flex:none;padding:10px;border:1px solid #edccbf;background:#fff6f1;border-radius:12px}.report-direction-heading{display:flex;align-items:center;gap:9px}.report-direction-heading #reportDirectionPreview{width:35px;height:35px;flex:none}.report-direction-heading svg{display:block;width:100%;height:100%}.report-direction-heading strong{display:block;font-size:15px}.report-direction-heading output{display:block;font-size:12px;color:#8c4a35}.report-direction-slider{display:flex;align-items:center;gap:10px;font-size:12px;white-space:nowrap}.report-direction-slider input{flex:1;min-width:0;accent-color:#d6533e;min-height:27px}.report-direction-shortcuts{display:grid;grid-template-columns:repeat(3,1fr) 1.4fr;gap:6px}.report-direction-shortcuts button{font-size:13px;min-height:36px;padding:5px 7px}.report-direction-confirm{display:flex;gap:7px}.report-direction-confirm button{min-height:39px;font-size:14px}.report-direction-confirm #reportFlowCancel{flex:1}.report-direction-confirm #reportFlowApply{flex:3;background:#d6533e;border-color:#d6533e;color:white;font-weight:750}
.report-direction-handle{background:none;border:0;text-align:center;cursor:grab}.report-direction-handle>span{display:grid;place-items:center;background:#d6533e;border:3px solid white;border-radius:50%;width:40px;height:40px;margin:0 auto;color:white;box-shadow:0 2px 8px #153d4250;font-size:24px;touch-action:none}.report-direction-handle small{display:block;font-size:10px;background:white;color:#a83b29;line-height:1.4;white-space:nowrap;border-radius:5px;padding:1px 3px;box-shadow:0 2px 5px #153d4220}.report-editing-arrow{filter:drop-shadow(0 2px 3px #153d4230)}
@media(max-width:600px){.reports-screen[data-reports-mode=write] .reports-map-workspace{min-height:clamp(390px,65dvh,600px)}.reports-write-tools .report-route-controls button{font-size:12px;padding:8px 10px}.report-map-actions{gap:5px}.reports-write-tools .report-map-actions .report-mark-current{font-size:12px;padding:6px 9px}.report-map-actions #reportExpandMap,.report-map-actions #reportUndo{font-size:11px;padding:6px 7px}.reports-map-workspace .reports-hint{font-size:12px}.report-map-footer strong{font-size:12px}.report-map-footer button{font-size:13px}.reports-map-workspace[data-expanded=true]{padding-left:10px;padding-right:10px}.report-direction-shortcuts{gap:5px}.report-direction-shortcuts button{font-size:12px;padding:5px}}
@media(max-height:540px){.reports-map-workspace[data-expanded=true]{gap:4px;padding-top:5px;padding-bottom:5px}.reports-map-workspace[data-expanded=true] .report-direction-tools{padding:7px;gap:4px}.reports-map-workspace[data-expanded=true] .report-direction-heading{display:none}.reports-map-workspace[data-expanded=true] .reports-hint{font-size:11px;min-height:16px}.reports-map-workspace[data-expanded=true] .reports-write-tools{gap:4px}.reports-map-workspace[data-expanded=true] .report-route-controls button,.reports-map-workspace[data-expanded=true] .report-map-actions button{min-height:33px;padding-top:5px;padding-bottom:5px}}
.reports-screen[data-reports-mode=write] .reports-map-workspace[data-expanded=true]{height:100dvh;min-height:0}.report-map-status{flex:none;margin:0;font-size:11px;line-height:1.4;color:#8c4a35;max-height:32px;overflow:auto}

/* v3.28: compact field entry and accessible 12h time selectors */
.report-time-block{min-width:0;display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:11px}
.report-time-controls{display:flex;align-items:center;gap:3px;min-width:0}
.report-time-controls select{width:auto;flex:1 1 0;min-width:0;padding:3px 2px;font-size:12px;height:36px}
.report-time-controls .report-ampm{flex:1.35 1 0}
.report-time-controls>span{flex:none;font-weight:700}
.report-time-controls .report-time-clear{background:#edf4f1;border:1px solid #d4e2db;border-radius:7px;padding:6px 5px;font-size:11px;flex:none;min-height:34px}
.report-submit-reason{padding:8px 10px;margin:3px 0;border-radius:8px;background:#eff7f4;color:#146963;font-size:12px;line-height:1.4}
#reportSubmit:disabled{opacity:.45;cursor:not-allowed}
.reports-screen[data-reports-mode=write] .reports-map-workspace.report-form-open{flex:0 0 auto;min-height:0;gap:3px}
.reports-screen[data-reports-mode=write] .reports-map-workspace.report-form-open>.reports-map{flex:0 0 auto;height:clamp(90px,15dvh,145px);min-height:90px}
.reports-screen[data-reports-mode=write] .report-editor.report-form-open{overflow:visible;max-height:none;flex:0 0 auto}
.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-details{margin-top:2px}
.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-details>summary{min-height:27px;padding:3px 0;margin-bottom:2px}
.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form{gap:4px 7px}
.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form input,.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form select{height:32px;min-height:32px}
@media(max-width:600px){.reports-screen[data-reports-mode=write] .reports-map-workspace.report-form-open>.reports-map{height:95px;min-height:95px}.report-time-controls select{font-size:12px}.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form{gap:4px 6px}}

/* 3.29: readable monthly sea conditions and explicit no-current reports. */
.basugil-brand{font-size:29px;letter-spacing:-1px;white-space:nowrap}.basugil-brand small{font-size:10px;letter-spacing:0}
.home-view-switch{display:flex;background:#e2ede7;border-radius:12px;padding:4px;gap:4px;flex:none}.home-view-switch button{flex:1;border:0;background:transparent;border-radius:9px;min-height:36px;font-size:15px;color:#527072}.home-view-switch button.active{background:#fff;color:#153d42;font-weight:800}
.home-weekly{display:flex;flex-direction:column;min-height:0;flex:1;gap:8px}.sea-calendar{min-height:0;flex:1;overflow:auto;display:flex;flex-direction:column;gap:5px}.calendar-toolbar{display:flex;align-items:center;gap:7px;flex:none}.calendar-toolbar label{flex:1;display:flex;align-items:center;gap:6px;font-size:12px;color:#637a7d}.calendar-toolbar input{min-width:0;flex:1;font-size:17px;font-weight:700;border:0;background:transparent;color:#153d42;min-height:38px}.calendar-toolbar button{min-height:36px;min-width:35px;border:1px solid #d5e3db;border-radius:9px;background:#fff;font-size:17px;color:#153d42}.calendar-toolbar #calendarToday{font-size:12px;padding:0 10px}
.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.calendar-weekdays{font-size:12px;text-align:center;color:#6b8183;padding:2px 0}.calendar-weekdays span:first-child{color:#b85f48}.calendar-date{position:relative;min-height:clamp(31px,4.3dvh,43px);background:#fff;border:1px solid transparent;border-radius:9px;font-size:16px;color:#153d42;padding:3px}.calendar-date.today{border-color:#78b5aa}.calendar-date.has-forecast:after{content:'';position:absolute;width:4px;height:4px;border-radius:50%;background:#259493;bottom:3px;left:calc(50% - 2px)}.calendar-date.selected{background:#153d42;color:#fff;font-weight:800}.calendar-date.selected:after{background:#9ee5d8}
.calendar-day{background:#fff;border:1px solid #d6e5dd;border-radius:15px;padding:10px 12px;display:flex;flex-direction:column;gap:7px;margin-top:4px}.calendar-day-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:15px}.calendar-day-heading>span{font-size:12px;color:#6b8183}.calendar-wind{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:1px 12px;text-align:left;background:#e7f2ed;border:0;border-radius:10px;padding:9px 12px;color:#153d42}.calendar-wind>strong{font-size:24px;font-weight:800;justify-self:end}.calendar-wind>span:last-child{grid-column:1/-1;font-size:12px;color:#527072}.calendar-wind:disabled{opacity:1}.calendar-wind:disabled>strong{font-size:17px}.calendar-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px 14px}.calendar-value{display:flex;flex-direction:column;gap:1px}.calendar-value small{font-size:12px;color:#6b8183}.calendar-value strong{font-size:17px;overflow-wrap:anywhere}.calendar-value>span{font-size:10px;color:#6b8183}.calendar-source{font-size:11px;color:#6b8183;line-height:1.35}.reports-heading>.reports-admin{font-size:12px;min-height:35px;padding:6px 10px;border:1px solid #d1e1d8;border-radius:9px;background:transparent;color:#587779}.report-admin-form{display:flex;flex-wrap:wrap;gap:8px;padding:12px;background:#fff;border:1px solid #d6e5dd;border-radius:12px}.report-admin-form label{flex:1;min-width:160px;display:flex;flex-direction:column;gap:5px}.report-admin-form input{min-height:40px}.report-admin-form p{width:100%;margin:0;font-size:12px}.report-no-current{background:#e5f3e9;color:#20654f;border:1px solid #bad7c5}.report-no-current.active{background:#246b53;color:#fff}.reports-map-workspace .report-map-actions{flex-wrap:wrap}.report-details>summary{font-size:16px;font-weight:700}.report-form label,.report-time-block{font-size:13px}.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form input,.reports-screen[data-reports-mode=write] .report-editor.report-form-open .report-form select{height:40px;min-height:40px;font-size:15px}

.report-card.no-current .report-card-strength{color:#246b53}.reports-heading>div{min-width:0;flex:1}.reports-heading h1{overflow-wrap:anywhere}.reports-heading>button{flex-shrink:0}

/* 3.30: personal swim plans and explicit administrator login. */
.swim-plans{background:#e6f2ec;border:1px solid #d1e2d8;border-radius:12px;padding:9px 11px;flex:none;margin-top:5px}.swim-plans-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}.swim-plans-heading strong{font-size:15px}.swim-plans-heading small{font-size:11px;color:#617b79;font-weight:400;margin-left:5px}.swim-plans-heading button{border:0;border-radius:8px;background:#153d42;color:#fff;padding:8px 12px;min-height:36px;font-weight:700}.swim-plans-note{display:block;font-size:10px;color:#617b79;margin-top:4px}.swim-plan-card{background:#fff;border-radius:9px;padding:9px;margin-top:7px}.swim-plan-main{display:flex;flex-direction:column;gap:5px;width:100%;text-align:left;border:0;background:transparent;padding:0;color:#153d42}.swim-plan-main strong{font-size:16px;overflow-wrap:anywhere}.swim-plan-main span{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;color:#526f70}.swim-plan-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:5px}.swim-plan-actions button{border:0;background:transparent;font-size:12px;padding:5px;color:#267d7c}.calendar-date.has-plan:before{content:'';position:absolute;width:6px;height:6px;border-radius:50%;background:#e2a329;right:5px;top:4px}.swim-plan-dialog{width:min(420px,calc(100% - 24px));max-height:calc(100dvh - 30px);box-sizing:border-box;border:0;border-radius:18px;padding:20px;background:#f7fbf8;color:#153d42;overflow:auto}.swim-plan-dialog::backdrop{background:#153d4270;backdrop-filter:blur(3px)}.swim-plan-dialog form{display:flex;flex-direction:column;gap:12px}.swim-plan-dialog-heading{display:flex;align-items:center;justify-content:space-between}.swim-plan-dialog-heading h2{margin:0;font-size:22px}.swim-plan-dialog-heading button{border:0;background:transparent;font-size:28px;color:#153d42}.swim-plan-dialog label{display:flex;flex-direction:column;gap:5px;font-size:14px;font-weight:700}.swim-plan-dialog input,.swim-plan-dialog textarea{width:100%;box-sizing:border-box;min-height:46px;padding:10px;border:1px solid #cbded3;border-radius:9px;background:white;font:inherit;font-size:17px;color:#153d42}.swim-plan-dialog textarea{resize:vertical;font-weight:400}.swim-plan-dialog p{margin:0;font-size:13px;color:#a43c2e}.swim-plan-save{min-height:48px;border:0;border-radius:10px;background:#153d42;color:white;font-size:17px;font-weight:700}.admin-form-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.report-admin-form input{font-size:17px;padding:9px;border:1px solid #cbded3;border-radius:8px;min-width:0;box-sizing:border-box}.report-admin-form input:disabled{opacity:.65}.report-admin-form button{min-height:40px;border:1px solid #cbded3;border-radius:8px;padding:8px 12px;color:#153d42;background:#e7f2ed}.report-admin-form p{line-height:1.5}
.swim-plan-dialog form{width:100%;align-items:stretch;padding:0;background:transparent}.swim-plan-dialog form button{width:auto}.swim-plan-dialog form .swim-plan-save{width:100%}.swim-plan-dialog-heading button{width:40px;min-height:40px;flex:none}.report-admin-form{width:100%;flex:none;align-items:stretch}.report-admin-form .admin-form-actions{width:100%}.report-admin-form button{width:auto;font-size:14px}.report-admin-form input{width:100%}

/* 3.31: personal photo records and immediate admin dialog. */
.bottom-nav{display:flex}.bottom-nav button{flex:1;min-width:0;white-space:nowrap}.bottom-nav button span{flex:none}
.admin-dialog,.record-editor-dialog,.record-detail-dialog{border:0;border-radius:20px;width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 24px);box-sizing:border-box;padding:20px;background:#f7fbf8;color:var(--ink);overflow:auto}.admin-dialog::backdrop,.record-editor-dialog::backdrop,.record-detail-dialog::backdrop{background:#123a4070;backdrop-filter:blur(3px)}.admin-dialog-heading,.record-dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.admin-dialog-heading h2,.record-dialog-heading h2{font-size:22px;margin:0}.admin-dialog-heading button,.record-dialog-heading button{font-size:28px;width:42px;min-height:42px;flex:none;border:0;background:transparent;color:var(--ink)}.admin-dialog .report-admin-form{display:flex;flex-direction:column;gap:14px;padding:0;border:0;background:transparent;width:100%;margin:0}.admin-dialog .report-admin-form label{width:100%;gap:7px;flex:none;font-size:15px}.admin-dialog .report-admin-form input{min-height:48px;height:48px;font-size:18px;background:white}.admin-dialog .report-admin-form button{width:100%;min-height:48px;font-size:17px;font-weight:700;background:var(--ink);color:white}.admin-dialog p{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.admin-dialog a{color:#267d7c;font-size:14px}.admin-session{display:flex;flex-direction:column;gap:10px}.admin-session button{min-height:46px;border-radius:10px;background:#e3f0e9;font-size:16px}.admin-session button:first-of-type{background:var(--ink);color:#fff}
.records-screen{overflow-y:auto;max-width:850px;margin:auto;padding:20px 24px 30px;scrollbar-width:thin}.records-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.records-heading h1{font-size:26px;margin:0}.records-heading small{color:var(--muted);font-size:12px}.record-primary{background:var(--ink);color:#fff;min-height:43px;padding:10px 16px;border-radius:12px;font-size:15px;font-weight:750}.records-month-tools{display:flex;align-items:center;gap:6px;margin-bottom:12px}.records-month-tools input{font-size:17px;font-weight:750;min-width:0;border:0;min-height:40px;flex:1;background:transparent;padding:5px;color:var(--ink)}.records-month-tools button{min-width:38px;min-height:38px;border-radius:10px;background:#fff;font-size:21px}.records-month-tools #recordsAll{font-size:13px;padding:7px 12px;border:1px solid #d1e1d8}.records-month-tools #recordsAll.active{background:var(--ink);color:#fff}.record-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.record-stat{display:flex;flex-direction:column;gap:3px;background:#e3f0e9;border:1px solid #d1e3d8;border-radius:12px;padding:13px 14px;min-width:0}.record-stat>strong{font-size:25px;font-weight:800;overflow-wrap:anywhere;line-height:1.3}.record-stat>small{font-size:12px;color:#5c7879}.record-more-stats{margin-top:9px}.record-more-stats summary{font-size:12px;color:#527474;cursor:pointer;padding:4px 0 9px}.record-more-stats .record-stat{background:#fff}.record-more-stats .record-stat strong{font-size:19px}.records-calendar{border:1px solid #d4e3da;background:#fff;border-radius:12px;padding:10px 12px;margin:9px 0 18px}.records-calendar>summary{font-size:14px;font-weight:700;cursor:pointer}.record-calendar-grid,.record-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}.record-weekdays{font-size:12px;text-align:center;color:#78918f;margin:12px 0 5px}.record-calendar-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:49px;border-radius:8px;border:1px solid #edf3ef;background:#f7fbf8;padding:4px 1px;font-size:15px}.record-calendar-day small{font-size:9px;color:#287c78}.record-calendar-day.has-records{background:#e3f0e9;border-color:#c3ded1}.record-calendar-day.selected{background:#153d42;color:#fff}.record-calendar-day.selected small{color:#a7e6dc}.records-list-heading{display:flex;justify-content:space-between;align-items:center;margin:5px 0 0}.records-list-heading h2{font-size:17px;margin:0}.records-list-heading button{font-size:12px;color:#267d7c}.records-message{font-size:13px;color:#866346;line-height:1.5;margin:8px 0}.records-message:empty{margin:0}.personal-record-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.record-date-heading{grid-column:1/-1;font-size:13px;margin:13px 0 0;color:#547575;font-weight:650}.personal-record-card{display:block;overflow:hidden;padding:0;border:1px solid #d6e4db;border-radius:15px;background:#fff;text-align:left;width:100%;box-shadow:0 5px 16px #153d4208}.record-image{display:block;width:100%;height:210px;object-fit:contain;background:#d9eceb}.record-no-image{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-height:180px;background:linear-gradient(150deg,#cbe6e7,#e1f1e7);color:#277f7c;padding:15px}.record-no-image>span{font-size:50px;line-height:1}.record-no-image strong{font-size:20px}.record-no-image small{font-size:11px}.personal-record-body{padding:13px}.personal-record-head{display:flex;justify-content:space-between;gap:7px;align-items:flex-start}.personal-record-head strong{font-size:18px;overflow-wrap:anywhere}.personal-record-head small{font-size:11px;color:#6e8886;white-space:nowrap;padding-top:4px}.personal-record-numbers{display:flex;flex-wrap:wrap;align-items:center;gap:7px 14px;margin-top:10px;background:#eef5f0;border-radius:7px;padding:8px}.personal-record-numbers b{font-size:16px}.personal-record-numbers span{font-size:11px;color:#587777}.personal-record-body>p{font-size:13px;color:#5b7574;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:9px 0}.personal-record-body>small{font-size:10px;color:#77918c;display:block;margin-top:8px}.records-empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:flex-start;padding:24px 20px;background:#fff;border:1px dashed #bdd8ca;border-radius:15px}.records-empty strong{font-size:18px}.records-empty p{font-size:14px;color:#6a8380;line-height:1.6;margin:9px 0 16px}.records-more{display:block;width:100%;background:#e4efe9;min-height:44px;margin-top:14px;border-radius:10px;font-size:14px}.records-storage-tools{margin-top:24px;border-top:1px solid #d4e4da;padding-top:14px;font-size:11px;color:#718a84}.records-storage-tools>div{display:flex;gap:10px;margin-top:9px}.records-storage-tools button,.records-import-label{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:6px 10px;border:1px solid #cfdfd5;border-radius:8px;font-size:12px;color:#3c726e;background:#f8fcf9;cursor:pointer}.records-import-label input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.record-editor-form{display:flex;flex-direction:column;align-items:stretch;width:100%;padding:0;background:transparent;gap:13px}.record-editor-form label{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:14px;font-weight:650}.record-editor-form input,.record-editor-form select,.record-editor-form textarea{width:100%;min-height:46px;height:auto;flex:none;padding:10px;border:1px solid #cadfd1;border-radius:10px;font:inherit;font-size:17px;background:#fff;color:var(--ink);box-sizing:border-box}.record-editor-form textarea{resize:vertical;font-weight:400}.record-editor-form button{width:auto;min-height:40px;font-size:14px;background:#e7f2eb;border-radius:9px;padding:9px 12px}.record-editor-form .record-primary{font-size:17px;background:var(--ink);color:#fff;min-height:48px}.record-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.record-editor-form .record-photo-upload{position:relative;display:flex;align-items:center;justify-content:center;border:1px dashed #8ab9a8;background:#e5f2eb;border-radius:12px;min-height:64px;color:#277b70;font-size:16px;cursor:pointer}.record-photo-upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;padding:0}.record-photo-preview{width:100%;max-height:260px;object-fit:contain;background:#d9eceb;border-radius:10px}.record-distance-input{display:flex;gap:8px}.record-distance-input input{flex:1;min-width:0}.record-distance-input select{width:78px;flex:none}.record-course-option{font-size:13px;color:#527773}.record-course-option summary{padding:5px 0;cursor:pointer}.record-course-option small{display:block;margin-top:4px}.record-input-note{font-size:11px;color:#6e8580;line-height:1.6}.record-editor-form p{margin:0;color:#a74432;font-size:13px;line-height:1.6}.record-detail-dialog{width:min(700px,calc(100% - 20px))}.record-detail-dialog .record-image{height:auto;max-height:56dvh;object-fit:contain;border-radius:10px;margin-bottom:12px}.record-detail-dialog .record-no-image{border-radius:10px;margin-bottom:12px}.record-detail-dialog small{color:#6e8884}.record-detail-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:12px}.record-detail-numbers .record-stat strong{font-size:21px}.record-detail-numbers .record-stat:last-child{grid-column:1/-1}.record-full-note{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;font-size:15px}.record-detail-actions{display:flex;gap:10px;margin-top:18px}.record-detail-actions button{flex:1;min-height:44px;background:#e0efe7;border-radius:10px;font-size:15px}.record-detail-actions button:last-child{color:#a34d3b;background:#faede8}
@media(max-width:600px){.bottom-nav button{font-size:10px;gap:3px;flex-direction:column;padding:5px 2px}.bottom-nav button span{font-size:18px;line-height:1.1}.records-screen{padding:14px 12px 24px}.records-heading{margin-bottom:10px}.records-heading h1{font-size:24px}.personal-record-list{grid-template-columns:1fr}.record-image{height:230px}.record-stat>strong{font-size:24px}.admin-dialog,.record-editor-dialog{padding:18px}.record-dialog-heading h2{font-size:20px}}

.record-original{display:block;margin:0 0 12px;text-align:right;font-size:13px;color:#267d7c}
