/* ═══════════════════════════════════════════════════════════
   iTala Platform — Stylesheet
   ═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=DM+Sans:wght@400;500;600;700&family=Montserrat:wght@400;500;600;700;800&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
body{font-family:'DM Sans',sans-serif;background:#080808;color:#E0E0E0;min-height:100vh;-webkit-font-smoothing:antialiased}

/* Event view uses Montserrat */
body.pub-themed{font-family:'Montserrat',sans-serif}
body.pub-themed .game-matchup{font-family:'Montserrat',sans-serif}
body.pub-themed .standings-table{font-family:'Montserrat',sans-serif}
body.pub-themed .roster-team-name,body.pub-themed .roster-player-name{font-family:'Montserrat',sans-serif}
body.pub-themed .rules-content{font-family:'Montserrat',sans-serif}
body.pub-themed .pub-subtitle{font-family:'Montserrat',sans-serif}
body.pub-themed .pub-title{font-family:'Montserrat',sans-serif;font-weight:800}

/* ── Nav ──────────────────────────────────────────────── */
.top-nav{background:#111;border-bottom:1px solid #1A1A1A;padding:0 24px;position:sticky;top:0;z-index:100}
.nav-inner{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;height:90px}
.nav-brand{text-decoration:none;display:flex;align-items:center}
.nav-logo{height:70px;width:auto;object-fit:contain}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{color:#888;text-decoration:none;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:500;padding:6px 12px;border-radius:6px;transition:color .2s}
.nav-links a:hover{color:#ddd}
.nav-btn{font-family:'Montserrat',sans-serif;font-size:13px;font-weight:600;background:#1A1A1A;color:#999;border:1px solid #333;padding:5px 14px;border-radius:6px;cursor:pointer}
.nav-btn:hover{color:#ddd;border-color:#555}
.nav-mode-badge{font-size:9px;font-weight:700;background:#2E2205;color:#FFCC44;padding:3px 8px;border-radius:10px;letter-spacing:.5px;text-transform:uppercase;border:1px solid #3A2E0A}

/* ── Layout helpers ───────────────────────────────────── */
.loading{text-align:center;padding:60px;color:#666;font-size:14px}
.page-center{display:flex;justify-content:center;align-items:center;min-height:60vh}
.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px;max-width:1100px;margin-left:auto;margin-right:auto;padding:24px 0 0}
.page-header h1{font-family:'Bebas Neue',sans-serif;font-size:32px;color:#fff;letter-spacing:2px}
.header-actions{display:flex;gap:8px;flex-wrap:wrap}

/* ── Buttons ──────────────────────────────────────────── */
.btn{font-family:inherit;font-size:13px;font-weight:600;padding:8px 18px;border-radius:8px;border:1px solid #333;background:#1A1A1A;color:#ccc;cursor:pointer;transition:all .2s}
.btn:hover{background:#222;border-color:#555}
.btn-primary{background:#FFCC00;color:#111;border-color:#FFCC00}
.btn-primary:hover{background:#E6B800}
.btn-danger{background:#2A1010;color:#FF7A7A;border-color:#3A1515}
.btn-danger:hover{background:#351515}
.btn-sm{font-size:11px;padding:5px 12px}
.btn-xs{font-size:10px;padding:3px 8px}
.badge{font-size:10px;font-weight:700;padding:3px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px}
.badge-draft{background:#1A1A1A;color:#888;border:1px solid #333}
.badge-live{background:#0D2E22;color:#5CEAAC;border:1px solid #2BBF8A}

/* ── Empty state ──────────────────────────────────────── */
.empty-state{text-align:center;padding:48px 24px}
.empty-icon{font-size:48px;margin-bottom:12px}
.empty-title{font-family:'Bebas Neue',sans-serif;font-size:24px;color:#555;letter-spacing:1px}
.empty-sub{font-size:13px;color:#444;margin-top:6px}
.empty-hint{color:#444;font-size:12px;font-style:italic;padding:12px 0}

/* ── Event cards (home) ───────────────────────────────── */
.event-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-width:1100px;margin:0 auto;padding:0 0 48px}
.event-card{background:#111;border:1px solid #1F1F1F;border-radius:12px;padding:20px;cursor:pointer;transition:border-color .2s,transform .15s;display:flex;gap:16px;align-items:center}
.event-card:hover{border-color:#333;transform:translateY(-2px)}
.event-card-logo{width:64px;height:64px;object-fit:contain;border-radius:8px;flex-shrink:0}
.event-card-logo-ph{width:64px;height:64px;background:#1A1A1A;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}
.event-card-name{font-weight:700;font-size:16px;color:#ddd}
.event-card-meta{font-size:12px;color:#666;margin-top:2px}
.event-card-date{font-size:11px;color:#555;margin-top:4px}

/* ── Admin table ──────────────────────────────────────── */
.admin-table{width:100%;max-width:1100px;margin:0 auto;border-collapse:collapse;font-size:13px}
.admin-table thead th{text-align:left;padding:10px 12px;font-size:10px;font-weight:700;color:#555;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #1F1F1F}
.admin-table tbody tr{border-bottom:1px solid #141414;transition:background .15s}
.admin-table tbody tr:hover{background:#111}
.admin-table tbody td{padding:10px 12px;vertical-align:middle}
.at-name{font-weight:600;color:#ddd}
.at-date{color:#888;font-size:12px}
.at-actions{display:flex;gap:6px}

/* ── Login ────────────────────────────────────────────── */
.login-box{background:#111;border:1px solid #1F1F1F;border-radius:12px;padding:32px;width:340px;max-width:90vw}
.login-title{font-family:'Bebas Neue',sans-serif;font-size:24px;color:#FFCC00;letter-spacing:1px;margin-bottom:18px}
.login-btn{margin-top:14px;width:100%}

/* ── Calendar widget ──────────────────────────────────── */
.cal-wrap{background:#111;border:1px solid #222;border-radius:8px;padding:12px;max-width:340px}
.cal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.cal-month{font-family:'Bebas Neue',sans-serif;font-size:18px;color:#ddd;letter-spacing:1px}
.cal-nav{background:none;border:none;color:#888;font-size:14px;cursor:pointer;padding:4px 8px;border-radius:4px;transition:color .2s}
.cal-nav:hover{color:#FFCC00}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{text-align:center;font-size:10px;font-weight:700;color:#555;padding:4px 0;text-transform:uppercase}
.cal-blank{padding:6px}
.cal-day{text-align:center;padding:6px 2px;font-size:13px;color:#888;border-radius:4px;cursor:pointer;transition:all .15s;user-select:none}
.cal-day:hover{background:#1A1A1A;color:#ddd}
.cal-day.cal-selected{background:#FFCC00;color:#111;font-weight:700}
.cal-count{font-weight:400;color:#666;font-size:10px;text-transform:none;letter-spacing:0}
.cal-selected-list{margin-top:8px;font-size:10px;color:#555;line-height:1.6;word-break:break-all}

/* ── Forms ────────────────────────────────────────────── */
.form-input{font-family:inherit;font-size:13px;padding:8px 12px;border:1px solid #333;border-radius:6px;background:#111;color:#ddd;outline:none;transition:border-color .2s;width:100%}
.form-input:focus{border-color:#FFCC00}
.form-textarea{font-family:inherit;font-size:12px;padding:10px 12px;border:1px solid #333;border-radius:6px;background:#111;color:#ddd;width:100%;outline:none;resize:vertical}
.form-textarea:focus{border-color:#FFCC00}
.form-error{color:#FF7A7A;font-size:12px;margin-top:6px}
.form-row{display:flex;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.form-group{display:flex;flex-direction:column;gap:4px;min-width:120px}
.form-group label{font-size:11px;color:#888;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.form-grow{flex:1}
.form-tiny{width:60px!important;min-width:60px!important}
.form-color{width:44px;height:36px;padding:2px;border:1px solid #333;border-radius:6px;background:#111;cursor:pointer}

/* ── Editor ───────────────────────────────────────────── */
.editor{max-width:1100px;margin:0 auto;padding-bottom:48px}
.editor-section{background:#0D0D0D;border:1px solid #1A1A1A;border-radius:10px;padding:20px;margin-bottom:16px}
.editor-section-title{font-family:'Bebas Neue',sans-serif;font-size:18px;color:#FFCC00;letter-spacing:1px;margin-bottom:14px;display:flex;justify-content:space-between;align-items:center}
.editor-hint{font-size:11px;color:#555;margin-bottom:12px}
.editor-logo-preview{width:80px;height:80px;object-fit:contain;border-radius:8px;margin-top:8px}

.div-card{border:1px solid #1F1F1F;border-radius:8px;margin-bottom:10px;overflow:hidden}
.div-card-header{padding:12px;background:#111;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.div-card-controls{display:flex;align-items:center;gap:8px;font-size:11px;color:#888;flex-wrap:wrap}
.div-card-controls label{display:flex;align-items:center;gap:4px;cursor:pointer}
.div-name-input{font-weight:700;max-width:220px}
.div-teams{padding:10px 12px}
.div-teams-header{font-size:12px;font-weight:600;color:#888;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.team-row{display:flex;gap:6px;margin-bottom:4px;align-items:center}
.team-name-input{flex:1;min-width:120px}
.team-coach-input{width:120px}

/* Court name inputs in editor */
.court-names-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.court-name-input{width:110px;font-size:12px}

/* Edit button inside schedule grid pills */
.pill-edit-row{margin-top:4px}
.pill-edit-btn{opacity:.6;transition:opacity .15s}
.pill-edit-btn:hover{opacity:1}
.game-cell[draggable="true"]{cursor:grab}
.game-cell[draggable="true"]:active{cursor:grabbing}

/* ── Modal ────────────────────────────────────────────── */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000}
.modal-box{background:#1A1A1A;border:1px solid #2A2A2A;border-radius:12px;padding:24px;width:420px;max-width:90vw;max-height:80vh;overflow-y:auto}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:20px;color:#FFCC00;margin-bottom:16px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.player-edit-row{display:flex;gap:6px;margin-bottom:4px;align-items:center}

/* ══════════════════════════════════════════════════════════════
   FULL EVENT THEMING — .pub-themed on <body> recolors the UI
   ══════════════════════════════════════════════════════════ */
body.pub-themed{background:var(--ev-bg,#0D0D0D);color:var(--ev-text,#E0E0E0)}
body.pub-themed .top-nav{background:var(--ev-bg,#0D0D0D);border-bottom:1px solid var(--ev-border,rgba(128,128,128,.15))}
body.pub-themed .nav-brand{color:var(--ev-primary,#FFCC00)}
body.pub-themed .nav-links a{color:var(--ev-text-sec,#888)}
body.pub-themed .nav-links a:hover{color:var(--ev-text,#E0E0E0)}
body.pub-themed .nav-btn{color:var(--ev-primary);border-color:var(--ev-primary);background:transparent}
body.pub-themed .nav-btn:hover{background:var(--ev-primary);color:var(--ev-bg)}
body.pub-themed .pub-tabs{border-bottom:1px solid var(--ev-border,rgba(128,128,128,.15))}
body.pub-themed .pub-tab{color:var(--ev-text-sec,#888)}
body.pub-themed .pub-tab:hover{color:var(--ev-text,#E0E0E0)}
body.pub-themed .pub-tab.active{color:var(--ev-primary)}
body.pub-themed .pub-tab.active::after{background:var(--ev-primary)}
body.pub-themed .pub-day-title{color:var(--ev-primary);border-bottom:1px solid var(--ev-border,rgba(128,128,128,.15))}
body.pub-themed .sched-table th{color:var(--ev-text-sec)}
body.pub-themed .sched-table thead tr{border-bottom:1px solid var(--ev-border,rgba(128,128,128,.15))}
body.pub-themed .sched-table td{border-bottom:1px solid var(--ev-border,rgba(128,128,128,.08))}
body.pub-themed .time-cell{color:var(--ev-text)}
body.pub-themed .game-matchup{color:inherit}
body.pub-themed .empty-dash{color:var(--ev-text-sec)}
/* Logo glow uses accent color */
body.pub-themed .pub-logo{filter:drop-shadow(0 0 4px color-mix(in srgb,var(--ev-primary) 30%,transparent))}
body.pub-themed .pub-sponsor-lg{filter:none}
/* Standings */
body.pub-themed .standings-group-header{color:var(--ev-primary)}
body.pub-themed .standings-team-name{color:var(--ev-text)}
body.pub-themed .standings-table thead th{color:var(--ev-text-sec)}
body.pub-themed .standings-table tbody tr{border-bottom:1px solid var(--ev-border,rgba(128,128,128,.08))}
body.pub-themed .standings-table tbody tr:hover{background:var(--ev-primary);background:color-mix(in srgb,var(--ev-primary) 10%,transparent)}
body.pub-themed .standings-rank{color:var(--ev-text-sec)}
body.pub-themed .standings-rank.rank-1{color:var(--ev-primary)}
body.pub-themed .standings-wins{color:var(--ev-primary)}
body.pub-themed .standings-losses{color:var(--ev-text-sec)}
body.pub-themed .standings-diff-pos{color:var(--ev-primary)}
body.pub-themed .standings-diff-neg{color:var(--ev-text-sec)}
body.pub-themed .standings-diff-zero{color:var(--ev-text-sec)}
body.pub-themed .standings-pf,body.pub-themed .standings-pa{color:var(--ev-text-sec)}
body.pub-themed .standings-table tbody td.num{color:var(--ev-text)}
/* Rosters */
body.pub-themed .roster-group-header{color:var(--ev-primary)}
body.pub-themed .roster-team-name{color:var(--ev-text)}
body.pub-themed .roster-team-meta{color:var(--ev-text-sec)}
body.pub-themed .roster-player-name{color:var(--ev-text)}
body.pub-themed .roster-team{background:color-mix(in srgb,var(--ev-primary) 3%,var(--ev-bg));border-color:var(--ev-border,rgba(128,128,128,.1))}
body.pub-themed .roster-team:hover{border-color:var(--ev-primary)}
body.pub-themed .roster-team-header:hover{background:color-mix(in srgb,var(--ev-primary) 8%,transparent)}
body.pub-themed .roster-team.open .roster-chevron{color:var(--ev-primary)}
body.pub-themed .roster-player-num{color:var(--ev-primary)}
body.pub-themed .roster-player:hover{background:color-mix(in srgb,var(--ev-primary) 5%,transparent)}
body.pub-themed .roster-players{border-top-color:var(--ev-border,rgba(128,128,128,.1))}
/* Header */
body.pub-themed .pub-title{color:var(--ev-heading)}
body.pub-themed .pub-subtitle{color:var(--ev-text-sec)}
/* Scores */
body.pub-themed .score-static{color:var(--ev-text)}
body.pub-themed .score-input{color:var(--ev-text);border-color:var(--ev-text-sec);background:color-mix(in srgb,var(--ev-bg) 80%,transparent)}
body.pub-themed .score-input:focus{border-color:var(--ev-primary)}
body.pub-themed .score-separator{color:var(--ev-text-sec)}
body.pub-themed .score-row .team-code{color:var(--ev-text-sec)}
/* Filter */
body.pub-themed .filter-label{color:var(--ev-text-sec)}
body.pub-themed .team-chip{color:var(--ev-text-sec);border-color:color-mix(in srgb,var(--ev-text-sec) 50%,transparent)}
body.pub-themed .team-chip:hover{border-color:var(--ev-primary);color:var(--ev-text)}
body.pub-themed .team-chip.clear-btn{background:var(--ev-primary);color:var(--ev-bg);border-color:var(--ev-primary)}
body.pub-themed .team-chip.clear-btn:hover{opacity:.85}
body.pub-themed .legend-row{color:var(--ev-text-sec)}
/* Rules rich HTML */
body.pub-themed .rules-content{color:var(--ev-text);line-height:1.7}
body.pub-themed .rules-content h2{font-family:'Bebas Neue',sans-serif;font-size:26px;color:var(--ev-primary);letter-spacing:1.5px;margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--ev-border,rgba(128,128,128,.1))}
body.pub-themed .rules-content h3{font-family:'Bebas Neue',sans-serif;font-size:18px;color:var(--ev-heading);letter-spacing:1px;margin:16px 0 8px}
body.pub-themed .rules-content ul,body.pub-themed .rules-content ol{padding-left:24px;margin:6px 0}
body.pub-themed .rules-content li{margin:4px 0;color:var(--ev-text)}
body.pub-themed .rules-content li::marker{color:var(--ev-primary)}
body.pub-themed .rules-content p{margin:8px 0;color:var(--ev-text)}
body.pub-themed .rules-content strong{color:var(--ev-heading)}
/* Game label inside pills */
body.pub-themed .game-label{opacity:.6}

/* Division color picker in editor */
.div-color-input{width:36px!important;height:36px;min-width:36px!important;padding:2px;flex-shrink:0}

/* Rich text editor */
.rte-toolbar{display:flex;gap:4px;padding:6px 0;border-bottom:1px solid #222;margin-bottom:8px;flex-wrap:wrap}
.rte-btn{font-family:inherit;font-size:12px;padding:4px 10px;border:1px solid #333;border-radius:4px;background:#1A1A1A;color:#ccc;cursor:pointer;transition:background .15s}
.rte-btn:hover{background:#222}
.rte-editor{min-height:200px;padding:12px;border:1px solid #222;border-radius:6px;background:#111;color:#ddd;font-size:14px;line-height:1.7;outline:none}
.rte-editor:focus{border-color:#FFCC00}
.rte-editor h2{font-family:'Bebas Neue',sans-serif;font-size:22px;color:#FFCC00;margin:12px 0 6px;letter-spacing:1px}
.rte-editor h3{font-family:'Bebas Neue',sans-serif;font-size:17px;color:#ddd;margin:10px 0 4px}
.rte-editor ul,.rte-editor ol{padding-left:24px;margin:4px 0}
.rte-editor li{margin:3px 0}

/* Editor minor sponsor thumbnails */
.editor-minor-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.editor-minor-thumb{position:relative}
.editor-minor-thumb img{width:48px;height:48px;object-fit:contain;border-radius:4px;background:#1A1A1A;border:1px solid #222}
.editor-minor-thumb .btn{position:absolute;top:-4px;right:-4px;padding:1px 4px;font-size:9px}

/* Public event sponsor display */
.pub-header-logos{display:flex;align-items:center;gap:10px;flex-shrink:0}
.pub-sponsors-minor{display:flex;gap:4px;align-items:center}
.pub-sponsors-primary{display:flex;gap:8px;align-items:center}
.pub-sponsor-sm{width:50px;height:50px;object-fit:contain;border-radius:6px}
.pub-sponsor-lg{width:100px;height:100px;object-fit:contain;border-radius:8px}

/* ══════════════════════════════════════════════════════════
   PUBLIC EVENT VIEW
   ══════════════════════════════════════════════════════ */
.pub-event{max-width:1100px;margin:0 auto;padding:0 24px 48px}
.pub-header{display:flex;justify-content:space-between;align-items:center;padding:20px 0;gap:16px}
.pub-header-left h1{font-family:'Bebas Neue',sans-serif;font-size:36px;color:#fff;letter-spacing:2px;line-height:1}
.pub-title span{color:var(--ev-primary,#FFCC00)}
.pub-subtitle{font-size:13px;color:#666;margin-top:4px}
.pub-logo{width:120px;height:120px;object-fit:contain;border-radius:10px;flex-shrink:0;filter:drop-shadow(0 0 16px rgba(255,204,0,.15))}
.pub-tabs{display:flex;gap:0;border-bottom:1px solid #1A1A1A;margin-bottom:20px}
.pub-tab{font-family:'Bebas Neue',sans-serif;font-size:16px;letter-spacing:1.5px;padding:12px 24px;background:none;border:none;color:#555;cursor:pointer;position:relative;transition:color .25s}
.pub-tab:hover{color:#999}
.pub-tab.active{color:var(--ev-primary,#FFCC00)}
.pub-tab.active::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--ev-primary,#FFCC00)}
.pub-panel{display:none}
.pub-panel.active{display:block}
.pub-day-title{font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--ev-primary,#FFCC00);margin:20px 0 10px;letter-spacing:1.5px;border-bottom:1px solid #1F1F1F;padding-bottom:8px}

/* ── Original schedule grid (Time × Court) with pill cards ── */
.sched-table-wrap{overflow-x:auto;margin-bottom:16px}
.sched-table{width:100%;border-collapse:collapse;font-size:12px;table-layout:fixed}
.sched-table thead tr{border-bottom:1px solid #1F1F1F}
.sched-table th{text-align:center;padding:8px 6px;color:#555;font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.sched-table th:first-child{text-align:left;width:80px}
.sched-table td{padding:6px;border-bottom:1px solid #141414;vertical-align:top}
.time-cell{font-weight:600;color:#bbb;white-space:nowrap;padding-top:12px!important;font-size:12px}
.game-cell{transition:opacity .25s ease,filter .25s ease}
.empty-cell{transition:opacity .25s ease}
.empty-dash{color:#262626;font-size:11px;text-align:center;padding:6px}
.game-inner{border-radius:6px;padding:6px 8px;text-align:left;border-left:3px solid transparent;position:relative}
.game-label{font-size:10px;opacity:.55;margin-bottom:2px}
.game-matchup{font-weight:600;font-size:13px}
.legend-row{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:16px;font-size:11px;color:#888}
.legend-item{display:flex;align-items:center;gap:6px}
.legend-dot{width:10px;height:10px;border-radius:2px}

/* Score display inside game cards */
.score-row{display:flex;align-items:center;gap:4px;margin-top:5px;font-size:11px}
.score-row .team-code{color:inherit;opacity:.5;font-weight:600;font-size:10px;width:42px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.score-separator{color:#444;font-weight:600;font-size:10px}

/* ── Team filter chips ─────────────────────────────────── */
.team-filter-bar{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:22px;align-items:center}
.filter-label{font-size:11px;font-weight:600;color:#666;margin-right:6px;text-transform:uppercase;letter-spacing:.08em}
.team-chip{font-family:'DM Sans',sans-serif;font-size:11px;font-weight:600;padding:4px 10px;border-radius:20px;border:1.5px solid #333;background:transparent;color:#777;cursor:pointer;transition:all .2s;white-space:nowrap}
.team-chip:hover{border-color:#555;color:#bbb}
.team-chip.active{color:#fff;border-color:transparent}
.team-chip.clear-btn{background:#1A1A1A;border:1.5px solid #333;color:#666;font-weight:500;display:none}
.team-chip.clear-btn.visible{display:inline-block}
.team-chip.clear-btn:hover{background:#222;color:#ccc}
.filter-divider{width:1px;height:18px;background:#2A2A2A;margin:0 4px}

/* Filter dim/highlight */
.filtered-dim{opacity:.1!important;filter:grayscale(.7);transition:opacity .25s ease,filter .25s ease}
.filtered-highlight .game-inner{box-shadow:0 0 0 2px rgba(255,204,0,.25)}

/* ── Reused from original app ─────────────────────────── */
.score-input{width:42px;padding:3px 4px;border:1px solid #333;border-radius:4px;background:rgba(0,0,0,.4);color:#ddd;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:700;text-align:center;-moz-appearance:textfield}
.score-input::-webkit-outer-spin-button,.score-input::-webkit-inner-spin-button{-webkit-appearance:none}
.score-input:focus{outline:none;border-color:#FFCC00;background:rgba(255,204,0,.05)}
.score-static{font-size:13px;font-weight:700;color:#ddd}
.standings-section{margin-bottom:28px}
.standings-group-header{font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:1.5px;margin:0 0 8px;color:var(--ev-primary,#FFCC00)}
.standings-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px}
.standings-table thead th{text-align:left;padding:8px 12px;font-size:10px;font-weight:700;color:#555;text-transform:uppercase;border-bottom:1px solid #1F1F1F}
.standings-table thead th.num{text-align:center}
.standings-table tbody tr{border-bottom:1px solid #141414}
.standings-table tbody tr:hover{background:#111}
.standings-table tbody td{padding:8px 12px}
.standings-table tbody td.num{text-align:center;font-weight:600}
.standings-rank{font-family:'Bebas Neue',sans-serif;font-size:18px;color:#444;width:32px;text-align:center}
.standings-rank.rank-1{color:#FFCC00}.standings-rank.rank-2{color:#999}.standings-rank.rank-3{color:#8B5E3C}
.standings-team-name{font-weight:600;color:#ddd}
.standings-wins{color:#5CEAAC}.standings-losses{color:#FF7A7A}
.standings-diff-pos{color:#5CEAAC}.standings-diff-neg{color:#FF7A7A}.standings-diff-zero{color:#555}

.roster-section{margin-bottom:28px}
.roster-group-header{font-family:'Bebas Neue',sans-serif;font-size:20px;letter-spacing:1.5px;margin:0 0 10px;color:var(--ev-primary,#FFCC00)}
.roster-team{border:1px solid #1F1F1F;border-radius:8px;margin-bottom:6px;overflow:hidden;background:#0D0D0D}
.roster-team:hover{border-color:#2A2A2A}
.roster-team.open{border-color:#333}
.roster-team-header{display:flex;align-items:center;padding:12px 16px;cursor:pointer;gap:12px;user-select:none}
.roster-team-header:hover{background:#141414}
.roster-team-name{font-weight:700;font-size:15px;color:#ddd;flex:1}
.roster-team-meta{font-size:11px;color:#555}
.roster-chevron{color:#555;transition:transform .25s;flex-shrink:0}
.roster-team.open .roster-chevron{transform:rotate(180deg);color:var(--ev-primary,#FFCC00)}
.roster-players{display:none;border-top:1px solid #1A1A1A;padding:8px 0}
.roster-team.open .roster-players{display:block}
.roster-player{display:flex;align-items:center;gap:10px;padding:5px 16px 5px 20px}
.roster-player:hover{background:#111}
.roster-player-idx{font-size:11px;color:#444;width:20px;text-align:right}
.roster-player-num{font-family:'Bebas Neue',sans-serif;font-size:16px;color:var(--ev-primary,#FFCC00);width:32px;text-align:center;opacity:.8}
.roster-player-name{font-size:13px;color:#ccc;font-weight:500}

/* Rules rendered content - styled via pub-themed rules-content selectors above */

@media(max-width:768px){
  .page-header{padding:16px 0 0}
  .page-header h1{font-size:24px}
  .event-grid{grid-template-columns:1fr}
  .pub-header{flex-wrap:wrap}
  .pub-logo{width:80px;height:80px}
  .pub-tabs{overflow-x:auto}
  .pub-tab{padding:10px 16px;font-size:14px}
  .form-row{flex-direction:column}
}

/* ── Unscheduled games row ───────────────────────────── */
.unsched-row{border:1px dashed #444;border-radius:10px;padding:12px 14px;margin:0 0 20px;background:#0F0F0F}
.unsched-head{font-family:'Bebas Neue',sans-serif;letter-spacing:.5px;font-size:15px;color:var(--ev-primary,#FFCC00);text-transform:uppercase;margin-bottom:10px;display:flex;align-items:center;gap:8px}
.unsched-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:#222;color:#ccc;font-family:inherit;font-size:12px}
.unsched-list{display:flex;flex-wrap:wrap;gap:10px}
.unsched-empty{font-size:13px;color:#666;padding:6px 2px}
.unsched-pill{min-width:190px;max-width:260px;cursor:grab}
.unsched-pill:active{cursor:grabbing}
.unsched-pill .game-inner{border-radius:8px;padding:8px 10px}

/* ── Mobile: reverse the header logo order (icon, major, minor) ── */
@media(max-width:768px){
  .pub-header-logos{flex-direction:row-reverse}
}

/* Round-robin prompt */
.rr-check{display:flex;align-items:center;gap:8px;font-size:13px;color:#ccc;margin:4px 0 10px;cursor:pointer}
.rr-check input{cursor:pointer}

/* ── Collapsible editor sections ──────────────────────── */
.acc-toolbar{display:flex;gap:8px;justify-content:flex-end;margin:0 0 10px}
.acc-head{cursor:pointer;user-select:none}
.acc-head:hover .acc-caret{color:var(--ev-primary,#FFCC00)}
.acc-label{display:flex;align-items:center;min-width:0}
.acc-caret{display:inline-block;margin-right:8px;font-size:11px;color:#666;transition:transform .15s ease}
.editor-section.acc-closed .acc-caret{transform:rotate(-90deg)}
.editor-section.acc-closed .acc-head{margin-bottom:0}
.editor-section.acc-closed .acc-body{display:none}
.acc-meta{font-family:system-ui,-apple-system,'Segoe UI',sans-serif;font-size:11px;font-weight:500;letter-spacing:0;color:#666;margin-left:10px;white-space:nowrap}
.acc-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}

/* ── Team matchup report ──────────────────────────────── */
.matchup-block{margin-bottom:22px}
.matchup-block:last-child{margin-bottom:0}
.matchup-div-title{font-family:'Bebas Neue',sans-serif;font-size:15px;letter-spacing:.5px;color:#DDD;padding-left:10px;margin-bottom:8px}
.matchup-summary{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px 10px}
.matchup-stat{font-size:11px;padding:3px 8px;border-radius:10px;background:#151515;color:#999;border:1px solid #222}
.matchup-stat-ok{color:#2BBF8A;border-color:rgba(43,191,138,.3)}
.matchup-stat-warn{color:#E06040;border-color:rgba(224,96,64,.45);background:rgba(224,96,64,.08)}
.matchup-stat-muted{color:#666}
.matchup-scroll{overflow-x:auto;border:1px solid #1A1A1A;border-radius:8px}
.matchup-table{border-collapse:collapse;font-size:12px;min-width:100%}
.matchup-table th,.matchup-table td{padding:7px 10px;text-align:center;white-space:nowrap;border-bottom:1px solid #161616}
.matchup-table tbody tr:last-child th,.matchup-table tbody tr:last-child td{border-bottom:none}
.matchup-table thead th{color:#888;font-weight:600;font-size:11px;background:#0F0F0F;position:sticky;top:0}
.matchup-corner{position:sticky;left:0;z-index:3;background:#0F0F0F}
.matchup-col{min-width:78px}
.matchup-row-head{position:sticky;left:0;z-index:2;background:#0D0D0D;text-align:left;color:#2BBF8A;font-weight:600;border-right:1px solid #1A1A1A}
.matchup-table tbody tr:hover td{background:#121212}
.matchup-table tbody tr:hover .matchup-row-head{background:#141414}
.matchup-self{color:#333}
.matchup-none{color:#444}
.matchup-one{color:#CCC}
.matchup-dupe{color:#fff;font-weight:700;background:rgba(224,96,64,.22);box-shadow:inset 0 0 0 1px rgba(224,96,64,.55)}

@media(max-width:768px){
  .acc-meta{display:none}
  .matchup-col{min-width:64px}
}
