/* Landscape tabletop. The landing screen keeps its existing layout. */
body:has(#room:not([hidden])){background:radial-gradient(ellipse at 45% 35%,#35624b 0,#204a3c 50%,#123329 100%);background-attachment:fixed}
body:has(#room:not([hidden])) header{max-width:none;padding:10px 22px;border-color:#ffffff15;height:52px}
body:has(#room:not([hidden])) .brand{font-size:21px;color:#f3e4ba}
body:has(#room:not([hidden])) .brand small{display:none}
body:has(#room:not([hidden])) header>.pill{color:#d7e1cf;border-color:#66826b}
body:has(#room:not([hidden])) main{max-width:none;padding:0 14px 10px}
body:has(#room:not([hidden])) .intro,body:has(#room:not([hidden])) footer{display:none}
body:has(#room:not([hidden])) #notice{font-size:10px;color:#e1d8b9;min-height:0;padding:0 4px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.room-bar{margin:5px 0 8px;color:#eddec0;min-height:32px}.room-bar .eyebrow{display:none}.room-bar h2{font-size:14px;margin:0}.room-buttons button{font-size:10px;padding:6px 10px;background:#ffffff0c;color:#e6e4cd;border-color:#6b8065}
.layout{grid-template-columns:minmax(0,1fr) 224px;gap:12px;align-items:start}.table-main{min-width:0}.table-main>.card{margin-bottom:10px}
.board-card{padding:12px;background:linear-gradient(135deg,#a27b48,#674d2c);border:1px solid #c1a26e;border-radius:18px;box-shadow:0 10px 30px #071d1840,inset 0 0 0 3px #b7945b66}.board-head{display:none}.table-scroll-area{overflow:visible}
#board.board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));gap:7px;height:clamp(430px,calc(100dvh - 370px),760px);padding:0;border-radius:10px;background:#433d2770;position:relative}
#board>.cell{min-height:0;height:100%;padding:18px 6px 7px;border-radius:8px;gap:2px;background:linear-gradient(145deg,#f3e0b4,#d6bb83);border:1px solid #f3e3b766;box-shadow:inset 0 1px 0 #fff7,0 2px 4px #2e281a40}
#board>.cell:nth-child(even){background:linear-gradient(145deg,#edd7a9,#cdb27b)}#board>.cell .num{top:5px;left:7px;font-size:10px;color:#795f31}#board>.cell.finish{border:2px dashed #506a3a}
#board .camel{height:17px;min-height:17px;padding:0 2px;font-size:10px;line-height:14px;max-width:90px;width:80%;border-bottom-width:2px;border-radius:5px 10px 4px 4px}
.board-center{grid-column:2/6;grid-row:2/4;min-width:0;min-height:0;padding:9px 13px;display:flex;flex-direction:column;gap:5px;background:radial-gradient(ellipse at 40% 20%,#4a7756,#31563d);border:1px solid #c0bd8050;border-radius:11px;box-shadow:inset 0 0 30px #102e2630;color:#eae7cf;overflow:auto}
.center-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.center-header strong{font-size:12px;line-height:1.5}.center-header button{padding:8px 13px;background:#dfc17f;color:#3d3d24;border:1px solid #e8d49e;font-size:12px;white-space:nowrap;box-shadow:0 3px 0 #233e2c}
.board-center .dice{padding:0}.board-center .dice-tracker{padding:3px 0}.board-center .dice-tracker h3{font-size:10px;margin:0 0 6px;color:#d6d9b7}.board-center .dice-label{font-size:9px;color:#b9caa8;margin-bottom:5px}.board-center .dice-results{gap:8px;min-height:47px}.board-center .dice-result{min-width:53px;gap:2px}.board-center .dice-face{width:32px;height:32px;font-size:21px;border-radius:8px}.board-center .dice-result strong{font-size:9px}.board-center .dice-result small{font-size:8px;color:#b8c9a9;max-width:90px}.board-center .dice-waiting{margin-top:6px;padding-top:5px;border-color:#9aac782b;gap:5px}.board-center .waiting-die{font-size:8px;padding:3px 5px}.board-center .muted{color:#b9caa8;font-size:10px}
.finish-piles{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:auto}.prediction-pile{min-width:0;padding:6px;border:1px dashed #c3bd84;border-radius:9px;background:#173a2c44;transition:.15s}.prediction-pile.drop-ready{background:#e0bf6e44;border:2px solid #f5dc93;box-shadow:0 0 18px #f2d98644}.pile-drop-button{display:block;width:100%;padding:3px;font-size:11px;color:#f0dfaf;background:transparent;border:0;box-shadow:none}.pile-backs{display:flex;gap:5px;overflow:auto;align-items:center;min-height:46px;max-height:72px;padding:3px 1px}.empty-pile{font-size:9px;color:#aebb95;text-align:center;width:100%}
.prediction-back{flex:0 0 45px;min-width:0;display:grid;gap:3px;justify-items:center;color:#e4dec1}.card-back-symbol{width:30px;height:35px;border:2px solid #c8b77c;outline:1px solid #162f25;border-radius:5px;display:grid;place-items:center;color:#d5bf83;background:repeating-linear-gradient(45deg,#263e35 0 3px,#314b3c 3px 6px);font-size:20px;box-shadow:1px 2px 0 #0a241a66}.prediction-back small{font-size:8px;max-width:45px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-center .finish-zone{padding:0;margin:0;border:0;font-size:8px;gap:4px;min-height:10px;color:#b8c5a0}.board-center .finish-zone .die{font-size:8px;padding:2px 4px}.board-legend{font-size:9px;color:#e4d5ae;margin:6px 2px 0}
.pile-drop-button:disabled{opacity:1;cursor:default}.leg-ticket.red{background:#c95c48}.leg-ticket.yellow{background:#d4a32d}.leg-ticket.green{background:#528c64}.leg-ticket.blue{background:#5689b0}.leg-ticket.purple{background:#9276aa}.leg-ticket:disabled{opacity:.55}
@media(max-height:900px){#board .camel{height:14px;min-height:14px;line-height:11px;font-size:9px}#board>.cell{gap:1px;padding-bottom:5px}}
#actions{padding:10px 13px;background:#f5ecd6;border:1px solid #c1ab7f;border-radius:12px;box-shadow:0 6px 16px #071d1825}#actions .dock-caption{font-size:11px;margin:0 0 7px;color:#547044}.action-dock{display:grid;grid-template-columns:1fr .95fr 1.35fr;gap:14px}.action-dock>section{min-width:0}.action-dock h3{font-size:10px!important;letter-spacing:1px;margin:0 0 8px!important;color:#8a7448}.action-dock .action-row{gap:5px}.leg-ticket{height:48px;flex:1;min-width:0;padding:5px 2px;border:1px solid #fff9;border-radius:6px;font-size:11px;box-shadow:0 3px 0 #9e865c;color:white}.leg-ticket.yellow{color:#51421d}.dock-spectator .action-row{display:grid;grid-template-columns:1fr 1fr;gap:5px}.dock-spectator select{font-size:10px;padding:6px;width:100%}.dock-spectator button{grid-column:1/-1;font-size:10px;padding:6px;background:#e4e7d0}.finish-hand{display:flex;gap:7px;align-items:end}.finish-hand-card{width:55px;height:64px;flex:1;max-width:72px;padding:5px;border-radius:6px;border:2px solid #fff8;box-shadow:0 3px 0 #8e805a;display:grid;justify-items:center;gap:0;color:white;touch-action:none;cursor:grab;transition:transform .15s,box-shadow .15s}.finish-hand-card.yellow{color:#55431e}.finish-hand-card .hand-camel{font-size:18px}.finish-hand-card strong{font-size:11px}.finish-hand-card small{font-size:8px}.finish-hand-card.selected{transform:translateY(-7px);outline:2px solid #8a6d33;box-shadow:0 5px 12px #77613a55}.finish-hand-card.dragging{opacity:.4}.finish-hand-card.card-spent{filter:grayscale(1);opacity:.25;box-shadow:none}.hand-hint{display:block;font-size:9px;color:#8c876e;margin-top:7px}.private-bets{font-size:9px;margin:5px 0 0;color:#8b8165;line-height:1.4}.touch-card-ghost{position:fixed;z-index:2000;pointer-events:none;transform:translate(-50%,-70%);padding:18px;border:2px solid #fff8;border-radius:10px;color:white;font-size:14px;box-shadow:0 8px 24px #0005}
.layout>aside{display:block;min-width:0;max-height:calc(100dvh - 115px);overflow:auto;scrollbar-width:thin}.layout>aside>.card{background:#f7efddeF;padding:14px;border-color:#d1bc8e;border-radius:12px;margin-bottom:10px}.layout>aside h3{font-size:12px;margin-bottom:8px}.player{padding:9px 0}.player.current{margin:0 -6px;padding:9px 6px;background:#dfe8cc}.player-line{font-size:11px;gap:4px}.player-line strong{overflow-wrap:anywhere}.player small{font-size:9px;margin-top:4px}.decision-badge{font-size:9px;margin:6px 0 0;padding:4px 6px}#start,#add-bot{font-size:11px;padding:9px;margin-top:9px}#room-hint{font-size:9px;line-height:1.5;margin-bottom:0}.table-diagnostics{background:#f4edda;padding:12px;border-radius:10px;font-size:10px}.table-diagnostics>summary{font-size:10px;color:#766a4c}.table-diagnostics .card{padding:9px;background:transparent;box-shadow:none;border:0;margin:6px 0}.table-diagnostics .architecture,.table-diagnostics .rules{font-size:9px}.table-diagnostics .logs ol{max-height:180px}.table-diagnostics p{font-size:10px}.table-diagnostics .rules{margin:0}.table-main>#leg-settlement,.table-main>.logs{display:none}
@media(min-width:1600px){.layout{grid-template-columns:minmax(0,1fr) 260px}.board-center{padding:15px 24px}.board-center .dice-face{width:42px;height:42px}.finish-hand-card{height:78px}.action-dock{gap:24px}#actions{padding:13px 20px}}
@media(max-width:950px){.layout{grid-template-columns:minmax(0,1fr) 185px;gap:8px}.board-card{padding:8px}.board-center{padding:6px;gap:3px}.center-header strong{font-size:10px}.center-header button{font-size:10px;padding:6px}.board-center .dice-result{min-width:40px}.board-center .dice-results{gap:5px}.board-center .dice-face{width:26px;height:26px;font-size:17px}.board-center .dice-result strong{font-size:8px}.board-center .dice-result small{font-size:7px}.action-dock{gap:8px;grid-template-columns:1fr .9fr 1.2fr}.finish-hand{gap:4px}.finish-hand-card{height:58px}.room-bar{flex-direction:row;align-items:center}.layout>aside>.card{padding:10px}}
@media(max-width:650px) and (orientation:portrait){body:has(#room:not([hidden])) header{padding:9px 12px}body:has(#room:not([hidden])) main{padding:0 8px 8px}.layout{display:flex;flex-direction:column}.table-main{width:100%}.table-scroll-area{overflow-x:auto;padding-bottom:5px}#board.board{width:720px;min-width:720px;height:480px}.board-center{padding:10px}.center-header strong{font-size:11px}.board-center .dice-face{width:30px;height:30px}.action-dock{grid-template-columns:1fr 1fr}.dock-hand{grid-column:1/-1}.finish-hand-card{max-width:65px;height:69px}.layout>aside{width:100%;max-height:none;display:block}#players{display:grid;grid-template-columns:1fr 1fr;gap:8px}.player{border:1px solid #dfd8c4;border-radius:8px;padding:8px}.player.current{margin:0;padding:8px}.room-buttons{gap:4px}.room-buttons button{font-size:8px;padding:5px 7px}.room-bar h2{font-size:11px}}

/* One deck language for all three action areas. */
.action-dock{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.action-dock>section{padding:10px 12px 9px;background:linear-gradient(145deg,#fffcf3,#e9ddbf);border:1px solid #d9c69d;border-radius:10px;box-shadow:inset 0 1px 0 #fff9}.action-dock h3{margin-bottom:9px!important;color:#8f7748}.tabletop-card,.leg-ticket,.finish-hand-card{height:85px;border-radius:9px;border:2px solid #fff9;box-shadow:0 3px 0 #927c4a55,inset 0 0 0 1px #ffffff33;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:2px;padding:6px 3px;touch-action:none}.card-category{font-size:8px!important;font-weight:500;letter-spacing:1px;opacity:.85}.tabletop-card .hand-camel{font-size:20px;line-height:22px}.tabletop-card>strong{font-size:12px;line-height:15px}.tabletop-card>small:last-child{font-size:8px}.finish-hand-card{width:55px;max-width:none}.finish-hand{gap:5px}.leg-ticket{padding:6px 3px;font-size:11px;min-width:0}.finish-hand-card:disabled:not(.card-spent),.leg-ticket:disabled{opacity:.6}.hand-hint{font-size:9px;line-height:1.5;margin-top:8px}.private-bets{margin-top:8px}.spectator-hand{display:flex;gap:13px;align-items:center;min-height:85px}.spectator-card{width:90px;min-width:90px;color:#6f552c;cursor:grab;background:linear-gradient(150deg,#fff7d9,#ddc58b);border-color:#fff4d4}.spectator-card.spectator-boo{background:linear-gradient(150deg,#ecedf6,#b6bdd2);color:#4b557b;border-color:#f5f4ff}.spectator-symbol{font-size:28px;line-height:28px}.spectator-card.selected{outline:2px solid #4f8058;transform:translateY(-3px)}.spectator-card.dragging{opacity:.4}.spectator-controls{display:grid;gap:8px;min-width:0}.spectator-controls .flip-spectator{padding:8px 10px;font-size:11px;background:#f9f3e3;color:#6b6746;border:1px solid #c9b68d;border-radius:7px;white-space:nowrap}.spectator-controls>small{font-size:9px;line-height:1.6;color:#918365}.spectator-ghost{background:#e4d199;color:#6c572b}.spectator-ghost.spectator-boo{background:#cbd1e3;color:#465879}
#board>.cell .num{inset:0;left:0;top:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:clamp(42px,5.2vw,76px);font-weight:900;letter-spacing:-5px;line-height:1;color:rgba(108,78,32,.13);text-shadow:0 1px 0 #ffffff25;z-index:0;font-variant-numeric:tabular-nums}#board>.cell>.camel,#board>.cell>.tile{z-index:1}#board>.cell{padding-top:7px}#board>.cell.spectator-target{outline:2px solid #99be7b;outline-offset:-3px;cursor:crosshair;box-shadow:inset 0 0 18px #b3d98f60}#board>.cell.spectator-hover,#board>.cell.spectator-target:hover{outline:3px solid #568e5c;outline-offset:-3px;background:linear-gradient(145deg,#f4edc8,#bad29a)}.board-spectator-card{display:flex;flex-direction:column;align-items:center;justify-content:center;width:64px;min-height:72px;border-radius:8px;background:linear-gradient(150deg,#fff7d9,#ddc58b);border:2px solid #fff4d4;box-shadow:0 3px 0 #977d4b55;color:#6f552c;gap:3px;padding:5px}.board-spectator-card.boo{background:linear-gradient(150deg,#ecedf6,#b6bdd2);border-color:#f4f4ff;color:#4b557b}.board-spectator-card>span{font-size:24px;line-height:25px}.board-spectator-card>strong{font-size:10px}.board-spectator-card>small{font-size:8px;max-width:52px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#board .die-used{filter:saturate(.94)}#board .die-used::after{background:rgba(95,105,100,.14);box-shadow:inset 0 0 0 1px #6f797350}#board .die-used::before{content:'✓';position:absolute;right:-3px;top:-4px;font-size:8px;line-height:10px;width:10px;height:10px;text-align:center;border-radius:50%;background:#e8eddf;color:#63725a;z-index:2;pointer-events:none}
.dock-spectator .spectator-card{background:linear-gradient(150deg,#fff7d9,#ddc58b)}.dock-spectator .spectator-card.spectator-boo{background:linear-gradient(150deg,#ecedf6,#b6bdd2)}
@media(max-width:1000px){.action-dock>section{padding:8px}.spectator-hand{gap:7px}.spectator-card{width:73px;min-width:73px}.spectator-controls .flip-spectator{font-size:9px;padding:6px}.spectator-controls>small{font-size:8px}.tabletop-card,.leg-ticket,.finish-hand-card{height:80px}.tabletop-card>strong{font-size:10px}#board>.cell .num{font-size:50px}}
@media(max-width:650px) and (orientation:portrait){.action-dock{grid-template-columns:1fr}.dock-hand{grid-column:auto}.action-dock>section{padding:12px}.finish-hand-card,.leg-ticket{max-width:70px;height:88px}.spectator-card{width:90px;min-width:90px;height:88px}.spectator-controls .flip-spectator{font-size:11px}.spectator-controls>small{font-size:10px}.spectator-hand{gap:16px}#board>.cell .num{font-size:54px}}

.table-tabs{display:flex;gap:5px;margin-bottom:8px}.table-tabs button{flex:1;padding:7px 5px;font-size:11px}.table-tabs [aria-selected="true"]{background:#244c3a;color:white;border-color:#244c3a}.table-diagnostics [hidden]{display:none!important}.table-diagnostics .rules h3{margin:10px 0 6px}

.center-play{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,.9fr);gap:12px;align-items:start}.center-betting h3{font-size:10px;margin:3px 0 7px;color:#d6d9b7}.center-betting .action-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.center-betting .leg-ticket{height:64px;padding:4px 1px}.center-betting .leg-ticket small{font-size:8px}.center-betting .leg-ticket strong{font-size:10px}.center-betting .hand-camel{font-size:15px}.my-ticket-hand{display:flex;gap:5px;flex-wrap:wrap;min-height:85px;align-content:start}.owned-ticket{width:51px;min-height:78px;border:1px solid #fff9;border-radius:7px;padding:7px 3px;display:grid;justify-items:center;align-content:space-between;box-shadow:0 3px 0 #9e865c;color:white}.owned-ticket small{font-size:8px}.owned-ticket strong{font-size:15px}.owned-ticket b{font-size:10px}.owned-ticket.yellow{color:#51421d}.dock-my-bets .private-bets{margin:8px 0 0}.dock-my-bets .muted{font-size:10px}.center-play .dice-results{gap:5px}.center-play .dice-result{min-width:43px}@media(max-width:1000px){.center-play{grid-template-columns:minmax(0,1fr) 190px;gap:7px}}
.center-betting .leg-ticket{height:70px;gap:0;line-height:1.1}.center-betting .leg-ticket .hand-camel{line-height:18px}.center-betting .leg-ticket>small:last-child{line-height:10px}

.setup-position-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(4,minmax(65px,auto));gap:5px;padding:9px;background:#31563d;border:3px solid #b4945f;border-radius:13px;margin:16px 0}.setup-position-center{grid-column:2/6;grid-row:2/4;display:grid;place-items:center;color:#d3d8b8;font-size:14px;letter-spacing:3px}.setup-position-cell{background:linear-gradient(145deg,#f2dfb5,#d6bb83);border-radius:6px;padding:5px;display:flex;flex-direction:column;min-width:0;min-height:65px}.setup-position-number{font-size:13px;font-weight:800;color:#8f7548;line-height:16px}.setup-position-pieces{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:2px;flex:1}.setup-position-pieces .camel{width:90%;max-width:100px;min-width:0;height:18px;min-height:18px;font-size:10px;line-height:15px;padding:0 2px;border-radius:5px 9px 3px 3px;border-bottom:2px solid #0003}.setup-position-pieces .yellow,.setup-position-pieces .white{color:#51421d}.setup-position-board+.setup-dice-grid{margin-top:14px}@media(max-width:520px){.setup-position-board{padding:5px;gap:3px;grid-template-rows:repeat(4,minmax(64px,auto))}.setup-position-cell{padding:3px}.setup-position-pieces .camel{font-size:9px;width:100%}.setup-position-number{font-size:11px}}

.action-reveal{display:grid;justify-items:center;gap:14px;animation:action-arrive .3s ease-out}.action-ticket,.action-spectator{width:95px;height:124px;border:2px solid #fff9;border-radius:11px;box-shadow:0 4px 0 #29493930;display:flex;flex-direction:column;align-items:center;justify-content:space-around;padding:8px;color:white}.action-ticket.yellow{color:#51421d}.action-ticket small{font-size:10px}.action-ticket span{font-size:25px}.action-ticket strong{font-size:18px}.action-ticket b,.action-spectator b{font-size:14px}.action-spectator{background:linear-gradient(150deg,#fff7d9,#ddc58b);color:#6f552c}.action-spectator.boo{background:linear-gradient(150deg,#ecedf6,#b6bdd2);color:#4b557b}.action-spectator span{font-size:38px}.action-card-back{width:77px;height:100px;border:3px solid #c8b77c;border-radius:9px;background:repeating-linear-gradient(45deg,#263e35 0 5px,#314b3c 5px 10px);color:#d5bf83;display:grid;place-items:center;font-size:42px;box-shadow:0 4px 0 #29493930}.action-reveal>strong{font-size:14px}.action-phase-icon{font-size:48px;color:#6e8b51;margin:18px 0}@keyframes action-arrive{from{transform:translateY(12px) scale(.9);opacity:0}to{transform:none;opacity:1}}@media(prefers-reduced-motion:reduce){.action-reveal{animation:none}}
