/* ===================== Fall Fishing Classic — styles ===================== */
:root{
  --a:#c8102e;         /* Team Ryde (red) */
  --b:#0b3d91;         /* Team Die (blue) */
  --ink:#14181f;
  --paper:#f4f6f8;
  --card:#ffffff;
  --line:#e2e7ee;
  --muted:#6b7683;
  --green:#1f7a4d;
  --gold:#c9a227;
  --shadow:0 1px 3px rgba(16,24,40,.08),0 1px 2px rgba(16,24,40,.06);
  --radius:14px;
  --safe-b:env(safe-area-inset-bottom,0px);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0;height:100%}
body{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--paper);color:var(--ink);line-height:1.45;
  font-size:16px;
  -webkit-font-smoothing:antialiased;
  /* app-shell: header + scrolling content + tab bar, so the bar is always
     pinned to the bottom regardless of content length or mobile toolbars.
     100dvh is the full screen when installed to the home screen (standalone)
     AND tracks the show/hide browser toolbar in modern browsers; 100vh is the
     fallback for old browsers. (No JS height override — measuring the visual
     viewport re-fired on events like the update banner and briefly returned a
     short value, shrinking the shell and floating the tab bar up.) */
  height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;
}
h1,h2,h3{margin:0 0 .4em;line-height:1.2}
a{color:var(--b)}
.hidden{display:none!important}

/* ---------- header ---------- */
.app-header{
  flex:none;z-index:20;
  background:linear-gradient(135deg,#0b3d55,#12607a);
  color:#fff;
  /* pad the top by the device safe area so the title clears the notch / status
     bar when installed as a full-screen app (PWA standalone) */
  padding:calc(14px + env(safe-area-inset-top,0px)) 16px 14px;
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  box-shadow:var(--shadow);
}
.app-header .brand{display:flex;flex-direction:column}
.app-header .brand b{font-size:1.15rem;letter-spacing:.5px}
.app-header .brand span{font-size:.72rem;opacity:.8;text-transform:uppercase;letter-spacing:1.5px}
.mode-pill{font-size:.62rem;padding:3px 8px;border-radius:20px;border:1px solid rgba(255,255,255,.3);
  text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}
.mode-pill.live{background:var(--green);border-color:var(--green)}
.mode-pill.demo{background:#8a6d1f;border-color:#8a6d1f}
.profile-chip{font:inherit;font-size:.72rem;color:#fff;background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.3);border-radius:20px;padding:4px 10px;cursor:pointer;white-space:nowrap}
.profile-chip:active{background:rgba(255,255,255,.25)}

/* ---------- main ---------- */
main{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;
  width:100%;max-width:760px;margin:0 auto;padding:14px 12px 24px}
.app-ver{text-align:center;color:var(--muted);opacity:.55;font-size:.66rem;letter-spacing:.5px;margin:10px 0 4px}
.view{animation:fade .18s ease}
@keyframes fade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
  box-shadow:var(--shadow);padding:16px;margin-bottom:14px}
.card h2{font-size:1.05rem}
.section-title{font-size:.74rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted);margin:18px 4px 8px}
.muted{color:var(--muted)}
.small{font-size:.82rem}
.right{text-align:right}.center{text-align:center}

/* ---------- bottom tab bar ---------- */
.tabbar{
  flex:none;z-index:30;
  background:rgba(255,255,255,.96);backdrop-filter:blur(8px);
  border-top:1px solid var(--line);
  display:grid;grid-template-columns:repeat(6,1fr);
  padding-bottom:var(--safe-b);
}
.tabbar button{
  border:none;background:none;padding:8px 2px 6px;font:inherit;color:var(--muted);
  display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;font-size:.64rem;
}
.tabbar button .ic{font-size:1.15rem;line-height:1}
.tabbar button.active{color:var(--ink);font-weight:600}
.tabbar button.active .ic{transform:translateY(-1px)}

/* ---------- leaderboard ---------- */
.score-hero{display:flex;align-items:stretch;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);margin-bottom:6px}
.score-hero .side{flex:1;padding:16px 14px;color:#fff;display:flex;flex-direction:column;gap:2px}
.score-hero .side.a{background:var(--a)}
.score-hero .side.b{background:var(--b);text-align:right;align-items:flex-end}
.score-hero.centered .side.a,.score-hero.centered .side.b{align-items:center;text-align:center;justify-content:center}
.score-hero .side .nm{font-size:.8rem;text-transform:uppercase;letter-spacing:1px;opacity:.9}
.score-hero .side .pts{font-size:2.6rem;font-weight:800;line-height:1}
.score-hero .mid{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0d1b2a;color:#fff;padding:0 10px;font-size:.7rem}
.progress{height:8px;border-radius:6px;background:var(--b);overflow:hidden;margin:8px 2px 2px}
.progress>i{display:block;height:100%;background:var(--a)}
.win-line{font-size:.76rem;color:var(--muted);text-align:center;margin-bottom:14px}
.win-line b{color:var(--ink)}

/* ---------- generic rows ---------- */
.row{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:none}
.row .grow{flex:1;min-width:0}
.badge{display:inline-block;font-size:.66rem;font-weight:700;padding:2px 7px;border-radius:20px;color:#fff;vertical-align:middle}
.badge.a{background:var(--a)}.badge.b{background:var(--b)}
.badge.win{background:var(--green)}.badge.tie{background:var(--gold)}.badge.live{background:#334;}
.chip{display:inline-block;font-size:.7rem;padding:2px 8px;border-radius:20px;background:#eef1f5;color:var(--muted);margin:2px 4px 2px 0}
.pill-toggle{display:inline-flex;border:1px solid var(--line);border-radius:20px;overflow:hidden}
.pill-toggle button{border:none;background:#fff;padding:6px 12px;font:inherit;font-size:.8rem;color:var(--muted);cursor:pointer}
.pill-toggle button.on{background:var(--ink);color:#fff}

/* ---------- match list ---------- */
.match{display:flex;align-items:center;gap:8px;padding:11px 12px;border:1px solid var(--line);
  border-radius:12px;margin-bottom:8px;background:#fff;cursor:pointer;transition:.12s}
.match:active{transform:scale(.995)}
.match .teams{flex:1;min-width:0}
.match .teams .t{display:flex;align-items:center;gap:6px;font-size:.9rem}
.match .teams .t.lead{font-weight:700}
.match .stat{text-align:right;font-size:.8rem;min-width:74px}
.match .stat .s{font-weight:800;font-size:.95rem}
.match .stat .s.a{color:var(--a)}.match .stat .s.b{color:var(--b)}
.match .chev{color:var(--muted);font-size:1.1rem}

/* ---------- scorecard ---------- */
.sc-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px}
table.sc{border-collapse:collapse;width:100%;font-size:.8rem;min-width:560px}
table.sc th,table.sc td{border:1px solid var(--line);padding:5px 4px;text-align:center;white-space:nowrap}
table.sc thead th{background:#0d1b2a;color:#fff;font-weight:600;font-size:.72rem}
table.sc .rowlabel{text-align:left;position:sticky;left:0;background:#f7f9fb;font-weight:600;z-index:1;min-width:96px}
table.sc tr.par td{background:#eef2f6;color:var(--muted);font-size:.72rem}
table.sc tr.si td{background:#f7f9fb;color:var(--muted);font-size:.68rem}
table.sc td.dot::after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;margin-left:3px;vertical-align:middle}
table.sc td.ctp{background:#fff6e6}table.sc td.ld{background:#e9f4ff}
table.sc input{width:36px;border:none;background:transparent;font:inherit;font-size:.86rem;text-align:center;padding:6px 0}
table.sc input:focus{outline:2px solid var(--b);border-radius:4px}
table.sc td.win-a{background:rgba(200,16,46,.14)}
table.sc td.win-b{background:rgba(11,61,145,.14)}
table.sc td.skin-win{background:rgba(31,122,77,.28);font-weight:700}
table.sc td.ctpld-win{background:rgba(201,162,39,.32);font-weight:700}
table.sc td.skin-win.ctpld-win{background:linear-gradient(135deg,rgba(31,122,77,.32),rgba(201,162,39,.35))}
table.sc td.sc-cell{position:relative}
.sc-dots{position:absolute;top:2px;left:3px;display:flex;gap:1.5px;pointer-events:none;z-index:2}
.sc-dot{width:4px;height:4px;border-radius:50%;background:#c8102e;display:block}
.cl-mark{position:absolute;top:0;right:1px;font-size:.6rem;line-height:1;pointer-events:none;z-index:2}
table.sc tr.winrow td{height:20px;padding:1px}
table.sc tr.winrow td.rowlabel{background:#0d1b2a;color:#fff;font-size:.68rem}
table.sc td.wcell{padding:0;border-color:#fff}
table.sc .tot{font-weight:800;background:#f7f9fb}
.legend{display:flex;flex-wrap:wrap;gap:10px;margin:8px 2px;font-size:.74rem;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:4px}
.sw{width:11px;height:11px;border-radius:3px;display:inline-block}
.sw.ctp{background:#fff6e6;border:1px solid #e6cf97}.sw.ld{background:#e9f4ff;border:1px solid #a9cef0}

/* ---------- collapsible admin sections ---------- */
details.adm-section{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;box-shadow:var(--shadow)}
details.adm-section>summary{padding:14px;font-weight:700;font-size:.95rem;list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px}
details.adm-section>summary::-webkit-details-marker{display:none}
details.adm-section>summary::after{content:"▾";margin-left:auto;color:var(--muted)}
details.adm-section[open]>summary::after{content:"▴"}
details.adm-section>.adm-body{padding:0 12px 12px}
details.adm-round{border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:#fafbfc}
details.adm-round>summary{padding:10px 12px;font-size:.9rem;cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px}
details.adm-round>summary::-webkit-details-marker{display:none}
details.adm-round>summary::before{content:"▸";color:var(--muted)}
details.adm-round[open]>summary::before{content:"▾"}
details.adm-round>.card{border:none;box-shadow:none;margin:0}

/* ---------- round status ---------- */
.status-banner{border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:.86rem;border:1px solid}
.status-banner.st-inactive{background:#eef1f5;color:#4a5563;border-color:#dde3ea}
.status-banner.st-active{background:#e7f6ee;color:#166c46;border-color:#bfe6d1}
.status-banner.st-completed{background:#fff4dc;color:#7a5a12;border-color:#e7d59a}
.st-chip{display:inline-block;font-size:.6rem;font-weight:700;padding:1px 7px;border-radius:20px;vertical-align:middle;border:1px solid}
.st-chip.st-inactive{background:#eef1f5;color:#4a5563;border-color:#dde3ea}
.st-chip.st-active{background:#e7f6ee;color:#166c46;border-color:#bfe6d1}
.st-chip.st-completed{background:#fff4dc;color:#7a5a12;border-color:#e7d59a}

/* ---------- forms ---------- */
label.fld{display:block;margin:8px 0}
label.fld span{display:block;font-size:.74rem;color:var(--muted);margin-bottom:3px}
input[type=text],input[type=number],select{
  width:100%;padding:10px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
input.mini{width:88px;display:inline-block}
.btn{display:inline-block;border:none;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;
  background:var(--ink);color:#fff;cursor:pointer}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.sm{padding:6px 10px;font-size:.82rem}
.checkline{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
.checkline input[type=checkbox]{width:20px;height:20px;accent-color:var(--green)}
.checkline .grow{flex:1}

/* ---------- player tiles ---------- */
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}
.tile{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.tile-pic{position:relative;width:100%;aspect-ratio:1/1;background:#e8edf2}
.tile-pic .photo{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}
.tile-pic .noimg{width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:2.6rem;font-weight:800;color:#fff;letter-spacing:1px}
.tile-pic .cap-flag{position:absolute;top:6px;left:6px;background:var(--gold);color:#3a2f05;
  font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:20px;box-shadow:var(--shadow)}
.tile-pic .rank-flag{position:absolute;top:6px;right:6px;background:rgba(13,27,42,.85);color:#fff;
  font-size:.62rem;font-weight:800;padding:2px 7px;border-radius:20px;box-shadow:var(--shadow)}
.tile-body{padding:8px 10px 10px}
.tile-body .nm{font-weight:700;font-size:.92rem;line-height:1.15;margin-top:4px}
.tile-body .hc{font-size:.76rem;color:var(--ink);margin-top:2px}
@media(min-width:520px){ .tile-grid{grid-template-columns:1fr 1fr 1fr} }

/* ---------- team roster ---------- */
.team-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:12px 12px 0 0;color:#fff}
.team-head.a{background:var(--a)}.team-head.b{background:var(--b)}
.team-head .nm{font-size:1.1rem;font-weight:800}
.team-head .cap{font-size:.74rem;opacity:.92}
.player-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-bottom:1px solid var(--line)}
.player-row .av{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:.74rem;font-weight:700;color:#fff;background:#8794a3;flex:none}
.player-row .hcp{font-weight:700;font-size:.9rem}
.player-row .hcp small{font-weight:400;color:var(--muted);font-size:.68rem}

/* ---------- accommodation / rooms ---------- */
.map-wrap{position:relative;display:block;width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;
  border:1px solid var(--line);background:#dfe7ee;text-decoration:none}
.map-tiles{position:absolute;inset:0}
.map-tiles .mt{position:absolute;width:256px;height:256px;max-width:none}
.map-marker{position:absolute;left:50%;top:50%;transform:translate(-50%,-100%);font-size:1.6rem;
  filter:drop-shadow(0 1px 1px rgba(0,0,0,.4));pointer-events:none}
.map-wrap .map-pin{position:absolute;left:8px;bottom:8px;background:rgba(13,27,42,.82);color:#fff;
  font-size:.72rem;font-weight:600;padding:4px 9px;border-radius:20px}
.map-wrap .map-attr{position:absolute;right:4px;bottom:3px;background:rgba(255,255,255,.7);
  font-size:.58rem;color:#333;padding:1px 4px;border-radius:4px}
a.btn{text-decoration:none;display:inline-block}
.rm-p{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:.86rem}
.rm-av{width:26px;height:26px;border-radius:50%;object-fit:cover;object-position:top center;flex:none}
.rm-av.rm-init{display:inline-flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.6rem}

/* ---------- travel (My Trip) ---------- */
.trav-row{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}
.trav-row:last-child{border-bottom:none}
.trav-lbl{font-weight:600;font-size:.85rem;min-width:92px}
.trav-row select{flex:2;min-width:120px;padding:8px}
.trav-row input[type=time]{flex:1;min-width:96px;padding:8px}

/* ---------- betting sign-in ---------- */
.signin-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.signin-btn{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid var(--line);
  border-radius:12px;background:#fff;font:inherit;cursor:pointer;text-align:left}
.signin-btn:active{background:#eef4ff}
.si-av{width:38px;height:38px;border-radius:50%;object-fit:cover;object-position:top center;flex:none}
.si-av.si-init{display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:.78rem}
.si-nm{font-size:.82rem;font-weight:600;line-height:1.12}

/* ---------- money / dues ---------- */
.money{font-variant-numeric:tabular-nums}
.big-pot{font-size:2rem;font-weight:800;color:var(--green);text-align:center;margin:4px 0}
.owe-pos{color:var(--a);font-weight:700}
.owe-neg{color:var(--green);font-weight:700}

/* ---------- countdown ---------- */
.countdown-card{padding:12px}
.cd-row{display:flex;justify-content:center;gap:8px;margin-top:8px}
.cd-unit{display:flex;flex-direction:column;align-items:center;background:#0d1b2a;color:#fff;
  border-radius:10px;padding:8px 0;flex:1;max-width:78px}
.cd-unit span{font-size:1.7rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.cd-unit small{font-size:.58rem;text-transform:uppercase;letter-spacing:1px;opacity:.8;margin-top:4px}

/* stacked label/value rows (avoids long-value overlap) */
.stack-row{padding:8px 0;border-bottom:1px solid var(--line)}
.stack-row:last-child{border-bottom:none}

/* ---------- trip info hero ---------- */
.info-hero{background:linear-gradient(135deg,#0b3d55,#127a6a);color:#fff;border-radius:var(--radius);
  padding:20px 16px;text-align:center;box-shadow:var(--shadow);margin-bottom:6px}
.info-hero h1{font-size:1.5rem;letter-spacing:.5px}

/* ---------- history ---------- */
details.histyear{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:8px;padding:0 12px}
details.histyear>summary{padding:12px 2px;font-size:.95rem;list-style:none}
details.histyear>summary::-webkit-details-marker{display:none}
details.histyear>summary::before{content:"▸";color:var(--muted);margin-right:8px}
details.histyear[open]>summary::before{content:"▾"}
details.histyear .card{border:none;box-shadow:none;padding:0 0 10px;margin:0}
.histwin{color:var(--green);font-weight:700}
.hist{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line)}
.hist .yr{font-weight:800;font-size:1.1rem;min-width:52px}
.hist .yr small{display:block;font-size:.66rem;color:var(--muted);font-weight:500}
.hist .win{font-weight:700}.hist .win .cup{color:var(--gold)}

/* ---------- misc ---------- */
.toast{position:fixed;left:50%;bottom:calc(84px + var(--safe-b));transform:translateX(-50%);
  background:#14181f;color:#fff;padding:9px 16px;border-radius:20px;font-size:.82rem;z-index:50;
  opacity:0;pointer-events:none;transition:opacity .2s}
.toast.show{opacity:.96}
.backlink{background:none;border:none;color:var(--b);font:inherit;font-weight:600;padding:6px 0;cursor:pointer;margin-bottom:6px}
details.adv{margin-top:8px}
details.adv summary{cursor:pointer;color:var(--muted);font-size:.82rem;padding:6px 0}
@media(max-width:400px){ .tabbar button{font-size:.58rem} .score-hero .side .pts{font-size:2.2rem} }

/* ===================== Fall Fishing Classic — additions ===================== */
.score-hero .mid{background:#0b3d55}
table.sc thead th{background:#0b3d55}
table.sc tr.winrow td.rowlabel{background:#0b3d55}
table.sc .rowlabel{min-width:120px}

/* home: key/value strip + record tiles */
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.kv > div{background:#f7f9fb;border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:.92rem}
ul.tight{margin:.2em 0;padding-left:1.2em}
ul.tight li{margin:.25em 0}
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.stat-row .stat{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:4px}
.stat-row .stat-n{font-size:1.5rem;font-weight:800;color:#0b3d55}
.stat-row .stat-l{font-size:.68rem;text-transform:uppercase;letter-spacing:.5px;color:var(--ink);line-height:1.3}

/* leaderboard team dot */
.dot-team{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px;vertical-align:middle}

/* big fish card */
.bigfish-card .big-n{font-size:1.7rem;font-weight:800;color:#0b3d55}
.rec-line{font-size:1.05rem;font-weight:700;color:#0b3d55;margin-top:2px}

/* weigh-in cards */
.weigh-card{padding:12px 14px}
.weigh-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
.weigh-head .day-total{font-size:1.25rem;font-weight:800;color:#0b3d55}
.weigh-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.weigh-slot{display:flex;flex-direction:column;gap:3px}
.weigh-slot .ws-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.4px;color:var(--muted)}
.weigh-slot input{width:100%;text-align:center;font-size:1.05rem;font-weight:700;padding:8px 4px;
  border:1px solid var(--line);border-radius:9px;background:#fff}
.weigh-slot input:focus{outline:2px solid #12607a}
.weigh-slot input:disabled{background:#f2f4f7;color:var(--muted)}
.weigh-slot.counts input{background:#e7f6ee;border-color:#bfe6d1}
.weigh-slot select{width:100%;padding:6px 4px;font-size:.8rem}
@media(max-width:460px){ .weigh-grid{grid-template-columns:repeat(2,1fr)} .kv,.stat-row{gap:6px} }

/* teams roster */
.roster{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}
.roster .chip{font-size:.78rem;background:#eef4f7;color:#0b3d55}

/* admin */
.admin-row{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:8px 0;flex-wrap:wrap}
.admin-team{border-left:4px solid #0b3d55;padding:10px 12px;margin:10px 0;background:#fafcfd;border-radius:10px}
.two-col{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:end}
.chip.edit{display:inline-flex;align-items:center;gap:2px;background:#eef4f7;padding:2px 4px 2px 6px}
.chip.edit input.angler-name{width:96px;border:none;background:transparent;font:inherit;font-size:.82rem;color:#0b3d55;padding:2px}
.chip.edit input.angler-name:focus{outline:1px solid #12607a;border-radius:4px}
.chip.edit .x{border:none;background:transparent;color:var(--muted);cursor:pointer;font-size:.8rem;padding:0 2px}
.fld input[type=color]{width:44px;height:38px;padding:2px;border:1px solid var(--line);border-radius:8px;background:#fff}

/* Crews tab — logo left-aligned & large (no background box) above the grid */
.crew-card{padding:14px 16px}
.crew-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}
.crew-logo-wrap{flex:none;display:flex;align-items:center}
.crew-logo{height:220px;width:auto;max-width:360px;object-fit:contain;display:block}
.crew-mono{width:220px;height:220px;border-radius:18px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:4rem;letter-spacing:2px}
.crew-head .crew-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.crew-head .crew-name{font-size:1.35rem;line-height:1.1}
@media(max-width:460px){
  .crew-logo{height:130px;max-width:190px}
  .crew-mono{width:130px;height:130px;font-size:2.4rem}
  .crew-head .crew-name{font-size:1.15rem}
}

/* Crew-member photo tiles reuse the .tile / .tile-pic / .tile-body system
   (square photos, name, captain star) — same structure as the golf app.
   Three across on the Crews tab so the crew fits at a glance. */
.crew-card .tile-grid{grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:0}
.crew-card .tile-body{padding:5px 7px 7px}
.crew-card .tile-body .nm{font-size:.78rem}
@media(max-width:460px){ .crew-card .tile-grid{grid-template-columns:repeat(3,1fr)} }

/* 6 tabs — comfortable sizing */
.tabbar button{font-size:.6rem}
.tabbar button .ic{font-size:1.12rem}
@media(max-width:360px){ .tabbar button{font-size:.56rem} }

/* Leaderboard — big, readable table (all crews at a glance) */
.lb-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px;box-shadow:var(--shadow)}
.lb-tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.lb-tbl thead th{background:#0b3d55;color:#fff;font-size:.8rem;font-weight:600;padding:11px 6px;text-align:center;white-space:nowrap}
.lb-tbl thead th.lb-crewcol{text-align:left;padding-left:14px}
.lb-tbl thead th.lb-totcol{font-size:.88rem}
.lb-tbl td{padding:11px 6px;text-align:center;border-top:1px solid var(--line);font-size:1rem;white-space:nowrap}
.lb-tbl td.lb-crewcol{text-align:left;padding-left:14px;font-weight:700;font-size:1.05rem}
.lb-tbl td.lb-totcol{font-size:1.28rem;font-weight:800;color:#0b3d55}
.lb-tbl td.lb-behindcol{font-size:.9rem}
.lb-tbl tbody tr.leader{background:#fffdf3}
.lb-tbl tbody tr.leader td.lb-totcol{color:#0b3d55}
.lb-rank{display:inline-block;min-width:20px;font-weight:800;color:var(--muted)}
.lb-tbl tr.leader .lb-rank{color:var(--gold)}
.lb-ic{font-size:.82em;margin-left:1px}
.lb-dot{width:13px;height:13px;border-radius:50%;display:inline-block;margin:0 8px 0 2px;vertical-align:middle}

/* Big Fish — biggest + next closest */
.bigfish-next{display:flex;align-items:center;gap:8px;justify-content:space-between;
  margin-top:12px;padding-top:12px;border-top:1px dashed var(--line);font-size:.9rem}
.bigfish-next span:nth-child(2){flex:1;min-width:0}
@media(max-width:460px){
  .lb-tbl td{padding:9px 2px;font-size:.8rem}
  .lb-tbl td.lb-crewcol{font-size:.86rem;padding-left:8px;padding-right:3px;white-space:normal;line-height:1.12}
  .lb-tbl td.lb-crewcol .lb-crewnm{display:inline}
  .lb-tbl td.lb-totcol{font-size:1rem}
  .lb-tbl td.lb-behindcol{font-size:.8rem;padding-right:7px}
  .lb-tbl thead th{padding:8px 2px;font-size:.72rem}
  .lb-tbl thead th.lb-crewcol{padding-left:8px}
  .lb-rank{min-width:13px;margin-right:1px}
  .lb-ic{font-size:.72em;margin-left:0}
}

/* Weigh-In — bigger, tap-friendly inputs */
.pill-days{display:flex;width:100%}
.pill-days button{flex:1;padding:10px 6px;font-size:.9rem}
.weigh-slot input{font-size:1.25rem;padding:14px 6px;border-radius:11px}
.weigh-slot input:disabled{background:#f2f4f7;color:var(--muted)}

/* Weigh-In — day big fish banner (auto + cross-day look-back) */
.day-bigfish{padding:14px 16px}
.day-bigfish .dbf-row{display:flex;align-items:center;gap:12px}
.day-bigfish .dbf-emoji{font-size:1.9rem;flex:none}
.day-bigfish .dbf-main{flex:1;min-width:0}
.day-bigfish .dbf-wt{font-size:1.35rem;font-weight:800;color:#0b3d55;line-height:1.1}
.day-bigfish .dbf-badges{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
.day-bigfish .dbf-prior{margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.bf-badge{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;
  padding:3px 8px;border-radius:20px;color:#fff;white-space:nowrap}

/* Weigh-In — per-crew big fish tagger */
.weigh-bigfish{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.weigh-bigfish.bf-empty{border-top-style:solid}
.bf-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:9px}
.bf-lead{font-size:.95rem}
.bf-wt{font-weight:800;color:#0b3d55}
.bf-caught{font-size:.88rem;color:var(--green)}
.bf-prompt{font-size:.85rem;color:var(--a);font-weight:600}
.bf-anglers{display:flex;flex-wrap:wrap;gap:8px}
.bf-chip{border:1px solid var(--line);background:#fff;border-radius:22px;padding:9px 15px;
  font:inherit;font-size:.9rem;cursor:pointer;color:var(--ink);min-height:40px}
.bf-chip.on{color:#fff;font-weight:700}
.bf-chip:disabled{opacity:.6;cursor:default}

/* Home — countdown */
.countdown-card{text-align:center;background:linear-gradient(135deg,#0b3d55,#12607a);color:#fff;border:none}
.countdown-card .cd-title{font-size:.98rem;font-weight:700;letter-spacing:.3px;margin-bottom:12px}
.countdown-card .cd-row{display:flex;justify-content:center;gap:8px}
.cd-unit{background:rgba(255,255,255,.13);border-radius:12px;padding:10px 0;min-width:66px;display:flex;flex-direction:column;gap:2px}
.cd-unit span{font-size:2rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.cd-unit small{font-size:.6rem;text-transform:uppercase;letter-spacing:1px;opacity:.85}
.countdown-card .cd-date{margin-top:12px;font-size:.82rem;opacity:.92;letter-spacing:.5px}

/* Home — standings strip */
.standings-strip{display:flex;align-items:center;gap:16px;cursor:pointer;padding:12px 16px}
.standings-strip .ss-item{display:flex;align-items:center;gap:6px;font-size:.92rem;white-space:nowrap}
.standings-strip .ss-rank{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.standings-strip .ss-rank.gold{color:var(--gold)}
.standings-strip .ss-caret{margin-left:auto;color:var(--muted);font-size:1.3rem}
.standings-strip .lb-dot{width:11px;height:11px;margin:0}

/* Home — destination photo */
.dest-card{padding:0;overflow:hidden}
.dest-photo{position:relative;width:100%;aspect-ratio:16/9;background:#0b3d55}
.dest-photo img{width:100%;height:100%;object-fit:cover;display:block}
.dest-photo.noimg{background:linear-gradient(135deg,#0b3d55,#127a6a)}
.dest-photo.noimg img{display:none}
.dest-overlay{position:absolute;left:0;right:0;bottom:0;padding:18px 16px 12px;color:#fff;
  background:linear-gradient(transparent,rgba(0,0,0,.7))}
.dest-loc{font-size:1.3rem;font-weight:800;text-shadow:0 1px 5px rgba(0,0,0,.55)}
.dest-dates{font-size:.86rem;opacity:.97;text-shadow:0 1px 4px rgba(0,0,0,.55)}
.dest-tag{margin:12px 16px;font-size:.92rem}

/* Home — weather (current + 5-day) */
.wx-card{padding:14px 16px}
.wx-now{display:flex;align-items:center;gap:14px;padding-bottom:13px;border-bottom:1px solid var(--line);margin-bottom:13px}
.wx-emoji{font-size:2.7rem;line-height:1}
.wx-temp{font-size:2.3rem;font-weight:800;color:#0b3d55;line-height:1}
.wx-temp .wx-unit{font-size:1rem;color:var(--muted);font-weight:600}
.wx-meta{font-size:.95rem;line-height:1.3}
.wx-days{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}
.wx-day{display:flex;flex-direction:column;align-items:center;gap:3px;padding:9px 2px;border-radius:11px;background:#f4f7f9}
.wx-dow{font-size:.72rem;font-weight:700;color:var(--muted)}
.wx-ic{font-size:1.55rem;line-height:1}
.wx-hi{font-size:.98rem;font-weight:800;color:#0b3d55}
.wx-lo{font-size:.8rem;color:var(--muted)}
.wx-pop{font-size:.64rem;color:#1b6ca8;white-space:nowrap}
.wx-pop.faint{opacity:.35}

/* Home — crews logo grid */
.home-crews{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
.hc-item{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:12px 6px;display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center}
.hc-logo{width:74px;height:74px;object-fit:contain;display:block}
.hc-mono{width:64px;height:64px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-weight:800;font-size:1.3rem}
.hc-name{font-size:.72rem;font-weight:600;line-height:1.15;color:var(--ink)}
@media(max-width:380px){ .home-crews{gap:8px} .hc-logo{width:62px;height:62px} }

/* Crews — reigning champ badge (top-right corner of the box) */
.crew-card{position:relative}
.champ-ribbon{position:absolute;top:12px;right:14px;z-index:2;
  background:linear-gradient(135deg,#c9a227,#e6c34d);color:#3a2f05;
  font-weight:800;font-size:.72rem;letter-spacing:.3px;padding:5px 11px;border-radius:20px;
  box-shadow:var(--shadow);white-space:nowrap}

/* Location — aerial view below the photo */
.dest-aerial{position:relative;margin:0 16px 16px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.dest-aerial img{width:100%;display:block}
.dest-aerial-cap{position:absolute;top:8px;left:8px;background:rgba(11,61,85,.85);color:#fff;
  font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:3px 8px;border-radius:6px}

/* Newsletter tab — index cards + in-app reader */
.nl-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.nl-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:0;overflow:hidden;cursor:pointer;text-align:left;font:inherit;
  display:flex;flex-direction:column}
.nl-card:active{transform:scale(.995)}
.nl-cover{width:100%;display:block;border-bottom:1px solid var(--line);background:#eef2f6}
.nl-year{position:absolute;top:8px;left:8px;background:#0b3d55;color:#fff;font-weight:800;font-size:.8rem;
  padding:3px 10px;border-radius:20px;box-shadow:var(--shadow)}
.nl-card-meta{display:flex;flex-direction:column;gap:2px;padding:10px 12px}
.nl-card-meta b{font-size:.95rem}

.nl-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px;
  position:sticky;top:0;z-index:5}
.nl-bar-title{font-weight:800;color:#0b3d55;font-size:.95rem}
.nl-reader{display:flex;flex-direction:column;gap:10px;border-radius:12px;overflow:hidden}
.nl-page{width:100%;display:block;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);background:#fff}

/* Leaderboard — record breakers */
.lb-tbl td.rec-hit{background:#fff3cf}
.lb-tbl td.lb-totcol.rec-hit{background:#ffedb0}
.records-broken{border:1px solid var(--gold);background:linear-gradient(135deg,#fffdf3,#fff4d4)}
.records-broken .rb-head{font-weight:800;color:#8a6d1f;font-size:1.05rem;margin-bottom:6px}
.rb-row{display:flex;gap:11px;align-items:flex-start;padding:9px 0;border-top:1px solid rgba(201,162,39,.3)}
.rb-row:first-of-type{border-top:none}
.rb-ic{font-size:1.5rem;line-height:1;flex:none}
.rb-body{flex:1;min-width:0}
.rb-body>b{color:#0b3d55}
.rb-prev{font-size:.72rem;color:var(--muted)}

/* Home records — broken-record highlight */
.stat.broke{background:linear-gradient(135deg,#fffdf3,#fff4d4);border-color:var(--gold);position:relative;padding-top:20px}
.stat.broke .stat-n{color:#8a6d1f}
.stat.broke .stat-badge{position:absolute;top:6px;left:0;right:0;text-align:center;
  font-size:.56rem;font-weight:800;letter-spacing:.3px;color:#8a6d1f;text-transform:uppercase}

/* Home records — icon atop each record tile */
.stat-ic{font-size:1.4rem;line-height:1;margin-bottom:3px}

/* Crews — years-won line under the boat name */
.crew-titles{font-size:.78rem;font-weight:700;color:#8a6d1f;line-height:1.25}
.crew-titles.none{color:var(--muted);font-weight:500}

/* Records — champions & big-fish history lists */
.title-tally{display:flex;flex-wrap:wrap;gap:8px}
.tt-chip{background:#fff6d9;border:1px solid #ecd79a;border-radius:20px;padding:5px 11px;font-size:.82rem;color:#6b5510}
.champ-list{padding:4px 6px}
.champ-row{display:flex;gap:12px;align-items:flex-start;padding:9px 4px;border-top:1px solid var(--line)}
.champ-row:first-child{border-top:none}
.cr-year{font-weight:800;color:#0b3d55;min-width:42px;font-variant-numeric:tabular-nums}
.cr-main{flex:1;min-width:0}

/* Rules tab */
details.rule-sec{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;box-shadow:var(--shadow)}
details.rule-sec>summary{list-style:none;cursor:pointer;padding:14px 16px;font-size:.98rem;display:flex;align-items:center;gap:8px}
details.rule-sec>summary::-webkit-details-marker{display:none}
details.rule-sec>summary::after{content:"▾";margin-left:auto;color:var(--muted)}
details.rule-sec[open]>summary::after{content:"▴"}
.rule-body{padding:0 16px 12px}
.rule-sub{padding:10px 0;border-top:1px solid var(--line)}
.rule-sub:first-child{border-top:none}
.rule-sub-title{font-weight:800;color:#0b3d55;font-size:.92rem;margin-bottom:4px}
.rule-p{margin:4px 0 6px;font-size:.9rem}
.rule-list{margin:2px 0;padding-left:1.15em}
.rule-list li{margin:4px 0;font-size:.9rem;line-height:1.4}
.rule-list li.rule-del{list-style:none;margin-left:-1.15em;color:var(--muted);font-weight:700;font-size:.78rem;letter-spacing:1px}

/* profile chip now opens Admin */
.chip-gear{font-size:.72em;opacity:.75;margin-left:1px}

/* Records — big, distinct segmented sub-tabs (easy to tap on a phone) */
.seg-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:4px 0 16px}
.seg-tabs button{border:1.5px solid var(--line);background:#fff;border-radius:12px;
  padding:13px 8px;font:inherit;font-size:.9rem;font-weight:700;color:var(--muted);
  cursor:pointer;min-height:48px;box-shadow:var(--shadow);transition:.1s}
.seg-tabs button:active{transform:scale(.97)}
.seg-tabs button.on{background:#0b3d55;color:#fff;border-color:#0b3d55}
@media(min-width:560px){ .seg-tabs{grid-template-columns:repeat(4,1fr)} }

/* Profile picker — boat headings with logo */
.pp-boat-hd{display:flex;align-items:center;gap:9px;margin:18px 4px 8px;font-weight:800;color:#0b3d55;font-size:1rem}
.pp-boat-logo{width:32px;height:32px;object-fit:contain;flex:none}

/* Crews tab — logo grid (tap a boat to open its roster) */
.crews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.crew-tile{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);
  padding:14px 6px;display:flex;flex-direction:column;align-items:center;gap:7px;cursor:pointer;font:inherit;text-align:center}
.crew-tile:active{transform:scale(.98)}
.crew-tile .hc-logo,.crew-tile .hc-mono{width:80px;height:80px}
.crew-tile-name{font-size:.78rem;font-weight:700;color:var(--ink);line-height:1.15}
.crew-tile-sub{font-size:.68rem;color:var(--muted)}
@media(max-width:380px){ .crews-grid{gap:8px} .crew-tile .hc-logo,.crew-tile .hc-mono{width:66px;height:66px} }

/* Crews grid — reigning-champ trophy on the tile */
.crew-tile{position:relative}
.crew-tile.champ{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold),var(--shadow)}
.crew-tile-champ{position:absolute;top:6px;right:8px;font-size:1.15rem}
