/* ============================================================
   styles.css — Arrow Dynamic Archery
   Foundation: reset, vars, nav, common components, layouts,
   all responsive media queries, live page, landing page.
   Load order: components.css → styles.css → admin.css
   ============================================================ */


/* ── RESET & VARS ── */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  --teal-light:#4ECDC4; --teal-bright:#7DE8E1; --teal-mid:#1A4A5A; --teal:#0A1A20;
  --dark:#0A1A20; --dark2:#0F2430; --dark3:#162D38; --border:#1E3D4D;
  --text:#E8F4F8; --muted:#7AA8BA; --red:#E84855; --green:#52D98B;
  --gold:#F5C842; --purple:#B48EF5; --orange:#F0883E;
}
html{scroll-behavior:smooth;}
body{font-family:'DM Sans',sans-serif;background:var(--dark);color:var(--text);min-height:100vh;min-height:-webkit-fill-available;}

/* ── NAV ── */
nav{
  background:var(--dark2);border-top:3px solid var(--teal-light);border-bottom:2px solid var(--teal-mid);
  padding:0 max(1rem,env(safe-area-inset-left));display:flex;align-items:center;
  justify-content:space-between;height:60px;position:sticky;top:0;z-index:100;
}
.nav-brand{display:flex;align-items:center;gap:10px;}
.nav-brand img{height:40px;width:40px;flex-shrink:0;}
.nav-brand-text{display:flex;flex-direction:column;line-height:1.2;}
.nav-brand-text .nb1{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:2px;color:var(--teal-light);}
.nav-brand-text .nb2{font-size:0.6rem;color:var(--muted);letter-spacing:2px;text-transform:uppercase;}
.nav-tabs{display:flex;gap:3px;flex-wrap:nowrap;overflow-x:auto;}
.nav-tab{
  padding:6px 10px;border-radius:6px;border:1px solid transparent;background:none;
  color:var(--muted);font-family:'DM Sans',sans-serif;font-size:0.78rem;font-weight:600;
  cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;
}
.nav-tab:hover{color:var(--text);background:var(--dark3);}
.nav-tab.active{color:var(--teal-light);background:rgba(78,205,196,0.1);border-color:rgba(78,205,196,0.3);}

/* ── VIEWS ── */
.view{display:none !important;padding:1rem;max-width:1160px;margin:0 auto;}
.view.active{display:block !important;}

/* ── COMMON ── */
.card{background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:1.1rem;margin-bottom:1rem;}
.card-title{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:1px;color:var(--teal-light);margin-bottom:0.8rem;}
.sec-title{
  font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1.5px;color:var(--text);
  margin-bottom:0.9rem;padding-bottom:0.5rem;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:0.5rem;
}
.badge{font-size:0.7rem;padding:2px 8px;border-radius:20px;font-weight:600;}
.badge-teal{background:rgba(78,205,196,0.15);color:var(--teal-light);}
.badge-blue{background:rgba(26,74,90,0.4);color:var(--muted);}
.badge-gold{background:rgba(245,200,66,0.15);color:var(--gold);}
.badge-red{background:rgba(232,72,85,0.15);color:var(--red);}
.badge-green{background:rgba(82,217,139,0.15);color:var(--green);}
.empty{text-align:center;padding:2rem;color:var(--muted);font-size:0.88rem;}

/* ── FORMS ── */
.form-row{display:flex;gap:0.6rem;margin-bottom:0.6rem;flex-wrap:wrap;}
.form-group{display:flex;flex-direction:column;gap:3px;flex:1;min-width:130px;}
.form-group label{font-size:0.72rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:0.4px;}
.form-group input,.form-group select{
  background:var(--dark3);border:1px solid var(--border);border-radius:7px;
  color:var(--text);padding:8px 10px;font-family:'DM Sans',sans-serif;font-size:0.88rem;outline:none;width:100%;
}
.form-group input:focus,.form-group select:focus{border-color:var(--teal-light);}
.form-group select option{background:var(--dark2);}
.form-hint{font-size:0.74rem;color:var(--muted);margin:-0.3rem 0 0.6rem;}

/* ── BUTTONS ── */
.btn{padding:8px 16px;border-radius:7px;border:none;font-family:'DM Sans',sans-serif;font-size:0.85rem;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:5px;transition:opacity 0.15s;}
.btn:hover{opacity:0.88;}
.btn-primary{background:var(--teal-light);color:var(--teal);}
.btn-danger{background:rgba(232,72,85,0.15);color:var(--red);border:1px solid rgba(232,72,85,0.3);}
.btn-ghost{background:var(--dark3);color:var(--text);border:1px solid var(--border);}
.btn-gold{background:rgba(245,200,66,0.15);color:var(--gold);border:1px solid rgba(245,200,66,0.3);}
.btn-sm{padding:5px 10px;font-size:0.78rem;}

/* ── POS COLORS ── */
.pcolor-A{color:var(--teal-light);}
.pcolor-B{color:var(--gold);}
.pcolor-C{color:var(--purple);}
.posBg(p){ }

/* ── STAT CARDS (Dashboard) ── */
.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:1.2rem;}
.stat-card{background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;}
.stat-val{font-family:'Bebas Neue',sans-serif;font-size:2.2rem;line-height:1;color:var(--teal-light);}
.stat-lbl{font-size:0.68rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.5px;margin-top:3px;}
.stat-sub{font-size:0.72rem;color:var(--muted);margin-top:4px;}

/* ── CHART CONTAINER ── */
.chart-wrap{position:relative;background:var(--dark2);border:1px solid var(--border);border-radius:10px;padding:1rem;margin-bottom:1rem;}
.chart-title{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:1px;color:var(--teal-light);margin-bottom:0.75rem;}
.chart-canvas-wrap{position:relative;width:100%;overflow-x:auto;}
canvas{display:block;max-width:100%;}

/* ── TOP PERFORMERS ── */
.top-list{display:flex;flex-direction:column;gap:7px;}
.top-item{
  background:var(--dark3);border:1px solid var(--border);border-radius:8px;
  padding:9px 12px;display:flex;align-items:center;gap:10px;
}
.top-rank{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--muted);width:26px;text-align:center;flex-shrink:0;}
.top-rank.r1{color:var(--gold);}
.top-rank.r2{color:var(--muted);}
.top-rank.r3{color:var(--orange);}
.top-info{flex:1;min-width:0;}
.top-name{font-weight:700;font-size:0.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.top-meta{font-size:0.68rem;color:var(--muted);}
.top-score{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;color:var(--teal-light);text-align:right;flex-shrink:0;}
.top-score small{display:block;font-family:'DM Mono',monospace;font-size:0.6rem;color:var(--muted);font-weight:400;}

/* ── SESSION HISTORY LIST ── */
.session-history-list{display:flex;flex-direction:column;gap:8px;}
.session-hist-item{
  background:var(--dark2);border:1px solid var(--border);border-radius:10px;overflow:hidden;
}
.session-hist-hdr{
  padding:0.75rem 1rem;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;cursor:pointer;flex-wrap:wrap;
}
.session-hist-hdr:hover{background:rgba(255,255,255,0.02);}
.session-hist-name{font-family:'Bebas Neue',sans-serif;font-size:1.05rem;letter-spacing:1px;color:var(--teal-light);}
.session-hist-meta{font-size:0.72rem;color:var(--muted);}
.session-hist-right{display:flex;align-items:center;gap:10px;}
.session-hist-chev{color:var(--muted);font-size:0.7rem;transition:transform 0.2s;}
.session-hist-body{display:none;border-top:1px solid var(--border);padding:0.75rem 1rem;background:rgba(0,0,0,0.1);}

/* Archer profile cards */
.archer-profile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;margin-top:0.75rem;}
.archer-profile-card{
  background:var(--dark3);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;transition:border-color 0.15s;
}
.archer-profile-card:hover{border-color:var(--teal-light);}
.apc-header{
  background:linear-gradient(135deg,var(--teal-mid),var(--dark3));
  padding:0.9rem 1rem;display:flex;align-items:center;gap:10px;
}
.apc-avatar{
  width:42px;height:42px;border-radius:50%;background:var(--teal-mid);
  border:2px solid var(--teal-light);display:flex;align-items:center;justify-content:center;
  font-family:'Bebas Neue',sans-serif;font-size:1.1rem;color:var(--teal-light);flex-shrink:0;
}
.apc-name{font-weight:700;font-size:0.95rem;}
.apc-meta{font-size:0.7rem;color:var(--muted);margin-top:1px;}
.apc-stats{padding:0.75rem 1rem;display:grid;grid-template-columns:repeat(3,1fr);gap:0.5rem;border-bottom:1px solid var(--border);}
.apc-stat-val{font-family:'DM Mono',monospace;font-size:1.1rem;font-weight:700;color:var(--text);}
.apc-stat-lbl{font-size:0.6rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;margin-top:1px;}
.apc-actions{padding:0.6rem 1rem;display:flex;gap:6px;}

/* Trend indicators */
.trend-up{color:var(--green);}
.trend-dn{color:var(--red);}
.trend-eq{color:var(--muted);}

/* Score sparkline (inline SVG chart) */
.sparkline-wrap{padding:0.75rem 1rem;border-top:1px solid var(--border);}
.sparkline-label{font-size:0.65rem;color:var(--muted);text-transform:uppercase;letter-spacing:0.4px;margin-bottom:4px;}

/* ── MODALS ── */
.modal-bg{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.7);z-index:400;align-items:center;justify-content:center;padding:1rem;}
.modal-bg.open{display:flex;}
.modal-box{background:var(--dark2);border:1px solid var(--border);border-radius:12px;padding:1.4rem;max-width:420px;width:100%;max-height:90vh;overflow-y:auto;}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--teal-light);margin-bottom:0.6rem;}
.modal-body{font-size:0.88rem;color:var(--muted);margin-bottom:1rem;}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:1rem;}

/* ── REPORTS ── */
.report-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:1rem;align-items:center;}
.report-filter select{background:var(--dark3);border:1px solid var(--border);border-radius:7px;color:var(--text);padding:7px 10px;font-family:'DM Sans',sans-serif;font-size:0.82rem;outline:none;}
.report-filter select:focus{border-color:var(--teal-light);}
.report-filter select option{background:var(--dark2);}

/* Progress bar mini */
.mini-bar{height:6px;background:var(--dark3);border-radius:3px;overflow:hidden;margin-top:4px;}
.mini-bar-fill{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--teal-mid),var(--teal-light));transition:width 0.4s;}

/* Two-col layout */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media(max-width:700px){.grid2{grid-template-columns:1fr;}}

.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem;}

/* ── RESPONSIVE ── */
/* ══════════════════════════════════════════════════════
   TABLET  ≤ 768px
══════════════════════════════════════════════════════ */
@media(max-width:768px){
  /* Nav */
  nav{padding:0 0.75rem;height:54px;}
  .nav-brand img{height:34px;width:34px;}
  .nav-brand-text .nb1{font-size:0.88rem;}
  .nav-brand-text .nb2{display:none;}
  .nav-tab{padding:5px 8px;font-size:0.72rem;}
  .view{padding:0.75rem;}

  /* Layout */
  .form-row{gap:0.5rem;}
  .two-col,.three-col{grid-template-columns:1fr;}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .archer-profile-grid{grid-template-columns:1fr;}
  .lanes-grid{grid-template-columns:1fr;}

  /* Scoreboard */
  .sb-row{grid-template-columns:26px 24px 1fr 46px 52px 60px 18px;gap:0.4rem;padding:0.65rem 0.85rem;}
  .sb-row .sb-stat:nth-child(6){display:none;}
  .live-title{font-size:1.4rem;}

  /* ── SCORING GROUP SELECT ── */
  .score-mode-wrap{gap:8px;}
  .score-mode-btn{padding:0.8rem;}
  .smb-desc{font-size:0.72rem;}
  .grp-archer-row{padding:9px 12px;gap:8px;}
  .grp-archer-name{font-size:0.9rem;}
  .grp-archer-meta{font-size:0.68rem;}
  .grp-archer-total{font-size:1.5rem;}
  .grp-score-btn{padding:6px 12px;font-size:0.8rem;}

  /* ── ACTIVE SCORING SCREEN ── */
  /* Score header — side by side but tighter */
  .score-hdr{padding:0.8rem 1rem;gap:0.6rem;}
  .score-hdr-name{font-size:1.5rem;letter-spacing:1.5px;}
  .score-hdr-total{font-size:2.6rem;}

  /* Ends table — reduce padding so it fits */
  .ends-table th,.ends-table td{padding:5px 5px;font-size:0.8rem;}
  .ends-table td:first-child{font-size:0.7rem;}
  .ends-wrap-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}

  /* Keyboard — keep 6-col on tablet, slightly shorter */
  .key-grid{grid-template-columns:repeat(6,1fr);gap:6px;}
  .score-btn{height:60px;font-size:1.55rem;}
  .score-btn.bundo{grid-column:span 6;height:44px;font-size:0.85rem;}
  .keyboard-wrap{padding:0.85rem;}
  .key-hint{font-size:0.8rem;}

  /* Strips */
  .next-archer-strip{padding:0.75rem 1rem;}
  .end-done-wrap{padding:0.85rem 1rem;}
  .end-done-total{font-size:2rem;}

  /* Round complete */
  .round-complete-card{padding:1.3rem 1rem;}
  .rc-headline{font-size:1.7rem;}
  .rc-scores{gap:1.5rem;}
}

/* ══════════════════════════════════════════════════════
   MOBILE  ≤ 480px
══════════════════════════════════════════════════════ */
@media(max-width:480px){
  /* Nav */
  nav{padding:0 0.6rem;height:52px;}
  .nav-brand-text{display:none;}
  .nav-brand img{height:32px;width:32px;}
  .nav-tab{padding:6px 8px;font-size:0.73rem;}
  .view{padding:0.5rem;}
  .card{padding:0.85rem;}

  /* Admin / forms */
  .form-row{flex-direction:column;gap:0.5rem;}
  .form-group{min-width:unset;width:100%;max-width:unset!important;}
  .session-grid{grid-template-columns:1fr 1fr;gap:6px;}
  .stat-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .stat-val{font-size:1.8rem;}
  .two-col,.three-col{grid-template-columns:1fr;}
  .vt-wrap{gap:5px;}
  .vt-btn{padding:5px 10px;font-size:0.75rem;}

  /* ── SCORING GROUP SELECT ── */
  .score-mode-wrap{flex-direction:column;gap:8px;}
  .score-mode-btn{min-width:unset;width:100%;padding:0.75rem;}
  .smb-title{font-size:1rem;}
  .smb-desc{font-size:0.72rem;}
  .grp-card-hdr{padding:7px 10px;}
  .grp-card-title{font-size:1rem;}
  .grp-archer-row{padding:9px 10px;gap:8px;}
  .grp-archer-name{font-size:0.88rem;}
  .grp-archer-meta{font-size:0.64rem;}
  .grp-archer-total{font-size:1.4rem;}
  .grp-archer-ends{font-size:0.62rem;}
  .grp-score-btn{padding:6px 10px;font-size:0.76rem;}
  .pos-badge{width:24px;height:24px;font-size:0.95rem;}
  .unassigned-grid{grid-template-columns:1fr 1fr;}

  /* ── ACTIVE SCORING — BREADCRUMB ── */
  .flow-crumb{font-size:0.7rem;gap:5px;margin-bottom:0.6rem;}

  /* ── ACTIVE SCORING — HEADER ── */
  /* Stack name left, score right — stays horizontal on mobile */
  .score-hdr{
    flex-direction:row;align-items:center;
    padding:0.7rem 0.85rem;gap:0.5rem;
    margin-bottom:0.6rem;
  }
  .score-hdr-name{font-size:1.3rem;letter-spacing:1px;}
  .score-hdr-sub{font-size:0.68rem;}
  .score-hdr-lane{font-size:0.7rem;padding:2px 8px;margin-top:3px;}
  .target-badge{font-size:0.7rem;padding:2px 8px;margin-top:3px;}
  .score-hdr-total{font-size:2.4rem;line-height:1;}
  .score-hdr-total small{font-size:0.82rem;}
  .score-hdr-end{font-size:0.7rem;}

  /* ── ACTIVE SCORING — NEXT ARCHER STRIP ── */
  .next-archer-strip{flex-direction:column;align-items:stretch;gap:0.6rem;padding:0.75rem;}
  .btn-next-archer{width:100%;text-align:center;justify-content:center;padding:10px;}

  /* ── ACTIVE SCORING — END DONE SUMMARY ── */
  .end-done-wrap{flex-direction:column;align-items:flex-start;padding:0.75rem;gap:0.5rem;margin-bottom:0.75rem;}
  .end-done-total{font-size:1.8rem;align-self:flex-end;}
  .end-arrow-chip{width:34px;height:34px;font-size:1.1rem;}

  /* ── ACTIVE SCORING — ROUND COMPLETE ── */
  .round-complete-card{padding:1.1rem 0.85rem;margin-bottom:0.75rem;}
  .rc-emoji{font-size:2.4rem;margin-bottom:0.4rem;}
  .rc-headline{font-size:1.5rem;letter-spacing:1.5px;}
  .rc-message{font-size:0.82rem;margin-bottom:0.9rem;}
  .rc-scores{gap:1rem;padding:0.6rem;}
  .rc-score-val{font-size:1.7rem;}
  .rc-score-lbl{font-size:0.58rem;}
  .rc-target-row{font-size:0.76rem;padding:0.4rem 0.75rem;}

  /* ── ACTIVE SCORING — ENDS TABLE ── */
  /* Wrap in scrollable container (added via JS in refreshUI) */
  .ends-table{font-size:0.78rem;margin-bottom:0.75rem;}
  .ends-table th{padding:4px 4px;font-size:0.6rem;letter-spacing:0;}
  .ends-table td{padding:5px 4px;font-size:0.82rem;}
  .ends-table td:first-child{font-size:0.65rem;white-space:nowrap;}
  .esub{font-size:0.82rem;}

  /* ── ACTIVE SCORING — KEYBOARD ── */
  /* 4-column grid: X 10 9 8 / 7 6 5 4 / 3 2 1 M / Undo (full) */
  .keyboard-wrap{padding:0.6rem;margin-bottom:0.6rem;border-radius:8px;}
  .key-hint{font-size:0.76rem;margin-bottom:0.5rem;letter-spacing:0.3px;}
  .key-grid{grid-template-columns:repeat(4,1fr);gap:7px;}
  .score-btn{
    height:68px;font-size:1.65rem;border-radius:8px;
    /* Bigger tap area, avoid fat-finger misses */
    min-height:60px;
  }
  .score-btn.bundo{grid-column:span 4;height:46px;font-size:0.85rem;border-radius:8px;}

  /* ── ACTIVE SCORING — BOTTOM BUTTONS ── */
  #sc-active > div:last-child{flex-direction:row;gap:6px;}
  #sc-active > div:last-child .btn{flex:1;justify-content:center;font-size:0.8rem;padding:8px 10px;}

  /* Edit arrow sheet */
  .edit-sheet{padding:1rem 0.75rem calc(1.5rem + env(safe-area-inset-bottom));}
  .es-grid{grid-template-columns:repeat(4,1fr);gap:7px;}
  .es-btn{height:58px;font-size:1.4rem;border-radius:8px;}
  .es-btn.bdel,.es-btn.bcancel{grid-column:span 2;height:40px;}
  .es-title{font-size:1rem;}

  /* Scoreboard */
  .sb-row{grid-template-columns:26px 22px 1fr 52px 18px;gap:0.35rem;padding:0.6rem 0.65rem;}
  .sb-row .sb-stat:nth-child(4),.sb-row .sb-stat:nth-child(5),.sb-row .sb-stat:nth-child(6){display:none;}
  .sb-rank{font-size:1.1rem;}
  .sb-tot-v{font-size:1.4rem;}
  .sb-rname{font-size:0.82rem;}
  .sb-rmeta{font-size:0.62rem;}
  .sb-det{padding:0.6rem 0.65rem;}
  .detail-tbl th,.detail-tbl td{padding:3px 3px;font-size:0.68rem;}
  .det-stats{gap:0.65rem;}
  .dst-v{font-size:0.85rem;}
  .dst-l{font-size:0.55rem;}

  /* Live header */
  .live-title{font-size:1.15rem;letter-spacing:1.2px;}
  .live-logo{height:38px;width:38px;}
  .live-sub{font-size:0.58rem;}

  /* Standings table — hide less critical cols */
  .stand-tbl th:nth-child(4),.stand-tbl td:nth-child(4),
  .stand-tbl th:nth-child(7),.stand-tbl td:nth-child(7),
  .stand-tbl th:nth-child(8),.stand-tbl td:nth-child(8){display:none;}
  .stand-tbl th,.stand-tbl td{padding:6px 6px;font-size:0.78rem;}
}

/* ══════════════════════════════════════════════════════
   SMALL MOBILE  ≤ 360px  (e.g. iPhone SE, older Android)
══════════════════════════════════════════════════════ */
@media(max-width:360px){
  .nav-tab{padding:5px 6px;font-size:0.68rem;}
  .score-hdr-name{font-size:1.15rem;}
  .score-hdr-total{font-size:2rem;}
  .score-btn{height:62px;font-size:1.5rem;}
  .score-btn.bundo{height:42px;font-size:0.8rem;}
  .key-grid{gap:5px;}
  .keyboard-wrap{padding:0.5rem;}
  .grp-score-btn{padding:5px 8px;font-size:0.72rem;}
}

/* ══════════════════════════════════════════════════════
   LARGE DESKTOP  ≥ 1200px
══════════════════════════════════════════════════════ */
@media(min-width:1200px){
  .view{max-width:1160px;}
  .sb-row{grid-template-columns:32px 28px 1fr 56px 56px 60px 72px 22px;gap:0.75rem;}
  .key-grid{gap:10px;}
  .score-btn{height:72px;font-size:1.9rem;}
  .score-btn.bundo{grid-column:span 6;}
  .stat-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
  .score-hdr-name{font-size:2rem;}
  .score-hdr-total{font-size:3.5rem;}
  .ends-table th,.ends-table td{padding:7px 10px;font-size:0.95rem;}
}

/* ── SESSION / SCORE EDIT MODALS ── */
.mgmt-modal-bg{position:fixed;inset:0;background:rgba(0,0,0,0.72);z-index:500;display:flex;align-items:center;justify-content:center;padding:1rem;}
.mgmt-modal{background:var(--dark2);border:1px solid var(--border);border-radius:14px;padding:1.4rem;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;}
.mgmt-modal h2{font-family:'Bebas Neue',sans-serif;letter-spacing:1.5px;color:var(--teal-light);font-size:1.2rem;margin-bottom:1rem;}
.mgmt-modal-footer{display:flex;gap:8px;justify-content:flex-end;margin-top:1.2rem;flex-wrap:wrap;}
.score-edit-grid{border-collapse:collapse;width:100%;font-size:0.8rem;margin-top:0.6rem;}
.score-edit-grid th{background:var(--dark3);color:var(--muted);padding:5px 6px;border:1px solid var(--border);text-align:center;font-weight:600;}
.score-edit-grid td{border:1px solid var(--border);padding:3px;text-align:center;}
.score-edit-grid input{width:44px;background:var(--dark3);border:1px solid var(--border);border-radius:5px;color:var(--text);text-align:center;padding:4px 2px;font-size:0.82rem;font-family:'DM Mono',monospace;}
.score-edit-grid input:focus{outline:none;border-color:var(--teal-light);}
.score-edit-grid .end-total{font-family:'Bebas Neue',sans-serif;font-size:1rem;color:var(--teal-light);}
.score-edit-grid .run-total{font-family:'Bebas Neue',sans-serif;font-size:0.9rem;color:var(--muted);}
.hist-action-row{display:flex;gap:6px;align-items:center;flex-wrap:wrap;}
.sess-archer-edit-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);gap:8px;}
.sess-archer-edit-row:last-child{border-bottom:none;}

/* ── LIVE PAGE ── */
.live-upcoming-card{
  background:var(--dark2);border:1px solid var(--border);border-radius:10px;
  padding:1rem;margin-bottom:10px;display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
}
.live-upcoming-date{
  font-family:'Bebas Neue',sans-serif;font-size:2rem;line-height:1;
  color:var(--teal-light);min-width:48px;text-align:center;
}
.live-upcoming-month{font-size:0.65rem;color:var(--muted);text-align:center;letter-spacing:1px;text-transform:uppercase;}
.live-upcoming-info{flex:1;}
.live-upcoming-name{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:var(--text);}
.live-upcoming-meta{font-size:0.75rem;color:var(--muted);margin-top:2px;}
.live-hist-card{
  background:var(--dark2);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;margin-bottom:10px;
}
.live-hist-hdr{
  padding:10px 14px;background:var(--dark3);display:flex;align-items:center;
  justify-content:space-between;gap:8px;flex-wrap:wrap;cursor:pointer;
}
.live-hist-name{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:1px;color:var(--teal-light);}
.live-hist-date{font-size:0.72rem;color:var(--muted);}
.live-hist-body{padding:10px;}
.live-hist-row{
  display:flex;align-items:center;gap:8px;padding:6px 0;
  border-bottom:1px solid var(--border);font-size:0.82rem;
}
.live-hist-row:last-child{border-bottom:none;}
.live-hist-rank{
  font-family:'Bebas Neue',sans-serif;font-size:1.2rem;color:var(--muted);
  min-width:28px;text-align:center;
}
.live-hist-rank.gold{color:var(--gold);}
.live-hist-rank.silver{color:#b0bec5;}
.live-hist-rank.bronze{color:#a0714f;}
.live-hist-score{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;color:var(--teal-light);min-width:50px;text-align:right;}
.live-hist-archer{flex:1;}
.live-hist-archer-name{font-weight:700;}
.live-hist-archer-meta{font-size:0.7rem;color:var(--muted);}
.live-active-badge{
  display:inline-flex;align-items:center;gap:6px;background:rgba(82,217,139,0.12);
  border:1px solid rgba(82,217,139,0.3);border-radius:20px;padding:4px 12px;
  font-size:0.75rem;color:var(--green);margin-bottom:0.5rem;
}
.live-no-session{
  text-align:center;padding:2.5rem 1rem;
}
.live-no-session-icon{font-size:2.5rem;margin-bottom:0.5rem;}
.live-no-session-title{font-family:'Bebas Neue',sans-serif;font-size:1.3rem;letter-spacing:2px;color:var(--muted);}
.live-no-session-sub{font-size:0.8rem;color:var(--muted);margin-top:0.25rem;}


/* Nav tabs as proper links */
a.nav-tab { text-decoration: none; }


/* ── LANDING PAGE ── */
#view-landing{min-height:calc(100vh - 60px);}
#view-landing.active{display:block;}
.landing-hero{
  background:linear-gradient(135deg, var(--dark) 0%, #0D2535 50%, #0A1E2C 100%);
  padding:4rem 2rem 3rem;text-align:center;position:relative;overflow:hidden;
}
.landing-hero::before{
  content:'';position:absolute;inset:0;
  background:radial-gradient(circle at 70% 50%,rgba(78,205,196,0.07) 0%,transparent 65%),
             radial-gradient(circle at 30% 30%,rgba(78,205,196,0.04) 0%,transparent 55%);
}
.landing-logo-hero{width:100px;height:100px;margin:0 auto 1.5rem;position:relative;z-index:1;}
.landing-title{font-family:'Bebas Neue',sans-serif;font-size:clamp(2rem,6vw,3.5rem);
  letter-spacing:3px;color:#fff;margin-bottom:0.4rem;position:relative;z-index:1;}
.landing-subtitle{font-size:1.05rem;color:var(--muted);max-width:520px;
  margin:0 auto 2.5rem;line-height:1.7;position:relative;z-index:1;}
.landing-cards{display:flex;gap:1.5rem;justify-content:center;flex-wrap:wrap;
  padding:0 1rem 3rem;max-width:900px;margin:0 auto;}
.landing-card{
  background:var(--dark2);border:1px solid var(--border);border-radius:16px;
  padding:2rem 1.8rem;flex:1;min-width:240px;max-width:280px;
  text-align:center;text-decoration:none;color:var(--text);
  transition:transform .2s,border-color .2s,box-shadow .2s;cursor:pointer;
}
.landing-card:hover{transform:translateY(-4px);border-color:var(--teal-mid);
  box-shadow:0 12px 32px rgba(78,205,196,0.12);}
.landing-card-icon{font-size:2.8rem;margin-bottom:1rem;}
.landing-card-title{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;
  letter-spacing:1.5px;margin-bottom:0.5rem;color:var(--teal-light);}
.landing-card-desc{font-size:0.82rem;color:var(--muted);line-height:1.6;}
.landing-card-cta{display:inline-block;margin-top:1.2rem;padding:8px 20px;
  border-radius:8px;font-size:0.82rem;font-weight:700;}
.landing-card.card-archer .landing-card-cta{background:var(--teal-mid);color:var(--dark);}
.landing-card.card-admin  .landing-card-cta{background:rgba(78,205,196,0.15);color:var(--teal-light);border:1px solid var(--teal-mid);}
.landing-card.card-live   .landing-card-cta{background:rgba(82,217,139,0.15);color:var(--green);border:1px solid rgba(82,217,139,0.4);}
.landing-info{background:var(--dark2);border-top:1px solid var(--border);padding:2.5rem 1.5rem;text-align:center;}
.landing-info-grid{display:flex;gap:2rem;justify-content:center;flex-wrap:wrap;max-width:800px;margin:0 auto;}
.landing-stat{text-align:center;}
.landing-stat-v{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;color:var(--teal-light);line-height:1;}
.landing-stat-l{font-size:0.75rem;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-top:2px;}


/* ── Lock non-active views out of layout completely ── */
.view:not(.active) {
  display: none !important;
  height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  margin: 0 !important;
  pointer-events: none !important;
}