*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #e8e2d0;--bg-panel: #f4efdf;--ink: #1a1a1a;--ink-muted: #6b6356;--accent: #8b1a1a;--accent-hover: #6e1414;--divider: #c9bfa8;--card-shadow: 0 6px 18px rgba(0,0,0,.18);--card-font: system-ui, -apple-system, "Segoe UI", Inter, Helvetica, Arial, sans-serif}body{font-family:system-ui,-apple-system,Segoe UI,Inter,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--ink);min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:var(--ink);border:1px solid var(--ink);border-radius:6px;color:#fff;font-weight:700;padding:10px 20px;cursor:pointer;font-size:14px;letter-spacing:.01em;transition:background .15s,transform .1s}button:hover{background:var(--accent);border-color:var(--accent)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed;transform:none;background:var(--ink);border-color:var(--ink)}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--ink)}.btn-secondary:hover{background:var(--ink);color:#fff}.btn-sm{padding:4px 10px;font-size:12px}.btn-danger{background:var(--accent);border-color:var(--accent)}.btn-danger:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.badge{background:var(--ink);color:var(--bg);padding:2px 8px;border-radius:10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.dealer-badge{background:var(--accent);color:#fff;margin-left:8px}.muted{color:var(--ink-muted)}.success{color:#2f6d3a}.row-flex{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:24px;color:var(--ink)}.login-screen{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:40px 20px}.login-box{background:var(--bg-panel);border:1px solid var(--divider);border-radius:14px;padding:32px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:10px;box-shadow:0 2px 12px #0000000f}.login-title{font-size:24px;font-weight:900;letter-spacing:-.02em;text-align:center}.login-sub{text-align:center;color:var(--ink-muted);font-size:14px;margin-bottom:10px}.login-input{padding:12px;border-radius:6px;border:1px solid var(--divider);background:#fff;color:var(--ink);font-size:15px}.login-input:focus{outline:2px solid var(--accent);outline-offset:1px}.login-btn{margin-top:4px}.login-footer{font-size:12px;color:var(--ink-muted);text-align:center;margin-top:10px}.login-error{background:#f8dede;border:1px solid #b8524a;color:#7a1f1f;padding:8px 12px;border-radius:6px;font-size:13px}.lobby{max-width:620px;margin:0 auto;padding:40px 20px}.lobby-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;flex-wrap:wrap;gap:12px}.logo{font-size:32px;font-weight:900;letter-spacing:-.02em}.lobby-user{display:flex;align-items:center;gap:10px;font-size:13px}.lobby-section{background:var(--bg-panel);border:1px solid var(--divider);border-radius:10px;padding:20px;margin-bottom:16px}.lobby-section h2{font-size:16px;margin-bottom:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-muted)}.lobby-section input{width:100%;padding:10px;border-radius:6px;border:1px solid var(--divider);background:#fff;color:var(--ink);font-size:14px}.game-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--divider)}.game-row:last-child{border-bottom:none}.game-row span:first-child{flex:1;font-weight:600}.lobby-footer{text-align:center;margin-top:20px;font-size:13px}.game-container{max-width:1000px;margin:0 auto;padding:20px}.game-header{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:16px;border-bottom:2px solid var(--ink);margin-bottom:20px}.game-header h1{font-size:22px;flex:1;font-weight:900;letter-spacing:-.02em}.black-card,.white-card,.card-back{font-family:var(--card-font);font-weight:900;letter-spacing:-.02em;border-radius:10px;padding:18px 18px 38px;box-shadow:var(--card-shadow);position:relative;line-height:1.25;-webkit-user-select:none;user-select:none}.black-card:after,.white-card:after,.card-back:after{content:"Cards Against Humanity.";position:absolute;bottom:10px;left:14px;right:14px;font-size:10px;font-weight:700;letter-spacing:0;text-transform:none;opacity:.65}.black-card{background:#000;color:#fff;font-size:clamp(16px,1.3vw + 10px,20px);min-height:clamp(180px,22vw,230px);width:clamp(200px,20vw,260px);border:1px solid #000}.black-card u{text-decoration:none;border-bottom:2px solid #fff;padding:0 2px}.black-card .blank{display:inline-block;min-width:70px;border-bottom:2px solid #aaa}.white-card{background:#fff;color:#000;font-size:clamp(13px,.8vw + 8px,15px);min-height:clamp(160px,18vw,200px);width:clamp(130px,13vw,170px);border:1px solid #e0ddd0;cursor:pointer;transition:transform .15s,box-shadow .15s;text-align:left}.white-card:hover{transform:translateY(-5px);box-shadow:0 10px 20px #0003}.white-card.selected{outline:3px solid var(--accent);outline-offset:2px;transform:translateY(-10px)}.white-card.selected:after{color:var(--accent);opacity:1}.card-back{background:#000;color:#fff;font-size:20px;min-height:clamp(160px,18vw,200px);width:clamp(130px,13vw,170px);display:flex;align-items:center;justify-content:center;font-weight:900;letter-spacing:.08em}.card-back:before{content:"CAH";font-size:34px}.card-back:after{color:#fff;opacity:.5}.play-area{display:flex;flex-direction:column;gap:24px;align-items:center}.hand{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;padding:18px;background:#b9a67a;border-radius:12px;border:2px solid #97865d;box-shadow:inset 0 0 20px #00000014}.waiting-section{text-align:center;padding:20px;color:var(--ink-muted)}.submitted-row{display:flex;gap:10px;justify-content:center;margin-top:8px}.dealer-picks{text-align:center;width:100%}.dealer-cards{display:flex;flex-wrap:wrap;gap:18px;justify-content:center;margin:20px 0}.dealer-card{background:transparent;border:none;padding:0;cursor:pointer;transform:rotate(-2deg);transition:transform .18s}.dealer-card:nth-child(2n){transform:rotate(2deg)}.dealer-card:hover{transform:rotate(0) scale(1.05);z-index:2}.dealer-card.selected{transform:rotate(0) scale(1.05)}.dealer-card.selected .black-card{outline:3px solid var(--accent);outline-offset:3px}.waiting-room{text-align:center;padding:40px 20px}.waiting-room ul{list-style:none;margin:16px 0;font-size:18px}.waiting-room li{padding:6px}.winner-display{text-align:center;padding:20px;display:flex;flex-direction:column;align-items:center;gap:16px;animation:winnerReveal .3s ease-out both}.winner-display h2{font-size:26px;font-weight:900;letter-spacing:-.02em}@keyframes winnerReveal{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.scoreboard{background:var(--bg-panel);border:1px solid var(--divider);border-radius:10px;padding:16px;min-width:260px}.scoreboard h3{margin-bottom:10px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.score-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--divider)}.score-row:last-child{border-bottom:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:10;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.overlay h2{font-size:28px;color:#fff;font-weight:900;letter-spacing:-.02em}.admin-layout{display:flex;min-height:100vh}.admin-sidebar{width:220px;background:var(--bg-panel);padding:16px;display:flex;flex-direction:column;transition:width .3s;border-right:1px solid var(--divider)}.admin-sidebar.collapsed{width:60px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.sidebar-title{font-size:16px;font-weight:900;letter-spacing:-.01em}.admin-sidebar ul{list-style:none;flex:1}.admin-sidebar li{padding:0;margin-bottom:4px}.nav-btn{width:100%;text-align:left;background:none;border:none;padding:10px 12px;border-radius:6px;cursor:pointer;color:var(--ink);font-size:14px;font-weight:600;transition:background .15s}.nav-btn:hover{background:var(--divider);color:var(--ink)}.nav-btn.active{background:var(--ink);color:var(--bg)}.sidebar-footer{padding-top:12px;border-top:1px solid var(--divider);font-size:13px}.toggle-btn{padding:4px 8px}.admin-main{flex:1;padding:24px;overflow-y:auto;background:var(--bg)}.admin-panel h2{margin-bottom:16px;font-size:22px;font-weight:900;letter-spacing:-.02em}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-card{background:var(--bg-panel);border:1px solid var(--divider);border-radius:10px;padding:16px}.admin-card h3{margin-bottom:12px;font-size:14px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted)}.admin-card h4{margin:12px 0 6px;font-size:13px;font-weight:700}.admin-card label{display:block;margin-bottom:6px;font-size:13px;color:var(--ink-muted)}.admin-card input,.admin-card select{width:100%;padding:8px;border-radius:6px;border:1px solid var(--divider);background:#fff;color:var(--ink);font-size:13px;margin-bottom:8px}.admin-card button{margin-top:8px}.detail-row{padding:4px 0;font-size:13px}.admin-table{width:100%;border-collapse:collapse;font-size:13px}.admin-table th{text-align:left;padding:8px;color:var(--ink-muted);border-bottom:1px solid var(--divider);font-weight:700;text-transform:uppercase;letter-spacing:.05em;font-size:11px}.admin-table td{padding:8px;border-bottom:1px solid var(--divider)}.admin-table .clickable{cursor:pointer}.admin-table .clickable:hover{background:#8b1a1a0f}.set-list{max-height:300px;overflow-y:auto;margin:8px 0;border:1px solid var(--divider);border-radius:6px;padding:8px;background:#fff}.set-item{display:flex;align-items:center;gap:8px;padding:4px 0;cursor:pointer;font-size:13px}.set-item input[type=checkbox]{accent-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.white-card:focus-visible{outline-offset:3px}.dealer-card:focus-visible{outline-offset:4px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.white-card:hover,.white-card.selected,.dealer-card,.dealer-card:hover,.dealer-card.selected{transform:none}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}fieldset{border:none;padding:0;margin:0}@media (max-width: 760px){.admin-grid{grid-template-columns:1fr}.admin-sidebar{width:60px}.sidebar-title{display:none}.hand{gap:6px;padding:10px}.game-container{padding:12px}.lobby{padding:20px 12px}}.account-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.account-modal{background:var(--bg-panel);color:var(--ink);border:1px solid var(--divider);border-radius:12px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;padding:20px;box-shadow:0 20px 60px #00000040;position:relative}.account-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;border-bottom:1px solid var(--divider);padding-bottom:12px}.account-header h2{font-size:20px;font-weight:900;letter-spacing:-.02em}.account-close{background:transparent;border:none;color:var(--ink-muted);font-size:28px;line-height:1;cursor:pointer;padding:0 8px}.account-close:hover{color:var(--accent);background:transparent;border:none}.account-section{margin-bottom:18px}.account-sub{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-muted);margin-bottom:8px;font-weight:700}.account-user-row{display:flex;align-items:center;gap:10px}.account-user-name{font-weight:700}.account-badge{background:var(--accent);color:#fff;font-size:10px;font-weight:800;padding:2px 6px;border-radius:4px;letter-spacing:.05em}.account-badge.sm{font-size:9px;padding:1px 5px}.account-btn-link{margin-left:auto;background:transparent;color:var(--ink-muted);border:1px solid var(--divider);padding:4px 10px;font-size:12px}.account-btn-link:hover{color:var(--accent);border-color:var(--accent);background:transparent}.account-form{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.account-input{flex:1;min-width:140px;padding:8px 10px;border:1px solid var(--divider);border-radius:6px;background:#fff;color:var(--ink);font-size:13px}.account-btn{padding:8px 16px;font-size:13px}.account-check{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-muted)}.account-user-list{display:flex;flex-direction:column;gap:6px}.account-user-item{display:flex;align-items:center;gap:10px;padding:8px 10px;background:#fff;border:1px solid var(--divider);border-radius:6px;font-size:13px}.account-user-item.disabled{opacity:.55}.account-dot{width:8px;height:8px;border-radius:50%;flex:0 0 8px}.account-dot.ok{background:#2a8f2a}.account-dot.off{background:#999}.account-user-cell{font-weight:600}.account-user-actions{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap}.account-user-actions button{padding:4px 8px;font-size:11px;background:transparent;color:var(--ink);border:1px solid var(--divider);border-radius:4px;text-transform:none;letter-spacing:0}.account-user-actions button:hover{background:var(--ink);color:#fff;border-color:var(--ink)}.account-user-actions button.danger{color:var(--accent);border-color:var(--accent)}.account-user-actions button.danger:hover{background:var(--accent);color:#fff}.account-toast{position:sticky;bottom:0;margin-top:12px;padding:8px 12px;border-radius:6px;font-size:13px;font-weight:600}.account-toast.ok{background:#e6f4e6;color:#1e5d1e;border:1px solid #2a8f2a}.account-toast.err{background:#fbe8e8;color:#8b1a1a;border:1px solid var(--accent)}
