:root{color-scheme:light;--ink:#21332d;--muted:#64756c;--paper:#f4f3ec;--line:#d3d9cc;--accent:#365f4c;--gold:#c9a257;font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}body{margin:0;font-size:16px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;background:#fff;border:1px solid var(--line);border-radius:7px;padding:10px 15px;min-height:42px}button:hover{border-color:var(--accent);background:#e8eee5}button:disabled{opacity:.45;cursor:not-allowed}button[aria-pressed=true],.primary{background:var(--accent);color:white;border-color:var(--accent)}input,select{background:white;border:1px solid var(--line);border-radius:6px;padding:10px;min-height:42px;max-width:100%}label{display:flex;flex-direction:column;gap:7px;font-size:14px}h1,h2,h3,p{margin-top:0}h1{font-family:Georgia,"Songti SC",serif;margin:0;font-size:28px}h2{font-size:21px}small,.muted{color:var(--muted)}[hidden]{display:none!important}.game-header{padding:24px 3vw;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid var(--line)}.game-header small{font-size:12px;letter-spacing:.18em}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}#connection{font-size:14px}main{padding:24px 3vw 56px;max-width:1800px;margin:auto}.panel{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:18px}.entry{display:grid;grid-template-columns:1.25fr 1fr;max-width:1120px;margin:30px auto;gap:30px}.entry-cover{position:relative;border-radius:12px;overflow:hidden;min-height:440px;background:#20382c}.entry-cover>img{width:100%;height:100%;object-fit:cover;position:absolute;opacity:.4}.entry-cover>div{position:relative;padding:42px;color:#fff5d8}.entry-cover small{color:#e4d1a1;letter-spacing:.2em}.entry-cover h2{font-family:Georgia,"Songti SC",serif;font-size:44px;line-height:1.4;margin-top:34px}.entry .panel{display:flex;flex-direction:column;gap:20px;margin:0}.tabs,.table-tabs{display:flex;gap:8px;flex-wrap:wrap}.table-tabs{margin:20px 0;position:sticky;top:0;padding:10px 0;background:var(--paper);z-index:20}.table-tabs button{white-space:nowrap}.room-info{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.room-info strong{font-size:22px}.factions{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px}.faction{border-top:4px solid var(--faction);min-height:116px;padding:15px 7px;display:flex;flex-direction:column;gap:8px;align-items:center}.faction span{font-size:14px}.faction small{color:inherit}.player-list{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.player-tag{background:var(--paper);padding:8px 12px;border-radius:7px;font-size:14px}.board-tools,.card-tools{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.board-tools label{min-width:110px}#zoom{width:140px;padding:0}#zoom-label{padding-bottom:12px;font-size:14px}.board-hint{color:var(--muted);font-size:14px;margin:12px 0}#board-viewport{height:min(72vh,900px);min-height:360px;overflow:auto;background:#35473d;border-radius:10px;border:1px solid #91a08f;position:relative;overscroll-behavior:contain}#board-surface{position:relative;min-width:100%;line-height:0}#board-image{display:block;width:100%;height:auto;user-select:none;pointer-events:none}#pieces{position:absolute;inset:0}.piece{position:absolute;transform:translate(-50%,-50%) rotate(var(--angle));width:var(--width);height:auto;min-height:0;border:0;padding:0;background:transparent;border-radius:0;line-height:0;touch-action:auto;box-shadow:0 1px 2px #0008}.piece img{width:100%;display:block;pointer-events:none}.piece:hover,.piece.selected{outline:2px solid #fff;z-index:8;background:transparent}.moving .piece{touch-action:none;cursor:grab}.moving .piece:active{cursor:grabbing;z-index:10}.piece-tools{margin-top:16px;display:flex;gap:16px;align-items:end;flex-wrap:wrap}.piece-tools label{flex:1;min-width:200px}.piece-tools select{width:100%}#piece-actions{display:flex;gap:8px;flex-wrap:wrap}.card-tools label{min-width:110px}.card-tools input{width:85px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:16px;margin:20px 0}.card{padding:0;overflow:hidden;border:1px solid var(--line);background:#fff;min-width:0;text-align:left}.card img{width:100%;display:block;aspect-ratio:.7;object-fit:contain;background:#e9e6d8}.card span{display:block;font-size:14px;padding:10px;line-height:1.4}.card small{display:block}.control-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.control-grid .panel{min-width:0}.control-grid form,.modal-actions{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.score-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line)}.score-row strong{margin-left:auto}.score-row input{width:85px}.phase-line{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin-bottom:15px}.reference-image{max-width:100%;display:block;margin:18px auto}.muted{font-size:14px;line-height:1.7}.public-pile h2{font-size:20px}#log{padding-left:22px;max-height:65vh;overflow:auto;font-size:14px;line-height:1.7}#log li{margin-bottom:10px}#chat{max-height:50vh;overflow:auto;margin-bottom:20px;line-height:1.6}#chat p{padding-bottom:10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere}#chat-form label{flex:1}#dice-result{font-size:22px;line-height:1.6;padding-top:18px}dialog{border:1px solid var(--line);border-radius:12px;max-width:min(760px,94vw);max-height:90dvh;padding:30px;color:var(--ink);overflow:auto}dialog::backdrop{background:#15291eb8}.close{float:right;margin:-12px -12px 10px 10px}.detail-card{display:block;max-width:min(340px,100%);max-height:55vh;margin:10px auto 24px}.modal-actions{padding:12px 0}.modal-actions label{flex:1;min-width:150px}.modal-actions button{flex-shrink:0}#detail-content>h2{padding-right:40px}.counter-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:10px;max-height:50vh;overflow:auto;margin-top:18px}.counter-list button{padding:8px;font-size:12px;overflow-wrap:anywhere}.counter-list img{display:block;width:50px;height:50px;object-fit:contain;margin:0 auto 6px}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);background:#21372e;color:white;padding:12px 20px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:200;max-width:90vw}#toast.visible{opacity:1;transform:translate(-50%,0)}#entry-error{color:#a12f2d;margin:0}.share-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:10px 0}summary{cursor:pointer;font-weight:600}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bd8d39;outline-offset:3px}
@media(max-width:800px){.entry{grid-template-columns:1fr;margin:0 auto}.entry-cover{min-height:230px}.entry-cover>div{padding:25px}.entry-cover h2{font-size:32px;margin:16px 0}.factions{grid-template-columns:repeat(3,minmax(0,1fr))}.control-grid{grid-template-columns:1fr}.game-header{padding:18px}.game-header h1{font-size:24px}.header-actions{justify-content:flex-end}main{padding:18px 14px 50px}.panel{padding:18px}.table-tabs{flex-wrap:nowrap;overflow:auto;margin:12px -14px;padding:10px 14px;scrollbar-width:thin}.card-grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px}#board-viewport{min-height:360px;height:60vh}.board-tools{gap:8px}.board-tools button{padding:8px 10px}.board-tools label{min-width:95px}.room-info{gap:10px}.room-info strong{font-size:18px}.piece-tools{display:block}.piece-tools #piece-actions{margin-top:12px}.game-header small{font-size:11px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Original boards remain a continuous surface; controls stay outside the artwork. */
#board-viewport{overflow-anchor:none;touch-action:none;cursor:grab;background:#756548;border-color:#9b8864}
#board-viewport:active{cursor:grabbing}
#board-surface.placing{cursor:crosshair}
#destination{position:absolute;inset:0;pointer-events:none}
.destination-piece{position:absolute;opacity:.75;outline:3px dashed #fff;filter:drop-shadow(0 0 4px #402d15)}
.piece.selected{outline:3px solid #d9ac50;outline-offset:2px;filter:drop-shadow(0 0 3px #fff)}
.power-views,.move-confirmation{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:12px 0}
.power-views button{font-size:14px}.power-views i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:7px}
.move-confirmation{padding:12px 15px;background:#efe5cd;border:1px solid #c6ad72;border-radius:8px}
.move-confirmation span{flex:1;font-size:14px;min-width:180px}
.stack-selection{display:flex;flex-wrap:wrap;align-items:center;gap:8px;width:100%;font-size:13px}
.stack-selection>span{width:100%;color:var(--muted)}
.stack-selection button{display:flex;align-items:center;gap:7px;text-align:left;max-width:270px;font-size:12px;padding:7px}
.stack-selection img{width:42px;height:42px;object-fit:contain;flex:none}
.rules-link{font-size:14px;text-decoration:none;color:var(--accent);padding:10px 0}
@media(max-width:800px){.stack-selection{margin-top:12px}.stack-selection button{max-width:100%}.power-views{display:grid;grid-template-columns:repeat(3,1fr)}.power-views button{padding:8px 4px;font-size:12px}}

/* Keep the title intact and make the original board fill its viewing window. */
.game-header>div:first-child{flex:none}.game-header h1{white-space:nowrap}.game-header small{white-space:nowrap}
.hand-deck+.hand-deck{padding-top:18px;border-top:1px solid var(--line)}
@media(max-width:800px){.game-header{align-items:flex-start;flex-wrap:wrap;gap:12px}.header-actions{width:100%;justify-content:flex-start}#board-viewport{height:clamp(235px,60vh,600px);min-height:0}.score-row{gap:8px;flex-wrap:wrap}.score-row span{min-width:75px}.score-row input{width:72px}.score-row button{padding:8px 12px}.piece-tools select{font-size:14px}dialog{padding:20px;max-width:94vw;width:calc(100% - 24px)}}
