:root{
  --dark:#0b0d10;--panel:#15191f;--panel2:#101419;--red:#b71c1c;--live:#e53935;
  --gold:#ffc107;--green:#197a35;--amber:#8a6e00;--text:#f4f5f6;--muted:#aeb5be;
  --border:#2a3038;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--dark);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;min-height:100%}
body{padding-bottom:env(safe-area-inset-bottom)}
.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:14px 16px;padding-top:calc(14px + env(safe-area-inset-top));background:#11151a;border-bottom:1px solid var(--border)}
.title{font-size:17px;font-weight:800}.subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.icon-btn{border:0;background:transparent;color:#fff;font-size:25px;padding:8px}
main{max-width:760px;margin:0 auto;padding:12px}
.match-list,.event-list{display:flex;flex-direction:column;gap:10px}
.match-card{background:var(--panel);border:1px solid #1e242b;border-radius:15px;padding:16px;cursor:pointer;box-shadow:0 7px 18px rgba(0,0,0,.15)}
.match-top{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}
.status-live{color:var(--live);font-weight:800}.status-normal{color:#8f979f}
.match-score{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px;margin-top:16px}
.match-score .name{font-weight:800}.match-score .name:last-child{text-align:right}
.match-score .numbers{font-size:29px;font-weight:900;white-space:nowrap}
.score-card{background:var(--panel2);border:1px solid #1f252d;border-radius:18px;padding:20px;margin-top:8px;text-align:center}
.live-state{font-weight:900;color:var(--gold);margin-bottom:14px}
.live-state.live{color:var(--live)}
.score-row{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:10px}
.team{font-size:18px;font-weight:800}.team-left{text-align:left}.team-right{text-align:right}
.score{font-size:42px;font-weight:950;white-space:nowrap}
.match-meta{font-size:12px;color:var(--muted);margin-top:12px}
.back-btn{border:0;background:transparent;color:#fff;font-size:16px;font-weight:700;padding:8px 0 12px}
.observer-panel{margin-top:10px;background:var(--panel);border:1px solid #252c34;border-radius:15px;padding:12px}
.observer-title{color:var(--gold);font-weight:900;margin-bottom:10px}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.btn{border:0;border-radius:10px;padding:11px 14px;color:white;font-weight:800;font-size:14px}
.btn:disabled{opacity:.38}.btn.red{background:var(--red)}.btn.green{background:var(--green)}.btn.amber{background:var(--amber)}.btn.secondary{background:#333a43}
h2{font-size:18px;margin:18px 0 8px}
.event{display:flex;align-items:center;gap:10px;background:var(--panel);border:1px solid #232a32;border-radius:13px;padding:12px}
.event-icon{font-size:23px}.event-body{flex:1}.event-title{font-weight:800}.event-sub{font-size:12px;color:var(--muted);margin-top:3px}
.delete-btn{border:0;background:transparent;color:var(--live);font-weight:800}
.loading,.empty{padding:30px 10px;text-align:center;color:var(--muted)}
.message{padding:11px 13px;border-radius:10px;margin-bottom:10px;background:#3a1616;color:#ffdada}
.install-hint{background:#17233a;border:1px solid #29416b;border-radius:12px;padding:12px;margin-bottom:12px;line-height:1.4;font-size:14px}
.install-hint button{float:right;border:0;border-radius:8px;padding:5px 9px}
.hidden{display:none!important}
.modal{border:0;background:transparent;padding:16px;width:min(94vw,440px)}
.modal::backdrop{background:rgba(0,0,0,.72)}
.modal-card{background:#171b21;border:1px solid #2a313b;border-radius:18px;padding:18px;color:white}
.modal-card h3{margin-top:0}.modal-card label{display:block;font-size:13px;color:var(--muted);margin:12px 0}
.modal-card input,.modal-card select{display:block;width:100%;margin-top:6px;padding:12px;border-radius:10px;border:1px solid #39414b;background:#0f1216;color:white;font-size:16px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.error{color:#ff7777;font-size:13px;margin-top:8px}
@media(max-width:450px){
  .title{font-size:15px}.match-score .numbers{font-size:26px}.score{font-size:36px}.team{font-size:15px}
}

.top-actions{display:flex;align-items:center;gap:2px}
.icon-btn.enabled{color:#7CFF9B}
.icon-btn.denied{opacity:.55}
