:root{color-scheme:dark;--bg:#101917;--panel:#192320;--line:#33413a;--text:#f0f0df;--muted:#aab6ad;--accent:#dfcd9b;--green:#add2b8;--danger:#f0a899;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 80% 0,#25382c55,transparent 55%),var(--bg);color:var(--text);min-height:100vh}button,input,select{font:inherit}button{min-height:48px;border:1px solid transparent;border-radius:8px;padding:12px 19px;background:var(--accent);color:#202b24;font-weight:650;cursor:pointer;transition:background .15s,transform .15s}button:hover{background:#f0dfb1}button:active{transform:translateY(1px)}button.secondary{background:transparent;color:var(--text);border-color:var(--line)}button.secondary:hover{background:#2a3930}button:disabled{opacity:.38;cursor:not-allowed}a{color:inherit}input,select{width:100%;min-height:48px;background:#111b17;color:var(--text);border:1px solid #46574a;border-radius:7px;padding:10px 12px}input:focus,select:focus,button:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input[type=checkbox]{width:23px;height:23px;min-height:23px;accent-color:var(--accent);flex-shrink:0}label{display:grid;gap:9px;font-size:.92rem}header{max-width:1480px;margin:auto;padding:25px 40px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:18px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-size:1.1rem;font-weight:700;letter-spacing:.17em}.brand small{display:block;font-size:.55rem;font-weight:500;letter-spacing:.16em;color:var(--muted);margin-top:5px}.header-actions{display:flex;gap:22px;align-items:center}.local-dot{font-size:.78rem;color:var(--green);white-space:nowrap}.local-dot:before{content:'';display:inline-block;width:6px;height:6px;background:var(--green);border-radius:50%;margin-right:8px}.workspace{display:grid;grid-template-columns:245px minmax(0,1fr);max-width:1320px;margin:0 auto;gap:62px;padding:48px 40px 70px}aside{padding-top:10px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,serif;font-weight:400}h1{font-size:clamp(2.1rem,3.5vw,3rem);line-height:1.16;letter-spacing:-.025em;margin-bottom:25px}h2{font-size:1.7rem;line-height:1.25;margin-bottom:12px}aside h2{font-size:2.15rem;line-height:1.25}h3{font-size:1.08rem}p{line-height:1.65;color:var(--muted)}strong,b{color:var(--text)}.eyebrow{font-family:Segoe UI,system-ui,sans-serif;font-size:.65rem;font-weight:650;letter-spacing:.17em;color:var(--accent);line-height:1.7;margin-bottom:14px}.session-stats{display:flex;gap:40px;padding:23px 0 28px}.session-stats div{display:grid;gap:5px}.session-stats b{font-family:Georgia,serif;font-weight:400;font-size:2rem}.session-stats span{font-size:.75rem;color:var(--muted)}.phase-card{border:1px solid var(--line);border-radius:9px;padding:19px;display:grid;gap:10px;background:#23332855}.phase-card .eyebrow{margin:0}.phase-card strong{font-size:.95rem;font-weight:500}.phase-card>span:last-child{font-size:.76rem;line-height:1.6;color:var(--muted)}.privacy-note{margin:26px 0;font-size:.87rem}.privacy-note>span{color:var(--accent);margin-right:6px}.privacy-note small{display:block;font-size:.78rem;margin-top:10px;line-height:1.6}.aside-actions{display:grid;gap:10px}.aside-actions button{font-size:.8rem}.panel{border:1px solid var(--line);background:var(--panel);border-radius:13px;padding:28px;margin-bottom:22px;box-shadow:0 8px 36px #00000012}.panel>p:last-child{margin-bottom:0}.section-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.section-heading p{font-size:.85rem}.count-label{min-width:75px;max-width:85px;font-size:.7rem;color:var(--muted)}.count-label input{font-size:1.1rem;text-align:center}.steps{display:flex;justify-content:space-between;padding:0;margin:0 0 28px;list-style:none;gap:10px}.steps li{font-size:.72rem;color:var(--muted);display:flex;align-items:center;gap:8px}.steps li span{border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;width:25px;height:25px;flex-shrink:0}.steps .current{color:var(--accent)}.steps .current span{background:var(--accent);color:#18221b}.steps .done span{color:var(--green)}#player-inputs{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:12px 0 20px}.player-input{display:flex;gap:9px;align-items:center;min-width:0}.player-input>span{font-size:.7rem;color:var(--muted)}.player-input input{min-width:0}.icon-button{min-width:44px;padding:9px;font-size:1.2rem}.form-footer{border-top:1px solid var(--line);padding-top:22px;margin-top:26px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.fine{font-size:.75rem;line-height:1.7;color:var(--muted);margin:0}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px;margin:25px 0}.role-card{border:1px solid var(--line);background:#14201a;border-radius:10px;padding:19px;align-content:start;grid-template-rows:auto auto 1fr auto auto}.role-symbol{color:var(--accent);font-size:2rem;line-height:1.3}.role-card strong{font-family:Georgia,serif;font-weight:400;font-size:1.3rem}.role-card>span:not(.role-symbol){font-size:.77rem;color:var(--muted);line-height:1.65}.role-card small{font-size:.65rem;line-height:1.6;color:var(--muted);margin:8px 0}.role-card input{text-align:center;font-size:1.2rem}.pool-stats{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:.77rem;padding:15px 0}.pool-stats b{color:var(--accent)}.validation-note,.success,.warning{font-size:.85rem;line-height:1.75;padding:14px 16px;border-radius:8px;background:#25352b;margin-bottom:14px}.validation-note{color:var(--accent)}.success{color:var(--green)}.warning{background:#412d24;color:#f2c5a5}.card-list{list-style:none;padding:0;margin:25px 0}.card-list li{display:flex;justify-content:space-between;padding:16px 0;border-bottom:1px solid var(--line)}.card-list strong{color:var(--accent)}.callout{padding:20px;border-left:3px solid var(--accent);background:#29372c;color:var(--text);font-size:.9rem;line-height:1.7;margin:22px 0}.night-panel{background:linear-gradient(135deg,#23332b,#17211d)}.night-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:22px}.night-top .eyebrow{margin:0}.tag{font-size:.65rem;padding:7px 10px;border:1px solid #506149;border-radius:30px;color:var(--green)}.night-title{display:flex;align-items:center;gap:23px}.night-title>span{font-size:4rem;color:var(--accent);line-height:1}.night-title h2{font-size:2.2rem;margin-bottom:7px}.night-title p{font-size:.9rem;margin-bottom:0}.wake-order{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:27px 0}.wake-order li{border-bottom:2px solid var(--line);padding:7px 13px;font-size:.75rem;color:var(--muted)}.wake-order .current{color:var(--accent);border-color:var(--accent)}.wake-order .done{color:var(--green)}.selection-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.player-choice{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid var(--line);border-radius:8px;background:#122019}.player-choice:has(input:checked){border-color:var(--accent);background:#354332}.player-choice small{display:block;font-size:.67rem;color:var(--muted);margin-top:5px}.unavailable{opacity:.45}.chips{display:flex;flex-wrap:wrap;gap:9px;margin:20px 0}.chips>span{border:1px solid var(--line);background:#111e17;border-radius:7px;font-size:.84rem;padding:11px 15px}.action-card{margin-top:26px;padding-top:25px;border-top:1px solid var(--line)}.action-card form{display:flex;gap:15px;align-items:end;flex-wrap:wrap}.action-card label{flex:1;min-width:180px}.secret-result{background:#101e16;border:1px solid #567150;border-radius:8px;padding:20px}.secret-result p{color:var(--green);margin-bottom:0;margin-top:7px}.roster{margin:15px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 25px}.person{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);min-width:0}.avatar{width:33px;height:36px;border-radius:8px;background:#354435;display:grid;place-items:center;color:var(--accent);flex-shrink:0;font-family:Georgia,serif}.person-name{flex:1;min-width:0;overflow-wrap:anywhere;font-size:.9rem}.person-name small{display:block;color:var(--muted);font-size:.69rem;margin-top:4px}.status{font-size:.63rem;color:var(--green);border:1px solid var(--line);padding:4px 7px;border-radius:15px}.dead{opacity:.62}.dead .status{color:var(--danger)}.dead .avatar{background:#463d35}.dead .person-name{text-decoration:line-through}.secret,.history{padding:20px 25px}summary{cursor:pointer;font-size:.87rem;min-height:28px;line-height:28px}summary>span{float:right;color:var(--muted);font-size:.72rem}.history ol{padding:0;list-style:none;max-height:400px;overflow:auto}.history li{display:flex;gap:20px;padding:12px 0;border-top:1px solid var(--line);font-size:.79rem;line-height:1.6}.history time{color:var(--muted);white-space:nowrap}.public-announcement{border-left:3px solid var(--green);padding-left:20px}.public-announcement p{color:var(--text)}.winner{text-align:center;padding:35px}.winner-symbol{font-size:5rem;color:var(--accent)}.winner h2{font-size:2.8rem}.winner .actions{justify-content:center}.final-table{overflow-x:auto}table{border-collapse:collapse;width:100%;text-align:left;font-size:.9rem}td,th{padding:16px 10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}th{font-weight:500;font-size:.75rem;color:var(--muted)}.auth{max-width:540px;margin:8vh auto;padding:40px}.auth h1{font-size:3rem}.auth form{display:grid;gap:22px;margin:30px 0}.auth label{color:var(--muted)}footer{max-width:1240px;margin:auto;border-top:1px solid var(--line);padding:22px 0;color:var(--muted);font-size:.68rem;display:flex;justify-content:space-between;gap:15px}.public-view{max-width:900px;margin:60px auto;padding:0 25px}.announcement{font-family:Georgia,serif;font-size:2rem;color:var(--text)}.public-view .roster{padding:20px}.resume{padding:40px}.resume h1{font-size:2.7rem}#notice:not(:empty){position:fixed;bottom:20px;left:50%;transform:translateX(-50%);padding:18px 25px;background:#4b3029;color:#ffe4d1;border:1px solid #b08069;border-radius:10px;max-width:700px;width:calc(100% - 30px);box-shadow:0 8px 30px #0009;z-index:5;line-height:1.5}dialog{border:1px solid #6b7659;border-radius:13px;background:var(--panel);color:var(--text);max-width:510px;width:calc(100% - 32px);padding:30px}dialog::backdrop{background:#070e0bbf;backdrop-filter:blur(7px)}dialog .actions{justify-content:end}dialog p{line-height:1.7}[aria-busy=true]{cursor:progress}@media(min-width:1450px){.workspace{gap:80px;padding-top:60px}}@media(max-width:1000px){.workspace{grid-template-columns:190px minmax(0,1fr);gap:28px;padding:35px 25px}.panel{padding:23px}.role-grid{gap:8px}.role-card{padding:13px}#player-inputs{grid-template-columns:1fr}header{padding:20px 25px}footer{margin:0 25px}}@media(max-width:740px){header{padding:16px 18px}.brand{font-size:.95rem}.brand small{font-size:.46rem}.header-actions{gap:10px}.header-actions .local-dot{display:none}.header-actions button{padding:8px 14px;min-height:44px}.workspace{display:block;padding:25px 16px 40px}aside{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:28px;padding:0}aside>.eyebrow,aside>h2,.session-stats,.privacy-note{display:none}.phase-card{flex:1;padding:13px;gap:5px;min-width:180px}.phase-card .eyebrow{font-size:.55rem}.phase-card>span:last-child{font-size:.67rem}.aside-actions{gap:7px;width:135px}.aside-actions button{font-size:.65rem;min-height:44px;padding:8px}.panel{padding:21px 18px;border-radius:10px}h1{font-size:2.2rem}.steps{gap:4px}.steps li{font-size:.59rem;gap:5px;flex-direction:column}.steps li span{width:23px;height:23px}.page-top .eyebrow{font-size:.57rem}.role-grid{grid-template-columns:1fr}.role-card{grid-template-columns:35px 1fr 70px;grid-template-rows:auto auto auto;gap:6px 12px;padding:16px}.role-symbol{grid-row:1/4;align-self:center}.role-card strong{grid-column:2}.role-card>span:not(.role-symbol){grid-column:2}.role-card small{grid-column:2;margin:0}.role-card input{grid-column:3;grid-row:1/4;align-self:center}.role-card strong{font-size:1.2rem}.role-card>span:not(.role-symbol){font-size:.72rem}.form-footer{display:grid}.form-footer button{width:100%}.actions{gap:9px}.actions button{flex:1}.night-title{gap:14px}.night-title h2{font-size:1.9rem}.night-top{align-items:start}.tag{max-width:105px;text-align:center}.selection-grid{grid-template-columns:1fr}.roster{grid-template-columns:1fr}.section-heading{flex-wrap:wrap}.count-label{max-width:75px}.section-heading:has(.count-label){flex-wrap:nowrap}.section-heading h2{font-size:1.5rem}.public-view{margin:35px auto}.auth{margin:35px 16px;padding:28px 23px}.auth h1{font-size:2.6rem}.local-dot{font-size:.65rem}.announcement{font-size:1.5rem}footer{margin:0 18px;display:grid}.winner h2{font-size:2.2rem}.resume{padding:26px}.resume h1{font-size:2.2rem}td,th{padding:12px 7px;font-size:.75rem}}

.bad-result{border-color:#c96b64;background:#321e1e}.secret-result.bad-result p{color:#ff8e86;font-weight:750}.role-action-form{display:grid!important;gap:16px!important}.role-action-form label{min-width:0!important}.role-action-form .selection-grid{width:100%}.player-choice span,.chips span{overflow-wrap:anywhere}.night-title>div{min-width:0}.wake-order{gap:5px}.wake-order li{padding:7px 9px}#execution-form,#retaliation-form{display:grid;gap:18px}.success p:last-child{margin-bottom:0}


.wolf-target{background:#30203f;border:2px solid #ad7cd8;border-radius:10px;padding:18px;margin:16px 0}.wolf-target strong{color:#dcbaff}.wolf-target p{color:#efdfff;font-size:1.15rem;margin:9px 0 0;overflow-wrap:anywhere}#potion-targets{display:grid;gap:15px}
.header-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.discussion-timer output{display:block;font-size:clamp(3rem,10vw,5rem);font-variant-numeric:tabular-nums;color:var(--accent)}#timer-form{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:20px}#timer-form label{flex:1;min-width:130px}#password-form{display:grid;gap:18px}.language-picker{min-width:115px;max-width:160px}

header{flex-wrap:wrap}.brand{min-width:0}.language-picker{flex-shrink:0}@media(max-width:600px){header>.local-dot{display:none}.header-actions{width:100%;justify-content:flex-start}.header-actions .local-dot{margin-right:auto}.header-actions button{padding:10px 12px;font-size:.85rem}}
#player-inputs{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto}
#player-inputs>.player-input{grid-row:var(--row);grid-column:var(--column)}
#player-inputs>[data-action="remove-player"]{grid-row:var(--row);grid-column:calc(var(--column) + 1)}
@media(max-width:600px){#player-inputs{grid-template-columns:minmax(0,1fr) auto}#player-inputs>.player-input{grid-row:var(--entry);grid-column:1}#player-inputs>[data-action="remove-player"]{grid-row:var(--entry);grid-column:2}}

.setup-help-actions{display:flex;justify-content:flex-end;margin-top:20px}#win-conditions-dialog{width:min(680px,calc(100vw - 32px));max-width:680px;max-height:85vh;overflow:hidden}#win-conditions-dialog section{margin:24px 0}#win-conditions-dialog h3{font-size:1.05rem;margin-bottom:8px}#win-conditions-dialog p{line-height:1.65}#win-conditions-dialog[open]{display:flex;flex-direction:column}#win-conditions-title{flex-shrink:0}.win-conditions-content{overflow-y:auto;min-height:0;padding-right:8px}.win-conditions-close{display:flex;justify-content:flex-end;flex-shrink:0;padding-top:12px}

/* The same primary control stays in its form on desktop and docks on phones. */
.mobile-action-bar{display:contents}.mobile-action-bar>[data-action="undo"],.mobile-selection{display:none}
.player-picker{border:0;padding:0;margin:12px 0;min-width:0;width:100%}.player-picker legend{font-size:.85rem;color:var(--muted);margin-bottom:10px}.player-search{margin-bottom:12px}.player-choice{min-height:48px;cursor:pointer;min-width:0}.player-choice span{overflow-wrap:anywhere;min-width:0}.player-choice[hidden]{display:none}.player-choice input[type="radio"]{width:20px;height:20px;min-height:20px;padding:0;flex-shrink:0;accent-color:var(--accent)}
.night-order{margin:16px 0}.night-order summary{color:var(--muted);min-height:48px;display:flex;align-items:center}.night-order .wake-order{margin:8px 0 16px}.night-panel:has(#action-form) .form-footer>button,.night-panel:has(#thief-form) .form-footer>button{display:none}
.short-reminder{display:none}
.role-card[hidden]{display:none}.role-filter{margin-top:18px}
.action-card form{display:block}.action-card form>button{margin-top:12px}.role-action-form>#potion-targets{width:100%}
#notice.saved-notice{background:#203a2a;color:var(--green);border-color:#658970;pointer-events:none}
@media(max-width:740px){
  html{scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom));scroll-padding-top:12px}
  header{padding:10px 12px;gap:8px}header .brand span{display:none}header .brand img{width:30px;height:30px}header .language-picker{width:96px;min-width:0}header .header-actions{gap:8px}header .header-actions button{font-size:.7rem;padding:8px;min-height:48px}
  .workspace{padding:14px 12px 24px}.workspace:has(.night-panel){display:flex;flex-direction:column}.workspace:has(.night-panel)>aside{order:2;margin:12px 0}.workspace:has(.night-panel) .page-top{display:none}.workspace:has(.night-panel)>main{width:100%;min-width:0}
  .has-action-bar{padding-bottom:calc(94px + env(safe-area-inset-bottom))}
  .mobile-action-bar{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:8px;align-items:center;position:fixed;bottom:0;left:0;right:0;background:var(--panel);border-top:1px solid var(--line);padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:4;box-shadow:0 -6px 22px #0005}
  .mobile-action-bar>[data-action="undo"]{display:block;min-height:48px;max-width:110px;padding:10px;font-size:.82rem}.mobile-selection{display:block;min-width:0;font-size:.8rem;color:var(--green)}.mobile-action-bar>.primary-action{min-height:48px;width:100%;margin:0;padding:10px;font-size:.88rem}
  .night-panel{padding:16px 12px;margin-bottom:14px}.night-top{margin-bottom:12px}.night-title{gap:10px}.night-title>span{font-size:2rem}.night-title h2{font-size:1.55rem;overflow-wrap:anywhere}.night-title p{font-size:.8rem}.night-top .tag{max-width:none;padding:6px;font-size:.58rem}.night-top .eyebrow{font-size:.65rem}.night-order{margin:6px 0}.night-order summary{font-size:.8rem}
  .night-top .tag{display:none}.peeking-reminder{font-size:.8rem;line-height:1.5}.full-reminder{display:none}.short-reminder{display:inline}.player-search{font-size:0;gap:0}.night-panel #identify-form .player-picker legend{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .selection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.player-choice{padding:10px 8px;gap:8px;font-size:.87rem;line-height:1.3}.player-choice input[type="checkbox"]{width:20px;height:20px;min-height:20px}.player-search input{font-size:16px}.chips{gap:6px;margin:12px 0}.chips>span{padding:8px;font-size:.8rem}.action-card{margin-top:14px;padding-top:14px}.action-card h3{font-size:1rem}.action-card>p{font-size:.83rem;line-height:1.5}.wolf-target{padding:12px}.night-panel .form-footer{margin-top:14px;padding-top:14px}.night-panel .callout{margin:12px 0;padding:12px}
  #notice:not(:empty){bottom:calc(84px + env(safe-area-inset-bottom));padding:12px 16px;font-size:.85rem}
  #notice.saved-notice:not(:empty){width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%)}
  button,summary{min-height:48px}.icon-button{min-width:48px}input,select{font-size:16px}.final-table{overflow:visible}table{table-layout:fixed;font-size:.75rem}td,th{padding:10px 4px}.steps{flex-wrap:wrap}h1,h2{overflow-wrap:anywhere}footer{overflow-wrap:anywhere}
}
@media(any-pointer:coarse){summary{min-height:48px}.icon-button{min-width:48px}}

/* Header visibility never changes the space occupied by the header. */
.setup-header{position:sticky;top:0;z-index:6;background:var(--bg);transition:transform .18s ease}
.setup-header.header-hidden{transform:translateY(-110%);pointer-events:none}
.role-card{display:grid}
.role-counter{display:grid;grid-template-columns:48px minmax(40px,1fr) 48px;gap:8px;align-items:center;width:100%}
.role-counter button{padding:0;min-width:48px;min-height:48px;font-size:1.4rem;touch-action:manipulation}
.role-counter input{padding:8px 2px;font-variant-numeric:tabular-nums;appearance:textfield;-moz-appearance:textfield}
.role-counter input::-webkit-inner-spin-button,.role-counter input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
#pool-preview{overflow-anchor:none}
#pool-preview .validation-note,#pool-preview .success{min-height:58px}
@media(max-width:740px){.role-card{grid-template-columns:35px minmax(0,1fr);grid-template-rows:auto auto auto auto;gap:8px}.role-card .role-counter{grid-column:1 / -1;grid-row:4}.role-card strong{grid-column:2}.role-card>span:not(.role-symbol),.role-card small{grid-column:2}.role-card .role-symbol{grid-column:1;grid-row:1 / 4}}
@media(prefers-reduced-motion:reduce){.setup-header{transition:none}}

.role-counter input{grid-column:auto;grid-row:auto;min-width:0}
.setup-header ~ .workspace #phase-content>section{min-height:calc(100svh - 32px)}

#app{overflow-anchor:none}
.seating-note{font-size:.85rem}
