:root{font-family:Inter,system-ui,Arial,sans-serif;color:#16202a;background:#f3f6f8}*{box-sizing:border-box}body{margin:0}a{color:inherit}.wrap{max-width:1050px;margin:auto;padding:0 16px}header{background:#103c32;color:white}.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px}.brand{font-weight:800;text-decoration:none}.nav nav{display:flex;flex-wrap:wrap;gap:14px}.nav nav a{text-decoration:none;font-size:14px}main{padding-top:24px;padding-bottom:40px}.hero{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.hero h1{margin:0 0 6px}.hero p{margin:0;color:#53616d}.button,button{background:#147d62;color:#fff;border:0;border-radius:8px;padding:10px 14px;text-decoration:none;font-weight:700;cursor:pointer}.secondary{background:#64727c}.date-heading{margin:28px 0 10px}.match-card,.panel{background:white;border:1px solid #dce3e7;border-radius:12px;padding:14px;margin:10px 0;box-shadow:0 2px 8px rgba(0,0,0,.035)}.meta{font-size:12px;color:#6a7780;margin-bottom:10px}.match-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.team{display:flex;align-items:center;gap:8px;font-weight:700;min-width:0}.team-home{justify-content:flex-end;text-align:right}.team-away{justify-content:flex-start;text-align:left}.team-name{overflow-wrap:anywhere}.team img{width:28px;height:19px;object-fit:cover;border:1px solid #ccd4d8;border-radius:2px}.score{font-weight:800;min-width:60px;text-align:center}.narrow{max-width:430px;margin:30px auto}.narrow form{display:grid;gap:14px}label{display:grid;gap:6px;font-weight:700}input{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit}.score-form{display:flex;align-items:center;gap:5px}.score-form input,.admin-match input{width:46px;text-align:center}.score-form button{padding:8px 10px}.locked{color:#687781;font-size:13px}.lock-note{margin-top:8px;color:#a14b32;font-size:12px}.success,.error{padding:12px;border-radius:8px;margin:12px 0}.success{background:#d9f2e7;color:#0d664f}.error{background:#f8dfda;color:#8b3026}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:11px;border-bottom:1px solid #e4eaed}footer{background:#e6ecee;color:#67747c;padding:24px 0;font-size:13px}.admin-list{padding:0}.admin-row{padding:13px;border-bottom:1px solid #e3eaed}.admin-match{display:grid;grid-template-columns:1fr 46px auto 46px 1fr auto auto;gap:7px;align-items:center}.admin-match span:nth-of-type(2){text-align:right}@media(max-width:700px){.nav{align-items:flex-start;flex-direction:column;padding-top:14px;padding-bottom:14px}.hero{align-items:flex-start;flex-direction:column}.match-grid{gap:6px}.team{font-size:13px}.team img{width:23px;height:16px}.prediction-row{grid-template-columns:1fr;gap:10px}.prediction-row .team-home,.prediction-row .team-away{justify-content:flex-start;text-align:left}.score-form{order:3}.admin-match{grid-template-columns:1fr 40px auto 40px 1fr}.admin-match button{grid-column:span 2}.admin-match input{width:40px}table{font-size:13px}th,td{padding:8px 5px}}.countdown{margin-top:10px;padding-top:9px;border-top:1px dashed #d6dee2;font-size:13px;color:#38545d}.dot{padding:0 5px}.question-card h2{font-size:19px;margin:0}.question-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.points-pill{background:#e0f4ed;color:#0d664f;border-radius:999px;padding:5px 9px;font-weight:800;white-space:nowrap}.question-answer{display:flex;align-items:end;gap:10px;margin-top:12px}.question-answer label{flex:1}.admin-question-form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.admin-question-form label:first-of-type,.admin-question-form #options_label{grid-column:1/-1}.admin-question-form button{justify-self:start}.question-admin-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.danger{background:#a33b31}.playoff-admin-row{display:grid;grid-template-columns:150px 1fr auto 1fr auto;gap:8px;padding:10px;border-bottom:1px solid #e3eaed;align-items:center}.playoff-admin-row select,.question-answer select,.admin-question-form select,.admin-question-form textarea{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:white}.section-note{color:#59666e}.playoff-scroll{overflow-x:auto;padding:8px 2px 18px}.bracket-board{position:relative;display:grid;grid-template-columns:repeat(5,230px);gap:62px;min-width:1400px;height:1500px;padding:0 12px}.bracket-lines{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:1}.bracket-connector{fill:none;stroke:#b9c8ce;stroke-width:2}.bracket-column{display:flex;flex-direction:column;min-width:0;position:relative;z-index:2}.bracket-column h2{font-size:16px;text-align:center;margin:0 0 12px}.bracket-column-matches{display:flex;flex-direction:column;justify-content:space-around;flex:1;gap:10px}.bracket-card{background:#fff;border:1px solid #d9e2e5;border-radius:9px;padding:7px;box-shadow:0 2px 8px rgba(0,0,0,.04);min-height:70px}.bracket-meta{display:flex;justify-content:space-between;gap:5px;font-size:10px;color:#687781;padding-bottom:4px}.bracket-meta b{color:#166b58}.bracket-side{display:flex;align-items:center;min-height:23px;border-top:1px solid #edf1f2;font-size:12px}.bracket-team{display:flex;align-items:center;gap:5px;font-weight:700}.bracket-team img{width:19px;height:13px;object-fit:cover;border:1px solid #ccd4d8}.bracket-placeholder{color:#64727c}.third-place{max-width:330px;margin:20px auto}.third-place h2{text-align:center;font-size:17px}.third-place .bracket-card{min-height:76px}.guide h2{margin-top:26px}.guide h2:first-child{margin-top:0}.table-scroll{overflow-x:auto}
@media(max-width:700px){.question-answer{align-items:stretch;flex-direction:column}.admin-question-form{grid-template-columns:1fr}.admin-question-form label{grid-column:1!important}.question-admin-row{align-items:flex-start;flex-direction:column}.playoff-admin-row{grid-template-columns:1fr}.playoff-admin-row span{display:none}.bracket-board{grid-template-columns:repeat(5,210px);gap:52px;min-width:1260px;height:1420px}.bracket-card{padding:6px}.bracket-meta{font-size:9px}.bracket-side{font-size:11px}}

.public-predictions{margin-top:10px;padding-top:9px;border-top:1px solid #e4eaed}.public-predictions-title{display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:13px;font-weight:800;color:#176b59;text-decoration:underline;text-underline-offset:2px;list-style-position:inside}.public-predictions-title:hover{color:#0d5949}.public-predictions-count{font-weight:700}.public-predictions-content{padding-top:8px}.public-predictions-list{display:flex;flex-wrap:wrap;gap:6px}.public-prediction-person{display:inline-flex;align-items:center;gap:5px;background:#f2f7f5;border:1px solid #d7e7e1;border-radius:999px;padding:5px 8px;font-size:12px}.prediction-check{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#147d62;color:white;font-size:11px;font-weight:900}.prediction-user{font-weight:700}.prediction-public-score{margin-left:3px;padding-left:7px;border-left:1px solid #bed1cb;font-weight:900;color:#174f43}.public-predictions-empty,.public-predictions-note{font-size:12px;color:#6a7780}.public-predictions-note{margin-top:7px}

/* v8 playoff predictions */
.playoff-result-note{margin-top:8px;font-size:12px;color:#42616a;text-align:center}.placeholder{color:#687781;font-weight:600}.score-label{font-size:11px;color:#687781;font-weight:800}.playoff-prediction-form{flex-wrap:wrap;justify-content:center}.advance-select{display:flex;align-items:center;gap:6px;font-size:12px}.advance-select select,.playoff-result-row select{border:1px solid #bdc8ce;border-radius:7px;padding:8px;font:inherit;background:white}.playoff-admin-setup{grid-template-columns:170px 1fr auto 1fr 180px auto}.playoff-result-row{display:grid;grid-template-columns:minmax(210px,1fr) 54px auto 54px 54px auto 54px 54px auto 54px minmax(150px,auto) auto auto;gap:6px;padding:11px;border-bottom:1px solid #e3eaed;align-items:end}.playoff-result-row label{font-size:11px;color:#687781}.playoff-result-row input{width:54px;text-align:center}.bracket-score{margin-left:auto;font-weight:900;color:#155e4e}.bracket-result-note{font-size:10px;color:#687781;padding-top:3px;text-align:right}
@media(max-width:900px){.playoff-result-row{grid-template-columns:1fr 45px auto 45px 45px auto 45px 45px auto 45px}.playoff-result-row>div:first-child{grid-column:1/-1}.playoff-result-row label:nth-of-type(7){grid-column:1/-1}.playoff-result-row button{grid-column:span 2}.playoff-admin-setup{grid-template-columns:1fr}.playoff-admin-setup span{display:none}}


/* Admini konto ja kasutajate PIN-koodide haldus */
.user-pin-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.user-pin-row:last-child{border-bottom:0}
.pin-result{margin-bottom:16px}
.generated-pin{display:inline-block;margin-left:8px;padding:5px 10px;border-radius:8px;background:#fff;font-size:1.35rem;letter-spacing:.18em;font-weight:800}
@media(max-width:640px){.user-pin-row{align-items:flex-start;flex-direction:column}.user-pin-row button{width:100%}}

/* v11.2 lisaküsimuste salvestuse märge ja avalikud vastused */
.answer-saved{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:13px;font-weight:700;color:#0d664f}
.answer-result{padding:12px;border-radius:8px;margin:12px 0;font-weight:700}
.answer-result-correct{background:#d9f2e7;color:#0d664f;border:1px solid #b8e2d3}
.answer-result-wrong{background:#ffe6c9;color:#9a4a00;border:1px solid #f2c68f}
.public-prediction-person.answer-correct{background:#d9f2e7;border-color:#b8e2d3;color:#0d664f}
.public-prediction-person.answer-wrong{background:#ffe6c9;border-color:#f2c68f;color:#9a4a00}
.answer-legend{display:inline-block;margin-right:6px;padding:3px 7px;border-radius:999px;font-weight:700}
.answer-legend.answer-correct{background:#d9f2e7;color:#0d664f}
.answer-legend.answer-wrong{background:#ffe6c9;color:#9a4a00}

.match-status{margin-top:10px;padding-top:9px;border-top:1px dashed #d6dee2;font-size:13px;font-weight:800}.match-status.ended{color:#0d664f}

/* v11.6 played games: show points beside completed predictions */
.prediction-points,.prediction-advance-points{display:inline-grid;place-items:center;min-width:28px;height:20px;padding:0 6px;border-radius:999px;font-size:11px;font-weight:900;line-height:1}
.prediction-points-exact{background:#147d62;color:#fff}
.prediction-points-outcome{background:#2878b8;color:#fff}
.prediction-points-wrong{background:#c84b43;color:#fff}
.prediction-advance-correct{background:#147d62;color:#fff}
.prediction-advance-wrong{background:#c84b43;color:#fff}


/* v11.7 played games: exact SVG point icons and ordered predictions */
.prediction-points-icon{display:inline-block;width:34px;height:22px;flex:0 0 34px;vertical-align:middle}
.prediction-advance-points{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 5px 0 7px;border:1px solid #d7e7e1;border-radius:999px;background:#f2f7f5;color:#42616a;font-size:10px;font-weight:900;line-height:1;white-space:nowrap}
.prediction-advance-points .prediction-points-icon{width:25px;height:17px;flex-basis:25px}

/* v11.8 public predictions: vertical list layout */
.public-predictions-list{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:flex-start;gap:6px}
.public-prediction-person{display:flex;max-width:100%;width:auto}


/* v11.9 force completed/public prediction names into a true vertical list.
   !important is intentional: it overrides older cached layout rules if the
   hosting stack combines stylesheets. */
.public-predictions-list.prediction-list-vertical{display:block!important;width:100%}
.public-predictions-list.prediction-list-vertical .prediction-list-row{display:flex!important;width:max-content;max-width:100%;margin:0 0 6px 0}
.public-predictions-list.prediction-list-vertical .prediction-list-row:last-child{margin-bottom:0}

/* v12: split user and admin views */
.admin-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.admin-tabs a{display:inline-flex;align-items:center;min-height:38px;padding:9px 12px;border:1px solid #d7e2e6;border-radius:999px;background:#fff;text-decoration:none;font-weight:800;font-size:13px;color:#176b59}
.admin-tabs a.active{background:#147d62;border-color:#147d62;color:#fff}
.admin-tabs a.logout{margin-left:auto;color:#8b3026}
.admin-hero{margin-bottom:12px}
.question-actions{display:grid;gap:8px;min-width:260px}
.question-options-edit{margin-top:10px;display:grid;gap:8px;max-width:520px}
.question-options-edit textarea{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:white}
.my-prediction-result{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:10px;border-top:1px dashed #d6dee2;font-size:13px}
.my-prediction-result strong{color:#38545d}
@media(max-width:700px){.admin-tabs{flex-direction:column}.admin-tabs a.logout{margin-left:0}.question-actions{min-width:0;width:100%}.my-prediction-result{align-items:flex-start;flex-direction:column}}

/* v12.1 prediction page layout fixes */
.prediction-form-card{display:grid;gap:10px;margin-top:8px}
.prediction-main-row{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:12px;align-items:center;width:100%}
.score-boxes{display:inline-flex;align-items:center;justify-content:center;gap:5px;white-space:nowrap}
.score-boxes input{width:46px;text-align:center;border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit}
.save-prediction-button{justify-self:center;min-width:120px}
.playoff-prediction-card .advance-select{justify-self:center;display:flex;align-items:center;gap:8px;grid-auto-flow:column;font-size:13px}
.playoff-prediction-card .advance-select select{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:white;min-width:190px}
.missed-prediction{font-weight:800;color:#a33b31}
@media(max-width:700px){
  .prediction-main-row{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:5px;align-items:center}
  .prediction-main-row .team{font-size:12px;line-height:1.15;gap:4px}
  .prediction-main-row .team-home{justify-content:flex-end;text-align:right}
  .prediction-main-row .team-away{justify-content:flex-start;text-align:left}
  .prediction-main-row .team img{width:21px;height:14px;flex:0 0 auto}
  .score-boxes input{width:38px;padding:7px 4px}
  .save-prediction-button{width:auto;padding:8px 14px}
  .playoff-prediction-card .advance-select{width:100%;justify-content:center;flex-wrap:wrap;text-align:center}
  .playoff-prediction-card .advance-select select{min-width:0;max-width:100%;width:220px}
}

/* v12.2 AJAX prediction saving */
.prediction-save-row{display:flex;align-items:center;justify-content:center;gap:9px;min-height:38px}
.prediction-save-status{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;font-size:13px;font-weight:900;color:#64727c}
.prediction-save-status-saved{width:24px;height:24px;border-radius:50%;background:#147d62;color:#fff;font-size:16px;line-height:1}
.prediction-save-status-saving{font-size:12px;color:#64727c;min-width:auto}
.prediction-save-status-changed{font-size:12px;color:#a36a00;min-width:auto;white-space:nowrap}
.prediction-save-status-error{font-size:12px;color:#8b3026;min-width:auto;max-width:260px;text-align:center}
.save-prediction-button:disabled{opacity:.65;cursor:wait}
@media(max-width:700px){.prediction-save-row{gap:7px}.prediction-save-status-error{max-width:180px}.prediction-save-status-changed{white-space:normal;text-align:center}}


/* v12.3 admin user merge tool */
.merge-users-panel{margin-bottom:24px}
.merge-users-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:end}
.merge-users-form label{display:grid;gap:6px;font-weight:800;color:#344b55}
.merge-users-form select,.merge-users-form input{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:#fff}
.merge-users-form label:nth-child(5),.merge-users-form button{grid-column:span 2}
.danger-button{background:#b94036;color:#fff}
.danger-button:hover{background:#972f27}
.merge-summary ul{margin:8px 0 0 18px;padding:0}
.merge-summary li{margin:3px 0}
@media(max-width:700px){.merge-users-form{grid-template-columns:1fr}.merge-users-form label:nth-child(5),.merge-users-form button{grid-column:1}}


/* v12.4 login: confirm before creating a new user */
.notice{padding:12px;border-radius:8px;margin:12px 0;background:#eef7fb;color:#245263;border:1px solid #cfe4ee}
.confirm-create-box h2{margin:0 0 8px;font-size:20px;color:#183640}
.confirm-create-box p{margin:8px 0 14px}
.confirm-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.confirm-actions .inline-form{display:inline-flex!important;gap:0;margin:0}
.confirm-actions button{min-width:130px}
.confirm-actions .primary{background:#147d62;color:#fff}
.confirm-actions .secondary{background:#64727c;color:#fff}
@media(max-width:700px){.confirm-actions{flex-direction:column;align-items:stretch}.confirm-actions .inline-form,.confirm-actions button{width:100%}}

/* v12.9 live points timeline */
.live-hero{align-items:flex-start}
.live-hero-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-end}
.live-sort-control{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid #dce3e7;border-radius:12px;padding:8px 10px;font-size:13px;font-weight:900;color:#38545d}
.live-sort-control select{border:1px solid #cfd8dd;border-radius:9px;padding:6px 8px;background:#f7fafb;font-weight:800;max-width:230px}
.live-refresh-note{background:#e0f4ed;color:#0d664f;border:1px solid #b8e2d3;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:900;white-space:nowrap}
.live-status{font-weight:800;color:#38545d}
.live-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start;width:90vw;max-width:1600px;margin-left:50%;transform:translateX(-50%)}
.live-chart-panel{background:#fff;border:1px solid #dce3e7;border-radius:12px;padding:12px;box-shadow:0 2px 8px rgba(0,0,0,.035);min-width:0}
.live-chart-wrap{width:100%;overflow-x:auto}
.live-points-svg{display:block;width:100%;min-width:980px;height:680px}
.live-sidebar .panel h2{margin:0 0 10px;font-size:18px}
.live-axis{stroke:#ccd7dc;stroke-width:2}
.live-midline{stroke:#d18400;stroke-width:2;stroke-dasharray:8 6}
.live-endline{stroke:#64727c;stroke-width:2;stroke-dasharray:5 5}
.live-nowline{stroke:#147d62;stroke-width:2;stroke-dasharray:3 4}
.live-axis-label,.live-now-label{fill:#64727c;font-size:16px;font-weight:800}
.live-now-label{fill:#0d664f;font-size:13px}
.live-user-line{opacity:.92}
.live-end-dot{stroke:#fff;stroke-width:3}
.live-user-label{fill:#16202a;font-size:12px;font-weight:900;paint-order:stroke;stroke:#fff;stroke-width:4px}
.live-user-label-right{font-size:12px}
.live-label-leader{stroke-width:1.5;stroke-dasharray:3 3;opacity:.55}
.live-change-dot{stroke:#fff;stroke-width:2;opacity:.65}
.live-empty-text{fill:#64727c;font-size:24px;font-weight:900}
.live-rank-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #e4eaed}
.live-rank-row:last-child{border-bottom:0}
.live-rank-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.live-rank-row strong{font-size:18px;color:#147d62}
.live-rank-row small{grid-column:2/-1;color:#6a7780;font-size:11px;margin-top:-5px}
.live-match-mini{padding:10px 0;border-bottom:1px solid #e4eaed}
.live-match-mini:last-child{border-bottom:0}
.live-score-line{margin-top:6px;font-weight:800}
.live-score-line strong{display:inline-block;margin:0 8px;color:#147d62;font-size:18px}
.live-event{font-size:12px;color:#38545d;margin-top:5px}
@media(max-width:1000px){.live-layout{grid-template-columns:1fr;width:auto;margin-left:0;transform:none}.live-points-svg{min-width:900px;height:620px}.live-sidebar{display:grid;grid-template-columns:1fr 1fr;gap:12px}.live-hero-actions{align-items:flex-start}}
@media(max-width:700px){.live-sidebar{display:block}.live-refresh-note{white-space:normal}.live-sort-control{align-items:flex-start;flex-direction:column}.live-sort-control select{max-width:100%}.live-points-svg{min-width:820px;height:560px}}

.question-round-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.question-round-tabs a{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:10px 14px;border:1px solid #d7e2e6;border-radius:999px;background:#fff;text-decoration:none;font-weight:900;color:#176b59}
.question-round-tabs a.active{background:#147d62;border-color:#147d62;color:#fff}
.question-round-tabs a span{font-size:12px;opacity:.8}
@media(max-width:700px){.question-round-tabs{display:grid;grid-template-columns:1fr}.question-round-tabs a{justify-content:center}}

/* v12.15 game statistics admin and public panels */
.match-statistics{margin-top:12px;border:1px solid #dce3e7;border-radius:12px;background:#f8fbfc;overflow:hidden}
.match-statistics summary{cursor:pointer;padding:10px 12px;font-weight:900;color:#176b59;list-style:none}
.match-statistics summary::-webkit-details-marker{display:none}
.match-statistics summary:before{content:'▸';display:inline-block;margin-right:7px;transition:transform .15s ease}
.match-statistics[open] summary:before{transform:rotate(90deg)}
.stats-box{padding:0 12px 12px;display:grid;gap:6px}
.stats-teams{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px;padding:4px 0 8px;color:#183640}
.stats-teams strong:first-child{text-align:right}.stats-teams strong:last-child{text-align:left}
.stats-pair{display:grid;grid-template-columns:80px minmax(120px,1fr) 80px;gap:10px;align-items:center;padding:7px 8px;border-radius:10px;background:#fff;border:1px solid #e4eaed}
.stats-home{text-align:right;font-weight:900;color:#16202a}.stats-away{text-align:left;font-weight:900;color:#16202a}.stats-label{text-align:center;color:#5f6f78;font-size:13px;font-weight:800}
.stats-notes{margin-top:6px;padding:10px 12px;background:#fff7e8;border:1px solid #f2d8a9;border-radius:10px;color:#4d3b1c;font-size:13px}
.stats-match-picker{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.stats-match-picker label{display:grid;gap:6px;font-weight:800;color:#344b55}.stats-match-picker select{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:white;min-width:0}
.stats-admin-panel{display:grid;gap:12px}.stats-admin-form{display:grid;gap:9px}.stats-admin-head,.stats-admin-row{display:grid;grid-template-columns:130px minmax(130px,1fr) 130px;gap:10px;align-items:center}.stats-admin-head{text-align:center;color:#64727c;font-size:13px;font-weight:900}.stats-admin-row span{text-align:center;font-weight:900;color:#38545d}.stats-admin-row input{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;text-align:center;background:white}.stats-notes-label{display:grid;gap:6px;margin-top:8px;font-weight:800;color:#344b55}.stats-notes-label textarea{border:1px solid #bdc8ce;border-radius:7px;padding:9px;font:inherit;background:white}.stats-admin-actions{display:flex;justify-content:center;margin-top:6px}.stats-delete-form{display:flex;justify-content:center;margin-top:4px}
@media(max-width:700px){.stats-pair{grid-template-columns:56px minmax(92px,1fr) 56px;gap:6px}.stats-label{font-size:12px}.stats-match-picker{grid-template-columns:1fr}.stats-admin-head,.stats-admin-row{grid-template-columns:72px minmax(90px,1fr) 72px;gap:6px}.stats-admin-row input{padding:8px 4px}.stats-admin-row span{font-size:12px}.stats-teams{font-size:13px}}

/* v12.16 data collector and timeline */
.collector-panel h2,.collector-preview h2{margin-top:0}
.collector-textarea{width:100%;box-sizing:border-box;border:1px solid #bdc8ce;border-radius:10px;padding:11px;font:13px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#fff;min-height:220px;resize:vertical}
.muted{color:#64727c;font-size:13px;line-height:1.45}
.collector-event-head,.collector-event-row{display:grid;grid-template-columns:54px 64px 64px 120px 140px 130px minmax(180px,1fr);gap:7px;align-items:center}
.collector-event-head{font-size:12px;font-weight:900;color:#64727c;padding:0 0 6px;text-align:center}
.collector-event-row{padding:6px 0;border-top:1px solid #e4eaed}
.collector-event-row input,.collector-event-row select{border:1px solid #bdc8ce;border-radius:7px;padding:8px 7px;font:inherit;background:#fff;min-width:0}
.collector-event-row input[name^="event_text"]{font-size:13px}
.collector-keep{display:flex;justify-content:center}.collector-keep input{width:18px;height:18px}
.match-timeline{margin-top:12px;border:1px solid #dce3e7;border-radius:12px;background:#f8fbfc;overflow:hidden}
.match-timeline summary{cursor:pointer;padding:10px 12px;font-weight:900;color:#176b59;list-style:none}
.match-timeline summary::-webkit-details-marker{display:none}
.match-timeline summary:before{content:'▸';display:inline-block;margin-right:7px;transition:transform .15s ease}
.match-timeline[open] summary:before{transform:rotate(90deg)}
.timeline-list{padding:0 12px 12px;display:grid;gap:6px}
.timeline-event{display:grid;grid-template-columns:62px 98px minmax(105px,160px) minmax(160px,1fr);gap:8px;align-items:center;padding:8px 10px;border:1px solid #e4eaed;border-radius:10px;background:#fff}
.timeline-minute{font-weight:900;color:#183640;text-align:center}.timeline-badge{font-size:12px;font-weight:900;text-align:center;border-radius:999px;padding:5px 7px;background:#eef3f5;color:#38545d}.timeline-team{font-size:12px;font-weight:900;color:#64727c;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-text{font-weight:800;color:#16202a}
.timeline-goal .timeline-badge,.timeline-penalty .timeline-badge{background:#dcf5ec;color:#0d664f}.timeline-yellow .timeline-badge,.timeline-second_yellow .timeline-badge{background:#fff1bf;color:#785600}.timeline-red .timeline-badge{background:#ffe0dc;color:#9f2b20}.timeline-substitution .timeline-badge{background:#e5f0ff;color:#1f5ca8}.timeline-period .timeline-badge{background:#ece9ff;color:#4b3b9f}
@media(max-width:900px){.collector-event-head{display:none}.collector-event-row{grid-template-columns:44px 1fr 1fr;gap:7px}.collector-event-row select,.collector-event-row input[name^="event_text"]{grid-column:2/-1}.collector-event-row input[name^="minute"],.collector-event-row input[name^="stoppage"]{width:100%}}
@media(max-width:700px){.timeline-event{grid-template-columns:52px minmax(76px,1fr);gap:6px}.timeline-team,.timeline-text{grid-column:2/-1}.timeline-badge{font-size:11px}.collector-textarea{min-height:180px}}

/* v12.17 OCR image import for data collector */
.ocr-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:10px 0 14px;padding:12px;border:1px dashed #c8d0df;border-radius:12px;background:rgba(255,255,255,.04)}
.ocr-box label{display:flex;flex-direction:column;gap:6px;font-weight:700}
.ocr-box input[type=file]{max-width:320px}
.ocr-status{font-size:.92rem;color:#637083}
.ocr-status.ocr-error{color:#b42318;font-weight:700}
.ocr-status.ocr-ok{color:#12805c;font-weight:700}
.ocr-run[disabled]{opacity:.65;cursor:wait}
@media(max-width:700px){.ocr-box{align-items:stretch}.ocr-box label,.ocr-box button,.ocr-status{width:100%}.ocr-box input[type=file]{max-width:100%}}

.manual-event-tool{margin:16px 0;padding:14px;border:1px dashed #b9c7cf;border-radius:12px;background:#f8fbfc}
.manual-event-tool h3{margin:0 0 6px}
.manual-event-grid{display:grid;grid-template-columns:110px 140px 140px 140px minmax(220px,1fr) auto;gap:8px;align-items:end}
.manual-event-grid label{display:flex;flex-direction:column;font-size:12px;font-weight:800;color:#52636c}
.manual-event-grid input,.manual-event-grid select{border:1px solid #bdc8ce;border-radius:8px;padding:9px 8px;font:inherit;background:#fff}
.manual-event-text{min-width:220px}
.manual-added-row{background:#f4fff1}
@media(max-width:900px){.manual-event-grid{grid-template-columns:1fr 1fr}.manual-event-text{grid-column:1/-1}.manual-event-grid button{grid-column:1/-1}}

/* v12.24 timeline admin order and public event icons */
.timeline-event{grid-template-columns:62px 128px minmax(105px,160px) minmax(160px,1fr)}
.timeline-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;white-space:nowrap}
.timeline-badge-icons{display:inline-flex;align-items:center;gap:2px;line-height:0}
.timeline-icon{width:17px;height:17px;object-fit:contain;display:inline-block;flex:0 0 17px}
.timeline-second_yellow .timeline-badge{background:linear-gradient(90deg,#fff1bf 0%,#fff1bf 48%,#ffd9d3 52%,#ffd9d3 100%);color:#5b3d00;border:1px solid #f0c56d}
.timeline-blocked_penalty .timeline-badge{background:#e7f1ff;color:#1f5ca8}
.timeline-own_goal .timeline-badge{background:#fff0e5;color:#8b4a13}
.timeline-var .timeline-badge{background:#edf0f2;color:#30424d}
.admin-timeline-desc-note{margin:8px 0 12px;color:#64727c;font-size:13px;font-weight:700}
@media(max-width:700px){.timeline-event{grid-template-columns:52px minmax(100px,1fr)}.timeline-badge{justify-content:flex-start;width:max-content;max-width:100%}.timeline-icon{width:15px;height:15px}}

/* v12.25: cleaner timeline icon placement and manual event insert feedback */
.timeline-event{grid-template-columns:62px 112px minmax(105px,160px) minmax(160px,1fr) minmax(34px,auto)}
.timeline-event-icons{justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:2px;min-width:30px;min-height:28px;padding:4px 6px;border-radius:999px;background:#eef3f5;border:1px solid transparent;line-height:0}
.timeline-event-icons .timeline-icon{width:18px;height:18px}
.timeline-event-icons-goal,.timeline-event-icons-penalty{background:#dcf5ec;border-color:#b9eadb}
.timeline-event-icons-own_goal{background:#fff0e5;border-color:#ffd6b5}
.timeline-event-icons-blocked_penalty{background:#e7f1ff;border-color:#c8ddfb}
.timeline-event-icons-yellow{background:#fff1bf;border-color:#f1d36f}
.timeline-event-icons-red{background:#ffe0dc;border-color:#efa9a1}
.timeline-event-icons-second_yellow{background:linear-gradient(90deg,#fff1bf 0%,#fff1bf 48%,#ffd9d3 52%,#ffd9d3 100%);border-color:#f0c56d}
.timeline-event-icons-substitution{background:#e5f0ff;border-color:#c7dbf8}
.timeline-event-icons-period{background:#ece9ff;border-color:#d5cdfa}
.timeline-event-icons-var{background:#edf0f2;border-color:#d8e0e4}
.manual-added-row-flash{animation:manualEventFlash 1.8s ease-out}
@keyframes manualEventFlash{0%{box-shadow:0 0 0 0 rgba(38,166,91,.7);transform:scale(1.01)}60%{box-shadow:0 0 0 8px rgba(38,166,91,0)}100%{box-shadow:none;transform:scale(1)}}
@media(max-width:700px){.timeline-event{grid-template-columns:52px minmax(76px,1fr) 42px}.timeline-badge{grid-column:2;justify-content:flex-start;width:max-content;max-width:100%}.timeline-team,.timeline-text{grid-column:2/3}.timeline-event-icons{grid-column:3;grid-row:1/4;align-self:start;justify-self:end;min-width:28px}.timeline-event-icons .timeline-icon{width:15px;height:15px}}


/* v12.26: updated timeline icons and timing layout */
.timeline-event-icons-substitution{background:#e8f9ec;border-color:#bdecc4}
.timeline-event-icons-yellow{background:#fff5bd;border-color:#efd766}
.timeline-event-icons-red{background:#ffdede;border-color:#ee9e9e}
.timeline-event-icons-second_yellow{background:linear-gradient(90deg,#fff5bd 0%,#fff5bd 50%,#ffdede 50%,#ffdede 100%);border-color:#e8bb5d}
.timeline-event-icons-substitution .timeline-icon{width:20px;height:20px}

/* v12.31 penalty shootout collector */
.pso-edit-head,.pso-edit-row{display:grid;grid-template-columns:70px 70px 160px minmax(220px,1fr) 150px;gap:8px;align-items:center;margin:6px 0}.pso-edit-head{font-size:12px;text-transform:uppercase;color:#6b7280;font-weight:700}.pso-edit-row{padding:8px;border:1px solid #e5e7eb;border-radius:10px;background:#fff}.pso-edit-row input,.pso-edit-row select{width:100%}.pso-manual-grid{grid-template-columns:100px 160px minmax(220px,1fr) 150px auto}.penalty-shootout-panel{margin-top:14px;padding:12px;border:1px solid #e5e7eb;border-radius:12px;background:#fbfbfd}.penalty-shootout-panel h4{margin:0 0 10px}.pso-team-head{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:8px}.pso-team-head strong:first-child{text-align:left}.pso-team-head strong:last-child{text-align:right}.pso-shot{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid #edf0f4;padding:7px 0}.pso-home{text-align:left}.pso-away{text-align:right}.pso-order{font-weight:800;color:#64748b}.pso-player{font-weight:700}.pso-outcome{display:inline-block;margin-left:6px;padding:2px 7px;border-radius:999px;font-size:12px;font-weight:800}.pso-scored{background:#dcfce7;color:#166534}.pso-missed,.pso-saved,.pso-post{background:#fee2e2;color:#991b1b}.pso-unknown{background:#f1f5f9;color:#475569}@media(max-width:700px){.pso-edit-head{display:none}.pso-edit-row,.pso-manual-grid{grid-template-columns:1fr}.pso-shot{grid-template-columns:1fr}.pso-away{text-align:left}.pso-team-head{display:none}}

/* v12.33 penalty shootout visual style */
.penalty-shootout-panel{
    margin-top:14px;
    padding:12px;
    border:1px solid #dce3e7;
    border-radius:12px;
    background:#f8fbfc;
    overflow:hidden;
}
.penalty-shootout-panel h4{
    margin:0 0 10px;
    color:#176b59;
    font-weight:900;
}
.pso-team-head{
    display:grid;
    grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);
    gap:10px;
    align-items:center;
    padding:4px 8px 8px;
    color:#183640;
}
.pso-team-head strong:first-child{text-align:right}
.pso-team-head span{text-align:center;color:#5f6f78;font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}
.pso-team-head strong:last-child{text-align:left}
.pso-shot{
    display:grid;
    grid-template-columns:minmax(0,1fr) 74px minmax(0,1fr);
    gap:10px;
    align-items:center;
    margin:6px 0;
    padding:7px 8px;
    border:1px solid #e4eaed;
    border-radius:10px;
    background:#fff;
}
.pso-home{text-align:right;min-width:0}
.pso-away{text-align:left;min-width:0}
.pso-score{
    text-align:center;
    font-weight:950;
    color:#16202a;
    padding:5px 6px;
    border-radius:999px;
    background:#eef6f7;
    border:1px solid #d7e7ea;
    white-space:nowrap;
}
.pso-order{font-weight:900;color:#64748b}
.pso-player{font-weight:800;color:#16202a;overflow-wrap:anywhere}
.pso-outcome{
    display:inline-block;
    margin-left:6px;
    padding:2px 7px;
    border-radius:999px;
    font-size:12px;
    font-weight:900;
    white-space:nowrap;
}
.pso-scored{background:#dcfce7;color:#166534}
.pso-missed,.pso-saved,.pso-post{background:#fee2e2;color:#991b1b}
.pso-unknown{background:#f1f5f9;color:#475569}
@media(max-width:700px){
    .pso-team-head{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:6px;font-size:13px}
    .pso-team-head span{font-size:12px}
    .pso-shot{grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);gap:6px;padding:7px 6px}
    .pso-score{padding:4px 3px;font-size:13px}
    .pso-player,.pso-order{font-size:13px}
    .pso-outcome{display:block;width:max-content;max-width:100%;margin:3px 0 0 auto;font-size:11px}
    .pso-away .pso-outcome{margin-left:0;margin-right:auto}
}

/* v12.34 staff and post-match card timeline helpers */
.timeline-event-icons-staff_yellow,
.timeline-event-icons-post_match_yellow{background:#fff5bd;border-color:#efd766}
.timeline-event-icons-staff_red,
.timeline-event-icons-post_match_red{background:#ffdede;border-color:#ee9e9e}
.timeline-staff_yellow .timeline-badge,
.timeline-staff_red .timeline-badge,
.timeline-post_match_yellow .timeline-badge,
.timeline-post_match_red .timeline-badge{background:#f5f8fa;border-color:#dce5ea;color:#4b5a63}
.timeline-post_match_yellow,
.timeline-post_match_red{border-style:dashed;background:#fbfcfd}
