/* ============================================================
   CricLive — Broadcast-grade stylesheet
   Fonts: Hind Siliguri (Bengali body) · Oswald (display/scores)
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Hind+Siliguri:wght@400;500;600;700&family=Oswald:wght@400;500;600;700&display=swap');

:root{
  /* base */
  --bg:#070d0a; --bg2:#0a130e;
  --surface:#101a15; --surface2:#16241d; --surface3:#1d3026;
  --line:#22382c; --line2:#2c4839;
  --text:#eaf4ee; --muted:#8ba89a; --muted2:#6d8a7c;
  /* accents */
  --green:#2fe07a; --green-d:#13a356; --green-dd:#0b6e3a;
  --teal:#27d3c4;
  --amber:#ffba2e; --amber-d:#d98f00;
  --red:#ff5763; --red-d:#c93544;
  --blue:#46b1ff;
  /* shape */
  --radius:16px; --radius-sm:11px; --radius-xs:8px;
  --shadow:0 10px 34px rgba(0,0,0,.5);
  --shadow-sm:0 4px 16px rgba(0,0,0,.35);
  --glow:0 0 0 1px rgba(47,224,122,.25),0 0 22px -6px rgba(47,224,122,.5);
  --ring:inset 0 1px 0 rgba(255,255,255,.05);
  --maxw:780px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:'Hind Siliguri',system-ui,sans-serif;color:var(--text);line-height:1.55;
  -webkit-font-smoothing:antialiased;letter-spacing:.1px;
  background:
    radial-gradient(1100px 520px at 50% -180px,rgba(47,224,122,.12),transparent 70%),
    radial-gradient(900px 500px at 110% 8%,rgba(39,211,196,.07),transparent 60%),
    linear-gradient(180deg,var(--bg2),var(--bg) 60%);
  background-attachment:fixed;min-height:100vh}
.display,.bs-num,.sh-runs,.sh-score{font-family:'Oswald',sans-serif}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;color:inherit}
input,select{font-family:inherit}
::selection{background:rgba(47,224,122,.3)}

/* ====== brand marks ====== */
.ball-dot{display:inline-block;width:15px;height:15px;border-radius:50%;
  background:radial-gradient(circle at 32% 30%,#fff,#ff5763 55%,#9e1f2a);
  box-shadow:0 0 10px rgba(255,87,99,.6),inset -1px -1px 2px rgba(0,0,0,.4);vertical-align:-2px;
  position:relative}
.ball-dot::after{content:"";position:absolute;inset:0;border-radius:50%;
  background:linear-gradient(90deg,transparent 46%,rgba(255,255,255,.5) 47%,rgba(255,255,255,.5) 48%,transparent 49%)}
.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#fff;
  box-shadow:0 0 0 0 rgba(255,87,99,.8);animation:pulse 1.4s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(255,87,99,.65)}70%{box-shadow:0 0 0 9px rgba(255,87,99,0)}100%{box-shadow:0 0 0 0 rgba(255,87,99,0)}}

/* ============================================================
   PUBLIC — header / shell
   ============================================================ */
.pub-header,.admin-nav{position:sticky;top:0;z-index:20;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:14px 18px;border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,rgba(10,19,14,.92),rgba(10,19,14,.78));
  backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2)}
.pub-brand,.brand{font-weight:700;font-size:1.18rem;display:flex;align-items:center;gap:10px;letter-spacing:.2px}
.pub-brand .ball-dot{margin:0 1px}
.pub-back{display:inline-grid;place-items:center;width:34px;height:34px;margin-right:2px;
  border-radius:10px;background:var(--surface2);border:1px solid var(--line);
  color:var(--green);font-size:1.15rem;transition:.18s}
.pub-back:hover{background:var(--surface3);transform:translateX(-2px)}
.pub-tag{color:var(--muted);font-size:.85rem}
.conn-dot{width:10px;height:10px;border-radius:50%;background:#4a5d53;transition:.3s;position:relative}
.conn-dot.ok{background:var(--green);box-shadow:0 0 10px var(--green)}
.conn-dot.ok::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid rgba(47,224,122,.4);animation:ping 1.8s infinite}
@keyframes ping{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.8);opacity:0}}

.pub-main{max-width:var(--maxw);margin:0 auto;padding:24px 16px 70px}
.pub-h1{font-family:'Oswald';font-weight:600;font-size:1.55rem;margin-bottom:18px;
  text-transform:uppercase;letter-spacing:2px;
  background:linear-gradient(90deg,var(--text),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}
.pub-empty{color:var(--muted);text-align:center;padding:50px 16px;border:1px dashed var(--line2);border-radius:var(--radius);background:rgba(255,255,255,.01)}
.pub-footer{text-align:center;padding:26px;border-top:1px solid var(--line);font-size:.82rem;color:var(--muted2);letter-spacing:.5px}
.pub-footer a{color:var(--green)}

/* ====== match list cards ====== */
.pub-grid{display:grid;gap:16px}
.pub-match{display:block;position:relative;overflow:hidden;
  background:linear-gradient(165deg,var(--surface2),var(--surface));
  border:1px solid var(--line);border-radius:var(--radius);padding:18px;
  box-shadow:var(--shadow-sm),var(--ring);transition:.2s}
.pub-match::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--line2);transition:.2s}
.pub-match:hover{transform:translateY(-3px);border-color:var(--green-d);box-shadow:var(--shadow),var(--glow)}
.pub-match:hover::before{background:linear-gradient(var(--green),var(--teal))}
.pm-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;font-size:.8rem}
.pm-status,.status-pill,.live-badge,.done-badge,.up-badge{display:inline-flex;align-items:center;gap:6px;
  font-weight:600;padding:4px 11px;border-radius:30px;text-transform:uppercase;letter-spacing:.6px;font-size:.72rem}
.st-live,.live-badge,.status-live{background:rgba(255,87,99,.15);color:#ff97a0;box-shadow:inset 0 0 0 1px rgba(255,87,99,.25)}
.st-upcoming,.up-badge,.status-upcoming{background:rgba(255,186,46,.14);color:var(--amber);box-shadow:inset 0 0 0 1px rgba(255,186,46,.22)}
.st-completed,.done-badge,.status-completed{background:var(--surface3);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line2)}
.pm-fmt{color:var(--muted)}
.pm-teams{display:grid;gap:9px;margin-bottom:8px}
.pm-team{display:flex;align-items:center;gap:11px;font-weight:600;font-size:1.08rem}
.pm-badge{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:11px;
  background:linear-gradient(145deg,var(--surface3),var(--surface));color:var(--green);
  font-family:'Oswald';font-size:.82rem;font-weight:600;border:1px solid var(--line2);box-shadow:var(--ring)}
.pm-scores{font-family:'Oswald';color:var(--text);font-size:1rem;display:grid;gap:4px;margin:10px 0;padding:10px 0;border-top:1px solid var(--line);letter-spacing:.5px}
.pm-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:8px;font-size:.84rem}
.pm-venue{color:var(--muted)}
.pm-result{color:var(--green);font-weight:600}
.pm-go{color:var(--green);font-weight:600;display:inline-flex;align-items:center;gap:4px}

/* ============================================================
   MATCH BOARD (public live)
   ============================================================ */
.match-main{max-width:var(--maxw)}
.board-head{text-align:center;margin-bottom:18px}
.bh-vs{font-family:'Oswald';font-size:1.5rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:14px;letter-spacing:.5px}
.bh-vs em{color:var(--muted2);font-style:normal;font-size:.8rem;text-transform:uppercase;letter-spacing:2px}
.bh-meta{color:var(--muted);font-size:.86rem;margin-top:6px}
.board-head .live-badge,.board-head .done-badge,.board-head .up-badge{margin-bottom:12px}

.waiting{text-align:center;color:var(--muted);padding:46px 16px;border:1px dashed var(--line2);border-radius:var(--radius);background:rgba(255,255,255,.01)}
.toss-note,.target-note{text-align:center;color:var(--amber);font-size:.9rem;margin-top:12px}

/* big score hero */
.big-score{position:relative;overflow:hidden;text-align:center;
  background:linear-gradient(165deg,var(--surface2),var(--surface) 70%);
  border:1px solid var(--line2);border-radius:var(--radius);padding:26px 18px 22px;
  box-shadow:var(--shadow),var(--ring);margin-bottom:14px}
.big-score::before{content:"";position:absolute;inset:0;
  background:radial-gradient(420px 150px at 50% -40px,rgba(47,224,122,.16),transparent 70%);pointer-events:none}
.bs-team{position:relative;font-weight:700;font-size:1.05rem;color:var(--green);letter-spacing:.4px}
.bs-num{position:relative;font-size:4.6rem;font-weight:700;line-height:.95;margin:6px 0 2px;letter-spacing:1px;
  background:linear-gradient(180deg,#fff,#cfeede);-webkit-background-clip:text;background-clip:text;color:transparent;
  text-shadow:0 6px 30px rgba(47,224,122,.18)}
.bs-w{font-size:2.3rem;color:var(--muted)}
@keyframes scorepop{0%{transform:scale(1.12);filter:brightness(1.4)}100%{transform:scale(1);filter:none}}
.bs-overs{position:relative;color:var(--muted);font-size:.92rem;letter-spacing:.5px}
.bs-crr{position:relative;margin-top:10px;display:inline-block;font-size:.84rem;color:var(--muted);
  background:var(--surface3);padding:6px 14px;border-radius:30px;border:1px solid var(--line2)}
.bs-crr strong{color:var(--text)}

.chase-strip{text-align:center;font-size:.95rem;margin-bottom:14px;padding:13px 16px;border-radius:var(--radius-sm);
  background:linear-gradient(90deg,rgba(255,186,46,.12),rgba(255,87,99,.12));
  border:1px solid rgba(255,186,46,.28);color:#ffe1ad}
.chase-strip strong{color:#fff}
.result-strip,.result-banner{text-align:center;font-weight:700;font-size:1.05rem;padding:16px;border-radius:var(--radius);
  background:linear-gradient(90deg,rgba(47,224,122,.16),rgba(39,211,196,.12));
  border:1px solid rgba(47,224,122,.35);color:#bff7d5;margin-bottom:14px;box-shadow:var(--glow)}

/* batsmen / bowler cards */
.live-cards{display:grid;gap:12px;margin-bottom:14px}
.lc{background:linear-gradient(165deg,var(--surface2),var(--surface));border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:6px 14px;box-shadow:var(--ring)}
.bat-line,.bowl-row{display:grid;grid-template-columns:1fr auto auto auto auto auto;gap:8px;align-items:center;
  padding:9px 0;font-size:.92rem;border-bottom:1px solid var(--line)}
.bat-line:last-child,.bowl-row:last-child{border-bottom:none}
.bat-line .bl-name,.bowl-row .bl-name{justify-self:start;font-weight:600;display:flex;align-items:center;gap:7px}
.bl-fig,.bl-score,.bl-sr{font-family:'Oswald';color:var(--muted);font-size:.86rem;letter-spacing:.3px;min-width:26px;text-align:right}
.bl-score{color:var(--text);font-size:1rem}
.strike-dot{display:inline-block;width:9px;height:9px;border-radius:50%;
  background:var(--green);flex:0 0 auto;box-shadow:0 0 7px var(--green);
  animation:strikepulse 1.8s ease-in-out infinite}
@keyframes strikepulse{0%,100%{opacity:1}50%{opacity:.5}}
/* match.php: striker সারি হাইলাইট */
.bat-line.on-strike{background:rgba(47,224,122,.08);border-radius:8px;padding-left:8px;margin-left:-8px}
.bat-line.on-strike .bl-name{color:var(--green);font-weight:700}
.bat-line.on-strike .dot{display:inline-block;width:9px;height:9px;border-radius:50%;
  background:var(--green);box-shadow:0 0 7px var(--green);animation:strikepulse 1.8s ease-in-out infinite;font-size:0}
/* scoring.php mini-table: striker সারি হাইলাইট */
.mini-table tr:has(.strike-dot) td:first-child{color:var(--green);font-weight:700}
.mini-table tr:has(.strike-dot){background:rgba(47,224,122,.08)}
.bowler-line .bowl-row{grid-template-columns:1fr auto auto auto auto}
.mini-table .bl-name span.muted{color:var(--muted2);font-weight:400;font-size:.8rem}

/* this over pills */
.over-strip{display:flex;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}
.os-label,.to-label{font-size:.72rem;text-transform:uppercase;letter-spacing:1.2px;color:var(--muted2);white-space:nowrap}
.os-balls,.this-over{display:flex;gap:7px;flex-wrap:wrap}
.bp,.ball-pill,.cr-ball{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 7px;border-radius:50%;
  font-family:'Oswald';font-weight:600;font-size:.86rem;background:var(--surface3);color:var(--text);border:1px solid var(--line2)}
.bp.dot,.ball-pill.dot,.cr-ball.dot{color:var(--muted2)}
.bp.run,.ball-pill.run{color:var(--text)}
.bp.boundary,.ball-pill.boundary,.cr-ball.boundary{background:rgba(70,177,255,.16);color:var(--blue);border-color:rgba(70,177,255,.4)}
.bp.six,.ball-pill.six,.cr-ball.six{background:rgba(255,186,46,.18);color:var(--amber);border-color:rgba(255,186,46,.45)}
.bp.wkt,.ball-pill.wkt,.cr-ball.wkt{background:rgba(255,87,99,.2);color:#ff97a0;border-color:rgba(255,87,99,.5)}
.bp.ex,.ball-pill.ex,.cr-ball.ex{background:rgba(255,255,255,.05);color:var(--muted);border-style:dashed;border-radius:9px;font-size:.74rem}

/* commentary */
.comm-head,.comm-list{}
.comm-head{font-size:.74rem;text-transform:uppercase;letter-spacing:1.4px;color:var(--muted2);margin:6px 2px 10px}
.comm-list{display:grid;gap:2px}
.comm-row{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:center;padding:9px 12px;border-radius:10px}
.comm-row:nth-child(odd){background:rgba(255,255,255,.018)}
.cr-text{color:var(--muted);font-size:.9rem}

/* full scorecard */
.full-card{margin-top:18px;border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}
.full-card>summary{cursor:pointer;padding:14px 16px;font-weight:600;list-style:none;
  display:flex;justify-content:space-between;align-items:center;background:var(--surface2)}
.full-card>summary::after{content:"▾";color:var(--green);transition:.2s}
.full-card[open]>summary::after{transform:rotate(180deg)}
.full-card>summary::-webkit-details-marker{display:none}
.sc-block{padding:14px 16px;border-top:1px solid var(--line)}
.sc-title{font-family:'Oswald';font-weight:600;color:var(--green);margin-bottom:10px;letter-spacing:.4px}
.sc-tab{width:100%;border-collapse:collapse;font-size:.86rem;margin-bottom:10px}
.sc-tab th{text-align:right;color:var(--muted2);font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;padding:6px 8px;border-bottom:1px solid var(--line)}
.sc-tab th:first-child,.sc-tab td:first-child{text-align:left}
.sc-tab td{padding:7px 8px;text-align:right;border-bottom:1px solid rgba(255,255,255,.03);font-family:'Oswald';letter-spacing:.3px}
.sc-tab td:first-child{font-family:'Hind Siliguri';font-weight:500}
.sc-how{color:var(--muted2);font-size:.76rem;margin-left:5px;font-family:'Hind Siliguri'}
.sc-extras{color:var(--muted);font-size:.82rem;margin-bottom:12px}

/* ============================================================
   ADMIN — nav / dashboard
   ============================================================ */
.admin-body,.scoring-body{min-height:100vh}
.admin-nav .nav-right{display:flex;align-items:center;gap:14px}
.nav-user{color:var(--muted);font-size:.88rem}
.nav-link,.logout,.back{color:var(--green);font-size:.88rem;font-weight:600}
.logout{color:var(--red)}
.admin-main,.scoring-main{max-width:920px;margin:0 auto;padding:24px 16px 70px}
.page-head{font-family:'Oswald';font-weight:600;font-size:1.5rem;letter-spacing:1px;text-transform:uppercase;margin-bottom:18px}

.card,.form-card,.players-card,.sc-card,.match-card,.login-card,.start-card{
  background:linear-gradient(165deg,var(--surface2),var(--surface));
  border:1px solid var(--line);border-radius:var(--radius);padding:20px;
  box-shadow:var(--shadow-sm),var(--ring)}
.form-card h2,.card h2,.start-card h2{font-family:'Oswald';font-weight:600;font-size:1.15rem;letter-spacing:.5px;margin-bottom:16px}

label{display:block;font-size:.8rem;color:var(--muted);margin:12px 0 6px;font-weight:500;letter-spacing:.3px}
input,select{width:100%;padding:12px 14px;background:var(--bg2);border:1px solid var(--line2);
  border-radius:var(--radius-xs);color:var(--text);font-size:.96rem;transition:.16s}
input::placeholder{color:var(--muted2)}
input:focus,select:focus{outline:none;border-color:var(--green-d);box-shadow:0 0 0 3px rgba(47,224,122,.15)}
.grid-form{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media(max-width:560px){.grid-form{grid-template-columns:1fr}}

/* buttons */
.btn-primary,.form-submit{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:13px 22px;border-radius:var(--radius-xs);font-weight:700;font-size:.96rem;letter-spacing:.3px;
  background:linear-gradient(180deg,var(--green),var(--green-d));color:#04210f;
  box-shadow:0 6px 18px -6px rgba(47,224,122,.6),var(--ring);transition:.16s}
.btn-primary:hover,.form-submit:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-primary:active,.form-submit:active{transform:translateY(0)}
.btn-danger{padding:13px 22px;border-radius:var(--radius-xs);font-weight:700;
  background:linear-gradient(180deg,var(--red),var(--red-d));color:#fff;box-shadow:0 6px 18px -6px rgba(255,87,99,.5);transition:.16s}
.btn-danger:hover{filter:brightness(1.06);transform:translateY(-1px)}
.btn-ghost{padding:12px 20px;border-radius:var(--radius-xs);font-weight:600;background:var(--surface3);
  color:var(--text);border:1px solid var(--line2);transition:.16s}
.btn-ghost:hover{background:var(--surface2);border-color:var(--green-d)}
.btn-sm{padding:7px 14px;font-size:.82rem;border-radius:8px}
.btn-block{display:flex;width:100%;margin-top:14px}

/* match list (admin) */
.match-list{display:grid;gap:14px;margin-top:18px}
.match-card{display:grid;gap:12px}
.mc-teams{font-family:'Oswald';font-weight:600;font-size:1.12rem;letter-spacing:.4px;display:flex;align-items:center;gap:10px}
.mc-teams .vs{color:var(--muted2);font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px}
.mc-meta{color:var(--muted);font-size:.84rem}
.mc-result{color:var(--green);font-size:.88rem;font-weight:600}
.mc-actions{display:flex;flex-wrap:wrap;gap:9px;padding-top:4px}

/* ============================================================
   SCORING PANEL
   ============================================================ */
.score-hero{position:relative;overflow:hidden;text-align:center;
  background:linear-gradient(165deg,var(--surface2),var(--surface) 70%);
  border:1px solid var(--line2);border-radius:var(--radius);padding:20px;margin-bottom:16px;
  box-shadow:var(--shadow),var(--ring)}
.score-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(380px 130px at 50% -30px,rgba(47,224,122,.16),transparent 70%)}
.sh-team{position:relative;color:var(--green);font-weight:700;letter-spacing:.4px}
.sh-score,.sh-runs{position:relative;font-size:3.4rem;font-weight:700;line-height:1;margin:4px 0;letter-spacing:1px;
  background:linear-gradient(180deg,#fff,#cfeede);-webkit-background-clip:text;background-clip:text;color:transparent}
.sh-overs,.sh-meta{position:relative;color:var(--muted);font-size:.9rem}
.sh-req{position:relative;margin-top:8px;display:inline-block;font-size:.86rem;color:#ffe1ad;
  background:rgba(255,186,46,.12);border:1px solid rgba(255,186,46,.28);padding:6px 14px;border-radius:30px}
.sh-inn{position:relative;font-size:.74rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--muted2);margin-bottom:6px}

/* control pad */
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin:16px 0}
.run-row,.extra-row{display:contents}
.pad button,.num-btn,.ex-btn{position:relative;padding:16px 0;border-radius:14px;font-family:'Oswald';font-weight:600;
  font-size:1.5rem;letter-spacing:.5px;background:linear-gradient(180deg,var(--surface3),var(--surface2));
  color:var(--text);border:1px solid var(--line2);box-shadow:0 4px 0 var(--bg2),var(--ring);transition:.1s}
.pad .util-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:2px}
.pad button:hover{border-color:var(--green-d);color:var(--green)}
.pad button:active,.num-btn:active,.ex-btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--bg2)}
.pad .four{color:var(--blue);border-color:rgba(70,177,255,.35)}
.pad .six{color:var(--amber);border-color:rgba(255,186,46,.4)}
.pad .wkt{color:#ff97a0;border-color:rgba(255,87,99,.45);background:linear-gradient(180deg,rgba(255,87,99,.14),var(--surface2))}
.pad .dot{color:var(--muted)}
.pad .end,.pad .ex{font-family:'Hind Siliguri';font-size:.95rem;font-weight:600;padding:16px 0}

/* extra / util rows */
.util-row{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;margin-top:8px}
.util-btn{padding:14px 0;border-radius:12px;font-weight:600;font-size:.92rem;background:var(--surface2);
  color:var(--text);border:1px solid var(--line);transition:.14s}
.util-btn:hover{border-color:var(--green-d);color:var(--green)}
.undo{color:var(--amber)}
.undo:hover{color:var(--amber);border-color:var(--amber-d)}

.info-banner,.info,.extras-line{background:rgba(70,177,255,.08);border:1px solid rgba(70,177,255,.25);
  color:#bfe0ff;padding:11px 14px;border-radius:var(--radius-xs);font-size:.88rem;margin:12px 0}

/* ============================================================
   MODALS
   ============================================================ */
.modal-overlay,#modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;
  padding:18px;background:rgba(4,9,6,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.modal-box,#modalContent{width:100%;max-width:420px;background:linear-gradient(165deg,var(--surface2),var(--surface));
  border:1px solid var(--line2);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow);animation:rise .22s ease}
@keyframes rise{from{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}
.modal-box h3,#modalContent h3{font-family:'Oswald';font-weight:600;font-size:1.25rem;letter-spacing:.5px;margin-bottom:4px}
.modal-sub{color:var(--muted);font-size:.86rem;margin-bottom:14px}
.num-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:8px}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{padding:9px 15px;border-radius:30px;background:var(--surface3);border:1px solid var(--line2);
  font-size:.86rem;font-weight:600;transition:.14s}
.chip:hover,.chip.active{background:rgba(47,224,122,.16);border-color:var(--green-d);color:var(--green)}

/* ============================================================
   LOGIN
   ============================================================ */
.login-page{min-height:100vh;display:grid;place-items:center;padding:20px}
.login-card{width:100%;max-width:380px;text-align:center}
.login-logo{font-family:'Oswald';font-weight:700;font-size:1.8rem;letter-spacing:1px;margin-bottom:4px;
  display:flex;align-items:center;justify-content:center;gap:10px}
.login-hint{color:var(--muted);font-size:.84rem;margin-top:16px}
.login-card label{text-align:left}
.alert-error{background:rgba(255,87,99,.12);border:1px solid rgba(255,87,99,.3);color:#ff97a0;
  padding:11px 14px;border-radius:var(--radius-xs);font-size:.88rem;margin-bottom:14px}

/* ============================================================
   misc helpers + responsive
   ============================================================ */
.muted{color:var(--muted)}
.empty{color:var(--muted);text-align:center;padding:30px}
@media(max-width:600px){
  .bs-num{font-size:3.7rem}.sh-score,.sh-runs{font-size:2.9rem}
  .bh-vs{font-size:1.25rem;gap:10px}
  .pub-main,.admin-main,.scoring-main{padding:18px 13px 60px}
  .mc-actions{justify-content:flex-start}
  .modal-box,#modalContent{max-width:100%;border-radius:18px 18px 0 0;align-self:flex-end}
  .modal-overlay,#modal{align-items:flex-end;padding:0}
  @keyframes rise{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}
}

/* ============================================================
   ADMIN SCORING — extra polish
   ============================================================ */
.players-card{padding:6px 16px}
.mini-table{width:100%;border-collapse:collapse;font-size:.9rem}
.mini-table th{text-align:right;color:var(--muted2);font-weight:600;font-size:.7rem;
  text-transform:uppercase;letter-spacing:.6px;padding:9px 8px;border-bottom:1px solid var(--line)}
.mini-table th:first-child,.mini-table td:first-child{text-align:left}
.mini-table td{padding:10px 8px;text-align:right;border-bottom:1px solid rgba(255,255,255,.03);
  font-family:'Oswald';letter-spacing:.3px}
.mini-table td:first-child{font-family:'Hind Siliguri';font-weight:500}
.mini-table tr:last-child td{border-bottom:none}
.mini-table .strike-dot{margin-right:6px}
.bowl-table{margin-top:4px;border-top:1px solid var(--line)}
.out-row td{opacity:.55}

/* this-over (admin) */
.this-over{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0;padding:12px 14px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}

/* control pad disabled (waiting for batsman/bowler) */
.pad-disabled{opacity:.4;pointer-events:none;filter:grayscale(.4)}

/* keyboard hint */
.kbd-hint{grid-column:1/-1;text-align:center;color:var(--muted2);font-size:.78rem;margin-top:4px;letter-spacing:.2px}
kbd{display:inline-block;min-width:18px;padding:2px 6px;margin:0 1px;border-radius:6px;
  background:var(--surface3);border:1px solid var(--line2);border-bottom-width:2px;
  font-family:'Oswald';font-size:.74rem;color:var(--text)}

/* admin scorecards (innings-break / completed) */
.sc-card h3{font-family:'Oswald';font-weight:600;color:var(--green);font-size:1.05rem;letter-spacing:.4px;margin-bottom:12px}
.sc-card .how{color:var(--muted2);font-size:.76rem;margin-left:4px;font-family:'Hind Siliguri'}
.extras-line{margin:10px 0}

/* dashboard status pill colors already mapped; nav refinement */
.admin-nav .brand{color:var(--text)}
.page-head{background:linear-gradient(90deg,var(--text),var(--green));-webkit-background-clip:text;background-clip:text;color:transparent}

/* start-innings card a touch more refined */
.start-card{max-width:480px;margin:0 auto}
.start-card .target-note{font-family:'Oswald';font-size:1rem}

/* ============================================================
   BROADCAST FLASH — সেন্টার-স্ক্রিন বার্স্ট (TV স্টাইল, ২ সেকেন্ড)
   ============================================================ */
.flash-overlay{position:fixed;left:0;top:0;width:100vw;height:100vh;z-index:9999;
  display:none;align-items:center;justify-content:center;pointer-events:none;
  background:rgba(3,7,5,.9);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.flash-overlay.show{display:flex}
.flash-card{position:relative;display:grid;place-items:center;width:min(70vw,360px);height:min(70vw,360px);
  border:none;background:none;box-shadow:none;
  animation:flashpop 2s cubic-bezier(.18,.9,.2,1) forwards;will-change:transform,opacity}
/* ঘূর্ণায়মান সানবার্স্ট রশ্মি */
.flash-card::before{content:"";position:absolute;inset:-12%;border-radius:50%;
  background:conic-gradient(from 0deg, currentColor 0 6deg, transparent 6deg 18deg,
    currentColor 18deg 24deg, transparent 24deg 36deg);
  opacity:.30;filter:blur(1px);animation:flashspin 2s linear forwards;mix-blend-mode:screen}
/* কেন্দ্রের গ্লো হ্যালো */
.flash-card::after{content:"";position:absolute;width:78%;height:78%;border-radius:50%;
  background:radial-gradient(circle, currentColor 0%, transparent 62%);opacity:.5;filter:blur(10px)}
@keyframes flashspin{from{transform:rotate(0)}to{transform:rotate(80deg)}}
@keyframes flashpop{
  0%{opacity:0;transform:scale(.3) rotate(-10deg)}
  10%{opacity:1;transform:scale(1.18) rotate(2deg)}
  20%{transform:scale(1) rotate(0)}
  82%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.12)}
}
.fc-big{position:relative;z-index:2;font-family:'Oswald',sans-serif;font-weight:700;
  font-size:clamp(3.5rem,16vw,8rem);line-height:.9;letter-spacing:1px;text-transform:uppercase;
  color:#fff;text-shadow:0 0 14px currentColor,0 0 40px currentColor,0 6px 18px rgba(0,0,0,.5);
  -webkit-text-stroke:2px rgba(255,255,255,.15)}
.fc-sub{position:relative;z-index:2;margin-top:6px;font-family:'Oswald';font-weight:600;
  font-size:clamp(1rem,4vw,1.6rem);letter-spacing:5px;text-transform:uppercase;color:#fff;opacity:.95;
  text-shadow:0 0 12px currentColor}
/* কালার ভ্যারিয়েন্ট — currentColor রশ্মি/গ্লো চালায় */
.flash-card.f-four{color:#46b1ff}
.flash-card.f-six{color:#ffba2e}
.flash-card.f-wkt{color:#ff5763}
.flash-card.f-run{color:#2fe07a}
.flash-card.f-extra{color:#27d3c4}
.flash-card.f-dot{color:#8ba89a}
.flash-card.f-six .fc-big,.flash-card.f-six .fc-sub{color:#ffe6ad}
.flash-card.f-wkt .fc-big{color:#ffd2d6}

/* কিবোর্ড/ক্লিকে বাটন হাইলাইট */
.pad [data-k].pressed{transform:translateY(3px);background:linear-gradient(180deg,var(--green),var(--green-d));
  color:#04210f;border-color:var(--green);box-shadow:0 0 0 3px rgba(47,224,122,.4),0 0 26px -2px var(--green)}
.pad .six[data-k].pressed{background:linear-gradient(180deg,var(--amber),var(--amber-d));color:#251700;border-color:var(--amber);box-shadow:0 0 0 3px rgba(255,186,46,.4),0 0 26px -2px var(--amber)}
.pad .wkt[data-k].pressed{background:linear-gradient(180deg,var(--red),var(--red-d));color:#fff;border-color:var(--red);box-shadow:0 0 0 3px rgba(255,87,99,.45),0 0 26px -2px var(--red)}

/* ============================================================
   TOURNAMENT
   ============================================================ */
.tourn-list{display:grid;gap:14px;margin-top:18px}
.tourn-card{display:flex;justify-content:space-between;align-items:center;gap:12px;
  background:linear-gradient(165deg,var(--surface2),var(--surface));border:1px solid var(--line);
  border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-sm),var(--ring);transition:.2s}
.tourn-card:hover{transform:translateY(-2px);border-color:var(--green-d);box-shadow:var(--shadow),var(--glow)}
.tourn-name{font-family:'Oswald';font-weight:600;font-size:1.15rem;letter-spacing:.4px}
.tourn-meta{color:var(--muted);font-size:.84rem;margin-top:2px}
.tab-row{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}
.tab-btn{padding:9px 18px;border-radius:30px;background:var(--surface2);border:1px solid var(--line2);
  font-weight:600;font-size:.88rem;color:var(--muted);transition:.15s}
.tab-btn.active{background:rgba(47,224,122,.16);border-color:var(--green-d);color:var(--green)}
.stat-table{width:100%;border-collapse:collapse;font-size:.9rem;margin-top:6px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);overflow:hidden}
.stat-table th{text-align:right;background:var(--surface2);color:var(--muted2);font-weight:600;font-size:.72rem;
  text-transform:uppercase;letter-spacing:.6px;padding:11px 10px}
.stat-table th:first-child,.stat-table td:first-child{text-align:left}
.stat-table td{padding:11px 10px;text-align:right;border-top:1px solid var(--line);font-family:'Oswald';letter-spacing:.3px}
.stat-table td:first-child{font-family:'Hind Siliguri';font-weight:500}
.stat-table tr:hover td{background:rgba(255,255,255,.02)}
.stat-rank{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:7px;margin-right:8px;
  background:var(--surface3);color:var(--green);font-family:'Oswald';font-size:.78rem;border:1px solid var(--line2)}
.stat-rank.top{background:linear-gradient(145deg,var(--amber),var(--amber-d));color:#251700;border:none}
.pts-table td.win{color:var(--green)} .pts-table td.pts{color:var(--text);font-weight:700}
.fixture-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:13px 14px;
  border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px;background:var(--surface)}
.fx-teams{font-family:'Oswald';font-weight:600;letter-spacing:.3px}
.fx-vs{color:var(--muted2);font-size:.76rem;margin:0 6px}
.fx-result{color:var(--green);font-size:.82rem}
.fx-status{font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:20px}
.section-title{font-family:'Oswald';font-weight:600;font-size:1.1rem;letter-spacing:.5px;margin:22px 0 10px;color:var(--green)}

/* ============================================================
   মোবাইল-ফ্রেন্ডলি (সব স্ক্রিনে স্পর্শ-উপযোগী)
   ============================================================ */
/* সর্বত্র আরামদায়ক টাচ-টার্গেট */
button, .btn-primary, .btn-ghost, .btn-danger, .util-btn, .num-btn, .ex-btn, .chip, .tab-btn{
  min-height:44px; touch-action:manipulation; -webkit-tap-highlight-color:transparent}
input, select{min-height:46px;font-size:16px}   /* 16px = iOS-এ zoom আটকায় */

@media (max-width:760px){
  .pub-header,.admin-nav{padding:12px 14px;flex-wrap:wrap;gap:8px}
  .admin-nav .nav-right,.pub-header .nav-right{gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .nav-link,.nav-user{font-size:.82rem}
  .pub-brand,.brand{font-size:1.05rem}
  .page-head{flex-wrap:wrap;gap:10px;font-size:1.3rem}
  .page-head .btn-primary{width:100%}
}

@media (max-width:600px){
  .pub-main,.admin-main,.scoring-main{padding:16px 12px 90px}
  /* স্কোরিং প্যাড — বুড়ো আঙুলে সহজ */
  .pad{gap:10px}
  .pad button,.num-btn,.ex-btn{padding:22px 0;font-size:1.45rem;border-radius:16px;min-height:60px}
  .pad .ex,.pad .end{font-size:.95rem;padding:18px 0}
  .util-row{gap:10px}
  .util-btn{padding:16px 8px;font-size:.9rem;min-height:52px}
  .kbd-hint{display:none}                 /* মোবাইলে কিবোর্ড হিন্ট লুকানো */
  /* স্কোরিং টেবিল ছোট স্ক্রিনে ফিট */
  .players-card{padding:4px 10px}
  .mini-table{font-size:.82rem}
  .mini-table th,.mini-table td{padding:9px 5px}
  .mini-table th:first-child,.mini-table td:first-child{max-width:38vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  /* পরিসংখ্যান/স্কোরকার্ড টেবিল — অনুভূমিক স্ক্রল */
  .stat-table,.sc-tab{font-size:.8rem}
  .stat-table th,.stat-table td{padding:9px 6px}
  .sc-tab th,.sc-tab td{padding:6px 5px}
  /* অ্যাকশন বাটন সারি — পূর্ণ প্রস্থে গুছিয়ে */
  .mc-actions{width:100%}
  .mc-actions .btn-sm{flex:1;text-align:center}
  .fixture-row{flex-wrap:wrap;gap:8px}
  .fixture-row .mc-actions{justify-content:flex-start}
  /* বড় স্কোর একটু ছোট */
  .bs-num{font-size:3.4rem}.sh-score,.sh-runs{font-size:2.6rem}
  .bh-vs{font-size:1.2rem}
  /* ট্যাব বাটন স্ক্রলযোগ্য সারি */
  .tab-row{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px}
  .tab-btn{white-space:nowrap;flex:0 0 auto}
  /* মডাল — পূর্ণ-প্রস্থ বটম শিট */
  .num-grid{grid-template-columns:repeat(4,1fr);gap:8px}
  .num-grid .num-btn{padding:16px 0;font-size:1.25rem}
}

/* খুব ছোট ফোন */
@media (max-width:380px){
  .pad{grid-template-columns:repeat(3,1fr);gap:8px}
  .pad button{font-size:1.3rem;padding:18px 0}
  .pm-team{font-size:.98rem}
}

/* অনুভূমিক স্ক্রল র‍্যাপার (যেকোনো চওড়া টেবিলে .scroll-x দিয়ে মোড়ানো যায়) */
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ভাষা টগল */
.lang-toggle{display:inline-flex;border:1px solid var(--line2);border-radius:30px;overflow:hidden;background:var(--surface2)}
.lang-toggle .lng{padding:5px 12px;font-size:.8rem;font-weight:600;color:var(--muted);transition:.15s}
.lang-toggle .lng.active{background:linear-gradient(180deg,var(--green),var(--green-d));color:#04210f}
.lang-toggle .lng:not(.active):hover{color:var(--text)}

/* ফিক্সচার তারিখ — স্পষ্ট */
.fx-date{color:var(--amber);font-size:.82rem;font-weight:600;margin-top:4px;letter-spacing:.2px}

/* প্যাডে Wicket বাকি দুই কলাম জুড়ে (ফাঁকা সেল এড়াতে, আর গুরুত্বপূর্ণ বলে) */
.pad .ex-btn.wkt{grid-column:span 2}

/* ============================================================
   ভাষা টগল + উন্নত ব্যাক বাটন
   ============================================================ */
.lang-toggle{display:inline-flex;border:1px solid var(--line2);border-radius:30px;overflow:hidden;background:var(--surface2)}
.lang-toggle .lng{padding:6px 13px;font-size:.8rem;font-weight:600;color:var(--muted);transition:.15s;line-height:1.4}
.lang-toggle .lng.active{background:linear-gradient(180deg,var(--green),var(--green-d));color:#04210f}
.lang-toggle .lng:not(.active):hover{color:var(--text);background:var(--surface3)}

/* উন্নত ব্যাক বাটন (গোল, হোভার/স্পর্শে স্পষ্ট) */
.pub-back,.back{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;
  background:var(--surface2);border:1px solid var(--line2);color:var(--green);font-size:1.25rem;line-height:1;
  margin-right:8px;transition:.18s;flex:0 0 auto}
.pub-back:hover,.back:hover{background:var(--surface3);border-color:var(--green-d);transform:translateX(-3px);
  box-shadow:0 0 0 3px rgba(47,224,122,.15)}
.pub-back:active,.back:active{transform:translateX(-1px) scale(.95)}

/* ============================================================
   ফ্ল্যাশ — আরও স্টাইলিশ (শাইন সুইপ + ডবল রশ্মি + বাউন্স)
   ============================================================ */
.flash-card{animation:flashpop2 2s cubic-bezier(.16,1.1,.3,1) forwards}
@keyframes flashpop2{
  0%{opacity:0;transform:scale(.2) rotate(-12deg)}
  9%{opacity:1;transform:scale(1.22) rotate(3deg)}
  16%{transform:scale(.96) rotate(-1deg)}
  22%{transform:scale(1.04)}
  28%{transform:scale(1)}
  80%{opacity:1;transform:scale(1)}
  100%{opacity:0;transform:scale(1.15)}
}
/* দ্বিতীয় (বিপরীত-ঘূর্ণন) রশ্মি স্তর — fc-sub-এর পেছনে নয়, কার্ডে */
.flash-card .fc-big{position:relative;z-index:3}
.flash-card .fc-big::after{content:"";position:absolute;left:-30%;top:0;width:30%;height:100%;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);
  transform:skewX(-18deg);animation:shine 2s ease forwards;z-index:4;mix-blend-mode:overlay}
@keyframes shine{0%,18%{left:-40%}40%{left:130%}100%{left:130%}}
/* ভেতরের আলো-বলয় একটু বড়+উজ্জ্বল */
.flash-card::after{width:88%;height:88%;opacity:.55;filter:blur(14px)}
