*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#234a65,#07172d 70%);color:#f4e8c7;font:16px system-ui}main{max-width:670px;margin:35px auto;padding:16px}header{text-align:center}h1,h2{font-family:Georgia,serif;color:#e8c47a}h1{font-size:clamp(36px,8vw,58px)}small{letter-spacing:2px;color:#d8b46b}section{background:linear-gradient(135deg,#12334f,#0b2037);border:2px solid #b38a4b;border-radius:18px;padding:25px;margin:22px 0;box-shadow:0 12px 35px #0006}input,select{display:block;width:100%;padding:14px;margin:12px 0 20px;background:#07182b;color:white;border:1px solid #9e804d;border-radius:9px;font:inherit}label{display:block;margin-top:16px}button{background:linear-gradient(#e9c87d,#b48a40);border:0;border-radius:9px;color:#122137;font-weight:700;padding:13px 20px;margin:6px;cursor:pointer}button:hover{filter:brightness(1.12)}#found{font-size:65px;color:#e9c87d}#seats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px;margin:22px 0}.seat{background:#1b3853;border:1px solid #9c7b45;border-radius:9px;padding:20px 7px;text-align:center}.seat.filled{background:#165042;border-color:#60c4a0}#roster div{padding:12px;border-bottom:1px solid #60738a}#message{color:#f4c878;text-align:center}footer{text-align:center;color:#a2aebe;font-size:12px}
/* Interface compacte de jeu : plateau et commandes, puis cartes dans un onglet séparé */
body:has(#game:not([hidden])) main{max-width:1480px;width:calc(100% - 24px);margin:8px auto;padding:8px}
body:has(#game:not([hidden])) header{display:none}
#game{margin:0;padding:12px;min-height:calc(100dvh - 30px)}
#game>h2{display:none}
.game-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.game-tabs button{margin:0;padding:10px 18px;background:#1b3853;color:#f4e8c7;border:1px solid #a98850}
.game-tabs button.active{background:#e9c87d;color:#102238}
.game-pane[hidden]{display:none!important}
#game-pane-board{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:8px 16px;align-content:start}
#game-pane-board #board-stage{grid-column:1;grid-row:1 / span 14;align-self:start;max-height:calc(100dvh - 105px);width:100%;margin:0}
#game-pane-board #board-stage img{max-height:calc(100dvh - 105px);object-fit:contain}
#game-pane-board> :not(#board-stage){grid-column:2;margin:0}
#game-pane-board .board-note{display:none}
#game-pane-board #game-players{display:flex;flex-wrap:wrap;gap:4px}
#game-pane-board #game-players .seat{padding:6px 8px;font-size:12px}
#game-pane-board #dice-visual{display:flex;justify-content:center;gap:12px}
#game-pane-board #game-status{font-weight:700}
#game-pane-board #event-status{font-size:12px}
#game-pane-board #direction-choices button,#game-pane-board #clue-target-choices button{padding:8px 12px}
#game-pane-board #location-actions{padding:8px;border:1px solid #a98850;border-radius:10px}
#game-pane-board #location-actions h3{margin:4px}
#game-pane-cards{max-height:calc(100dvh - 115px);overflow:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
#game-pane-cards #deduction-panel{grid-column:1}
#game-pane-cards #cards-panel{grid-column:2}
#game-pane-cards #cards-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
#game-pane-cards #cards-list img{max-width:100%;height:auto}
#game-pane-cards #private-hand{line-height:1.9}
#game-pane-cards #visit-progress{grid-column:1/-1}
#game-pane-cards #deduction-panel select{margin:5px 0 10px;padding:9px}
#game-pane-cards #deduction-panel button{padding:9px 12px}
@media(max-width:900px){#game-pane-board{grid-template-columns:1fr}#game-pane-board #board-stage{grid-column:1;grid-row:auto;max-height:55dvh}#game-pane-board #board-stage img{max-height:55dvh}#game-pane-board> :not(#board-stage){grid-column:1}#game-pane-cards{grid-template-columns:1fr}#game-pane-cards #deduction-panel,#game-pane-cards #cards-panel{grid-column:1}}

#game{max-width:none}
#game-pane-board #location-actions:not([hidden]),#game-pane-board #direction-choices:not(:empty){position:static;top:auto;left:auto;transform:none;max-width:none;box-shadow:none;z-index:auto}
#game-pane-board .die{width:48px;height:48px;font-size:42px}
body.tv-only #game-pane-board{display:block}
body.tv-only #game-pane-board>*:not(#board-stage),body.tv-only .game-tabs{display:none!important}
body.tv-only #game-pane-board #board-stage{width:min(100vw,calc(100dvh * 1.6));max-height:100dvh;margin:auto}
body.tv-only #game-pane-board #board-stage img{max-height:100dvh}

#game-pane-board #board-stage{width:fit-content;max-width:100%;justify-self:center}
#game-pane-board #board-stage img{width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 105px);object-fit:contain}
#game-pane-board #clue-target-choices:not(:empty),#game-pane-board #event-show-choices:not(:empty){border:1px solid #d4ad66;border-radius:10px;padding:10px;background:#16354c}

#game-pane-cards #deduction-panel{min-width:0}
#game-pane-cards #private-hand{display:block}
#private-hand .hand-count{font-size:14px;font-weight:700;color:#f5d38d}
#private-hand h4{margin:16px 0 8px;color:#e9c87d}
.private-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap:10px}
.private-card{aspect-ratio:3/4;min-height:170px;border:3px double #dfba71;border-radius:12px;padding:12px 8px;display:flex;flex-direction:column;justify-content:space-between;align-items:center;text-align:center;box-shadow:inset 0 0 0 3px #ffffff15,0 7px 14px #0006;background:radial-gradient(ellipse at top,#476d88,#142b43);color:#fff3d2}
.private-card strong{font-family:Georgia,serif;font-size:clamp(14px,1.4vw,19px);overflow-wrap:anywhere}
.private-card small{font-size:10px;letter-spacing:1.5px;color:#ffdd8e}
.private-card span{font-size:10px;letter-spacing:1px;opacity:.75}
.private-card-personnage{background:radial-gradient(ellipse at top,#745b8b,#2d2048)}
.private-card-lieu{background:radial-gradient(ellipse at top,#397c75,#103e41)}
.private-card-document{background:radial-gradient(ellipse at top,#9a7445,#47301e)}
@media(max-width:900px){.private-card-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}

#resume-panel{border:1px solid #d5b16d;border-radius:12px;background:#1c3b52;padding:14px;margin:12px 0 22px}
#resume-panel h3{margin:0 0 6px;color:#f1d18d}
.v3-themes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
.v3-theme{border:1px solid #b28a51;border-radius:12px;overflow:hidden;background:#102638;text-align:center}
.v3-theme img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.v3-theme strong{display:block;padding:8px}
.v3-note{font-size:13px;color:#b9c8d6;line-height:1.5}
#solo-config[hidden],#online-config[hidden]{display:none}
@media(max-width:550px){.v3-themes{grid-template-columns:1fr}}

.v3-theme{appearance:none;display:block;width:100%;padding:0;margin:0;cursor:pointer;background:#102638;color:#f4e8c7;font:inherit;border:2px solid #b28a51;transition:transform .18s,border-color .18s,box-shadow .18s}
.v3-theme:hover{transform:translateY(-3px);filter:brightness(1.12)}
.v3-theme.selected{border:3px solid #f8d37d;box-shadow:0 0 0 3px #e9c87d55,0 0 24px #e9c87d55}
.v3-theme.selected strong::before{content:'✓ ';color:#ffe59b}
.v3-theme:focus-visible{outline:3px solid white;outline-offset:3px}

#game-pane-board #direction-choices:not(:empty){display:flex;flex-wrap:wrap;gap:10px;align-items:stretch}
#game-pane-board #direction-choices>strong{flex-basis:100%;font-family:Georgia,serif;color:#ffe09c}
#game-pane-board #direction-choices .v3-direction-card{flex:1 1 145px;min-height:120px;max-width:240px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;border:2px solid #cfa65c;border-radius:12px;background:linear-gradient(145deg,#1a3d5b,#0b1e35);color:#ffe5a9;text-align:center}
#game-pane-board #direction-choices .v3-direction-card:hover{border-color:#ffe6a6;transform:translateY(-2px)}
.v3-direction-icon{font-size:30px}.v3-direction-card small{font-size:12px;color:#f5e5c3}
#hypothesis-panel:not([hidden]){border:2px solid #d5b16d;border-radius:12px;padding:14px;background:#1a3953;margin:12px 0}
#hypothesis-panel label{font-weight:700}

.clue-modal[hidden]{display:none!important}
.clue-modal{position:fixed;inset:0;z-index:2000;background:#000b;display:grid;place-items:center;padding:16px}
.clue-modal-content{width:min(470px,96vw);max-height:94dvh;overflow:auto;text-align:center;border:3px solid #d5b16d;border-radius:18px;background:linear-gradient(#163955,#091a2d);padding:14px;box-shadow:0 15px 60px #000c}
.clue-modal-content h2{margin:2px 0 8px}
#clue-modal-image{display:block;margin:auto;max-width:100%;max-height:58dvh;object-fit:contain;border-radius:10px}
#clue-modal-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
#clue-modal-message{font-weight:700}
.private-card-art{display:block;max-width:100%;max-height:150px;object-fit:contain;border-radius:6px}
.private-card:has(.private-card-art){aspect-ratio:auto;min-height:220px}

.clue-card-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:45dvh;overflow-y:auto;width:100%;padding:4px}
.clue-card-picker button{display:flex;align-items:center;gap:9px;text-align:left;margin:0;padding:8px;background:#173e59;color:#fff3d2;border:1px solid #cba45d;min-height:66px}
.clue-card-picker button img{width:43px;height:58px;object-fit:cover;border-radius:4px;flex-shrink:0}
.clue-card-picker button strong{font-size:13px;overflow-wrap:anywhere}
.clue-card-picker button:hover{background:#285878}

.clue-revealed-art{display:block;margin:8px auto;max-width:190px;max-height:250px;object-fit:contain;border:2px solid #e5be71;border-radius:9px;box-shadow:0 7px 22px #0008}
#clue-modal-close{font-size:14px}

/* Private invitation dialog */
.cdl-room-code-modal[hidden]{display:none!important}.cdl-room-code-modal{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;padding:20px}.cdl-room-code-backdrop{position:absolute;inset:0;background:rgba(6,15,27,.78);backdrop-filter:blur(7px)}.cdl-room-code-dialog{position:relative;width:min(100%,440px);padding:30px 28px;border:1px solid #cda85f;border-radius:19px;background:linear-gradient(150deg,#1a3547,#0c1b2c);box-shadow:0 28px 90px #000a;color:#fff4dc;display:flex;flex-direction:column;gap:13px}.cdl-room-code-icon{font-size:36px;text-align:center}.cdl-room-code-dialog h2{text-align:center;font-size:24px;margin:0}.cdl-room-code-dialog #cdl-room-code-name{text-align:center;color:#d8b874;margin:0 0 8px;font-weight:600}.cdl-room-code-dialog label{font-size:14px;font-weight:600}.cdl-room-code-dialog input{box-sizing:border-box;width:100%;font-size:22px;letter-spacing:.16em;text-align:center;text-transform:uppercase;padding:15px 10px;border-radius:10px;border:1px solid #a88b57;background:#071a29;color:#fff;outline:none}.cdl-room-code-dialog input:focus{border-color:#f3ce7c;box-shadow:0 0 0 3px #d8b87444}.cdl-room-code-dialog #cdl-room-code-error{min-height:19px;color:#ffb5a9;font-size:13px;margin:0}.cdl-room-code-actions{display:flex;gap:12px}.cdl-room-code-actions button{flex:1;min-width:0;padding:12px 8px}.cdl-room-code-actions #cdl-room-code-submit{background:#d8ad61;color:#172332;font-weight:700}.cdl-room-code-x{position:absolute;right:12px;top:10px;border:0;background:transparent;color:#fff;font-size:26px;cursor:pointer}.cdl-room-modal-open{overflow:hidden}@media(max-width:480px){.cdl-room-code-dialog{padding:25px 18px}.cdl-room-code-actions{flex-direction:column}}

/* Private lobby seats */
.cdl-private-lobby{margin:15px 0;padding:18px;border-radius:16px;border:1px solid #c5a05b;background:linear-gradient(145deg,#122f42,#091c2d);color:#f5e7c9}.cdl-private-lobby[hidden]{display:none!important}.cdl-private-lobby-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.cdl-private-lobby-head h3{margin:4px 0 12px;color:#ffe5aa}.cdl-private-lobby-head small{letter-spacing:.12em;color:#d7b875}.cdl-private-lobby-head>span{font-weight:700;color:#d7b875}.cdl-lobby-invite{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:12px;border:1px dashed #c6a56d;border-radius:10px;margin-bottom:12px}.cdl-lobby-invite strong{letter-spacing:.12em}.cdl-lobby-invite button{margin:0;padding:8px 12px}.cdl-lobby-seats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.cdl-lobby-seat{display:flex;align-items:center;gap:9px;padding:11px;border-radius:9px;background:#183d52;min-width:0}.cdl-lobby-seat>span:nth-child(2){flex:1;overflow-wrap:anywhere}.cdl-lobby-seat small{color:#d7b875}.cdl-lobby-seat.vacant{opacity:.65;border:1px dashed #7e91a1}.cdl-lobby-seat-icon{color:#e4c37c}.cdl-private-lobby #cdl-lobby-hint{font-size:13px;margin:12px 0 0;color:#d4dfdf}@media(max-width:560px){.cdl-lobby-seats{grid-template-columns:1fr}}
