:root{color-scheme:dark;--bg:#100a1b;--panel:#1d1229;--ink:#fcf0ff;--muted:#beaccb;--pink:#f3a1e4;--purple:#b28af5;--line:#493353;--green:#a5f3ce;font:16px/1.5 Arial,Helvetica,sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;min-width:0;background:var(--bg);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #fff2ae;outline-offset:3px}button,a,summary{touch-action:manipulation}.ambient{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 50% 0,#5220524d,transparent 65%),radial-gradient(ellipse at 0 70%,#3b237326,transparent 45%)}.ambient:after{content:'';position:absolute;inset:0;opacity:.15;background-image:radial-gradient(#c995dc .6px,transparent .8px);background-size:39px 39px;mask-image:linear-gradient(#000,transparent 70%)}main{max-width:790px;margin:auto;padding:24px 24px 16px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.coven{display:flex;gap:10px;align-items:center;font-size:11px;font-weight:800;letter-spacing:2.6px;min-height:44px}.coven img{border-radius:6px}.preview-label{font-size:10px;font-weight:700;color:var(--muted);letter-spacing:1px;white-space:nowrap}.hero{text-align:center;padding:24px 0}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2.1px;color:#ef77db;line-height:1.5}.hero .eyebrow span{margin:0 8px}.hero h1{font-family:Impact,'Arial Black',sans-serif;font-size:clamp(44px,8vw,68px);line-height:1.05;letter-spacing:-1px;margin:9px 0 12px;display:inline-block;position:relative;transform:rotate(-2deg)}.hero h1 span{color:#f46adb;text-shadow:0 0 28px #ef5fd82b}.hero h1 i{position:absolute;right:-25px;top:-8px;font:25px Georgia;color:var(--purple)}.hero p{margin:0;color:var(--muted);font-size:14px}.hero strong{color:#f6dcfa;font-weight:500}.game{border:1px solid #61416d;border-radius:16px;background:linear-gradient(145deg,#23132f,#180e26 65%);padding:12px 12px 0;box-shadow:0 15px 50px #0003}.card-toolbar,.card-footer,.session-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}.card-toolbar{margin-bottom:8px}.card-toolbar>div{display:flex;align-items:center;gap:8px}.card-id{color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.live-dot{width:6px;height:6px;background:#f46adb;border-radius:50%}.board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.tile{position:relative;display:flex;flex-direction:column;align-items:center;min-width:0;min-height:115px;padding:9px 5px 5px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(145deg,#251535,#1b1028);color:#eab5f3;overflow:hidden;isolation:isolate;transition:background .15s,border-color .15s}.tile-label{z-index:3;display:block;color:var(--ink);font-size:12px;font-weight:700;line-height:1.18;text-align:center;max-width:100%;text-wrap:balance;overflow-wrap:anywhere;min-height:29px}.tile-art{position:relative;width:65px;height:65px;margin:auto 0 0;flex-shrink:0;display:grid;place-items:center}.tile-art svg{width:100%;height:100%;overflow:visible}.tile-art .accent{stroke:var(--purple)}.tile:nth-child(2n){color:#cfb0f7}.tile:nth-child(2n) .accent{stroke:#f46adb}.mark{position:absolute;z-index:5;right:4px;bottom:4px;width:21px;height:21px;border-radius:50%;background:#f46adb;color:#2a0936;font-size:15px;font-weight:900;display:grid;place-items:center;opacity:0}.tile.is-marked{border-color:#e67dd0;background:linear-gradient(145deg,#612653,#3c1d44)}.tile.is-marked .mark{opacity:1}.tile.is-marked .tile-art{opacity:.7}.tile.is-winning{border:2px solid #b8ffdc;background:linear-gradient(145deg,#245149,#252440);color:#d2ffe9;padding:8px 4px 4px}.tile.is-winning .mark{background:var(--green);color:#153d30}.tile.is-winning .accent{stroke:#c5ffe3}.hulacat .tile-art{position:absolute;inset:auto -8px -10px auto;width:calc(100% + 4px);height:78px;z-index:1}.hulacat img{width:100%;height:100%;object-fit:cover;object-position:70% 25%;mask-image:linear-gradient(to bottom,transparent,#000 21%);transform:rotate(-8deg) scale(1.14);transform-origin:bottom right}.hulacat .tile-label{text-shadow:0 2px 5px #100a1b,0 0 12px #100a1b}.card-footer{padding:10px 0;color:var(--muted)}.card-footer p{margin:0}.card-footer strong{color:var(--ink);margin-right:4px}.card-footer #saveStatus span{color:var(--green)}.session-strip{border-top:1px solid #382741;padding:9px 0;color:var(--muted);font-size:11px}.hint{font-size:13px;color:var(--muted);text-align:center;margin:16px 0}.primary-button,.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 16px;border:1px solid #654774;border-radius:8px;font-size:14px;line-height:1.3;text-align:center;transition:background .15s}.primary-button{background:var(--pink);color:#2b1032;border-color:var(--pink);font-weight:700}.primary-button:hover{background:#ffb8f0}.quiet-button{background:#281a37;color:var(--ink)}.quiet-button:hover{background:#3a2448;border-color:#b37dc6}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:none;color:#dec0ec;font-size:13px;line-height:1.35;min-height:44px;padding:8px}.text-button:hover{color:#fff;text-decoration:underline}.win-panel{border:1px solid #608e7b;border-radius:12px;background:#19312d;margin:16px 0;padding:20px;display:flex;gap:15px;align-items:center}.win-panel>div{flex:1;min-width:0}.win-star{font-size:34px;color:var(--green)}.win-panel h2{font:500 26px/1.15 Georgia,serif;margin:4px 0 8px}.win-panel p{font-size:14px;color:#d0e9de;margin:0}.win-panel .eyebrow{font-size:10px;color:var(--green)}.win-panel .preview-note{font-size:12px;color:#bcd8cd;margin-top:6px}.win-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.app-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0}.tools-buttons{display:flex;gap:8px}.app-tools>span{font-size:11px;color:var(--muted);text-align:right}.app-tools .quiet-button{font-size:12px;padding:8px 12px;background:transparent}.app-tools #winCount{color:var(--pink)}footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 16px;padding:24px 0 8px;font-size:11px;color:#ad96bd}footer a{display:inline-flex;align-items:center;min-height:44px;font-size:11px}footer .footer-star{color:#cf8bd6}dialog{width:min(470px,calc(100% - 28px));max-height:calc(100dvh - 32px);overflow:auto;border:1px solid #7e5889;border-radius:16px;padding:28px;background:#21132e;color:var(--ink);box-shadow:0 20px 100px #0008}dialog::backdrop{background:#08040dd9;backdrop-filter:blur(4px)}dialog h2{font:500 30px/1.15 Georgia,serif;margin:9px 36px 18px 0}dialog p,dialog li{font-size:15px;color:#d0bdda;line-height:1.6}dialog ol{padding-left:22px}dialog li{padding-left:3px;margin:12px 0}.close-button{position:absolute;right:12px;top:12px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:8px;background:transparent;color:#d7bfdf;font-size:28px}.close-button:hover{background:#ffffff09}dialog .eyebrow{padding-right:35px}input,textarea{width:100%;min-height:44px;border:1px solid #745582;border-radius:8px;background:#180f24;color:var(--ink);font-size:16px;padding:11px 12px;margin:7px 0 12px}textarea{resize:vertical;min-height:76px}label{font-size:14px;color:#e5d2ee}input[type=checkbox]{width:20px;min-height:20px;height:20px;flex:0 0 20px;margin:3px 0;accent-color:var(--pink)}.attestation{display:flex;gap:11px;align-items:flex-start;font-size:14px;line-height:1.5;margin:12px 0}.form-disclosure{font-size:12px!important;margin:16px 0;color:var(--muted)!important}#claimConfirm{width:100%}#claimMessage:empty{display:none}.game-info{margin:20px 0}.game-info summary{font-size:14px;color:#d8b7e7;cursor:pointer;padding:10px 0}.game-info p{font-size:13px}.notice,.reset-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:12px 15px;border-radius:9px;background:#30213d;color:#e7d4f1;font-size:13px}.notice .quiet-button{flex-shrink:0}.history-entry{display:block;text-align:left;width:100%;margin:9px 0;font-size:14px;padding:12px 14px}.history-entry small{display:block;color:var(--muted);font-size:12px;margin-top:5px}.history-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;margin-top:18px}.history-board>span{padding:8px 3px;min-height:64px;border:1px solid var(--line);border-radius:4px;font-size:10px;text-align:center;overflow-wrap:anywhere}.history-board .marked{background:#244b3d;border-color:#8ad6b3}.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}#sparkles{position:fixed;inset:0;pointer-events:none;z-index:50;overflow:hidden}.sparkle{position:absolute;top:-25px;color:#f4a2e9;animation:fall 2s ease-in forwards}@keyframes fall{to{transform:translateY(100vh) rotate(220deg);opacity:0}}
/* Keeper of Cards: bounded queue, restrained controls, compact evidence. */
.review-page main{max-width:1020px}.review-page header{padding:25px 0 22px}.review-page h1{font:500 36px/1.15 Georgia,serif;margin:7px 0 12px}.review-page .intro{font-size:15px;color:var(--muted);margin:0;max-width:620px}.review-panel{background:linear-gradient(130deg,#251830,#1a1026);border:1px solid #573c64;border-radius:12px;padding:20px;margin:14px 0}.review-panel h2{font:600 20px/1.3 Arial,sans-serif;margin:0 0 12px}.review-panel p{font-size:14px}#loginPanel{max-width:440px;margin:18px auto 40px}#loginPanel p{color:var(--muted);font-size:12px}#loginPanel .primary-button{width:100%}#reviewControls{display:grid;grid-template-columns:1fr auto;gap:14px 20px;align-items:center;padding:16px 0;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;margin:0 0 14px}.desk-date{display:flex;gap:12px;align-items:center}.desk-date label{font-size:13px;color:var(--muted)}#reviewNight{width:164px;margin:0;font-size:14px;padding:9px 10px}#reviewControls>.review-actions{display:flex;gap:8px}.queue-filters{display:flex;gap:4px;flex-wrap:wrap}.queue-filters .quiet-button{background:transparent;border-color:transparent;font-size:13px;min-height:40px;padding:9px 13px}.queue-filters button[aria-pressed=true]{background:#3b2447;border-color:#9866a7;color:#ffd0f4}.sync-status{justify-self:end;font-size:11px;color:var(--muted)}.review-status{font-size:12px;color:var(--muted);margin:12px 0;min-height:18px}.claim-card{padding:0;margin:8px 0;overflow:hidden}.claim-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;list-style:none}.claim-heading::-webkit-details-marker{display:none}.claim-card>summary{cursor:pointer}.claim-card>summary:hover{background:#ffffff04}.claim-identity{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;min-width:0}.claim-identity h2{font-size:17px;margin:0;overflow-wrap:anywhere}.claim-identity:after{content:'Review ↓';font-size:12px;color:#d6b4e2}.claim-card[open] .claim-identity:after{content:'Close ↑'}.review-panel:not(.claim-card) .claim-identity:after{display:none}.claim-badge{display:inline-block;border:1px solid #765584;border-radius:20px;padding:3px 8px;font-size:10px;color:#dec4eb;background:#342040}.claim-badge.accepted{background:#193d32;border-color:#568f77;color:#bdf8d9}.claim-badge.rejected{background:#422435;border-color:#9e647b;color:#ffc1d7}.claim-time{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0;font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted)}.claim-time strong{font-size:13px;color:#efc5e9}.claim-time span:last-child{color:#f6e5fb}.moderator-layout{display:grid;grid-template-columns:minmax(240px,1fr) minmax(0,340px);gap:32px;align-items:start;padding:8px 20px 20px}.claim-controls{min-width:0;padding-top:5px;max-width:440px}.winning-phrases{margin:12px 0 20px;padding:0;list-style:none;font-size:14px;line-height:1.4}.winning-phrases li{position:relative;padding:3px 0 3px 19px}.winning-phrases li:before{content:'✦';position:absolute;left:0;top:4px;color:var(--green);font-size:11px}.claim-controls .review-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.claim-controls .review-actions button{font-size:13px;padding:10px 8px}.reject-action{border-color:#765060;background:transparent}.claim-controls .note-editor{margin:12px 0 0}.note-editor summary{cursor:pointer;padding:10px 0;font-size:13px;color:#cbb2d7;min-height:44px}.note-editor label{display:block;font-size:12px;color:var(--muted)}.note-editor textarea{font-size:14px;margin:8px 0}.note-editor .quiet-button{font-size:12px}.claim-links{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.claim-links .text-button{font-size:12px;padding:7px 0}.receipt-details{margin:10px 0 0;font-size:12px;color:var(--muted)}.receipt-details summary{cursor:pointer;min-height:44px;padding:10px 0}.receipt-facts{display:grid;grid-template-columns:1fr;gap:4px;overflow-wrap:anywhere}.receipt-facts dt{color:var(--muted)}.receipt-facts dd{margin:0 0 8px;color:var(--ink);font-size:12px}.receipt-details button{font-size:12px;margin:4px 5px 4px 0}.action-message{font-size:12px!important;color:var(--green)}.action-message:empty{display:none}.published-note{font-size:13px!important;color:#e7cce9}.accepted-note{font-size:13px!important;color:var(--green)}.remote-update{font-size:12px;margin-bottom:12px}.claim-preview{width:100%;max-width:340px;justify-self:end}.review-board{gap:4px}.claim-preview .tile{min-height:64px;padding:4px 2px 2px;border-radius:5px}.claim-preview .tile-label{font-size:9.5px;line-height:1.12;min-height:30px}.claim-preview .tile-art{width:26px;height:26px}.claim-preview .hulacat .tile-art{height:34px;bottom:-5px;right:-5px}.claim-preview .mark{width:13px;height:13px;font-size:9px;right:2px;bottom:2px}.preview-caption{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:10px;color:var(--muted);margin-top:5px}.preview-caption .text-button{font-size:11px;padding:6px 0}.queue-empty{color:var(--muted);font-size:14px;padding:28px 8px}.claim-body:not(.moderator-layout){padding:0 0 8px}.review-page[data-mode=receipt] main{max-width:760px}.review-page[data-mode=receipt] .review-board{max-width:560px;margin:16px auto}.review-page[data-mode=receipt] .tile{min-height:100px}.review-page[data-mode=receipt] .tile-art{width:46px;height:46px}.review-page[data-mode=receipt] .board-caption{font-size:12px;color:var(--muted);text-align:center}.board-dialog{width:min(700px,calc(100% - 24px))}.board-dialog .tile{min-height:108px}.board-dialog .tile-label{font-size:12px}.board-dialog .tile-art{width:52px;height:52px}.export-dialog{width:min(660px,calc(100% - 24px));text-align:center}.export-dialog h2{margin-right:0;font-size:28px}.export-dialog p{font-size:13px}.export-dialog img{display:block;max-width:100%;width:auto;max-height:58dvh;margin:16px auto;border-radius:8px}.dialog-actions{display:flex;gap:10px;justify-content:center;position:sticky;bottom:-28px;background:#21132e;padding:12px 0}.dialog-actions button{min-width:120px}
@media(min-width:1400px){main{padding-top:32px}.review-page main{max-width:1060px}.moderator-layout{gap:40px}}
@media(max-width:760px){main{padding:16px}.hero{padding:18px 0}.review-page header{padding:20px 0}.review-page h1{font-size:30px}.moderator-layout{gap:20px;padding:8px 14px 16px;grid-template-columns:minmax(210px,1fr) minmax(0,300px)}.claim-identity h2{flex-basis:100%}.claim-preview .tile-label{font-size:9px}.desk-date{gap:8px}.desk-date label{max-width:100px}.winning-phrases{font-size:13px}.claim-controls .review-actions button{font-size:12px}.claim-heading{padding:12px 14px}}
@media(max-width:600px){main{padding:12px}.hero h1{font-size:49px}.hero p{font-size:12px}.hero .eyebrow{font-size:9px}.game{padding:8px 7px 0;border-radius:12px}.board{gap:4px}.tile{min-height:104px;padding:7px 3px 3px;border-radius:6px}.tile.is-winning{padding:6px 2px 2px}.tile-label{font-size:11px;min-height:39px}.tile-art{width:46px;height:46px}.hulacat .tile-art{height:61px}.mark{width:18px;height:18px;font-size:13px}.card-toolbar{font-size:12px}.card-toolbar>div{gap:5px}.card-id{font-size:10px}.card-toolbar .text-button{font-size:11px}.card-footer{font-size:11px}.session-strip{font-size:10px;gap:5px}.win-panel{padding:16px;gap:10px;align-items:flex-start}.win-star{font-size:25px}.win-panel h2{font-size:24px}.win-panel p{font-size:13px}.win-actions .primary-button{width:100%}.win-actions .quiet-button{font-size:12px}.app-tools{flex-wrap:wrap;gap:6px}.app-tools>span{width:100%;text-align:center;margin-top:4px}.tools-buttons{justify-content:center;width:100%}footer{gap:4px 12px;font-size:10px}dialog{padding:24px 20px}dialog h2{font-size:28px}dialog p,dialog li{font-size:14px}.form-disclosure{font-size:12px!important}.review-page h1{font-size:29px}.review-page .intro{font-size:14px}#reviewControls{gap:12px;grid-template-columns:1fr auto;padding-top:4px}#reviewControls .quiet-button{font-size:12px;padding:9px 10px}.desk-date{grid-column:1/-1;justify-content:space-between}.desk-date label{max-width:none}#reviewControls>.review-actions{grid-column:2;grid-row:2}.queue-filters{grid-row:3;grid-column:1/-1}.sync-status{grid-column:1;grid-row:2;justify-self:start;font-size:10px}.queue-filters .quiet-button{flex:1;white-space:nowrap}.moderator-layout{grid-template-columns:1fr;gap:16px;padding:0 14px 14px}.claim-controls{max-width:none}.winning-phrases{columns:2;column-gap:16px;font-size:12px;margin-bottom:14px}.winning-phrases li{break-inside:avoid}.claim-controls .review-actions button{font-size:13px}.claim-heading{gap:10px;align-items:flex-start}.claim-identity h2{font-size:16px}.claim-time{font-size:10px}.claim-time strong{font-size:12px}.claim-badge{font-size:9px}.claim-identity:after{font-size:11px}.claim-preview{max-width:320px;justify-self:center}.claim-preview .tile{min-height:64px}.claim-preview .tile-label{font-size:9.5px}.review-page[data-mode=receipt] .review-panel{padding:12px}.review-page[data-mode=receipt] .tile{min-height:104px}.review-page[data-mode=receipt] .tile-label{font-size:10px}.review-page[data-mode=receipt] .tile-art{width:35px;height:35px}.board-dialog .tile{min-height:108px}.board-dialog .tile-label{font-size:10.5px}.board-dialog .tile-art{width:37px;height:37px}.export-dialog .dialog-actions{bottom:-24px}.export-dialog img{max-height:55dvh}}
@media(max-width:360px){.hero h1{font-size:40px}.hero h1 i{right:-12px}.tile-label{font-size:10px}.tile{min-height:108px}.tile-art{width:38px;height:38px}.preview-label{font-size:9px}.coven{font-size:10px;letter-spacing:1.8px}.claim-time{font-size:9px}.claim-preview .tile-label{font-size:9px}.claim-preview .tile{min-height:70px}.claim-identity h2{font-size:15px}.win-star{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A1-1: a quieter Keeper desk, with one disclosure for secondary work. */
.review-page[data-mode=mod] main{max-width:960px}
.review-page[data-mode=mod] header{padding-bottom:24px}
.review-page[data-mode=mod] .intro{font-size:14px}
#reviewControls{grid-template-columns:1fr auto;gap:14px;margin-bottom:20px;padding:8px 0 0;border-bottom:0}
.desk-date label{font-size:12px}
#reviewNight{background:transparent;border-color:#634572;min-height:44px}
.desk-tools{position:relative;justify-self:end;align-self:center}
.desk-tools>summary{list-style:none;cursor:pointer;font-size:12px;color:var(--muted);padding:12px 0 12px 12px;min-height:44px}
.desk-tools>summary::-webkit-details-marker{display:none}
.desk-tools>summary span{margin-left:6px}
.desk-tools-menu{position:absolute;right:0;top:100%;z-index:20;width:210px;padding:10px 14px;background:#261731;border:1px solid #644574;border-radius:12px;box-shadow:0 12px 32px #0006;display:flex;flex-direction:column;align-items:stretch}
.desk-tools-menu .text-button{justify-content:flex-start}
.desk-tools-menu .sync-status{font-size:10px;padding:8px;line-height:1.5}
.queue-filters{grid-column:1/-1!important;grid-row:auto!important;border-bottom:1px solid var(--line);gap:22px;flex-wrap:nowrap}
.queue-filters .quiet-button{border:0!important;border-bottom:2px solid transparent!important;border-radius:0;background:none!important;padding:10px 0!important;min-height:44px;font-size:13px!important;flex:0 1 auto!important;color:var(--muted)}
.queue-filters button[aria-pressed=true]{border-bottom-color:var(--pink)!important;color:#ffe3f9}
.review-status:empty{display:none}
.review-page[data-mode=mod] .claim-card{border-color:#54365e;background:linear-gradient(140deg,#291936,#1a1026);border-radius:16px;margin:12px 0}
.review-page[data-mode=mod] .claim-heading{padding:18px 20px}
.review-page[data-mode=mod] .claim-identity{gap:7px 10px}
.review-page[data-mode=mod] .claim-identity h2{font-family:Georgia,serif;font-weight:500;font-size:23px;flex-basis:100%}
.review-page[data-mode=mod] .claim-badge{background:transparent;border:0;padding:0;font-size:11px;color:var(--muted)}
.review-page[data-mode=mod] .claim-badge.accepted{color:var(--green)}
.review-page[data-mode=mod] .claim-badge.rejected{color:#edb7c9}
.review-page[data-mode=mod] .claim-identity:after{content:'Open ↓';font-size:11px;opacity:.8}
.review-page[data-mode=mod] .claim-card[open] .claim-identity:after{content:'Close ↑'}
.review-page[data-mode=mod] .claim-time{font-size:10px;gap:3px}
.review-page[data-mode=mod] .claim-time strong{font-size:11px;font-weight:500;color:#dcb6df}
.review-page[data-mode=mod] .moderator-layout{grid-template-columns:minmax(0,1fr) minmax(0,300px);padding:8px 20px 20px;gap:30px}
.decision-title{font:500 22px/1.25 Georgia,serif;margin:0 0 20px;color:#eed7f3}
.review-page[data-mode=mod] .claim-controls{padding-top:10px}
.review-page[data-mode=mod] .claim-preview{max-width:300px}
.review-page[data-mode=mod] .claim-preview .tile-label{font-size:9px}
.review-page[data-mode=mod] .claim-controls .review-actions{gap:8px}
.review-page[data-mode=mod] .claim-controls .review-actions button{font-size:13px;padding:10px 8px;min-height:44px}
.review-page[data-mode=mod] .claim-links{display:grid;grid-template-columns:1fr auto;align-items:start;gap:10px;margin-top:14px}
.review-page[data-mode=mod] .note-editor{margin:0;min-width:0}
.review-page[data-mode=mod] .note-editor summary{font-size:12px;min-height:44px;padding:12px 0}
.review-page[data-mode=mod] .note-editor[open]{grid-column:1/-1;grid-row:2}
.review-page[data-mode=mod] .note-editor[open]+button{grid-column:2;grid-row:1}
.winning-moments{font-size:12px;color:var(--muted);padding-top:8px}
.winning-moments strong{font-weight:500;color:#ead0ed}
.review-page[data-mode=mod] .winning-phrases{font-size:12px;columns:1;margin:8px 0 18px}
.review-page[data-mode=mod] .note-editor>.text-button{display:block;text-align:left;margin-top:10px}
.review-page[data-mode=mod] .receipt-details{border-top:1px solid var(--line);margin-top:4px}
@media(max-width:760px){.review-page[data-mode=mod] .moderator-layout{gap:22px}.review-page[data-mode=mod] .claim-identity h2{font-size:20px}.queue-filters{gap:20px}}
@media(max-width:600px){#reviewControls{grid-template-columns:1fr auto;gap:12px}.desk-date{grid-column:1;justify-content:flex-start;gap:8px;flex-wrap:wrap}.desk-date label{font-size:11px}#reviewNight{width:145px;font-size:13px}.desk-tools{grid-column:2;grid-row:1}.queue-filters .quiet-button{font-size:12px!important}.queue-filters{justify-content:space-between;gap:12px}.review-page[data-mode=mod] .claim-heading{padding:16px}.review-page[data-mode=mod] .claim-identity h2{font-size:20px}.review-page[data-mode=mod] .moderator-layout{grid-template-columns:1fr;padding:0 16px 16px;gap:16px}.review-page[data-mode=mod] .claim-controls{padding-top:4px}.decision-title{font-size:20px;margin:0 0 14px}.review-page[data-mode=mod] .claim-preview{max-width:300px}.review-page[data-mode=mod] .claim-links{margin-top:6px}.review-page[data-mode=mod] .winning-phrases{columns:2}.review-page[data-mode=mod] header{padding-bottom:16px}.review-page[data-mode=mod] .claim-time{font-size:9px}}
@media(max-width:360px){.desk-date{gap:3px}.desk-date label{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.review-page[data-mode=mod] .claim-identity h2{font-size:18px}.review-page[data-mode=mod] .moderator-layout{padding-left:12px;padding-right:12px}}

/* A3: calm, readable handoff guides. */
.guide-page main{max-width:880px;padding-inline:24px}.guide-page header{max-width:680px;margin:48px 0}.guide-page h1{font-family:Georgia,serif;font-size:clamp(34px,5vw,58px);line-height:1.1;letter-spacing:-.02em}.guide-page .intro{font-size:19px;line-height:1.6}.guide-page section{padding:30px 0;border-top:1px solid var(--border,#483451)}.guide-page h2{font-family:Georgia,serif;font-size:29px;margin:0 0 18px}.guide-page section p,.guide-page li,.guide-page dd{font-size:17px;line-height:1.7;color:#cbbbd7}.guide-page section p{max-width:70ch;margin:14px 0}.guide-page strong,.guide-page b{color:#f7eafc}.guide-steps{padding-left:25px;display:grid;gap:18px}.guide-page details{margin:12px 0}.guide-page summary{font-size:17px;line-height:1.5;cursor:pointer;padding:10px 0;color:#ebbbea}.guide-callout{border-left:2px solid #b6efd7;padding:8px 0 8px 20px}.guide-times{display:flex;flex-wrap:wrap;gap:20px 50px;margin:24px 0}.guide-times dt{font-size:22px;color:#b6efd7;font-weight:700}.guide-times dd{margin:5px 0 0}.guide-return{display:inline-flex;margin-top:22px;text-decoration:none}.guide-page a:focus-visible,.guide-page summary:focus-visible{outline:2px solid #f6afe6;outline-offset:5px}@media(max-width:480px){.guide-page main{padding-inline:20px}.guide-page header{margin:32px 0}.guide-page section{padding:24px 0}.guide-page h2{font-size:26px}.guide-times{gap:18px}.guide-page .topbar{gap:10px}.guide-page .preview-label{font-size:10px}}@media print{.guide-page{background:white;color:#111}.guide-page .ambient,.guide-page nav,.guide-page footer,.guide-return{display:none}.guide-page main{max-width:none;padding:0}.guide-page section p,.guide-page li,.guide-page dd,.guide-page strong,.guide-page b,.guide-times dt{color:#111}.guide-page header{margin:0 0 24px}.guide-page section{break-inside:avoid}}

/* A3-1: a clear desk, visible sync, and deliberate claim movement. */
.keeper-topbar{display:grid;grid-template-columns:1fr 44px 1fr;align-items:start;gap:8px}.keeper-topbar .coven{justify-self:start}.keeper-help{justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:2px}.keeper-help .text-button{padding:0;font-size:12px}.keeper-help .preview-label{font-size:9px;letter-spacing:.8px}.icon-button{width:44px;height:44px;display:inline-grid;place-items:center;flex-shrink:0;border:1px solid #684b75;border-radius:9px;background:#261831;color:#e9c9ef;padding:10px}.icon-button:hover{background:#3b2447;border-color:#bd87c9}.icon-button svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.keeper-lock{grid-column:2;grid-row:1;background:transparent;border-color:transparent}.keeper-help{grid-column:3;grid-row:1}
#reviewControls{grid-template-columns:max-content minmax(0,1fr);column-gap:14px;align-items:end}.desk-date{grid-column:1;grid-row:1;align-self:end}.desk-refresh{grid-column:2;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:7px;min-width:0}.desk-refresh .sync-status{font-size:10px;line-height:1.4;max-width:270px;min-height:14px}.desk-refresh .sync-status:empty{display:none}.desk-refresh .icon-button:disabled svg{animation:refresh-turn 1s linear infinite}.decision-notice{display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--green);font-size:13px;margin:4px 0 16px;min-height:44px}.decision-notice .text-button{color:var(--pink);flex-shrink:0}.winner-invitation{font-size:13px!important;line-height:1.5;color:#cbead8;margin:-10px 0 18px;max-width:34ch}.return-pending{font-size:12px;padding:4px 0;min-height:44px;margin-top:6px}.claim-card[aria-busy=true]{border-color:#b58fc0}.claim-card[aria-busy=true]>.claim-heading{pointer-events:none}.tab-landed{animation:tab-land .55s ease-out}.review-page[data-mode=mod] .claim-heading:focus-visible{outline:2px solid var(--pink);outline-offset:-4px;border-radius:14px}.review-page[data-mode=mod] .claim-card:focus-within{scroll-margin-top:12px}
@keyframes tab-land{0%{text-shadow:0 0 16px #f3a1e4;color:#fff}100%{text-shadow:none}}@keyframes refresh-turn{to{transform:rotate(360deg)}}
@media(max-width:600px){.keeper-topbar .coven{font-size:9px;letter-spacing:1.5px;white-space:nowrap}.keeper-help .text-button{font-size:11px}.keeper-help .preview-label{font-size:8px}#reviewControls{grid-template-columns:minmax(0,1fr) minmax(100px,1fr);gap:14px 12px}.desk-date{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:flex-start;gap:6px}.desk-date label{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:11px}.desk-date #reviewNight{width:100%;max-width:164px;min-width:0}.desk-refresh{grid-column:2;grid-row:1}.desk-refresh .sync-status{font-size:10px;max-width:190px}.decision-notice{flex-wrap:wrap;gap:0;padding:4px 0}.queue-filters{gap:20px;justify-content:flex-start}.keeper-topbar{grid-template-columns:minmax(0,1fr) 44px minmax(0,1fr)}}
/* A3-2: a named place in the circle, simple receipt sharing, admin-only controls. */
.join-circle{max-width:620px;margin:6px auto 32px;padding:28px;border:1px solid #654371;border-radius:20px;background:#21152e}
.join-circle h2{font:clamp(26px,4vw,36px) Georgia,serif;margin:12px 0}.join-circle p{line-height:1.55}
.join-circle form{display:grid;gap:14px}.join-circle input:not([type=checkbox]),#adminDialog input,#adminDialog select{width:100%;box-sizing:border-box;min-width:0;background:#1a1125;color:#f7eafa;border:1px solid #80658c;border-radius:10px;padding:12px;font:inherit}
#dealBot,#claimBot{max-width:100%;min-height:65px;margin:10px 0}#claimBot{overflow:hidden}
.card-toolbar #playingName{overflow-wrap:anywhere}.card-toolbar>div{min-width:0;flex-wrap:wrap}
.receipt-actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 8px}.receipt-actions button{min-height:44px}.share-message{overflow-wrap:anywhere}
.link-match{color:#a5f3ce;padding:12px 0}.roster-panel{margin:18px 0 24px;padding:16px 0;border-bottom:1px solid #50365f}.roster-panel summary{cursor:pointer;min-height:44px;display:flex;align-items:center;gap:8px}.roster-row{display:flex;gap:16px;align-items:center;padding:12px 0;border-bottom:1px solid #3d294a;flex-wrap:wrap}.roster-row strong{overflow-wrap:anywhere}.roster-row span{color:#c4aecf;font-size:.9rem}.roster-row a{margin-left:auto}
#adminDialog{max-width:580px}#adminDialog form{display:grid;gap:14px}#adminEffect{line-height:1.6}#adminDialog details{margin-top:24px}#adminEvents{padding-left:20px;line-height:1.7;font-size:.9rem}#adminMessage{line-height:1.5}#adminNightLabel input{display:block;margin-top:8px}
.receipt-details{overflow-wrap:anywhere}.claim-identity h2{overflow-wrap:anywhere}
@media(max-width:600px){.join-circle{padding:20px}.receipt-actions{display:grid;grid-template-columns:1fr 1fr}.receipt-actions button:first-child{grid-column:1/-1}.roster-row{gap:8px}#adminDialog{padding:26px 20px}.win-actions{gap:10px}}

/* A3-4: the card carries its status; the celebration has two clear actions. */
.card-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 16px;margin-bottom:10px;min-height:44px}
.card-toolbar .card-identity{min-width:0;flex-wrap:wrap;gap:6px 8px}
.card-identity #playingName{overflow-wrap:anywhere;min-width:0}
.card-identity .live-dot{flex-shrink:0}
.card-toolbar .card-status{display:flex;justify-content:flex-end;align-items:center;gap:4px;color:var(--muted);font-size:12px}
.card-status[data-state=winner]{color:var(--green)}
.card-status[data-state=pending],.card-status[data-state=ready]{color:#ebc3f4}
.card-status[data-state=declined],.card-status[data-state=invalid]{color:#f4b0c4}
.card-status .icon-button{width:44px;height:44px;min-width:44px;padding:12px;border:0;background:transparent;color:inherit}
.card-status .icon-button:hover{background:#ffffff08}
.card-status .icon-button.is-checking svg{animation:refresh-turn .8s linear infinite}
.session-strip{flex-wrap:wrap;gap:6px 12px;padding:2px 0}
.session-strip #resetCountdown{margin-left:auto}
.session-strip .text-button{font-size:11px;padding:8px 0 8px 8px}
.win-panel{position:relative;align-items:flex-start;gap:14px;background:linear-gradient(120deg,#281832,#1c1329);border-color:#62456e;padding:22px 24px;box-shadow:none}
.win-panel[data-state=winner]{border-color:#608d7b;background:radial-gradient(ellipse at top left,#a5f3ce0e,transparent 65%),linear-gradient(120deg,#281832,#1c1329);box-shadow:0 0 25px #a5f3ce07}
.win-star{font-size:25px;line-height:1.2;margin-top:3px;color:#d8abe9}
.win-panel[data-state=winner] .win-star{color:var(--green)}
.win-panel h2{font-size:clamp(23px,3.3vw,29px);line-height:1.22;margin:0 0 7px;overflow-wrap:anywhere;text-wrap:balance}
.win-panel p{color:var(--muted);font-size:14px}
.win-panel[data-state=winner] #winDetail{color:#cde8dc}
.win-panel .win-actions{display:grid;grid-template-columns:max-content max-content;gap:10px;margin-top:17px}
.win-panel .win-actions button{font-size:13px;min-height:44px;padding:11px 16px;width:auto}
.win-panel .receipt-shortcut{font-size:12px;padding:9px 0 0;min-height:36px;justify-content:flex-start}
.win-panel .preview-note{color:var(--muted);font-size:12px;margin:8px 0 0}
.link-match{color:var(--muted);font-size:14px}
.link-match[data-state=winner]{color:var(--green)}
.link-match[data-state=pending]{color:#e5c1f0}
.link-match[data-state=invalid],.link-match[data-state=declined]{color:#f4b0c4}
.link-match[data-state=expired]{color:#e9c58e}
.roster-panel #rosterCount{color:var(--muted);font-size:13px}
.roster-panel summary::after{content:'⌄';margin-left:auto;color:var(--muted);font-size:16px}
.roster-panel[open] summary::after{content:'⌃'}
@media(max-width:600px){
 .card-toolbar{grid-template-columns:minmax(0,1fr);gap:0;margin-bottom:8px;padding:4px 0 0}
 .card-toolbar .card-identity{font-size:13px}
 .card-toolbar .card-status{justify-content:flex-start;min-height:36px;font-size:12px}
 .card-status .icon-button{margin-left:auto}
 .session-strip{font-size:10px;gap:0 7px}
 .session-strip .text-button{font-size:10px;padding-left:4px}
 .win-panel{padding:18px 16px;gap:10px}
 .win-panel .win-actions{grid-template-columns:minmax(0,1fr);gap:8px}
 .win-panel .win-actions button{width:100%;font-size:13px}
 .win-panel .win-star{display:block;font-size:22px}
 .win-panel h2{text-wrap:initial}
}

/* A3-5: a stateful celebration and a dedicated circle beside the claims. */
.card-toolbar{grid-template-columns:minmax(0,1fr)}
.win-panel{display:block}.win-content{width:100%;min-width:0}
.win-notice-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px 0 8px}
.win-notice-top .win-star{margin:0}
.win-notice-top .card-status{display:flex;align-items:center;justify-content:flex-end;gap:4px;font-size:12px;color:inherit;min-width:0}
.win-panel[data-state=pending]{background:#f4edf5;border-color:#e7d7ec;color:#291833;color-scheme:light}
.win-panel[data-state=pending] p,.win-panel[data-state=pending] .receipt-shortcut{color:#584160}
.win-panel[data-state=pending] .win-star{color:#825087}
.win-panel[data-state=pending] .primary-button{background:#593064;border-color:#593064;color:#fff4ff}
.win-panel[data-state=pending] .quiet-button{background:transparent;border-color:#977c9e;color:#41254c}
.win-panel[data-state=pending] :focus-visible{outline-color:#593064}
.win-panel[data-state=winner]{background:linear-gradient(120deg,#183e32,#142d29);border-color:#609a80;color:#effff5;box-shadow:none}
.win-panel[data-state=winner] .card-status{color:#a5f3ce}
.win-panel[data-state=declined]{background:linear-gradient(120deg,#411f30,#2c1727);border-color:#92536a;color:#ffedf3}
.win-panel[data-state=declined] p{color:#e0b7c6}
.win-panel[data-state=declined] .card-status,.win-panel[data-state=declined] .win-star{color:#f6b1c7}
.win-panel .win-actions:has(> :not([hidden])){margin-top:17px}.win-panel .win-actions:not(:has(> :not([hidden]))){display:none}
.win-panel .decision-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;padding:10px 16px;border:1px solid #b7768e;border-radius:9px;background:#5a2c42;color:#fff1f7;font-size:13px}
.review-page[data-mode=mod] main{max-width:1440px;padding-inline:28px}
.review-page[data-mode=mod] header{padding:24px 0 22px;margin:0}
.review-page[data-mode=mod] header h1{font-size:clamp(30px,4vw,42px);margin:8px 0}
.review-page[data-mode=mod] header .intro{font-size:15px;margin:8px 0 0}
.keeper-workspace{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:32px;align-items:start}
.claims-workspace{min-width:0}
.review-page[data-mode=mod] #reviewControls{margin:0 0 12px;padding-top:0}
.review-page[data-mode=mod] .review-status{font-size:12px;margin:8px 0 14px;min-height:0}
.review-page[data-mode=mod] .claim-card{margin-bottom:12px;border-radius:16px}
.review-page[data-mode=mod] .claim-heading{padding:16px 18px}
.review-page[data-mode=mod] .claim-identity h2{font-size:22px}
.review-page[data-mode=mod] .moderator-layout{grid-template-columns:minmax(0,1fr) minmax(0,270px);gap:22px;padding:4px 18px 20px}
.review-page[data-mode=mod] .claim-preview{max-width:270px}
.review-page[data-mode=mod] .claim-controls{min-width:0}
.review-page[data-mode=mod] .claim-links{grid-template-columns:1fr;gap:0}
.review-page[data-mode=mod] .claim-links .next-card{justify-self:start}
.review-page[data-mode=mod] .note-editor[open]+button{grid-column:1;grid-row:auto}
.review-page[data-mode=mod] .decision-title{font-size:23px}
.roster-panel{position:sticky;top:24px;margin:0;padding:18px 14px 12px;border:1px solid #4a3454;border-radius:16px;background:#1c1226;min-width:0}
.roster-heading{display:flex;align-items:center;justify-content:space-between;gap:8px}
.roster-heading h2{font:24px/1.2 Georgia,serif;margin:0}
.roster-panel #rosterCount{font-size:13px;color:#e8c8ee;margin:10px 0 0}
.roster-description{font-size:12px;color:var(--muted);margin:2px 0 14px}
#rosterSearch{width:100%;min-width:0;min-height:44px;border:1px solid #674a75;border-radius:9px;background:#140c1e;color:var(--ink);padding:10px 12px;font-size:14px}
.roster-filters{display:flex;gap:6px;margin:8px 0}
.roster-filters button{background:transparent;border:1px solid transparent;border-radius:7px;color:var(--muted);font-size:12px;min-height:44px;padding:8px 12px}
.roster-filters button[aria-pressed=true]{background:#35223f;border-color:#694875;color:#fceaff}
.roster-list{max-height:calc(100dvh - 345px);min-height:60px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#74517f transparent;padding-right:3px}
.roster-row{display:flex;width:100%;text-align:left;flex-wrap:nowrap;align-items:flex-start;gap:9px;padding:12px 8px;margin:2px 0;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--ink);min-height:60px}
button.roster-row:hover{background:#2b1c35}.roster-row.is-selected{background:#35223f;border-color:#79518b}
.roster-row .roster-symbol{width:20px;flex-shrink:0;text-align:center;font-size:23px;line-height:1.25;color:#bda8cc}
.roster-row[data-state=accepted] .roster-symbol{color:#a5f3ce}.roster-row[data-state=rejected] .roster-symbol{color:#eda7bd}
.roster-person{display:flex;flex-direction:column;gap:2px;min-width:0}.roster-row strong{font-size:13px;font-weight:600;color:#f4e8f8;line-height:1.4;overflow-wrap:anywhere}
.roster-row .roster-state,.roster-row .roster-duplicate{font-size:11px;line-height:1.4;color:#bfaacb}.roster-row .roster-duplicate{color:#e4bf87}
.roster-pagination{display:flex;align-items:center;justify-content:space-between;gap:5px;font-size:11px;color:var(--muted);margin-top:8px}.roster-pagination .text-button{font-size:11px;min-height:44px;padding:8px 2px}
#rosterMessage{font-size:12px;line-height:1.5;margin:8px 0}#rosterMessage:empty{display:none}
.roster-help{border-top:1px solid #3c2a45;margin-top:8px;padding-top:4px}.roster-panel .roster-help summary{display:block;min-height:44px;padding:12px 0;font-size:11px;color:var(--muted)}.roster-help summary:after{content:none}.roster-help p{font-size:12px;line-height:1.5;color:var(--muted)}
.roster-toggle,#closeRoster{display:none}
.roster-drawer{margin:0 0 0 auto;width:min(380px,100%);max-width:100%;height:100dvh;max-height:100dvh;padding:0;border:0;border-left:1px solid #674a75;border-radius:0;background:#1c1226}
.roster-drawer .roster-panel{position:static;border:0;border-radius:0;padding:20px;height:100%;overflow:auto}
.roster-drawer #closeRoster{display:grid}.roster-drawer .roster-list{max-height:calc(100dvh - 340px)}
@media(min-width:1051px) and (max-width:1200px){.keeper-workspace{gap:22px;grid-template-columns:minmax(0,1fr) 260px}.review-page[data-mode=mod] .moderator-layout{grid-template-columns:minmax(0,1fr) 235px;gap:16px}.review-page[data-mode=mod] .review-actions{grid-template-columns:1fr}.review-page[data-mode=mod] .claim-preview{max-width:235px}}
@media(max-width:1050px){.keeper-workspace{display:block}#rosterDock{display:none}.roster-toggle{display:inline-flex;gap:8px;align-items:center;min-height:44px;margin:0 0 18px;padding:8px 14px;font-size:13px}.review-page[data-mode=mod] main{max-width:940px;padding-inline:24px}}
@media(max-width:600px){.win-notice-top{margin:-4px 0 10px}.win-notice-top .card-status{font-size:11px;flex:1}.win-notice-top .card-status .icon-button{margin-left:0}.review-page[data-mode=mod] main{padding-inline:16px}.review-page[data-mode=mod] header{padding:18px 0 20px}.review-page[data-mode=mod] .moderator-layout{grid-template-columns:1fr;gap:20px;padding:0 16px 18px}.review-page[data-mode=mod] .claim-heading{padding:16px}.review-page[data-mode=mod] .claim-identity h2{font-size:20px}.review-page[data-mode=mod] .claim-preview{max-width:300px}.review-page[data-mode=mod] .claim-links{grid-template-columns:1fr auto}.review-page[data-mode=mod] .claim-links .next-card{justify-self:end}.review-page[data-mode=mod] .decision-title{font-size:22px}}

#rosterDock{align-self:stretch}

/* A3-6: open surfaces, a serial-numbered card, and a quieter place to play. */
.player-page .game{border:0;background:transparent;box-shadow:none;padding:0}
.player-page .card-toolbar{margin:0 0 12px;min-height:28px;padding:0 2px}
.player-page .card-identity{gap:7px 10px;font-size:14px}
.player-page .card-id{font-size:12px;letter-spacing:.05em;white-space:nowrap;color:#c2adcf}
.player-page .card-footer{justify-content:flex-end;padding:2px 0;gap:12px;min-height:44px}
.player-page #saveStatus{margin-right:auto;color:#f3bfd0;font-size:12px}
.player-page .card-footer .text-button{font-size:12px;padding-inline:0}
.fresh-deck{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px 9px;margin:4px 0 20px;color:#f1c5eb;font-size:14px;font-weight:500;text-align:center}
.fresh-deck>span:first-child{color:#ed8bdd;font-size:17px}.fresh-deck .deal-time{color:#cab9d5;font-weight:400}.deal-time:before{content:'·';margin-right:9px}
.player-page .hint{margin:16px 0 24px;font-size:13px}
.player-page .app-tools{display:block;margin:24px 0 0}
.install-invitation{display:flex;align-items:center;gap:16px;padding:18px 20px;background:linear-gradient(110deg,#35203e,#261832);border:1px solid #72507c;border-radius:18px;max-width:620px;margin:auto}
.install-invitation>img{width:44px;height:44px;border-radius:12px;flex-shrink:0;box-shadow:0 4px 14px #0003}
.install-copy{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0}.install-copy strong{font:500 20px/1.2 Georgia,serif;color:#ffedfb}.install-copy span{font-size:12px;line-height:1.5;color:#cfbcd9}
.install-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:0;border-radius:24px;padding:10px 16px;color:#f9d6f5;background:#583261;font-size:13px;font-weight:600;white-space:nowrap}.install-button:hover{background:#704178}.install-button svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.personal-tools{display:flex;flex-direction:column;align-items:center;gap:4px;margin-top:10px}.personal-tools #historyButton{font-size:12px;color:#cbb4d7}.personal-tools #winCount{color:inherit}.personal-tools #winCount:before{content:'·';margin-right:4px}.personal-tools #offlineStatus{font-size:12px;line-height:1.5;text-align:center;color:#e9c58e}
.coven-footer{flex-direction:column;gap:2px;padding-top:28px}.keeper-entry{background:transparent;border:0;color:#c8aad8;border-radius:50%}.keeper-entry:hover{background:#ffffff08;color:#f3c2ed}
.maker-link{display:inline-flex;justify-content:center;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:#b9a3c6;min-height:44px}.maker-link:hover{color:#efcaed}.maker-link span{font-size:10px;color:#d39bdb}
.review-page[data-mode=mod] main{max-width:1256px;padding-inline:28px}
.keeper-topbar{grid-template-columns:1fr 92px 1fr;align-items:start}
.keeper-utilities{grid-column:2;grid-row:1;display:flex;gap:4px;justify-content:center;min-height:44px}
.keeper-utilities .icon-button{background:transparent;border:0;color:#cdb0dc;border-radius:50%}.keeper-utilities .icon-button:hover{background:#ffffff0b;color:#f4d5f5}
.review-page[data-mode=mod] header{padding:18px 0 18px}
.review-page[data-mode=mod] header h1{font-size:clamp(29px,3.4vw,38px);margin:5px 0}
.review-page[data-mode=mod] header .intro{font-size:14px;margin-top:6px}
.keeper-workspace{grid-template-columns:minmax(0,1fr) 252px;gap:36px}
.review-page[data-mode=mod] .claim-card{border:0;border-bottom:1px solid #61436a66;background:transparent;border-radius:0;margin:0;overflow:visible}
.review-page[data-mode=mod] .claim-card[open]{background:linear-gradient(120deg,#38233f38,#281b340d)}
.review-page[data-mode=mod] .claim-heading{padding:18px 16px;gap:16px;align-items:center;border-radius:8px}
.review-page[data-mode=mod] .claim-heading:hover{background:#ffffff04}
.review-page[data-mode=mod] .claim-identity h2{font:600 18px/1.35 Arial,Helvetica,sans-serif}
.review-page[data-mode=mod] .claim-identity{gap:5px 12px}
.review-page[data-mode=mod] .claim-time{font-size:10px;gap:2px}
.review-page[data-mode=mod] .claim-time strong{font-size:11px}
.review-page[data-mode=mod] .moderator-layout{grid-template-columns:minmax(0,1fr) 270px;gap:28px;padding:10px 16px 22px;max-width:790px;margin:0 auto;align-items:start}
.review-page[data-mode=mod] .claim-controls{max-width:none;padding-top:4px}
.review-page[data-mode=mod] .decision-title{font-size:24px;line-height:1.25;margin:0 0 20px}
.review-page[data-mode=mod] .claim-controls .review-actions{grid-template-columns:1fr 1fr;gap:10px}
.review-page[data-mode=mod] .review-actions button{border-radius:11px;min-height:44px}
.review-page[data-mode=mod] .reject-action{background:#ffffff04;border-color:#705568;color:#ead4e3}
.review-page[data-mode=mod] .claim-preview{max-width:270px;justify-self:end}
.review-page[data-mode=mod] .claim-links{margin-top:18px}
.review-page[data-mode=mod] .claim-preview .tile{min-height:64px}
.review-page[data-mode=mod] .review-status:empty{display:none}
.review-page[data-mode=mod] #loadClaims{border:0;background:#ffffff06;border-radius:50%}
.review-page[data-mode=mod] #reviewNight{background:#ffffff03;border-color:#6a4d775c;border-radius:10px}
.review-page[data-mode=mod] .queue-filters{border-color:#6a4d775c;gap:26px}
.review-page[data-mode=mod] .roster-panel{background:transparent;border:0;border-left:1px solid #61436a66;border-radius:0;padding:0 0 0 24px;top:24px}
.circle-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.roster-heading h2{font:500 21px/1.3 Georgia,serif}.roster-panel #rosterCount{font-size:12px;color:#c2a8ce;margin:0}.roster-panel #rosterCount:before{content:'·';margin-right:8px}
#rosterSearch{background:#ffffff04;border:0;border-bottom:1px solid #73517e66;border-radius:0;font-size:13px;margin:16px 0 4px;padding:10px 2px}
.roster-filters{gap:18px;margin:4px 0 8px}.roster-filters button{padding:8px 0;border:0;border-bottom:2px solid transparent;border-radius:0;font-size:12px}
.roster-filters button[aria-pressed=true]{background:transparent;border-bottom-color:#dca1db;color:#f3d9f6}
.roster-row{border:0;padding:10px 6px;border-radius:8px;min-height:58px;gap:8px}.roster-row.is-selected{background:#b87ac519;border:0}.roster-row strong{font-size:13px}.roster-row .roster-symbol{font-size:21px}
.roster-list{max-height:calc(100dvh - 270px)}.roster-pagination:has(#previousRoster[hidden]):has(#moreRoster[hidden]){display:none}.roster-help{border:0;margin-top:6px}.roster-panel .roster-help summary{color:#b5a0c4}
.roster-drawer .roster-panel{border:0;padding:24px 20px;background:#1c1226}.roster-drawer .roster-list{max-height:calc(100dvh - 260px)}
.review-page[data-mode=mod] footer{padding-top:28px}
@media(min-width:1051px) and (max-width:1200px){.keeper-workspace{grid-template-columns:minmax(0,1fr) 230px;gap:24px}.review-page[data-mode=mod] .moderator-layout{grid-template-columns:minmax(0,1fr) 248px;gap:20px}.review-page[data-mode=mod] .claim-preview{max-width:248px}.review-page[data-mode=mod] .roster-panel{padding-left:18px}}
@media(max-width:1050px){.keeper-workspace{display:block}.review-page[data-mode=mod] main{max-width:900px;padding-inline:24px}.roster-toggle{background:transparent;border:0;border-radius:0;padding:6px 0;margin:0 0 12px;color:#ecc9ed}.roster-toggle:after{content:'↗';margin-left:4px}}
@media(max-width:600px){
 .player-page .card-toolbar{padding:0;margin-bottom:10px}.player-page .card-identity{font-size:13px;gap:5px 8px}.player-page .card-id{font-size:11px}
 .fresh-deck{font-size:12px;gap:3px 7px;margin:4px 0 18px}.deal-time:before{margin-right:7px}
 .install-invitation{display:grid;grid-template-columns:40px minmax(0,1fr);gap:10px 12px;padding:16px}.install-invitation>img{width:40px;height:40px;border-radius:10px}.install-copy strong{font-size:19px}.install-copy span{font-size:12px}.install-button{grid-column:2;justify-self:start;min-height:44px;padding:10px 16px}
 .review-page[data-mode=mod] main{padding-inline:16px}.keeper-topbar{grid-template-columns:minmax(0,1fr) 88px minmax(0,1fr);gap:4px}.keeper-topbar .coven{font-size:9px;letter-spacing:1px;white-space:normal;line-height:1.4}.keeper-help .text-button{font-size:10px;min-height:32px}.keeper-help .preview-label{font-size:8px;letter-spacing:.4px}.keeper-utilities{gap:0}
 .review-page[data-mode=mod] header{padding:14px 0 18px}.review-page[data-mode=mod] header h1{font-size:30px}.review-page[data-mode=mod] .claim-heading{padding:16px 8px;align-items:flex-start;gap:10px}.review-page[data-mode=mod] .claim-identity h2{font-size:17px}.review-page[data-mode=mod] .claim-time{font-size:9px}.review-page[data-mode=mod] .claim-time strong{font-size:10px}.review-page[data-mode=mod] .claim-badge{font-size:10px}
 .review-page[data-mode=mod] .moderator-layout{grid-template-columns:1fr;gap:20px;padding:4px 8px 20px}.review-page[data-mode=mod] .decision-title{font-size:22px;margin-bottom:16px}.review-page[data-mode=mod] .claim-preview{max-width:300px;justify-self:center}.review-page[data-mode=mod] .claim-links{margin-top:10px;grid-template-columns:1fr auto}.review-page[data-mode=mod] .queue-filters{gap:24px}.review-page[data-mode=mod] .claim-controls .review-actions button{font-size:13px}
}

/* A3-7: decision-first receipts and card-bound validation. */
.receipt-page header{padding:20px 0 24px}.receipt-page h1{font-size:32px}.receipt-page header .eyebrow{font-size:10px}.receipt-page #reviewStatus:empty{display:none}.receipt-sheet{margin:12px 0 32px}.receipt-decision{padding:24px;border-radius:14px;background:#f3ebf5;color:#2c1936}.receipt-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.receipt-identity{min-width:0}.receipt-identity h2{font:600 19px/1.3 Arial,sans-serif;margin:0 0 4px;overflow-wrap:anywhere}.receipt-card-id{font-size:11px;opacity:.75}.receipt-status{display:flex;align-items:center;justify-content:flex-end;gap:7px;font-size:12px;text-align:right;flex-shrink:0}.receipt-status .icon-button{width:44px;height:44px;min-width:44px;background:transparent;color:inherit;border:0;padding:11px}.receipt-status svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.7}.receipt-outcome{font:500 28px/1.2 Georgia,serif;margin:22px 0 12px;overflow-wrap:anywhere}.receipt-description{font-size:14px;line-height:1.55;margin:12px 0}.receipt-note{margin:16px 0 22px;overflow-wrap:anywhere}.receipt-note strong{font-size:12px;font-weight:600;opacity:.8}.receipt-note p{font-size:16px;white-space:pre-wrap;line-height:1.6;margin:7px 0 0}.receipt-decision .receipt-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 0}.receipt-decision button{font-size:13px;min-height:44px}.receipt-decision .quiet-button{background:transparent;color:inherit;border-color:currentColor}.receipt-decision .text-button{color:inherit;padding:10px 2px}.receipt-decision .primary-button{background:#40204c;border-color:#40204c;color:#fff0ff}.receipt-decision .share-message{font-size:12px;line-height:1.5;margin:12px 0 0}.receipt-decision .share-message:empty{display:none}.receipt-decision[data-state=winner]{background:#173a30;color:#d6ffed}.receipt-decision[data-state=winner] .primary-button{background:#b0f0d3;color:#13362b;border-color:#b0f0d3}.receipt-decision[data-state=declined]{background:#3b1c2b;color:#ffe1e9}.receipt-decision[data-state=expired],.receipt-decision[data-state=invalid],.receipt-decision[data-state=unknown]{background:#261b30;color:#e6d9ed}.receipt-sharing{font-size:13px}.receipt-sharing summary{cursor:pointer;padding:12px 2px;min-height:44px}.receipt-sharing[open]{flex-basis:100%}.receipt-sharing button{margin:4px 10px 0 0}.receipt-sheet>.claim-body{padding:16px 0}.receipt-sheet .receipt-details{max-width:560px;margin:12px auto}.receipt-page .review-board{margin:16px auto!important}.receipt-page .tile-label{font-size:11px}.receipt-page .board-caption{margin:9px 0}.receipt-page footer{margin-top:28px}.card-validation{display:flex;align-items:center;gap:9px;flex-basis:100%;font-size:16px;font-weight:600;line-height:1.4;margin:9px 0 2px;white-space:normal;overflow-wrap:anywhere;color:#e4cfef}.validation-symbol{font-size:20px;flex-shrink:0}.card-validation[data-state=winner]{color:#a5f3ce}.card-validation[data-state=declined],.card-validation[data-state=invalid]{color:#f4b0c4}.card-validation[data-state=expired]{color:#e9c58e}.card-validation[data-state=unknown]{color:#c6b5d1}#linkedMatch:not([hidden]){font-size:17px;padding:16px 0;border-bottom:1px solid var(--line)}.claim-heading:has(.card-validation){align-items:flex-start}.receipt-page .receipt-status .icon-button:focus-visible{outline:3px solid currentColor}.receipt-decision[data-state=declined] .receipt-description{color:#f2bfce}
@media(max-width:600px){.receipt-page main{padding:0 16px}.receipt-page h1{font-size:28px}.receipt-decision{padding:18px}.receipt-top{flex-wrap:wrap;gap:7px}.receipt-status{margin-left:auto;font-size:11px}.receipt-identity h2{font-size:18px}.receipt-outcome{font-size:25px;margin-top:17px}.receipt-decision .receipt-actions{gap:8px}.receipt-decision .receipt-actions>button:not(.text-button){flex:1 1 150px}.receipt-decision .receipt-actions>.text-button{flex-basis:100%;text-align:left}.receipt-page .tile{min-height:89px!important;padding:5px 2px}.receipt-page .tile-label{font-size:9px;line-height:1.15}.receipt-page .tile-art{width:32px!important;height:32px!important}.card-validation{font-size:14px}.receipt-note p{font-size:15px}}

/* A3-8: a compact logo lockup, install control and unpublished decision drafts. */
.player-page .player-topbar{justify-content:flex-end;min-height:16px}
.player-page .hero{padding:10px 0 2px;display:flex;flex-direction:column;align-items:center}
.player-page .hero h1{margin:10px 0 2px}
.player-page .logo-coven{display:inline-flex;justify-content:center;gap:12px;min-height:44px;font-size:10px;letter-spacing:2.4px;color:#e9d5ef;border-radius:8px;padding:5px 12px}
.player-page .logo-coven span{color:#ef77db;font-size:12px;letter-spacing:0}
.player-page .logo-coven:hover{color:#fff;background:#ffffff06}
.player-page .hint strong{color:#f6dcfa}
.player-page .install-invitation{display:flex;justify-content:center;padding:0;margin:0 auto;background:none;border:0;border-radius:0;width:fit-content;max-width:100%}
.player-page .install-button{display:inline-flex;gap:10px;min-height:46px;padding:7px 16px 7px 8px;border:1px solid #73517e;border-radius:14px;background:#302039;font-size:13px;color:#f3d6f4}
.player-page .install-button:hover{background:#45284f;border-color:#ae78b7}
.player-page .install-button img{width:30px;height:30px;border-radius:8px;flex-shrink:0}
.note-editor .published-note{margin:8px 0 14px;padding:0;color:#bfaacb;font-size:12px;overflow-wrap:anywhere}
.note-editor .published-note p{margin:5px 0;white-space:pre-wrap;font-size:13px}
.note-editor .published-note .text-button{padding-inline:0;font-size:12px}
.note-editor .draft-hint{font-size:12px;color:#c8b4d3;margin:0 0 8px}
.note-editor .confirm-decision{font-size:13px;margin:0 0 8px}
@media(max-width:600px){.player-page .hero{padding-top:9px}.player-page .hero .eyebrow{font-size:9px;letter-spacing:1.6px}.player-page .hero h1{margin-bottom:0}.player-page .logo-coven{font-size:10px}.player-page .install-button{width:auto;justify-self:center}}

/* The locked desk uses a single column until the Keeper unlocks the workspace. */
.review-page.desk-locked main{width:min(100%,28rem);margin-inline:auto;padding:clamp(24px,8vh,80px) 18px 24px;text-align:center}
.desk-locked .keeper-topbar{display:flex;justify-content:center;padding:0}
.desk-locked header{padding:14px 0 20px;text-align:center}
.desk-locked header h1{margin:4px 0}
.desk-locked header .intro{margin:4px 0 0}
.desk-locked #loginPanel{margin:0 auto;max-width:22rem;padding:18px 20px}
.desk-locked #loginForm{display:grid;gap:10px;text-align:center}
.desk-locked #moderatorKey{text-align:center;width:100%;min-width:0}
.desk-locked #loginError{margin:0;color:#ffc7ce}
.desk-locked footer{margin:24px auto 0;padding:0;text-align:center}
#keeperGuideDialog{width:min(40rem,calc(100% - 24px));max-height:82vh;overflow:auto}
#keeperGuideTitle{margin:0 2rem 16px 0}
#keeperGuideBody section+section{margin-top:22px}
#keeperGuideBody section h2{font-size:1.16rem}

/* Admin Desk */
.admin-page main{max-width:880px;margin:auto;padding:clamp(24px,5vw,60px) clamp(16px,4vw,42px);width:100%}
.admin-page.desk-locked main{max-width:25rem;text-align:center;padding-top:clamp(32px,9vh,84px)}
.admin-nav,.admin-section-title,.admin-state,.admin-decisions{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.desk-locked .admin-nav{justify-content:center}
.admin-header{padding:20px 0}.admin-header h1{font:clamp(32px,5vw,48px)/1.1 Georgia,serif;margin:6px 0}

.admin-page label,.admin-login{display:grid;gap:9px}.admin-login{max-width:21rem;margin:auto}
.admin-page input,.admin-page textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#1d1229;color:var(--ink);padding:10px 12px;font:inherit}
.admin-login input{text-align:center}.admin-page .primary-button,.admin-page .quiet-button{min-height:44px}
.admin-page footer{text-align:center;margin:36px auto 0}.admin-page #message,.admin-page #claimMessage,.admin-page #actionMessage{font-size:14px;color:var(--pink)}

/* The unlocked workspace shares one type scale and one content edge. */
.admin-page:not(.desk-locked){font:400 14px/1.45 system-ui,sans-serif}
.admin-page:not(.desk-locked) main{max-width:760px;padding:8px clamp(16px,4vw,32px) 24px}
.admin-page:not(.desk-locked) .admin-header,.admin-page:not(.desk-locked) .admin-nav .coven{display:none}
.admin-page:not(.desk-locked) .admin-nav{min-height:46px;border-bottom:1px solid var(--line);margin-bottom:18px}
.admin-nav .text-button{padding-inline:0}.desk-name{font-weight:600}
.admin-page:not(.desk-locked) h1{margin:0;font:650 22px/1.25 system-ui,sans-serif;letter-spacing:-.025em}
.admin-page:not(.desk-locked) h2,.admin-activity summary{font:600 15px/1.35 system-ui,sans-serif;margin:0}
.admin-page:not(.desk-locked) .primary-button,.admin-page:not(.desk-locked) .quiet-button{font:600 14px/1.25 system-ui,sans-serif;padding:8px 14px}
.admin-page:not(.desk-locked) footer{margin:24px auto 0}
#night,.admin-claim-heading p,.admin-state small{font-size:12px;color:var(--muted);margin:3px 0}
.admin-state{justify-content:flex-start;margin:12px 0;gap:10px}
.admin-state strong{font-size:13px;font-weight:550}
.admin-state strong:before{content:'';display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:7px;background:var(--pink)}
.admin-state strong[data-state=open]:before{background:var(--green)}
.admin-counts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:12px 0;border-block:1px solid var(--line);gap:8px}
.admin-counts dt{font-size:12px;color:var(--muted)}.admin-counts dd{font-size:20px;font-weight:600;margin:1px 0 0;font-variant-numeric:tabular-nums}
.admin-queue{padding:16px 0 10px;border-bottom:1px solid var(--line)}
.queue-row,.admin-claim-heading>div,.evidence-title,#cardDialog header{display:flex;align-items:center;gap:6px 12px;flex-wrap:wrap}
.queue-row,.evidence-title,#cardDialog header{justify-content:space-between}
.queue-row p{margin:6px 0;overflow-wrap:anywhere}
.admin-activity summary,.note-details summary,#lines summary{cursor:pointer;padding:12px 0}
.admin-activity ul{margin:0;padding:0;list-style:none;color:var(--muted);font-size:13px}.admin-activity li{padding:3px 0}
.admin-claim-heading{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:16px}
#player{min-width:0;overflow-wrap:anywhere}
.admin-page #claimStatus{font-size:12px;padding:2px 8px;border:1px solid var(--line);border-radius:20px;color:#edc8f3}
.admin-review-grid{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:start;gap:24px}
#adminBoardPreview .board{width:100%;aspect-ratio:1;grid-template-rows:repeat(5,minmax(0,1fr));gap:3px;margin:0}
#adminBoardPreview .tile{min-height:0;padding:0;border-radius:5px;align-items:center;justify-content:center}
#adminBoardPreview .tile-label{display:none}#adminBoardPreview .tile-art{position:static;width:74%;height:74%;margin:0}#adminBoardPreview .mark{width:12px;height:12px;font-size:9px;bottom:1px;right:1px}
.evidence-title{min-height:44px}.evidence-title button{padding-inline:4px}
#lines h3,#lines summary{font-size:12px;font-weight:600;color:var(--muted);margin:0}
#lines ol{padding-left:1.75rem;margin:5px 0 9px}
#lines li{padding:2px 0 2px 4px;overflow-wrap:anywhere}
#lines li::marker{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.note-details{border-top:1px solid var(--line);margin:10px 0 4px}
.note-details summary{font-size:13px;color:var(--muted);min-height:44px}
.note-details textarea{resize:vertical;margin-bottom:6px;font-size:16px}
.admin-decisions{justify-content:flex-start;margin-top:8px}
.admin-page #claimMessage:empty{display:none}
#cardDialog{max-height:90vh;max-height:90dvh;overflow:auto;padding:12px}
#cardDialog header{position:sticky;top:-12px;background:var(--panel);z-index:6;padding:0 4px}
#cardDialog .review-board{margin:8px auto}
@media(max-width:600px){
 .admin-review-grid{display:block}.admin-review-grid #adminBoardPreview{display:none}
 .admin-claim-heading{margin-bottom:4px}.admin-counts dt{font-size:11px}
 .admin-page:not(.desk-locked) .admin-nav{margin-bottom:12px}
 #cardDialog .tile{min-height:80px;padding:4px 1px}#cardDialog .tile-label{font-size:11px}
 #cardDialog .tile-art{width:32px;height:32px}
}
#gameDialog{width:min(26rem,calc(100% - 24px));max-height:85vh;overflow:auto}#gameDialog h2{margin:5px 0 14px}
#gameDialog label{margin:12px 0}.admin-action{display:block;width:100%;padding:12px 2px;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);font:inherit}.admin-action:hover{color:var(--pink)}
#gameDialog details summary{padding:12px 0;cursor:pointer;color:var(--muted)}#gameDialog .admin-decisions{justify-content:flex-end}

.player-actions,.players-dialog header,.players-dialog nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.players-dialog{width:min(32rem,calc(100% - 24px));max-height:85dvh;overflow:auto;padding:16px;color:var(--ink);font:14px/1.45 system-ui,sans-serif}
.players-dialog header,.players-dialog nav{justify-content:space-between}.players-dialog header h2{margin:0;font:600 20px/1.3 system-ui,sans-serif}
.players-dialog label,.players-dialog small{font:12px/1.4 system-ui,sans-serif;color:var(--muted)}
.players-dialog input{display:block;width:100%;min-height:44px;margin:6px 0 12px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font-size:16px}
.players-dialog ul{padding:0;margin:0;list-style:none}.players-dialog li{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding:4px 0;min-height:48px}
.players-dialog li div{min-width:0;overflow-wrap:anywhere}.players-dialog li small{display:block}.players-dialog li>small,.players-dialog li>button{flex:none}
.players-dialog h3{font-size:16px;overflow-wrap:anywhere}.players-dialog button{min-height:44px}.players-dialog p:empty{display:none}

.admin-page.desk-locked .admin-nav .player-actions{display:none}
#activeDock{display:none}
#activeCount{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
#nightsDialog{width:min(38rem,calc(100% - 24px));max-height:85dvh;overflow:auto;padding:16px;color:var(--ink);font:14px/1.45 system-ui,sans-serif}
#nightsDialog header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
#nightsDialog header h2{font-size:20px}#nightsDialog small{color:var(--muted);font-size:12px}
.night-row{border-top:1px solid var(--line)}.night-row>summary{padding:12px 0;cursor:pointer;min-height:48px}.night-row>summary small{display:block;margin-left:16px}
.night-round,.night-controls{margin:0 0 16px 16px}.night-round h3,.night-controls h3{font-size:14px;margin:0}
.night-round p{margin:2px 0 6px;color:var(--muted);font-size:13px}
.night-round summary,.night-controls summary{cursor:pointer;padding:6px 0}.night-round ul,.night-controls ul{margin:0;padding-left:17px}.night-round li,.night-controls li{padding:3px 0;overflow-wrap:anywhere}
#historyMessage:empty{display:none}
@media(min-width:1051px){
 .admin-page:not(.desk-locked) main{max-width:1080px}
 #adminWorkspace{display:grid;grid-template-columns:minmax(0,1fr) 272px;align-items:start;gap:32px}
 #activeDock{display:block;position:sticky;top:18px;margin:0;width:auto;max-height:none;overflow:visible;padding:0 0 0 20px;border-left:1px solid var(--line)}
 #activeDock #playersList{max-height:min(52dvh,480px);overflow:auto;scrollbar-width:thin}
 #activeDock #playersClose,.admin-page #openPlayers{display:none}
 #activeDock h2{font-size:16px}#activeDock header{margin-bottom:9px}
 .admin-page .admin-content{min-width:0}
}

.game .tile:disabled{opacity:1;cursor:default}

/* Keeper utilities sit apart from the claim queue. */
.keeper-help{flex-direction:row;align-items:center;gap:16px}
#roundTools{position:relative}
#roundTools summary{cursor:pointer;list-style:none;white-space:nowrap}
#roundTools summary::-webkit-details-marker{display:none}
#roundTools summary::after{content:'▾';font-size:.75em}
#roundTools .round-menu{position:absolute;right:0;top:100%;z-index:5;width:max-content;padding:6px;border:1px solid #62496e;border-radius:10px;background:#21152b;box-shadow:0 6px 18px #0005}
@media(max-width:620px){.keeper-help{flex-direction:column;align-items:flex-end;gap:2px}.keeper-help .text-button{min-height:32px}}
#restartDialog{width:min(27rem,calc(100% - 2rem))}#restartDialog label{display:block;margin-bottom:.4rem}
#restartDialog input{width:100%}#restartDialog .dialog-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
