:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:#123c4b;background:#edf5f6;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer;border:0;border-radius:12px;font-weight:700;padding:13px 20px;background:#c4f54a;color:#143b32}button:hover{filter:brightness(.96)}button:disabled{opacity:.6;cursor:wait}button.secondary{background:#e3f0f2;color:#164c60}input,textarea,select{width:100%;border:1px solid #c3d7df;border-radius:11px;padding:13px;color:#123c4b;background:white;margin:7px 0 18px}textarea{resize:vertical;min-height:100px}label{display:block;font-size:14px;font-weight:600}header{background:#073e55;color:white;padding:20px 5%;border-bottom:4px solid #c4f54a;display:flex;align-items:center;justify-content:space-between}.brand{font-size:29px;letter-spacing:-1.5px;font-weight:900}.brand span{color:#c4f54a}.tag{font-size:11px;letter-spacing:2px;color:#bddcde}main{max-width:1100px;margin:0 auto;padding:28px 20px 80px}.auth-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:50px;align-items:center;min-height:65vh}.intro h1{font-size:clamp(36px,5vw,62px);line-height:1.08;letter-spacing:-2px;margin:14px 0 24px}.intro p{color:#50717b;line-height:1.7;max-width:440px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:800;color:#087c81}.card,.post{background:white;border:1px solid #d5e5e8;border-radius:22px;padding:28px;box-shadow:0 7px 25px #113f5007}.card h2{margin:0 0 9px;font-size:25px}.muted{color:#65808a;font-size:13px}.card form{margin-top:25px}.full{width:100%}.notice{padding:15px 18px;background:#fff0c9;border:1px solid #e3cf8e;border-radius:12px;margin-bottom:20px;color:#70521a;overflow-wrap:anywhere}nav{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 28px}nav button{background:transparent;color:#456875}nav button.active{background:#083e55;color:white}.workspace-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.workspace-head h1{margin:5px 0;font-size:30px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:18px}.section-head h2{margin:0}.post{margin-bottom:16px}.post-heading{display:flex;align-items:center;gap:12px}.avatar{display:grid;place-items:center;background:#d7eeea;color:#086a77;border-radius:50%;width:42px;height:42px;font-weight:800}.post-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.6}.capture{background:#ecf7ed;padding:12px;border-radius:9px;font-weight:600}.empty{padding:50px 24px;text-align:center;border:1px dashed #abcbd2;border-radius:20px;color:#5b7883;background:#ffffff80}.narrow{max-width:690px}.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pilot{display:inline-block;background:#11607a;border-radius:20px;padding:6px 12px;font-size:12px}.hint{font-size:13px;line-height:1.5;color:#65808a;margin:20px 0 0}li{padding:10px 0;border-bottom:1px solid #e3edef}[hidden]{display:none!important}:focus-visible{outline:3px solid #13a6b4;outline-offset:3px}@media(max-width:650px){.auth-layout{grid-template-columns:1fr;gap:25px;min-height:auto}.intro{padding:15px 4px}.intro h1{font-size:40px}.intro p{margin-bottom:0}.card,.post{padding:22px}.tag{display:none}main{padding:22px 16px 60px}.workspace-head h1{font-size:24px}nav{gap:3px}nav button{padding:12px}.row{grid-template-columns:1fr;gap:0}}
:root .password-toggle{display:block;margin:-10px 0 20px auto;padding:4px 0;background:transparent;color:#087187;font-size:13px}.link-button{background:transparent;color:#087187;margin:12px auto 0;display:block;padding:8px}
/* Fisgou: river contours, forest greens and open-water blues. */
:root{color:#103e37;background:#f0f5ed;--forest:#073f36;--river:#086e91;--lime:#cef367}
body{background:radial-gradient(ellipse at 100% 12%,#cae8df 0,transparent 45%),#f0f5ed;min-height:100vh}
header{background:var(--forest);border-bottom:0;padding:19px max(5%,calc((100% - 1060px)/2));gap:20px}
.brand{font-size:34px;font-weight:950;letter-spacing:-2px;font-style:italic}.brand span{color:var(--lime)}.tag{color:#a5d2c5;font-size:10px;letter-spacing:2px}.pilot{background:#ffffff0d;border:1px solid #ffffff26;color:#d5e9dc;font-size:11px}
main{padding-top:30px;max-width:1050px}.eyebrow{color:#168077;font-size:10px;letter-spacing:2px}.workspace-head{margin-bottom:24px}.workspace-head h1{font-size:26px;letter-spacing:-.7px;overflow-wrap:anywhere}.workspace-head>div{min-width:0}
button{min-height:44px;transition:background .15s,transform .15s;background:var(--lime);color:var(--forest);border-radius:14px}button:active{transform:translateY(1px)}button.secondary{color:#146459;background:#e0ede6}.workspace-head .secondary{font-size:12px;padding:9px 16px;border:1px solid #c3d9cd}
nav{position:sticky;top:10px;z-index:5;background:#fcfffaeF;backdrop-filter:blur(15px);padding:8px;border:1px solid #d5e2d6;border-radius:20px;box-shadow:0 6px 24px #163f3510;display:flex;justify-content:space-around;gap:8px;margin-bottom:28px}nav button{flex:1;padding:12px 10px;color:#406a5e;white-space:nowrap}nav button span{margin-right:6px;font-size:19px;vertical-align:middle}nav button.active{background:#0c5547;color:#fff}nav .new-catch{background:var(--lime);color:var(--forest)}nav .new-catch.active{background:#077d8b;color:#fff}
.river-hero{isolation:isolate;position:relative;overflow:hidden;border-radius:28px 28px 70px 28px;padding:36px 38px 32px;margin-bottom:36px;background:linear-gradient(120deg,#064d3c 0%,#065e69 54%,#087d9d 100%);color:#fff;min-height:310px;box-shadow:0 18px 38px #0763581c}.river-hero .eyebrow{color:#bde9c4}.river-hero h2{position:relative;font-size:clamp(34px,5vw,52px);line-height:1.07;letter-spacing:-1.6px;margin:20px 0 26px;font-weight:800}.river-hero em{color:#d2f48e;font-style:normal}.river-hero button{position:relative;padding:15px 22px;background:#d0f475;box-shadow:0 4px 20px #003e3650}.hero-note{display:block;position:relative;font-size:11px;color:#bce0d2;margin-top:15px}.river-lines{position:absolute;z-index:-1;width:650px;height:650px;border:1px solid #94e7c54d;border-radius:44% 56% 48% 52%;right:-130px;top:-190px;transform:rotate(-28deg);box-shadow:0 0 0 28px #72cbae0c,0 0 0 29px #a8e5c42a,0 0 0 59px #6bcab010,0 0 0 60px #bbe9d32a,0 0 0 91px #79d3be08,0 0 0 92px #9bd4cd30,0 0 0 123px #a7e3cd08,0 0 0 124px #bbe7e125,0 0 0 155px #bae9da08,0 0 0 156px #c6f0e028}.river-lines:after{content:'';position:absolute;inset:60px;border:1px solid #b8f1d532;border-radius:45% 55% 50% 50%}
.section-head h2{font-size:22px;letter-spacing:-.5px;margin-top:7px}.section-head .secondary{font-size:24px;line-height:1;padding:10px 15px}.empty{background:#fafff7;border:1px solid #d7e4d6;padding:30px 20px;border-radius:23px;color:#517166}.empty-river{font-size:50px;color:#1f998c;display:block;line-height:1.2}.empty h3{color:#224b3d;margin:10px 0;font-size:19px}.empty p{font-size:14px;margin:10px 0 22px}.empty button{font-size:13px}
.card,.post{border-color:#d6e4d7;box-shadow:0 10px 28px #103e3305;border-radius:24px}.card>.eyebrow{display:block;margin-bottom:9px}.card h2{color:#124c3e;font-size:30px;letter-spacing:-1px}.card.narrow{margin-inline:auto}.post{border-left:4px solid #129681}.catch-name{font-size:27px;color:#09647a;letter-spacing:-.8px;margin-bottom:5px}.capture{display:inline-block;margin-top:0;background:#dff0da;color:#1f6245}.avatar{object-fit:cover;flex-shrink:0;background:#dbf0d8;color:#156a4b}.post-text{margin-top:10px}.post time{display:block}.muted{color:#60786c;line-height:1.5}.card p{overflow-wrap:anywhere}
input,textarea,select{border-color:#c6dbce;background:#fbfefa;color:#163d32;border-radius:12px}input:focus,textarea:focus,select:focus{outline:2px solid #17978b;outline-offset:1px}.card label{color:#31594b}.optional{font-size:11px;font-weight:400;color:#738779;margin-left:6px}.optional-details{margin:20px 0;border-top:1px solid #dfebdf;border-bottom:1px solid #dfebdf;padding:17px 0}.optional-details summary{cursor:pointer;font-size:14px;font-weight:700;color:#126957;line-height:1.6;min-height:32px}.optional-details summary span{font-size:11px;font-weight:400;margin-left:5px;color:#778b7c}.optional-details[open] summary{margin-bottom:20px}.optional-details form{margin-top:12px}
.species-results{display:grid;grid-template-columns:1fr 1fr;gap:9px}.species-choice{min-width:0;text-align:left;padding:13px;background:#edf5ed;border:1px solid #d1e5d7;font-weight:500}.species-choice:hover{background:#dcefdc}.species-choice strong,.species-choice span{display:block;overflow-wrap:anywhere}.species-choice strong{font-size:13px;margin-bottom:4px}.species-choice span{font-size:10px;font-style:italic}.selected-species{display:flex;align-items:center;justify-content:space-between;gap:8px;background:#0f6352;color:#fff;padding:16px;border-radius:15px;margin:0 0 16px}.selected-species small{font-size:9px;color:#c1eaa3;letter-spacing:1px;display:block;margin-bottom:7px}.selected-species strong{font-size:18px}.selected-species button{font-size:12px;padding:8px 12px;min-height:40px;background:#ffffff19;color:white}.search-label{margin-top:24px}.catalog-list{list-style:none;padding:0;margin-top:22px}.catalog-list li{padding:17px 0;position:relative;border-color:#e0ebe0;overflow-wrap:anywhere}.catalog-list strong,.catalog-list em,.catalog-list span{display:block;margin-bottom:5px}.catalog-list strong{font-size:16px}.catalog-list em{font-size:12px;color:#467365}.catalog-list .muted{font-size:12px;padding-right:40px}.source-link{font-size:10px;color:#147283}.species-kind{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#678843}
.photo-editor{display:flex;align-items:center;gap:22px;margin-bottom:30px}.profile-photo{display:grid;place-items:center;width:96px;height:96px;border-radius:28px;background:#dff0d5;border:3px solid #fff;box-shadow:0 0 0 1px #bdd8bc;flex-shrink:0;overflow:hidden}.profile-photo-image{width:100%;height:100%;object-fit:cover;display:grid;place-items:center;font-size:35px;font-weight:800;color:#1e7252}.file-label{display:inline-block;background:#daf063;padding:12px 15px;border-radius:12px;cursor:pointer;font-size:13px}.photo-input{position:absolute;width:1px;height:1px;padding:0;margin:0;clip-path:inset(50%);overflow:hidden}.photo-editor:focus-within .file-label{outline:2px solid #11948b;outline-offset:3px}.photo-editor .muted{display:block;font-size:10px;margin-top:10px}.photo-editor .link-button{font-size:11px;padding:4px;min-height:30px;margin:4px 0;color:#46685b}.notice{position:relative;z-index:6;background:#eef8d2;color:#375226;border:1px solid #bad598;line-height:1.5}
@media(min-width:800px){#feed{display:grid;grid-template-columns:1fr 1fr;gap:0 28px;align-items:start}.river-hero{grid-row:1 / 4;position:sticky;top:105px;min-height:440px;margin:0}.river-hero h2{margin-top:50px}#feed-list{grid-column:2}.section-head{grid-column:2}.species-results{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:650px){header{padding:17px 22px}.brand{font-size:31px}.pilot{font-size:9px}.workspace-head h1{font-size:23px}.workspace-head{margin-bottom:21px}.workspace-head .eyebrow{font-size:9px}main{padding:22px 18px calc(125px + env(safe-area-inset-bottom))}.card,.post{padding:23px 20px}.river-hero{padding:29px 25px 27px;border-radius:23px 23px 54px 23px;min-height:335px;margin-bottom:30px}.river-hero h2{font-size:40px;letter-spacing:-1.2px;margin-top:21px}.river-lines{width:400px;height:600px;right:-250px;top:-170px}.river-hero button{font-size:13px}.section-head h2{font-size:20px}.section-head .eyebrow{font-size:9px}.row{grid-template-columns:1fr 1fr;gap:12px}.row>div{min-width:0}nav{position:fixed;top:auto;bottom:0;left:0;right:0;margin:0;border-radius:24px 24px 0 0;border:1px solid #c7ddcd;background:#fafff8f5;padding:10px 8px calc(12px + env(safe-area-inset-bottom));gap:3px;box-shadow:0 -5px 25px #1e533519}nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;padding:7px 3px;min-height:56px;border-radius:13px}nav button span{display:block;margin:0 0 3px;font-size:22px;line-height:22px}nav .new-catch{flex:1.3;box-shadow:0 3px 12px #789a2730}.card h2{font-size:28px}.photo-editor{gap:17px}.profile-photo{width:82px;height:82px;border-radius:23px}.species-results{gap:8px}.species-choice{padding:12px 10px}.species-choice strong{font-size:12px}.optional-details summary{font-size:13px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.calendar-view{max-width:740px;margin:0 auto}.calendar-heading h2{font-size:32px;letter-spacing:-1.1px;margin:10px 0;color:#104a3c}.calendar-heading p{color:#627d6b;margin:0 0 23px;font-size:14px}.water-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:5px;border:1px solid #cbded3;background:#e1ede5;border-radius:17px}.water-switch button{background:transparent;color:#557464;font-size:14px}.water-switch button span{font-size:22px;margin-right:6px}.water-switch button[aria-pressed=true]{background:#105e4b;color:#fff;box-shadow:0 3px 10px #143f381a}.water-switch [data-water=sea][aria-pressed=true]{background:#086c90}.calendar-caveat{font-size:12px;line-height:1.5;color:#526d5c;margin:13px 2px 21px;max-width:600px}.month-controls{display:flex;align-items:center;gap:8px}.month-controls input{min-width:0;flex:1;width:100px;margin:0;padding:11px 8px;background:#fff;font-weight:700;font-size:16px}.month-controls button{padding:8px 14px;flex-shrink:0}.month-controls #previous-month,.month-controls #next-month{font-size:25px;line-height:1;width:44px;padding:6px}.month-controls #current-month{font-size:12px}.calendar-view button:disabled{cursor:default;opacity:.4}.calendar-view #calendar-status{font-size:11px;margin:13px 2px 18px}.best-week{position:relative;overflow:hidden;display:grid;grid-template-columns:1fr 35px;gap:10px 4px;background:linear-gradient(115deg,#074c39,#0e756b);color:#fff;padding:25px;border-radius:23px;margin-bottom:21px;box-shadow:0 10px 20px #155b4010}.best-week .eyebrow{color:#d0f18a;letter-spacing:1.5px;font-size:10px}.best-week h3{font-size:29px;letter-spacing:-.8px;margin:10px 0}.best-week p{font-size:11px;line-height:1.5;color:#c6e6d1;margin:0;max-width:320px}.week-star{font-size:36px;color:#d0f475;text-align:right}.week-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;grid-column:1 / -1;margin-top:10px}.week-day{min-width:0;min-height:52px;padding:7px 2px;border-radius:10px;display:grid;justify-items:center;gap:4px}.week-day small{font-size:9px;font-weight:500;text-transform:uppercase}.week-day strong{font-size:17px}.calendar-card{background:#fff;padding:22px;border:1px solid #d2e1d6;border-radius:23px}.calendar-card .section-head{margin-bottom:18px}.calendar-card h3{text-transform:capitalize;font-size:19px;letter-spacing:-.4px;margin:0}.calendar-water-label{font-size:11px;color:#427b6c;background:#e3f0e7;border-radius:20px;padding:6px 12px}.calendar-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px;font-size:10px}.calendar-legend>span{padding:6px 8px;border-radius:7px}.legend-high,.level-high{background:#cee97a;color:#274611}.legend-medium,.level-medium{background:#d4edf4;color:#165771}.legend-neutral,.level-neutral{background:#eeeae0;color:#6d6149}.month-grid{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:4px}.month-grid th{font-size:10px;font-weight:600;color:#6e8077;padding:0 0 10px}.month-grid td{padding:1px 0;vertical-align:middle}.calendar-date{position:relative;width:100%;min-width:0;min-height:62px;padding:9px 0 7px;border-radius:10px;border:1px solid transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.calendar-date .day-number{font-size:17px;font-weight:700}.day-level{font-size:10px;line-height:12px}.calendar-date.best-date{border:1px solid #729a34}.calendar-date .week-marker{position:absolute;right:3px;top:1px;font-size:8px;color:#365d17}.calendar-date.is-today{box-shadow:inset 0 0 0 2px #194e47,inset 0 0 0 4px #ffffffc0}.calendar-date[aria-pressed=true]{outline:2px solid #087e9c;outline-offset:1px}.calendar-date.past-date{opacity:.56}.calendar-date:focus-visible{outline:3px solid #0f83a3}.calendar-key{color:#6b7a6f;font-size:10px;margin:13px 3px 0}.day-detail{margin:20px 0;background:#fbfff8;border:1px solid #cedecc;border-radius:21px;padding:24px}.day-detail-heading{display:flex;align-items:center;gap:16px;margin-bottom:20px}.day-moon{font-size:39px;line-height:1;flex-shrink:0}.day-detail .eyebrow{font-size:9px;line-height:1.7;letter-spacing:1px}.day-detail h3{margin:7px 0 0;font-size:22px;letter-spacing:-.5px}.day-badge{display:inline-block;padding:7px 10px;border-radius:9px;font-size:12px;font-weight:700}.day-detail p{font-size:13px;line-height:1.6}.day-detail .muted{font-size:11px}.day-guidance{padding-top:13px;border-top:1px solid #dfebd9;color:#56725e;margin-bottom:0}.phase-section{margin:25px 0}.phase-section h3{font-size:18px;letter-spacing:-.4px}.phase-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.phase-item{display:flex;align-items:center;gap:10px;background:#ffffff85;border:1px solid #dbe7dc;padding:14px;border-radius:14px}.phase-item strong{display:block;font-size:12px}.phase-item .muted{font-size:10px;display:block;margin-top:5px}.phase-moon{font-size:24px}.calendar-method{margin:25px 0 5px;border-top:1px solid #cfded2;padding-top:21px;color:#506d5b}.calendar-method summary{cursor:pointer;color:#17675a;font-size:13px;font-weight:700;min-height:40px}.calendar-method p{font-size:12px;line-height:1.65}.calendar-method a{color:#086985;text-underline-offset:3px}.calendar-method label{margin-top:20px;font-size:12px}.calendar-method select{font-size:13px}.calendar-view[data-water=sea] .best-week{background:linear-gradient(115deg,#06435e,#107e99)}
@media(max-width:650px){.calendar-heading h2{font-size:29px}.water-switch button{padding:11px 4px;font-size:12px}.water-switch button span{font-size:19px}.calendar-card{padding:17px 10px}.calendar-card .section-head{padding:0 5px}.calendar-card h3{font-size:17px}.calendar-legend{gap:5px;font-size:9px;padding:0 4px}.calendar-legend>span{padding:6px}.month-grid{border-spacing:3px}.calendar-date{min-height:56px;border-radius:8px}.calendar-date .day-number{font-size:15px}.best-week{padding:23px 19px}.best-week h3{font-size:27px}.week-strip{gap:5px}.day-detail{padding:21px 18px}.phase-item{padding:12px 9px;gap:7px}.phase-item strong{font-size:11px}.phase-moon{font-size:21px}nav button{font-size:9px;letter-spacing:-.1px}.month-controls #current-month{padding:8px 10px}.month-controls #previous-month,.month-controls #next-month{width:37px}.month-controls{gap:6px}}
/* Capture media and touch-friendly profile crop. */
#photo-dialog{border:0;border-radius:24px;padding:24px;width:min(380px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box;color:#103c46;background:#f7fcf8;box-shadow:0 24px 80px #001c2c66}
#photo-dialog::backdrop{background:#062b40b8}#photo-dialog h2{margin:0 0 8px}#photo-dialog p{font-size:.9rem}#crop-canvas{display:block;width:min(288px,100%);height:auto;aspect-ratio:1;border-radius:14px;margin:auto;touch-action:none;cursor:grab;outline-offset:4px}#crop-zoom{padding:0;accent-color:#087d63}.crop-actions{display:flex;gap:10px}.crop-actions button{flex:1;min-width:0;padding:12px 8px}
.capture-upload{padding:18px 0;border-block:1px solid #d2e7df;margin:20px 0}.capture-upload>input[type=file]{max-width:100%;font-size:.85rem}.capture-media-list{display:grid;gap:16px}.media-draft{background:#eef8f4;border:1px solid #c3e0d5;border-radius:16px;padding:12px}.media-draft img,.media-draft video{display:block;width:100%;max-height:280px;object-fit:contain;background:#092e3b;border-radius:10px}.media-draft textarea{margin-bottom:0}.catch-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:12px}.catch-gallery figure{margin:0;min-width:0;background:#edf7f2;border-radius:16px;overflow:hidden}.catch-gallery img,.catch-gallery video{display:block;width:100%;max-height:540px;object-fit:contain;background:#0c3544}.catch-gallery figcaption{padding:12px;white-space:pre-wrap;overflow-wrap:anywhere}.catch-equipment{margin:16px 0;padding:12px 16px;background:#edf7f2;border-radius:12px}.catch-equipment summary{font-weight:700;cursor:pointer}.catch-equipment dl{display:grid;grid-template-columns:1fr 2fr;gap:8px}.catch-equipment dt{font-weight:600}.catch-equipment dd{margin:0;overflow-wrap:anywhere}.species-photo{width:100%;max-height:220px;object-fit:contain;border-radius:12px;background:#e7f4ef;margin-bottom:10px}.species-choice img{width:72px;height:50px;object-fit:contain;float:left;margin-right:12px;border-radius:8px;background:#fff}.species-photo-edit{margin-top:10px}.species-photo-edit summary{font-size:.85rem;color:#086959;cursor:pointer}.photo-credit{display:block;color:#47656b;margin-top:6px;overflow-wrap:anywhere}
.capture-upload:focus-within>.file-label{outline:2px solid #11948b;outline-offset:3px}.species-choice img{width:100%;height:85px;float:none;margin:0 0 8px}
