/* Sport Scoring Solutions – shared styles for scoring apps (v1) */
:root{
  --bg:#0f1318; --panel:#1a2029; --panel-2:#232b36; --line:#2f3a48; --text:#f4f6f8; --muted:#9aa6b4;
  --a:#e53946; --b:#2f8cff; --accent:#ffd23f; --ok:#2ecc71; --radius:14px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.45;-webkit-tap-highlight-color:transparent}
.ss-app{max-width:720px;margin:0 auto;padding:12px 14px 24px}
.ss-app h1{font-size:1.45rem;margin:.2em 0 .6em;text-align:center}
.ss-app h2{font-size:1.1rem;margin:1.2em 0 .5em}
.hidden{display:none!important}

/* setup form */
.ss-form fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 6px;margin:0 0 14px;background:var(--panel)}
.ss-form legend{padding:0 6px;font-weight:700;color:var(--accent)}
.ss-form label{display:block;font-size:.92rem;color:var(--muted);margin:0 0 10px}
.ss-form input[type=text],.ss-form input[type=number],.ss-form select{display:block;width:100%;margin-top:4px;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:#0b0f14;color:var(--text);font-size:1rem}
.ss-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ss-form .check{display:flex;gap:10px;align-items:flex-start;color:var(--text)}
.ss-form .check input{width:22px;height:22px;margin:1px 0 0;flex:none}
.ss-form .hint{font-size:.82rem;color:var(--muted);margin:-4px 0 10px}
.side-a legend{color:#ff8a93}.side-b legend{color:#8cc0ff}

/* buttons */
.btn{appearance:none;border:0;border-radius:12px;padding:13px 16px;font-size:1rem;font-weight:700;cursor:pointer;background:var(--panel-2);color:var(--text);touch-action:manipulation}
.btn:active{transform:scale(.97)}
.btn.primary{background:var(--accent);color:#111}
.btn.danger{background:#5a1e24;color:#ffd7da}
.btn.block{display:block;width:100%}
.btn[disabled]{opacity:.4;pointer-events:none}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
.btn-row .btn{flex:1 1 0}

/* scoreboard */
.status{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--panel);border-radius:var(--radius);padding:10px 14px;margin-bottom:12px;font-weight:600}
.status .big{font-size:1.9rem;font-variant-numeric:tabular-nums;letter-spacing:1px}
.banner{background:var(--accent);color:#111;border-radius:10px;padding:10px 14px;margin:0 0 12px;font-weight:700;text-align:center}
.banner.info{background:#16324f;color:#cfe5ff}
.sides{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.side{background:var(--panel);border-radius:var(--radius);padding:12px;text-align:center;border-top:6px solid var(--a);position:relative;min-width:0}
.side.b{border-top-color:var(--b)}
.side .name{font-weight:800;font-size:1.05rem;overflow-wrap:anywhere}
.side .players{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}
.side .score{font-size:clamp(3rem,15vw,5.2rem);font-weight:800;line-height:1.05;font-variant-numeric:tabular-nums;margin:6px 0}
.side .sub{color:var(--muted);font-size:.9rem}
.side.tap{cursor:pointer;user-select:none;-webkit-user-select:none}
.side.tap:active{background:var(--panel-2)}
.side [data-f="centre"],.side [data-f="serve"]{min-height:32px}
.side .tag{display:inline-block;background:var(--accent);color:#111;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:800;margin-top:6px}
.score-btns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.score-btns .btn{padding:13px 4px;min-width:0;font-size:.95rem;overflow-wrap:anywhere}
.score-btns .btn.goal{background:var(--ok);color:#06210f}
.score-btns .btn.miss{background:var(--panel-2);font-weight:600}
.side.b .score-btns .btn.goal{background:#2fb3ff;color:#03202e}

/* tables */
.tbl{width:100%;border-collapse:collapse;font-size:.92rem;font-variant-numeric:tabular-nums}
.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:7px 6px;text-align:center}
.tbl th{color:var(--muted);font-weight:600}
.tbl td.l,.tbl th.l{text-align:left}
.tbl-wrap{background:var(--panel);border-radius:var(--radius);padding:6px 10px;overflow-x:auto}

/* modal + toast */
.ss-modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:16px;z-index:1000}
.ss-modal-box{background:#fff;color:#111;border-radius:16px;max-width:420px;width:100%;padding:20px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.ss-modal-box h2{margin:0 0 8px;font-size:1.25rem}
.ss-modal-body{margin-bottom:14px}
.ss-modal-actions{display:flex;flex-direction:column;gap:8px}
.ss-modal-actions button{padding:13px;border-radius:10px;border:1px solid #ccd;background:#f1f3f6;font-size:1rem;font-weight:700;cursor:pointer}
.ss-modal-actions button.primary{background:#d61d2f;border-color:#d61d2f;color:#fff}
.ss-modal-actions button.danger{background:#fff;border-color:#d61d2f;color:#a8121f}
.ss-modal .shots{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ss-modal .shots button{padding:16px 0;font-size:1.25rem;font-weight:800;border-radius:10px;border:1px solid #ccd;background:#f1f3f6;cursor:pointer}
#ss-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(30px);opacity:0;background:#111;color:#fff;padding:10px 16px;border-radius:999px;transition:.25s;z-index:1001;pointer-events:none}
#ss-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

.result-card{background:var(--panel);border-radius:var(--radius);padding:16px;text-align:center;margin-bottom:12px}
.result-card .winner{font-size:1.4rem;font-weight:800;color:var(--accent)}
.result-card .final{font-size:2.4rem;font-weight:800;font-variant-numeric:tabular-nums}
.small{font-size:.85rem;color:var(--muted)}
.saved-note{font-size:.85rem;color:var(--muted);text-align:center;margin:8px 0}
a.link{color:#8cc0ff}
@media (max-width:380px){.sides{gap:8px}.side{padding:10px 8px}}
