:root{--bg:#0f1118;--panel:#171b26;--panel2:#202638;--text:#eef2ff;--muted:#aeb7cf;--accent:#f6b84b;--accent2:#8fd3ff;--danger:#ff6b6b;--good:#72e39f;--border:rgba(255,255,255,.12)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at top left,#27314b 0,#10121a 45%,#07080d 100%);color:var(--text)}
button,input,select,textarea{font:inherit}button{border:1px solid var(--border);background:#252c40;color:var(--text);border-radius:12px;padding:.65rem .9rem;cursor:pointer}button:hover{filter:brightness(1.12)}button.primary{background:linear-gradient(135deg,#d8902d,#f5c56a);color:#160f05;border:none;font-weight:800}.danger{background:#3b1d25;color:#ffd6d6;border-color:#6c2937}.alert{margin:1rem;background:#421f24;border:1px solid #7a333d;padding:1rem;border-radius:16px}
.topbar{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.2rem 1.5rem;border-bottom:1px solid var(--border);background:rgba(10,12,18,.78);backdrop-filter:blur(10px);position:sticky;top:0;z-index:10}.topbar h1{margin:0;font-size:1.4rem}.topbar p{margin:.25rem 0 0;color:var(--muted)}.topbar nav{display:flex;gap:.5rem;flex-wrap:wrap}.topbar a{color:var(--text);text-decoration:none;padding:.7rem 1rem;border:1px solid var(--border);border-radius:999px}
input,select,textarea{width:100%;border:1px solid var(--border);border-radius:12px;padding:.68rem .75rem;background:#0e1220;color:var(--text)}textarea{min-height:88px;resize:vertical}
.btn-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:1px solid var(--border);background:#252c40;color:var(--text);border-radius:12px;padding:.65rem .9rem;cursor:pointer}.btn-link:hover{filter:brightness(1.12)}
.panel{background:linear-gradient(180deg,rgba(255,255,255,.055),rgba(255,255,255,.025));border:1px solid var(--border);border-radius:22px;padding:1rem;box-shadow:0 18px 45px rgba(0,0,0,.25);min-width:0}.panel h2,.panel h3{margin-top:0}.section-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.button-row{display:flex;gap:.5rem;flex-wrap:wrap}.button-row form{display:inline-flex}.muted{color:var(--muted)}
.campaign-panel{margin:1rem}.campaign-grid{display:grid;gap:1rem}.inline-form{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.inline-form label{min-width:220px;display:grid;gap:.3rem;color:var(--muted);font-size:.9rem}
.layout{display:grid;grid-template-columns:minmax(780px,1.35fr) minmax(420px,.9fr);gap:1rem;padding:1rem;max-width:1920px;margin:0 auto;align-items:start}.wide{grid-column:1 / 2}.quick-add-panel{grid-column:2 / 3;position:sticky;top:90px;align-self:start}.character-form-panel{grid-column:1 / -1}.layout:has(.tab-section[data-tab-panel="maps"].active),.layout:has(.tab-section[data-tab-panel="assets"].active),.layout:has(.tab-section[data-tab-panel="library"].active){grid-template-columns:1fr}.layout:has(.tab-section[data-tab-panel="maps"].active) .quick-add-panel,.layout:has(.tab-section[data-tab-panel="assets"].active) .quick-add-panel,.layout:has(.tab-section[data-tab-panel="library"].active) .quick-add-panel{display:none}.layout:has(.tab-section[data-tab-panel="maps"].active) .tab-section.active,.layout:has(.tab-section[data-tab-panel="assets"].active) .tab-section.active,.layout:has(.tab-section[data-tab-panel="library"].active) .tab-section.active{grid-column:1/-1}
.scene-form{display:grid;grid-template-columns:minmax(220px,1fr) 1.2fr 1.2fr auto auto;gap:.75rem;align-items:end;margin:1rem 0}.scene-form label,.stack label,.two label,.edit-row label,.scene-editor label,.scene-asset-form label,.handout-form label{display:grid;gap:.25rem;color:var(--muted);font-size:.88rem}
.initiative-list{display:grid;gap:.65rem}.participant{position:relative;border:1px solid var(--border);background:rgba(255,255,255,.04);border-radius:18px;overflow:hidden}.participant::before,.library-card::before,.turn-row::before,.mini-turn::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--team,rgba(255,255,255,.25))}.participant.active{border-color:rgba(246,184,75,.8);box-shadow:0 0 0 2px rgba(246,184,75,.15)}summary{list-style:none;display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;padding:.8rem;cursor:pointer}summary::-webkit-details-marker{display:none}.pill,.turn-num,.mini-turn>span{display:grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:#2a3249;color:#fff;font-weight:800}.avatar{width:46px;height:46px;border-radius:14px;object-fit:cover;border:1px solid var(--border);background:#111827}.avatar.placeholder{display:grid;place-items:center;font-weight:900;font-size:1.4rem;background:linear-gradient(135deg,#27314b,#684b22)}
.participant-body{padding:0 1rem 1rem;overflow:hidden}.quick-hp{display:flex;gap:.4rem;flex-wrap:wrap;margin:.5rem 0}.quick-hp form{display:inline-flex}.quick-hp button{padding:.45rem .65rem}.edit-row{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:.7rem;align-items:end}.edit-row label:nth-child(7),.edit-row label:nth-child(10){grid-column:span 2}.edit-row .check{display:flex;gap:.4rem;align-items:center}.custom-condition-wrap,.custom-effect-wrap{display:none}
.stack{display:grid;gap:.75rem}.two{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.75rem}.library-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.8rem;align-items:start}.library-card{position:relative;border:1px solid var(--team-border,var(--border));background:rgba(255,255,255,.04);border-radius:18px;padding:.85rem;min-width:0;overflow:hidden}.library-card h3{margin:.35rem 0 .2rem;font-size:1.05rem;line-height:1.2}.library-card p{margin:.25rem 0;color:var(--muted);font-size:.9rem}.library-card small{display:block;color:var(--muted);line-height:1.35}.scene-card{display:flex;gap:.8rem;min-height:140px;align-items:flex-start}.scene-card.selected{border-color:rgba(246,184,75,.95);box-shadow:0 0 0 2px rgba(246,184,75,.16)}.scene-thumb{width:92px;height:92px;border-radius:16px;object-fit:cover;border:1px solid var(--border);background:#111827;flex:0 0 auto}.scene-thumb.placeholder{display:grid;place-items:center;color:var(--muted);font-weight:900;background:linear-gradient(135deg,#202838,#30271c)}.scene-editor{display:grid;grid-template-columns:repeat(5,minmax(140px,1fr));gap:.8rem;align-items:end}.scene-editor label:nth-last-of-type(-n+3){grid-column:span 5}.scene-asset-form,.handout-form{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:.8rem;align-items:end;margin-bottom:1rem}.scene-asset-form label:nth-last-of-type(-n+2),.handout-form label:nth-of-type(4){grid-column:span 2}
.category-chip,.mini-category{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;padding:.22rem .55rem;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border:1px solid var(--border);color:var(--text);background:rgba(255,255,255,.07)}
.type-player{--team:#58a6ff;--team-soft:rgba(88,166,255,.16);--team-border:rgba(88,166,255,.65)}.type-npc{--team:#f6b84b;--team-soft:rgba(246,184,75,.14);--team-border:rgba(246,184,75,.55)}.type-enemy{--team:#ff7b72;--team-soft:rgba(255,123,114,.16);--team-border:rgba(255,123,114,.68)}
.type-player .category-chip,.type-player .mini-category{background:var(--team-soft);border-color:var(--team-border);color:#cfe0ff}.type-npc .category-chip,.type-npc .mini-category{background:var(--team-soft);border-color:var(--team-border);color:#ffe2ad}.type-enemy .category-chip,.type-enemy .mini-category{background:var(--team-soft);border-color:var(--team-border);color:#ffd3d0}
.condition-tag,.effect-tag,.danger-tag,.condition,.effect,.danger-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.15rem .45rem;font-size:.75rem;font-style:normal;white-space:nowrap}.condition-tag,.condition{background:rgba(91,141,239,.18);border:1px solid rgba(91,141,239,.35);color:#cfe0ff}.effect-tag,.effect{background:rgba(167,139,250,.18);border:1px solid rgba(167,139,250,.35);color:#e5dbff}.danger-tag,.danger-pill{background:rgba(239,68,68,.2);border:1px solid rgba(239,68,68,.45);color:#ffd4d4;font-weight:700}
.tag-row,.map-tags{display:flex;gap:.25rem;flex-wrap:wrap;align-items:center;margin-top:.25rem}.turn-row{display:grid;grid-template-columns:48px 62px auto 1fr auto;gap:.75rem;align-items:center;border:1px solid var(--team-border,var(--border));background:rgba(255,255,255,.04);border-radius:20px;padding:.7rem;margin-bottom:.7rem;position:relative;overflow:hidden}.turn-row.active{background:linear-gradient(135deg,rgba(246,184,75,.33),rgba(255,255,255,.05));border-color:rgba(246,184,75,.85);box-shadow:0 0 0 3px rgba(246,184,75,.13)}.turn-row .avatar{width:58px;height:58px}.turn-main strong{display:block;font-size:1.5rem}.turn-main span{color:var(--muted);font-size:1rem}.display-mode{overflow:hidden;background:#05060a}.display-wrap{height:100vh;display:grid;grid-template-rows:auto 1fr;gap:1rem;padding:1rem}.hero-panel{display:grid;grid-template-columns:1.15fr .85fr;gap:1rem;align-items:stretch}.hero-panel>div{border:1px solid var(--border);background:linear-gradient(135deg,rgba(246,184,75,.18),rgba(143,211,255,.08));border-radius:28px;padding:1.4rem}.eyebrow{margin:0;color:var(--accent);font-size:1.2rem;text-transform:uppercase;letter-spacing:.12em;font-weight:900}.hero-panel h1{font-size:4.1rem;margin:.25rem 0;line-height:.95}.subtitle{font-size:1.4rem;margin:0;color:var(--muted)}.scene-box{display:grid;gap:.4rem}.scene-box strong{font-size:2.2rem}.scene-box span{font-size:1.35rem;color:var(--text)}.scene-box small{font-size:1.05rem;color:var(--muted)}.display-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:1rem;min-height:0}.display-grid .panel{overflow:auto}.display-grid h2{font-size:2rem;margin:.2rem 0 1rem}.party-panel .card.compact{margin-bottom:.8rem}.party-panel .card.compact .avatar{width:70px;height:70px}.party-panel h3{font-size:1.5rem}.party-panel p{font-size:1rem}.party-panel small{font-size:.95rem}
.turn-row.is-dead,.participant.is-dead,.library-card.is-dead,.mini-turn.is-dead{border-color:rgba(255,82,82,.95)!important;box-shadow:0 0 0 2px rgba(255,82,82,.24),0 0 22px rgba(255,82,82,.22);background:linear-gradient(135deg,rgba(255,82,82,.18),rgba(255,255,255,.035))!important}.turn-row.is-dead .avatar,.mini-turn.is-dead .avatar{filter:grayscale(.9) brightness(.65)}.turn-row.is-dead strong,.mini-turn.is-dead strong{text-decoration:line-through;text-decoration-color:rgba(255,95,95,.95);text-decoration-thickness:2px}.turn-row.is-dead::after,.mini-turn.is-dead::after{content:"DOWN";position:absolute;right:.45rem;top:.35rem;color:#ffd6d6;background:rgba(120,0,0,.7);border:1px solid rgba(255,82,82,.9);border-radius:999px;padding:.15rem .45rem;font-size:.68rem;font-weight:900;letter-spacing:.08em}
.map-display-mode{background:#020308;overflow:hidden;color:var(--text)}.map-display-wrap{height:100vh;width:100vw;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:0;background:#020308;overflow:hidden}.map-display-wrap.map-no-left-sidebar{grid-template-columns:minmax(0,1fr) 360px}.map-side{min-width:0;padding:1.25rem;overflow:hidden;border-color:rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(12,16,26,.98),rgba(5,7,12,.98));display:flex;flex-direction:column;gap:1rem}.map-left{border-right:1px solid var(--border)}.map-right{border-left:1px solid var(--border)}.map-side h1{font-size:2.4rem;line-height:1;margin:.1rem 0 .6rem}.map-side h2{font-size:1.35rem;margin:.1rem 0 .35rem}.map-side p{color:var(--muted);font-size:1.05rem;line-height:1.35;margin:.2rem 0}.map-info-card{border:1px solid var(--border);border-radius:22px;padding:1rem;background:rgba(255,255,255,.045)}.map-center{position:relative;display:grid;place-items:center;background:#000;overflow:hidden}.map-stage{width:100%;height:100%;position:relative;overflow:hidden;touch-action:none;cursor:grab;background:#050505}.map-stage.dragging{cursor:grabbing}.map-content{position:absolute;left:50%;top:50%;width:100%;height:100%;transform-origin:center center;will-change:transform}.map-content img{width:100%;height:100%;object-fit:fill;display:block;user-select:none;-webkit-user-drag:none}.grid-overlay{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(255,255,255,.32) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.32) 1px,transparent 1px);background-size:calc(100% / var(--grid-cols)) calc(100% / var(--grid-rows));box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}.map-toolbar{position:absolute;z-index:10;top:1rem;left:50%;transform:translateX(-50%);display:flex;gap:.5rem;background:rgba(0,0,0,.55);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);border-radius:999px;padding:.45rem}.map-toolbar button{font-size:1.05rem;font-weight:900;min-width:44px;border-radius:999px;background:#101827}.mini-initiative{display:grid;gap:.6rem;overflow:auto;padding-right:.25rem}.mini-turn{display:grid;grid-template-columns:34px 46px 1fr;align-items:center;gap:.6rem;padding:.55rem;border-radius:16px;border:1px solid var(--team-border,var(--border));background:rgba(255,255,255,.04);position:relative;overflow:hidden}.mini-turn.active{box-shadow:0 0 0 2px rgba(246,184,75,.17);border-color:rgba(246,184,75,.95);background:linear-gradient(135deg,rgba(246,184,75,.2),rgba(255,255,255,.045))}.mini-turn .avatar{width:44px;height:44px;border-radius:12px}.mini-turn strong{display:block;font-size:1rem}.mini-turn small{display:block;color:var(--muted);font-size:.78rem}.mini-turn .condition-tag,.mini-turn .effect-tag,.mini-turn .danger-tag{font-size:.66rem;padding:.14rem .35rem}
.handout-overlay{position:fixed;inset:0;background:rgba(3,5,9,.76);display:grid;place-items:center;z-index:50;padding:2rem;pointer-events:none}.handout-overlay .handout-card{max-width:min(1100px,90vw);max-height:88vh;overflow:auto;background:linear-gradient(180deg,rgba(21,27,38,.98),rgba(11,14,21,.98));border:1px solid rgba(255,255,255,.18);border-radius:28px;box-shadow:0 20px 60px rgba(0,0,0,.45);padding:1.25rem}.handout-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.handout-head h2{margin:0;font-size:2rem}.handout-image{display:block;max-width:100%;max-height:58vh;object-fit:contain;border-radius:18px;border:1px solid var(--border);margin:0 auto 1rem}.handout-body{font-size:1.15rem;line-height:1.5;color:var(--text);white-space:pre-wrap}.map-handout-overlay{left:340px;right:340px}.separate-delete{margin-top:1rem}.separate-delete button{width:100%}
@media(max-width:1400px){.layout{grid-template-columns:1fr}.wide,.quick-add-panel,.character-form-panel{grid-column:1 / -1}.quick-add-panel{position:static}.scene-form,.scene-editor,.scene-asset-form,.handout-form,.edit-row,.two{grid-template-columns:1fr}.scene-editor label:nth-last-of-type(-n+3),.scene-asset-form label:nth-last-of-type(-n+2),.handout-form label:nth-of-type(4),.edit-row label:nth-child(7),.edit-row label:nth-child(10){grid-column:auto}.map-display-wrap{grid-template-columns:1fr;grid-template-rows:auto 1fr auto}.map-left,.map-right{border:0}.map-handout-overlay{left:0;right:0}.display-wrap{overflow:auto;height:auto}.display-grid,.hero-panel{grid-template-columns:1fr}.hero-panel h1{font-size:2.8rem}}

.tab-bar{display:flex;gap:.65rem;flex-wrap:wrap;margin:0 0 1rem}.tab-btn{background:#101827;border:1px solid var(--border);color:var(--text);border-radius:999px;padding:.7rem 1rem;font-weight:800}.tab-btn.active{background:linear-gradient(135deg,rgba(246,184,75,.28),rgba(88,166,255,.12));border-color:rgba(246,184,75,.72);box-shadow:0 0 0 2px rgba(246,184,75,.12)}.tab-section{display:none}.tab-section.active{display:block}.toolbar-form-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.8rem;align-items:end}.inline-grid-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:.8rem;align-items:end}.compact-actions{display:flex;gap:.6rem;align-items:end;flex-wrap:wrap}.compact-actions form{margin:0}.map-tags{margin-top:.35rem}.map-tags:empty{display:none}.mini-turn{align-items:start}.mini-turn>div:last-child{min-width:0}.mini-turn strong{line-height:1.15}.mini-turn small{margin-top:.15rem}.scene-editor{grid-template-columns:repeat(4,minmax(140px,1fr));}.scene-editor label:nth-last-of-type(-n+3){grid-column:span 4}.character-form-panel{margin-top:0}.button-row form{margin:0} @media(max-width:1400px){.toolbar-form-group,.inline-grid-form{grid-template-columns:1fr}}
.map-right h2{font-size:2rem;line-height:1.05;margin:.1rem 0 .25rem}.map-right h3{font-size:1.2rem;line-height:1.15;margin:.15rem 0}.map-info-card.compact{padding:.85rem 1rem;border-radius:18px}.map-info-card.compact h3{margin:.1rem 0 .35rem;font-size:1rem}.round-row{display:grid;gap:.15rem;padding-top:.2rem}.map-right{border-left:1px solid var(--border)}@media (max-width:1200px){.map-display-wrap,.map-display-wrap.map-no-left-sidebar{grid-template-columns:1fr}.map-right{display:none}}


/* v14 layout fixes */
.layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:1rem;padding:1rem;max-width:1920px;margin:0 auto;align-items:start}.wide{grid-column:1 / 2}.quick-add-panel{grid-column:2 / 3;position:sticky;top:90px;align-self:start}.character-form-panel{grid-column:1 / -1}.layout.tab-overview{grid-template-columns:minmax(0,1fr) 360px}.layout.tab-overview .quick-add-panel{display:block}.layout.tab-overview .wide{grid-column:1 / 2}.layout.tab-maps,.layout.tab-assets,.layout.tab-library{grid-template-columns:minmax(0,1fr)}.layout.tab-maps .quick-add-panel,.layout.tab-assets .quick-add-panel,.layout.tab-library .quick-add-panel{display:none}.layout.tab-maps .tab-section.active,.layout.tab-assets .tab-section.active,.layout.tab-library .tab-section.active{grid-column:1 / -1}.tab-section{display:none}.tab-section.active{display:block}.map-scenes-panel,.scene-assets-panel,.handout-panel,.character-library-panel,.character-form-panel{max-width:none}.section-stack{display:grid;gap:1rem}.tab-section[data-tab-panel="assets"].active{display:grid;gap:1rem}.tab-section[data-tab-panel="library"].active{display:grid;gap:1rem}.map-display-wrap,.map-display-wrap.map-no-left-sidebar{grid-template-columns:minmax(0,1fr) 420px}.map-right{padding:1rem 1rem 1rem .9rem}.map-right .scene-header{border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.75rem;margin-bottom:.35rem}.map-right .scene-header h2{font-size:2.05rem;margin:.1rem 0}.map-right .scene-header .subtitle{font-size:1rem}.map-right .map-info-card{padding:.85rem .95rem;margin-bottom:.2rem}.map-right .mini-initiative{margin-top:.25rem}.map-handout-overlay{left:24px;right:444px}.map-left{display:none!important}@media(max-width:1400px){.layout,.layout.tab-overview,.layout.tab-maps,.layout.tab-assets,.layout.tab-library{grid-template-columns:1fr}.quick-add-panel{position:static;grid-column:1 / -1}.map-display-wrap,.map-display-wrap.map-no-left-sidebar{grid-template-columns:1fr}.map-right{display:none}.map-handout-overlay{left:0;right:0}}

.dm-session-wrap{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:1rem;padding:1rem;max-width:1800px;margin:0 auto;align-items:start}.dm-session-main,.dm-session-side{display:grid;gap:1rem}.dm-session-header{display:flex;justify-content:space-between;align-items:end;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--border);border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02))}.dm-mode-badge{display:inline-block;padding:.35rem .7rem;border-radius:999px;background:rgba(246,184,75,.18);border:1px solid rgba(246,184,75,.5);font-size:.8rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dm-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.dm-card{border:1px solid var(--border);border-radius:22px;background:rgba(255,255,255,.04);padding:1rem}.dm-card h2,.dm-card h3{margin:0 0 .6rem}.dm-list{display:grid;gap:.75rem}.dm-item{border:1px solid var(--border);border-radius:18px;padding:.8rem;background:rgba(255,255,255,.03)}.dm-item-head{display:flex;justify-content:space-between;gap:.75rem;align-items:start}.dm-item .meta{color:var(--muted);font-size:.85rem}.dm-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.6rem}.dm-actions form{margin:0}.dm-stat-block{border:1px solid var(--team-border,var(--border));border-radius:20px;padding:.9rem;background:rgba(255,255,255,.03)}.dm-stat-block.is-dead{border-color:rgba(255,90,90,.88);box-shadow:0 0 0 1px rgba(255,90,90,.18) inset}.dm-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.6rem;margin:.6rem 0}.dm-stat-grid .k{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.dm-stat-grid .v{font-size:1.05rem;font-weight:800}.dm-notes{white-space:pre-wrap;color:var(--muted)}.delete-inline{display:inline-flex}.delete-inline button{background:rgba(220,68,68,.16);border-color:rgba(220,68,68,.5);color:#ffd6d6}.library-card .button-row{align-items:center}.library-card .button-row .delete-inline button{padding:.55rem .7rem}.scene-card .button-row .delete-inline button{padding:.5rem .65rem}.muted-inline{font-size:.9rem;color:var(--muted)}@media(max-width:1200px){.dm-session-wrap,.dm-grid-2{grid-template-columns:1fr}}

.map-toolbar form{margin:0}.campaign-actions-row{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-top:.75rem}

.map-toolbar .map-save-form{display:inline-flex}
.select-chip{position:absolute;top:.65rem;right:.65rem;z-index:2;display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .5rem;border-radius:999px;background:rgba(15,17,24,.82);border:1px solid var(--border);font-size:.75rem;color:var(--muted)}
.select-chip input{width:auto;margin:0}
.section-head > form{margin:0}


.topnav{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.topnav a{white-space:nowrap}
@media(max-width:900px){.topbar{flex-direction:column;align-items:flex-start}.topbar nav,.topnav{width:100%;justify-content:flex-start;overflow-x:auto;padding-bottom:.25rem}.topbar nav a,.topnav a{flex:0 0 auto}}
.combat-wrap{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(420px,1.2fr) minmax(280px,.9fr);gap:1rem;padding:1rem;max-width:1920px;margin:0 auto;align-items:start}.combat-column{display:grid;gap:1rem;min-width:0}.combat-meta{display:flex;justify-content:space-between;gap:1rem;align-items:center;margin:.5rem 0 1rem;color:var(--muted)}.combat-initiative-list,.combat-log{display:grid;gap:.7rem}.combat-turn{padding:.8rem;border:1px solid var(--border);border-radius:18px;background:rgba(255,255,255,.04);position:relative;overflow:hidden}.combat-turn.active{border-color:rgba(246,184,75,.8);box-shadow:0 0 0 2px rgba(246,184,75,.15)}.combat-turn-head{display:flex;gap:.65rem;align-items:center}.combat-turn .avatar{width:42px;height:42px;border-radius:12px}.combat-stat-grid{display:grid;gap:1rem}.combat-tools{margin-bottom:.4rem}.combat-log-item{display:grid;gap:.2rem;padding:.7rem;border:1px solid var(--border);border-radius:16px;background:rgba(255,255,255,.03)}.combat-log-item span{font-size:.75rem;color:var(--muted)}.combat-wrap .dm-stat-block.active{box-shadow:0 0 0 2px rgba(246,184,75,.15)}@media(max-width:1350px){.combat-wrap{grid-template-columns:1fr}}

.text-danger{color:#ff7878;font-weight:700;}

/* Speaker overlays */
.speaker-overlay{z-index:36}
.speaker-card{max-width:min(42vw,560px)}
.speaker-role{margin:.25rem 0 0;color:#c9d3ff;font-size:.95rem;font-weight:600}
.speaker-image{object-fit:cover;max-height:38vh}

.topnav{display:flex;flex-wrap:wrap;gap:.5rem;overflow:auto}
.map-content{transition:none !important}
.map-content.moving{transition:none !important}
.fog-overlay{position:absolute;inset:0;pointer-events:none}
.public-hp.state-badly,.public-hp.state-near{color:#ffb3b3;font-weight:700}
.public-hp.state-wounded{color:#ffd28a}
.turn-row.is-bloodied,.combat-turn.is-bloodied,.dm-stat-block.is-bloodied{box-shadow:0 0 0 2px rgba(255,80,80,.35) inset}
.conversation-card{max-width:520px;text-align:center}
.speaker-public-description{margin-top:.75rem;opacity:.9}
.checkline{display:flex;align-items:center;gap:.5rem}
.compact-form{gap:.5rem}
.compact-form input,.compact-form select{min-height:40px}
.floating-actions{position:sticky;bottom:12px;display:flex;gap:.5rem;justify-content:center;z-index:20;padding:8px;backdrop-filter:blur(8px)}
.floating-actions form{margin:0}
.combat-log-item summary{cursor:pointer}
.dm-item .meta-row,.relationship-chip{display:flex;gap:.5rem;flex-wrap:wrap}
@media (max-width: 900px){
  .topbar{display:block}
  .topnav{margin-top:.75rem}
  .floating-actions{position:fixed;left:0;right:0;bottom:0;background:rgba(15,15,20,.92);padding:10px}
  .map-toolbar{flex-wrap:wrap}
  .display-grid,.combat-wrap,.dm-grid-2{display:block}
}


/* v24 cleanup pass */
html,body{scroll-behavior:smooth}
body{background:
 radial-gradient(circle at top, rgba(88,166,255,.08), transparent 35%),
 radial-gradient(circle at bottom right, rgba(246,184,75,.06), transparent 28%),
 var(--bg)}
.topbar{padding:1rem 1.15rem;gap:.85rem}
.topbar nav,.topnav{display:flex;gap:.5rem;flex-wrap:nowrap;overflow:auto;padding-bottom:.2rem;scrollbar-width:thin}
.topbar nav a,.topnav a,.topbar nav button,.topnav button{white-space:nowrap}
.topbar nav::-webkit-scrollbar,.topnav::-webkit-scrollbar{height:6px}
.topbar nav::-webkit-scrollbar-thumb,.topnav::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:999px}
.layout,.display-grid,.combat-wrap,.dm-grid-2{max-width:1920px;margin:0 auto}
.panel{padding:1rem 1rem 1.05rem;border-radius:20px}
.section-head{align-items:center;gap:.75rem;flex-wrap:wrap}
.section-head h2,.section-head h3{margin-bottom:0}
.tab-buttons{position:sticky;top:74px;z-index:9;background:rgba(10,12,18,.9);backdrop-filter:blur(8px);padding:.35rem;border-radius:999px;border:1px solid var(--border);width:max-content;max-width:100%;overflow:auto}
.tab-btn{box-shadow:none}
.tab-btn.active{transform:none}
input,select,textarea,button,.btn-link{font-size:.98rem}
.scene-form,.toolbar-form-group,.inline-grid-form{align-items:end}
.card-grid,.scene-grid,.asset-grid,.overlay-grid,.library-grid{align-items:start}
.button-row,.compact-actions{row-gap:.5rem}
.mini-turn,.turn-row,.combat-turn,.dm-stat-block,.dm-item{border-radius:18px}
.map-toolbar{box-shadow:0 14px 34px rgba(0,0,0,.28)}
.map-stage,.map-content,.map-content *{transition:none !important}
.speaker-card,.handout-card,.conversation-card{box-shadow:0 28px 70px rgba(0,0,0,.38)}
.floating-actions{border-top:1px solid rgba(255,255,255,.08)}
@media (max-width: 1200px){
  .layout{grid-template-columns:1fr}
  .quick-add-panel{grid-column:1/-1;position:static}
}
@media (max-width: 900px){
  .topbar{padding:.85rem .8rem}
  .topbar h1{font-size:1.08rem}
  .layout,.display-grid,.combat-wrap,.dm-grid-2{padding:.75rem}
  .panel{padding:.9rem}
  .tab-buttons{position:sticky;top:66px;width:100%;border-radius:16px}
  .tab-btn{padding:.72rem .9rem}
  .map-toolbar{top:.6rem;left:.6rem;right:.6rem;transform:none;justify-content:center;border-radius:16px}
}



/* UX consolidation pass */
.compact-topbar{padding:18px 22px}
.workflow-panel{margin:18px 22px}
.workflow-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:12px 0 14px}
.workflow-step{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px}
.workflow-step span{width:32px;height:32px;display:grid;place-items:center;border-radius:999px;background:#3b82f6;color:#fff;font-weight:700;flex:0 0 32px}
.workflow-step p{margin:4px 0 0;color:#b9c1d9}
.ux-consolidated{padding:20px}
.live-command-bar{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:16px;flex-wrap:wrap}
.live-command-copy h1{margin:4px 0 6px}
.live-command-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.consolidated-summary article{min-height:110px}
.combat-snapshot-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:16px}
.combat-snapshot-list{display:flex;flex-direction:column;gap:8px;max-height:380px;overflow:auto}
.dm-session-columns{display:grid;grid-template-columns:1.35fr .85fr;gap:18px;margin-top:16px}
.compact-list .dm-item{padding:10px 12px}
.ux-hint{font-size:.92rem;color:#c6d1ea;background:rgba(59,130,246,.08);border:1px solid rgba(59,130,246,.18);padding:10px 12px;border-radius:12px;margin-bottom:12px}
.topnav a[aria-current="page"], .topnav a.current{background:rgba(59,130,246,.18);border-color:rgba(59,130,246,.35)}
@media (max-width: 1100px){
  .dm-session-columns{grid-template-columns:1fr}
  .combat-snapshot-grid{grid-template-columns:1fr}
}
@media (max-width: 768px){
  .workflow-panel,.ux-consolidated{margin:12px;padding:12px}
  .live-command-bar{padding:0}
  .live-command-actions{width:100%}
  .live-command-actions > *{flex:1 1 180px}
}

.music-wrap{max-width:1100px;margin:0 auto;padding:20px}.music-panel{display:grid;gap:16px}.music-player-shell{background:#111;border-radius:16px;padding:12px}.selected-focus-panel{margin-bottom:16px}

.subtab-bar{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.subtab-btn{padding:8px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit;cursor:pointer}
.subtab-btn.active{background:rgba(255,255,255,.12)}
.subtab-panel{display:none}
.subtab-panel.active{display:block}
.attack-row,.spell-row,.clue-row,.check-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.spell-row{grid-template-columns:80px 1.3fr 100px 110px 110px 1fr}
.clue-row{grid-template-columns:1.5fr 1fr 1fr 1fr}
.check-row{grid-template-columns:1fr 120px 2fr}
.six{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.sheet-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.sheet-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);padding:14px;border-radius:16px}
.sheet-row{display:flex;flex-direction:column;gap:4px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.06)}
.ability-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ability-grid div{padding:8px;border-radius:12px;background:rgba(255,255,255,.03);display:flex;flex-direction:column}
.active-speaker-dm-panel .sheet-card{min-height:120px}
@media (max-width:900px){.attack-row,.spell-row,.clue-row,.check-row,.six,.three{grid-template-columns:1fr}}

/* v30 refinement pass */
.editor-savebar{position:sticky;bottom:12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:12px 14px;margin-top:14px;border:1px solid rgba(255,255,255,.10);border-radius:14px;background:rgba(8,12,22,.92);backdrop-filter:blur(10px);z-index:8}
.repeatable-toolbar,.refine-toolbar{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.repeatable-stack{display:flex;flex-direction:column;gap:12px}
.repeatable-row{position:relative;padding:12px;border:1px dashed rgba(255,255,255,.12);border-radius:14px;background:rgba(255,255,255,.02)}
.repeatable-row .js-remove-row{align-self:end}
.mini-btn{padding:8px 10px;border-radius:10px;font-size:.9rem}
.mini-btn.danger{border-color:rgba(255,110,110,.35)}
.list-filter-input{width:min(100%,420px);padding:11px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:inherit}
.search-hidden{display:none !important}
.search-empty-state{padding:18px;border:1px dashed rgba(255,255,255,.12);border-radius:14px;color:rgba(255,255,255,.7)}
.subtab-panel .muted{max-width:80ch}
.library-card .tag-row{flex-wrap:wrap}
.compact-import-box{margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
textarea{min-height:92px}
textarea.compact{min-height:56px}
body[data-view="dm"] .sheet-card, body[data-view="combat"] .sheet-card, .scene-reference-panel .sheet-card {position:relative}
.card-collapsible-toggle{position:absolute;top:10px;right:10px;font-size:.8rem;padding:6px 8px;border-radius:999px}
.card-collapsed .dm-notes, .card-collapsed .sheet-card > div:not(.section-head), .card-collapsed p:not(.muted), .card-collapsed ul {display:none}
.card-collapsed{min-height:unset}
@media (max-width: 900px){
  .editor-savebar{bottom:6px}
  .repeatable-toolbar,.refine-toolbar{align-items:stretch}
  .list-filter-input{width:100%}
}
