.role-badge{display:inline-flex;align-items:center;padding:3px 8px;margin-right:7px;border:1px solid currentColor;border-radius:6px;font-size:11px;font-weight:700;white-space:nowrap;vertical-align:middle}
.game-summary{display:grid;grid-template-columns:110px minmax(0,2fr) minmax(0,1fr) minmax(0,1.2fr) minmax(0,1.2fr);gap:20px;padding:18px 24px;align-items:start;list-style:none}
.game-summary>span{min-width:0;white-space:normal;overflow-wrap:anywhere;line-height:1.6}
.game-summary small{display:block;font-size:11px;color:#94a3b8;font-weight:500;margin-bottom:4px}
#gameList{overflow-x:visible}#gameList>details{min-width:0}#gameList table{table-layout:fixed}#gameList th:nth-child(1){width:23%}#gameList th:nth-child(2){width:40%}#gameList th:nth-child(3){width:23%}#gameList th:nth-child(4){width:14%}
#gameList td{overflow-wrap:anywhere;white-space:normal;vertical-align:top}
.record-pagination{display:flex;gap:12px;align-items:center;justify-content:center;padding:16px 0;font-size:13px;color:#94a3b8}
.record-pagination button{padding:8px 18px;border:1px solid #475569;border-radius:8px;color:#b9ddff;background:#182538;text-decoration:none;font-weight:700}
[hidden]{display:none!important}
.archive-method{font-size:12px;color:#94a3b8;margin:8px 0 16px}.archive-method summary{cursor:pointer}.archive-method p{padding:10px 0;max-width:580px}
#recentBody td{white-space:normal;overflow-wrap:anywhere}#recentBody td small{line-height:1.5;margin-top:4px}.archive-table{table-layout:auto}.archive-table th,.archive-table td{white-space:normal}#demonStats .archive-scroll{max-height:560px}#demonStats{margin-top:24px}#synergyPanel{scroll-margin-top:90px}
.role-townsfolk{color:#80c8ff;background:#163c5e}.role-outsider{color:#8ee5d1;background:#163e3c}.role-minion{color:#ffc581;background:#573018}.role-demon{color:#ff9dab;background:#551e31}.role-traveller,.role-unknown{color:#d7c7f7;background:#332a48}
.archive-panel{padding:24px;border:1px solid #334155;border-radius:18px;background:#111b2bcc;margin:20px 0;color:#e2e8f0}.archive-panel h2{font-size:22px;font-weight:800;margin-bottom:12px}.archive-panel h3{font-size:17px;font-weight:700;margin:18px 0 8px}.archive-panel p{line-height:1.6}.archive-panel label{display:inline-flex;gap:6px;align-items:center}.archive-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:14px 0}.archive-panel input:not([type=checkbox]),.archive-panel select{padding:9px;border:1px solid #475569;border-radius:9px;background:#0b1220;color:#fff;max-width:100%}.archive-panel button,.archive-link{color:#8dccff;text-decoration:underline;cursor:pointer}.archive-note{color:#a9b9cc;font-size:13px}.archive-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.archive-stat{background:#1d293b;border-radius:12px;padding:15px}.archive-stat strong{display:block;font-size:25px}.archive-table{width:100%;border-collapse:collapse;margin:12px 0}.archive-table th,.archive-table td{padding:10px 8px;text-align:left;border-bottom:1px solid #334155}.archive-table th{font-size:12px;color:#94a3b8}.archive-scroll{overflow:auto}.archive-chip{display:inline-flex;gap:8px;margin:4px;padding:5px 10px;border-radius:20px;background:#24374f}.archive-chip button{text-decoration:none}.archive-empty{padding:16px;color:#b5c0cf}.player-block[hidden]{display:none!important}
.register-tools{padding:16px;border:1px solid #cbd5e1;background:#f8fafc;border-radius:12px}.register-tools summary{font-weight:700;cursor:pointer}.register-tools textarea{width:100%;min-height:140px;border:1px solid #cbd5e1;border-radius:8px;padding:10px;margin:10px 0}.register-tools button,.register-secondary{padding:8px 12px;border:1px solid #94a3b8;border-radius:8px;background:#fff;color:#1e293b}.register-hint{font-size:12px;color:#64748b;line-height:1.6}.register-field{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}.register-field input,.register-field select{min-width:0;width:100%;padding:9px;border:1px solid #cbd5e1;border-radius:7px;background:white;font-weight:400}.player-edit-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.player-edit-grid .full{grid-column:1/-1}.register-row-title{font-weight:700;margin-bottom:9px}.register-status{padding:10px;color:#334155;font-size:13px}.register-confirm{display:flex;gap:8px;align-items:center;padding:12px;background:#fffbeb;border-radius:8px}.ocr-preview{max-height:220px;max-width:100%;object-fit:contain;margin:12px auto}.draft-row{padding:8px;border-bottom:1px solid #cbd5e1}.draft-row input{padding:7px;border:1px solid #cbd5e1;border-radius:6px;width:100%}@media(min-width:760px){.player-edit-grid{grid-template-columns:1fr 1.3fr 1fr 1fr}.player-edit-grid .full{grid-column:auto}.draft-row{display:grid;grid-template-columns:1fr 1.2fr 100px 100px;gap:8px}}@media(max-width:540px){.archive-panel{padding:15px}.archive-table{font-size:12px}.archive-table th,.archive-table td{padding:8px 5px}}

.archive-table{table-layout:fixed}.archive-table th,.archive-table td{overflow-wrap:anywhere;vertical-align:top}#synergyPanel .archive-table th:first-child{width:40%}#recentBody td{vertical-align:top}#recentBody td:nth-child(1){width:17%}#recentBody td:nth-child(2){width:33%}#recentBody td:nth-child(3){width:25%}#recentBody td:nth-child(4){width:15%}#recentBody td:nth-child(5){width:10%}


.game-summary{position:relative;padding-right:32px}.game-summary::after{content:'⌄';position:absolute;right:12px;top:20px;color:#94a3b8}details[open]>.game-summary::after{content:'⌃'}
.story-history{overflow-x:auto}.story-game{display:grid;grid-template-columns:110px minmax(0,2fr) minmax(0,1fr) 90px minmax(0,1fr);gap:18px;min-width:690px;padding:16px 8px;border-bottom:1px solid #334155}.story-game>span{min-width:0;overflow-wrap:anywhere}.story-game:not(.story-columns):hover{background:#1b2c43}.story-columns{color:#94a3b8;font-size:12px}.synergy-game{display:grid;grid-template-columns:100px minmax(0,1fr) 95px;gap:12px;padding:10px 0;border-bottom:1px solid #334155}.synergy-game>span{min-width:0;overflow-wrap:anywhere}

/* Keep role badges and names in separate, consistently sized columns. */
.character-label{display:grid;grid-template-columns:68px minmax(0,1fr);gap:10px;align-items:start;text-align:left}
.character-label .role-badge{width:68px;box-sizing:border-box;justify-content:center;margin:0;font-size:12px;padding:4px 3px}
.character-label>span:last-child{min-width:0;overflow-wrap:anywhere;line-height:1.6}
.character-cell{text-align:left;padding-left:8px;padding-right:8px}
.character-stats-table{table-layout:fixed;font-size:16px}
.character-stats-table th:nth-child(1){width:8%}.character-stats-table th:nth-child(2){width:50%;text-align:left;padding-left:8px}.character-stats-table th:nth-child(3){width:24%}.character-stats-table th:nth-child(4){width:18%}
.character-stats-table td{vertical-align:top;overflow-wrap:anywhere}
.game-summary{font-size:16px}.game-summary>span{font-size:16px}.game-summary small{font-size:13px}
@media(max-width:640px){
  .game-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:'date sheet' 'story demon' 'pog pog';gap:16px 20px;padding:18px 28px 18px 18px}
  .game-summary>span:nth-child(1){grid-area:date}.game-summary>span:nth-child(2){grid-area:sheet}.game-summary>span:nth-child(3){grid-area:pog}.game-summary>span:nth-child(4){grid-area:story}.game-summary>span:nth-child(5){grid-area:demon}
  .game-summary>span{font-size:17px;line-height:1.5}.game-summary small{font-size:13px;color:#b3c0d0}
  #gameList>details>div{padding:16px 12px}#gameList table{font-size:15px}#gameList td{padding:12px 5px}
  .archive-table{font-size:15px}.archive-table th{font-size:13px}.archive-note{font-size:14px}
  .character-stats-table{font-size:15px}.character-label{grid-template-columns:60px minmax(0,1fr);gap:8px}.character-label .role-badge{width:60px;font-size:12px}.character-cell{padding-left:4px;padding-right:4px}.character-stats-table th:nth-child(2){padding-left:4px}
}

.scenario-name{color:#fde047!important;font-weight:700}.team-good{color:#fde047;font-weight:800}.team-evil{color:#ff8c97;font-weight:800}
.player-tabs{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:64px;z-index:45;background:#131d2bf5;padding:12px;margin:0 0 20px;border:1px solid #334155;border-radius:12px;scroll-margin-top:80px}
.player-tabs button{padding:10px 14px;border-radius:8px;color:#cbd5e1;font-size:15px;font-weight:700}.player-tabs button[aria-selected=true]{background:#fde047;color:#152033}.player-tabs button:focus-visible{outline:2px solid #93c5fd;outline-offset:2px}
.role-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:16px}.role-cards .archive-stat{min-width:0}.role-cards strong{margin-top:12px}.role-cards p{font-size:14px}
.story-disclosure{margin-top:20px}.story-disclosure>summary{padding:14px;border:1px solid #475569;border-radius:8px;cursor:pointer;font-weight:700}
.save-success{position:fixed;inset:0;z-index:100;background:#0009;display:flex;align-items:center;justify-content:center;padding:20px}.save-success>div{background:#fff;color:#172033;padding:28px;border-radius:18px;width:440px;max-width:100%;box-shadow:0 20px 80px #0006}.save-success h2{font-size:24px;font-weight:800;margin-bottom:12px}.save-actions{display:grid;gap:10px;margin-top:20px}.save-actions a{display:block;padding:12px;border:1px solid #cbd5e1;border-radius:8px;text-align:center;font-weight:700}.save-actions a:first-child{background:#2563eb;color:#fff;border-color:#2563eb}
@media(max-width:640px){.role-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.player-tabs{gap:4px;padding:8px}.player-tabs button{padding:9px 8px;font-size:14px}#recentBody .role-badge{font-size:11px;padding:3px;margin:0;white-space:normal}.story-game{min-width:590px}}

.pair-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.pair-columns>section{min-width:0}.pair-table{table-layout:fixed}.pair-table th:first-child{width:55%}.pair-table th:nth-child(2){width:27%}.pair-table th:last-child{width:18%}.pair-table td{vertical-align:top;overflow-wrap:anywhere}.pair-table small{color:#a9b9cc}@media(max-width:900px){.pair-columns{grid-template-columns:1fr}}

/* Shared result hierarchy: wins, losses, names and percentages stay distinct. */
.record-win{color:#78e2bc;font-weight:750;white-space:nowrap}.record-loss{color:#ff9aa6;font-weight:750;white-space:nowrap}.record-name{color:#acd8ff;font-weight:700}.rate-pill{display:inline-block;color:#ffe478;background:#fde04712;border:1px solid #fde04738;border-radius:7px;padding:3px 8px;font-weight:800;font-variant-numeric:tabular-nums}
.archive-table td{font-variant-numeric:tabular-nums}.archive-table th{color:#aebed2;background:#1b293a}.archive-table tbody tr:nth-child(even){background:#ffffff03}.archive-table tbody tr:hover{background:#27466045}.archive-table td:last-child{font-weight:750}.archive-stat{border:1px solid #3b506c;background:linear-gradient(135deg,#203248,#182438)}.archive-stat strong{color:#ffe478;font-variant-numeric:tabular-nums}.archive-stat .role-badge{margin-bottom:3px}.archive-panel h3{color:#d1e7ff}.archive-table .character-label>span:last-child{color:#d5e9ff}
#partnerRanking .archive-table{table-layout:fixed}#partnerRanking th:first-child{width:32%}#partnerRanking th:nth-child(2){width:45%}#partnerRanking th:last-child{width:23%}#partnerRanking td{overflow-wrap:anywhere;vertical-align:middle}#partnerRanking .rate-pill{font-size:15px}#synergyResult{margin:14px 0 22px}.archive-controls button{background:#23405a;border:1px solid #487da6;border-radius:8px;padding:8px 12px;color:#d2edff;text-decoration:none;font-weight:700}.archive-chip{border:1px solid #4c718e;color:#d6edff}.archive-chip button{color:#ffabb4}

.team-good,.story-good,.story-good strong{color:#80c8ff!important}.story-evil,.story-evil strong{color:#ff9aa6!important}.story-good{border-color:#80c8ff66}.story-evil{border-color:#ff9aa666}.synergy-members{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px 20px}.synergy-members>span{line-height:1.9}.synergy-team{grid-column:1/-1;font-size:13px}.synergy-game{padding:16px 0}@media(max-width:640px){.synergy-game{grid-template-columns:100px minmax(0,1fr)}.synergy-game>span:nth-child(3){grid-column:1/-1}}

.game-summary{grid-template-columns:110px minmax(0,2fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1fr) minmax(0,.9fr);gap:16px}.game-edit-action:has([hidden]){display:none}.game-edit-action{margin-bottom:12px}[data-admin-edit][hidden]{display:none!important}.game-winner{font-weight:700}@media(max-width:640px){.game-summary{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"date sheet" "story demon" "pog winner"}.game-summary>span:nth-child(6){grid-area:winner}}
