:root {
  --ink: #062f29;
  --ink-2: #0b4037;
  --ink-3: #145247;
  --cream: #f5f0e5;
  --paper: #fffaf0;
  --gold: #d9ae55;
  --gold-2: #f1cf7c;
  --muted: #aebdb7;
  --line: rgba(245, 240, 229, .16);
  --shadow: 0 18px 48px rgba(0, 15, 12, .28);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--cream);
  background: #021d19;
}
* { box-sizing: border-box; }
html { min-height: 100%; min-height: 100dvh; background: #021d19; }
body { margin: 0; min-height: 100%; min-height: 100dvh; padding: 0; background: radial-gradient(circle at 50% -10%, #176052 0, #052a25 42%, #021d19 100%); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, a:focus-visible { outline: 3px solid var(--gold-2); outline-offset: 2px; }
.app-shell { width: 100%; min-height: 100dvh; background: var(--ink); position: relative; overflow-x: clip; }
.topbar { height: 70px; padding: 10px 16px; padding-top: max(10px, env(safe-area-inset-top)); display: flex; align-items: center; justify-content: space-between; position: sticky; top: 0; z-index: 10; background: rgba(6,47,41,.93); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }
.brand { border: 0; color: var(--cream); background: transparent; display: flex; align-items: center; gap: 9px; font-weight: 900; letter-spacing: .04em; font-size: 1.05rem; }
.brand img { width: 40px; height: 40px; object-fit: cover; object-position: top; border-radius: 50%; }
.icon-button { border: 1px solid var(--line); background: rgba(255,255,255,.04); color: var(--gold); width: 40px; height: 40px; border-radius: 50%; }
.notification-button { position: relative; display: grid; place-items: center; }.notification-button > span { font-size: .85rem; transform: rotate(45deg); }.notification-button.has-unread { border-color: rgba(241,207,124,.72); background: rgba(217,174,85,.13); }.notification-badge { position: absolute; top: -5px; right: -5px; min-width: 19px; height: 19px; padding: 0 5px; border: 2px solid var(--ink); border-radius: 999px; display: grid; place-items: center; background: #d45543; color: #fff; font-size: .58rem; font-weight: 950; line-height: 1; }
.back-button { font-size: 2rem; line-height: 1; }
main { min-height: calc(100dvh - 142px); padding-bottom: calc(86px + env(safe-area-inset-bottom)); }
.view { display: none; padding: 18px 16px 30px; animation: rise .25s ease; }
.view.active { display: block; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
h1, h2, h3, p { margin-top: 0; }
h1 { font-size: clamp(1.75rem, 7vw, 2.25rem); line-height: 1.05; margin-bottom: 10px; letter-spacing: -.035em; }
h2 { font-size: 1.25rem; margin: 22px 0 12px; }
h3 { font-size: 1rem; margin-bottom: 5px; }
p { line-height: 1.45; color: #d3ddd8; }
.eyebrow { margin: 0 0 7px; color: var(--gold-2); font-size: .75rem; font-weight: 800; letter-spacing: .16em; }
.hero { border-radius: 24px; padding: 25px 20px 22px; min-height: 215px; display: flex; flex-direction: column; justify-content: flex-end; box-shadow: var(--shadow); }
.water-panel { background: radial-gradient(circle at 75% 18%, rgba(241,207,124,.35), transparent 23%), linear-gradient(155deg, rgba(20,82,71,.55), rgba(3,29,25,.96)), repeating-linear-gradient(175deg, transparent 0 17px, rgba(255,255,255,.035) 18px 19px); border: 1px solid rgba(217,174,85,.35); }
.hero h1 { max-width: 330px; }
.install-strip { display: none; grid-template-columns: 40px 1fr auto; gap: 10px; align-items: center; margin-top: 12px; padding: 11px 12px; border: 1px solid rgba(217,174,85,.4); border-radius: 16px; background: rgba(217,174,85,.1); }
.install-strip.show { display: grid; }
.install-icon { width: 40px; height: 40px; display: grid; place-items: center; border-radius: 12px; background: var(--gold); color: #173a32; font-weight: 950; font-size: .78rem; }
.install-strip b { display: block; font-size: .86rem; }
.install-strip p { margin: 3px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.3; }
.install-strip button { min-height: 38px; padding: 0 11px; border: 1px solid var(--gold); border-radius: 10px; background: var(--gold); color: #173a32; font-weight: 900; }
.search-launch { border: 0; border-radius: 16px; min-height: 54px; padding: 0 17px; background: var(--paper); color: #263731; display: grid; grid-template-columns: 24px 1fr 20px; align-items: center; text-align: left; font-size: 1rem; }
.search-launch b { font-size: 1.6rem; }
.quick-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 14px 0 6px; }
.quick-card { min-height: 94px; padding: 14px 8px; border-radius: 16px; border: 1px solid rgba(217,174,85,.38); background: rgba(255,255,255,.035); color: var(--cream); display: flex; flex-direction: column; gap: 9px; align-items: center; justify-content: center; font-size: .78rem; }
.quick-card span { color: var(--gold); font-size: 1.5rem; }
.session-card { width: 100%; min-height: 80px; margin: 10px 0 4px; padding: 13px 15px; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; text-align: left; color: var(--cream); background: linear-gradient(125deg,rgba(255,255,255,.04),rgba(20,82,71,.38)); border: 1px solid rgba(217,174,85,.42); border-radius: 17px; }
.session-card-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #173a32; background: var(--gold); font-size: 1.1rem; box-shadow: 0 0 0 0 rgba(233,192,101,.35); }.session-card-copy { min-width: 0; }.session-card-copy small,.session-card-copy b,.session-card-copy em { display: block; }.session-card-copy small { color: var(--gold-2); font-size: .68rem; font-weight: 950; letter-spacing: .11em; }.session-card-copy b { margin-top: 2px; font-size: 1rem; line-height: 1.3; }.session-card-copy em { margin-top: 3px; color: var(--muted); font-size: .76rem; font-style: normal; line-height: 1.35; }.session-card > strong { color: var(--gold-2); font-size: 1.5rem; }.session-card.active { border-color: rgba(233,192,101,.8); background: linear-gradient(125deg,rgba(217,174,85,.2),rgba(20,82,71,.5)); }.session-card.active .session-card-icon { animation: sessionPulse 2s infinite; }
@keyframes sessionPulse { 0% { box-shadow: 0 0 0 0 rgba(233,192,101,.45); } 70% { box-shadow: 0 0 0 10px rgba(233,192,101,0); } 100% { box-shadow: 0 0 0 0 rgba(233,192,101,0); } }
.conditions-launch { width: 100%; min-height: 76px; margin: 10px 0 4px; padding: 13px 15px; display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 12px; text-align: left; color: var(--cream); background: linear-gradient(125deg, rgba(217,174,85,.16), rgba(20,82,71,.42)); border: 1px solid rgba(217,174,85,.48); border-radius: 17px; }
.conditions-launch-icon { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; color: #173a32; background: var(--gold); font-size: 1.45rem; }
.conditions-launch small,.conditions-launch b,.conditions-launch em { display: block; }.conditions-launch small { color: var(--gold-2); font-size: .62rem; font-weight: 900; letter-spacing: .12em; }.conditions-launch b { margin-top: 2px; font-size: .95rem; }.conditions-launch em { margin-top: 3px; color: var(--muted); font-size: .72rem; font-style: normal; }.conditions-launch > b { color: var(--gold-2); font-size: 1.5rem; }
.section-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.section-heading button { color: var(--gold-2); background: none; border: 0; }
.featured-card { padding: 0; border: 0; border-radius: 19px; overflow: hidden; width: 100%; text-align: left; background: var(--paper); color: #1b2f29; box-shadow: var(--shadow); }
.lake-art, .article-art { height: 145px; padding: 14px; background: radial-gradient(circle at 75% 16%, rgba(245,213,126,.84), transparent 21%), linear-gradient(180deg, #4f786c 0, #254e43 55%, #0c352d 56%, #041f1a 100%); color: white; display: flex; align-items: flex-end; font-size: .72rem; letter-spacing: .13em; font-weight: 800; }
.lake-art { position: relative; background-image: linear-gradient(180deg,rgba(0,20,16,.05),rgba(0,20,16,.74)), url('/assets/lake-woodland.webp'); background-size: cover; background-position: center; }
.lake-art small, .image-disclaimer { position: absolute; top: 12px; left: 12px; padding: 5px 7px; border-radius: 7px; background: rgba(3,27,23,.82); color: #fff4d5; font-size: .58rem; font-weight: 900; letter-spacing: .1em; }
.card-body { padding: 15px; }
.card-body p { color: #617068; margin-bottom: 0; font-size: .85rem; }
.row-between { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.rating { color: #735617; font-weight: 800; }
.challenge-strip { width: 100%; margin-top: 14px; padding: 14px; border-radius: 18px; border: 1px solid rgba(217,174,85,.35); color: var(--cream); background: linear-gradient(135deg, rgba(217,174,85,.13), rgba(255,255,255,.025)); display: grid; grid-template-columns: 62px 1fr 16px; gap: 12px; align-items: center; text-align: left; }
.challenge-strip p { margin: 0; font-size: .78rem; }
.challenge-strip h3 { margin: 2px 0; }
.progress-ring { width: 58px; height: 58px; border-radius: 50%; border: 7px solid rgba(255,255,255,.12); border-top-color: var(--gold); display: grid; place-items: center; font-weight: 900; }
.thread-preview, .video-row, .profile-link { width: 100%; padding: 14px; border: 1px solid var(--line); border-radius: 16px; color: var(--cream); background: rgba(255,255,255,.04); display: flex; align-items: center; gap: 12px; text-align: left; }
.thread-preview small, .video-row small, .profile-link small { display: block; color: var(--muted); margin-top: 4px; }
.conditions-heading > p:last-child { margin: 0; color: var(--muted); }
.conditions-controls { margin-bottom: 12px; display: grid; gap: 9px; }.conditions-lake-picker { display: block; padding: 10px 13px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.04); }.conditions-lake-picker span { display: block; margin-bottom: 3px; color: var(--gold-2); font-size: .62rem; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }.conditions-lake-picker select { width: 100%; min-height: 30px; padding: 0; border: 0; outline: 0; background: transparent; color: var(--cream); font: inherit; font-size: .86rem; font-weight: 850; }.conditions-lake-picker option { color: #173a32; background: var(--paper); }.conditions-action-row { display: grid; grid-template-columns: 1fr auto; gap: 9px; }.location-button,.refresh-weather-button { min-height: 44px; margin: 0; padding: 0 13px; font-size: .82rem; }.refresh-weather-button { min-width: 104px; }.conditions-live-row { min-height: 30px; margin: 1px 2px 8px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--muted); }.conditions-live-row span { display: flex; align-items: center; gap: 7px; color: #9be6b2; font-size: .72rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; }.conditions-live-row i { width: 8px; height: 8px; border-radius: 50%; background: #75d99b; box-shadow: 0 0 0 5px rgba(117,217,155,.1); }.conditions-live-row small { font-size: .68rem; text-align: right; }
.conditions-loading,.conditions-error { margin-top: 22px; padding: 22px 18px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.04); text-align: center; color: var(--muted); }
.conditions-loading::before { content: ''; display: block; width: 34px; height: 34px; margin: 0 auto 12px; border: 4px solid rgba(255,255,255,.15); border-top-color: var(--gold); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.conditions-error p { margin: 7px 0 14px; color: var(--muted); }.conditions-error .secondary-button { width: auto; padding: 0 18px; }
.conditions-current { min-height: 155px; padding: 22px; border-radius: 23px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }.conditions-current > div { display: flex; flex-direction: column; }.conditions-current > div:last-child { text-align: right; }.weather-symbol { font-size: 3.25rem; line-height: 1; }.conditions-current p { margin: 8px 0 0; font-weight: 800; }.conditions-current strong { font-size: 3.4rem; line-height: 1; letter-spacing: -.06em; }.conditions-current small { margin-top: 7px; color: var(--muted); }
.conditions-score-card { margin-top: 12px; padding: 18px; display: grid; grid-template-columns: 102px 1fr; align-items: center; gap: 17px; border: 1px solid rgba(233,192,101,.6); border-radius: 20px; background: linear-gradient(135deg, rgba(233,192,101,.17), rgba(17,73,63,.72)); box-shadow: inset 0 1px rgba(255,255,255,.05); }.conditions-score-ring { --score: 0deg; width: 98px; height: 98px; padding: 8px; border-radius: 50%; background: conic-gradient(var(--gold) var(--score), rgba(255,255,255,.12) 0); position: relative; transition: background .45s ease; }.conditions-score-ring::before { content: ''; position: absolute; inset: 8px; border-radius: 50%; background: #0d352d; }.conditions-score-ring > span { position: relative; z-index: 1; width: 100%; height: 100%; display: grid; place-content: center; text-align: center; }.conditions-score-ring strong,.conditions-score-ring small { display: block; }.conditions-score-ring strong { color: var(--cream); font-size: 2.15rem; line-height: .95; }.conditions-score-ring small { margin-top: 4px; color: var(--muted); font-size: .65rem; font-weight: 800; }.conditions-score-copy > small { color: var(--gold-2); font-size: .62rem; font-weight: 950; letter-spacing: .11em; }.conditions-score-copy h2 { margin: 4px 0 6px; font-size: 1.16rem; line-height: 1.15; }.conditions-score-copy p { margin: 0; color: var(--muted); font-size: .76rem; line-height: 1.42; }.conditions-score-copy > span { display: block; margin-top: 8px; color: var(--cream); font-size: .7rem; font-weight: 800; line-height: 1.35; }.conditions-score-factors { margin: 9px 0 1px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }.score-factor { min-width: 0; padding: 11px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.04); }.score-factor span,.score-factor b,.score-factor small { display: block; }.score-factor span { color: var(--cream); font-size: .73rem; font-weight: 850; }.score-factor b { width: fit-content; margin: 5px 0; padding: 3px 7px; border-radius: 999px; font-size: .6rem; letter-spacing: .04em; }.score-factor small { color: var(--muted); font-size: .64rem; line-height: 1.35; }.score-factor.helping b { background: rgba(91,188,125,.16); color: #9be6b2; }.score-factor.mixed b { background: rgba(233,192,101,.15); color: var(--gold-2); }.score-factor.tough b { background: rgba(218,126,102,.15); color: #f0aa97; }
.conditions-grid { margin-top: 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.condition-card { min-height: 139px; padding: 14px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.045); }.condition-card small,.condition-card b,.condition-card span { display: block; }.condition-card small { min-height: 30px; color: var(--gold-2); font-size: .62rem; line-height: 1.25; font-weight: 900; letter-spacing: .08em; }.condition-card b { font-size: 1.25rem; }.condition-card span { margin-top: 4px; color: var(--cream); font-size: .82rem; }.condition-card p { margin: 8px 0 0; color: var(--muted); font-size: .68rem; line-height: 1.3; }
.trend-rising { color: #8fe3ad !important; }.trend-falling { color: #8dc9ff !important; }.trend-steady { color: var(--gold-2) !important; }
.moon-card { margin-top: 12px; padding: 18px; display: grid; grid-template-columns: 72px 1fr; align-items: center; gap: 15px; border: 1px solid rgba(217,174,85,.4); border-radius: 18px; background: linear-gradient(135deg, rgba(217,174,85,.1), rgba(255,255,255,.025)); }.moon-symbol { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 50%; background: #092720; color: #f7df9b; font-size: 3rem; box-shadow: inset -8px -4px 14px rgba(0,0,0,.38), 0 0 22px rgba(241,207,124,.12); }.moon-card small { color: var(--gold-2); font-size: .66rem; font-weight: 900; letter-spacing: .12em; }.moon-card h2 { margin: 3px 0 3px; }.moon-card p { margin: 0; color: var(--muted); font-size: .8rem; }
.fishing-outlook { margin-top: 12px; padding: 18px; border-radius: 18px; background: var(--paper); color: #20362f; }.fishing-outlook h2 { margin: 3px 0 8px; }.fishing-outlook > p:not(.eyebrow) { color: #617068; margin-bottom: 10px; }.fishing-outlook ul { margin: 0; padding-left: 20px; color: #52635a; }.fishing-outlook li { margin: 6px 0; line-height: 1.4; font-size: .84rem; }
.hourly-forecast-strip,.forecast-strip { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(86px,1fr); gap: 9px; overflow-x: auto; padding-bottom: 5px; scroll-snap-type: x proximity; }.hourly-forecast-hour,.forecast-day { min-width: 86px; padding: 12px 8px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.04); text-align: center; scroll-snap-align: start; }.hourly-forecast-hour b,.hourly-forecast-hour span,.hourly-forecast-hour small,.forecast-day b,.forecast-day span,.forecast-day small { display: block; }.hourly-forecast-hour > span,.forecast-day > span { margin: 6px 0; font-size: 1.5rem; }.hourly-forecast-hour small,.forecast-day small { color: var(--muted); margin-top: 4px; }.forecast-heading { margin-top: 20px; }.conditions-disclaimer,.weather-credit { font-size: .72rem; color: var(--muted); }.conditions-disclaimer { margin: 17px 2px 7px; }.weather-credit { margin: 0 2px; }.weather-credit a { color: var(--gold-2); }
.gear-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }.gear-summary article { min-width: 0; padding: 13px 8px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(233,192,101,.35); border-radius: 15px; background: rgba(255,255,255,.04); }.gear-summary article > span { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: rgba(233,192,101,.15); color: var(--gold-2); font-weight: 950; }.gear-summary b,.gear-summary small { display: block; }.gear-summary b { font-size: 1.15rem; }.gear-summary small { margin-top: 1px; color: var(--muted); font-size: .6rem; line-height: 1.2; }.gear-tabs { margin-bottom: 8px; }.gear-sync-note { margin: 4px 2px 12px; color: var(--muted); font-size: .72rem; }.gear-add-button { width: 100%; min-height: 48px; margin-bottom: 11px; }.gear-list { display: grid; gap: 10px; }.gear-empty { padding: 24px 16px; border: 1px dashed rgba(245,240,229,.28); border-radius: 17px; text-align: center; color: var(--muted); }.gear-empty span { display: block; margin-bottom: 7px; color: var(--gold-2); font-size: 1.8rem; }.gear-empty h3 { margin: 0 0 5px; color: var(--cream); }.tackle-card,.bait-card { padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.045); }.gear-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }.gear-card-head h3 { margin: 0; font-size: 1rem; line-height: 1.25; }.gear-card-head small { display: block; margin-top: 3px; color: var(--muted); }.gear-card-head > span { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; background: rgba(233,192,101,.15); color: var(--gold-2); font-size: .62rem; font-weight: 900; }.gear-card-head > span.low { background: rgba(218,126,102,.16); color: #f0aa97; }.tackle-facts { margin-top: 11px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }.tackle-facts span { min-width: 0; padding: 8px; border-radius: 10px; background: rgba(0,0,0,.12); }.tackle-facts small,.tackle-facts b { display: block; }.tackle-facts small { color: var(--muted); font-size: .58rem; text-transform: uppercase; letter-spacing: .06em; }.tackle-facts b { margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .72rem; }.gear-card-notes { margin: 10px 0 0; color: var(--muted); font-size: .72rem; line-height: 1.4; }.gear-actions { display: flex; gap: 7px; margin-top: 12px; }.gear-actions button { min-height: 36px; padding: 0 11px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: transparent; color: var(--cream); font-weight: 850; }.gear-actions button.danger { margin-left: auto; color: #f0aa97; border-color: rgba(218,126,102,.35); }.bait-filter-row { display: flex; gap: 7px; margin: 0 0 11px; overflow-x: auto; scrollbar-width: none; }.bait-filter-row button { flex: 0 0 auto; min-height: 34px; padding: 0 11px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--cream); font-weight: 800; font-size: .72rem; }.bait-filter-row button.active { border-color: var(--gold); background: var(--gold); color: #173a32; }.bait-stock-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 12px; }.bait-stock-row > b { font-size: 1.05rem; }.bait-stepper { display: flex; align-items: center; gap: 6px; }.bait-stepper button { width: 34px; height: 34px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: rgba(255,255,255,.04); color: var(--cream); font-size: 1.1rem; font-weight: 900; }.gear-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.gear-form-grid label { margin-top: 0 !important; }.gear-form-grid .full-field { grid-column: 1/-1; }.gear-form-grid textarea { min-height: 72px !important; }
.avatar, .profile-avatar { flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--gold); color: #14342d; font-weight: 900; }
.avatar { width: 42px; height: 42px; }
.page-heading { margin: 5px 0 17px; }
.page-heading p { margin-bottom: 5px; }
.search-field { min-height: 52px; background: var(--paper); border-radius: 15px; padding: 0 15px; display: flex; gap: 10px; align-items: center; color: #263731; }
.search-field input { width: 100%; min-height: 48px; border: 0; background: transparent; font-size: 1rem; outline: none; }
.filter-row { display: flex; gap: 9px; overflow-x: auto; padding: 12px 1px; scrollbar-width: none; }
.chip { white-space: nowrap; color: var(--cream); border: 1px solid rgba(245,240,229,.4); background: transparent; border-radius: 999px; padding: 9px 15px; }
.chip.active { background: var(--gold); color: #173a32; border-color: var(--gold); font-weight: 800; }
.explorer-tools { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 2px 0 12px; }
.select-control { min-width: 0; border: 1px solid var(--line); background: rgba(255,255,255,.04); border-radius: 14px; padding: 8px 11px; }
.select-control span { display: block; color: var(--muted); font-size: .7rem; font-weight: 800; text-transform: uppercase; letter-spacing: .08em; }
.select-control select { width: 100%; color: var(--cream); background: transparent; border: 0; outline: 0; font: inherit; font-weight: 800; margin-top: 3px; }
.select-control option { color: #173a32; background: var(--paper); }
.saved-filter { grid-column: 1 / -1; min-height: 42px; border: 1px solid var(--gold); border-radius: 13px; background: transparent; color: var(--gold-2); font-weight: 900; }
.saved-filter[aria-pressed="true"] { background: rgba(217,174,85,.16); }
.explore-view-toggle { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; border-radius: 14px; background: rgba(255,255,255,.06); margin: 3px 0 10px; }
.explore-view-toggle button { min-height: 42px; border: 0; border-radius: 11px; background: transparent; color: var(--muted); font-weight: 850; }
.explore-view-toggle button.active { color: #173a32; background: var(--cream); box-shadow: 0 4px 14px rgba(0,0,0,.18); }
.map-card { height: 360px; position: relative; border-radius: 22px; overflow: hidden; background: #153f36; border: 1px solid rgba(217,174,85,.35); box-shadow: 0 15px 38px rgba(0,0,0,.22); }
.map-loading { position: absolute; inset: 0; z-index: 1; display: grid; place-items: center; padding: 30px; text-align: center; color: var(--cream); background: linear-gradient(145deg,#0b2924,#145247); }
.map-footer { min-height: 48px; margin-top: 8px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.map-footer button { min-height: 42px; border: 1px solid var(--gold); border-radius: 13px; background: rgba(217,174,85,.1); color: var(--gold-2); padding: 0 13px; font-weight: 900; }
.map-footer span { color: var(--muted); font-size: .78rem; text-align: right; }
.map-note { margin: 0 2px 10px; font-size: .72rem; color: var(--muted); }
.lake-pin-wrap, .cluster-pin-wrap { background: transparent; border: 0; }
.lake-pin { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 50% 50% 50% 8px; transform: rotate(-45deg); background: var(--ink); border: 3px solid var(--cream); box-shadow: 0 5px 14px rgba(0,0,0,.38); }
.lake-pin span { transform: rotate(45deg); color: var(--gold-2); font-size: .72rem; }
.lake-pin.saved { background: var(--gold); border-color: #fff8e8; }.lake-pin.saved span { color: #173a32; }
.cluster-pin { width: 112px; min-height: 62px; padding: 8px 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; border-radius: 20px; background: rgba(6,47,41,.95); color: var(--cream); border: 2px solid var(--cream); box-shadow: 0 7px 22px rgba(0,0,0,.35); text-align: center; }
.cluster-pin strong { color: var(--gold-2); font-size: 1.2rem; line-height: 1; }.cluster-pin small { margin-top: 4px; font-size: .66rem; font-weight: 900; line-height: 1.05; }
.leaflet-control-attribution { font-size: 10px; }.leaflet-control-zoom a { color: #173a32; }
.lake-popup { min-width: 190px; color: #173a32; }.lake-popup b,.lake-popup > span,.lake-popup > small { display: block; }.lake-popup > span { margin-top: 3px; color: #5d6c65; }.lake-popup > small { margin-top: 5px; color: #80601b; font-weight: 800; }
.lake-popup-photo { height: 90px; margin: -14px -20px 10px; position: relative; overflow: hidden; border-radius: 12px 12px 0 0; }.lake-popup-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }.lake-popup-photo span { position: absolute; left: 7px; bottom: 6px; padding: 3px 5px; border-radius: 5px; background: rgba(3,27,23,.82); color: #fff4d5; font-size: .56rem; font-weight: 900; text-transform: uppercase; letter-spacing: .06em; }
.lake-popup button { width: 100%; min-height: 38px; margin-top: 9px; border: 0; border-radius: 10px; background: var(--gold); color: #173a32; font-weight: 900; }
.results-meta { margin: 14px 2px 0; color: var(--muted); font-size: .82rem; font-weight: 800; }
.photo-policy-note { margin: 5px 2px 10px; color: var(--muted); font-size: .7rem; line-height: 1.35; }
.lake-list { display: grid; gap: 12px; margin-top: 14px; }
.lake-card { width: 100%; padding: 11px; border-radius: 17px; border: 1px solid var(--line); background: rgba(255,255,255,.04); color: var(--cream); text-align: left; display: grid; grid-template-columns: 84px 1fr auto; gap: 12px; align-items: center; }
.lake-thumb { width: 84px; height: 78px; border-radius: 13px; background: #143f36; display: block; position: relative; overflow: hidden; }.lake-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }.lake-thumb small { position: absolute; left: 4px; right: 4px; bottom: 4px; padding: 3px; border-radius: 5px; background: rgba(3,27,23,.8); color: #fff4d5; font-size: .48rem; font-weight: 900; text-align: center; text-transform: uppercase; letter-spacing: .03em; }
.lake-card p { font-size: .8rem; margin: 0; }.lake-card b:last-child { color: var(--gold); font-size: 1.4rem; }
.lake-card > span:nth-child(2) { min-width: 0; }
.lake-card-title { display: flex; justify-content: space-between; gap: 8px; align-items: start; }.lake-card-title i { color: var(--gold); font-style: normal; }
.lake-hero { min-height: 210px; border-radius: 22px; display: flex; align-items: flex-end; padding: 18px; position: relative; overflow: hidden; background-image: linear-gradient(180deg,rgba(1,22,18,.05),rgba(1,22,18,.78)), var(--lake-image, url('/assets/lake-commercial.webp')); background-size: cover; background-position: center; box-shadow: var(--shadow); }
.lake-hero .lake-region-label { margin: 0; text-shadow: 0 2px 8px rgba(0,0,0,.7); }
.lake-hero .image-disclaimer { right: 62px; left: auto; max-width: calc(100% - 98px); text-align: center; }
.favourite { position: absolute; top: 14px; right: 14px; width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--line); background: rgba(0,0,0,.22); color: var(--cream); font-size: 1.45rem; }
.favourite.saved { color: var(--gold); }
.detail-heading { margin-top: 18px; }
.verified { display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 999px; background: rgba(217,174,85,.13); color: var(--gold-2); font-size: .75rem; font-weight: 800; }
.booking-badge { display: inline-block; margin-top: 7px; color: var(--gold-2); font-size: .75rem; font-weight: 900; letter-spacing: .03em; }
.lake-card .booking-badge { color: var(--gold-2); }
.fact-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; }
.fact-grid div { min-height: 70px; padding: 12px 7px; border: 1px solid var(--line); border-radius: 14px; text-align: center; display: grid; place-items: center; font-size: .8rem; }
.segmented { display: grid; grid-template-columns: repeat(3,1fr); padding: 4px; border-radius: 14px; background: rgba(255,255,255,.05); margin: 18px 0 12px; }
.segmented button { border: 0; border-radius: 11px; background: transparent; color: var(--muted); padding: 10px 5px; }
.segmented button.active { color: #14342d; background: var(--cream); font-weight: 800; }
.info-card { background: rgba(255,255,255,.045); border: 1px solid var(--line); border-radius: 17px; padding: 16px; min-height: 130px; }
.info-card p:last-child { margin-bottom: 0; }
.primary-button, .secondary-button { width: 100%; min-height: 52px; border-radius: 15px; font-weight: 900; margin-top: 14px; }
.primary-button { border: 0; background: linear-gradient(135deg,var(--gold-2),var(--gold)); color: #16382f; box-shadow: 0 9px 26px rgba(217,174,85,.18); }
.secondary-button { border: 1px solid var(--gold); background: transparent; color: var(--gold-2); }
.detail-actions { display: grid; grid-template-columns: 1.2fr 1fr; gap: 9px; }
.detail-actions > :last-child { grid-column: 1 / -1; }
.detail-actions .secondary-button { color: var(--cream); border-color: rgba(245,240,229,.42); }
.detail-report { width: 100%; margin-top: 13px; padding: 10px; border: 0; background: transparent; color: var(--muted); text-decoration: underline; text-underline-offset: 3px; font-size: .8rem; }
.detail-note { margin: 13px 0 0 !important; padding-top: 11px; border-top: 1px solid var(--line); font-size: .8rem; color: var(--muted); }
.venue-water-picker { margin: 17px 0 13px; }.venue-water-picker > label { display: block; margin-bottom: 8px; color: #20362f; font-size: .84rem; font-weight: 850; }.venue-water-picker select { width: 100%; min-height: 50px; padding: 0 42px 0 13px; border: 1px solid #aebbb4; border-radius: 12px; background: #fffdf8; color: #173f36; font: inherit; font-weight: 750; }.venue-water-card { margin-top: 10px; padding: 14px; border-radius: 14px; background: #edf1e9; color: #52635a; }.venue-water-card.single { margin: 17px 0 13px; }.venue-water-card small { color: #8a681f; font-size: .68rem; font-weight: 900; letter-spacing: .11em; }.venue-water-card h3 { margin: 5px 0 6px !important; color: #20362f; font-size: 1.02rem !important; }.venue-water-card p { margin: 0; font-size: .84rem; }.venue-water-card .detail-note { color: #65766d; border-color: rgba(32,54,47,.16); }
.venue-water-facts { display: grid; gap: 0; margin: 9px 0 0; }.venue-water-facts > div { display: grid; grid-template-columns: minmax(85px,.42fr) 1fr; gap: 10px; padding: 9px 0; border-top: 1px solid rgba(32,54,47,.13); }.venue-water-facts dt { color: #65766d; font-size: .74rem; font-weight: 800; }.venue-water-facts dd { margin: 0; color: #20362f; font-size: .8rem; line-height: 1.4; }.venue-water-note { margin-top: 10px !important; padding: 10px; border-radius: 10px; background: rgba(217,174,85,.13); color: #4e5f57; line-height: 1.45; }
.primary-button.compact { width: auto; padding: 0 20px; margin: 0 0 10px; }
.photo-drop { min-height: 180px; border: 1px dashed rgba(245,240,229,.55); border-radius: 18px; background: rgba(255,255,255,.025); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; overflow: hidden; }
.photo-drop input { position: absolute; opacity: 0; pointer-events: none; }
.photo-drop span { font-size: 2.3rem; color: var(--gold); }.photo-drop small { color: var(--muted); }
.photo-drop.has-photo { background-size: cover; background-position: center; min-height: 240px; text-shadow: 0 2px 8px #000; }
.catch-sharing-note { margin: 12px 0 16px; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.catch-sharing-note.cloud { color: #d9ae55; }
.form-grid { display: grid; gap: 13px; margin-top: 16px; }
.form-grid label { color: var(--cream); font-weight: 700; font-size: .88rem; }
.form-grid input, .form-grid select { width: 100%; min-height: 50px; border-radius: 13px; border: 1px solid transparent; background: var(--paper); color: #20362f; padding: 0 13px; margin-top: 7px; font-size: 1rem; }
.form-grid textarea { width: 100%; margin-top: 7px; padding: 11px 13px; border-radius: 13px; border: 1px solid transparent; background: var(--paper); color: #20362f; resize: vertical; font: inherit; }.full-field { grid-column: 1 / -1; }
.catch-quick-form { margin-bottom: 13px; }
.catch-lake-field { position: relative; }
.catch-lake-search { position: relative; display: block; }
.catch-lake-search > input { padding-right: 42px; }
.catch-lake-suggestions { position: absolute; z-index: 35; top: calc(100% + 5px); left: 0; right: 0; max-height: 268px; overflow-y: auto; padding: 6px; border: 1px solid #c8d1cc; border-radius: 14px; background: #fffdf7; box-shadow: 0 15px 35px rgba(4,29,24,.28); }
.catch-lake-suggestions button { width: 100%; padding: 11px 10px; border: 0; border-radius: 9px; background: transparent; color: #20362f; text-align: left; }
.catch-lake-suggestions button:hover,.catch-lake-suggestions button:focus-visible { background: #e9eee9; outline: none; }
.catch-lake-suggestions b,.catch-lake-suggestions small { display: block; }
.catch-lake-suggestions b { font-size: .84rem; }
.catch-lake-suggestions small { margin-top: 2px; color: #68766f; font-size: .7rem; font-weight: 600; }
.catch-lake-empty-result { display: block; padding: 13px 10px; color: #68766f; font-size: .76rem; text-align: center; }
.catch-lake-quick-picks { display: flex; gap: 7px; margin-top: 8px; overflow-x: auto; scrollbar-width: none; }
.catch-lake-quick-picks:empty { display: none; }
.catch-lake-quick-picks button { flex: 0 0 auto; max-width: 190px; min-height: 34px; padding: 0 11px; overflow: hidden; border: 1px solid rgba(233,192,101,.48); border-radius: 999px; background: rgba(233,192,101,.1); color: var(--cream); text-overflow: ellipsis; white-space: nowrap; font-size: .7rem; font-weight: 850; }
.catch-more-details { margin: 0 0 14px; border: 1px solid rgba(245,240,229,.2); border-radius: 15px; background: rgba(255,255,255,.035); }
.catch-more-details summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px; color: var(--cream); cursor: pointer; list-style: none; }
.catch-more-details summary::-webkit-details-marker { display: none; }
.catch-more-details summary span { font-weight: 900; }
.catch-more-details summary small { color: var(--muted); font-size: .66rem; text-align: right; }
.catch-more-details summary::after { content: '+'; flex: 0 0 auto; color: var(--gold-2); font-size: 1.2rem; font-weight: 900; }
.catch-more-details[open] summary::after { content: '−'; }
.catch-more-details > .form-grid { margin: 0; padding: 0 14px 14px; }
.catch-tools { margin-top: 24px; padding-top: 4px; border-top: 1px solid var(--line); }
.catch-tools .section-heading h2 { margin-bottom: 10px; }
.catch-tools .section-heading button { color: var(--gold-2); background: none; border: 0; font-weight: 900; }
.catch-filters { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-bottom: 11px; }
.catch-filters select { min-height: 44px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.05); color: var(--cream); padding: 0 10px; }
.catch-filters option { color: #173a32; background: var(--paper); }
.catch-insights { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 11px; }
.catch-insights div { padding: 10px 6px; border: 1px solid var(--line); border-radius: 13px; text-align: center; }
.catch-insights b, .catch-insights span { display: block; }.catch-insights b { color: var(--gold-2); font-size: 1.05rem; }.catch-insights span { color: var(--muted); font-size: .68rem; margin-top: 3px; }
.diary-row { padding: 11px; background: var(--paper); color: #20362f; border-radius: 14px; margin-bottom: 9px; display: grid; grid-template-columns: 46px 1fr auto; gap: 10px; align-items: center; }
.diary-row p { color: #68766f; margin: 2px 0 0; font-size: .78rem; }.diary-row small { display: block; margin-top: 4px; }.diary-source { color: #92702b; font-weight: 700; }.diary-photo { width: 46px; height: 46px; display: grid; place-items: center; border-radius: 11px; background: #173f36; color: var(--gold); background-size: cover; background-position: center; }
.diary-actions { display: grid; gap: 4px; }.diary-actions button { border: 0; background: none; color: #80601b; font-size: .72rem; font-weight: 900; padding: 2px; }
.challenge-hero { border-radius: 22px; padding: 22px; text-align: center; }
.large-ring { width: 150px; height: 150px; border: 13px solid rgba(255,255,255,.13); border-top-color: var(--gold); border-right-color: var(--gold); border-radius: 50%; margin: 0 auto 16px; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.large-ring strong { font-size: 2.6rem; }.large-ring span { font-size: .8rem; }
.challenge-hero p { margin-bottom: 0; }
.challenge-actions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }.challenge-actions .secondary-button { min-width: 0; margin-top: 11px; padding-inline: 8px; }.challenge-actions button:disabled { cursor: not-allowed; opacity: .45; }
.badge-row { display: flex; gap: 8px; overflow-x: auto; padding: 12px 1px 2px; scrollbar-width: none; }
.badge { flex: 0 0 76px; min-height: 72px; padding: 8px 5px; border: 1px solid var(--line); border-radius: 14px; display: grid; place-items: center; opacity: .46; text-align: center; }.badge.earned { opacity: 1; border-color: rgba(217,174,85,.7); background: rgba(217,174,85,.1); }.badge b { font-size: 1.3rem; }.badge small { color: var(--muted); font-size: .62rem; font-weight: 900; }
.challenge-note { margin: 11px 2px 0; color: var(--muted); font-size: .75rem; }
.checklist-meta { color: var(--gold-2); font-size: .82rem; font-weight: 900; }
.species-checklist { display: flex; flex-wrap: wrap; gap: 8px; }
.species-pill { padding: 8px 10px; border-radius: 999px; border: 1px solid rgba(245,240,229,.18); color: var(--muted); background: rgba(255,255,255,.035); font-size: .78rem; }
.species-pill.caught { border-color: rgba(217,174,85,.6); color: var(--gold-2); background: rgba(217,174,85,.12); font-weight: 800; }
.leaderboard { padding: 0; list-style: none; display: grid; gap: 8px; counter-reset: rank; }
.leaderboard li { counter-increment: rank; background: var(--paper); color: #20362f; border-radius: 14px; min-height: 56px; padding: 9px 13px; display: grid; grid-template-columns: 32px 42px 1fr auto; align-items: center; gap: 9px; }
.leaderboard li::before { content: counter(rank); font-weight: 900; }.leaderboard .avatar { width: 36px; height: 36px; font-size: .72rem; }.leaderboard small { display: block; color: #65736d; }.leaderboard strong { color: #6d531a; }
.learn-tabs { grid-template-columns: repeat(3,1fr); }
.learn-panel > p { margin-bottom: 14px; }
.article-card { width: 100%; margin-bottom: 10px; border: 0; border-radius: 16px; overflow: hidden; background: var(--paper); color: #20362f; text-align: left; display: flex; align-items: center; gap: 12px; padding: 12px; }
.article-card p { color: #596a62; margin: 0; font-size: .85rem; }.article-card h3 { font-size: 1rem; }
.tip-category { display: block; margin-top: 6px; color: #8a681f; font-size: .72rem; font-weight: 800; }
.featured-article { display: block; padding: 0; margin-top: 13px; }.featured-article > div:last-child { padding: 14px; }
.article-icon { flex: 0 0 48px; height: 48px; border-radius: 12px; background: #173f36; color: var(--gold); display: grid; place-items: center; font-size: 1.4rem; }
.video-feature { height: 210px; border-radius: 20px; display: grid; place-items: center; position: relative; overflow: hidden; }
.video-feature::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.52)); pointer-events: none; }
.video-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.play-button { position: relative; z-index: 2; width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--cream); background: rgba(0,0,0,.42); color: white; font-size: 1.5rem; }
.video-row { margin-bottom: 9px; background: var(--paper); color: #20362f; }.video-row span { color: #8e241c; font-size: 1.4rem; }.video-row small { color: #65736d; }.video-row img { width: 64px; height: 42px; border-radius: 8px; object-fit: cover; flex: 0 0 auto; }
.social-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.social-grid button { min-height: 46px; border: 1px solid var(--line); color: var(--cream); background: rgba(255,255,255,.04); border-radius: 12px; font-weight: 800; }
.social-grid .social-link { min-height: 46px; border: 1px solid var(--line); color: var(--cream); background: rgba(255,255,255,.04); border-radius: 12px; font-weight: 800; }
.social-link { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
.social-highlights { display: grid; gap: 8px; margin-top: 12px; }.social-highlights div, .social-highlights a { padding: 11px 12px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.035); color: var(--cream); text-decoration: none; }.social-highlights b, .social-highlights small { display: block; }.social-highlights small { margin-top: 3px; color: var(--muted); font-size: .75rem; }
.tiktok-summary span { display: flex; gap: 7px; margin-top: 8px; }.tiktok-summary span a { display: inline-flex; align-items: center; justify-content: center; padding: 6px 11px; border: 1px solid rgba(217,174,85,.55); border-radius: 999px; color: var(--gold-2); font-size: .75rem; font-weight: 900; }
.era-studio { margin: 18px 0 8px; padding: 16px; border: 1px solid rgba(217,174,85,.48); border-radius: 18px; background: linear-gradient(135deg,rgba(217,174,85,.15),rgba(20,82,71,.34)); display: grid; gap: 14px; }
.era-studio small,.era-studio b { display: block; }.era-studio small { color: var(--gold-2); font-size: .75rem; font-weight: 900; letter-spacing: .12em; }.era-studio b { margin-top: 4px; font-size: 1.05rem; }.era-studio p { margin: 5px 0 0; color: var(--muted); font-size: .88rem; }.era-studio button { min-height: 48px; padding: 0 16px; border: 0; border-radius: 13px; background: var(--gold); color: #173a32; font-weight: 900; }.era-studio-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.era-studio-actions button:last-child { border: 1px solid rgba(217,174,85,.68); background: rgba(217,174,85,.08); color: var(--gold-2); }
.era-video-section { margin-top: 13px; }.era-video-section .section-heading h2 { margin-bottom: 10px; }.era-video-list { display: grid; gap: 12px; }
.era-video-card { overflow: hidden; border: 1px solid rgba(217,174,85,.3); border-radius: 18px; background: rgba(255,255,255,.045); }.era-video-card video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #00120f; object-fit: contain; }.era-video-copy { padding: 14px; }.era-video-copy h3 { margin: 0; font-size: 1.05rem; }.era-video-copy p { margin: 7px 0 0; color: #d3ddd8; font-size: .9rem; white-space: pre-wrap; }.era-video-copy > small { display: block; margin-top: 7px; color: var(--muted); font-size: .75rem; }
.era-video-actions { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-top: 13px; }.era-video-actions a,.era-video-actions button { min-height: 43px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(217,174,85,.56); border-radius: 11px; background: rgba(217,174,85,.1); color: var(--gold-2); text-decoration: none; font-weight: 900; font-size: .78rem; }.era-video-actions .danger-link { border-color: rgba(223,118,98,.42); color: #f0a092; background: rgba(223,118,98,.08); }
.era-tiktok-list { display: grid; gap: 10px; }.era-tiktok-card { padding: 13px; border-radius: 16px; display: grid; grid-template-columns: 46px 1fr; gap: 11px; background: var(--paper); color: #20362f; }.era-tiktok-icon { width: 46px; height: 46px; border-radius: 13px; display: grid; place-items: center; background: #173f36; color: var(--gold); font-size: 1.5rem; font-weight: 900; }.era-tiktok-copy h3 { margin: 0; font-size: 1rem; }.era-tiktok-copy p { margin: 5px 0 0; color: #596a62; font-size: .84rem; }.era-tiktok-copy > small { display: block; margin-top: 6px; color: #65736d; font-size: .72rem; }.era-tiktok-actions { display: flex; gap: 8px; margin-top: 10px; }.era-tiktok-actions a,.era-tiktok-actions button { min-height: 40px; padding: 0 12px; border: 1px solid #cabf9f; border-radius: 10px; background: transparent; color: #6f5318; display: inline-flex; align-items: center; justify-content: center; text-decoration: none; font-weight: 900; font-size: .76rem; }.era-tiktok-actions .danger-link { color: #a83f32; border-color: #dfb6ae; }
.video-upload-form > p:first-child { margin-right: 26px; }.era-video-picker { min-height: 48px; margin-top: 15px !important; padding: 0 14px; border-radius: 11px; display: inline-flex !important; align-items: center; background: #173f36; color: #fffaf0 !important; cursor: pointer; }.era-video-picker input { position: absolute; opacity: 0; pointer-events: none; }.video-upload-form > small { display: block; margin-top: 8px; color: #65736d; }.era-upload-status { min-height: 22px; margin: 12px 0 0; color: #80601b !important; font-weight: 800; }
.era-publish .era-download,.publish-destinations a { min-height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 11px; font-weight: 900; text-decoration: none; }.era-publish .era-download { margin: 14px 0 9px; background: #173f36; color: #fffaf0; }.publish-destinations { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.publish-destinations a { padding: 8px; border: 1px solid #cabf9f; color: #6f5318; text-align: center; }.caption-preview { margin-top: 14px; padding: 12px; border-radius: 12px; background: #f2eee4; }.caption-preview small { color: #80601b; font-weight: 900; letter-spacing: .1em; }.caption-preview p { margin: 6px 0 0; color: #415249; white-space: pre-wrap; }.platform-note { margin: 13px 0 0 !important; font-size: .82rem; }
.creator-intro { padding: 20px; border-radius: 20px; }.creator-intro h2 { margin: 5px 0 8px; }.creator-intro p:not(.eyebrow) { color: #d5dfda; }.creator-intro .primary-button { margin-top: 3px; }.creator-intro > small { display: block; margin-top: 10px; color: var(--muted); line-height: 1.45; }.creator-list { display: grid; gap: 11px; margin-top: 12px; }.creator-card { padding: 15px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.045); }.creator-card.featured { border-color: rgba(217,174,85,.62); background: linear-gradient(135deg,rgba(217,174,85,.15),rgba(255,255,255,.035)); }.creator-card-head { display: grid; grid-template-columns: 54px 1fr; align-items: start; gap: 12px; }.creator-avatar { width: 54px; height: 54px; overflow: hidden; border-radius: 15px; display: grid; place-items: center; background: var(--gold); color: #173a32; font-weight: 950; }.creator-avatar img { width: 100%; height: 100%; object-fit: cover; }.creator-title { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }.creator-title h3 { margin: 0; font-size: 1.05rem; }.creator-card p { margin: 5px 0 0; color: var(--muted); font-size: .82rem; }.creator-badge { display: inline-flex; padding: 3px 7px; border-radius: 999px; font-size: .6rem; font-weight: 950; text-transform: uppercase; }.creator-badge.verified { background: #dcece2; color: #22583d; }.creator-badge.featured { background: var(--gold); color: #173a32; }.creator-links,.creator-owner-links { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }.creator-links a,.creator-owner-links a { min-height: 36px; padding: 0 11px; border: 1px solid rgba(217,174,85,.55); border-radius: 10px; display: inline-flex; align-items: center; color: var(--gold-2); text-decoration: none; font-size: .76rem; font-weight: 900; }.creator-owner-links a { border-color: #cabf9f; color: #6f5318; }.creator-disclosure { margin: 13px 2px 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }.creator-application-form > p:first-child { margin-right: 22px; }
.forum-list { display: grid; gap: 10px; margin-top: 6px; }
.catch-report-feed { margin-top: 18px; }.catch-report { width: 100%; padding: 12px; margin-bottom: 9px; border: 1px solid rgba(217,174,85,.28); border-radius: 15px; background: rgba(217,174,85,.08); color: var(--cream); display: grid; grid-template-columns: 46px 1fr; gap: 10px; align-items: start; text-align: left; }.catch-report p { margin: 3px 0 0; color: var(--muted); font-size: .8rem; }.catch-report small { display: block; margin-top: 5px; color: #d3ddd8; font-size: .76rem; }.catch-report-author { color: var(--gold) !important; font-weight: 700; }
.report-detail-photo { width: 100%; max-height: 300px; object-fit: cover; border-radius: 15px; margin: 4px 0 14px; display: block; }.report-placeholder { min-height: 180px; display: grid; place-items: center; background: #173f36; color: var(--gold); font-size: 3rem; }.report-detail-facts { display: grid; gap: 4px; color: #53645b; }.report-detail-facts b { color: #20362f; font-size: 1.1rem; }.report-detail-notes { margin-top: 14px; padding-top: 13px; border-top: 1px solid #d5dbd4; color: #53645b !important; white-space: pre-wrap; }
.moderation-note { margin: -2px 2px 10px; color: var(--muted); font-size: .76rem; }
.forum-search { margin-bottom: 3px; }
.reply-label { display: block; margin-top: 14px; color: #20362f; font-weight: 800; }.reply-label textarea { width: 100%; margin-top: 7px; padding: 11px; border: 1px solid #ccd5d0; border-radius: 10px; resize: vertical; font: inherit; }
.follow-thread, .report-thread { display: block; margin-top: 11px; border: 0; background: transparent; color: #80601b; font-weight: 900; }.report-thread { color: #65736d; font-size: .8rem; }
.forum-reply { display: flex; gap: 9px; align-items: flex-start; margin: 9px 0; padding: 10px; border-radius: 12px; background: #f2eee4; }.forum-reply .avatar { width: 30px; height: 30px; font-size: .65rem; }.forum-reply p { margin: 2px 0 0; color: #53645b; font-size: .85rem; }
.forum-reply-copy { flex: 1; min-width: 0; }
.owner-tools { display: flex; gap: 8px; margin: -7px 0 15px; }
.owner-tools button, .reply-tools button { padding: 6px 0; border: 0; background: transparent; color: #80601b; font-size: .76rem; font-weight: 900; }
.owner-tools button { padding: 8px 10px; border: 1px solid #cabf9f; border-radius: 9px; }
.reply-tools { display: flex; gap: 12px; margin-top: 5px; }
.owner-tools .danger-link, .reply-tools .danger-link { color: #a83f32; }
.forum-thread { padding: 14px; border-radius: 15px; background: var(--paper); color: #20362f; display: grid; grid-template-columns: 42px 1fr auto; gap: 10px; align-items: center; }
.forum-thread p { color: #65736d; margin: 3px 0 0; font-size: .8rem; }.forum-thread button { background: none; border: 0; font-size: 1.3rem; color: #6f5620; }.forum-actions { display: flex; align-items: center; gap: 3px; }.forum-actions button:first-child { font-size: .95rem; }
.forum-actions button.liked { color: #b14c3b; filter: drop-shadow(0 0 8px rgba(177,76,59,.3)); }
.community-status { margin-bottom: 10px; padding: 11px 13px; border: 1px solid rgba(217,174,85,.3); border-radius: 12px; background: rgba(217,174,85,.09); color: var(--cream); font-size: .82rem; }
.community-status.error { border-color: rgba(223,118,98,.38); background: rgba(223,118,98,.09); }
.thread-body { margin: 12px 0 16px; padding: 12px; border-radius: 12px; background: #f2eee4; color: #415249; line-height: 1.55; }
.forum-reply > div { min-width: 0; }.forum-reply > div > b { color: #20362f; font-size: .78rem; }
.reply-label textarea:disabled { background: #e8ece9; color: #75817a; cursor: not-allowed; }
.sign-in-prompt p { line-height: 1.55; }.sign-in-link { display: block; width: 100%; margin-top: 16px; padding: 13px 16px; border-radius: 12px; background: #173f36; color: #fffaf0; text-align: center; font-weight: 900; text-decoration: none; }
.profile-signout { flex: 0 0 auto; padding: 8px 10px; color: var(--gold-2); font-size: .75rem; font-weight: 800; text-decoration: none; }
.profile-head { display: flex; align-items: center; gap: 16px; padding: 18px 0; }.profile-avatar { width: 78px; height: 78px; font-size: 1.4rem; }.profile-head h1 { margin-bottom: 3px; }.profile-head p:last-child { margin: 0; }
.profile-name-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }.profile-name-row h1 { margin: 0; }
.owner-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 3px 9px; border-radius: 999px; background: linear-gradient(135deg,var(--gold-2),var(--gold)); color: #173a32; font-size: .7rem; font-weight: 950; line-height: 1; text-transform: uppercase; letter-spacing: .04em; vertical-align: middle; }
.owner-badge-small { min-height: 19px; padding: 2px 6px; font-size: .58rem; letter-spacing: .02em; }
.guest-card { padding: 14px; margin-bottom: 14px; border: 1px solid rgba(217,174,85,.35); border-radius: 17px; background: rgba(217,174,85,.1); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.guest-card p { margin: 4px 0 0; color: var(--muted); font-size: .8rem; }.guest-card button { flex: 0 0 auto; min-height: 40px; padding: 0 12px; border: 1px solid var(--gold); border-radius: 11px; background: var(--gold); color: #173a32; font-weight: 900; font-size: .78rem; }
.account-tools { display: grid; gap: 8px; margin: -4px 0 14px; }
.account-tools > button { width: 100%; min-height: 58px; padding: 9px 13px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.04); color: var(--cream); display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 10px; text-align: left; }
.account-tools > button > span { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 9px; background: rgba(217,174,85,.13); color: var(--gold-2); font-size: 1.1rem; }
.account-tools > button div { min-width: 0; }.account-tools > button b, .account-tools > button small { display: block; }.account-tools > button small { margin-top: 2px; color: var(--muted); }.account-tools .account-delete b { color: #f0a89c; }
.owner-panel-link { width: 100%; min-height: 68px; margin: 0 0 14px; padding: 11px 13px; border: 1px solid rgba(233,192,101,.75); border-radius: 16px; background: linear-gradient(135deg,rgba(217,174,85,.22),rgba(255,255,255,.04)); color: var(--cream); display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 11px; text-align: left; box-shadow: 0 12px 28px rgba(0,0,0,.16); }
.owner-panel-link > span { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; background: var(--gold); color: #173a32; font-size: 1.1rem; }.owner-panel-link div { min-width: 0; }.owner-panel-link b,.owner-panel-link small { display: block; }.owner-panel-link small { margin-top: 3px; color: var(--muted); }
.stat-grid { display: grid; grid-template-columns: repeat(3,1fr); background: rgba(255,255,255,.045); border: 1px solid var(--line); border-radius: 18px; padding: 14px 5px; margin-bottom: 14px; }
.stat-grid div { text-align: center; border-right: 1px solid var(--line); }.stat-grid div:last-child { border: 0; }.stat-grid b,.stat-grid span { display: block; }.stat-grid b { color: var(--gold-2); font-size: 1.4rem; }.stat-grid span { color: var(--muted); font-size: .75rem; }
.personal-best-card { width: 100%; min-height: 92px; margin: 0 0 14px; padding: 13px; border: 1px solid rgba(217,174,85,.45); border-radius: 18px; background: linear-gradient(135deg,rgba(217,174,85,.18),rgba(255,255,255,.035)); color: var(--cream); display: grid; grid-template-columns: 62px 1fr auto; align-items: center; gap: 12px; text-align: left; box-shadow: 0 14px 32px rgba(0,0,0,.12); }
.personal-best-card:active { transform: translateY(1px); }.personal-best-photo { width: 62px; height: 62px; border-radius: 15px; background: #173f36 center/cover no-repeat; color: var(--gold-2); display: grid; place-items: center; font-size: 1.65rem; border: 1px solid rgba(217,174,85,.3); }
.personal-best-copy { min-width: 0; }.personal-best-copy small,.personal-best-copy b,.personal-best-copy > span { display: block; }.personal-best-copy small { margin-bottom: 4px; color: var(--gold-2); font-size: .68rem; font-weight: 950; letter-spacing: .1em; }.personal-best-copy b { color: var(--cream); font-size: 1rem; line-height: 1.3; }.personal-best-copy > span { margin-top: 4px; color: var(--muted); font-size: .76rem; line-height: 1.35; }.personal-best-card > strong { color: var(--gold-2); font-size: 1.5rem; }
.personal-best-list { display: grid; gap: 9px; margin-top: 13px; }.personal-best-row { width: 100%; padding: 10px; border: 1px solid #d6ddd7; border-radius: 14px; background: #f8f6ef; color: #20362f; display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 10px; text-align: left; }.pb-row-photo { width: 50px; height: 50px; border-radius: 11px; background: #173f36 center/cover no-repeat; color: var(--gold); display: grid; place-items: center; }.personal-best-row > span:nth-child(2) { min-width: 0; }.personal-best-row b,.personal-best-row small { display: block; }.personal-best-row b { line-height: 1.3; }.personal-best-row small { margin-top: 3px; color: #68766f; font-size: .72rem; line-height: 1.35; }.personal-best-row em { display: inline-flex; margin-top: 6px; padding: 3px 7px; border-radius: 999px; background: #ead9a8; color: #6e5117; font-size: .62rem; font-style: normal; font-weight: 950; text-transform: uppercase; letter-spacing: .04em; }.personal-best-row > strong { color: #80601b; font-size: 1.2rem; }
.pb-detail-photo { width: 100%; max-height: 300px; object-fit: cover; border-radius: 15px; margin: 5px 0 13px; }.pb-detail-placeholder { min-height: 150px; border-radius: 15px; background: #173f36; color: var(--gold); display: grid; place-items: center; font-size: 2.5rem; }.pb-detail-weight { margin-top: 12px; color: #20362f; font-size: 2rem; font-weight: 950; }.pb-detail-privacy { display: inline-block; margin-top: 5px; color: #6d7973; }.pb-empty { padding: 15px 4px 5px; text-align: center; }.pb-empty > span { display: block; font-size: 2.5rem; }.pb-empty h3 { margin: 8px 0 4px; }
.session-form { display: grid; gap: 2px; }.session-summary-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 7px; margin: 12px 0; }.session-summary-grid div { padding: 12px 5px; border-radius: 12px; background: #e9eee9; text-align: center; }.session-summary-grid b,.session-summary-grid span { display: block; }.session-summary-grid b { color: #20362f; font-size: 1rem; }.session-summary-grid span { margin-top: 3px; color: #68766f; font-size: .68rem; }.session-best { padding: 12px; border-radius: 13px; background: #f4e6b9; }.session-best small,.session-best b { display: block; }.session-best small { color: #7c5b19; font-size: .66rem; font-weight: 950; letter-spacing: .08em; }.session-best b { margin-top: 4px; color: #20362f; }.session-end-button { width: 100%; min-height: 46px; margin-top: 13px; border: 1px solid #d6a89f; border-radius: 11px; background: #fff8f5; color: #9b3a2f; font-weight: 900; }.session-history-list { display: grid; gap: 9px; margin-top: 13px; }.session-history-row { padding: 11px; border: 1px solid #d6ddd7; border-radius: 13px; background: #f8f6ef; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 9px; }.session-history-row > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; background: #173f36; color: var(--gold); font-weight: 950; }.session-history-row b,.session-history-row small,.session-history-row em { display: block; }.session-history-row small { margin-top: 3px; color: #68766f; font-size: .72rem; line-height: 1.4; }.session-history-row em { margin-top: 5px; color: #80601b; font-size: .72rem; font-style: normal; font-weight: 850; }
.stats-empty { padding: 34px 22px; border: 1px dashed rgba(217,174,85,.55); border-radius: 20px; background: rgba(255,255,255,.035); text-align: center; }.stats-empty > span { display: block; color: var(--gold-2); font-size: 2.5rem; }.stats-empty h2 { margin: 10px 0 6px; }.stats-empty p { margin: 0 0 18px; color: var(--muted); }
.stats-hero { min-height: 142px; padding: 20px; border: 1px solid rgba(217,174,85,.5); border-radius: 22px; background: linear-gradient(135deg,rgba(217,174,85,.26),rgba(20,82,71,.5)); display: flex; align-items: center; justify-content: space-between; gap: 16px; box-shadow: 0 16px 38px rgba(0,0,0,.15); }.stats-hero small,.stats-hero b,.stats-hero span { display: block; }.stats-hero small { color: var(--gold-2); font-size: .7rem; font-weight: 950; letter-spacing: .12em; }.stats-hero b { margin-top: 5px; color: var(--cream); font-size: 2.1rem; line-height: 1.1; }.stats-hero div > span { margin-top: 7px; color: var(--muted); font-size: .82rem; line-height: 1.4; }.stats-hero-icon { flex: 0 0 auto; width: 62px; height: 62px; border-radius: 18px; background: var(--gold); color: #173a32; display: grid !important; place-items: center; font-size: 1.8rem; }
.stats-kpi-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 9px; margin: 12px 0 22px; }.stats-kpi-grid div { padding: 14px 10px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.045); text-align: center; }.stats-kpi-grid b,.stats-kpi-grid span { display: block; }.stats-kpi-grid b { color: var(--gold-2); font-size: 1.45rem; }.stats-kpi-grid span { margin-top: 3px; color: var(--muted); font-size: .75rem; }
.stats-highlight-grid { display: grid; gap: 9px; margin-bottom: 23px; }.stats-highlight-grid article { min-height: 94px; padding: 13px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.04); display: grid; grid-template-columns: 35px 1fr; column-gap: 10px; align-content: center; }.stats-highlight-grid article > span { grid-row: 1 / span 3; width: 35px; height: 35px; border-radius: 10px; background: rgba(217,174,85,.15); color: var(--gold-2); display: grid; place-items: center; }.stats-highlight-grid small,.stats-highlight-grid b,.stats-highlight-grid em { grid-column: 2; display: block; }.stats-highlight-grid small { color: var(--gold-2); font-size: .65rem; font-weight: 950; letter-spacing: .08em; }.stats-highlight-grid b { margin-top: 4px; color: var(--cream); line-height: 1.3; }.stats-highlight-grid em { margin-top: 3px; color: var(--muted); font-size: .72rem; font-style: normal; }
.stats-chart { height: 190px; margin: 0 0 23px; padding: 14px 10px 8px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.04); display: grid; grid-template-columns: repeat(6,1fr); gap: 7px; align-items: end; }.stats-month { height: 100%; display: grid; grid-template-rows: 20px 1fr 22px; align-items: end; text-align: center; }.stats-month b { color: var(--cream); font-size: .72rem; }.stats-bar-track { width: 100%; height: 100%; min-height: 90px; border-radius: 8px 8px 4px 4px; background: rgba(255,255,255,.05); display: flex; align-items: flex-end; overflow: hidden; }.stats-bar-track i { width: 100%; min-height: 2px; border-radius: 7px 7px 3px 3px; background: linear-gradient(var(--gold-2),var(--gold)); }.stats-month small { padding-top: 6px; color: var(--muted); font-size: .68rem; }
.stats-species-list { display: grid; gap: 9px; }.stats-species-row { min-height: 70px; padding: 10px; border: 1px solid rgba(217,174,85,.28); border-radius: 15px; background: rgba(255,255,255,.04); display: grid; grid-template-columns: 42px 1fr auto; align-items: center; gap: 10px; }.stats-species-row > span { width: 42px; height: 42px; border-radius: 11px; background: #173f36; display: grid; place-items: center; }.stats-species-row b,.stats-species-row small { display: block; }.stats-species-row b { color: var(--cream); }.stats-species-row small { margin-top: 3px; color: var(--muted); font-size: .72rem; line-height: 1.35; }.stats-species-row em { color: var(--gold-2); font-size: .72rem; font-style: normal; font-weight: 850; text-align: right; }.stats-note { margin: 16px 4px 4px; color: var(--muted); font-size: .72rem; text-align: center; }

.session-storage-note { margin: -4px 0 14px; padding: 10px 12px; border: 1px solid rgba(224,183,84,.35); border-radius: 12px; color: #68766f; font-size: .78rem; }
.policy-heading > p:last-child { max-width: 620px; color: var(--muted); font-size: 1rem; line-height: 1.55; }
.policy-jump { display: flex; gap: 8px; overflow-x: auto; margin: 18px 0 22px; padding-bottom: 4px; scrollbar-width: none; }
.policy-jump::-webkit-scrollbar { display: none; }
.policy-jump a { flex: 0 0 auto; padding: 10px 15px; border: 1px solid rgba(238,226,198,.34); border-radius: 999px; color: var(--cream); font-weight: 800; text-decoration: none; }
.policy-card { margin: 0 0 18px; padding: 22px; border: 1px solid rgba(224,183,84,.28); border-radius: 22px; background: rgba(255,255,255,.045); }
.policy-card h2 { margin: 3px 0 14px; font-size: 1.55rem; }
.policy-card h3 { margin: 20px 0 7px; font-size: 1.05rem; }
.policy-card p,.policy-card li { color: var(--muted); line-height: 1.6; }
.policy-card ul { display: grid; gap: 8px; margin: 10px 0; padding-left: 22px; }
.policy-support-link { display: inline-flex; margin-top: 8px; padding: 13px 16px; border-radius: 14px; background: var(--gold); color: var(--green); font-weight: 900; text-decoration: none; }
.policy-updated { margin: 18px 0 0 !important; font-size: .72rem; }
.passport-cover { min-height: 142px; padding: 18px; border: 1px solid rgba(233,192,101,.7); border-radius: 22px; background: linear-gradient(135deg,#173f36,#0a2f29 65%,#1d5146); display: grid; grid-template-columns: 64px 1fr 42px; align-items: center; gap: 13px; box-shadow: inset 0 0 0 3px rgba(217,174,85,.08),0 18px 40px rgba(0,0,0,.18); }.passport-avatar { width: 64px; height: 64px; border: 2px solid var(--gold); border-radius: 17px; background: rgba(255,255,255,.06); color: var(--gold-2); display: grid; place-items: center; font-size: 1.2rem; font-weight: 950; }.passport-cover div { min-width: 0; }.passport-cover small { color: var(--gold-2); font-size: .67rem; font-weight: 950; letter-spacing: .13em; }.passport-cover h2 { margin: 5px 0 3px; color: var(--cream); font-size: 1.25rem; line-height: 1.25; }.passport-cover p { margin: 0; color: var(--muted); font-size: .74rem; }.passport-mark { width: 42px; height: 52px; border: 1px solid rgba(217,174,85,.65); border-radius: 8px; color: var(--gold-2); display: grid; place-items: center; font-size: .72rem; font-weight: 950; transform: rotate(4deg); }
.passport-progress-card { margin: 11px 0; padding: 13px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.04); }.passport-progress-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }.passport-progress-heading small,.passport-progress-heading b { display: block; }.passport-progress-heading small { color: var(--gold-2); font-size: .65rem; font-weight: 950; letter-spacing: .08em; }.passport-progress-heading b { margin-top: 3px; color: var(--cream); font-size: .82rem; }.passport-progress-heading strong { color: var(--gold-2); font-size: 1.2rem; }.passport-progress-track { height: 9px; margin-top: 10px; border-radius: 999px; background: rgba(255,255,255,.08); display: block; overflow: hidden; }.passport-progress-track i { width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--gold),var(--gold-2)); display: block; transition: width .35s ease; }
.passport-kpis { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; margin-bottom: 17px; }.passport-kpis div { padding: 11px 4px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.035); text-align: center; }.passport-kpis b,.passport-kpis span { display: block; }.passport-kpis b { color: var(--gold-2); font-size: 1.15rem; }.passport-kpis span { margin-top: 2px; color: var(--muted); font-size: .65rem; }
.passport-empty-note { margin: 0 0 18px; padding: 14px; border: 1px dashed rgba(217,174,85,.55); border-radius: 15px; background: rgba(217,174,85,.08); }.passport-empty-note b { color: var(--cream); }.passport-empty-note p { margin: 4px 0 11px; color: var(--muted); font-size: .8rem; }.passport-empty-note button { min-height: 39px; padding: 0 12px; border: 0; border-radius: 10px; background: var(--gold); color: #173a32; font-weight: 900; }
.passport-achievements { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; margin-bottom: 22px; }.passport-stamp { min-height: 112px; padding: 11px; border-radius: 16px; display: grid; grid-template-columns: 36px 1fr; gap: 9px; align-items: start; }.passport-stamp > span { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; font-size: .76rem; font-weight: 950; }.passport-stamp b,.passport-stamp small,.passport-stamp em { display: block; }.passport-stamp b { color: var(--cream); font-size: .84rem; line-height: 1.3; }.passport-stamp small { margin-top: 4px; color: var(--muted); font-size: .67rem; line-height: 1.35; }.passport-stamp em { margin-top: 7px; color: var(--gold-2); font-size: .64rem; font-style: normal; font-weight: 900; }.passport-stamp.unlocked { border: 1px solid rgba(217,174,85,.55); background: linear-gradient(145deg,rgba(217,174,85,.18),rgba(255,255,255,.04)); }.passport-stamp.unlocked > span { background: var(--gold); color: #173a32; box-shadow: 0 5px 16px rgba(217,174,85,.2); }.passport-stamp.locked { border: 1px solid rgba(255,255,255,.08); background: rgba(255,255,255,.025); }.passport-stamp.locked > span { border: 1px dashed #71837b; color: #71837b; }.passport-stamp.locked b,.passport-stamp.locked small { color: #82918b; }
.passport-challenge { width: 100%; min-height: 82px; margin: 0 0 22px; padding: 14px; border: 1px solid rgba(217,174,85,.55); border-radius: 17px; background: rgba(217,174,85,.1); color: var(--cream); display: grid; grid-template-columns: 1fr auto; align-items: center; text-align: left; }.passport-challenge small,.passport-challenge b,.passport-challenge em { display: block; }.passport-challenge small { color: var(--gold-2); font-size: .66rem; font-weight: 950; letter-spacing: .09em; }.passport-challenge b { margin-top: 4px; font-size: 1rem; }.passport-challenge em { margin-top: 3px; color: var(--muted); font-size: .72rem; font-style: normal; }.passport-challenge > strong { color: var(--gold-2); font-size: 1.4rem; }
.passport-collection { display: grid; gap: 8px; margin-bottom: 22px; }.passport-collection-row { width: 100%; min-height: 65px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 14px; background: rgba(255,255,255,.04); color: var(--cream); display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 10px; text-align: left; }.passport-row-icon { width: 44px; height: 44px; border-radius: 11px; background: #173f36 center/cover no-repeat; color: var(--gold); display: grid; place-items: center; }.passport-collection-row div { min-width: 0; }.passport-collection-row b,.passport-collection-row small { display: block; }.passport-collection-row b { line-height: 1.3; }.passport-collection-row small { margin-top: 3px; color: var(--muted); font-size: .7rem; line-height: 1.35; }.passport-collection-row > strong { color: var(--gold-2); }.passport-locked-card { padding: 18px; border: 1px dashed rgba(255,255,255,.15); border-radius: 14px; color: #82918b; text-align: center; font-size: .82rem; }.passport-pb-row { cursor: pointer; }
.profile-link { margin-bottom: 9px; }.profile-link > span { color: var(--gold); font-size: 1.35rem; }.profile-link > div { flex: 1; }
.catch-row { padding: 13px; background: var(--paper); color: #20362f; border-radius: 14px; margin-bottom: 9px; display: grid; grid-template-columns: 48px 1fr auto; gap: 10px; align-items: center; }.catch-row span { width: 48px; height: 48px; display: grid; place-items: center; border-radius: 12px; background: #173f36; color: var(--gold); }.catch-row p { color: #68766f; margin: 2px 0 0; font-size: .8rem; }
.bottom-nav { height: calc(72px + env(safe-area-inset-bottom)); padding: 7px 7px max(7px, env(safe-area-inset-bottom)); position: fixed; left: 0; right: 0; bottom: 0 !important; width: 100%; max-width: none; transform: none; z-index: 12; background: rgba(4,36,31,.98); border: 0; border-top: 1px solid var(--line); border-radius: 0; backdrop-filter: blur(16px); display: grid; grid-template-columns: repeat(5,1fr); }
.bottom-nav button { border: 0; background: transparent; color: #a9b8b2; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; font-size: .68rem; }
.bottom-nav button span { font-size: 1.25rem; line-height: 1; }.bottom-nav button.active { color: var(--gold-2); }.catch-nav { display: grid; place-items: center; width: 32px; height: 32px; margin-top: -17px; border-radius: 50%; background: var(--gold); color: #173a32; border: 4px solid var(--ink); }
.modal-backdrop { position: fixed; inset: 0; z-index: 30; padding: 18px; background: rgba(0,19,16,.72); display: grid; place-items: end center; backdrop-filter: blur(5px); }
.modal { width: min(100%,480px); max-height: 85dvh; overflow-y: auto; border-radius: 24px; background: var(--paper); color: #20362f; padding: 23px; position: relative; box-shadow: 0 28px 80px rgba(0,0,0,.45); }
.modal p { color: #617068; }.modal .eyebrow { color: #8a681f; }.modal-close { position: absolute; right: 14px; top: 12px; border: 0; background: none; color: #20362f; font-size: 1.8rem; }
.water-planning { margin-top: 14px; border: 1px solid #d6ddd7; border-radius: 13px; background: #f8f6ef; overflow: hidden; }.water-planning summary { padding: 12px 13px; color: #20362f; font-weight: 900; cursor: pointer; }.water-planning > div { padding: 0 13px 12px; }.water-planning > div + div { padding-top: 2px; }.water-planning b { color: #20362f; font-size: .78rem; }.water-planning p { margin: 4px 0 0; color: #68766f; font-size: .76rem; line-height: 1.5; }.water-verification { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 13px; }.water-verification span { padding: 5px 8px; border-radius: 999px; background: #e7eee8; color: #426259; font-size: .66rem; font-weight: 850; }.water-source-link { display: inline-flex; margin-top: 12px; color: #80601b; font-size: .78rem; font-weight: 900; text-decoration: underline; text-underline-offset: 3px; }
#modalContent > label, .account-form label, .edit-catch-form label { display: block; margin-top: 12px; color: #20362f; font-weight: 800; font-size: .86rem; }
#modalContent input:not([type="checkbox"]):not([type="file"]), #modalContent select, #modalContent textarea { width: 100%; min-height: 48px; margin-top: 7px; padding: 9px 12px; border: 1px solid #ccd5d0; border-radius: 10px; background: #fffdf7; color: #20362f; font: inherit; }
#modalContent textarea { min-height: 90px; resize: vertical; }
.account-form .confirm-delete, .remove-photo { display: flex; align-items: flex-start; gap: 9px; font-weight: 700; line-height: 1.4; }
.account-form .confirm-delete input, .remove-photo input { flex: 0 0 auto; width: 19px; height: 19px; margin-top: 1px; accent-color: #a83f32; }
.delete-account-warning > p:first-child { padding: 11px; border-radius: 11px; background: #f9e6e1; color: #7d3026; }
.profile-settings-form { display: grid; gap: 14px; margin-top: 8px; }
.settings-section { padding: 15px; border: 1px solid #d9ded8; border-radius: 16px; background: #faf8f1; }
.settings-heading { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 7px; }
.settings-heading > span { flex: 0 0 auto; width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #173f36; color: #e9c065; font-size: .68rem; font-weight: 950; }
.settings-heading h3 { margin: 1px 0 0; color: #20362f; font-size: .98rem; }
.settings-heading p { margin: 3px 0 0; font-size: .76rem; line-height: 1.4; }
.settings-section label { display: block; margin-top: 12px; color: #20362f; font-size: .84rem; font-weight: 850; }
.settings-help { margin: 5px 1px 0 !important; color: #6f7c76 !important; font-size: .7rem; line-height: 1.4; }
.settings-readonly { background: #edf0eb !important; color: #68756f !important; cursor: not-allowed; }
.username-field { position: relative; }
.username-field > span { position: absolute; left: 12px; top: 50%; transform: translateY(-42%); color: #6c7972; font-weight: 900; }
.username-field input { padding-left: 29px !important; }
.settings-action-list { display: grid; gap: 8px; margin-top: 12px; }
.settings-action-list button { width: 100%; min-height: 58px; padding: 9px 11px; border: 1px solid #cbd4ce; border-radius: 12px; background: #fffdf7; color: #20362f; display: grid; grid-template-columns: 32px 1fr auto; align-items: center; gap: 9px; text-align: left; }
.settings-action-list button > span { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 9px; background: #e7ede8; color: #173f36; font-weight: 950; }
.settings-action-list button div { min-width: 0; }.settings-action-list button b,.settings-action-list button small { display: block; }.settings-action-list button small { margin-top: 2px; color: #6b7871; line-height: 1.3; }
.settings-action-list button.danger { border-color: #e5c0b8; }.settings-action-list button.danger > span { background: #f7ded8; color: #9b3a2f; }.settings-action-list button.danger div > b { color: #9b3a2f; }
.settings-switch { min-height: 56px; padding: 10px 0; display: flex !important; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid #e1e4de; }.settings-switch:last-child { border-bottom: 0; }.settings-switch > span { min-width: 0; }.settings-switch b,.settings-switch small { display: block; }.settings-switch small { margin-top: 3px; color: #6f7c76; font-size: .7rem; line-height: 1.35; }.settings-switch input { flex: 0 0 auto; appearance: none; width: 44px; height: 25px; margin: 0; border-radius: 999px; background: #c4ccc7; position: relative; transition: .2s ease; }.settings-switch input::after { content: ''; position: absolute; width: 19px; height: 19px; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.22); transition: .2s ease; }.settings-switch input:checked { background: #173f36; }.settings-switch input:checked::after { transform: translateX(19px); }
.edit-photo-field { margin: 4px 0 17px; padding: 12px; border: 1px solid #d7d1c0; border-radius: 14px; background: #f4f0e7; }
.edit-photo-field > b, .edit-photo-field > small { display: block; }.edit-photo-field > small { margin-top: 8px; color: #65736d; font-size: .72rem; }
.edit-photo-preview { width: 100%; min-height: 155px; margin: 9px 0; border-radius: 11px; overflow: hidden; background: #173f36; color: var(--gold); display: grid; place-items: center; }
.edit-photo-preview img { width: 100%; height: 190px; object-fit: cover; display: block; }.edit-photo-preview span { font-size: 2.4rem; }.edit-photo-preview small { display: block; margin-top: -42px; color: #c7d1cc; }
.edit-photo-picker { display: inline-flex; min-height: 42px; padding: 0 13px; border-radius: 10px; align-items: center; background: #173f36; color: #fffaf0; font-weight: 900; cursor: pointer; }.edit-photo-picker input { position: absolute; opacity: 0; pointer-events: none; }
.owner-stat-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; margin-bottom: 14px; }.owner-stat-grid div { padding: 13px 10px; border-radius: 13px; background: #edf1eb; text-align: center; }.owner-stat-grid div.needs-review { background: #f9e4de; }.owner-stat-grid b,.owner-stat-grid span { display: block; }.owner-stat-grid b { color: #20362f; font-size: 1.35rem; }.owner-stat-grid span { margin-top: 2px; color: #65736d; font-size: .72rem; font-weight: 800; }
.owner-tabs { display: flex; gap: 7px; margin: 0 -3px 15px; padding: 3px; overflow-x: auto; scrollbar-width: none; }.owner-tabs::-webkit-scrollbar { display: none; }.owner-tabs button { flex: 0 0 auto; min-height: 38px; padding: 0 12px; border: 1px solid #bcc8c1; border-radius: 999px; background: transparent; color: #52635a; font-weight: 850; }.owner-tabs button.active { border-color: #173f36; background: #173f36; color: #fffaf0; }
.owner-panel-list { display: grid; gap: 10px; }.owner-review-card { padding: 13px; border: 1px solid #d6ddd7; border-radius: 14px; background: #f8f6ef; }.owner-review-card h3 { margin: 0 0 5px; color: #20362f; font-size: .95rem; line-height: 1.35; }.owner-review-card p { margin: 4px 0; color: #586860; line-height: 1.4; white-space: normal; }.owner-review-card small { display: block; margin-top: 6px; color: #718078; font-size: .72rem; line-height: 1.4; }.owner-member-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }.owner-member-heading h3 { flex: 1; }
.owner-status { display: inline-flex; align-items: center; min-height: 23px; padding: 3px 8px; border-radius: 999px; background: #e5eee7; color: #315e46; font-size: .64rem; font-weight: 900; }.owner-status.review,.owner-status.suspended { background: #f7ded8; color: #8a3328; }.owner-status.active { background: #e2eee5; color: #2c6748; }
.owner-action-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }.owner-action-row button { min-height: 36px; padding: 0 11px; border: 1px solid #afbeb6; border-radius: 9px; background: #fffdf7; color: #2d463d; font-weight: 900; }.owner-action-row button.danger-link { border-color: #e2b5aa; color: #9b3a2f; }
.owner-empty { padding: 24px 16px; border: 1px dashed #c7d1cb; border-radius: 14px; text-align: center; }.owner-empty b { color: #20362f; }.owner-empty p { margin: 5px 0 0; }.owner-media-summary { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; }.owner-media-summary article { padding: 17px 12px; border-radius: 14px; background: #edf1eb; text-align: center; }.owner-media-summary b,.owner-media-summary span { display: block; }.owner-media-summary b { color: #20362f; font-size: 1.4rem; }.owner-media-summary span { color: #65736d; font-size: .74rem; }.owner-media-button { width: 100%; min-height: 48px; margin-top: 12px; border: 0; border-radius: 12px; background: #173f36; color: #fffaf0; font-weight: 900; }.owner-panel-note { margin: 9px 0 0 !important; font-size: .78rem; text-align: center; }
.remove-photo { margin-top: 10px; color: #8a3328; font-size: .8rem; }
.guide-intro { font-size: .98rem; line-height: 1.55; }.guide-section { margin-top: 17px; }.guide-section h4 { margin: 0 0 8px; color: #20362f; font-size: .92rem; }.guide-list,.guide-steps { margin: 0; padding-left: 21px; color: #617068; }.guide-list li,.guide-steps li { margin: 8px 0; line-height: 1.45; }.guide-media { display: flex; align-items: center; gap: 11px; margin: 15px 0 5px; padding: 12px; border-radius: 14px; background: #e7eee7; color: #20362f; }.guide-media > span { width: 35px; height: 35px; display: grid; place-items: center; border-radius: 10px; background: #173f36; color: var(--gold); font-size: 1.1rem; }.guide-media b,.guide-media small { display: block; }.guide-media small { margin-top: 2px; color: #617068; line-height: 1.35; }.guide-note { margin-top: 17px !important; padding: 12px; border-radius: 13px; background: #f2f0e7; color: #52635a !important; line-height: 1.45; }.guide-note b { color: #20362f; }
.toast { position: fixed; z-index: 50; left: 50%; bottom: 92px; transform: translate(-50%,20px); min-width: 240px; max-width: calc(100% - 32px); padding: 12px 16px; border-radius: 12px; background: var(--paper); color: #173a32; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transition: .25s ease; text-align: center; font-weight: 700; }
.toast.show { opacity: 1; transform: translate(-50%,0); }
.notification-list { display: grid; gap: 8px; }.notification-item { width: 100%; min-height: 68px; padding: 10px; border: 1px solid #d5dcd6; border-radius: 13px; background: #f8f6ef; color: #20362f; display: grid; grid-template-columns: 36px 1fr auto; align-items: center; gap: 10px; text-align: left; }.notification-item.unread { border-color: #d9ae55; background: #fff7df; }.notification-item > span:nth-child(2) { line-height: 1.38; }.notification-item small { display: block; margin-top: 4px; color: #6c7972; }.activity-icon { width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: #173f36; color: var(--gold); font-weight: 950; }.forgot-password-link { margin: 9px 0 0 auto; padding: 4px 0; display: block; border: 0; background: transparent; color: #80601b; font-size: .78rem; font-weight: 900; }
.gear-tabs { grid-template-columns: repeat(3,minmax(0,1fr)); }
.gear-tabs button { min-width: 0; padding-inline: 5px; font-size: .72rem; }
.packing-template-row { display: flex; gap: 7px; margin: 0 0 11px; padding-bottom: 2px; overflow-x: auto; scrollbar-width: none; }
.packing-template-row button { flex: 0 0 auto; min-height: 35px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--cream); font-size: .72rem; font-weight: 850; }
.packing-template-row button.active { border-color: var(--gold); background: var(--gold); color: #173a32; }
.packing-progress-card { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px; padding: 14px; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 16px; background: rgba(255,255,255,.045); }
.packing-progress-card small,.packing-progress-card b { display: block; }
.packing-progress-card small { color: var(--gold-2); font-size: .58rem; font-weight: 900; letter-spacing: .08em; }
.packing-progress-card b { margin-top: 3px; }
.packing-progress-card strong { color: var(--gold-2); font-size: 1.15rem; }
.packing-progress-card > span { grid-column: 1/-1; height: 7px; overflow: hidden; border-radius: 999px; background: rgba(255,255,255,.1); }
.packing-progress-card i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--gold),var(--gold-2)); transition: width .2s ease; }
.packing-actions { display: grid; grid-template-columns: 1.35fr 1fr; gap: 8px; margin-bottom: 11px; }
.packing-actions button { min-height: 44px; margin: 0; }
.packing-actions button:disabled { opacity: .4; }
.packing-item { display: grid; grid-template-columns: 38px minmax(0,1fr) 34px 34px; align-items: center; gap: 7px; min-height: 58px; padding: 9px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.045); }
.packing-check { width: 36px; height: 36px; border: 2px solid rgba(233,192,101,.6); border-radius: 11px; background: transparent; color: #173a32; font-size: 1.05rem; font-weight: 950; }
.packing-item.packed .packing-check { border-color: var(--gold); background: var(--gold); }
.packing-copy { min-width: 0; border: 0; background: transparent; color: var(--cream); text-align: left; }
.packing-copy b,.packing-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.packing-copy small { margin-top: 2px; color: var(--muted); font-size: .65rem; }
.packing-item.packed .packing-copy b { color: var(--muted); text-decoration: line-through; }
.packing-edit,.packing-remove { width: 34px; height: 34px; border: 0; border-radius: 9px; background: rgba(255,255,255,.06); color: var(--cream); font-weight: 900; }
.packing-remove { color: #f0aa97; }
.packing-load-button { width: auto; min-height: 42px; padding: 0 18px; }
.gear-summary article { overflow: hidden; }
.gear-summary article > div { min-width: 0; }
.gear-summary small { overflow-wrap: anywhere; }
.trip-planner-launch { margin-top: 8px; }
.trip-planner-launch .session-card-icon { background: rgba(233,192,101,.16); color: var(--gold-2); border: 1px solid rgba(233,192,101,.45); }
.my-angling-launch { margin-top: 8px; border-color: rgba(233,192,101,.46); background: linear-gradient(135deg,rgba(233,192,101,.14),rgba(255,255,255,.035)); }
.my-angling-launch .session-card-icon { background: var(--gold); color: #173a32; }
.my-angling-heading { margin-bottom: 15px; }
.my-angling-stats { margin-bottom: 12px; }
.my-angling-group { margin-top: 20px; }
.my-angling-group-title { display: flex; align-items: center; gap: 11px; margin-bottom: 10px; }
.my-angling-group-title > span { flex: 0 0 auto; width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(233,192,101,.42); border-radius: 13px; background: rgba(233,192,101,.13); color: var(--gold-2); font-size: 1.15rem; font-weight: 950; }
.my-angling-group-title h2 { margin: 0; font-size: 1.12rem; }
.my-angling-group-title p { margin: 2px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.35; }
.my-angling-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.my-angling-grid button { min-width: 0; min-height: 112px; padding: 14px; border: 1px solid var(--line); border-radius: 17px; background: rgba(255,255,255,.045); color: var(--cream); text-align: left; }
.my-angling-grid button:first-child:last-child { grid-column: 1/-1; }
.my-angling-grid button > span { width: 34px; height: 34px; display: grid; place-items: center; margin-bottom: 11px; border-radius: 10px; background: rgba(233,192,101,.14); color: var(--gold-2); font-weight: 950; }
.my-angling-grid b,.my-angling-grid small { display: block; }
.my-angling-grid b { font-size: .94rem; line-height: 1.25; }
.my-angling-grid small { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.35; }
.profile-section-label { margin: 21px 2px 9px; color: var(--gold-2); font-size: .72rem; font-weight: 950; letter-spacing: .12em; }
.trip-planner-form { padding: 15px; margin-bottom: 12px; border: 1px solid rgba(233,192,101,.38); border-radius: 18px; background: rgba(255,255,255,.04); }
.trip-planner-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; }
.trip-planner-grid label { min-width: 0; color: var(--cream); font-size: .78rem; font-weight: 850; }
.trip-planner-grid .full-field { grid-column: 1/-1; }
.trip-planner-grid input,.trip-planner-grid select,.trip-planner-grid textarea { width: 100%; min-height: 46px; margin-top: 6px; padding: 10px 11px; border: 1px solid rgba(245,240,229,.25); border-radius: 11px; background: #fffaf0; color: #173a32; font: inherit; }
.trip-planner-grid textarea { min-height: 82px; resize: vertical; }
.trip-privacy-note { margin: 11px 1px; color: var(--muted); font-size: .7rem; line-height: 1.45; }
.trip-planner-form > .primary-button { width: 100%; min-height: 48px; }
.trip-conditions-card { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 11px; padding: 14px; margin-bottom: 20px; border: 1px solid rgba(233,192,101,.38); border-radius: 17px; background: linear-gradient(125deg,rgba(217,174,85,.14),rgba(20,82,71,.32)); }
.trip-conditions-card small,.trip-conditions-card b,.trip-conditions-card span { display: block; }
.trip-conditions-card small { color: var(--gold-2); font-size: .62rem; font-weight: 950; letter-spacing: .09em; }
.trip-conditions-card b { margin-top: 3px; line-height: 1.3; }
.trip-conditions-card span { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.4; }
.trip-conditions-card button { min-height: 40px; padding: 0 11px; margin: 0; white-space: nowrap; }
.trip-plan-list { display: grid; gap: 11px; }
.trip-plan-card { display: grid; grid-template-columns: 50px minmax(0,1fr); gap: 12px; padding: 14px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.045); }
.trip-plan-date { width: 50px; height: 55px; display: grid; place-content: center; border-radius: 13px; background: var(--gold); color: #173a32; text-align: center; }
.trip-plan-date b,.trip-plan-date span { display: block; }
.trip-plan-date b { font-size: 1.2rem; line-height: 1; }
.trip-plan-date span { margin-top: 4px; font-size: .62rem; font-weight: 950; }
.trip-plan-copy { min-width: 0; }
.trip-plan-copy small { color: var(--gold-2); font-size: .67rem; font-weight: 850; }
.trip-plan-copy h3 { margin: 3px 0 2px; font-size: 1rem; line-height: 1.3; }
.trip-plan-copy p { margin: 0; color: var(--muted); font-size: .74rem; line-height: 1.4; }
.trip-plan-copy em { display: block; margin-top: 7px; color: var(--muted); font-size: .7rem; font-style: normal; line-height: 1.4; }
.trip-plan-actions { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 7px; }
.trip-plan-actions button { min-height: 36px; padding: 0 10px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: transparent; color: var(--cream); font-size: .7rem; font-weight: 850; }
.trip-plan-actions button:first-child { border-color: var(--gold); background: var(--gold); color: #173a32; }
.trip-plan-actions button.danger { color: #f0aa97; border-color: rgba(218,126,102,.35); }
.trip-empty { padding: 26px 16px; border: 1px dashed rgba(245,240,229,.28); border-radius: 18px; text-align: center; color: var(--muted); }
.trip-empty span { color: var(--gold-2); font-size: 1.8rem; }
.trip-empty h3 { margin: 8px 0 5px; color: var(--cream); }
.trip-empty p { margin: 0; font-size: .78rem; }
.swim-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }
.swim-summary article { min-width: 0; padding: 13px 8px; border: 1px solid rgba(233,192,101,.35); border-radius: 15px; background: rgba(255,255,255,.04); text-align: center; }
.swim-summary b,.swim-summary span { display: block; }
.swim-summary b { color: var(--gold-2); font-size: 1.25rem; }
.swim-summary span { margin-top: 2px; color: var(--muted); font-size: .75rem; line-height: 1.25; }
.swim-filter { display: block; color: var(--cream); font-size: .88rem; font-weight: 850; }
.swim-filter select { width: 100%; min-height: 48px; margin-top: 6px; padding: 0 11px; border: 1px solid rgba(245,240,229,.25); border-radius: 11px; background: #fffaf0; color: #173a32; font: inherit; }
.swim-add-button { width: 100%; min-height: 49px; margin: 11px 0 0; }
.swim-private-note { margin: 9px 2px 15px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.swim-journal-list { display: grid; gap: 11px; }
.swim-journal-card { padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.045); }
.swim-journal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.swim-journal-head > div { min-width: 0; }
.swim-journal-head small { display: block; color: var(--gold-2); font-size: .76rem; font-weight: 850; line-height: 1.35; }
.swim-journal-head h3 { margin: 3px 0 0; font-size: 1.05rem; line-height: 1.3; }
.swim-journal-head > span { flex: 0 0 auto; max-width: 112px; padding: 5px 8px; border-radius: 999px; background: rgba(255,255,255,.07); color: var(--muted); font-size: .72rem; font-weight: 850; text-align: center; }
.swim-journal-head > span.success { background: rgba(233,192,101,.17); color: var(--gold-2); }
.swim-journal-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 13px 0 0; }
.swim-journal-card dl div { min-width: 0; padding: 9px; border-radius: 11px; background: rgba(0,0,0,.13); }
.swim-journal-card dt { color: var(--muted); font-size: .7rem; font-weight: 850; }
.swim-journal-card dd { margin: 3px 0 0; color: var(--cream); font-size: .82rem; line-height: 1.35; overflow-wrap: anywhere; }
.swim-journal-card > p { margin: 11px 0 0; color: var(--muted); font-size: .82rem; line-height: 1.45; }
.swim-location-status { margin-top: 12px; color: var(--gold-2); font-size: .76rem; font-weight: 850; }
.swim-journal-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }
.swim-journal-actions button { min-height: 38px; padding: 0 11px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: transparent; color: var(--cream); font-size: .8rem; font-weight: 850; }
.swim-journal-actions button:first-child { border-color: var(--gold); background: var(--gold); color: #173a32; }
.swim-journal-actions button.danger { color: #f0aa97; border-color: rgba(218,126,102,.35); }
.swim-journal-empty { padding: 28px 17px; border: 1px dashed rgba(245,240,229,.28); border-radius: 18px; text-align: center; color: var(--muted); }
.swim-journal-empty span { color: var(--gold-2); font-size: 1.9rem; }
.swim-journal-empty h3 { margin: 8px 0 5px; color: var(--cream); }
.swim-journal-empty p { margin: 0; line-height: 1.45; }
.swim-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.swim-form-grid .full-field { grid-column: 1/-1; }
.swim-form-grid label { margin-top: 0 !important; }
.swim-location-box { margin-top: 14px; padding: 13px; border-radius: 14px; background: #edf1eb; color: #20362f; }
.swim-location-box b,.swim-location-box p { display: block; }
.swim-location-box p { margin: 5px 0 10px; color: #64736b; font-size: .8rem; line-height: 1.4; }
.swim-location-box button { min-height: 42px; margin: 0; }
.swim-remove-location { margin-left: 7px !important; border: 0; background: transparent; color: #9b3a2f; font-weight: 850; }
.swim-pin { width: 34px; height: 34px; display: grid; place-items: center; border: 3px solid #fffaf0; border-radius: 50%; background: var(--gold); color: #173a32; box-shadow: 0 3px 9px rgba(0,0,0,.38); font-size: 1rem; font-weight: 950; }
.private-swim-popup { min-width: 190px; color: #173a32; }
.private-swim-popup small,.private-swim-popup b,.private-swim-popup span { display: block; }
.private-swim-popup small { color: #80601b; font-size: .68rem; font-weight: 950; letter-spacing: .07em; }
.private-swim-popup b { margin-top: 3px; font-size: 1rem; }
.private-swim-popup span,.private-swim-popup p { margin-top: 4px; color: #617068; font-size: .76rem; line-height: 1.35; }
.private-swim-popup button { width: 100%; min-height: 36px; margin-top: 8px; border: 0; border-radius: 9px; background: #173a32; color: #fffaf0; font-weight: 850; }
.rig-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }
.rig-summary article { min-width: 0; padding: 13px 8px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(233,192,101,.35); border-radius: 15px; background: rgba(255,255,255,.04); }
.rig-summary article > span { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: rgba(233,192,101,.15); color: var(--gold-2); font-weight: 950; }
.rig-summary b,.rig-summary small { display: block; }.rig-summary b { font-size: 1.15rem; }.rig-summary small { margin-top: 1px; color: var(--muted); font-size: .63rem; line-height: 1.2; }
.rig-add-button { width: 100%; min-height: 49px; margin-bottom: 11px; }
.rig-filter-row { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none; }
.rig-filter-row button { flex: 0 0 auto; min-height: 36px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--cream); font-weight: 850; }
.rig-filter-row button.active { border-color: var(--gold); background: var(--gold); color: #173a32; }
.rig-private-note { margin: 10px 2px 15px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.rig-wallet-list { display: grid; gap: 11px; }
.rig-card { padding: 15px; border: 1px solid var(--line); border-radius: 18px; background: rgba(255,255,255,.045); }
.rig-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.rig-card-head small { display: block; color: var(--gold-2); font-size: .75rem; font-weight: 850; }
.rig-card-head h3 { margin: 3px 0 0; font-size: 1.08rem; line-height: 1.3; }
.rig-star { flex: 0 0 auto; width: 40px; height: 40px; border: 1px solid rgba(245,240,229,.28); border-radius: 50%; background: transparent; color: var(--muted); font-size: 1.2rem; }
.rig-star.active { border-color: var(--gold); background: rgba(233,192,101,.15); color: var(--gold-2); }
.rig-proven-badge { display: inline-block; margin-top: 10px; padding: 5px 8px; border-radius: 999px; background: rgba(233,192,101,.16); color: var(--gold-2); font-size: .72rem; font-weight: 900; }
.rig-card dl { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin: 12px 0 0; }
.rig-card dl div { min-width: 0; padding: 9px; border-radius: 11px; background: rgba(0,0,0,.13); }
.rig-card dt { color: var(--muted); font-size: .68rem; font-weight: 850; }.rig-card dd { margin: 3px 0 0; color: var(--cream); font-size: .8rem; line-height: 1.35; overflow-wrap: anywhere; }
.rig-card > p { margin: 10px 0 0; color: var(--muted); font-size: .78rem; line-height: 1.45; }.rig-card > p b { color: var(--cream); }
.rig-actions { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 12px; }.rig-actions button { min-height: 38px; padding: 0 10px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: transparent; color: var(--cream); font-size: .76rem; font-weight: 850; }.rig-actions button:first-child { border-color: var(--gold); background: var(--gold); color: #173a32; }.rig-actions button.danger { margin-left: auto; color: #f0aa97; border-color: rgba(218,126,102,.35); }
.rig-empty { padding: 28px 17px; border: 1px dashed rgba(245,240,229,.28); border-radius: 18px; text-align: center; color: var(--muted); }.rig-empty span { color: var(--gold-2); font-size: 2rem; }.rig-empty h3 { margin: 8px 0 5px; color: var(--cream); }.rig-empty p { margin: 0; line-height: 1.45; }
.rig-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }.rig-form-grid label { margin-top: 0 !important; }.rig-form-grid .full-field { grid-column: 1/-1; }.rig-favourite-field { display: flex; align-items: center; gap: 9px; min-height: 42px; }.rig-favourite-field input { width: 20px !important; min-height: 20px !important; margin: 0 !important; }
.saved-lake-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin-bottom: 13px; }
.saved-lake-summary article { min-width: 0; padding: 13px 8px; display: flex; align-items: center; gap: 8px; border: 1px solid rgba(233,192,101,.35); border-radius: 15px; background: rgba(255,255,255,.04); }
.saved-lake-summary article > span { flex: 0 0 auto; width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; background: rgba(233,192,101,.15); color: var(--gold-2); font-weight: 950; }
.saved-lake-summary b,.saved-lake-summary small { display: block; }.saved-lake-summary b { font-size: 1.15rem; }.saved-lake-summary small { margin-top: 1px; color: var(--muted); font-size: .63rem; line-height: 1.2; }
.saved-lake-filters { display: flex; gap: 7px; overflow-x: auto; scrollbar-width: none; }
.saved-lake-filters::-webkit-scrollbar { display: none; }
.saved-lake-filters button { flex: 0 0 auto; min-height: 37px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; background: transparent; color: var(--cream); font-weight: 850; }
.saved-lake-filters button.active { border-color: var(--gold); background: var(--gold); color: #173a32; }
.saved-lake-private-note { margin: 10px 2px 15px; color: var(--muted); font-size: .78rem; line-height: 1.45; }
.saved-lake-list { display: grid; gap: 12px; }
.saved-lake-card { overflow: hidden; border: 1px solid rgba(233,192,101,.32); border-radius: 19px; background: rgba(255,255,255,.045); }
.saved-lake-main { width: 100%; display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 13px; padding: 13px; border: 0; background: transparent; color: inherit; text-align: left; }
.saved-lake-image { position: relative; width: 88px; height: 88px; overflow: hidden; border-radius: 14px; background: rgba(0,0,0,.15); }
.saved-lake-image img { width: 100%; height: 100%; object-fit: cover; }
.saved-lake-image small { position: absolute; inset: auto 3px 3px; padding: 3px 4px; border-radius: 5px; background: rgba(7,35,30,.82); color: #fffaf0; font-size: .49rem; font-weight: 800; text-align: center; }
.saved-lake-copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; }
.saved-lake-copy > b { margin-top: 5px; color: var(--cream); font-size: 1rem; line-height: 1.25; }
.saved-lake-copy > em { margin-top: 2px; color: var(--muted); font-size: .77rem; font-style: normal; line-height: 1.35; }
.saved-lake-copy > small { margin-top: 4px; color: var(--muted); font-size: .72rem; line-height: 1.35; }
.saved-lake-copy > strong { margin-top: 7px; color: var(--gold-2); font-size: .75rem; }
.saved-lake-status { display: inline-flex; min-height: 23px; align-items: center; padding: 0 8px; border-radius: 999px; background: rgba(255,255,255,.08); color: var(--muted); font-size: .67rem; font-weight: 900; }
.saved-lake-status.status-booked { background: rgba(233,192,101,.18); color: var(--gold-2); }
.saved-lake-status.status-visited { background: rgba(131,188,153,.16); color: #b5dfc3; }
.saved-lake-note { margin: 0 13px 12px; padding: 10px 11px; border-left: 3px solid var(--gold); border-radius: 0 9px 9px 0; background: rgba(0,0,0,.13); color: var(--muted); font-size: .77rem; line-height: 1.45; white-space: pre-wrap; overflow-wrap: anywhere; }
.saved-lake-actions { display: flex; gap: 7px; padding: 0 13px 13px; overflow-x: auto; scrollbar-width: none; }
.saved-lake-actions::-webkit-scrollbar { display: none; }
.saved-lake-actions button { flex: 0 0 auto; min-height: 38px; padding: 0 10px; border: 1px solid rgba(245,240,229,.3); border-radius: 9px; background: transparent; color: var(--cream); font-size: .75rem; font-weight: 850; }
.saved-lake-actions button:first-child { border-color: var(--gold); background: var(--gold); color: #173a32; }
.saved-lake-actions button.danger { color: #f0aa97; border-color: rgba(218,126,102,.35); }
.saved-lake-empty { padding: 30px 18px; border: 1px dashed rgba(245,240,229,.28); border-radius: 18px; text-align: center; color: var(--muted); }
.saved-lake-empty > span { color: var(--gold-2); font-size: 2rem; }.saved-lake-empty h3 { margin: 8px 0 5px; color: var(--cream); }.saved-lake-empty p { margin: 0; line-height: 1.45; }.saved-lake-empty button { margin-top: 15px; }
.saved-lake-form label { display: block; margin-top: 12px; font-weight: 800; }.saved-lake-form label:first-child { margin-top: 0; }.saved-lake-form select,.saved-lake-form input,.saved-lake-form textarea { width: 100%; margin-top: 6px; }.saved-lake-form p { margin: 11px 0 0; color: #64736b; font-size: .78rem; line-height: 1.45; }
.hidden { display: none !important; }
.auth-tabs { display:flex; gap:8px; margin:16px 0 12px; }.auth-tabs button { flex:1; padding:10px; border:1px solid var(--line); border-radius:10px; background:transparent; color:inherit; font-weight:800; }.auth-tabs button.active { background:var(--gold); color:#14342d; border-color:var(--gold); }.sign-in-prompt label { display:block; margin-top:12px; }.sign-in-prompt input { width:100%; min-height:46px; margin-top:6px; padding:0 12px; border:1px solid var(--line); border-radius:10px; background:#fffaf0; color:#14342d; }.auth-error { min-height:20px; color:#a83f32; font-weight:700; }
@media (min-width: 720px) {
  .modal-backdrop { place-items: center; }
  .era-studio { grid-template-columns: 1fr auto; align-items: center; }.era-studio button { min-width: 160px; }
  .era-video-list { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 359px) {
  .view { padding-inline: 12px; }
  .modal-backdrop { padding: 10px; }
  .modal { padding: 19px 16px; }
  .gear-summary article { padding-inline: 6px; gap: 5px; }
  .gear-summary article > span { width: 27px; height: 27px; }
  .bottom-nav button { min-width: 0; font-size: .62rem; }
  .trip-planner-grid { grid-template-columns: 1fr; }
  .trip-planner-grid .full-field { grid-column: auto; }
  .trip-conditions-card { grid-template-columns: 1fr; }
  .trip-conditions-card button { width: 100%; }
  .swim-form-grid,.swim-journal-card dl { grid-template-columns: 1fr; }
  .swim-form-grid .full-field { grid-column: auto; }
  .rig-summary article { padding-inline: 6px; gap: 5px; }
  .rig-summary article > span { width: 27px; height: 27px; }
  .rig-form-grid,.rig-card dl { grid-template-columns: 1fr; }
  .rig-form-grid .full-field { grid-column: auto; }
  .saved-lake-summary article { padding-inline: 6px; gap: 5px; }
  .saved-lake-summary article > span { width: 27px; height: 27px; }
  .saved-lake-main { grid-template-columns: 76px minmax(0,1fr); gap: 10px; padding: 11px; }
  .saved-lake-image { width: 76px; height: 76px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
