:root{
  --font-head:'Zilla Slab',Georgia,serif;
  --font-body:'Inter',system-ui,sans-serif;
  /* British carp lake palette: muted greens, water blues, tea-brown earth */
  --bg:#1c241f;            /* deep weathered green-black */
  --bg2:#222b24;
  --panel:#2a342c;
  --panel2:#313d33;
  --border:#3e4c40;
  --border-light:#4c5c4e;
  --text:#e6ecdf;
  --text-muted:#9caa96;
  --water:#3f6f7a;         /* lake blue */
  --water-deep:#2c545e;
  --earth:#6b5436;         /* tea brown */
  --earth-light:#8a6e44;
  --moss:#5f7a45;
  --moss-light:#7a9658;
  --gold:#c79a3e;          /* specimen gold */
  --danger:#b5503e;
  --warn:#c98a3c;
  --good:#6f9a52;
  --radius:10px;
  --radius-sm:6px;
  --shadow:0 6px 20px rgba(0,0,0,.32);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:var(--font-body);
  background:
    radial-gradient(900px 500px at 80% -10%, rgba(63,111,122,.18), transparent 60%),
    radial-gradient(700px 500px at 10% 110%, rgba(107,84,54,.18), transparent 55%),
    var(--bg);
  color:var(--text);
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
#app{max-width:1180px;margin:0 auto;padding:0 16px 80px}

/* topbar */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 4px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:12px;color:var(--moss-light)}
.brand h1{font-family:var(--font-head);font-size:24px;font-weight:700;letter-spacing:.3px;color:var(--text);line-height:1}
.lake-title{font-size:12.5px;color:var(--gold);font-weight:600;letter-spacing:.4px;text-transform:uppercase}
.topstats{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tstat{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);
  padding:6px 11px;min-width:84px}
.tstat .k{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.tstat .v{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;line-height:1.15}
.tstat .v small{font-size:11px;color:var(--text-muted);font-weight:500}

/* tabs */
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--border);margin-bottom:18px}
.tabs button{background:none;border:none;color:var(--text-muted);font-family:var(--font-body);
  font-size:14px;font-weight:600;padding:10px 14px;cursor:pointer;border-bottom:2.5px solid transparent;
  transition:color .15s,border-color .15s}
.tabs button:hover{color:var(--text)}
.tabs button.active{color:var(--moss-light);border-bottom-color:var(--moss-light)}

/* panels & grid */
.grid{display:grid;gap:16px}
.cols-3{grid-template-columns:repeat(3,1fr)}
.cols-2{grid-template-columns:repeat(2,1fr)}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);
  padding:16px;box-shadow:var(--shadow)}
.panel h2,.panel h3{font-family:var(--font-head);font-weight:600;color:var(--text)}
.panel h2{font-size:18px;margin-bottom:12px}
.panel h3{font-size:15px;margin-bottom:8px}
.section-title{font-family:var(--font-head);font-size:20px;font-weight:700;margin:6px 0 14px;
  display:flex;align-items:center;gap:10px}
.section-title .hint{font-family:var(--font-body);font-size:12.5px;color:var(--text-muted);font-weight:400}

/* dashboard meters */
.meter{margin-bottom:14px}
.meter .label{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}
.meter .label b{font-variant-numeric:tabular-nums}
.bar{height:11px;background:#1a221c;border-radius:6px;overflow:hidden;border:1px solid var(--border)}
.bar > i{display:block;height:100%;border-radius:6px;transition:width .4s ease}
.bar.good > i{background:linear-gradient(90deg,var(--good),var(--moss-light))}
.bar.warn > i{background:linear-gradient(90deg,var(--warn),#d8a24e)}
.bar.danger > i{background:linear-gradient(90deg,var(--danger),#cf6a55)}
.bar.water > i{background:linear-gradient(90deg,var(--water-deep),var(--water))}

.chem-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:10px}
.chem{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;text-align:center}
.chem .ck{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}
.chem .cv{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.chem .cu{font-size:11px;color:var(--text-muted)}
.chem.ok .cv{color:var(--good)} .chem.bad .cv{color:var(--danger)} .chem.mid .cv{color:var(--warn)}

.countdown{font-variant-numeric:tabular-nums;font-weight:700}
.bignum{font-family:var(--font-head);font-size:30px;font-weight:700;line-height:1}
.muted{color:var(--text-muted)}
.tiny{font-size:12px}

/* buttons */
.btn{font-family:var(--font-body);font-weight:600;font-size:13.5px;border-radius:var(--radius-sm);
  border:1px solid var(--border-light);background:var(--panel2);color:var(--text);
  padding:9px 14px;cursor:pointer;transition:transform .1s,background .15s,border-color .15s}
.btn:hover{background:#3a473c}
.btn:active{transform:translateY(1px)}
.btn.primary{background:var(--moss);border-color:var(--moss-light);color:#0f1610}
.btn.primary:hover{background:var(--moss-light)}
.btn.gold{background:var(--gold);border-color:#dcae5a;color:#241c08}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn.sm{padding:6px 10px;font-size:12.5px}

/* log feed */
.logfeed{max-height:340px;overflow:auto;display:flex;flex-direction:column;gap:7px}
.logitem{font-size:13px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--panel2);
  border-left:3px solid var(--border-light)}
.logitem .lw{color:var(--text-muted);font-size:11px;font-variant-numeric:tabular-nums}
.logitem.event{border-left-color:var(--warn)}
.logitem.catch{border-left-color:var(--gold)}
.logitem.mystery{border-left-color:var(--water)}
.logitem.pike{border-left-color:var(--danger)}

/* lake map */
.mapwrap{position:relative;width:100%;border-radius:var(--radius);overflow:hidden;border:1px solid var(--border)}
.mapwrap svg{display:block;width:100%;height:auto}
.swim-label{font-family:var(--font-body);font-size:2.2px;fill:var(--text);font-weight:600;pointer-events:none;paint-order:stroke;stroke:#1d251f;stroke-width:0.5px}
.legend{display:flex;gap:14px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--text-muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.legend i{width:12px;height:12px;border-radius:3px;display:inline-block}

/* ledger cards */
.ledger-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:14px}
@media (max-width: 720px){
  .ledger-grid{grid-template-columns:1fr}
  .spec-card .spec-head{flex-direction:column}
  .spec-card .portrait{width:100%}
}
.spec-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}
.spec-card .portrait{background:linear-gradient(180deg,#26302a,#1d251f);padding:6px;display:flex;justify-content:center}
.spec-card .meta{padding:10px 12px}
.spec-card .nm{font-family:var(--font-head);font-size:16px;font-weight:600}
.spec-card .wt{font-size:22px;font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums;line-height:1.1}
.spec-card .sp{font-size:12px;color:var(--text-muted)}
.spec-card .hist{margin-top:6px;font-size:11.5px;color:var(--text-muted);max-height:78px;overflow:auto}
.spec-card .hist div{padding:2px 0;border-top:1px dashed var(--border)}

/* atlas */
.atlas-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.atlas-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);padding:10px;text-align:center}
.atlas-card.locked{opacity:.85}
.atlas-card .nm{font-family:var(--font-head);font-size:14px;font-weight:600;margin-top:4px}
.atlas-card .bl{font-size:11.5px;color:var(--text-muted);margin-top:3px;min-height:30px}
.atlas-card .tag{display:inline-block;font-size:10px;padding:2px 7px;border-radius:10px;margin-top:4px;font-weight:700;text-transform:uppercase;letter-spacing:.4px}
.tag.found{background:rgba(111,154,82,.25);color:var(--moss-light)}
.tag.unknown{background:rgba(120,127,134,.2);color:var(--text-muted)}
.tag.rare{background:rgba(199,154,62,.22);color:var(--gold)}

/* shop */
.shop-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel2);
  border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:10px}
.shop-row .info .nm{font-weight:600;font-size:14.5px}
.shop-row .info .ef{font-size:12.5px;color:var(--text-muted)}
.shop-row .right{text-align:right;display:flex;flex-direction:column;gap:6px;align-items:flex-end;min-width:120px}
.price{font-weight:700;font-variant-numeric:tabular-nums;color:var(--gold)}
.owned{font-size:12px;color:var(--good);font-weight:600}
.cat-head{font-family:var(--font-head);font-size:16px;font-weight:600;margin:14px 0 8px;color:var(--moss-light)}

/* survey */
.survey-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}
.survey-card .nm{font-family:var(--font-head);font-size:16px;font-weight:600}
.survey-card .d{font-size:13px;color:var(--text-muted);margin:6px 0 10px}

/* modal */
#modal-root:empty{display:none}
.modal-bg{position:fixed;inset:0;background:rgba(8,12,9,.72);display:flex;align-items:center;justify-content:center;z-index:100;padding:20px;overflow-y:auto;-webkit-overflow-scrolling:touch}
/* v11.0.1: modal now scrolls inside the viewport on small screens so the
   Start/Confirm button at the bottom of long modals (e.g. New Game with
   difficulty cards) is always reachable on iPhone Safari. */
.modal{background:var(--panel);border:1px solid var(--border-light);border-radius:var(--radius);max-width:540px;width:100%;box-shadow:var(--shadow);max-height:calc(100vh - 40px);overflow-y:auto;-webkit-overflow-scrolling:touch;animation:pop .3s ease}
@keyframes pop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.modal .mbody{padding:22px}
.modal h2{font-family:var(--font-head);font-size:22px;margin-bottom:8px}
.modal .mfoot{padding:14px 22px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:8px;background:var(--bg2)}

/* newspaper ceremony */
.newspaper{background:#e9e3d2;color:#221c12;font-family:var(--font-head);padding:26px;border:6px double #3b321f}
.newspaper .masthead{text-align:center;border-bottom:3px solid #221c12;padding-bottom:8px;margin-bottom:12px}
.newspaper .masthead .title{font-size:30px;font-weight:700;letter-spacing:1px}
.newspaper .masthead .sub{font-size:11px;letter-spacing:3px;text-transform:uppercase;font-family:var(--font-body)}
.newspaper .headline{font-size:24px;font-weight:700;line-height:1.15;margin:10px 0;text-align:center}
.newspaper .lede{font-family:var(--font-body);font-size:13.5px;column-count:1;text-align:justify}
.newspaper .tierbadge{display:inline-block;background:#221c12;color:#e9e3d2;font-family:var(--font-body);
  font-size:11px;font-weight:700;letter-spacing:1px;padding:3px 10px;border-radius:3px;text-transform:uppercase}

/* toast */
.toast-stack{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:90;width:min(520px,92vw)}
.toast{background:var(--panel);border:1px solid var(--border-light);border-left:4px solid var(--moss-light);
  border-radius:var(--radius-sm);padding:11px 14px;box-shadow:var(--shadow);font-size:13.5px;animation:slideup .3s ease}
.toast.event{border-left-color:var(--warn)} .toast.catch{border-left-color:var(--gold)}
.toast.danger{border-left-color:var(--danger)} .toast.good{border-left-color:var(--good)}
.toast.warn{border-left-color:var(--warn)}
.toast .tt{font-weight:700;font-family:var(--font-head);font-size:14.5px}
@keyframes slideup{from{transform:translateY(14px);opacity:0}to{transform:translateY(0);opacity:1}}

/* angling overlay */
.angle-stage{position:relative;height:300px;border-radius:var(--radius);overflow:hidden;
  background:linear-gradient(180deg,#5a7c6a 0%,#3f6f7a 45%,#2c545e 100%);border:1px solid var(--border)}
.bobber{position:absolute;width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e8e2d2,#b5503e 60%,#7a2f22);
  border:2px solid #2b211a;transition:top .3s;cursor:pointer;box-shadow:0 4px 10px rgba(0,0,0,.4)}
.bobber.bite{animation:bite .35s infinite alternate}
@keyframes bite{from{transform:translateY(0)}to{transform:translateY(10px)}}
.angle-msg{position:absolute;top:10px;left:0;right:0;text-align:center;font-family:var(--font-head);font-size:16px;
  font-weight:600;text-shadow:0 1px 4px rgba(0,0,0,.6)}

.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.spacer{flex:1}
input[type=text]{background:var(--panel2);border:1px solid var(--border-light);color:var(--text);
  border-radius:var(--radius-sm);padding:8px 10px;font-family:var(--font-body);font-size:14px;width:100%}
.empty{text-align:center;color:var(--text-muted);padding:36px 16px;font-size:14px}
.pill{display:inline-block;font-size:11px;padding:2px 8px;border-radius:10px;background:var(--panel2);border:1px solid var(--border);color:var(--text-muted)}

@media(max-width:760px){
  .cols-3{grid-template-columns:1fr} .cols-2{grid-template-columns:1fr}
  .topstats{width:100%;justify-content:space-between}
  .tstat{flex:1;min-width:0}
}

/* ===== v2: lake switcher, pricing, bait shop, portfolio ===== */

/* Lake switcher chips in the top bar (Feature 1) */
.lake-switcher{display:flex;gap:6px;flex-wrap:wrap;margin-left:14px}
.lk-chip{display:flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:12.5px;font-weight:600;
  background:var(--panel2);border:1px solid var(--border);color:var(--text-muted);
  border-radius:var(--radius-sm);padding:5px 10px;cursor:pointer;transition:.12s}
.lk-chip:hover{background:#3a473c;color:var(--text)}
.lk-chip.active{background:var(--moss);border-color:var(--moss-light);color:#0f1610}
.lk-chip .lk-tier{font-size:10.5px;font-weight:700;opacity:.8;background:rgba(0,0,0,.18);border-radius:8px;padding:1px 5px}
.lk-chip.active .lk-tier{background:rgba(0,0,0,.18)}

/* standalone tier badge (portfolio) */
.tierbadge.sm{display:inline-block;background:#221c12;color:#e9e3d2;font-family:var(--font-body);
  font-size:11px;font-weight:700;letter-spacing:.4px;padding:3px 9px;border-radius:10px;text-transform:uppercase}

/* Day-ticket pricing controls (Feature 2) */
.price-box{margin-top:12px;padding:11px 12px;background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-sm)}
.price-box.compact{margin-top:8px;padding:9px 10px}
.price-label{font-weight:600;font-size:13.5px}
.price-val{font-family:var(--font-head);font-weight:700;color:var(--gold);font-size:16px}
.price-proj{justify-content:space-between;margin-top:8px;gap:8px}
.price-box input[type=range],.bait-row input[type=range]{width:100%;margin:8px 0 2px;accent-color:var(--moss-light);cursor:pointer}
.demand-chip{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:3px 9px;border-radius:10px;border:1px solid var(--border)}
.demand-chip.good{background:rgba(111,154,82,.22);color:var(--moss-light);border-color:var(--moss)}
.demand-chip.danger{background:rgba(181,80,62,.22);color:#d98570;border-color:var(--danger)}
.demand-chip.gold{background:rgba(199,154,62,.22);color:var(--gold);border-color:var(--gold)}

/* Bait shop (Feature 3) */
.shop-note{font-size:12.5px;line-height:1.5;background:rgba(63,111,122,.16);border:1px solid var(--water);
  border-radius:var(--radius-sm);padding:9px 11px;color:#bcd4d8;margin-bottom:12px}
.shop-note b{color:#e0eef0}
.bait-row{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 12px;margin-bottom:10px;transition:.12s}
.bait-row.on{border-color:var(--moss);box-shadow:inset 0 0 0 1px rgba(95,122,69,.4)}
.bait-row.locked{opacity:.55}
.bait-row .nm{font-weight:600;font-size:14.5px;font-family:var(--font-head)}
.bait-row .ef{font-size:12.5px;color:var(--text-muted);margin:3px 0}
.bonus-tag{font-size:10.5px;font-weight:700;color:var(--gold);background:rgba(199,154,62,.16);border-radius:8px;padding:1px 6px;margin-left:4px;vertical-align:middle}
.stock-toggle{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--text-muted);cursor:pointer;user-select:none}
.stock-toggle input{accent-color:var(--moss-light);width:15px;height:15px}

/* Portfolio + lakes for sale (Feature 1) */
.port-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.port-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);padding:13px}
.port-card.active{border-color:var(--moss-light);box-shadow:inset 0 0 0 1px rgba(122,150,88,.45)}
.port-name{font-family:var(--font-head);font-size:17px;font-weight:700;line-height:1.1}
.port-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}
.port-stats > div{display:flex;flex-direction:column}
.port-stats .k{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px}
.port-stats .v{font-family:var(--font-head);font-size:18px;font-weight:700}
.port-stats .v small{font-size:11px;color:var(--text-muted);font-weight:500}
.sale-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.sale-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}
.sale-card.owned{opacity:.7}
.sale-card .ef{font-size:13px;color:var(--text-muted);line-height:1.5;margin:2px 0 8px}
.sale-traits{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.sale-traits .trait{font-size:11px;font-weight:600;background:var(--panel);border:1px solid var(--border);border-radius:9px;padding:2px 8px;color:var(--text-muted)}

/* ---- Drag-Netting panel (v3) ---- */
.dragnet-panel h3{font-family:var(--font-head);font-size:14px;font-weight:600;margin:0 0 8px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.net-field{margin-bottom:14px}
.net-field input[type=range]{width:100%;margin:6px 0 2px;accent-color:var(--moss-light);cursor:pointer}
.net-species-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.net-species{display:inline-flex;align-items:center;gap:5px;font-size:12px;background:var(--panel2);
  border:1px solid var(--border);border-radius:9px;padding:4px 9px;cursor:pointer;color:var(--text-muted);user-select:none}
.net-species input{accent-color:var(--moss-light);cursor:pointer;margin:0}
.net-species.on{color:var(--text);border-color:var(--moss);background:rgba(111,154,82,.16)}
.net-species.toggle-all{font-weight:600}
.net-mode-btn{font-family:var(--font-body);font-size:11.5px;font-weight:600;border:1px solid var(--border);
  background:var(--panel2);color:var(--text-muted);border-radius:6px;padding:3px 9px;cursor:pointer;margin-left:4px}
.net-mode-btn.on{background:var(--moss);border-color:var(--moss-light);color:#0f1610}
.net-note{margin-top:6px;color:var(--gold);background:rgba(199,154,62,.1);border:1px solid rgba(199,154,62,.3);
  border-radius:var(--radius-sm);padding:6px 9px}
.net-stat{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--border);font-size:13px}
.net-stat:last-child{border-bottom:none}
.net-stat .k{color:var(--text-muted);flex:0 0 auto}
.net-stat .v{text-align:right;font-variant-numeric:tabular-nums}
.net-stat .v.over{color:var(--danger)}
.net-stat .v.net-cost{color:var(--danger)}
.net-stat .v.net-sale{color:var(--good)}
.net-stat .v.net-pos{color:var(--good);font-weight:700}
.net-stat .v.net-neg{color:var(--danger);font-weight:700}
/* the Net line is the headline number — give it a touch more weight + a solid rule above */
.net-stat.net-stat-net{border-top:1px solid var(--border);margin-top:1px;padding-top:9px;font-size:14px}
.net-stat.net-stat-net .k{font-weight:600;color:var(--text)}
.net-stat.net-stat-net .v{font-size:15px}
#runNetBtn{flex:1;font-size:14px}
.net-run-row{flex-wrap:nowrap}
/* Estimated-net chip beside the Run Net button */
.net-chip{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:5px;font-size:13px;font-variant-numeric:tabular-nums;
  border-radius:10px;padding:7px 11px;border:1px solid var(--border);white-space:nowrap}
.net-chip .net-chip-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--text-muted)}
.net-chip b{font-weight:700}
.net-chip-pos{background:rgba(111,154,82,.16);border-color:var(--good)}
.net-chip-pos b{color:var(--good)}
.net-chip-neg{background:rgba(181,80,62,.16);border-color:var(--danger)}
.net-chip-neg b{color:var(--danger)}
/* general profit/loss text helpers (used in modal + log) */
.net-pos{color:var(--good)} .net-neg{color:var(--danger)}
/* collapsible sale-price reference */
.net-prices{margin-top:10px;border-top:1px dashed var(--border);padding-top:8px}
.net-prices summary{cursor:pointer;color:var(--text-muted);user-select:none}
.net-prices summary:hover{color:var(--text)}
.net-price-grid{display:flex;flex-direction:column;gap:3px;margin-top:7px}
.net-price-row{display:flex;justify-content:space-between;gap:10px;color:var(--text-muted)}
.net-price-row .price-val{color:var(--gold);font-weight:600;font-variant-numeric:tabular-nums}
.logitem.dragnet{border-left-color:var(--earth-light)}
.logitem.staff{border-left-color:var(--moss-light)}

/* ---- Staff hiring (v3) ---- */
.staff-row{display:flex;gap:12px;align-items:flex-start;background:var(--panel2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:11px 12px;margin-bottom:10px}
.staff-row.locked{opacity:.6}
.staff-row.employed{border-left:3px solid var(--moss)}
.staff-av{flex:0 0 auto;width:42px;height:42px;border-radius:8px;background:linear-gradient(180deg,#26302a,#1d251f);
  border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--moss-light)}
.staff-info{flex:1;min-width:0}
.staff-info .nm{font-family:var(--font-head);font-size:15px;font-weight:600}
.staff-info .wage{font-weight:700;color:var(--gold);font-variant-numeric:tabular-nums;font-size:13px}
.staff-info .ef{font-size:12.5px;color:var(--text-muted);margin-top:2px}
.staff-effects{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.staff-effects .trait{font-size:11px;font-weight:600;background:var(--panel);border:1px solid var(--border);
  border-radius:9px;padding:2px 8px;color:var(--text-muted)}
.senior-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--gold);
  background:rgba(199,154,62,.18);border:1px solid var(--gold);border-radius:8px;padding:1px 6px;margin-left:6px}

/* ---------- v4: Specimen Stock (Monster Carp) ---------- */
.specimen-panel{margin-bottom:18px;border:1px solid rgba(199,154,62,.45);
  background:linear-gradient(180deg,rgba(199,154,62,.06),var(--panel));
  box-shadow:0 0 0 1px rgba(199,154,62,.12) inset, var(--shadow)}
.specimen-head{font-family:var(--font-head);color:var(--gold)!important;font-size:19px}
.specimen-sub{font-family:var(--font-body);font-size:12.5px;color:var(--text-muted);font-weight:400}
.mon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(232px,1fr));gap:16px}
.mon-card{position:relative;background:var(--panel2);border:1.5px solid rgba(199,154,62,.5);
  border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 0 14px rgba(199,154,62,.08)}
.mon-card.locked{opacity:.62;filter:saturate(.55)}
.mon-card.sold{opacity:.78}
.mon-portrait{background:linear-gradient(180deg,#2a2418,#1d251f);padding:8px;display:flex;justify-content:center;
  border-bottom:1px solid rgba(199,154,62,.3)}
.mon-body{padding:12px 13px;display:flex;flex-direction:column;gap:3px}
.mon-name{font-family:var(--font-head);font-size:19px;font-weight:700;color:var(--gold);line-height:1.1}
.mon-sp{font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.mon-stats{display:flex;align-items:baseline;gap:10px;margin-top:4px}
.mon-wt{font-size:23px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;line-height:1}
.mon-ceil{font-size:12px;color:var(--text-muted)}
.mon-notes{font-size:12px;color:var(--text-muted);margin-top:5px;line-height:1.35}
.mon-lock{font-size:11.5px;font-weight:600;color:var(--warn);background:rgba(201,138,60,.12);
  border:1px solid rgba(201,138,60,.35);border-radius:var(--radius-sm);padding:5px 8px;margin-top:7px}
.mon-foot{display:flex;align-items:center;justify-content:space-between;margin-top:11px;gap:10px}
.mon-cost{font-family:var(--font-head);font-weight:700;color:var(--gold);font-size:18px;
  font-variant-numeric:tabular-nums;cursor:help;border-bottom:1px dotted rgba(199,154,62,.5)}
.mon-sold{position:absolute;top:14px;right:-34px;transform:rotate(38deg);z-index:3;
  background:var(--danger);color:#fff;font-family:var(--font-head);font-weight:700;letter-spacing:2px;
  font-size:13px;padding:4px 40px;box-shadow:0 2px 8px rgba(0,0,0,.4)}
.mon-pond{font-weight:600}
.mon-pond.warn{color:var(--warn)}
.mon-pond.ok{color:var(--good)}
.spec-card.monster{border-color:rgba(199,154,62,.55);box-shadow:0 0 12px rgba(199,154,62,.1)}
.spec-card.monster .nm{color:var(--gold)}

/* ===== v5: Lake Expansion (earth-brown "works" theme) ===== */
.expansion-banner{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(90deg,#3a2e1c,#4a3a22);
  border:1px solid var(--earth-light);border-left:4px solid var(--earth-light);
  border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:16px;
  color:#e8dcc4;font-size:13.5px;
}
.expansion-banner .exb-mark{
  font-family:var(--font-head);font-weight:700;letter-spacing:1.5px;font-size:11px;
  background:var(--earth-light);color:#241a0d;padding:3px 9px;border-radius:3px;flex:none;
}
.expansion-banner .exb-text b{color:#f3e9d4}

.expansion-panel h2{display:flex;align-items:baseline;gap:8px}
.exp-stats{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.exp-stat{flex:1;min-width:110px;background:var(--panel2);border:1px solid var(--border);
  border-radius:var(--radius-sm);padding:9px 11px}
.exp-stat .k{font-size:10.5px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}
.exp-stat .v{font-family:var(--font-head);font-size:18px;font-weight:600;color:#e6ecdf;margin-top:2px}

.exp-row{display:flex;justify-content:space-between;align-items:baseline;
  padding:5px 0;border-bottom:1px dashed var(--border);font-size:13px}
.exp-row .k{color:var(--text-muted)}
.exp-row .v{font-weight:600;color:#e6ecdf}

.exp-next{background:var(--panel2);border:1px solid var(--earth);border-radius:var(--radius-sm);padding:12px 14px}
.exp-next-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}
.exp-name{font-family:var(--font-head);font-size:15.5px;font-weight:600;color:#f3e9d4}
.exp-blurb{margin-top:3px;max-width:42ch;line-height:1.5}
.exp-cost{font-family:var(--font-head);font-size:19px;font-weight:700;color:var(--gold);flex:none}
.exp-lock{color:var(--warn);margin-top:8px;font-weight:600}
.exp-note{color:var(--text-muted);margin-top:6px}
.exp-sub{display:flex;gap:8px;align-items:flex-start;margin-top:10px;font-size:12.5px;
  color:#cdbf9f;cursor:pointer;line-height:1.45}
.exp-sub input{margin-top:2px;flex:none}

.exp-progress{background:var(--panel2);border:1px solid var(--earth-light);border-radius:var(--radius-sm);padding:12px 14px}
.exp-progress #expCountdown{color:var(--gold)}
.exp-maxed{background:var(--panel2);border:1px solid var(--gold);border-radius:var(--radius-sm);
  padding:14px;text-align:center;font-family:var(--font-head);font-size:15px;color:var(--gold)}

.map-acre-label{font-family:var(--font-head);font-size:5px;font-weight:600;fill:#e8dcc4;
  opacity:0.85;letter-spacing:0.3px}

/* completion modal */
.exp-complete{text-align:center}
.exp-complete-mark{display:inline-block;font-family:var(--font-head);font-weight:700;letter-spacing:2px;
  font-size:11px;background:var(--earth-light);color:#241a0d;padding:4px 12px;border-radius:3px;margin-bottom:4px}
.exp-modal-row{font-size:14px;padding:4px 0;color:#dfe6d8}
.exp-modal-row b{color:var(--gold)}

/* expansion log lines */
.logitem.expansion{border-left:3px solid var(--earth-light)}

/* ===== Syndicate Ticketing (v6) ===== */
/* Revenue Mode segmented control */
.rev-toggle-wrap{margin-top:12px}
.seg{display:flex;gap:0;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--panel2)}
.seg-btn{flex:1;padding:8px 10px;background:transparent;border:none;color:var(--text-muted);font-family:var(--font-head);
  font-weight:600;font-size:13px;cursor:pointer;transition:.12s;letter-spacing:.3px}
.seg-btn:not(:last-child){border-right:1px solid var(--border)}
.seg-btn.active{background:var(--moss);color:#0e160f}
.seg-btn.active.gold{background:var(--gold);color:#241c08}
.seg-btn:disabled{opacity:.4;cursor:not-allowed}
.seg-btn:not(.active):not(:disabled):hover{color:var(--text)}

/* Syndicate configuration box — faint gold accent */
.syn-box{margin-top:12px;padding:12px 13px;background:var(--panel2);
  border:1px solid rgba(199,154,62,.45);border-radius:var(--radius-sm);
  box-shadow:inset 0 0 0 1px rgba(199,154,62,.08)}
.syn-row{margin-bottom:11px}
.syn-label{display:block;font-weight:600;font-size:13px;margin-bottom:5px}
.syn-capval{font-weight:400;color:var(--text-muted)}
.syn-capval b{color:var(--gold)}
.syn-num{width:90px;background:var(--panel);border:1px solid var(--border);color:var(--text);
  border-radius:6px;padding:5px 8px;font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}
.syn-radio{font-size:13px;display:flex;align-items:center;gap:5px;cursor:pointer}
.syn-radio input{accent-color:var(--gold)}
.syn-box input[type=range]{width:100%;margin:6px 0 4px;accent-color:var(--gold);cursor:pointer}
.syn-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0;
  padding:10px;background:var(--panel);border-radius:var(--radius-sm);border:1px solid var(--border)}
.syn-stat{display:flex;flex-direction:column;gap:3px}
.syn-stat .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}
.syn-stat .v{font-family:var(--font-head);font-weight:700;font-size:16px;color:var(--gold);font-variant-numeric:tabular-nums}
.syn-lock{margin-top:8px;font-size:12.5px;color:var(--gold);background:rgba(199,154,62,.12);
  border:1px solid rgba(199,154,62,.35);border-radius:8px;padding:7px 10px}
.syn-lock b{color:#e6c578}
.syn-members{margin-top:10px;font-size:12.5px}
.syn-members summary{cursor:pointer;color:var(--text-muted);font-weight:600;user-select:none}
.syn-members summary:hover{color:var(--text)}
.syn-member-list{margin-top:8px;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:4px}
.syn-member{display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  padding:5px 8px;background:var(--panel);border-radius:6px;border:1px solid var(--border)}
.syn-member .smn{font-weight:600;font-size:13px}
.logitem.syndicate{border-left-color:var(--gold)}

/* Portfolio revenue-mode column */
.port-mode{grid-column:1 / -1;border-top:1px dashed var(--border);padding-top:7px;margin-top:3px}
.port-mode .v.mode{font-size:12.5px;font-family:var(--font-body);font-weight:600}
.mode-syn{color:var(--gold)}
.mode-day{color:var(--moss-light)}

/* ===== Syndicate Ticketing v7 — waiting list + seat auctions ===== */
/* v7 supersedes the v6 organic-drift model; the v6 .seg/.syn-box base styles above
   are reused. These add the fair-price line, waiting list, release button, and the
   leather-bound-club release dialog. */

.syn-title{font-family:var(--font-head);font-weight:700;font-size:14px;letter-spacing:.3px;
  color:var(--gold);text-transform:uppercase;margin:-2px 0 10px;padding-bottom:7px;
  border-bottom:1px solid rgba(199,154,62,.28)}
.syn-fair{margin-top:3px;color:var(--text-muted)}
.syn-fair b{color:var(--gold);font-variant-numeric:tabular-nums}
.syn-gate{line-height:1.5}
.syn-gate b{color:var(--text)}

.syn-stats{grid-template-columns:repeat(2,1fr)} /* v7: 4 stats in a 2x2 grid */
.syn-stat .v{font-size:15px}

.syn-release-row{display:flex;align-items:center;gap:10px;margin:4px 0 8px}
.syn-member .smp{color:var(--gold);font-weight:700;font-variant-numeric:tabular-nums;font-size:12px;margin-left:4px}
.syn-member.wl{border-left:2px solid rgba(63,111,122,.5)}

/* Release dialog — restrained, "leather-bound club" feel: deep panel, hairline gold rules */
.rel-dialog,.rel-result{padding:2px}
.rel-title{font-family:var(--font-head);font-weight:700;font-size:20px;letter-spacing:.3px;
  color:var(--gold);margin-bottom:4px}
.rel-field{margin:16px 0}
.rel-field > label{display:block;font-weight:600;font-size:12px;text-transform:uppercase;
  letter-spacing:.5px;color:var(--text-muted);margin-bottom:7px}
.rel-seg{flex-wrap:wrap}
.rel-seg .seg-btn{flex:0 0 auto;min-width:46px;padding:8px 14px;font-size:13px}
.rel-preview{margin-top:18px;padding:14px 15px;background:linear-gradient(180deg,rgba(199,154,62,.07),rgba(20,28,22,.2));
  border:1px solid rgba(199,154,62,.28);border-radius:var(--radius-sm)}
.rel-stat-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  padding:5px 0;font-size:13.5px;color:var(--text-muted)}
.rel-stat-row b{color:var(--text);font-family:var(--font-head);font-weight:700;
  font-variant-numeric:tabular-nums;font-size:15px}
.rel-stat-row.rel-total{margin-top:6px;padding-top:9px;border-top:1px solid rgba(199,154,62,.25)}
.rel-stat-row.rel-total b{color:var(--gold);font-size:18px}

.rel-result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 16px;margin:14px 0}
.rel-result-grid > div{display:flex;flex-direction:column;gap:3px}
.rel-result-grid .k{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}
.rel-result-grid .v{font-family:var(--font-head);font-weight:700;font-size:18px;color:var(--gold);
  font-variant-numeric:tabular-nums}
.rel-taker-list{margin-top:10px;max-height:200px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;
  border-top:1px solid var(--border);padding-top:10px}
.rel-taker{display:flex;justify-content:space-between;align-items:baseline;gap:8px;
  padding:4px 8px;background:var(--panel2);border-radius:6px;font-size:13px}
.rel-taker b{color:var(--gold);font-variant-numeric:tabular-nums}

/* ============================================================
   v8 "Empire Bundle" — weather, dilemmas, matches, rivals,
   awards, ledger detail, overnight tickets, lake map, monster
   catalogue. Faithful palette: muted greens, water blues,
   slab-serif headers, faint gold/earth accents. No emoji.
   ============================================================ */

/* --- Section sub-headers (reused across new tabs) --- */
.section-sub{font-family:var(--font-head);font-size:15px;color:var(--text);
  margin:18px 0 10px;padding-bottom:5px;border-bottom:1px solid var(--border);letter-spacing:.01em}

/* --- Feature 1: Weather chip in the top bar --- */
.wx-chip .v{font-family:var(--font-head)}
.wx-chip.wx-sig{box-shadow:inset 0 0 0 1px var(--gold)}
.wx-chip.wx-sig .k{color:var(--gold)}

/* --- Feature 2: Dilemma modal --- */
.dilemma{max-width:520px}
.dilemma-tag{font-family:var(--font-head);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);opacity:.85}
.dilemma-choices{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.dilemma-choice{background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  padding:9px 12px;display:flex;flex-direction:column;gap:2px}
.dilemma-choice b{font-size:13px;color:var(--text)}
.dilemma-choice .muted{font-size:12px}

/* --- Feature 5: British Carp Awards (clubby newspaper) --- */
.newspaper.awards .award-list{margin-top:16px;display:flex;flex-direction:column;gap:0;
  border-top:2px solid #2a241a;border-bottom:2px solid #2a241a}
.award-row{display:grid;grid-template-columns:1.1fr 1.4fr .9fr;gap:10px;align-items:baseline;
  padding:9px 4px;border-bottom:1px solid rgba(42,36,26,.45)}
.award-row:last-child{border-bottom:none}
.award-cat{font-family:var(--font-head);font-size:13px;color:#3a2f1d;letter-spacing:.01em}
.award-win{font-size:14px;color:#23201a}
.award-win i{color:#5a4a2c}
.award-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:#3a2f1d}

/* --- Feature 3: Matches tab --- */
.match-sched{margin-bottom:6px}
.match-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;
  padding:12px 14px;margin-bottom:10px}
.match-card.upcoming{border-left:3px solid var(--moss)}
.match-card.done{border-left:3px solid var(--gold)}
.match-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.match-nm{font-family:var(--font-head);font-size:15px;color:var(--text)}
.match-when{font-size:12px;color:var(--text-muted);font-variant-numeric:tabular-nums}
.match-meta{font-size:12.5px;color:var(--text-muted);margin-bottom:6px}
.match-meta b.pos{color:var(--good)} .match-meta b.neg{color:var(--danger)}
.match-bar{height:6px;background:var(--panel2);border-radius:4px;overflow:hidden}
.match-bar i{display:block;height:100%;background:linear-gradient(90deg,var(--moss),var(--moss-light))}
.leaderboard{margin-top:8px;border-top:1px solid var(--border);padding-top:8px;display:flex;flex-direction:column;gap:2px}
.lb-row{display:grid;grid-template-columns:24px 1fr auto;gap:8px;align-items:baseline;
  font-size:13px;padding:2px 4px;border-radius:4px}
.lb-row.win{background:rgba(199,154,62,.12)}
.lb-pos{color:var(--text-muted);font-variant-numeric:tabular-nums;text-align:center}
.lb-row.win .lb-pos{color:var(--gold);font-weight:700}
.lb-nm{color:var(--text)} .lb-nm i{color:var(--gold)}
.lb-wt{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}

/* --- Feature 8: Rivals tab --- */
.rival-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.rival-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:13px 14px}
.rival-card.neutralised{opacity:.62;border-style:dashed}
.rival-hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.rival-nm{font-family:var(--font-head);font-size:16px;color:var(--text)}
.rival-loc{font-size:11px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em}
.rival-tag{font-size:12.5px;color:var(--text-muted);font-style:italic;margin:5px 0 10px;line-height:1.4}
.rival-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;margin-bottom:10px}
.rs{display:flex;justify-content:space-between;align-items:baseline;font-size:12.5px;
  border-bottom:1px dotted var(--border);padding-bottom:3px}
.rs .k{color:var(--text-muted)} .rs .v{font-variant-numeric:tabular-nums;color:var(--text);font-weight:600}
.rival-foot{margin-top:2px}
.rival-foot.neutralised{font-size:12px;color:var(--gold)}
.rival-alert{border-left:3px solid var(--warn);margin-bottom:14px;font-size:13px;line-height:1.5}
.rival-alert b{color:var(--warn)}

/* --- Feature 4: Specimen Ledger detail view --- */
.spec-card{transition:border-color .15s}
.spec-card .spec-head{display:flex;gap:14px;cursor:pointer;align-items:flex-start}
.spec-card .spec-head .portrait{flex:0 0 184px}
.spec-card .spec-head .meta{flex:1 1 auto;min-width:0}
.spec-card.expanded{border-color:var(--gold)}
.spec-card.legendary{box-shadow:inset 0 0 0 1px rgba(199,154,62,.5)}
.spec-expand-hint{margin-top:8px;font-size:11px;color:var(--text-muted);letter-spacing:.04em}
.spec-card.expanded .spec-expand-hint{color:var(--gold)}
.leg-badge{display:inline-block;font-size:9px;letter-spacing:.12em;color:#1d251f;background:var(--gold);
  border-radius:3px;padding:1px 5px;vertical-align:middle;margin-left:6px;font-family:var(--font-head)}
.ld-detail{margin-top:12px;border-top:1px solid var(--border);padding-top:12px}
.ld-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media (max-width:720px){.ld-grid{grid-template-columns:1fr}}
.ld-sub{font-family:var(--font-head);font-size:12px;color:var(--text-muted);text-transform:uppercase;
  letter-spacing:.08em;margin-bottom:6px}
.growth-curve{background:#1f2820;border:1px solid var(--border);border-radius:8px}
.gc-ax{fill:var(--text-muted);font-size:9px;font-family:sans-serif}
.ld-log{max-height:140px;overflow-y:auto;display:flex;flex-direction:column;gap:3px}
.ld-row{font-size:12px;color:var(--text);background:var(--panel2);border-radius:5px;padding:4px 8px;line-height:1.4}
.ld-row .muted{color:var(--text-muted)} .ld-row i{color:var(--gold)}
.ld-notes{margin-top:12px}
.ld-lbl{display:block;font-size:12px;color:var(--text-muted);margin-bottom:4px}
.ld-notes-ta{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:var(--font-body);font-size:13px;padding:8px 10px;resize:vertical}
.ld-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:14px;align-items:flex-end}
.ld-move{flex:1;min-width:240px}
.ld-select{background:var(--panel2);border:1px solid var(--border);border-radius:7px;color:var(--text);
  font-family:var(--font-body);font-size:13px;padding:7px 9px;max-width:100%}
.ld-name-input{width:100%;background:var(--panel2);border:1px solid var(--border);border-radius:7px;
  color:var(--text);font-family:var(--font-body);font-size:14px;padding:9px 11px}

/* --- Feature 7: Overnight ticket tiers --- */
.overnight-tickets{margin-top:14px;border-top:1px solid var(--border);padding-top:12px}
.tier-row{margin-bottom:12px}
.tier-row.locked{opacity:.6}
.tier-hd{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}
.tier-nm{font-family:var(--font-head);font-size:13px;color:var(--text)}
.tier-lock{font-size:11.5px;color:var(--text-muted)} .tier-lock b{color:var(--earth-light)}

/* --- Feature 6: Lake Map aerial silhouette --- */
.aerial-wrap{background:#26301f;border:1px solid var(--border);border-radius:12px;overflow:hidden;
  margin-bottom:14px;line-height:0}
.aerial-wrap svg{display:block}

/* --- Feature 9: Monster catalogue sections --- */
.mon-section-title{font-family:var(--font-head);font-size:14px;color:var(--text);margin:16px 0 10px;
  display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--border);padding-bottom:5px}
.mon-section-title:first-of-type{margin-top:6px}
.mon-countdown{font-size:11px;color:var(--text-muted);letter-spacing:.04em;text-transform:none}
.mon-card.legendary{box-shadow:inset 0 0 0 2px var(--gold)}
.mon-legendary{position:absolute;top:8px;left:8px;background:var(--gold);color:#1d251f;font-family:var(--font-head);
  font-size:10px;letter-spacing:.1em;padding:2px 7px;border-radius:4px;z-index:2}
.mon-card{position:relative}

/* Ledger-grid: expanded card spans the full width; allow detail to overflow the card */
.spec-card.expanded{overflow:visible;grid-column:1 / -1}
.spec-card .spec-head .meta{padding:10px 12px}

/* Specimen card at-a-glance pills + trend chip ---------------------------- */
.spec-card .stat-pills { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0 6px; }
.spec-card .stat-pill {
  display:inline-block;
  font-size:11px; line-height:1;
  padding:4px 8px;
  border-radius:999px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
  color:#cfd8c8;
  white-space:nowrap;
}
.spec-card .stat-pill.muted { color:#8a948a; }
.spec-card .trend {
  font-size:12px;
  font-weight:500;
  margin-left:10px;
  letter-spacing:0.02em;
}
.spec-card .trend-up   { color:#9fd07c; }
.spec-card .trend-down { color:#d08b6c; }
.spec-card .trend-flat { color:#8a948a; }
.spec-card .notes-preview {
  font-size:12px;
  font-style:italic;
  color:#bcc7b4;
  margin:4px 0 8px;
  padding:6px 8px;
  background:rgba(255,255,255,0.03);
  border-left:2px solid rgba(212,175,90,0.4);
  border-radius:2px;
}
.spec-card .notes-preview .notes-label {
  font-style:normal;
  font-size:10px;
  font-weight:600;
  letter-spacing:0.08em;
  color:#d4af5a;
  margin-right:6px;
  text-transform:uppercase;
}
/* Monster cards: slightly brighter pills against the gold border */
.spec-card.monster .stat-pill { background:rgba(212,175,90,0.06); border-color:rgba(212,175,90,0.18); }

/* ===== v9: AI specimen portraits ===== */
/* The portrait box keeps the SAME w/h as the SVG so cards never shift. The wrap is a
   positioned frame so the photo fills it and the subtle "rendering" tag sits in the corner. */
.ai-portrait-wrap{position:relative;display:inline-block;overflow:hidden;border-radius:6px;background:#1d251f}
.ai-portrait-img{display:block;width:100%;height:100%;object-fit:cover;border-radius:6px}
.ai-portrait-tag{position:absolute;left:6px;bottom:6px;font-family:var(--font-body);
  font-size:10px;letter-spacing:.3px;color:var(--text-muted);
  background:rgba(20,28,22,.72);border:1px solid var(--border);border-radius:4px;
  padding:2px 6px;display:flex;align-items:center;gap:5px;opacity:.92;pointer-events:none}
.ai-portrait-tag::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--water);box-shadow:0 0 0 0 rgba(63,111,122,.55);animation:lm-rendering 1.6s ease-out infinite}
@keyframes lm-rendering{0%{box-shadow:0 0 0 0 rgba(63,111,122,.5)}70%{box-shadow:0 0 0 6px rgba(63,111,122,0)}100%{box-shadow:0 0 0 0 rgba(63,111,122,0)}}

/* Larger detail-view portrait sits above the growth-curve / catch-history grid. */
.ld-portrait{margin-bottom:12px}
.ld-portrait .ai-portrait-wrap{width:100%!important;max-width:420px;height:auto;aspect-ratio:16/9}
.ld-portrait .ai-portrait-img,.ld-portrait svg{width:100%;height:auto;border-radius:8px;border:1px solid var(--border)}

/* Visual Settings panel (Dashboard). Muted, restrained — matches the carp-lake aesthetic. */
.vis-settings .vis-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.vis-settings .vis-copy{flex:1;min-width:220px}
.vis-settings .vis-title{font-family:var(--font-head,'Zilla Slab',serif);font-size:15px;color:var(--text);margin-bottom:4px}
.vis-settings .vis-desc{font-size:12.5px;color:var(--text-muted);line-height:1.55;max-width:560px}
.vis-settings .vis-on{color:var(--gold)}
.vis-settings .vis-off{color:var(--text-muted)}

/* ============================================================================
   v10 — Difficulty pill (top bar + slot cards + new-game cards) + tones
   ============================================================================ */
.diff-pill{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:700;
  font-size:11px;letter-spacing:.5px;text-transform:uppercase;padding:3px 9px;border-radius:999px;
  border:1px solid transparent;cursor:default;white-space:nowrap;line-height:1.4}
.diff-pill:empty{display:none}
.diff-pill.tone-slate{background:rgba(96,118,132,.18);border-color:#5d7686;color:#a9c2d2}
.diff-pill.tone-copper{background:rgba(199,154,62,.16);border-color:var(--gold);color:#e0bd6e}
.diff-pill.tone-maroon{background:rgba(150,52,46,.20);border-color:#9e463c;color:#e0998c}

/* v11.4 — Save status pill (top-right). Tells the player at a glance whether
   their save reached cloud, device, or only RAM. Same leather-club tones as the
   difficulty pill so it sits naturally in the topbar. */
.save-status-pill{display:inline-flex;align-items:center;font-family:var(--font-body);font-weight:600;
  font-size:11px;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:999px;
  border:1px solid transparent;cursor:default;white-space:nowrap;line-height:1.4;
  background:rgba(96,118,132,.16);border-color:#4a5b65;color:#a9c2d2}
.save-status-pill.ok.cloud{background:rgba(199,154,62,.14);border-color:var(--gold,#c79a3e);color:#e0bd6e}
.save-status-pill.ok.local{background:rgba(120,140,110,.14);border-color:#6a805f;color:#bdd1a3}
.save-status-pill.warn{background:rgba(96,118,132,.18);border-color:#5d7686;color:#a9c2d2}
.save-status-pill.fail{background:rgba(150,52,46,.24);border-color:#b85048;color:#f0a89e;font-weight:700;
  animation:pillPulse 1.6s ease-in-out infinite}
@keyframes pillPulse{0%,100%{opacity:1}50%{opacity:.55}}

/* v11.4.1 — compact Save button beside the save-status pill in the topbar. */
.btn.topbar-save{padding:4px 10px;font-size:12px;letter-spacing:.3px;
  background:rgba(199,154,62,.16);border:1px solid var(--gold,#c79a3e);color:#e0bd6e;
  font-weight:700;text-transform:uppercase}
.btn.topbar-save:hover:not(:disabled){background:rgba(199,154,62,.28);color:#f0d089}
.btn.topbar-save:disabled{opacity:.6;cursor:default}

/* ============================================================================
   v10 — Slot Select title screen (leather-bound club, parchment ground)
   ============================================================================ */
.slot-screen{position:fixed;inset:0;z-index:60;overflow-y:auto;
  /* parchment-ish ground over the deep weathered-green base */
  background:
    radial-gradient(1100px 620px at 78% -12%, rgba(63,111,122,.16), transparent 60%),
    radial-gradient(820px 560px at 8% 112%, rgba(107,84,54,.22), transparent 55%),
    radial-gradient(640px 440px at 50% 40%, rgba(214,193,150,.05), transparent 70%),
    linear-gradient(180deg,#20271f 0%,#1b221c 100%);
  display:flex;align-items:flex-start;justify-content:center;padding:48px 20px 64px}
.slot-screen[hidden]{display:none}
.slot-loading,.slot-screen .slot-loading{color:var(--text-muted);font-size:15px;padding:80px 0;text-align:center;width:100%}
.slot-wrap{width:100%;max-width:1040px;margin:0 auto}
.slot-header{text-align:center;margin-bottom:34px;padding-bottom:26px;
  border-bottom:1px solid var(--border)}
.slot-kicker{font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:1.6px;
  text-transform:uppercase;color:var(--gold);margin-bottom:10px;opacity:.92}
.slot-title{font-family:var(--font-head);font-weight:700;font-size:46px;line-height:1.04;
  color:var(--text);letter-spacing:.4px;text-shadow:0 1px 0 rgba(0,0,0,.4)}
.slot-sub{font-size:14.5px;color:var(--text-muted);max-width:560px;margin:12px auto 0;line-height:1.6}
.slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
@media (max-width:840px){.slot-grid{grid-template-columns:1fr}.slot-title{font-size:36px}}

.slot-card{display:flex;flex-direction:column;gap:8px;background:var(--panel);
  border:1px solid var(--border-light);border-radius:var(--radius);padding:20px 18px 18px;
  box-shadow:var(--shadow);position:relative;min-height:240px}
.slot-card.used{background:linear-gradient(180deg,#2c372e 0%,#28312a 100%)}
.slot-card.empty{justify-content:center;align-items:center;text-align:center;
  border-style:dashed;border-color:var(--border);background:rgba(42,52,44,.5)}
.slot-no{font-family:var(--font-body);font-size:11px;font-weight:700;letter-spacing:1.2px;
  text-transform:uppercase;color:var(--text-muted)}
.slot-empty-mark{font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--text);margin-top:6px}
.slot-empty-sub{font-size:13px;color:var(--text-muted);margin:4px 0 18px;max-width:200px}
.slot-name{font-family:var(--font-head);font-size:25px;font-weight:700;color:var(--text);line-height:1.1;margin-top:2px}
.slot-founding{font-size:12.5px;color:var(--gold);font-weight:600;letter-spacing:.3px}
.slot-stats{display:flex;flex-direction:column;gap:3px;margin-top:10px;font-size:13px;color:var(--text-muted)}
.slot-stats span{font-variant-numeric:tabular-nums}
.slot-actions{margin-top:auto;padding-top:14px;justify-content:space-between;
  border-top:1px solid var(--border);position:relative}
/* gold rule glint above the action buttons */
.slot-actions::before{content:"";position:absolute;top:-1px;left:0;width:46px;height:2px;
  background:var(--gold);border-radius:2px;opacity:.85}
.slot-card .btn.primary{flex:1}
.btn.danger{background:transparent;border-color:#7a463f;color:#d09287}
.btn.danger:hover{background:rgba(150,52,46,.22);border-color:#9e463c;color:#e7a99e}
.slot-newgame{margin-top:4px;min-width:130px}
.slot-footer{text-align:center;margin-top:30px;font-size:12px;color:var(--text-muted);
  letter-spacing:.2px;opacity:.85}

/* ============================================================================
   v10 — New Game modal (name + difficulty cards)
   ============================================================================ */
.newgame h2{font-family:var(--font-head);font-size:23px;margin-bottom:4px}
.ng-label{display:block;font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;
  color:var(--text-muted);margin-bottom:6px}
.ng-name{width:100%;background:var(--bg2);border:1px solid var(--border-light);border-radius:var(--radius-sm);
  color:var(--text);font-family:var(--font-body);font-size:15px;padding:10px 12px}
.ng-name:focus{outline:none;border-color:var(--moss-light);box-shadow:0 0 0 2px rgba(122,150,88,.25)}
.ng-diffs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
@media (max-width:560px){.ng-diffs{grid-template-columns:1fr}}
.ng-diff{display:flex;flex-direction:column;text-align:left;gap:6px;cursor:pointer;
  background:var(--panel2);border:1.5px solid var(--border);border-radius:var(--radius-sm);
  padding:12px 12px 13px;font-family:var(--font-body);color:var(--text);transition:border-color .15s,background .15s}
.ng-diff:hover{border-color:var(--border-light)}
.ng-diff.sel{border-color:var(--gold);background:#313d33;box-shadow:0 0 0 1px var(--gold) inset}
.ng-diff-label{font-family:var(--font-head);font-size:17px;font-weight:700}
.ng-diff.tone-slate .ng-diff-label{color:#a9c2d2}
.ng-diff.tone-copper .ng-diff-label{color:#e0bd6e}
.ng-diff.tone-maroon .ng-diff-label{color:#e0998c}
.ng-diff-blurb{font-size:12px;color:var(--text-muted);line-height:1.5}
.ng-diff-effects{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.ng-diff-effects li{font-size:11.5px;color:var(--text-muted);font-variant-numeric:tabular-nums;
  padding-left:11px;position:relative}
.ng-diff-effects li::before{content:"\2013";position:absolute;left:0;color:var(--gold);opacity:.7}

/* awards year-end difficulty footer */
.awards-diff-footer{text-align:center;margin-top:6px;font-size:11px;letter-spacing:.6px;
  text-transform:uppercase;color:var(--text-muted)}

/* Switch Save button in the dashboard top bar */
.topbar-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.btn.switch-save{background:transparent;border-color:var(--border-light);color:var(--text-muted)}
.btn.switch-save:hover{color:var(--text);border-color:var(--gold)}

/* ===== Britain map (v10) ===================================================
 * Stylised SVG map: muted lake-blue sea, mossy land, gold pins for owned waters
 * and a wash of moss for unowned. Hover/focus states give a club-card feel. */
.britain-wrap{
  position:relative;background:var(--panel);border:1px solid var(--border);
  border-radius:var(--radius);padding:18px;box-shadow:var(--shadow);
}
.britain-map{
  display:block;width:100%;height:auto;max-height:78vh;border-radius:var(--radius-sm);
  background:linear-gradient(180deg,#2f4e57,#26424c);
}
.britain-sea{fill:#345862;opacity:.9}
.britain-land{
  fill:#4a6b3e;stroke:#2a3a26;stroke-width:2.4;stroke-linejoin:round;
  filter:drop-shadow(0 3px 6px rgba(0,0,0,.35));
}
.region-label{
  fill:#cfd8c6;font-family:var(--font-head);font-size:18px;
  text-anchor:middle;letter-spacing:1.5px;text-transform:uppercase;
  opacity:.55;pointer-events:none;
}
.compass-ring{fill:none;stroke:var(--gold);stroke-width:1.5;opacity:.65}
.compass-needle{fill:var(--gold);opacity:.75}
.compass-n{
  fill:var(--gold);font-family:var(--font-head);font-size:14px;
  text-anchor:middle;font-weight:700;letter-spacing:1px;
}

/* Lake pins */
.britain-pin{cursor:pointer;transition:transform .15s ease}
.britain-pin .pin-dot{
  stroke:#1c241f;stroke-width:1.6;
  filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));
  transition:fill .15s ease, r .15s ease;
}
.britain-pin.unowned .pin-dot{fill:#9aa691}
.britain-pin.owned .pin-dot{fill:var(--gold)}
.britain-pin.fishery.owned .pin-dot{fill:#e4b964}
.britain-pin.active .pin-dot{fill:#f0c66c}
.britain-pin .pin-ring{fill:none;stroke:var(--gold);stroke-width:2;opacity:.7}
.britain-pin .pin-pulse{
  fill:none;stroke:var(--gold);stroke-width:1.5;opacity:0;
  animation:pinPulse 2.4s ease-out infinite;
}
@keyframes pinPulse{
  0%{opacity:.55;transform-origin:center;r:8}
  100%{opacity:0}
}
.britain-pin:hover{transform:none}
.britain-pin:hover .pin-dot{r:11}
.britain-pin:focus{outline:none}
.britain-pin:focus .pin-dot{stroke:var(--gold);stroke-width:2.4}

/* Key/legend below the map */
.britain-key{
  display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;
  margin-top:14px;padding:10px 14px;background:var(--panel2);
  border:1px solid var(--border);border-radius:var(--radius-sm);
  font-size:12.5px;color:var(--text-muted);
}
.britain-key .key-item{display:inline-flex;align-items:center;gap:8px}
.britain-key .key-dot{
  display:inline-block;width:11px;height:11px;border-radius:50%;
  border:1.5px solid #1c241f;flex-shrink:0;
}
.britain-key .key-dot.owned{background:var(--gold)}
.britain-key .key-dot.active{background:#f0c66c;box-shadow:0 0 0 2px rgba(199,154,62,.4)}
.britain-key .key-dot.unowned{background:#9aa691}
.britain-key .key-dot.fishery{background:#e4b964;border-color:var(--gold)}
.britain-key .key-dot.locked{background:#3d4a40;border-color:var(--gold)}
.britain-key .key-meta{margin-left:auto;font-style:italic;color:var(--text-muted);opacity:.8}

/* Locked store pins on the Britain map */
.britain-pin.locked{cursor:pointer}
.britain-pin.locked .pin-dot{fill:#3d4a40;stroke:var(--gold);stroke-width:1.6;stroke-dasharray:2 1.5;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5))}
.britain-pin.locked:hover .pin-dot{fill:#4d5d50;stroke-dasharray:none}
.britain-pin.locked .pin-lock rect{fill:var(--gold);stroke:none}
.britain-pin.locked .pin-lock path{fill:none;stroke:var(--gold)}
.britain-pin.locked .pin-lock{pointer-events:none}

/* ---- v11 Store / Pack catalogue ---- */
.store-head{font-family:var(--font-head);font-size:22px;color:var(--text);letter-spacing:.4px;margin:4px 0 4px}
.store-sub{display:block;font-family:var(--font-body);font-size:13px;font-weight:400;color:var(--text-muted);letter-spacing:0;margin-top:3px;margin-bottom:14px}
.store-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.pack-card{background:var(--panel2);border:1px solid var(--border);border-radius:var(--radius);padding:14px 14px 12px;display:flex;flex-direction:column;gap:10px;position:relative;transition:border-color .15s ease, transform .15s ease}
.pack-card:hover{border-color:var(--border-light)}
.pack-card.unlocked{border-color:rgba(199,154,62,.5);box-shadow:inset 0 0 0 1px rgba(199,154,62,.18)}
.pack-card .pack-accent{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--radius) 0 0 var(--radius);background:var(--gold);opacity:.9}
.pack-card .pack-badge{position:absolute;right:10px;top:10px;font-family:var(--font-head);font-size:10px;font-weight:700;letter-spacing:1.4px;color:var(--gold);background:rgba(199,154,62,.14);border:1px solid rgba(199,154,62,.35);border-radius:10px;padding:2px 8px;text-transform:uppercase}
.pack-card .pack-name{font-family:var(--font-head);font-size:17px;font-weight:700;color:var(--text);margin:0;letter-spacing:.2px;padding-right:90px}
.pack-card .pack-tagline{font-size:13px;color:var(--text-muted);line-height:1.45;margin:0}
.pack-card .pack-list{margin:2px 0 0;padding-left:18px;font-size:12.5px;color:var(--text-muted);line-height:1.5}
.pack-card .pack-list li{margin-bottom:1px}
.pack-card .pack-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:auto}
.pack-card .pack-price{font-family:var(--font-head);font-weight:700;color:var(--gold);font-size:18px}
.pack-card .pack-count{font-size:11.5px;color:var(--text-muted);letter-spacing:.4px;text-transform:uppercase}
.pack-card .pack-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.pack-card .pack-actions .btn{flex:1;min-width:120px}
.pack-card.coming-soon{opacity:.65}
.pack-card.coming-soon .pack-accent{background:#5a6a5e}
.pack-card .pack-owned-tag{color:var(--gold);font-family:var(--font-head);font-size:12px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;padding:6px 0}
.store-intro{background:var(--panel2);border:1px solid var(--border);border-left:3px solid var(--gold);border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:14px;font-size:13.5px;color:var(--text-muted);line-height:1.55}
.store-intro b{color:var(--text);font-weight:600}
.redeem-input{width:100%;font-family:var(--font-head);font-size:15px;letter-spacing:1.5px;text-align:center;text-transform:uppercase;padding:10px 12px;background:var(--panel2);border:1px solid var(--border-light);color:var(--text);border-radius:var(--radius-sm);margin:8px 0}
.redeem-msg{font-size:12.5px;margin-top:6px;min-height:16px}
.redeem-msg.err{color:#d97b7b}
.redeem-msg.ok{color:var(--gold)}


/* Section title above the map */
.section-title{
  font-family:var(--font-head);font-size:22px;margin-bottom:12px;
  color:var(--text);letter-spacing:.4px;
}
.section-title .hint{
  display:block;font-family:var(--font-body);font-size:13px;font-weight:400;
  color:var(--text-muted);letter-spacing:0;margin-top:3px;
}

/* Bundle hero card (Store) — gold-accented, sits above the per-pack grid. */
.bundle-hero{position:relative;background:linear-gradient(180deg, rgba(199,154,62,.10), rgba(199,154,62,.04));border:1px solid rgba(199,154,62,.45);border-radius:var(--radius);padding:18px 18px 14px;margin:14px 0 18px;box-shadow:inset 0 0 0 1px rgba(199,154,62,.18)}
.bundle-hero .bundle-hero-accent{position:absolute;left:0;top:0;bottom:0;width:5px;border-radius:var(--radius) 0 0 var(--radius);background:var(--gold);opacity:1}
.bundle-hero .bundle-hero-badge{display:inline-block;font-family:var(--font-head);font-size:11px;font-weight:700;letter-spacing:1.6px;color:var(--gold);background:rgba(199,154,62,.18);border:1px solid rgba(199,154,62,.5);border-radius:10px;padding:3px 10px;text-transform:uppercase;margin-bottom:8px}
.bundle-hero .bundle-hero-name{font-family:var(--font-head);font-size:22px;margin:2px 0 6px;color:var(--ink)}
.bundle-hero .bundle-hero-tagline{margin:0 0 10px;color:var(--muted);font-size:14px;line-height:1.45;max-width:60ch}
.bundle-hero .bundle-hero-meta{display:flex;align-items:baseline;gap:10px;margin:0 0 12px}
.bundle-hero .bundle-hero-price{font-family:var(--font-head);font-size:24px;font-weight:700;color:var(--gold)}
.bundle-hero .bundle-hero-strike{font-size:14px;color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px;opacity:.8}

/* ============================================================================
   Help / Tooltip system (v11.1.0)
   - .help-icon       inline (i) icon, gold, tap-target ≥24px
   - .help-popover    one-line tooltip that appears below the icon
   - .help-modal      full help sheet for the current view (opened by topbar ?)
   ============================================================================ */
.help-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;border:1.5px solid rgba(199,154,62,.55);color:var(--gold);background:rgba(199,154,62,.08);font-family:var(--font-head);font-size:11px;font-weight:700;font-style:italic;line-height:1;margin-left:6px;cursor:pointer;user-select:none;vertical-align:middle;flex-shrink:0;transition:background .12s ease, border-color .12s ease, transform .12s ease;-webkit-tap-highlight-color:transparent}
.help-icon:hover, .help-icon:focus, .help-icon.is-open{background:rgba(199,154,62,.22);border-color:var(--gold);outline:none;transform:scale(1.08)}
.help-icon::before{content:"i"}
/* Tab bar icons sit slightly smaller and dimmer to not crowd the tab labels. */
.tabs .help-icon{width:16px;height:16px;font-size:10px;margin-left:5px;opacity:.7}
.tabs .help-icon:hover, .tabs .help-icon:focus, .tabs .help-icon.is-open{opacity:1}

.help-popover{position:fixed;z-index:9000;max-width:300px;min-width:200px;background:#10171a;color:var(--ink);border:1px solid rgba(199,154,62,.55);border-radius:8px;padding:10px 12px;box-shadow:0 14px 40px rgba(0,0,0,.55), inset 0 0 0 1px rgba(199,154,62,.12);font-size:13px;line-height:1.42;pointer-events:auto;animation:helpFade .14s ease-out}
.help-popover .help-pop-title{font-family:var(--font-head);font-size:13px;font-weight:700;color:var(--gold);margin:0 0 4px;letter-spacing:.3px}
.help-popover .help-pop-body{color:var(--cream, #f4ead2);font-family:var(--font-body, inherit);font-size:12.5px;margin:0}
.help-popover::before{content:"";position:absolute;width:10px;height:10px;background:#10171a;border-left:1px solid rgba(199,154,62,.55);border-top:1px solid rgba(199,154,62,.55);transform:rotate(45deg);top:-6px;left:14px}
.help-popover.flip-up::before{top:auto;bottom:-6px;border-left:none;border-top:none;border-right:1px solid rgba(199,154,62,.55);border-bottom:1px solid rgba(199,154,62,.55)}

@keyframes helpFade { from { opacity:0; transform:translateY(-4px) } to { opacity:1; transform:translateY(0) } }

/* Global help button in the topbar */
.help-global-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;border:1.5px solid rgba(199,154,62,.55);color:var(--gold);background:rgba(199,154,62,.08);font-family:var(--font-head);font-size:18px;font-weight:700;font-style:italic;cursor:pointer;margin-right:8px;transition:background .12s ease, transform .12s ease;-webkit-tap-highlight-color:transparent}
.help-global-btn:hover, .help-global-btn:focus{background:rgba(199,154,62,.22);outline:none;transform:scale(1.06)}
.help-global-btn::before{content:"?"}

/* Help modal (full sheet for current view) */
.help-modal-section{margin:14px 0 0;padding:12px 14px;background:rgba(199,154,62,.05);border-left:3px solid var(--gold);border-radius:0 6px 6px 0}
.help-modal-section h4{margin:0 0 4px;color:var(--gold);font-family:var(--font-head);font-size:14px;font-weight:700;letter-spacing:.3px}
.help-modal-section p{margin:0;color:var(--cream, #f4ead2);font-size:13px;line-height:1.5}
.help-modal-intro{color:var(--muted);font-size:13.5px;line-height:1.55;margin:4px 0 6px;font-style:italic}

/* ---- Investor cash packs (v11.3) ----------------------------------- */
.investor-section{margin:22px 0 8px;padding-top:18px;border-top:1px solid var(--border)}
.investor-section .investor-section-head{font-family:var(--font-head);font-size:17px;letter-spacing:.3px;color:var(--gold);margin:0 0 4px}
.investor-section .investor-section-intro{margin:0 0 14px;font-size:13px;color:var(--text-muted);line-height:1.5;max-width:70ch}
.investor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.investor-card{position:relative;background:linear-gradient(180deg, rgba(199,154,62,.06), rgba(199,154,62,.02));border:1px solid rgba(199,154,62,.32);border-radius:var(--radius);padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px;transition:border-color .15s ease, transform .15s ease}
.investor-card:hover{border-color:rgba(199,154,62,.6);transform:translateY(-1px)}
.investor-card .investor-accent{position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:var(--radius) 0 0 var(--radius);background:var(--gold);opacity:.9}
.investor-card .investor-badge{position:absolute;right:10px;top:10px;font-family:var(--font-head);font-size:9.5px;font-weight:700;letter-spacing:1.4px;color:var(--gold);background:rgba(199,154,62,.18);border:1px solid rgba(199,154,62,.5);border-radius:10px;padding:2px 8px;text-transform:uppercase}
.investor-card .investor-name{font-family:var(--font-head);font-size:16px;font-weight:700;color:var(--text);margin:0;letter-spacing:.2px;padding-right:90px}
.investor-card .investor-grant{font-family:var(--font-head);font-size:22px;font-weight:700;color:var(--gold);letter-spacing:.3px;line-height:1.1;margin-top:2px;font-variant-numeric:tabular-nums}
.investor-card .investor-tagline{font-size:12.5px;color:var(--text-muted);line-height:1.45;margin:0}
.investor-card .investor-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-top:auto}
.investor-card .investor-price{font-family:var(--font-head);font-size:18px;font-weight:700;color:var(--text)}

/* v11.6 — global leaderboard tab */
.glb-wrap{padding:6px 2px 24px}
.glb-toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:4px 0 18px;
  padding:10px 12px;background:rgba(36,52,46,.45);border:1px solid rgba(199,154,62,.18);
  border-radius:8px}
.glb-cats{display:flex;flex-wrap:wrap;gap:6px}
.glb-wins{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.glb-cat-btn,.glb-win-pill{
  font-family:var(--font-head);font-size:13px;letter-spacing:.04em;
  padding:6px 12px;border-radius:5px;border:1px solid rgba(199,154,62,.25);
  background:transparent;color:var(--text-muted);cursor:pointer;
  transition:background .15s, color .15s, border-color .15s}
.glb-cat-btn:hover,.glb-win-pill:hover{color:var(--text);border-color:rgba(199,154,62,.5)}
.glb-cat-btn.active,.glb-win-pill.active{
  background:rgba(199,154,62,.18);color:var(--gold);border-color:var(--gold)}
.glb-win-pill{font-size:12px;padding:5px 10px}
.glb-table{width:100%;border-collapse:collapse;margin-top:6px;
  font-family:var(--font-body);font-size:14px}
.glb-table thead th{font-family:var(--font-head);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-muted);font-weight:600;
  text-align:left;padding:8px 10px;border-bottom:1px solid rgba(199,154,62,.25)}
.glb-table th.glb-rank,.glb-table td.glb-rank{width:50px;text-align:center;font-variant-numeric:tabular-nums}
.glb-table th.glb-val,.glb-table td.glb-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}
.glb-table tbody tr{border-bottom:1px solid rgba(199,154,62,.08)}
.glb-table tbody td{padding:9px 10px;color:var(--text)}
.glb-table tbody tr.glb-me{background:rgba(199,154,62,.10)}
.glb-table tbody tr.glb-me td{color:var(--gold)}
.glb-name{color:var(--text)}
.glb-you{color:var(--gold);font-style:italic;font-size:12px;margin-left:4px}
.glb-empty{padding:24px;text-align:center;color:var(--text-muted);font-family:var(--font-body);font-size:14px}
.glb-empty.err{color:#c97a6c}
.glb-empty .btn{margin-top:10px}
.glb-me-row{display:grid;grid-template-columns:50px 1fr auto;gap:8px;align-items:baseline;
  padding:10px 10px;margin-top:8px;
  background:rgba(199,154,62,.14);border:1px solid rgba(199,154,62,.35);
  border-radius:6px;font-family:var(--font-body);font-size:14px;color:var(--gold)}
.glb-me-row .glb-rank{font-variant-numeric:tabular-nums;text-align:center;font-weight:700}
.glb-me-row .glb-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}
.glb-footer{margin-top:18px;padding:12px 14px;
  background:rgba(36,52,46,.4);border:1px solid rgba(199,154,62,.18);border-radius:6px;
  font-family:var(--font-body);font-size:13px;color:var(--text-muted);
  display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.glb-footer .btn{font-family:var(--font-head)}
@media (max-width:720px){
  .glb-toolbar{padding:8px}
  .glb-wins{margin-left:0;width:100%}
  .glb-table{font-size:13px}
  .glb-table tbody td{padding:7px 6px}
}
