:root{--bg: #14161c;--bg2: #1d2029;--bg3: #262a36;--fg: #eef0f5;--muted: #8b91a3;--border: #323746;--accent: #f2c94c;--red: #d64545;--red-soft: #3a1f22;--blue: #3b7ddd;--blue-soft: #1c2a44;--neutral: #c9b99a;--neutral-soft: #2d2a24;--assassin: #0a0a0c;--shared: #8e5bd6;--shared-soft: #2b2140;--tile: #f3ead6;--tile-fg: #1d1a14;--radius: 10px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--fg);min-height:100%}body{font-size:15px;line-height:1.4;-webkit-tap-highlight-color:transparent}a{color:var(--accent);text-decoration:none}h1,h2,h3{margin:0 0 .5rem;line-height:1.2}h3{font-size:1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}p{margin:.3rem 0}button,input,select,textarea{font:inherit;color:inherit}button{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.5rem .9rem;cursor:pointer;transition:background .12s,transform .05s}button:hover:not(:disabled){background:#313647}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:#1a1508;border-color:transparent;font-weight:600}button.primary:hover:not(:disabled){background:#f7d76a}button.danger{background:#4a2626;border-color:#6d3333}button.active{outline:2px solid var(--accent)}button.link{background:none;border:none;color:var(--accent);padding:.2rem .4rem}button.small{font-size:.8rem}button.big{padding:.8rem 1.4rem;font-size:1.05rem}button.wide{width:100%;margin:.5rem 0}.button{display:inline-block;padding:.6rem 1rem;border-radius:8px}input,select,textarea{background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--accent);border-color:transparent}label{display:flex;flex-direction:column;gap:.3rem;font-size:.9rem;color:var(--muted);margin:.4rem 0}label.check{flex-direction:row;align-items:center;gap:.5rem;color:var(--fg)}label.check input{width:auto}fieldset{border:1px solid var(--border);border-radius:var(--radius);margin:.6rem 0;padding:.5rem .9rem .7rem}legend{color:var(--muted);font-size:.85rem;padding:0 .4rem}.muted{color:var(--muted)}.small{font-size:.8rem}.error{color:#ff8080;background:#3a1f22;border-radius:8px;padding:.5rem .8rem;margin:.5rem 0}.ok{color:#7fd48a}.bad{color:#ff8080}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:1rem 1.2rem}.logo{font-weight:800;letter-spacing:-.02em;font-size:1.4rem;color:var(--fg)}.logo span{color:var(--accent)}.logo.small{font-size:1rem;background:var(--accent);color:#1a1508;padding:.1rem .4rem;border-radius:6px}.tabs{display:flex;gap:.3rem;margin-bottom:.8rem}.tabs button{flex:1}.auth{width:min(360px,100%);display:flex;flex-direction:column}.auth h1{text-align:center;margin-bottom:1rem}.auth .primary{margin-top:.6rem}.page{max-width:1100px;margin:0 auto;padding:.8rem 1rem 3rem}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.3rem 0 1rem;flex-wrap:wrap}.topbar nav{display:flex;gap:.8rem;align-items:center}.invite{display:flex;align-items:center;gap:.6rem}.invite .code{font-family:ui-monospace,monospace;font-size:1.2rem;letter-spacing:.15em;background:var(--bg3);padding:.3rem .6rem;border-radius:8px}.home{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.home .card{display:flex;flex-direction:column;gap:.5rem}.lobby{display:flex;flex-direction:column;gap:1rem}.teams{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.team-box{border:2px solid var(--border);border-radius:var(--radius);padding:.8rem 1rem;background:var(--bg2)}.team-box.team-red{border-color:var(--red);background:var(--red-soft)}.team-box.team-blue{border-color:var(--blue);background:var(--blue-soft)}.team-box ul{list-style:none;margin:0 0 .6rem;padding:0}.team-box li{display:flex;align-items:center;gap:.4rem;padding:.25rem 0}.team-box li .name{flex:1}.team-box li.offline{opacity:.5}.role-pick{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.settings .grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}.settings .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}.settings .save-state{float:right;font-size:.75rem;text-transform:none;letter-spacing:0;color:#7fd48a}.settings .counts{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem}.start{align-self:center;min-width:240px}.endscreen{text-align:center;margin-bottom:1rem}.endscreen h2{font-size:2rem}.endscreen .score{display:flex;justify-content:center;gap:2rem;font-size:1.2rem;font-weight:600;margin:.5rem 0 1rem}.unlocked{text-align:left;background:var(--bg3);border-radius:8px;padding:.6rem .9rem;margin:.8rem auto;max-width:520px}.unlocked div{padding:.2rem 0}.team-red{color:#ff7b7b}.team-blue{color:#7fb0ff}.team-spectator{color:var(--muted)}.profile .stats{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:1rem}.profile .stats div{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.6rem 1rem;min-width:90px;text-align:center}.profile .stats b{display:block;font-size:1.5rem}.profile .stats span{color:var(--muted);font-size:.8rem}.achievements{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.achievement{display:flex;gap:.8rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.7rem .9rem}.achievement .icon{font-size:1.8rem}.achievement p{color:var(--muted);font-size:.85rem}.achievement.locked{opacity:.4;filter:grayscale(1)}.game{max-width:1400px;margin:0 auto;padding:.5rem .8rem 2rem}.gamebar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.2rem 0 .5rem}.gamebar .score{display:flex;gap:1rem;align-items:baseline;font-weight:700;font-size:1.3rem}.gamebar .round{font-size:.9rem;color:var(--muted);font-weight:500}.bigtimer{font-variant-numeric:tabular-nums;font-weight:800;font-size:1.4rem;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.15rem .7rem}.bigtimer.urgent{color:#fff;background:var(--red);border-color:var(--red);animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.55}}.status{border-radius:8px;padding:.5rem .9rem;margin-bottom:.7rem;background:var(--bg3);border-left:5px solid var(--border)}.status.team-red{border-left-color:var(--red)}.status.team-blue{border-left-color:var(--blue)}.status .clue{font-size:1.15rem;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:1rem;align-items:start}.layout aside{display:flex;flex-direction:column;gap:.7rem}.hint{background:var(--bg2);border:1px dashed var(--border);border-radius:8px;padding:.4rem .8rem;margin-bottom:.6rem}.board{display:grid;gap:.45rem}.tile{position:relative;aspect-ratio:5 / 3;border-radius:8px;background:var(--tile);color:var(--tile-fg);display:grid;place-items:center;text-align:center;font-weight:700;padding:.3rem;overflow:hidden;border:3px solid transparent;-webkit-user-select:none;user-select:none;text-transform:uppercase;letter-spacing:.02em}.size-4 .tile{font-size:clamp(.9rem,2.4vw,1.4rem)}.size-5 .tile{font-size:clamp(.8rem,2vw,1.25rem)}.size-6 .tile{font-size:clamp(.68rem,1.7vw,1.1rem)}.size-7 .tile{font-size:clamp(.6rem,1.45vw,1rem)}.size-8 .tile{font-size:clamp(.55rem,1.25vw,.9rem)}.tile .word{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto}.tile.has-actions{padding-bottom:1.5rem}.tile.hidden.c-red{border-color:var(--red);background:#f3b8b8}.tile.hidden.c-blue{border-color:var(--blue);background:#b9d0f5}.tile.hidden.c-neutral{border-color:#b5a47e;background:#e8dfc9}.tile.hidden.c-assassin{border-color:#000;background:#3a3a40}.tile.hidden.c-shared{border-color:var(--shared);background:#d9c4f2}.tile.hidden.c-red .word{color:#7a1d1d}.tile.hidden.c-blue .word{color:#1b3f7d}.tile.hidden.c-neutral .word{color:#4d4433}.tile.hidden.c-assassin .word{color:#fff}.tile.hidden.c-shared .word{color:#4a2a7a}.tile.hidden.c-assassin:after{content:"☠";position:absolute;top:2px;left:6px;font-size:.9rem;color:#fff}.tile.hidden.c-shared:after{content:"🤝";position:absolute;top:2px;left:4px;font-size:.75rem}.legend{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;font-size:.8rem;color:var(--muted);margin:0 0 .5rem}.legend .sw{width:14px;height:14px;border-radius:4px;display:inline-block;border:1px solid #0006;margin-left:.3rem}.legend .sw.c-red{background:var(--red)}.legend .sw.c-blue{background:var(--blue)}.legend .sw.c-neutral{background:var(--neutral)}.legend .sw.c-assassin{background:var(--assassin);border-color:#666}.legend .sw.c-shared{background:var(--shared)}.pending-halver{color:var(--accent)}.tile.revealed{color:#fff;opacity:.95}.tile.revealed.c-red{background:var(--red);border-color:var(--red)}.tile.revealed.c-blue{background:var(--blue);border-color:var(--blue)}.tile.revealed.c-neutral{background:var(--neutral);color:#2a2418;border-color:var(--neutral)}.tile.revealed.c-assassin{background:var(--assassin);border-color:#444}.tile.revealed.c-shared{background:var(--shared);border-color:var(--shared)}.tile.target{box-shadow:0 0 0 3px var(--accent),0 0 18px var(--accent)}.tile.selectable{cursor:pointer}.scout-mode .tile.hidden{outline:2px dashed var(--blue);outline-offset:-6px}.tile .actions button.select.scout:not(:disabled){background:var(--blue);color:#fff;font-size:.95rem}.tile .actions button.select.scout:hover:not(:disabled){background:#5b93e6}.scout-badge{position:absolute;top:0;left:0;right:0;font-size:.7rem;font-weight:800;letter-spacing:.05em;padding:2px 4px;color:#fff;text-align:center;border-bottom:2px solid #0004}.scout-badge.c-red{background:var(--red)}.scout-badge.c-blue{background:var(--blue)}.scout-badge.c-neutral{background:#8d7d5a}.scout-badge.c-assassin{background:#000}.scout-badge.c-shared{background:var(--shared)}.tile.hidden.c-unknown .scout-badge~.word{padding-top:.9rem}.recharge-badge{position:absolute;top:2px;right:4px;font-size:.95rem;filter:drop-shadow(0 0 2px #000a)}.tile.revealed .recharge-badge{top:auto;bottom:3px}.spymark-badge{position:absolute;top:1px;left:5px;color:#b8860b;font-size:1.1rem;text-shadow:0 0 3px #fff}.tile.spymark{box-shadow:0 0 0 3px #f2c94c inset}.tile.spy-clickable{cursor:pointer}.board.cover .tile.revealed .word{visibility:hidden}.board.cover .tile.revealed{opacity:.45}.legend .sw.c-recharge{background:var(--bg3);font-size:10px;text-align:center;line-height:14px}.cluebanner{margin-top:.8rem;background:var(--bg2);border:2px solid var(--border);border-radius:var(--radius);padding:.7rem 1rem;display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}.cluebanner.team-red.active{border-color:var(--red)}.cluebanner.team-blue.active{border-color:var(--blue)}.cluebanner .label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.cluebanner .word{font-size:2rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}.cluebanner .word.small{font-size:1.2rem;color:var(--fg)}.cluebanner .count{font-size:2rem;font-weight:800;background:var(--accent);color:#1a1508;border-radius:10px;padding:0 .6rem;line-height:1.3}.cluebanner .left{color:var(--muted)}.endbanner{text-align:center;margin-bottom:.8rem;border-width:2px}.endbanner.team-red{border-color:var(--red)}.endbanner.team-blue{border-color:var(--blue)}.endbanner h2{font-size:2rem}.endbanner .row{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap;margin-top:.6rem}.tools-right{display:flex;align-items:center;gap:.4rem}button.icon{padding:.3rem .5rem;font-size:1rem;line-height:1}.jokerbar .charges{float:right;color:#7fd48a;text-transform:none;letter-spacing:0}.jokerbar button.recharge{opacity:.85}.drawing .tools{flex-direction:column;align-items:stretch;gap:.4rem}.drawing .swatches,.drawing .row{display:flex;gap:.3rem;flex-wrap:wrap}.drawing .swatch.active{outline:3px solid var(--accent)}.scout-badge.c-red,.scout-badge.c-blue,.scout-badge.c-neutral,.scout-badge.c-assassin,.scout-badge.c-shared{border-color:#0004}.marks{position:absolute;top:3px;right:4px;display:flex;gap:2px;flex-wrap:wrap;justify-content:flex-end;max-width:70%}.marks span{font-size:.6rem;background:#ffffffd9;color:#222;border-radius:999px;padding:1px 4px;border:1px solid #0003;font-weight:600;text-transform:none;letter-spacing:0}.marks span.me{background:var(--accent)}.tile .actions{position:absolute;bottom:0;left:0;right:0;display:flex}.tile .actions button{flex:1;border:none;border-radius:0;padding:.25rem 0;font-size:.85rem;line-height:1;background:#0000000f;color:#333}.tile .actions button:hover:not(:disabled){background:#00000025}.tile .actions button.mark:not(:disabled){color:#6a5a1e}.tile .actions button.select:not(:disabled){background:#2a9d5c33;color:#1c6b3d;font-weight:800}.tile .actions button.select:hover:not(:disabled){background:#2a9d5c66}.tile .actions button:disabled{opacity:.25}.cluepanel .row{display:flex;gap:.4rem}.cluepanel .row input{flex:1}.cluepanel .row select{width:5rem}.cluepanel button{margin-top:.5rem;width:100%}.jokerbar{display:flex;flex-direction:column;gap:.4rem}.jokerbar button{text-align:left}.jokerbar .votes{float:right;background:var(--bg);border-radius:999px;padding:0 .5rem;font-size:.8rem}.log{max-height:320px;overflow-y:auto;font-size:.85rem;padding:.6rem .8rem}.log .entry{padding:.2rem 0 .2rem .5rem;border-left:3px solid var(--border);margin-bottom:.2rem;color:var(--muted)}.log .entry.team-red{border-left-color:var(--red)}.log .entry.team-blue{border-left-color:var(--blue)}.log .entry.k-clue,.log .entry.k-reveal,.log .entry.k-defector,.log .entry.k-end{color:var(--fg)}.log .entry.k-joker{color:var(--accent)}.log .entry.k-defector{font-weight:600}.drawing{max-width:640px;margin:0 auto .8rem;background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);padding:.5rem}.drawing canvas{display:block;width:100%;border-radius:6px;background:#fbf8f1;touch-action:none;cursor:crosshair}.drawing:not(.drawer) canvas{cursor:default}.drawing .tools{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.5rem;align-items:center}.drawing .swatch{width:28px;height:28px;border-radius:999px;padding:0;border:2px solid #fff6}.toasts{position:fixed;top:.8rem;right:.8rem;display:flex;flex-direction:column;gap:.4rem;z-index:50;max-width:min(360px,90vw)}.toast{background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:.6rem .9rem;box-shadow:0 6px 20px #0006;animation:pop .15s ease-out}.toast.error{border-color:var(--red)}@keyframes pop{0%{transform:translateY(-6px);opacity:0}to{transform:none;opacity:1}}@media (max-width: 860px){.layout{grid-template-columns:1fr}.layout aside{order:2}.gamebar .score{font-size:1.1rem}.settings .grid2,.settings .grid3{grid-template-columns:1fr}.gamebar{flex-wrap:wrap}.bigtimer{font-size:1.15rem}.board{gap:.25rem}.tile{border-width:2px;aspect-ratio:1 / 1;padding:.15rem;border-radius:6px}.tile.has-actions{padding-bottom:1.6rem}.size-6 .tile{font-size:clamp(.5rem,2.6vw,.8rem);letter-spacing:0}.size-7 .tile{font-size:clamp(.45rem,2.2vw,.7rem);letter-spacing:0}.size-8 .tile{font-size:clamp(.4rem,1.9vw,.65rem);letter-spacing:0}.tile .actions button{padding:.35rem 0;font-size:1rem}.marks span{font-size:.5rem;padding:0 3px}.log{max-height:200px}}.debugbar{background:#3b2f0a;border:1px solid #a37e1a;color:#f2c94c;border-radius:8px;padding:.4rem .8rem;margin-bottom:.6rem;font-size:.9rem}.debugpanel .row{display:flex;gap:.3rem;flex-wrap:wrap;margin-bottom:.4rem}.debugpanel button{font-size:.85rem;padding:.35rem .6rem}.tablewrap{overflow-x:auto}.admintable{width:100%;border-collapse:collapse;font-size:.9rem}.admintable th,.admintable td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.admintable th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.admintable .row{display:flex;gap:.3rem}.admintable input{width:10rem;padding:.3rem .5rem}.admintable button{padding:.3rem .6rem}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;vertical-align:middle;flex:none}.avatar.emoji{background:var(--bg3);line-height:1}.row{display:inline-flex;align-items:center;gap:.4rem}h2.row{display:flex}.avatar-pick{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.avatar-pick button{padding:.3rem;border-radius:12px}.marks span{padding:0;background:transparent;border:none}.marks span.me .avatar{outline:2px solid var(--accent)}.teamstrip{display:inline-flex;gap:.15rem;align-items:center}.teamstrip .member{position:relative;background:none;border:none;padding:2px;border-radius:999px}.teamstrip .member.spymaster .avatar{outline:2px solid var(--accent)}.teamstrip .member.offline{opacity:.35}.teamstrip .rolebadge{position:absolute;right:-3px;bottom:-3px;font-size:.7rem;background:var(--bg);border-radius:999px;padding:0 2px;line-height:1.2}.teamstrip .drawbadge{position:absolute;left:-4px;top:-4px;font-size:.7rem}.teamstrip.team-red .member .avatar{box-shadow:0 0 0 2px var(--red)}.teamstrip.team-blue .member .avatar{box-shadow:0 0 0 2px var(--blue)}.teamstrip .member.spymaster .avatar{box-shadow:0 0 0 2px var(--accent)}.gamebar .score{gap:.7rem}.you.link{color:inherit}.playerlink{display:inline-flex;align-items:center;gap:.4rem;color:inherit;padding:0;flex:1;text-align:left}.playerlink:hover .name{text-decoration:underline}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:grid;place-items:start center;padding:2rem 1rem;overflow-y:auto;z-index:40}.modal{position:relative;width:min(900px,100%);max-height:calc(100vh - 4rem);overflow-y:auto}.modal .close{position:absolute;top:.6rem;right:.6rem}.achievement .icon{position:relative}.achievement .count{position:absolute;right:-8px;bottom:-6px;font-size:.7rem;background:var(--accent);color:#1a1508;border-radius:999px;padding:0 5px;font-weight:700}.history{width:100%;border-collapse:collapse;font-size:.9rem}.history th,.history td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border);white-space:nowrap}.history th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:.75rem;letter-spacing:.06em}.history tr.won td:first-child{border-left:3px solid #7fd48a}.history tr.lost td:first-child{border-left:3px solid var(--border)}@media (max-width: 860px){.teamstrip{display:none}}.tile.hidden.hitman{background:#0a0a0c!important;border-color:#d63d3d!important}.tile.hidden.hitman .word{color:#fff!important}.hitman-badge{position:absolute;top:2px;left:5px;font-size:1rem}.hitman-mode .tile.hidden{opacity:.45}.hitman-mode.target-red .tile.hidden.c-red,.hitman-mode.target-blue .tile.hidden.c-blue{opacity:1;outline:2px dashed #d63d3d;outline-offset:-6px;cursor:crosshair}.rules section{margin-bottom:1rem}.rules h3{margin-top:.8rem}.rules ol,.rules ul{margin:.3rem 0;padding-left:1.3rem}.rules li{margin:.3rem 0}.rules .cards-legend{list-style:none;padding-left:0}.rules .sw{width:12px;height:12px;border-radius:3px;display:inline-block;border:1px solid #0006;vertical-align:middle}.rules .sw.c-red{background:var(--red)}.rules .sw.c-blue{background:var(--blue)}.rules .sw.c-neutral{background:var(--neutral)}.rules .sw.c-assassin{background:var(--assassin);border-color:#666}.rules .sw.c-shared{background:var(--shared)}.rules .jokers{list-style:none;padding-left:0}.rules .jokers li{background:var(--bg3);border-radius:8px;padding:.5rem .7rem}.startrow{display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}.pause-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;z-index:30}.pause-overlay .card{text-align:center;padding:1.5rem 2rem}.pause-overlay h2{font-size:2rem}.backups{list-style:none;padding:0;margin:.6rem 0;font-size:.9rem}.backups li{padding:.25rem 0;border-bottom:1px solid var(--border)}.tile.hidden.turncoat{box-shadow:0 0 0 3px #2a9d5c inset}.turncoat-badge{position:absolute;bottom:2px;left:5px;font-size:1rem}.tile.has-actions .turncoat-badge{bottom:1.6rem}.admintable.rooms td.members{white-space:normal;max-width:480px}.admintable .member{display:inline-flex;align-items:center;gap:.2rem;background:var(--bg3);border-radius:999px;padding:.1rem .5rem .1rem .2rem;margin:.1rem .2rem .1rem 0;font-size:.8rem}.admintable .member.team-red{box-shadow:inset 0 0 0 1px var(--red)}.admintable .member.team-blue{box-shadow:inset 0 0 0 1px var(--blue)}.admintable .member.offline{opacity:.45}.noticebar{background:#1c2a44;border:1px solid var(--blue);color:#cfe0ff;border-radius:8px;padding:.5rem .8rem;margin-bottom:.6rem}.cluehistory table{width:100%;border-collapse:collapse;font-size:.85rem}.cluehistory td{padding:.2rem .3rem;border-bottom:1px solid var(--border)}.cluehistory tr.team-red td:first-child{border-left:3px solid var(--red)}.cluehistory tr.team-blue td:first-child{border-left:3px solid var(--blue)}.cluehistory .round{color:var(--muted);width:2rem}.cluehistory .word{font-weight:700;text-transform:uppercase;letter-spacing:.03em}.cluehistory .count{font-weight:700;color:var(--accent);width:1.5rem;text-align:center}.cluehistory .result{text-align:right;white-space:nowrap}.cluehistory .hit{color:#7fd48a}.cluehistory .miss{color:#ff8080}.cluehistory tr.done .word{opacity:.55;text-decoration:line-through}.pwform{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.4rem .8rem;align-items:end;max-width:760px;margin-bottom:1.2rem}.pwform .error{grid-column:1 / -1}.pwform button{justify-self:start}.featureboard{margin-top:1rem}.fb-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.fb-head h2{margin:0}.coins{display:flex;gap:.4rem;flex-wrap:wrap}.coin{background:var(--bg3);border:1px solid var(--border);border-radius:999px;padding:.2rem .7rem;font-weight:600;font-size:.9rem}.coin.feature{border-color:var(--accent)}.fow{background:#3b2f0a;border:1px solid #a37e1a;border-radius:8px;padding:.5rem .8rem;margin:.6rem 0}.leader{color:var(--muted);margin:.3rem 0 .6rem}.fb-propose{display:grid;gap:.4rem;margin:.8rem 0}.fb-propose button{justify-self:start}.fb-item{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.8rem;align-items:start;padding:.7rem 0;border-top:1px solid var(--border)}.fb-item .score{text-align:center}.fb-item .score b{display:block;font-size:1.5rem;line-height:1.1}.fb-item .score b.pos{color:#7fd48a}.fb-item .score b.neg{color:#ff8080}.fb-item .score small{color:var(--muted);font-size:.7rem}.fb-item .title{font-weight:700;display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.fb-item .body{color:var(--fg);opacity:.85;white-space:pre-wrap;margin:.2rem 0}.fb-item .reply{background:var(--bg3);border-left:3px solid var(--accent);padding:.3rem .6rem;border-radius:4px;margin:.3rem 0;font-size:.9rem}.fb-item .meta{font-size:.8rem;display:flex;align-items:center;gap:.2rem;flex-wrap:wrap}.fb-item .myvote{color:var(--accent)}.fb-item .vote{display:flex;flex-direction:column;align-items:center;gap:.25rem}.fb-item .vote button{width:2.6rem;padding:.25rem 0}.fb-item .vote button.up:not(:disabled){color:#7fd48a}.fb-item .vote button.down:not(:disabled){color:#ff8080}.fb-item .vote input{width:3.2rem;text-align:center;padding:.2rem}.fb-edit{display:grid;gap:.3rem}.fstatus{font-size:.7rem;font-weight:600;border-radius:999px;padding:.05rem .5rem;background:var(--bg3);text-transform:uppercase;letter-spacing:.04em}.fstatus.s-planned{background:#1c2a44;color:#9fc2ff}.fstatus.s-done{background:#1d3a26;color:#7fd48a}.fstatus.s-rejected{background:#3a1f22;color:#ff9b9b}.archive{margin-top:.8rem}.archive summary{cursor:pointer;color:var(--muted)}.archive .fb-item{opacity:.7}.boardcfg .grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.6rem}.admintable.board td.wrap{white-space:normal;max-width:360px}.admintable.board td.row input{width:12rem}.grantform{margin:.6rem 0 1.2rem;flex-wrap:wrap}.grantform select,.grantform input{width:auto}@media (max-width: 860px){.fb-item{grid-template-columns:3.2rem 1fr}.fb-item .vote{grid-column:1 / -1;flex-direction:row;justify-content:flex-end}}body.cb{--red: #D55E00;--red-soft: #3a2616;--blue: #0072B2;--blue-soft: #10283a;--neutral: #D9D9D9;--neutral-soft: #2a2a2a;--shared: #CC79A7;--shared-soft: #3a2233;--good: #56B4E9;--bad: #E69F00}body.cb .team-red{color:#f08a4b}body.cb .team-blue{color:#56b4e9}body.cb .tile.hidden.c-red{background:#f6c9a8}body.cb .tile.hidden.c-blue{background:#a9d3f0}body.cb .tile.hidden.c-neutral{background:#ededed;border-color:#9a9a9a}body.cb .tile.hidden.c-shared{background:#ebc6dd}body.cb .tile.hidden.c-red .word{color:#7a3000}body.cb .tile.hidden.c-blue .word{color:#00406a}body.cb .tile.hidden.c-neutral .word{color:#3a3a3a}body.cb .tile.hidden.c-shared .word{color:#6b2a52}body.cb .tile.revealed.c-neutral{color:#222}body.cb .scout-badge.c-neutral{background:#8a8a8a}body.cb .tile.c-red .word:before{content:"▲ "}body.cb .tile.c-blue .word:before{content:"● "}body.cb .tile.c-neutral .word:before{content:"○ "}body.cb .tile.c-assassin .word:before{content:"☠ "}body.cb .tile.c-shared .word:before{content:"◆ "}body.cb .tile.hidden.c-assassin:after,body.cb .tile.hidden.c-shared:after{content:none}body.cb .scout-badge.c-red:before{content:"▲ "}body.cb .scout-badge.c-blue:before{content:"● "}body.cb .scout-badge.c-neutral:before{content:"○ "}body.cb .scout-badge.c-assassin:before{content:"☠ "}body.cb .scout-badge.c-shared:before{content:"◆ "}body.cb .legend .sw{width:16px;height:16px;font-size:11px;line-height:15px;text-align:center;color:#fff}body.cb .legend .sw.c-red:after{content:"▲"}body.cb .legend .sw.c-blue:after{content:"●"}body.cb .legend .sw.c-neutral:after{content:"○";color:#222}body.cb .legend .sw.c-assassin:after{content:"☠"}body.cb .legend .sw.c-shared:after{content:"◆"}body.cb .rules .sw{width:16px;height:16px;font-size:11px;line-height:15px;text-align:center;color:#fff}body.cb .rules .sw.c-red:after{content:"▲"}body.cb .rules .sw.c-blue:after{content:"●"}body.cb .rules .sw.c-neutral:after{content:"○";color:#222}body.cb .rules .sw.c-assassin:after{content:"☠"}body.cb .rules .sw.c-shared:after{content:"◆"}body.cb .gamebar .score>.team-red:before{content:"▲ "}body.cb .gamebar .score>.team-blue:before{content:"● "}body.cb .teamstrip.team-red:before{content:"▲";color:#f08a4b;margin-right:.2rem}body.cb .teamstrip.team-blue:after{content:"●";color:#56b4e9;margin-left:.2rem}body.cb .log .entry.team-red:before{content:"▲ ";color:#f08a4b}body.cb .log .entry.team-blue:before{content:"● ";color:#56b4e9}body.cb .cluehistory tr.team-red .round:before{content:"▲ ";color:#f08a4b}body.cb .cluehistory tr.team-blue .round:before{content:"● ";color:#56b4e9}body.cb .status.team-red:before{content:"▲ ";color:#f08a4b}body.cb .status.team-blue:before{content:"● ";color:#56b4e9}body.cb .team-box.team-red h3:before{content:"▲ "}body.cb .team-box.team-blue h3:before{content:"● "}body.cb .cluehistory .hit,body.cb .ok,body.cb .fb-item .score b.pos,body.cb .jokerbar .charges{color:var(--good)}body.cb .cluehistory .miss,body.cb .bad,body.cb .fb-item .score b.neg{color:var(--bad)}body.cb .fb-item .vote button.up:not(:disabled){color:var(--good)}body.cb .fb-item .vote button.down:not(:disabled){color:var(--bad)}body.cb .history tr.won td:first-child{border-left-color:var(--good)}body.cb .tile .actions button.select:not(:disabled){background:#0072b233;color:#00406a}body.cb .tile.hidden.turncoat{box-shadow:0 0 0 3px var(--good) inset}body.cb .tile.hidden.hitman{border-color:var(--bad)!important}body.cb-pattern .tile.hidden.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-red,body.cb-pattern .rules .sw.c-red,body.cb-pattern .scout-badge.c-red{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L18 16 L6 16 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-blue,body.cb-pattern .rules .sw.c-blue,body.cb-pattern .scout-badge.c-blue{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='4.5' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-neutral,body.cb-pattern .rules .sw.c-neutral,body.cb-pattern .scout-badge.c-neutral{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Ccircle cx='12' cy='12' r='5' fill='none' stroke='rgba(0,0,0,0.17)' stroke-width='2'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-assassin,body.cb-pattern .rules .sw.c-assassin,body.cb-pattern .scout-badge.c-assassin{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M7 7 L17 17 M17 7 L7 17' stroke='rgba(255,255,255,0.3)' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(0,0,0,0.17)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .tile.revealed.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:24px 24px}body.cb-pattern .legend .sw.c-shared,body.cb-pattern .rules .sw.c-shared,body.cb-pattern .scout-badge.c-shared{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24'%3E%3Cpath d='M12 5 L19 12 L12 19 L5 12 Z' fill='rgba(255,255,255,0.3)'/%3E%3C/svg%3E");background-size:10px 10px}body.cb-pattern .tile.hidden:not(.c-unknown):not(.c-assassin) .word{background:#ffffffd1;border-radius:4px;padding:0 .3em}body.cb-pattern .tile.hidden.c-assassin .word,body.cb-pattern .tile.revealed:not(.c-neutral) .word{background:#00000061;border-radius:4px;padding:0 .3em}body.cb-pattern .tile.revealed.c-neutral .word{background:#ffffffb3;border-radius:4px;padding:0 .3em}.cbbtn sup{font-size:.6rem;margin-left:1px}.cbpick{display:grid;gap:.4rem;max-width:640px}.cbopt{background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:.5rem .7rem;align-items:flex-start}.cbopt.active{border-color:var(--accent)}.playarea{display:flex;gap:.8rem}.boardwrap{flex:1;min-width:0}@media (min-width: 861px){.game{max-width:none;height:100vh;height:100dvh;display:flex;flex-direction:column;padding:.5rem .8rem .6rem;overflow:hidden}.game>*{flex:none}.game>.layout{flex:1 1 auto;min-height:0;grid-template-columns:minmax(0,1fr) clamp(260px,21vw,380px);align-items:stretch}.game .status{margin-bottom:.5rem}.game .endbanner{padding:.5rem 1rem;margin-bottom:.5rem}.game .endbanner h2{font-size:1.5rem;margin-bottom:.2rem}.layout main{display:flex;flex-direction:column;min-height:0}.layout main>*{flex:none}.layout main>.playarea{flex:1 1 auto;min-height:0}.layout aside{min-height:0;overflow-y:auto;padding-right:.2rem}.layout aside .log{max-height:none;flex:1 1 180px;min-height:140px}.playarea .drawing{--fit-height: 1;flex:0 0 auto;width:clamp(320px,50%,1100px);max-width:none;margin:0;display:flex;flex-direction:column;justify-content:center}.playarea .drawing canvas{width:auto;max-width:100%;align-self:center}.boardwrap{container-type:size;min-height:0}.boardwrap .board{height:100%;gap:clamp(.3rem,.6vw,.7rem)}.boardwrap .board .tile{aspect-ratio:auto;min-height:0;font-size:clamp(.6rem,min(calc(100cqw / var(--n) / 7),calc(100cqh / var(--n) / 3.1)),3.2rem);border-radius:clamp(6px,.6vw,12px)}.boardwrap .board .tile.has-actions{padding-bottom:calc(.3rem + var(--act-h))}.boardwrap .board .tile .actions button{padding:0;height:var(--act-h);font-size:calc(var(--act-h) * .6)}.game .cluebanner{margin-top:.5rem;padding:.45rem 1rem}.game .cluebanner .word,.game .cluebanner .count{font-size:clamp(1.4rem,3.2vh,2.4rem)}}@property --mark-size{syntax: "<length>"; inherits: true; initial-value: 26px;}@property --act-h{syntax: "<length>"; inherits: true; initial-value: 21px;}@property --pad-v{syntax: "<length>"; inherits: true; initial-value: 28px;}.marks{gap:3px;max-width:80%}.marks .avatar{width:var(--mark-size, 26px)!important;height:var(--mark-size, 26px)!important;font-size:calc(var(--mark-size, 26px) * .62)!important;box-shadow:0 1px 3px #0006;background:var(--bg3)}.marks span.me .avatar{outline:2px solid var(--accent);outline-offset:1px}@media (min-width: 861px){.boardwrap .board{--mark-size: clamp(24px, calc(100cqh / var(--n) / 3.4), 46px);--act-h: clamp(1.3rem, 2.2cqh, 2.2rem);--pad-v: max(calc(var(--mark-size) + 2px), calc(.3rem + var(--act-h)))}}@media (max-width: 860px){.board{--mark-size: 20px}.tile.has-marks{padding-top:.15rem}.tile.has-marks .word{font-size:1em}.marks{top:auto;bottom:3px;left:3px;right:auto;max-width:48%;flex-wrap:nowrap;gap:0;justify-content:flex-start;pointer-events:none;z-index:1}.marks span+span{margin-left:-7px}.tile.has-marks .actions button.mark{color:transparent}}@media (min-width: 861px){.boardwrap .board .tile,.boardwrap .board .tile.has-actions{container-type:size;padding-top:var(--pad-v);padding-bottom:var(--pad-v)}.boardwrap .board .tile .word{font-size:min(1em,120cqh);line-height:1}}@media (min-width: 861px){.marks{top:3px;right:4px;left:4px;max-width:none}}.admintable .userlink{padding:0;color:var(--fg);font-weight:600;text-align:left}.admintable .userlink:hover{color:var(--accent);text-decoration:underline}.admintable button.member{cursor:pointer;border:none;font:inherit;color:inherit}.admintable button.member:hover{background:#313647}.admintable td.ips{white-space:nowrap;font-size:.8rem;line-height:1.5}.accesslog .filters{margin:.4rem 0 .6rem;flex-wrap:wrap}.accesslog .filters input:not([type=checkbox]){width:16rem}.admintable td.warn{color:var(--bad, #ff8080);font-weight:600}.hostmenu{position:relative}.hostmenu-pop{position:absolute;right:0;top:calc(100% + .4rem);z-index:20;display:flex;flex-direction:column;gap:.3rem;min-width:220px;padding:.6rem;box-shadow:0 8px 24px #0008}.hostmenu-pop button{justify-content:flex-start;width:100%}.admintable td.roomactions{display:flex;gap:.4rem;align-items:center}.admintable td.roomactions select{width:auto;max-width:14rem}
