@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--bg:#121613;--panel:#1b201c;--line:#32382d;--text:#e8e9de;--muted:#969c8d;--gold:#d2b778;--green:#9aae80;--serif:'Cormorant Garamond',Georgia,serif;--sans:'Manrope',sans-serif;color-scheme:dark}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:13px var(--sans)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:4px}button{cursor:pointer;color:inherit}button:disabled{opacity:.45;cursor:default}a{color:inherit;text-decoration:none}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--gold)}[hidden]{display:none!important}.sidebar{width:224px;position:fixed;inset:0 auto 0 0;background:#171b17;border-right:1px solid var(--line);padding:32px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;align-items:center;letter-spacing:2.6px;font-size:12px;line-height:1.6;padding:0 10px 39px}.brand b{font-weight:400;color:var(--gold);letter-spacing:5.4px}.brandmark{font:54px var(--serif);color:var(--gold);line-height:1}.workspace-label{font-size:9px;letter-spacing:1.7px;color:#737e6f;padding:0 12px 13px}.nav{display:flex;align-items:center;gap:11px;width:100%;background:transparent;padding:13px 12px;margin:3px 0;border-radius:5px;text-align:left;color:#b2b9a9;font-size:12px;white-space:nowrap}.nav>span:first-child{font-size:19px;width:22px;text-align:center;color:#939f88}.nav small{margin-left:auto;font-size:9px;background:#2c3528;color:#b7c4a8;padding:3px 5px;border-radius:3px}.nav.active{color:#d8dfc9;background:#2b3528}.nav.active>span:first-child{color:#b5c99b}.nav:hover{background:#262d24}.outlink{margin-left:auto}.side-divider{height:1px;background:var(--line);margin:25px 10px}.sidebar-bottom{margin-top:auto;padding:25px 9px 0}.sidebar-bottom p{color:#8f9986;font:17px/1.5 var(--serif)}.mini-die{color:var(--gold);font-size:27px}.version{font-size:8px;letter-spacing:1.1px;color:#62705e}.app{margin-left:224px}header{height:75px;border-bottom:1px solid var(--line);padding:0 34px;display:flex;justify-content:space-between;align-items:center}.breadcrumbs{font-size:9px;letter-spacing:1.5px;color:#7e8878}.breadcrumbs span{margin:0 14px;color:#55614e}.breadcrumbs b{font-weight:500;color:#c3cbb8}.header-tools{display:flex;gap:22px;align-items:center}.save-status{font-size:10px;color:#95a584}.button{display:inline-flex;justify-content:center;align-items:center;gap:9px;padding:11px 17px;border-radius:4px;background:#252c22;border:1px solid #414a39;font-weight:600;font-size:11px;min-height:39px}.button:hover{background:#353e2e}.small{min-height:32px;padding:7px 13px;font-size:10px}.gold{background:var(--gold);border-color:var(--gold);color:#272719}.gold:hover{background:#e2c78a}.gold>span{margin-left:18px}main{padding:32px 34px 20px;max-width:1800px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow,.tiny-label{font-size:8px;letter-spacing:1.6px;color:var(--green);font-weight:700}.eyebrow{color:var(--gold);margin-bottom:8px}h1{font:500 43px/1.05 var(--serif);margin:0 0 9px}h2{font:500 24px var(--serif);margin:6px 0}p{line-height:1.6}.page-heading p{color:var(--muted);font-size:11px;margin:0}.session-strip{display:flex;gap:13px;align-items:center;border:1px solid var(--line);background:#1a2019;border-radius:5px;padding:12px 17px;margin-bottom:20px;font-size:11px}.session-dot,.live-dot{height:6px;width:6px;display:inline-block;border-radius:50%;background:#a8c08d}.session-strip input{background:transparent;color:#dce2cf;border:0;width:215px;font-size:12px;font-weight:600}.strip-tag{font-size:8px;color:#7f8b73;letter-spacing:1px;border:1px solid #36402f;padding:3px 5px;border-radius:3px}.strip-spacer{flex:1}.strip-rule{height:16px;width:1px;background:var(--line)}.text-button{background:transparent;font-size:10px;color:#acb798;padding:5px}.text-button:hover{color:var(--gold)}.battle-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px}.board-panel,.encounter-panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}.board-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px}.board-head h2{font-size:22px;margin-bottom:0}.board-options{display:flex;align-items:center;gap:10px}.select-label{display:flex;gap:8px;align-items:center;font-size:10px;color:var(--muted)}select{background:#252d22;color:#d4dcc7;border:1px solid #414b38;border-radius:4px;padding:7px;max-width:180px;font-size:11px}.icon-button{width:30px;height:30px;border:1px solid #3a4532;border-radius:4px;background:#242c20;color:#b9c5a6;font-size:18px}.icon-button:hover{background:#39452d}#board{height:440px;position:relative;background:#101812}#board canvas{display:block;width:100%;height:100%;touch-action:none}.board-badge{position:absolute;top:16px;left:18px;display:flex;gap:8px;align-items:center;font-size:8px;letter-spacing:1.2px;padding:7px 10px;background:#1b241bdb;border:1px solid #445237;border-radius:3px;pointer-events:none}.board-coordinates{position:absolute;right:18px;top:24px;font-size:8px;letter-spacing:1px;color:#bbc5ae;pointer-events:none}.board-coordinates>span:first-child{margin:0 7px;color:#6d7a60}.board-hint{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);white-space:nowrap;color:#b8c2ac;font-size:9px;background:#182018cc;padding:7px 13px;border-radius:20px;pointer-events:none}.board-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-top:1px solid var(--line);gap:8px}.tool-group{display:flex;gap:4px}.tool{background:transparent;color:#9eab91;border-radius:4px;padding:7px 9px;font-size:16px;display:flex;gap:7px;align-items:center}.tool span{font-size:10px}.tool.active{background:#35442b;color:#caddb4}.tool:hover{background:#2b3823}.context-controls{display:flex;gap:14px;align-items:center;padding:10px 16px;background:#171d16;border-top:1px solid var(--line);font-size:9px;color:#93a384;flex-wrap:wrap}.context-controls label{display:flex;align-items:center;gap:7px}.context-controls select{font-size:9px;padding:4px}.context-controls>span{margin-left:auto;max-width:250px;font-size:9px}.encounter-panel{padding:19px 17px}.encounter-title{display:flex;justify-content:space-between;align-items:center}.encounter-title h2{font-size:23px}.count-badge{font-size:10px;border:1px solid #455039;padding:5px 7px;border-radius:4px;color:#b7c9a2}.round-row{display:flex;justify-content:space-between;align-items:center;margin:18px 0 13px;color:#9cab8b;font-size:10px}.round-row b{color:#d1dfbd;margin-left:5px}.initiative-row{display:flex;align-items:center;gap:10px;padding:13px 9px;border-top:1px solid #323b2b;cursor:pointer;position:relative;border-radius:3px}.initiative-row:hover{background:#283222}.initiative-row.current{background:#2c3a26;border:1px solid #546b3e}.initiative-row.selected{box-shadow:inset 3px 0 var(--gold)}.piece-avatar{width:32px;height:36px;border-radius:4px;display:grid;place-items:center;font:22px var(--serif);background:#394736;color:#d6e0bf}.initiative-row .piece-detail{flex:1;min-width:0}.piece-detail strong{display:block;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.piece-detail small{font-size:9px;color:#93a280}.hpbar{height:3px;background:#38432e;margin-top:7px;max-width:100px;overflow:hidden}.hpbar div{background:#99b477;height:100%}.initiative-number{font-size:16px;font-family:var(--serif);color:#c4d2b0}.hp-label{font-size:8px;color:#9aa98a}.next-turn{margin-top:17px;width:100%;background:#34462c;border:1px solid #536d3f;color:#d0dfbc;justify-content:space-between}.add-piece{margin-top:10px;width:100%;font-size:10px;border-style:dashed;background:transparent}.inspector{border-top:1px solid var(--line);margin-top:18px;padding-top:15px;font-size:10px}.inspector p{color:var(--muted);font-size:10px}.inspector input{width:100%;border:1px solid #455039;background:#151c13;color:#d7e0c9;padding:5px;border-radius:3px;font-size:10px}.inspector-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:10px 0}.inspector label{color:#94a182;font-size:9px;display:block}.inspector label input{margin-top:4px}.inspector-actions{display:flex;justify-content:space-between;margin-top:9px}.templates-section{margin-top:26px}.section-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.section-top h2{font-size:23px}.section-top h2 span{font:9px var(--sans);color:#7c8971;margin-left:12px}.muted{color:var(--muted);font-size:10px}.template-grid{display:grid;grid-template-columns:repeat(8,1fr);gap:10px}.template-card{padding:0;background:#1d241a;border:1px solid #35402e;border-radius:5px;overflow:hidden;text-align:left;transition:transform .18s}.template-card:hover{transform:translateY(-3px);border-color:#8ea16d}.template-card.active{border-color:var(--gold)}.template-card img{width:100%;height:79px;object-fit:cover;display:block;filter:saturate(.8)}.template-card span{display:block;padding:10px 9px;font-size:10px;color:#c7d2b8}.template-card.active span{color:var(--gold)}footer{display:flex;justify-content:space-between;padding:18px 34px;border-top:1px solid var(--line);font-size:9px;color:#6e7c63;margin-top:8px}.gallery-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:20px}.search-field{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);padding:9px 14px;border-radius:4px;flex:1;max-width:450px}.search-field>span{font-size:20px;color:var(--green)}.search-field input{background:none;border:0;color:var(--text);width:100%;font-size:12px}.gallery-toolbar>.muted{margin-left:auto}.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.gallery-card{background:var(--panel);border:1px solid var(--line);border-radius:5px;overflow:hidden;text-align:left;padding:0;transition:transform .2s}.gallery-card:hover{transform:translateY(-4px);border-color:#7d9064}.gallery-card img{display:block;width:100%;height:175px;object-fit:cover;background:#2d3825}.gallery-card.npc img{height:245px;object-position:top}.gallery-card .card-body{padding:14px}.gallery-card .tiny-label{font-size:7px}.gallery-card h2{font-size:22px;margin-top:5px}.gallery-card small{color:#88967a;font-size:9px}.journal-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:20px}.journal-card{border:1px solid var(--line);border-radius:5px;background:var(--panel);padding:25px}.journal-card textarea{width:100%;height:280px;resize:vertical;padding:16px;background:#131a12;border:1px solid #3d4b33;color:#d7e1c9;line-height:1.7;font-size:12px;border-radius:4px;margin:10px 0}.journal-card #public-notes{height:160px}hr{border:0;border-top:1px solid var(--line);margin:25px 0}#session-log>p,#dice-history>p{font-size:10px;color:#94a386;padding:8px;border-bottom:1px solid var(--line);margin:0}dialog{background:#1c231a;border:1px solid #536441;color:var(--text);border-radius:8px;max-width:900px;width:85vw;padding:0;box-shadow:0 40px 100px #0009}dialog::backdrop{background:#080d09d9;backdrop-filter:blur(7px)}.modal-close{position:absolute;right:15px;top:15px;z-index:2;background:#172014e8}#asset-image{width:100%;max-height:65vh;object-fit:contain;background:#0e140d;display:block}.asset-details{padding:24px}.asset-details h2{font-size:34px}.asset-details p{color:var(--muted)}.asset-details .button{margin-right:10px}#dice-dialog{max-width:490px;padding:35px}#dice-dialog h2{font-size:40px}.dice-choices{display:flex;gap:7px;margin:22px 0}.dice-choices button{border:1px solid #495a39;border-radius:5px;background:#25321e;padding:12px 9px;font-size:11px}.dice-choices .active{background:var(--gold);color:#272719}.dice-controls{display:flex;gap:10px;margin-bottom:20px}.dice-controls label{font-size:10px;color:var(--muted);width:25%}.dice-controls label:last-child{width:50%}.dice-controls input{width:100%;background:#111b0e;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:8px;margin-top:5px}.dice-controls select{margin-top:5px;width:100%;max-width:none;padding:8px}#dice-result{display:flex;flex-direction:column;align-items:center;margin:20px 0;gap:5px}#dice-result strong{font:70px var(--serif);color:var(--gold)}#dice-result span{font-size:11px;color:var(--muted)}#dice-history{max-height:130px;overflow:auto}#toast{position:fixed;bottom:25px;left:calc(50% + 90px);transform:translateX(-50%) translateY(100px);background:#d3ba83;color:#23271b;border-radius:5px;padding:12px 22px;font-size:12px;box-shadow:0 10px 35px #0007;z-index:100;transition:transform .25s}#toast.visible{transform:translateX(-50%) translateY(0)}#board:is(:fullscreen,.immersive-fullscreen){height:100vh}.player-mode .sidebar,.player-mode header,.player-mode .page-heading,.player-mode .session-strip,.player-mode .encounter-panel,.player-mode .templates-section,.player-mode .board-head,.player-mode .board-toolbar,.player-mode .context-controls,.player-mode footer{display:none}.player-mode .app{margin:0}.player-mode main{padding:0;max-width:none}.player-mode .battle-layout{display:block}.player-mode .board-panel{border:0;border-radius:0}.player-mode #board{height:100vh}.player-stage{position:fixed;inset:0;background:#090e09;display:grid;place-items:center;z-index:50}.player-stage img{width:100%;height:100%;object-fit:contain}.player-stage .recap{max-width:850px;padding:40px;font:32px/1.5 var(--serif);white-space:pre-wrap}.player-caption{position:absolute;bottom:25px;background:#111b10dc;padding:12px 22px;font:27px var(--serif);border:1px solid #4b5c3a;border-radius:5px}.player-return{position:fixed;top:15px;right:15px;z-index:60;opacity:.3}.player-return:hover{opacity:1}#webgl-error{position:absolute;inset:40%;z-index:5;background:#182315;width:250px;padding:15px}
@media(min-width:1500px){#board{height:530px}.template-card img{height:110px}}@media(max-width:1200px){.sidebar{width:190px;padding:27px 13px}.app{margin-left:190px}main{padding:25px 22px}.battle-layout{grid-template-columns:minmax(0,1fr) 250px}.template-grid{grid-template-columns:repeat(4,1fr)}.tool{padding:6px}.board-toolbar{flex-wrap:wrap}.gallery-grid{grid-template-columns:repeat(3,1fr)}.section-top>.muted{display:none}.brand{font-size:10px}}@media(max-width:900px){.sidebar{width:70px;padding:23px 7px}.brand{padding:0 7px 30px}.brand>span:last-child,.workspace-label,.nav small,.nav .outlink,.sidebar-bottom,.side-divider{display:none}.nav{font-size:0;justify-content:center;padding:13px 5px}.nav>span:first-child{font-size:24px;width:auto}.app{margin-left:70px}.battle-layout{grid-template-columns:1fr}.encounter-panel{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.encounter-title,.round-row{grid-column:1}.initiative-row{padding:9px}.inspector{grid-column:2;grid-row:1 / span 5;margin:0;border-top:0;padding:5px}#initiative-list{grid-column:1}.next-turn,.add-piece{grid-column:1}.gallery-grid{grid-template-columns:repeat(2,1fr)}.journal-layout{grid-template-columns:1fr}.save-status{display:none}.page-heading .button{padding:10px;font-size:9px}.session-strip input{width:180px}.strip-tag{display:none}.context-controls>span{margin-left:0}.board-hint{font-size:8px}header{padding:0 22px}}@media(max-width:550px){.sidebar{width:55px}.app{margin-left:55px}main{padding:22px 12px}header{padding:0 12px;height:55px}.breadcrumbs{font-size:7px}.header-tools{gap:0}.page-heading{align-items:flex-start}.page-heading .button{width:100px;font-size:8px}.page-heading .button>span{display:none}h1{font-size:35px}.page-heading p{max-width:180px;line-height:1.5;font-size:10px}.session-strip{padding:10px;gap:8px;flex-wrap:wrap}.session-strip input{width:175px}.session-strip .strip-spacer,.strip-rule{display:none}.session-strip #round-summary{margin-left:auto}#board{height:360px}.board-head{padding:13px}.board-head h2{font-size:19px}.board-options{gap:5px}.board-options label{font-size:0}.board-options select{font-size:9px;max-width:75px}.board-coordinates{display:none}.board-toolbar{gap:3px}.tool-group{width:100%;justify-content:space-between}.tool span{font-size:9px}.context-controls{padding:9px}.encounter-panel{display:block}.inspector{margin-top:15px;border-top:1px solid var(--line);padding-top:14px}.template-grid{grid-template-columns:repeat(2,1fr)}.section-top h2 span{display:block;margin:7px 0}.gallery-grid{grid-template-columns:1fr}.gallery-toolbar{flex-wrap:wrap}.search-field{width:100%;flex:auto}.gallery-toolbar>.muted{font-size:9px}footer{padding:12px;font-size:8px}footer>span:last-child{display:none}#toast{left:50%;width:85%;text-align:center}.journal-card{padding:16px}.dice-choices{flex-wrap:wrap}#dice-dialog{padding:25px}.asset-details{padding:18px}.asset-details h2{font-size:27px}.asset-details .button{margin-bottom:10px}}

.battle-layout{align-items:start}
.player-mode .board-hint{display:none}

.sidebar{overflow-y:auto;scrollbar-width:thin}

.ui-icon{width:25px;height:25px;object-fit:contain;vertical-align:middle;flex-shrink:0}.brandmark .ui-icon{width:44px;height:44px}.nav .ui-icon{width:27px;height:27px}.outlink .ui-icon{width:16px;height:16px}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px}.icon-button .ui-icon{width:28px;height:28px}.tool .ui-icon{width:25px;height:25px}.text-button{display:inline-flex;align-items:center;gap:6px}.text-button .ui-icon{width:22px;height:22px}.piece-avatar{width:45px;height:48px;background:#182a34;border-radius:7px;overflow:hidden}.piece-avatar img{width:100%;height:100%;object-fit:contain}.population-section{margin-top:25px;padding:20px;background:var(--panel);border:1px solid var(--line);border-radius:8px}.roster-tabs{display:flex;gap:8px}.roster-tabs button{background:#202e32;border:1px solid #40545a;border-radius:6px;padding:10px 16px}.roster-tabs button[data-faction=monster]{background:#342323;border-color:#634343}.roster-tabs button.active{border-color:var(--gold);color:var(--gold)}.roster-tabs span{margin-left:5px;opacity:.65}.piece-roster{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px}.roster-card{position:relative;display:flex;flex-direction:column;align-items:center;border:1px solid #344b58;border-radius:7px;background:radial-gradient(ellipse at center,#294251,#182224);padding:8px;min-width:0}.roster-card:has(.monster){background:radial-gradient(ellipse at center,#48313a,#241b20);border-color:#61444d}.roster-card img{height:124px;width:100%;object-fit:contain}.roster-card strong{font-size:10px;text-align:center;margin:6px 0}.roster-card small{font-size:9px;color:var(--muted)}.roster-card.active{border:2px solid var(--gold);padding:7px}.faction{font-size:7px;letter-spacing:1.3px;font-weight:800;padding:3px 7px;border-radius:8px;background:#1d5f83;color:#b4e1ff}.faction.monster{background:#86363e;color:#ffd3d5}.population-controls{display:flex;align-items:center;gap:15px;margin-top:18px}.population-controls p{flex:1;color:var(--muted);font-size:11px}.population-controls label{font-size:10px;display:flex;align-items:center;gap:8px}.population-controls input{width:55px;background:#111d15;border:1px solid var(--line);border-radius:4px;color:var(--text);padding:8px}.location-summary{background:#293725;border:1px solid #536641;padding:12px;border-radius:5px}.location-summary span{display:block;font-size:10px;color:var(--muted);margin-top:4px}h3{font:600 23px var(--serif);margin:24px 0 12px}.room-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}.room-card{display:flex;align-items:center;gap:10px;padding:12px;background:#253020;border:1px solid #3d4f33;border-radius:5px;text-align:left}.room-card.active{border-color:var(--gold)}.room-card strong,.room-card small{display:block}.room-card strong{font-size:11px}.room-card small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}.conversation-list{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:22px}.conversation-card{display:flex;align-items:center;gap:12px;background:#232d20;border:1px solid #46583b;padding:8px;border-radius:6px;text-align:left;flex:1;min-width:230px}.conversation-card img{width:60px;height:70px;object-fit:cover;border-radius:4px}.conversation-card strong,.conversation-card small,.conversation-card em{display:block;font-size:11px}.conversation-card small{color:var(--muted);margin:5px 0}.conversation-card em{font-style:normal;color:var(--gold);font-size:10px}.conversation-hook{background:#141e15;padding:1px 18px 12px;border-radius:6px;margin-bottom:18px}.conversation-hook p{font-size:12px}.player-mode .population-section{display:none}.image-failed{object-fit:contain!important;background:#243122!important}.nav{min-height:49px}
@media(max-width:1200px){.piece-roster{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.sidebar{width:112px}.app{margin-left:112px}.nav{font-size:9px;flex-direction:column;gap:3px;text-align:center;padding:8px 2px;white-space:normal}.nav>span:first-child{display:block}.page-heading .button .ui-icon{width:22px}.population-controls{flex-wrap:wrap}}@media(max-width:550px){.sidebar{width:78px;padding:18px 4px}.app{margin-left:78px}.nav{font-size:8px}.population-section{padding:14px}.piece-roster{grid-template-columns:repeat(2,1fr)}.roster-card img{height:130px}.population-section .section-top{flex-direction:column;align-items:start;gap:12px}.population-controls p{flex-basis:100%;margin:0}.room-list{grid-template-columns:1fr}.board-head{flex-wrap:wrap;gap:10px}.board-options select{max-width:90px}.board-hint{max-width:90%;white-space:normal;text-align:center}.gallery-card img{height:220px}}

#asset-image{max-height:48vh}.asset-details .button{margin-top:6px}dialog{max-height:92vh;overflow-y:auto}.roster-tabs button:hover,.room-card:hover,.conversation-card:hover{border-color:var(--gold)}
.workspace-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px}.workspace-stats>div{padding:20px;background:#202c21;border:1px solid #41503b;border-radius:8px}.workspace-stats strong{display:block;font:34px var(--serif);color:var(--gold)}.workspace-stats span{font-size:10px;color:var(--muted)}.workspace-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.workspace-card{background:var(--panel);padding:24px;border:1px solid var(--line);border-radius:8px}.workspace-card h2{font-size:29px}.workspace-card label,.builder-dialog label,.action-card label,.sheet-extension label{display:block;font-size:11px;color:#b9c6af;margin:12px 0}.workspace-card input,.builder-dialog input,.workspace-card textarea,.builder-dialog textarea,.builder-dialog select,.workspace-card select,.action-card select,.sheet-extension select{display:block;width:100%;max-width:none;background:#111c13;border:1px solid #42543a;border-radius:5px;padding:10px;color:var(--text);margin-top:6px}.workspace-card textarea,.builder-dialog textarea{min-height:90px;resize:vertical}.builder-dialog{padding:28px;max-width:850px}.builder-dialog h2{font-size:32px}.builder-dialog p{font-size:12px;color:var(--muted);line-height:1.7}.builder-dialog .modal-close{top:12px;right:12px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.record-list{margin-top:17px}.record{display:flex;gap:9px;align-items:center;flex-wrap:wrap;border-bottom:1px solid #364631;padding:13px 0}.record>div{flex:1;min-width:100px}.record strong,.record small{display:block}.record strong{font-size:12px}.record small{font-size:10px;color:var(--muted);line-height:1.6;margin-top:4px}.record-preview{width:65px;height:65px;object-fit:contain}.section-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:18px}.combat-controls{display:flex;gap:20px;align-items:center;justify-content:space-between;padding:18px 22px;background:linear-gradient(120deg,#263421,#1c2928);border:1px solid #526541;border-radius:7px;margin-bottom:18px}.combat-controls h2{font-size:28px}.combat-buttons{display:flex;flex-wrap:wrap;justify-content:end;gap:10px;max-width:410px}.combat-buttons label{font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.combat-buttons input{accent-color:var(--gold)}.action-card{padding:15px 0;border-top:1px solid var(--line);font-size:11px}.action-card h3{font-size:23px;margin:8px 0}.action-card .button{margin-top:8px;max-width:100%}.quick-actions{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.quick-actions label{max-width:100px}.quick-actions input{width:100%}.combat-log{max-height:230px;overflow:auto}.combat-log p{padding:8px;background:#142016;border-radius:4px;font-size:10px;line-height:1.7}.condition-buttons{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0}.condition{font-size:9px;background:#293524;color:#adbd9f;border:1px solid #46593a;border-radius:10px;padding:5px 8px}.condition.active{background:#734530;color:#ffe0ba}.sheet-extension{margin-top:16px}details{margin-top:14px}summary{cursor:pointer;color:var(--gold);font-size:11px}.upload-spec{padding:14px;background:#293423;border:1px solid #526341;border-radius:6px}.upload-preview{display:block;max-height:260px;width:100%;object-fit:contain;border-radius:6px}.model-preview{display:flex;justify-content:center;min-height:80px;background:#152018;border-radius:8px;margin-bottom:18px}.asset-utilities{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}.image-frame{position:relative;min-height:80px;overflow:hidden;background:#1c2a1d}.image-status{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(110deg,#1e2b1d,#2c3b25,#1e2b1d);font-size:12px;color:#c6d1b8;padding:12px;text-align:center}.image-loading{opacity:0}.gallery-card .image-frame{height:175px}.gallery-card.npc .image-frame{height:245px}.template-card .image-frame{height:79px}.roster-card .image-frame{height:124px;width:100%;background:transparent}.conversation-card .image-frame{width:60px;height:70px;min-height:70px;flex-shrink:0}.conversation-card .image-frame img{width:60px}.player-stage>.image-frame{width:100%;height:100%;background:transparent}.player-stage>.image-frame img{width:100%;height:100%}.record>.image-frame{width:65px;height:65px;min-height:65px}.player-mode .combat-controls,.player-mode #campaign-view{display:none!important}.encounter-panel{max-height:1100px;overflow:auto;scrollbar-width:thin}.encounter-panel #battle-actions{grid-column:1 / -1}.encounter-panel .inspector{grid-row:auto}
@media(max-width:1000px){.workspace-grid{grid-template-columns:1fr}.combat-controls{flex-wrap:wrap}.combat-buttons{max-width:none;justify-content:start}.encounter-panel{max-height:none}}@media(max-width:550px){.workspace-stats{grid-template-columns:1fr 1fr}.workspace-card{padding:17px}.builder-dialog{width:94vw;padding:22px 16px}.form-grid{gap:0 8px}.gallery-card .image-frame{height:220px}.combat-controls{padding:15px}.combat-controls h2{font-size:25px}.roster-card .image-frame{height:130px}.model-preview canvas{max-width:100%}}
.action-card input:not([type=checkbox]){display:block;width:100%;padding:8px;background:#111c13;color:var(--text);border:1px solid var(--line);border-radius:4px;margin-top:5px}.action-card input[type=checkbox]{width:auto;accent-color:var(--gold)}#editor-status{border:1px solid var(--gold);padding:10px;border-radius:5px;color:var(--gold)}
.demo-panel{border:1px solid #776b43;background:#1b241c;border-radius:14px;padding:24px;margin-bottom:24px}.demo-columns{display:grid;grid-template-columns:1fr 1fr;gap:26px}.read-aloud{font:20px/1.6 Georgia,serif;color:#ecddba;border-left:3px solid #cfb66d;padding-left:18px}.demo-tasks{display:grid;gap:10px;margin:20px 0}.demo-tasks label{display:block}.demo-panel details{margin:12px 0;padding:12px;border:1px solid #3f4a39;border-radius:8px}.demo-panel .record-list{display:grid;gap:8px}.elevation-controls{display:flex;flex-wrap:wrap;gap:12px;padding:15px;align-items:end;border-top:1px solid #394234}.elevation-controls small{width:100%;color:#99a58a}.prop-roster{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:18px}.prop-card{background:#202b23;border:1px solid #45513f;border-radius:12px;color:#e6e9d9;padding:10px;cursor:pointer;display:grid;text-align:left}.prop-card.active{border-color:#ddc47c;box-shadow:0 0 0 1px #ddc47c}.prop-card img{height:120px;width:100%;object-fit:contain}.prop-card small{color:#acb79a;margin-top:5px}.room-preview{width:96px;height:68px;object-fit:cover;border-radius:6px}.board-toolbar{flex-wrap:wrap}.tool-group{flex-wrap:wrap}.context-controls{flex-wrap:wrap}.room-settings{display:grid;gap:12px;margin:20px 0}.room-settings section{padding:15px;border:1px solid #46513e;border-radius:8px}.room-settings img{max-width:160px;height:90px;object-fit:cover}@media(max-width:750px){.demo-columns{grid-template-columns:1fr}.demo-panel{padding:16px}.room-preview{width:72px;height:54px}}
.player-mode .elevation-controls,.player-mode #demo-runner{display:none!important}.room-card .image-frame{width:96px;height:68px;flex:none;border-radius:6px}.room-card .image-frame img{width:100%;height:100%;object-fit:cover}.prop-card .image-frame{height:120px}.room-settings .image-frame{max-width:160px;height:90px}.demo-details>summary{font-weight:600;color:#dcc68b;padding:8px 0}
/* Version 5: focused workspaces and readable controls. */
:root{--muted:#adb8a1;--line:#46533e}body{font-size:14px}.skip-link{position:fixed;left:16px;top:-80px;padding:12px 18px;background:#dcc184;color:#172014;z-index:500}.skip-link:focus{top:12px}button,a,input,select,textarea,summary{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #f2d79a}button:not(.roster-card):not(.gallery-card):not(.template-card):not(.prop-card){min-height:42px}.button,.text-button,select,input,textarea{font-size:13px}.tiny-label,.eyebrow{font-size:10px}.muted{line-height:1.6}summary{min-height:42px;display:flex;align-items:center;font-size:13px}summary::before{content:'▸';margin-right:8px}details[open]>summary::before{content:'▾'}details:not([open])>summary{margin:0}.page-heading #present{display:none}.header-tools{gap:10px}.sidebar .nav{font-size:13px}.nav[aria-current=page]{border-left:3px solid #d2b574}.mapstudio-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.studio-library{background:#1b241c;border:1px solid var(--line);border-radius:9px;min-width:0}.library-tabs,.encounter-tabs,#campaign-tabs{display:flex;gap:4px;padding:8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.library-tabs button,.encounter-tabs button,#campaign-tabs button{background:transparent;color:#bfcab3;padding:9px 12px;border-radius:6px;flex:1;font-size:13px;border:1px solid transparent}.library-tabs button[aria-selected=true],.encounter-tabs button[aria-selected=true],#campaign-tabs button[aria-selected=true]{background:#35462b;border-color:#a99261;color:#f1ddb0}.studio-library .population-section,.studio-library .templates-section{border:0;margin:0;padding:16px;background:transparent}.studio-library .piece-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-library .roster-card img,.studio-library .roster-card .image-frame{height:100px}.studio-library .prop-roster{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-library .template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-library .section-top{display:block}.studio-library .section-top h2,.studio-library h2{font-size:25px}.studio-library .section-top h2 span,.studio-library .tiny-label,.studio-library .section-top>.muted{display:none}.studio-library .roster-tabs{margin:14px 0}.studio-library .population-controls{flex-wrap:wrap;gap:10px}.studio-library .population-controls p{flex-basis:100%;margin:0}.studio-library #model-status{font-size:11px;margin:10px 0}.studio-library .prop-card img,.studio-library .prop-card .image-frame{height:85px}.studio-library .prop-card strong{font-size:12px}.studio-library .prop-card small{font-size:11px}.studio-library .roster-card strong{font-size:12px}.studio-library .roster-card small{font-size:11px}.studio-library .templates-section h2>span{display:none}.studio-library .section-top{margin-bottom:12px}.studio-library [role=tabpanel]{max-height:800px;overflow:auto;scrollbar-width:thin}.board-toolbar{padding:12px;gap:10px;display:flex;align-items:start}.tool-group{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;flex:1}.tool{display:flex;align-items:center;justify-content:center;gap:7px;padding:9px 7px;background:#202a20;border:1px solid #41523b;border-radius:7px;min-width:0;min-height:46px!important}.tool span{font-size:12px;color:#d4ddc7}.tool .ui-icon{width:27px;height:27px}.tool[aria-pressed=true]{border-color:#e0c482;background:#3a4c2f;box-shadow:inset 0 -3px #e0c482}.tool[aria-pressed=true] span{color:#ffedc6}.tool-help{display:flex;align-items:center;gap:10px;padding:2px 14px 12px;font-size:12px;color:#c0cbb6}.tool-help strong{border:1px solid #586744;border-radius:5px;padding:4px 7px;color:#edcf8b;font-size:11px;flex:none}.tool-help span{line-height:1.5}.context-controls{padding:0 14px 12px;gap:12px}.context-controls label{font-size:12px;display:flex;flex:1;align-items:center;gap:7px}.context-controls select{max-width:none;min-width:0;width:100%}#selection-info{font-size:12px}.coordinate-controls{padding:0 14px 12px;margin:0}.coordinate-controls summary{color:#b4c3a7}.coordinate-controls form{display:flex;gap:10px;align-items:end;flex-wrap:wrap}.coordinate-controls label{font-size:12px;display:grid;gap:6px;flex:1}.coordinate-controls input{width:100%;max-width:110px;background:#151e15;border:1px solid var(--line);padding:9px;border-radius:5px;color:var(--text)}#visibility-controls{display:flex;gap:8px;flex-wrap:wrap;padding:0 14px 12px}.board-options .icon-button{width:auto;gap:5px;padding:5px 8px;min-height:42px}.board-options .icon-button span{font-size:11px}.board-options .ui-icon{width:22px;height:22px}.board-head{flex-wrap:wrap;gap:12px}.board-options{flex-wrap:wrap}.board-options .select-label{font-size:12px}.board-options select{font-size:12px}.board-hint{display:none}body[data-view=battle] [data-tool=place],body[data-view=battle] [data-tool=terrain],body[data-view=battle] [data-tool=elevation],body[data-view=battle] [data-tool=interact]{display:none}body[data-view=battle] .tool-group{grid-template-columns:repeat(3,minmax(0,1fr))}.encounter-panel{padding:16px;max-height:none;overflow:visible;display:block}.encounter-title{margin-bottom:8px}.encounter-title h2{font-size:27px}.encounter-tabs{margin:0 -6px 12px}.encounter-panel [role=tabpanel]{min-width:0}.encounter-panel .inspector{grid-column:auto;grid-row:auto;margin:0;padding-top:0;border-top:0}.encounter-panel .initiative-row{min-height:65px}.encounter-panel .piece-detail strong{font-size:13px}.encounter-panel .piece-detail small,.hp-label{font-size:11px}#next-turn{display:none}.action-card{border:0;padding:0;font-size:13px}.action-card h3{font-size:26px;margin-top:0}.action-card label,.sheet-extension label,.inspector label{font-size:12px;color:#c0ccb6}.action-card #resolve-attack{width:100%;min-height:46px}.action-card select{font-size:13px}.action-card .quick-actions{margin-top:7px}.action-card details{border-top:1px solid #3e4c36;margin-top:12px}.combat-log p{font-size:12px}.battle-options{position:relative;margin:0;min-width:135px}.battle-options summary{padding:4px 12px;border:1px solid #50603f;border-radius:5px}.battle-options[open]{display:grid;gap:8px}.battle-options[open]>button,.battle-options[open]>select,.battle-options[open]>label{margin-top:7px}.combat-buttons{align-items:start}.combat-controls h2{font-size:27px}.combat-controls .muted{font-size:12px}.combat-controls .tiny-label{font-size:9px}.workspace-grid{display:block}.campaign-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.campaign-panel .workspace-card{min-width:0}.campaign-panel .demo-card{grid-column:1 / -1}.workspace-stats{margin:18px 0}.workspace-stats>div{padding:13px}.workspace-stats strong{font-size:28px}.workspace-stats span{font-size:12px}.workspace-card h2{font-size:26px}.workspace-card .record small{font-size:12px}.workspace-card label,.builder-dialog label{font-size:12px}.workspace-card .tiny-label{font-size:9px}.generation-tools{margin:10px 0;font-size:12px}.generation-tools button{margin:7px 7px 0 0}.section-actions>.muted{display:none}.gallery-card small{font-size:12px}.gallery-card .tiny-label{font-size:9px}.gallery-card h2{font-size:25px}.room-card strong{font-size:13px}.room-card small{font-size:12px}.conversation-card strong,.conversation-card small,.conversation-card em{font-size:12px}.modal-close{width:44px;height:44px}.room-card{min-height:80px}.world-map-card{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:0;text-align:left;padding:0;background:#233121;border:1px solid #847346;border-radius:10px;overflow:hidden;margin-bottom:24px}.world-map-card img{width:100%;height:225px;object-fit:cover}.world-map-card>span{padding:24px;display:flex;flex-direction:column;justify-content:center;gap:12px}.world-map-card small{font-size:10px;letter-spacing:1px;color:#bdcba8}.world-map-card strong{font:32px var(--serif);color:#f0ddb7}.world-map-card em{font-style:normal;font-size:13px;color:#d0c088}.world-destinations{display:grid;grid-template-columns:1fr 1fr;gap:10px}.region-number{border-radius:50%;background:#a78d55;color:#172014;width:32px;height:32px;display:grid;place-items:center;flex:none;font-weight:700}.guide-steps{line-height:1.9;padding-left:22px}.guide-steps li{margin-bottom:14px}.player-mode .tool-help,.player-mode .coordinate-controls,.player-mode #visibility-controls,.player-mode .encounter-tabs,.player-mode #studio-view,.player-mode #world-map-overview{display:none!important}@media(max-width:1100px){.mapstudio-layout{grid-template-columns:1fr}.studio-library [role=tabpanel]{max-height:none}.studio-library .piece-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.studio-library .prop-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.studio-library .template-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:900px){.sidebar{width:90px;padding:16px 5px}.app{margin-left:90px}.sidebar .nav{font-size:11px;min-height:62px!important;gap:5px;padding:8px 3px}.sidebar .brand{padding:0 5px 22px}.sidebar .nav .ui-icon{width:28px;height:28px}.encounter-panel{display:block}.campaign-panel{grid-template-columns:1fr}.header-tools{gap:6px}.header-tools .button{font-size:11px;padding:7px 10px}.world-map-card{grid-template-columns:1fr}.world-map-card>span{padding:16px;gap:7px}.world-map-card strong{font-size:27px}.world-map-card img{height:210px}}@media(max-width:550px){main{padding:18px 12px}.page-heading h1{font-size:30px}.page-heading p{max-width:none;font-size:12px}.page-heading{display:block;margin-bottom:18px}.sidebar{width:80px}.app{margin-left:80px}.sidebar .nav{font-size:10px}header{padding:0 12px}.breadcrumbs{font-size:8px}.session-strip input{font-size:13px;width:100%;flex-basis:100%}.session-strip #ambience{font-size:12px}.board-toolbar{padding:10px;gap:7px}.tool-group{grid-template-columns:repeat(3,minmax(0,1fr));width:auto}.tool{flex-direction:column;gap:3px;min-height:65px!important}.tool span{font-size:11px}.tool .ui-icon{width:27px;height:27px}.board-toolbar #undo{font-size:0;width:40px;padding:5px}.board-toolbar #undo .ui-icon{width:25px;height:25px}.tool-help{display:block;padding:0 12px 12px}.tool-help span{display:block;margin-top:8px}.board-options .icon-button span{font-size:10px}.board-options .icon-button{padding:5px}.board-options{gap:5px}.board-options select{max-width:100px}.context-controls{flex-direction:column;align-items:stretch}.context-controls label{display:flex}.elevation-controls{padding:12px}.studio-library .piece-roster,.studio-library .prop-roster,.studio-library .template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-tabs button,.encounter-tabs button,#campaign-tabs button{padding:9px 7px;font-size:12px;min-height:44px}#campaign-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:8px 0}.combat-controls{gap:12px;padding:15px}.combat-controls h2{font-size:24px}.combat-buttons{width:100%;justify-content:start}.combat-buttons>button{flex:1}.workspace-card,.demo-panel{padding:16px}.builder-dialog{width:calc(100vw - 20px)}.world-map-card img{height:190px}.world-destinations{grid-template-columns:1fr}.coordinate-controls form{align-items:end}.coordinate-controls .button{flex-basis:100%}.gallery-toolbar{gap:9px}.world-map-card strong{font-size:25px}.demo-panel .section-top{flex-wrap:wrap;gap:12px}.demo-panel select{max-width:100%}.form-grid{grid-template-columns:1fr 1fr;min-width:0}.form-grid label,.form-grid input,.form-grid select{min-width:0}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
.eyebrow,.sidebar-bottom{display:none}.sidebar-tools{margin:14px 5px 0}.sidebar-tools summary{color:#d2bd8c;font-size:12px;padding:0 8px}.sidebar-tools .nav{white-space:normal}.world-map-card img{object-fit:contain;background:#121b16;height:280px}.world-map-open{max-width:1100px}.world-map-open #asset-image{max-height:70vh}.world-map-open .asset-details{padding-top:16px}.world-map-card .image-frame{height:280px}.page-heading{margin-bottom:20px}.workspace-stats{gap:8px}.outline-disclosure{margin-top:10px}.workspace-card .outline-disclosure label{font-size:12px}.campaign-panel:has(.demo-card){grid-template-columns:1fr 1fr}.campaign-panel .demo-card h2{font-size:28px}.campaign-panel .demo-card p{max-width:600px}.studio-library .population-section>p{font-size:12px}.studio-library .population-section>h2{margin-top:0}@media(max-width:550px){.campaign-panel:has(.demo-card){grid-template-columns:1fr}.sidebar-tools summary{font-size:10px;padding:0}.world-map-card img,.world-map-card .image-frame{height:250px}.studio-library .population-controls p{font-size:12px}.room-settings select{min-width:0}.asset-details h2{font-size:26px}}
.last-turn-result{font-size:12px;line-height:1.65;padding:10px;background:#273722;border-left:3px solid #cfb577;border-radius:4px;color:#ecdfbb}.action-card #advanced-turn-tools{margin-top:14px}.workspace-card details>.record-list{margin-top:0}.action-card #advanced-turn-tools>details{margin:6px 0 0;padding:0 8px}.studio-library p{line-height:1.5}
body[data-view=battle] [data-tool=interact]{display:flex}body[data-view=battle] .tool-group{grid-template-columns:repeat(4,minmax(0,1fr))}.map-size-summary{font-size:11px;color:#acbba0;margin:6px 0 0}.board-head .tiny-label{display:none}.board-head{padding:16px}.board-head h2{font-size:26px}@media(max-width:550px){.board-head h2{font-size:23px}.map-size-summary{font-size:11px}.board-toolbar #undo{font-size:0}.board-toolbar #undo::after{content:''}.board-toolbar #undo{min-height:65px}}
.studio-flow{display:flex;justify-content:end;align-items:center;gap:16px;margin-bottom:16px}.studio-flow p{flex:1;font-size:12px;line-height:1.6;color:#ebcf94;margin:0}.studio-flow .button{flex:none}@media(max-width:550px){.studio-flow{flex-wrap:wrap}.studio-flow p{flex-basis:100%}}
body[data-view=battle] .page-heading,body[data-view=studio] .page-heading{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:-1px;padding:0}body[data-view=battle] #round-summary,body[data-view=battle] .strip-rule{display:none}.session-strip{padding:10px 12px;margin-bottom:18px}.combat-controls{padding:12px 16px;gap:16px}.combat-controls .tiny-label{display:none}.combat-controls h2{font-size:22px;margin:0}.combat-controls p{margin:6px 0 0;line-height:1.5}.combat-controls .combat-buttons{align-items:center}.board-toolbar .tool-group{width:auto}.player-mode .session-strip{display:none}@media(max-width:550px){.combat-controls{gap:10px}.combat-controls h2{font-size:21px}.combat-controls .combat-buttons{gap:8px}.session-strip{padding:10px}.studio-flow{margin-top:0}}
.story-tabs{display:flex;gap:5px;border-bottom:1px solid var(--line);margin:16px 0;padding:6px}.story-tabs button{flex:1;background:#202b20;border:1px solid #48533f;border-radius:5px;padding:9px 15px;color:#c3ceb7}.story-tabs button[aria-selected=true]{border-color:#d7bd7e;background:#36462b;color:#f0dbac}.asset-options{margin-top:15px;padding-top:5px;border-top:1px solid var(--line)}.asset-options .asset-utilities{margin:5px 0}.asset-details>#asset-back-map{margin-right:8px}.world-map-open>.image-frame{width:min(100%,70vh);aspect-ratio:1;margin:auto;overflow:visible;min-height:0}.world-map-open #asset-image{width:100%;height:100%;max-height:none;aspect-ratio:1}.world-pin{position:absolute;transform:translate(-50%,-50%);width:42px;height:42px;border:2px solid #f3d597;border-radius:50%;background:#203b30;color:#fff0c9;font-size:15px;font-weight:700;box-shadow:0 2px 8px #0009;z-index:3;min-height:42px!important}.world-pin:hover{background:#456238}.world-map-open .image-frame:has(.image-loading) .world-pin{visibility:hidden}.asset-details #story-context>details{margin-bottom:16px}.asset-details .conversation-hook{margin:0}.asset-details h2{font-size:29px}.asset-details p{line-height:1.65}@media(max-width:550px){.world-pin{width:36px;height:36px;min-height:36px!important;font-size:13px}.asset-details h2{font-size:26px}.room-card{padding:10px;gap:10px}}
[role=button]:focus-visible{outline:3px solid #f2d79a;outline-offset:3px}#webgl-error{inset:0;width:auto;max-width:100%;padding:24px;text-align:center;display:grid;place-content:center;line-height:1.6}.world-map-card{grid-template-columns:minmax(260px,360px) minmax(0,1fr)}@media(max-width:900px){.world-map-card{grid-template-columns:1fr}}
@media(max-width:550px){header .breadcrumbs{font-size:0;letter-spacing:0}header .breadcrumbs>span{display:none}header .breadcrumbs b{font-size:10px}.header-tools .button{font-size:11px;padding:7px 9px;min-height:42px}header .header-tools{gap:5px}}@media(max-width:400px){body[data-view=battle] .tool-group,.tool-group{grid-template-columns:repeat(2,minmax(0,1fr))}.board-toolbar #undo{align-self:start}.board-options{width:100%}.board-options .button,.board-options .icon-button{flex:1;justify-content:center}.board-options .ui-icon{width:20px}.board-options span{font-size:10px}.studio-flow .button{width:100%}}
.attack-summary{font-size:12px;color:#b5c5a8;margin:2px 0 12px;line-height:1.5}
.world-map-open{padding-top:58px}.world-map-open>.modal-close{top:8px;right:10px}
.board-vitals{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden}.piece-vitals{position:absolute;width:108px;padding:4px 6px;background:rgba(12,22,27,.92);border:1px solid #557078;border-radius:6px;transform:translate(-50%,-100%);box-shadow:0 2px 6px #0005;color:#f4f7f7;font:10px/1.3 Arial,sans-serif}.piece-vitals[hidden]{display:none}.piece-vitals.selected{border-color:#e6c575;width:130px}.piece-vitals.fallen{border-color:#b7707b}.piece-vitals.concealed{opacity:.5}.vitals-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:700;margin-bottom:3px}.vitals-row{display:flex;align-items:center;gap:4px;height:14px}.vitals-row b{width:15px;font-size:9px}.vitals-track{height:5px;background:#36474d;flex:1;border-radius:3px;overflow:hidden}.vitals-track i{display:block;height:100%;background:#6fda91}.sp .vitals-track i{background:#78bcff}.fallen .hp .vitals-track i{background:#eb7f88}.vitals-number{min-width:31px;text-align:right;font-variant-numeric:tabular-nums}
.vitals-leaders{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.vitals-leaders line{stroke:#e8cf93;stroke-width:1.5;filter:drop-shadow(0 1px 1px #000)}

/* Personal equipment uses short cards and progressive disclosure. */
.backpack-card h2 .ui-icon{width:36px;height:36px;vertical-align:middle}.backpack-workspace{display:grid;gap:14px}.bag-stats{display:flex;flex-wrap:wrap;gap:8px}.bag-stats span{background:#111c1b;border:1px solid #405443;border-radius:9px;padding:8px 12px;font-size:13px}.bag-stats b{color:#e7d292}.bag-load{margin:0;font-size:13px;color:#9daa8a}.bag-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr));gap:12px}.bag-item{padding:16px;border:1px solid #455346;border-radius:12px;background:#17221d}.bag-item.equipped{border-color:#b7a76a;background:#202b24}.bag-item-heading{display:flex;align-items:center;gap:10px}.bag-item-heading>.ui-icon{width:35px;height:35px}.bag-item-heading strong{display:block;font-size:15px}.bag-item-heading strong span{font-weight:400;color:#d7c18d}.bag-item small{display:block;color:#b2bea1}.bag-item p{font-size:13px;line-height:1.6;margin:12px 0}.bag-item .equipment-bonus{color:#d3be85;margin-bottom:10px}.bag-item details{margin-top:14px;font-size:13px}.bag-item summary{color:#b9c7a5}.bag-transfer{display:grid;gap:10px;margin-top:12px}.bag-transfer label{margin:0}.bag-add{border-top:1px solid #41513d;padding-top:16px}.bag-add form{display:grid;grid-template-columns:2fr 1fr;gap:12px;padding-top:14px}.bag-add form button{grid-column:1/-1}.buff-chips{display:flex;flex-wrap:wrap;gap:6px}.buff-chips span{border:1px solid #5e7152;border-radius:30px;padding:5px 9px;font-size:12px}.empty-state{padding:22px;text-align:center;color:#afbea2;border:1px dashed #455744;border-radius:10px}.empty-state>.ui-icon{width:44px;height:44px}.spell-book{display:grid;gap:9px;padding-top:14px}.spell-book label{display:flex;align-items:center;gap:8px;margin:0;font-size:14px}.spell-book input{width:auto}.piece-vitals{font-size:11px;min-width:116px}.piece-vitals.selected{min-width:145px}.vitals-row b,.vitals-number{font-size:11px}.bag-workspace button .ui-icon,#combat-backpack .ui-icon,#named-skills .ui-icon{width:26px;height:26px}.backpack-workspace details>summary{cursor:pointer}.backpack-workspace label{margin:0}.adventure-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:16px}.adventure-card{overflow:hidden;border:1px solid #4f6047;border-radius:14px;background:#1b261e}.adventure-card>img{width:100%;aspect-ratio:16/9;object-fit:cover}.adventure-card>div{padding:18px}.adventure-card h3{margin:5px 0 12px;font-size:24px}.adventure-card p{font-size:14px;line-height:1.6}.adventure-card .quick-actions{margin-top:14px}.adventure-progress{height:5px;background:#344632;border-radius:8px;overflow:hidden;margin:14px 0}.adventure-progress>span{display:block;height:100%;background:#d3b674}.adventure-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.adventure-toolbar select{max-width:280px}.chapter-status{font-size:13px;color:#aebe9c}.adventure-warning{padding:12px 16px;border-left:3px solid #c9b274;background:#293420}.choice-selected{border-color:#d2b674!important;background:#39482d!important}.adventure-rewards{padding:14px;border:1px solid #4a6044;border-radius:9px}.demo-panel details>summary .ui-icon{width:25px;height:25px;vertical-align:middle}#named-skills .quick-actions{margin:14px 0}#named-skills p{font-size:13px}#named-skills label{margin-bottom:12px}
@media(max-width:600px){.bag-stats span{padding:7px 9px;font-size:12px}.bag-add form{grid-template-columns:1fr}.adventure-toolbar select{max-width:100%}.board-options{flex-wrap:wrap}.board-options .select-label{min-width:100px}.piece-vitals{min-width:102px}}

.adventure-card>.image-frame{aspect-ratio:16/9}.adventure-card>.image-frame>img{width:100%;height:100%;object-fit:cover}.adventure-shelf{grid-column:1/-1}.adventure-shelf h2>.ui-icon{width:36px;height:36px;vertical-align:middle}.demo-card>details>summary{font-size:18px;color:#dfcf9d;cursor:pointer}

.world-map-open>.image-frame{width:min(100%,calc(70vh * var(--map-ratio,1)));aspect-ratio:var(--map-ratio,1)}.world-map-open #asset-image{aspect-ratio:auto;object-fit:contain}.backpack-workspace details summary{min-height:32px;display:flex;align-items:center}

.bag-item-heading>.item-art{width:46px;height:46px;border-radius:7px;object-fit:cover;border:1px solid #526644}.bag-add #bag-design{margin:12px 0}.backpack-workspace .quick-actions .ui-icon{width:25px;height:25px}

.library-filters{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.library-filters label{flex:1;min-width:160px}.library-filters input,.library-filters select{width:100%}

.battle-story-panel{border:1px solid var(--border);border-radius:12px;padding:14px 18px;margin-bottom:18px;background:var(--panel)}.battle-story-panel>summary{color:var(--gold);font-size:14px}.battle-story-panel>.demo-panel{margin-top:18px}

.cutaway-toggle{display:flex;gap:7px;align-items:center;font-size:12px;color:var(--muted);margin:0}.cutaway-toggle input{width:15px;height:15px;margin:0}

.board-loading{position:absolute;bottom:15px;left:15px;max-width:calc(100% - 30px);z-index:20;padding:10px 14px;background:#15231de8;border:1px solid #88966b;border-radius:8px;color:#eddfb5;font-size:12px;display:flex;align-items:center;gap:12px;pointer-events:auto}.board-loading[hidden]{display:none}.board-loading .button{padding:6px 10px}

.cue-read{white-space:pre-wrap}.cue-manager .record{flex-wrap:wrap}#cue-form fieldset{border:1px solid var(--line);border-radius:8px;padding:14px}#cue-form fieldset label{display:flex;align-items:center;gap:10px;margin:8px 0}#cue-form fieldset input{width:auto}

.spell-preview{font-size:12px;color:var(--gold);line-height:1.6}.spell-preview:empty{display:none}

.attack-availability{font-size:12px;line-height:1.6;color:var(--gold)}.attack-availability:empty{display:none}

.world-edit-preview{position:relative;margin:16px 0;min-height:80px;background:#19221b;border-radius:12px;overflow:hidden}.world-edit-preview img{display:block;width:100%;height:auto}.world-edit-pin{position:absolute;transform:translate(-50%,-50%);width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#d1b978;color:#131b16;border:2px solid #fff;box-shadow:0 2px 8px #0009}.world-edit-row{padding:16px 0;border-bottom:1px solid #44523b}.world-edit-row label{display:block}

.bag-item-heading>.image-frame{width:46px;height:46px;min-height:46px;flex-shrink:0;border-radius:7px}.bag-item-heading>.image-frame img{width:46px;height:46px;object-fit:cover}.bag-item-heading>.image-frame .image-status{font-size:9px;padding:2px}

.bag-item-heading>.item-art,.bag-item-heading>.image-frame{width:64px;height:64px;min-height:64px}.bag-item-heading>.image-frame img{width:64px;height:64px;object-fit:contain}.equipment-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;max-height:340px;overflow:auto;margin:14px 0}.equipment-card{border:1px solid #41513d;border-radius:10px;background:#1c281f;color:var(--text);padding:12px;display:flex;flex-direction:column;gap:6px;align-items:center;text-align:center}.equipment-card strong{font-size:12px}.equipment-card small{color:var(--muted);font-size:10px}.equipment-card img,.equipment-card .image-frame{width:100%;height:100px;min-height:100px;object-fit:contain;background:transparent}.equipment-card.selected{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold)}.equipment-selection{padding:18px;background:#253323;border:1px solid #475b3d;border-radius:10px}.equipment-selection label{max-width:140px}@media(max-width:600px){.equipment-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-card{padding:8px}.equipment-card img,.equipment-card .image-frame{height:90px;min-height:90px}}

.fullscreen-tools{display:none;position:absolute;bottom:18px;left:18px;z-index:15;gap:8px;flex-wrap:wrap}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-tools{display:flex}#board:is(:fullscreen,.immersive-fullscreen) .board-hint{bottom:68px}

.model-preview canvas{height:auto!important;aspect-ratio:8/7}

/* A quiet turn dock keeps the fullscreen battlefield playable. */
.fullscreen-turn-summary,.fullscreen-battle-panel{display:none}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-turn-summary{display:block;position:absolute;left:18px;bottom:62px;z-index:15;max-width:calc(100% - 40px);padding:10px 14px;border:1px solid #657356;background:#172018ed;border-radius:6px;font-size:13px;color:#e3e6d8;pointer-events:none}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel{display:block;position:absolute;right:16px;top:58px;bottom:110px;width:390px;max-width:calc(100% - 32px);overflow-y:auto;overscroll-behavior:contain;z-index:20;border:1px solid #73825f;border-radius:10px;background:#1b241ded;box-shadow:0 12px 40px #0008;scrollbar-gutter:stable}
.fullscreen-panel-heading{position:sticky;top:0;z-index:2;background:#283328;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--line)}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel .combat-controls{margin:0;border:0;border-radius:0;padding:16px;display:block}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel .combat-controls h2{font-size:23px}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel .combat-buttons{margin-top:12px;justify-content:flex-start}
#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel .encounter-panel{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;max-height:none}
#board:is(:fullscreen,.immersive-fullscreen) .board-hint{bottom:115px}
.player-mode .fullscreen-turn-summary,.player-mode #fullscreen-turn-toggle,.player-mode #fullscreen-next{display:none!important}
@media(max-width:560px){#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-turn-summary{font-size:11px;bottom:110px;left:12px;max-width:calc(100% - 24px)}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-tools{left:12px;right:12px;bottom:12px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel{right:12px;top:52px;bottom:158px;width:calc(100% - 24px);max-width:none}#board:is(:fullscreen,.immersive-fullscreen) .board-hint{display:none}}

.fullscreen-map-tools{margin:12px 16px 20px}.fullscreen-map-tools .board-toolbar{padding:12px 0;flex-wrap:wrap}.fullscreen-map-tools .tool-group{flex-wrap:wrap}.fullscreen-map-tools #coordinate-controls{margin-top:10px}

.physical-attack{padding:12px;margin:12px 0;border:1px solid #566448;border-radius:6px;background:#253025}.physical-attack label{display:block;margin:8px 0}.physical-attack input{width:100%;max-width:none}.physical-attack .form-grid{gap:10px}.physical-attack p{margin:5px 0}

.storage-button{margin:8px 12px}.storage-metrics{display:grid;gap:10px;margin:18px 0}.storage-metrics>div{border:1px solid var(--line);border-radius:6px;padding:12px 14px;background:#263025}.storage-metrics strong{display:block;font-size:17px}.storage-metrics span{display:block;font-size:11px;color:var(--muted);margin-top:5px}.saved-campaign-record>div{min-width:0;flex:1}.saved-campaign-record strong{overflow-wrap:anywhere}.record-options{position:relative;flex-shrink:0;margin:0!important}.record-options>summary{font-size:11px;padding:9px 10px;background:#293228;border:1px solid #48563c;border-radius:4px;white-space:nowrap}.record-options-menu{position:absolute;right:0;top:100%;z-index:5;display:grid;gap:8px;width:180px;padding:12px;border:1px solid #63704f;border-radius:6px;background:#202a20;box-shadow:0 8px 20px #0006}.record-options-menu .text-button{text-align:left}

.vitals-shield{font-size:10px;color:#f1d388;margin-top:3px;text-align:right}

.fullscreen-map-tools .board-toolbar{display:block;padding:12px 0}.fullscreen-map-tools .tool-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.fullscreen-map-tools .tool{min-width:0;min-height:44px;justify-content:flex-start;padding:8px 12px}.fullscreen-map-tools .tool span{font-size:12px}.fullscreen-map-tools .tool-actions{margin-top:8px}.fullscreen-map-tools .board-toolbar>button{margin-top:8px}

/* Separate field labels from controls in every battle layout. */
#named-skills>label{display:grid;gap:8px;margin:16px 0 10px;font-size:13px}#named-skills>label select{display:block;width:100%;max-width:none;min-width:0;min-height:44px}#named-skills .quick-actions{gap:10px;flex-wrap:wrap}#named-skills .quick-actions .button{padding:10px 14px}#cast-spell{margin-top:6px;margin-bottom:12px}.fullscreen-map-tools #coordinate-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fullscreen-map-tools #coordinate-form>button{grid-column:1/-1}.fullscreen-map-tools #coordinate-form label{display:grid;gap:8px}.fullscreen-map-tools #coordinate-form select,.fullscreen-map-tools #coordinate-form input{width:100%;max-width:none;min-height:44px}.coordinate-visibility{display:flex;align-items:center;gap:10px;margin:12px 0}.coordinate-visibility input{width:auto}
.grid-coordinate-labels{position:absolute;inset:0;z-index:3;pointer-events:none;overflow:hidden}.grid-coordinate{position:absolute;transform:translate(-50%,-50%);padding:2px 4px;min-width:17px;text-align:center;font:600 11px/1.2 var(--sans);border:1px solid #6b7956;border-radius:4px;background:#152017e8;color:#ebdfbd;box-shadow:0 1px 3px #0005}.grid-coordinate.current{background:#d7bd78;color:#172015;border-color:#f2dc9d}

#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-map-tools .tool-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-map-tools .tool{min-height:44px;padding:10px 12px;gap:10px}#coordinate-controls .coordinate-visibility{display:flex;align-items:center;gap:10px;padding:8px 0;font-size:13px}#coordinate-controls .coordinate-visibility input{width:18px;min-width:18px;height:18px;margin:0}

/* Help uses selectable topics rather than one long instruction page. */
.help-dialog{max-width:1040px;width:94vw;padding:24px;max-height:90vh}.help-heading{padding-right:48px;margin-bottom:16px}.help-heading h2{font:500 30px var(--serif);margin:8px 0 0}.help-layout{display:grid;grid-template-columns:170px minmax(0,1fr);gap:20px;align-items:start}.help-sections{display:grid;gap:6px}.help-sections .button{text-align:left;justify-content:flex-start;padding:11px 13px}.help-sections [aria-pressed=true]{background:#35472e;border-color:#d0b475;color:#f0dab0}.help-main{min-width:0}.help-main .help-search-label{display:grid;gap:6px;margin:0 0 12px;font-size:12px}.help-main input{margin:0;min-height:42px;width:100%}.help-icon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin-bottom:14px}.help-icon-choice{display:flex;align-items:center;gap:10px;padding:8px 10px;min-width:0;min-height:53px;border:1px solid #455440;background:#17221b;border-radius:7px;text-align:left;font-size:12px}.help-icon-choice img{width:32px;height:32px;object-fit:contain;flex-shrink:0}.help-icon-choice[aria-pressed=true]{background:#35452e;border-color:#d0b475}.help-detail{border:1px solid #526245;background:#172119;border-radius:10px;padding:16px}.help-detail-heading{display:flex;gap:12px;align-items:center}.help-detail-heading>img{width:44px;height:44px}.help-detail h3{margin:0;font:500 25px var(--serif)}.help-detail-heading p{margin:4px 0 0;font-size:11px;color:#d5c089}.help-purpose{margin:12px 0;font-size:13px;line-height:1.5}.help-instruction-layout{display:grid;grid-template-columns:minmax(170px,.85fr) minmax(0,1.15fr);gap:16px;align-items:center}.help-steps{list-style:none;counter-reset:help;display:grid;gap:10px;padding:0;margin:0}.help-steps li{counter-increment:help;position:relative;padding-left:29px;font-size:12px;line-height:1.5}.help-steps li:before{content:counter(help);position:absolute;left:0;top:0;border-radius:50%;background:#d3bb7c;color:#192119;width:20px;height:20px;display:grid;place-items:center;font-weight:700}.help-map{width:100%;max-height:150px}.help-screen-pair,.help-flow-visual{display:flex;gap:8px;align-items:center;justify-content:center;background:#263527;border-radius:8px;padding:14px 8px}.help-screen-pair>div,.help-flow-visual>div{display:grid;gap:7px;text-align:center;justify-items:center;min-width:0;font-size:11px}.help-screen-pair img,.help-flow-visual img{width:42px;height:42px;object-fit:contain}.help-screen-pair small{font-size:9px;color:#b9c5ae}.help-dice-example{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:20px 8px;border-radius:8px;background:#273627}.help-dice-example strong{display:grid;place-items:center;width:50px;height:50px;border:2px solid #d0b475;border-radius:12px;font-size:24px;color:#f0d493}.help-dice-example small{width:100%;text-align:center;font-size:10px}.help-footer{display:flex;align-items:center;gap:15px;justify-content:space-between;margin-top:16px;font-size:11px;color:#b4c0a7}.help-footer .button{flex-shrink:0}.help-main .help-mobile-choice{display:none}.standalone-help{max-width:1100px;margin:auto;padding:24px}.standalone-help>.button{margin-bottom:20px}
@media(max-width:700px){.help-layout{grid-template-columns:1fr;gap:12px}.help-sections{display:flex;gap:6px;overflow-x:auto;padding:3px 0 8px}.help-sections .button{flex-shrink:0;white-space:nowrap;font-size:12px;padding:10px}.help-instruction-layout{grid-template-columns:1fr}.help-map{max-height:125px}.help-screen-pair,.help-flow-visual{padding:9px}.help-dialog{padding:20px 14px}.help-footer{align-items:flex-start;flex-direction:column}.help-footer .button{width:100%}.help-heading h2{font-size:26px}}
@media(max-width:560px){.help-icon-grid{display:none}.help-main .help-mobile-choice{display:grid;gap:7px;margin:10px 0 14px}.help-mobile-choice select{max-width:none;width:100%;min-height:44px}.help-detail{padding:13px}.help-detail h3{font-size:23px}.help-steps li{font-size:12px}.help-dialog{max-height:92vh}.standalone-help{padding:18px 12px}}

.help-health-example{display:grid;gap:9px;padding:18px;background:#263527;border-radius:8px}.help-health-example>div{display:flex;align-items:center;gap:8px;font-size:11px}.help-health-example span{height:7px;flex:1;border-radius:8px;background:#6bdfa1}.help-health-example .sp{background:#79c2ff}.help-health-example small{color:#e6ca86}

@media(max-width:560px){.help-sections{display:none}.help-main .help-topic-label{margin:0 0 12px}.help-heading h2{font-size:25px}.help-footer{margin-top:12px}.help-map{max-height:110px}}

.help-pagination{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0 0 14px;font-size:11px}.help-pagination .button{padding:7px 10px}@media(max-width:560px){.help-pagination{display:none}}
@media(min-width:701px){.help-dialog{padding:20px}.help-heading{margin-bottom:12px}.help-icon-choice{min-height:48px;padding:6px 10px}.help-map{max-height:110px}.help-detail{padding:14px}.help-purpose{margin:10px 0}.help-footer{margin-top:12px}}

.help-main input,.help-main select{background:#111c13;color:var(--text);border:1px solid #42543a;border-radius:5px;padding:10px;font:13px var(--sans)}
.combat-controls .battle-outcome-hint{color:#e1c783;font-size:13px;line-height:1.5;margin:8px 0 0;max-width:520px}
.help-flow-visual .help-volume{width:42px;height:42px;flex-shrink:0}
.campaign-start{border-color:#8d814e;background:linear-gradient(135deg,#293323,#1b251c);margin-bottom:20px}.campaign-start h2{margin:8px 0}.creation-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.creation-step{display:flex;gap:14px;text-align:left;align-items:center;padding:16px;background:#152019;border:1px solid #48593c;border-radius:9px;min-height:92px}.creation-step span{display:grid;gap:7px}.creation-step small{font-size:13px;line-height:1.45;color:#c0cbb5}.creation-step:hover{border-color:#dac383}.tab-intro{padding:14px 18px;border-left:3px solid #d2bc7e;background:#263021;font-size:14px;line-height:1.6;margin-bottom:20px}.asset-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.asset-explain-card{border:1px solid #43523b;border-radius:9px;padding:16px;background:#172119}.asset-explain-card .button{width:100%;text-align:left;justify-content:flex-start;white-space:normal;min-height:48px}.asset-explain-card p{font-size:13px;line-height:1.6;margin:12px 0 0;color:#c0cbb5}.piece-facing-controls{padding:12px 18px;border-top:1px solid #45533c}.piece-facing-controls[open]{background:#202c20}.piece-facing-controls label{display:grid;gap:8px;max-width:100%;margin:12px 0}.piece-facing-controls select,.piece-facing-controls input{width:100%;min-height:44px;max-width:none;background:#111c13;color:var(--text);border:1px solid #45573c;border-radius:5px;padding:10px}.piece-facing-controls .muted{font-size:13px;line-height:1.5}.bag-howto{padding:12px;background:#293624;border-radius:7px;font-size:13px;line-height:1.6}.bag-primary-actions{margin:16px 0}.asset-picture-options{margin:18px 0}.simple-room{padding:12px;margin:10px 0;background:#17231a;border:1px solid #45543a;border-radius:7px}.simple-room fieldset{border:1px solid #45543a;border-radius:7px}.check-label{display:flex!important;gap:10px;align-items:center}.check-label input{width:18px!important;height:18px;margin:0!important}.room-mini-preview{max-height:160px}.world-art-choice{display:flex;align-items:flex-end;gap:14px;margin:16px 0}.world-art-choice label{flex:1}.world-edit-preview img{display:block;width:100%;max-height:none;object-fit:contain}.world-edit-pin{pointer-events:none}.world-edit-pin.selected{outline:3px solid #fff0b3}.world-edit-row{margin:14px 0;padding:16px;border:1px solid #48563e;border-radius:9px;background:#17221a}.campaign-panel .record{flex-wrap:wrap}.campaign-panel .record>div:first-child{min-width:150px;flex:1}.campaign-start .quick-actions{margin:15px 0}.asset-picture-options .upload-spec{font-size:13px;line-height:1.6}#audio-volume{width:100%;accent-color:#d2bb78}#audio-status{padding:12px;background:#243122;border-radius:7px;min-height:44px}#campaign-create-form details{margin:20px 0}
.campaign-start,.tab-intro{grid-column:1/-1}#campaign-panel-assets>.workspace-card{grid-column:1/-1}.asset-upload-grid{align-items:stretch}.asset-upload-grid .asset-explain-card{align-self:stretch}.asset-upload-grid .asset-explain-card .button{margin:0}.asset-upload-grid .asset-explain-card p{margin:12px 0 0}.uploaded-file-list{margin:18px 0}
@media(max-width:700px){.creation-steps,.asset-upload-grid{grid-template-columns:1fr}.world-art-choice{align-items:stretch;flex-direction:column}.creation-step{min-height:80px;padding:13px}.piece-facing-controls{padding:12px}.campaign-start h2{font-size:28px}#board:is(:fullscreen,.immersive-fullscreen) .piece-facing-controls .quick-actions{display:grid;grid-template-columns:1fr 1fr}#board:is(:fullscreen,.immersive-fullscreen) #face-square{grid-column:1/-1}}
.player-return{top:auto;bottom:16px;right:18px;opacity:.7}.player-return:hover,.player-return:focus-visible{opacity:1}
.player-caption{max-width:calc(100vw - 36px);text-align:center;overflow-wrap:anywhere}.player-stage .recap{max-height:calc(100vh - 100px);overflow:auto;overscroll-behavior:contain;font-size:clamp(18px,3vw,32px)}
@media(max-width:560px){.player-caption{bottom:68px;font-size:18px;padding:10px 14px}.player-stage .recap{padding:24px}}

/* Campaign identity and session tools stay grouped at every width. */
.session-strip{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;padding:16px 18px;align-items:center}
.session-identity{min-width:0}.session-identity>label{display:block;font-size:11px;letter-spacing:.06em;color:var(--muted);margin-bottom:6px}.session-strip .session-identity #campaign{display:block;width:100%;min-width:0;max-width:none;font-size:16px;line-height:1.5;padding:5px 0;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;color:var(--text)}
.session-tools{display:flex;align-items:center;justify-content:space-between;gap:20px;min-width:0}.session-tools #ambience{display:inline-flex;align-items:center;justify-content:flex-start;gap:8px;min-height:44px;margin:0;padding:6px 0;line-height:1.4;white-space:normal;text-align:left}.session-tools #ambience .ui-icon{width:28px;height:28px;flex:0 0 28px;margin:0}.session-tools #round-summary{white-space:nowrap;font-size:13px;color:var(--muted)}
@media(max-width:900px){.session-strip{grid-template-columns:minmax(0,1fr);gap:8px}.session-tools{width:100%}}
.player-mode .session-strip{display:none}

/* Focused session preparation and online play. */
.setup-checklist{display:grid;gap:10px}.setup-check{display:flex;align-items:center;gap:14px;padding:14px;text-align:left;border:1px solid var(--line);border-radius:8px;background:#242d22;min-height:68px}.setup-check>span:nth-child(2){flex:1;min-width:0}.setup-check small,.sheet-spells small{display:block;color:var(--muted);line-height:1.5;margin-top:5px}.setup-check.complete>span:first-child{color:#7ddd9d}.setup-progress{color:var(--muted);font-size:12px}.sheet-tabs,.online-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0}.sheet-tabs [aria-selected=true],.online-tabs [aria-selected=true]{border-color:var(--gold);background:#39472e}.sheet-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:20px 0}.sheet-stats>div{display:flex;flex-direction:column;gap:6px;padding:14px;border:1px solid var(--line);border-radius:6px}.sheet-stats small{color:var(--muted)}.sheet-stats strong{font-size:20px}.sheet-spells{display:grid;gap:12px;margin-bottom:20px}.sheet-spells>label{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:6px}.sheet-spells input{width:20px!important;flex:0 0 20px}.group-preview{display:block;width:140px;height:140px;object-fit:contain;margin:12px auto}.move-preview-box{position:absolute;z-index:14;bottom:64px;left:16px;right:16px;max-width:440px;background:#17271fee;border:1px solid var(--gold);border-radius:8px;padding:14px;backdrop-filter:blur(8px)}.move-preview-box p{margin:0 0 10px}.member-assignments{display:flex;flex-direction:column;gap:8px}.member-assignments label,.cloud-auto{display:flex!important;align-items:center;gap:10px}.member-assignments input,.cloud-auto input{width:20px!important}.plan-placeholders{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.plan-placeholders>div{display:flex;flex-direction:column;gap:10px;border:1px dashed var(--line);border-radius:8px;padding:18px}.plan-placeholders small{color:var(--muted)}.practice-guide{border:1px solid var(--gold);background:#2b3527;border-radius:8px;padding:18px;margin-bottom:24px}.practice-title{display:flex;justify-content:space-between;gap:12px}.practice-guide p{margin:10px 0}.remote-controls{position:fixed;z-index:70;right:16px;bottom:16px;width:min(380px,calc(100vw - 32px));max-height:65vh;overflow:auto;background:#1b281ff5;border:1px solid var(--gold);border-radius:10px;padding:16px}.remote-controls label{display:grid;gap:6px;margin:12px 0}.remote-controls input,.remote-controls select{max-width:100%;min-width:0}.remote-controls summary{font-weight:700;cursor:pointer}progress{width:100%;height:10px;accent-color:var(--gold);margin-bottom:18px}.sidebar-tools{gap:8px}.sidebar-tools>.button{white-space:normal} @media(max-width:650px){.sheet-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.move-preview-box{left:8px;right:8px;bottom:48px;padding:10px}.setup-check{padding:10px;gap:8px}.plan-placeholders{grid-template-columns:1fr}.online-tabs>.button{flex:1}.practice-title{flex-wrap:wrap}}

.sheet-portrait{float:right;width:112px;height:112px;object-fit:contain;background:#23352f;border-radius:10px;margin:0 0 12px 12px}.prepared-battle-notes{flex-basis:100%;width:100%}.record:has(.prepared-battle-notes){flex-wrap:wrap}.sidebar>#online-open{margin:8px 0;min-height:44px;text-align:center}.remote-controls .button{margin:4px 0}

.mobile-nav-toggle,.mobile-nav-dismiss{display:none}.mobile-nav-shade{position:fixed;inset:0;background:#0009;z-index:149}
@media(max-width:600px){body:not(.player-mode)>.app{margin-left:0}.mobile-nav-toggle{display:block;flex:none}body:not(.player-mode) header>.breadcrumbs{display:none}body:not(.player-mode) header{gap:8px;padding:10px 12px;justify-content:space-between}.header-tools{gap:6px}body:not(.player-mode) .sidebar{width:224px;z-index:150;padding:16px 14px;transform:translateX(-100%);visibility:hidden;transition:transform .18s ease,visibility .18s ease}.mobile-nav-open:not(.player-mode) .sidebar{transform:translateX(0);visibility:visible}.mobile-nav-dismiss{display:block;align-self:flex-end;margin-bottom:16px}.mobile-nav-open .sidebar .brand>span:last-child,.mobile-nav-open .sidebar .workspace-label{display:block}.mobile-nav-open .sidebar .nav{justify-content:flex-start;font-size:14px;gap:12px;padding:11px 12px}.mobile-nav-open .sidebar .nav>span:first-child{width:36px}.mobile-nav-open .sidebar .brand{padding-bottom:20px}.mobile-nav-open .sidebar .side-divider{display:block;margin:16px 0}.mobile-nav-open .sidebar{overflow-y:auto}main{padding-left:14px;padding-right:14px}}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none!important}}
@media(max-width:600px){body:not(.player-mode) header{position:sticky;top:0;z-index:40;background:var(--bg)}#main-content{scroll-margin-top:60px}}

@media(max-width:600px){.mobile-nav-open .sidebar .nav{flex-direction:row;min-height:48px}.mobile-nav-open .sidebar .nav .ui-icon{width:30px;height:30px}.mobile-nav-open .sidebar .nav>span:last-child{text-align:left}.mobile-nav-open .sidebar .brandmark .brand-image{width:44px;height:44px}}

.player-quality{position:fixed;top:15px;left:15px;z-index:60;opacity:.75}.player-quality:hover,.player-quality:focus-visible{opacity:1}

#guided-hero input[type=checkbox],#journey-panel input[type=checkbox]{width:20px;height:20px;flex:0 0 20px;accent-color:var(--gold)}#guided-hero label:has(input[type=checkbox]),#journey-panel label:has(input[type=checkbox]){display:flex;align-items:center;gap:10px}.player-dashboard h3{margin:0 0 12px}.player-dashboard .sheet-tabs{margin:10px 0}.player-dashboard .workspace-card{padding:16px;margin:12px 0}.player-dashboard details{margin:10px 0}.player-dashboard .sheet-tabs .button{flex:1;min-height:44px}#journey-panel label{margin:12px 0}#journey-panel .record-list{margin:16px 0}#journey-panel .record{flex-wrap:wrap}#journey-panel .record>div{min-width:0}#journey-panel details{margin:18px 0}#journey-panel .sheet-portrait{width:90px;height:110px;object-fit:cover} @media(max-width:650px){#journey-panel .sheet-tabs .button{flex:1 1 40%}#journey-panel .form-grid{grid-template-columns:1fr}.player-dashboard .sheet-tabs{gap:5px}}

#journey-panel{grid-column:1 / -1;min-width:0}#journey-content{max-width:900px}

/* One focused setup step, with a compact return path after editing content. */
.guide-step-nav{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.guide-step-nav [aria-current=step]{outline:2px solid var(--gold);outline-offset:2px}.guide-current-step{padding:20px;border:1px solid var(--line);border-radius:12px;margin:18px 0;background:var(--panel)}.campaign-guide-resume{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;margin-bottom:18px;border:1px solid var(--line);border-radius:10px}.campaign-guide-resume span{flex:1;min-width:180px}

.map-edit-shortcuts{padding:14px;border-top:1px solid var(--line);align-items:center}.map-edit-shortcuts span{flex:1;min-width:200px;font-size:.85rem}

.enemy-preset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:18px 0}.enemy-preset-grid button{display:flex;flex-direction:column;align-items:flex-start;white-space:normal;text-align:left}.enemy-preset-grid small{color:var(--muted);margin-top:4px}.enemy-preset-grid [aria-pressed="true"]{border-color:var(--gold);background:var(--accent)}#action-records .record{flex-wrap:wrap;gap:8px}#custom-battle-actions label{display:block;margin:12px 0}#custom-battle-actions select{width:100%}

.studio-character-tools{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--line,#3c4836)}.studio-character-tools p{font-size:13px;line-height:1.5;margin:0 0 12px}.studio-character-tools .quick-actions{gap:10px;flex-wrap:wrap}

/* The latest attack remains readable on the map and at the top of turn actions. */
.attack-result{border:1px solid #6c8263;border-left:5px solid #85d79c;border-radius:9px;padding:15px;background:#18291f;margin:0 0 20px;overflow-wrap:anywhere}.attack-result.miss{background:#232831;border-color:#8893a4;border-left-color:#a8b2c3}.attack-result.critical{border-color:#dbc27c;border-left-color:#f0cd72;background:#30291b}.attack-result-heading{display:grid;gap:6px}.attack-result-heading>strong{font-size:26px;color:#b0f3be}.attack-result.miss .attack-result-heading>strong{color:#d6deec}.attack-result.critical .attack-result-heading>strong{color:#ffe4a1}.attack-result-actors{font-size:14px;line-height:1.6;margin:8px 0 14px!important}.attack-result-numbers{display:flex;align-items:center;gap:18px}.attack-result-numbers>div{display:grid;gap:3px}.attack-result-numbers strong{font-size:32px;line-height:1.1;color:#fff}.attack-result-numbers span{font-size:12px;color:#c7d0c4}.attack-result-impact{font-size:17px!important;margin:14px 0!important}.attack-result-health>div{display:flex;justify-content:space-between;gap:10px;font-size:12px}.attack-result-health progress{width:100%;height:12px;accent-color:#83d398;margin:7px 0 3px}.attack-result-health small{font-size:12px;color:#d1d5ce}.attack-result details{margin-top:12px;padding-top:8px}.attack-result details p{font-size:12px}.map-attack-result{position:absolute;bottom:14px;left:14px;right:14px;z-index:4;background:#12251ef0;border:1px solid #79b08b;border-left:5px solid #92e0a8;border-radius:7px;padding:11px 15px;pointer-events:none;color:#f4fff3;font-size:15px;font-weight:600;line-height:1.5;box-shadow:0 4px 18px #0006;overflow-wrap:anywhere}.map-attack-result.miss{background:#232832f2;border-color:#9da8ba;color:#edf1fb}.details-stats{border:1px solid var(--line);border-radius:7px;margin:16px 0;padding:12px}.details-stats summary{font-weight:600;cursor:pointer}.details-stats[open] summary{margin-bottom:14px}#vitals-form h3{font-size:23px;margin:22px 0 10px}#vitals-form input,#vitals-form select,#vitals-form textarea{width:100%;max-width:100%;min-width:0}#vitals-form label{display:grid;gap:7px}#vitals-form .form-grid{gap:14px}#vitals-form .quick-actions{margin-top:22px}@media(max-width:550px){.map-attack-result{font-size:12px;left:8px;right:8px;bottom:8px;padding:8px 10px}.attack-result{padding:12px}#vitals-form .form-grid{grid-template-columns:1fr}}

#board:is(:fullscreen,.immersive-fullscreen) .map-attack-result{top:62px;bottom:auto;left:18px;right:18px}#board:is(:fullscreen,.immersive-fullscreen):has(#fullscreen-battle-panel:not([hidden])) .map-attack-result{display:none}

/* Keep fullscreen status and buttons in one measured flow, including wrapped phone controls. */
.fullscreen-dock{display:none}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock{position:absolute;left:18px;right:18px;bottom:14px;z-index:15;display:flex;flex-direction:column-reverse;align-items:flex-start;gap:10px;pointer-events:none}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-tools{position:static;display:flex;gap:8px;flex-wrap:wrap;max-width:100%;padding:8px;border:1px solid #596a52;border-radius:8px;background:#18231ff5;pointer-events:auto}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-tools .button{min-height:44px;white-space:normal}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-turn-summary{position:static;max-width:100%;margin:0;font-size:13px;line-height:1.5}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel{bottom:calc(var(--fullscreen-dock-height,100px) + 28px)}@media(max-width:560px){#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock{left:12px;right:12px;bottom:12px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:8px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-turn-summary{font-size:11px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel{bottom:calc(var(--fullscreen-dock-height,200px) + 24px)}}

#enemy-list{max-height:230px;overflow-y:auto;overscroll-behavior:contain;padding:4px;margin:16px 0;border-bottom:1px solid var(--line)}@media(max-width:550px){#enemy-list{max-height:190px}}

#board:is(:fullscreen,.immersive-fullscreen) .move-preview-box,#board:is(:fullscreen,.immersive-fullscreen) .board-loading{bottom:calc(var(--fullscreen-dock-height,100px) + 28px)}
@media(max-width:560px){.fullscreen-panel-heading{flex-wrap:wrap;gap:8px;padding:10px 12px}.fullscreen-panel-heading>strong{flex-basis:100%}#board:is(:fullscreen,.immersive-fullscreen) .move-preview-box,#board:is(:fullscreen,.immersive-fullscreen) .board-loading{bottom:calc(var(--fullscreen-dock-height,200px) + 24px)}}

/* Private numbered rooms: status is readable without relying on color. */
.room-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.room-slot{border:1px solid var(--line);border-radius:8px;padding:16px;background:#18221b;min-width:0}.room-slot.current{border-color:var(--gold)}.room-slot-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.room-slot-status{font-size:12px;background:#293a2b;border-radius:20px;padding:4px 9px}.room-slot.occupied .room-slot-status{background:#3c3525;color:#f0d891}.room-slot p{overflow-wrap:anywhere;margin:12px 0;font-size:14px}.room-slot small{display:block;color:var(--muted);margin-bottom:12px}.room-slot .quick-actions{gap:8px;flex-wrap:wrap}.room-slot .button,.room-join-card .button,#room-list-refresh{min-height:44px}.room-join-card{border:1px solid var(--line);border-radius:8px;padding:16px;margin:18px 0}.room-join-card form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.room-join-card label{flex:1;min-width:140px;display:grid;gap:8px}.room-join-card input,#room-link{width:100%;min-width:0}#room-slots{margin:20px 0}#room-slots>summary,.room-display-guide>summary{font-size:16px;cursor:pointer;min-height:44px;padding:10px 0}#room-library{min-width:0}#room-panel>p,#room-slots>p,.room-display-guide p{overflow-wrap:anywhere}#room-panel>button{margin:4px;min-height:44px}@media(max-width:560px){.room-slot-grid{grid-template-columns:1fr}.room-join-card form .button{width:100%}}

/* Phone landscape uses the whole viewport; iOS can use the expanded-view fallback. */
body.immersive-open{overflow:hidden}#board.immersive-fullscreen{position:fixed;inset:0;width:100vw;height:100dvh!important;z-index:80;border-radius:0}#board:fullscreen{height:100dvh}.fullscreen-rotate-hint{display:none;pointer-events:none}
@media(pointer:coarse) and (orientation:portrait){#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-rotate-hint{display:grid;gap:6px;position:absolute;left:12px;right:12px;top:58px;z-index:16;padding:14px;border:1px solid var(--gold);border-radius:8px;background:#19291df2;font-size:14px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-rotate-hint span{font-size:12px}#board:is(:fullscreen,.immersive-fullscreen):has(.fullscreen-battle-panel:not([hidden])) .fullscreen-rotate-hint{display:none}}
@media(max-height:600px) and (orientation:landscape){#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock{left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));bottom:max(6px,env(safe-area-inset-bottom));gap:4px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-tools{display:flex;width:auto;gap:5px;padding:4px;flex-wrap:wrap}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-tools .button{min-height:44px;padding:6px 10px;font-size:12px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-dock .fullscreen-turn-summary{font-size:11px;padding:5px 10px;max-width:calc(100vw - 24px)}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-battle-panel{right:max(8px,env(safe-area-inset-right));top:8px;bottom:calc(var(--fullscreen-dock-height,88px) + 12px);width:min(340px,55vw);max-width:none;border-radius:8px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-panel-heading{flex-wrap:nowrap;padding:7px 9px;gap:6px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-panel-heading>strong{flex-basis:auto;font-size:13px}#board:is(:fullscreen,.immersive-fullscreen) .fullscreen-panel-heading .button{min-height:44px;font-size:11px;padding:6px 8px}#board:is(:fullscreen,.immersive-fullscreen) .board-hint{display:none}#board:is(:fullscreen,.immersive-fullscreen) .map-attack-result{top:48px;left:12px;right:12px;font-size:13px;max-width:520px}#board:is(:fullscreen,.immersive-fullscreen) .board-badge{top:8px;left:8px}#board:is(:fullscreen,.immersive-fullscreen) .board-coordinates{top:14px;right:10px}}

.player-view-tools{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:flex;gap:8px;z-index:65}.player-view-tools .player-quality{position:static;opacity:1}.player-view-tools .button{min-height:44px}.player-audio-dialog{max-width:480px;padding:24px;width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}.player-audio-dialog label{display:grid;gap:8px;margin:16px 0}.player-audio-dialog select{width:100%;max-width:none;min-height:44px}.player-audio-dialog .quick-actions{gap:8px;flex-wrap:wrap}.player-audio-dialog .button{min-height:44px}@media(max-width:650px){.player-mode .remote-controls{top:72px;max-height:calc(100dvh - 88px)}}

@media(max-width:560px){.room-slot-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.room-slot{padding:12px}.room-slot-heading{gap:6px}.room-slot .quick-actions .button{width:100%}.room-slot .button{padding:8px;white-space:normal;font-size:12px}.room-slot p{font-size:12px;margin:8px 0}.room-slot-status{font-size:11px;padding:3px 6px}}

/* Room onboarding and a useful empty player screen. */
.room-start-guide{padding:18px;background:#253127;border:1px solid var(--line);border-radius:8px;margin:18px 0}.room-start-guide h3{margin:0 0 12px}.room-start-guide ol,.player-connection ol{padding-left:22px;line-height:1.7}.room-start-guide li,.player-connection li{margin:10px 0}.room-start-guide p{margin-bottom:0}.room-join-card>summary{cursor:pointer;font-weight:700;min-height:44px;display:flex;align-items:center}.room-join-card p,.room-display-guide p{line-height:1.7}.player-connection{position:fixed;inset:0;z-index:55;overflow:auto;background:#111d17;display:grid;align-items:center;padding:86px 20px 76px}.player-connection-card{width:100%;max-width:580px;margin:auto;padding:28px;background:#1c291f;border:1px solid #66774e;border-radius:12px;box-sizing:border-box}.player-connection h1{font:32px/1.2 var(--serif);margin:14px 0}.player-connection p{line-height:1.7}.player-connection .button{display:inline-flex;align-items:center;min-height:44px;white-space:normal}.player-connection details{margin-top:16px;border-top:1px solid var(--line);padding-top:8px}.player-connection summary{cursor:pointer;min-height:44px;padding:10px 0;line-height:1.5}.player-awaiting-map .player-return,.player-awaiting-map #board-loading{display:none!important}@media(max-width:600px){.player-connection{padding:76px 12px 24px}.player-connection-card{padding:20px}.player-connection h1{font-size:28px}.room-start-guide{padding:14px}}

/* Scene play tools are grouped behind one tab; notes remain private by default. */
.scene-play-card,.story-person-play{display:grid;gap:18px;min-width:0}
.scene-play-card>h3,.scene-play-card>p{margin:0}
.scene-play-card details,.story-person-play details{padding:12px;border:1px solid var(--line,#414b35);border-radius:8px;min-width:0}
.scene-play-card summary,.story-person-play summary,.player-story-dialog summary{cursor:pointer;line-height:1.5;min-height:32px}
.scene-play-card form,.story-person-play form{display:grid;gap:16px;margin-top:14px}
.scene-play-card label,.story-person-play label{display:grid;gap:8px;min-width:0}
.scene-play-card label:has(input[type=checkbox]),.story-person-play label:has(input[type=checkbox]){display:flex;align-items:start;gap:10px}
.scene-play-card :is(input,select,textarea),.story-person-play :is(input,select,textarea){max-width:100%;min-width:0}
.scene-play-card .quick-actions,.story-person-play .quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}
.scene-play-card .button,.story-person-play .button{white-space:normal;min-height:44px}
.story-clue{border-left:3px solid #b8a067;background:#222b22;padding:14px;margin:12px 0;overflow-wrap:anywhere}
.story-clue p{white-space:pre-wrap;line-height:1.6;margin:10px 0}
.clue-visibility{display:block;font-size:13px;color:#cad8b4;margin:10px 0}
.story-check-result{padding:18px;border:2px solid #87b184;border-radius:8px;margin-top:16px}
.story-check-result>strong{font-size:25px}.story-check-result.failed{border-color:#c7aa73}
.story-person-summary{display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between}
.story-shop-item{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0;padding:12px;border:1px solid #414b35;border-radius:8px}
.story-shop-item small{display:block;margin-top:6px}.story-shop-item>div{min-width:0;overflow-wrap:anywhere}
.player-story-dialog{width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 32px);box-sizing:border-box;overflow:auto;padding:24px;color:#eee9d7;background:#182218;border:1px solid #b8a067;border-radius:12px}
.story-notebook-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.story-notebook-heading h2{font-size:28px;margin:0}
.player-story-dialog::backdrop{background:#0009}.player-story-dialog .button{min-height:44px}
.player-view-tools{max-width:calc(100vw - 24px);flex-wrap:wrap;gap:6px}.player-stage{padding-top:70px}
@media(max-width:600px){.scene-play-card .form-grid{grid-template-columns:1fr}.story-shop-item{flex-wrap:wrap}.player-story-dialog{padding:18px}.story-notebook-heading{align-items:flex-start}.story-notebook-heading h2{font-size:23px}.player-view-tools .button{padding:10px}.scene-play-card>details,.story-person-play>details{padding:10px}}

#asset-dialog :is(.scene-play-card,.story-person-play) :is(input:not([type=checkbox]),select,textarea){display:block;width:100%;max-width:none;min-height:44px;background:#162116;color:#eee9d7;border:1px solid #536449;border-radius:6px;padding:10px;font:inherit}
#asset-dialog :is(.scene-play-card,.story-person-play) textarea{min-height:100px}
#asset-dialog :is(.scene-play-card,.story-person-play) .button,#asset-dialog .story-tabs button{min-height:44px}
#asset-dialog .scene-play-card .form-grid{gap:16px}
@media(max-width:600px){#asset-dialog .scene-play-card label,#asset-dialog .story-person-play label{font-size:14px}#asset-dialog :is(.scene-play-card,.story-person-play) :is(input,select,textarea){font-size:16px}}

@media(max-width:600px){#asset-dialog:has(.scene-play-card) #asset-image,#asset-dialog:has(.story-person-play) #asset-image{max-height:240px;object-fit:contain;background:#111a12}.story-shop-item{flex-wrap:wrap}.story-shop-item>div{flex-basis:100%}}
