.view-switcher{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:14px 20px;border-bottom:1px solid var(--line)}.view-tabs{display:flex;padding:3px;gap:3px;background:#eef3f5;border-radius:9px}.view-tabs button{display:flex;align-items:center;gap:7px;padding:9px 12px;border:0;background:transparent;font-size:14px;font-weight:600;border-radius:6px;color:var(--muted);min-height:40px}.view-tabs button.active{background:var(--navy);color:white;box-shadow:0 2px 5px #142c3a15}.view-tabs .icon{width:17px;height:17px}.view-switcher .tool-actions .btn{width:40px;height:40px}.room-mode>.board-tools,.room-mode>.board-tip,.room-mode>.board-table,.room-mode .board-legend{display:none}.room-play{padding:0 20px}.play-instructions{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:64px;padding:13px 0;font-size:14px;line-height:1.5;color:#4d6572}.play-instructions>span{display:flex;align-items:center;gap:9px}.play-instructions .icon{color:var(--teal);width:20px}.token-tray{border:1px solid #d6e1e4;background:#f6f9f9;border-radius:10px;overflow:hidden}.tray-tabs{display:flex;gap:5px;border-bottom:1px solid #dfe7e9;padding:7px 9px}.tray-tab{background:transparent;border:0;padding:8px 10px;border-radius:6px;display:flex;align-items:center;gap:7px;font-size:14px;font-weight:600;color:var(--muted);min-height:40px}.tray-tab .icon{width:17px;height:17px}.tray-tab.active{background:white;color:var(--teal);box-shadow:0 1px 5px #142c3a12}.tray-tab>span{font-size:12px;border-radius:4px;background:#e8eef0;padding:1px 6px}.tray-pieces{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:13px;min-height:119px;align-items:stretch}.piece{display:flex;align-items:center;justify-content:center;gap:8px;position:relative;border:1px solid #d6e1df;background:#fff;border-radius:8px;padding:10px;min-width:0;min-height:60px;font-size:14px;font-weight:600;line-height:1.25;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:box-shadow .15s,border-color .15s,transform .15s}.piece:not(:disabled):hover{border-color:#6b9f93;box-shadow:0 3px 8px #1b716810;transform:translateY(-2px)}.piece:active{cursor:grabbing}.piece .grip{font-size:16px;color:#879b9e;font-weight:400;flex-shrink:0}.tray-pieces .piece{flex-direction:column;gap:6px;text-align:center;padding:10px 5px}.tray-pieces .grip{position:absolute;right:5px;top:4px}.guest-portrait{display:block;width:48px;height:48px;border-radius:50%;background-image:url('./assets/guest-portraits.png');background-size:200% 200%;background-repeat:no-repeat;border:2px solid #fff;box-shadow:0 0 0 1px #becdc7;flex-shrink:0;background-color:#f6f2e8}.portrait-0{background-position:0 0}.portrait-1{background-position:100% 0}.portrait-2{background-position:0 100%}.portrait-3{background-position:100% 100%}.token-art{display:grid;place-items:center;width:40px;height:40px;background:#eff5f4;border-radius:9px;color:#356f67;flex-shrink:0}.token-art .icon{width:27px;height:27px}.time-art{background:#f5efe5;color:#8e662e}.tray-pieces .token-art{width:45px;height:45px}.piece.is-picked{border-color:var(--teal);box-shadow:0 0 0 3px #4c9d8930;background:#eaf5f0}.tray-complete{grid-column:1/-1;align-self:center;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;color:var(--teal);padding:15px;text-align:center;line-height:1.5}.floorplan-heading{display:flex;justify-content:space-between;align-items:center;padding:17px 0 9px;font-size:14px;font-weight:600}.floorplan-heading>span{display:flex;gap:7px;align-items:center}.floorplan-heading>span>.icon{width:18px;color:var(--muted)}.floorplan-heading .btn{font-size:12px;font-weight:500;min-height:36px}.floorplan-heading .btn .icon{width:15px}.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.room-card{border:1px solid #d2dfe1;background:#f7faf9;border-radius:12px;overflow:hidden;position:relative;box-shadow:0 3px 9px #142c3a04;--room-accent:#498d83;--room-tint:#e6f0ec}.room-tone-1{--room-accent:#a37e44;--room-tint:#f3eee3}.room-tone-2{--room-accent:#547693;--room-tint:#e8eef4}.room-tone-3{--room-accent:#896e91;--room-tint:#f0eaf3}.room-card-header{display:flex;align-items:center;gap:9px;border-bottom:1px solid #dce5e5;padding:13px 12px;background:var(--room-tint);border-top:3px solid var(--room-accent);min-height:68px}.room-card h3{font-family:'Libre Baskerville',Georgia,serif;font-size:16px;font-weight:400;line-height:1.4;flex:1;min-width:0;overflow-wrap:anywhere}.room-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:7px;background:#ffffff99;color:var(--room-accent);flex-shrink:0}.room-symbol .icon{width:22px;height:22px}.room-move{display:grid;place-items:center;align-self:stretch;border:0;color:#6f848a;background:transparent;padding:4px;width:26px;touch-action:none;cursor:grab;flex-shrink:0}.room-move:hover{background:#fff8;border-radius:6px}.room-move .icon{width:18px;height:18px}.room-slots{padding:12px;display:flex;flex-direction:column;gap:10px}.room-slot{min-width:0;border-radius:8px;transition:background .12s,box-shadow .12s}.slot-label{display:flex;justify-content:space-between;gap:4px;padding:0 0 5px 2px;font-size:12px;font-weight:600;color:#6b7e84}.empty-slot{border:1px dashed #bdced1;background:#fff9;width:100%;min-height:54px;border-radius:7px;display:flex;align-items:center;justify-content:flex-start;gap:8px;text-align:left;color:#73898d;font-size:13px;padding:9px 10px;line-height:1.3}.empty-slot .icon{width:20px;height:20px}.empty-slot .icon:last-child{margin-left:auto;width:14px}.empty-slot:hover{background:#fff;border-color:var(--room-accent);color:var(--teal)}.slot-0 .empty-slot{min-height:70px}.placed-piece{display:flex;align-items:center;gap:0;position:relative}.placed-piece .piece{flex:1;justify-content:flex-start;padding:8px 30px 8px 8px}.placed-piece .piece .grip{display:none}.placed-piece .piece>span:not(.guest-portrait):not(.token-art):not(.grip){overflow-wrap:anywhere}.remove-piece{position:absolute;right:3px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:#819395;display:grid;place-items:center;padding:7px;border-radius:4px;min-width:28px;min-height:36px}.remove-piece:hover{color:var(--red);background:var(--red-light)}.remove-piece .icon{width:14px;height:14px}.placed-piece .token-art{width:29px;height:29px}.placed-piece .token-art .icon{width:24px;height:24px}.placed-piece .piece-1{min-height:49px}.placed-piece .piece-2{min-height:54px}.placed-piece .piece-0{min-height:70px}.accepts-picked .empty-slot,.timeline-slot.accepts-picked{border-color:#39826c;background:#edf8f0;color:var(--teal)}.drop-hover{box-shadow:0 0 0 3px #238769!important;background:#e2f5e9!important}.drop-hover .empty-slot{background:#d7efdf;border-color:var(--teal)}.slot-error .piece{border-color:#c66556;background:#fff0ed}.wrong-label{font-size:11px;color:#a84134;display:inline-flex;align-items:center;gap:3px}.wrong-label:before{content:'!';border-radius:50%;background:#b34242;color:white;width:12px;height:12px;display:grid;place-items:center;font-size:9px}.departure-line{margin-top:22px}.timeline-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.timeline-heading h3{font-size:14px;display:flex;gap:7px;align-items:center}.timeline-heading .icon{width:17px;color:var(--teal)}.timeline-heading>span{font-size:12px;color:var(--muted)}.timeline-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:12px}.timeline-slot{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;border:1px dashed #bfced2;background:#f8fafb;border-radius:8px;min-height:122px;padding:12px 5px;font-size:12px;color:#687e88;position:relative}.timeline-slot strong{font-size:15px;color:var(--ink)}.timeline-slot>span:last-of-type{display:flex;align-items:center;flex-direction:column;gap:5px;line-height:1.3}.timeline-slot .icon{width:18px;height:18px}.timeline-slot small{font-size:12px;font-weight:600;color:var(--teal)}.timeline-slot:hover{border-color:var(--teal);background:#eff7f3}.timeline-slot.has-room{background:#edf5f2;border-style:solid;border-color:#bad6ca}.timeline-dot{display:block;width:7px;height:7px;border:2px solid #72a494;border-radius:50%;background:#fff}.room-note{font-size:12px;line-height:1.6;color:var(--muted);display:flex;align-items:flex-start;gap:7px;margin:16px 0 0}.room-note .icon{width:15px;height:15px;margin-top:2px}.room-mode .board-bottom{padding-top:16px}.drag-ghost{position:fixed;z-index:10000;left:0;top:0;pointer-events:none;display:flex;align-items:center;gap:10px;width:150px;min-height:65px;background:#fff;border:2px solid #3e8877;border-radius:10px;padding:10px;color:var(--ink);box-shadow:0 12px 35px #142c3a30;font:600 14px 'DM Sans',sans-serif;text-align:left}.drag-ghost .grip{display:none}.dragging-piece,.dragging-piece *{cursor:grabbing!important}.timeline-room-picker{display:grid;grid-template-columns:1fr 1fr;gap:10px}.board-column{min-width:0}
@media(min-width:1251px){.game-layout{grid-template-columns:minmax(280px,.78fr) minmax(580px,1.55fr)}}
@media(min-width:1700px){.game-layout{grid-template-columns:350px minmax(650px,850px)}}
@media(min-width:981px) and (max-width:1250px){.game-layout{grid-template-columns:minmax(245px,.7fr) minmax(440px,1.3fr)}.app-layout{grid-template-columns:185px minmax(0,1fr)}.content{padding:18px}.room-play{padding-inline:14px}.view-switcher{padding-inline:14px}.room-grid{gap:10px}.room-card-header{padding-inline:8px;gap:6px}.room-card h3{font-size:14px}.room-slots{padding:9px}.placed-piece .guest-portrait{width:36px;height:36px}}
@media(min-width:701px) and (max-width:980px){.game-layout{grid-template-columns:1fr}.clue-column{display:grid;grid-template-columns:1fr 1fr;gap:12px 20px}.clue-column .briefing{grid-column:1;grid-row:1/5}.clue-column .section-heading,.clue-column .clue-list,.clue-column .clue-note,.clue-column .hint-button,.clue-column .hint-note{grid-column:2}.clue-column .ad-side{display:none}.room-play{padding-inline:24px}.board-card{max-width:850px;margin-inline:auto}}
@media(max-width:700px){.room-play{padding:0 12px}.view-switcher{padding:10px 12px;gap:5px}.view-tabs button{font-size:12px;padding:8px}.view-tabs button .icon{width:15px;height:15px}.view-switcher .tool-actions .btn{min-width:32px;width:32px;height:38px}.play-instructions{font-size:13px;min-height:67px}.play-instructions>span{gap:7px}.tray-tabs{padding:6px;gap:1px;justify-content:space-between}.tray-tab{font-size:13px;padding:6px;gap:5px}.tray-tab>span{font-size:11px}.tray-pieces{gap:6px;padding:9px;min-height:110px}.tray-pieces .piece{font-size:12px;padding:8px 3px}.tray-pieces .guest-portrait{width:41px;height:41px}.tray-pieces .token-art{width:35px;height:35px}.tray-pieces .token-art .icon{width:25px;height:25px}.room-grid{gap:10px}.room-card-header{padding:9px 8px;gap:5px;min-height:62px}.room-card h3{font-size:14px}.room-symbol{width:25px;height:27px}.room-symbol .icon{width:18px;height:18px}.room-move{padding:0;width:18px}.room-move .icon{width:16px}.room-slots{padding:9px 8px;gap:10px}.empty-slot{font-size:12px;min-height:67px;gap:5px;padding:8px 6px;flex-wrap:wrap}.empty-slot>span{flex:1;min-width:50px}.empty-slot>.icon:last-child{display:none}.slot-0 .empty-slot{min-height:84px}.placed-piece .piece{font-size:13px;padding:8px 23px 8px 6px;gap:6px;min-height:67px}.placed-piece .piece-0{flex-direction:column;align-items:flex-start;min-height:84px;gap:4px}.placed-piece .guest-portrait{width:40px;height:40px}.placed-piece .token-art{width:23px;height:25px}.placed-piece .token-art .icon{width:22px;height:22px}.remove-piece{right:1px;padding:5px;min-width:25px}.timeline-heading{align-items:flex-start;flex-direction:column;gap:6px}.timeline-slots{gap:6px}.timeline-slot{font-size:11px;min-height:129px}.timeline-slot strong{font-size:14px}.timeline-slot small{font-size:11px}.floorplan-heading{font-size:14px}.floorplan-heading .btn{font-size:12px;padding-inline:4px}.room-note{font-size:12px}.slot-label{font-size:12px}.wrong-label{font-size:10px}.wrong-label:before{display:none}.room-card{border-radius:9px}}
@media(max-width:360px){.content{padding-inline:10px}.room-play{padding-inline:8px}.view-switcher{padding-inline:8px}.view-tabs button{padding-inline:6px}.view-tabs .icon{display:none}.tray-tab{font-size:12px;gap:4px}.tray-tab .icon{width:15px}.room-grid{gap:7px}.room-symbol{display:none}.room-card-header{padding-inline:8px}.room-slots{padding-inline:6px}.tray-pieces .piece{font-size:11px}.room-card h3{font-size:13px}}
