:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--canvas:#0e1520;--surface:#182231;--raised:#202e40;--line:#48586e;--text:#edf1f7;--muted:#b3bfd0;--gold:#e6c68a;--focus:#f5d9a2;--radius:16px;background:var(--canvas)}*{box-sizing:border-box}body{background:var(--canvas);color:var(--text);min-height:100dvh;margin:0;font:16px/1.5 system-ui,sans-serif}main{max-width:1040px;margin:auto;padding:16px 24px 32px;position:relative}header{justify-content:space-between;align-items:center;gap:16px;min-height:44px;margin-bottom:16px;display:flex}h1,h2,h3,p{margin:0}h1{letter-spacing:.12em;color:var(--gold);font-size:24px}h2{font-size:24px}h3{font-size:18px}p{margin-block:8px}button,select,textarea{font:inherit}button{border:1px solid var(--gold);background:var(--gold);color:#261e17;cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:8px;min-width:44px;min-height:44px;padding:10px 16px;font-size:14px;font-weight:650;transition:background-color .15s,border-color .15s,transform .15s;display:inline-flex}button:hover:not(:disabled){background:#f5d79f;border-color:#f5d79f}button:active:not(:disabled){transform:translateY(1px)}button.secondary{background:var(--raised);color:var(--text);border-color:var(--line)}button.secondary:hover:not(:disabled){background:#2d4057;border-color:#647b99}button:disabled{color:#afbdcf;cursor:default;background:#202c3d;border-color:#4a5c73}button:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,.target-card:focus-within{outline:3px solid var(--focus);outline-offset:3px}.icon{vertical-align:middle;flex-shrink:0;width:18px;height:18px;display:inline-block}.icon-heading{align-items:center;gap:12px;display:flex}.icon-heading>.icon{color:var(--gold)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);min-width:0;margin:16px 0;padding:20px}.section-heading,.phase-bar{justify-content:space-between;align-items:center;gap:16px;display:flex}.eyebrow{color:var(--muted);align-items:center;gap:8px;margin:0;font-size:12px;display:flex}.eyebrow .icon{width:14px;height:14px}.hint,.role-description{color:var(--muted);font-size:14px}.count{white-space:nowrap;color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin:0;display:flex}.count strong{color:#f5e7c7;font-size:32px;line-height:1.25}.count-capacity{font-size:12px}.phase-count .icon{color:var(--gold)}.phase-count.urgent,.phase-count.urgent strong,.phase-count.urgent .icon{color:#ffaaa3}.buttons{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.connection{color:var(--gold);font-size:12px}.error{background:#382329;border:1px solid #bd686c;border-radius:10px;margin:16px 0;padding:12px 16px}.icon-button{color:var(--muted);border:1px solid var(--line);background:0 0;padding:10px}.icon-button .icon{width:20px;height:20px}.icon-button:hover:not(:disabled){background:var(--raised);border-color:#647b99}.sound-toggle[data-sound=on]{color:var(--gold);background:#263247;border-color:#8d7957}.tooltip-control{display:inline-flex;position:relative}.tooltip{visibility:hidden;z-index:10;color:var(--text);white-space:nowrap;pointer-events:none;background:#202e40;border:1px solid #8d7957;border-radius:8px;padding:8px 12px;font-size:12px;position:absolute;top:50%;right:calc(100% + 8px);transform:translateY(-50%)}.tooltip-control:hover .tooltip,.tooltip-control:focus-within .tooltip{visibility:visible}.phase-bar{border-radius:var(--radius);background:#1b293d;border:1px solid #536e91;padding:16px 20px}.phase-bar .icon-heading>.icon{color:#b9c9ed;width:24px;height:24px}.phase-day .phase-bar{background:#252e3a;border-color:#8d7957}.phase-day .phase-bar .icon{color:var(--gold)}.phase-voting .phase-bar,.phase-runoff .phase-bar{background:#252938;border-color:#836675}.phase-voting .phase-bar .icon,.phase-runoff .phase-bar .icon{color:#f1afb9}.phase-finished .phase-bar{background:#252e3a;border-color:#8d7957}.game-tabs{background:#141e2b;border:1px solid #38495f;border-radius:12px;gap:8px;margin-top:12px;padding:4px;display:flex}.game-tabs button{min-width:0;color:var(--muted);background:0 0;border-color:#0000;flex:1;padding:8px}.game-tabs button.active{color:#ffe1a4;background:#313e50;border-color:#8d7957}.game-tabs button:hover:not(:disabled){background:#24354b}.game-workspace{grid-template-columns:1fr;align-items:start;gap:16px;display:grid}.game-workspace>.panel{margin:16px 0 0}.role-werewolf{--role-color:#ffa5a4;--role-bg:#2d2733}.role-seer{--role-color:#b9c9ed;--role-bg:#242d40}.role-robber{--role-color:#93dce0;--role-bg:#1d313b}.role-villager{--role-color:#a8dfb5;--role-bg:#233333}.role-art{object-fit:cover;border:1px solid #a1804c;border-radius:8px;flex-shrink:0;width:112px;height:168px}.role-card{background:var(--role-bg);border:1px solid var(--role-color);border-radius:12px;align-items:center;gap:16px;margin-bottom:16px;padding:12px;display:flex}.role-card h3{color:var(--role-color);margin-block:4px;font-size:24px}.role-description{color:#f0e8ec;margin:0;font-size:14px}.teammates{color:var(--role-color);align-items:center;gap:8px;margin-bottom:12px;font-size:14px;display:flex}.action{margin-top:8px}fieldset{border:0;min-width:0;margin:0;padding:0}legend{margin-bottom:12px;padding:0;font-size:16px;font-weight:650}.target-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.target-card{cursor:pointer;overflow-wrap:anywhere;background:#202e40;border:1px solid #526780;border-radius:10px;align-items:center;gap:8px;min-height:52px;padding:12px;font-size:14px;transition:border-color .15s,background-color .15s;display:flex;position:relative}.target-card:hover{background:#2c4058;border-color:#7995b5}.target-card.selected{color:#ffdf9f;background:#313e50;border-color:#ebc786}.target-card input{opacity:0;width:100%;height:100%;cursor:inherit;margin:0;position:absolute;inset:0}.selection-indicator{border:1px solid #baa17a;border-radius:50%;flex-shrink:0;place-items:center;width:16px;height:16px;display:grid}.selection-indicator .icon{width:10px;height:10px}.selected .selection-indicator{color:#261e17;background:#ebc786;border-color:#ebc786}fieldset:disabled .target-card{cursor:default;color:#afbdcf;background:#1b2737;border-color:#495c74}fieldset:disabled .target-card.selected{border-color:var(--gold)}.action-status:empty{min-height:0;margin-block:12px}.role-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.action-status{min-height:24px;margin-block:12px;font-size:14px}.accepted{color:#b4e3bc;flex-wrap:wrap;align-items:center;gap:8px;display:flex}.accepted strong{color:var(--text)}.submit-action{width:100%}.phase-instruction{padding:12px 0}.private-information{background:#242d40;border-left:3px solid #b9c9ed;border-radius:0 8px 8px 0;margin-top:16px;padding:12px}.private-information ul{margin:8px 0 0;padding-left:20px;font-size:14px}.latest-event{color:var(--muted);border-left:2px solid #647b99;grid-column:1/-1;padding:12px 16px;font-size:14px}.latest-event p{margin:8px 0 0}.players{margin:16px 0;padding:0;list-style:none}.player-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.players li{border:1px solid var(--line);overflow-wrap:anywhere;background:#1d2a3b;border-radius:10px;align-items:center;gap:12px;min-width:0;padding:12px;display:flex}.player-avatar{color:#ffdf9f;font-variant-numeric:tabular-nums;background:#2a3b51;border:1px solid #637d9c;border-radius:50%;flex-shrink:0;place-items:center;width:36px;height:36px;font-size:12px;display:grid}.player-details{min-width:0;font-size:14px}.player-details small{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:flex}.player-details small.host-label{color:var(--gold)}.tag{color:var(--gold);white-space:nowrap;margin-left:8px;font-size:12px}.life-dot{background:#a8dfb5;border-radius:50%;flex-shrink:0;width:6px;height:6px}.life-dot.dead-dot{background:#c2b7a5}.dead{color:var(--muted)}.dead .player-avatar{color:var(--muted);border-color:var(--line);background:#202e40}.role-result{color:#f5d79f;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;font-size:14px;display:flex}.role-result .icon{width:12px;height:12px}.outcome-badge{border:1px solid #8d7957;border-radius:12px;padding:2px 8px;font-size:12px}.role-composition{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0;display:grid}.role-chip{min-width:0;color:var(--role-color);background:var(--role-bg);border:1px solid #53657c;border-radius:10px;align-items:center;gap:8px;padding:8px;font-size:14px;display:flex}.role-chip .role-art{width:40px;height:60px}.role-composition>.hint{grid-column:1/-1;margin:0}.mode-label{color:var(--muted);margin:16px 0 8px;font-size:14px;display:block}select,textarea{color:var(--text);background:#111c2b;border:1px solid #627b98;border-radius:10px;max-width:100%;padding:12px}select{width:100%;min-height:44px}select:disabled,textarea:disabled{color:var(--muted);opacity:1;background:#1d2a3b}textarea{resize:vertical;width:100%;min-height:76px;margin-top:12px;display:block}textarea::placeholder{color:#c2b7a5;opacity:1}.empty{color:var(--muted);justify-content:center;align-items:center;gap:12px;padding:24px 0;display:flex}#start-reason,.lobby>.hint{align-items:center;gap:8px;display:flex}#start-reason:empty{display:none}.rules,.management{border-top:1px solid var(--line);color:var(--muted);margin-top:16px;padding-top:8px;font-size:14px}summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;font-weight:600;display:flex}summary:after{content:"";border-bottom:2px solid;border-right:2px solid;width:7px;height:7px;margin-left:auto;margin-right:8px;transform:rotate(-45deg)}details[open]>summary:after{transform:rotate(45deg)}summary::marker{content:"";display:none}summary::-webkit-details-marker{content:"";display:none}.rules p{margin:12px 0}.phase-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:16px 0;padding:0;list-style:none;display:grid}.phase-steps li{background:var(--raised);border:1px solid var(--line);border-radius:10px;justify-items:center;gap:8px;padding:12px 8px;display:grid}.phase-steps .icon{color:var(--gold)}.phase-steps strong{color:var(--text)}.host-controls{margin-top:12px}.quiet{font-size:14px}.confirmation{background:#2b2c34;border:1px solid #8d7957;border-radius:10px;padding:16px;font-size:14px}.result{color:var(--gold);padding:12px 0;font-size:24px;font-weight:650}.privacy-badge{color:var(--muted);align-items:center;gap:8px;font-size:12px;display:inline-flex}.privacy-badge .icon{width:12px;height:12px}.chat{max-height:208px;margin:16px 0 0;padding:0;list-style:none;overflow-y:auto}.chat:empty{display:none}.chat li{background:#202e40;border:1px solid #465d78;border-radius:10px;margin-bottom:8px;padding:12px}.chat p{white-space:pre-wrap;overflow-wrap:anywhere;margin:8px 0 0;font-size:14px}.message-meta{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.message-meta strong{color:var(--gold)}.message-count{font-variant-numeric:tabular-nums;margin-left:auto}.composition{background:#202e40;border:1px solid #56718f;border-radius:10px;margin-top:16px;padding:12px;font-size:14px}.composition h3{font-size:16px}.composition ul{margin-bottom:0;padding-left:0;list-style:none}.composition li{align-items:center;gap:8px;display:flex}.event-log{margin:16px 0 0;padding:0;list-style:none}.event-log>li{border-bottom:1px solid var(--line);overflow-wrap:anywhere;align-items:flex-start;gap:16px;padding:16px 0;font-size:14px;display:flex}.event-log>li:last-child{border-bottom:0;padding-bottom:0}.event-log>li:first-child{color:#ffe1a4}.event-log p{margin:0}.event-log ul{padding-left:20px;font-size:14px}.event-mark{width:32px;height:32px;color:var(--gold);background:#2a3b51;border:1px solid #637d9c;border-radius:50%;flex-shrink:0;place-items:center;display:grid}.event-mark .icon{width:14px;height:14px}.event-log details{flex:1;min-width:0}.event-log summary{margin-top:-6px}.sr-only{clip-path:inset(50%);white-space:nowrap;opacity:0;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width>=720px){.game-workspace{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}.action-panel:only-of-type{grid-column:1/-1}.action-panel:only-of-type .target-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.lobby{max-width:760px;margin-inline:auto}}@media (width<=719px){.role-composition{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=480px){main{padding:12px 12px 24px;position:relative}.panel{padding:16px}.phase-bar{padding:8px 16px}.role-art{width:64px;height:96px}.role-heading{gap:8px}.role-description{line-height:1.4}.game-workspace>.panel{margin:12px 0 0}.game-workspace{gap:8px}.phase-bar h2{line-height:1.25}.role-card{gap:12px;margin-bottom:8px;padding:8px}.role-card h3{font-size:20px}.role-description{font-size:12px}.target-card{gap:8px;min-height:44px;padding:8px;font-size:12px}.target-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.selection-indicator{width:12px;height:12px}.selection-indicator .icon{width:8px;height:8px}.players li{gap:8px;padding:8px}.player-avatar{width:28px;height:28px}.role-chip .role-art{width:40px;height:60px}.lobby-actions button{flex:1}.chat{max-height:128px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}.phase-progress{background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;padding:12px 16px;display:flex}.progress-copy{flex-wrap:wrap;align-items:center;gap:8px 16px;display:flex}.progress-count{color:var(--text);font-variant-numeric:tabular-nums;font-size:14px}@media (width<=480px){.phase-progress{padding:8px 12px}.game-tabs{margin-top:8px}.progress-copy{flex-direction:column;align-items:flex-start;gap:4px}.phase-progress button{padding-inline:12px}}
