:root{color:#f3ead7;background:#151311;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;font-weight:400;line-height:1.5}*{box-sizing:border-box}body{background:linear-gradient(135deg,#45352359,#0000 28rem),linear-gradient(315deg,#104e4a52,#0000 32rem),#151311;min-width:320px;min-height:100vh;margin:0;overflow-x:hidden}#root{min-height:100vh}button{color:#f8efd9;font:inherit;cursor:pointer;background:#2b2823;border:1px solid #6d604c;border-radius:7px;padding:.65rem .85rem;transition:border-color .14s,background .14s,transform .14s}button:hover:not(:disabled){background:#373029;border-color:#d7a94f;transform:translateY(-1px)}button:disabled{cursor:not-allowed;color:#8f8678;opacity:1;background:#1f1d199e;border-color:#8276606b}h1,h2,h3,p{margin:0}h1{color:#f8efd9;font-size:clamp(2rem,5vw,4.5rem);line-height:.95}h2{color:#fff4d6;font-size:1.15rem}h3{color:#fff4d6;font-size:1rem}.app-shell{grid-template-rows:auto minmax(0,1fr);width:min(1920px,100%);max-width:100vw;height:100vh;margin:0 auto;padding:.5rem .85rem .85rem;display:grid;overflow:hidden}.topbar{justify-content:space-between;align-items:center;gap:1rem;padding:.1rem 0 .4rem;display:flex}.brand-lockup{align-items:baseline;gap:.6rem;min-width:0;display:flex}.app-title{color:#fff4d6;white-space:nowrap;margin:0;font-size:1.05rem;line-height:1}.eyebrow{color:#d7a94f;letter-spacing:0;text-transform:uppercase;font-size:.78rem;font-weight:800}.tabs,.button-row{flex-wrap:wrap;gap:.45rem;display:flex}.tabs{justify-content:end;align-items:center}.tab-group{flex-wrap:wrap;gap:.35rem;display:flex}.mobile-actions{display:none}.view-tabs{border-left:1px solid #d7a94f38;padding-left:.45rem}.tabs button{min-height:1.95rem;padding:.28rem .52rem;font-size:.84rem}.hint-wrap{display:inline-grid}.hint-wrap button{min-width:0}.hint-text{color:#f3d87a;cursor:help;outline:none}.hint-text:focus-visible,button:focus-visible,summary:focus-visible,[role=gridcell]:focus-visible{outline-offset:3px;outline:3px solid #f3d87a}dialog.modal-overlay{width:100vw;max-width:none;height:100vh;max-height:none;color:inherit;border:0;margin:0;padding:0}dialog.modal-overlay::backdrop{background:0 0}.storage-warning{color:#fff8de;background:#553c10f2;border:1px solid #f3d87ab3;border-radius:8px;justify-content:space-between;align-items:center;gap:1rem;margin:.75rem;padding:.75rem 1rem;display:flex}.fatal-error{place-items:center;min-height:100vh;padding:2rem;display:grid}.fatal-error .panel{width:min(44rem,100%)}.fatal-error pre{white-space:pre-wrap;overflow:auto}.winds-indicator{background:#153a42b8;border:1px solid #57adbe73;border-radius:7px;justify-items:center;gap:.15rem;padding:.38rem .55rem;display:grid}.winds-indicator span{color:#bfe9ee;letter-spacing:0;text-transform:uppercase;font-size:.72rem;font-weight:800}.winds-indicator strong{color:#fff8de;font-size:1rem;line-height:1}.tabs button.active,.help-tabs button.active,.tile-palette button.active,.tool-toggle button.active,.label-toggle.active{background:#64451f;border-color:#d7a94f}.play-layout,.create-layout{grid-template-columns:minmax(0,1fr) minmax(22rem,30rem);align-items:start;gap:1rem;display:grid}.play-layout{grid-template-columns:minmax(0,1fr) minmax(19rem,25rem);align-items:stretch;min-width:0;height:100%;min-height:0;overflow:hidden}.board-panel,.todo-panel{background:#141311e6;border:1px solid #d7a94f47;border-radius:8px;position:relative}.play-layout .board-panel{background:#0e0d0cf0;border-color:#d7a94f5c;min-width:0;min-height:0;display:grid;overflow:visible}.panel-heading{border-bottom:1px solid #d7a94f2e;justify-content:space-between;gap:1rem;padding:1rem;display:flex}.board-shell{grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative;overflow:visible}.board-view-controls{background:#1b1813bd;border-bottom:1px solid #d7a94f38;grid-template-columns:minmax(12rem,auto) minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.42rem .58rem;display:grid}.button-bar-lead{flex-wrap:wrap;align-items:center;gap:.65rem;min-width:min(16rem,100%);display:flex}.button-bar-status{gap:.04rem;min-width:min(13rem,100%);display:grid}.button-bar-status strong{color:#fff4d6;font-size:1.08rem;line-height:1.1}.button-bar-actions{flex-wrap:wrap;justify-content:end;align-items:center;gap:.32rem;margin-left:auto;display:flex}.button-bar-resources{flex-wrap:wrap;justify-content:center;align-items:center;gap:.35rem;min-width:0;display:flex}.board-view-controls button,.button-bar-actions button,.button-bar-resources button{min-height:1.9rem;padding:.26rem .5rem;font-size:.84rem}.button-bar-actions .zoom-button{width:1.9rem;padding-inline:0;font-size:1.05rem;font-weight:800}.desktop-map-actions{align-items:center;gap:.32rem;display:flex}.toolbar-menu{display:inline-grid;position:relative}.toolbar-menu.mobile-actions,.map-menu{display:none}.toolbar-menu summary{color:#f8efd9;cursor:pointer;background:#2b2823;border:1px solid #6d604c;border-radius:7px;place-items:center;min-height:1.9rem;padding:.26rem .58rem;font-size:.84rem;line-height:1.5;list-style:none;display:grid}.toolbar-menu summary::-webkit-details-marker{display:none}.toolbar-menu[open] summary,.toolbar-menu summary:hover{background:#373029;border-color:#d7a94f}.toolbar-menu-content{z-index:120;background:#14120ffa;border:1px solid #d7a94f6b;border-radius:8px;gap:.35rem;min-width:9rem;padding:.45rem;display:grid;position:absolute;top:calc(100% + .35rem);right:0;box-shadow:0 .75rem 1.5rem #00000059}.toolbar-menu:not([open]) .toolbar-menu-content{display:none}.toolbar-menu-content .hint-wrap,.toolbar-menu-content button{width:100%}.label-toggle{color:#fff4d6;white-space:nowrap;background:#40311e8a;border-color:#d7a94f80;font-weight:800}.help-chip{color:#fff8de;border-radius:50%;place-items:center;width:1.65rem;min-width:1.65rem;height:1.65rem;min-height:1.65rem;padding:0;font-size:.82rem;font-weight:900;line-height:1;display:inline-grid}.inline-help{vertical-align:middle;margin-left:.25rem}.board{cursor:grab;touch-action:none;background-color:#11100f;background-image:linear-gradient(#fff4d606 1px,#0000 1px),linear-gradient(90deg,#fff4d606 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:3rem 3rem;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;min-height:0;position:relative;overflow:hidden}.board-mode-banner{z-index:40;color:#fff4d6;text-align:center;pointer-events:none;background:#151311eb;border:1px solid #d7a94f80;border-radius:7px;max-width:min(34rem,100% - 1.5rem);padding:.45rem .75rem;font-weight:800;position:absolute;top:.75rem;left:50%;transform:translate(-50%);box-shadow:0 .45rem 1.4rem #00000057}.board:active{cursor:grabbing}.board-content{grid-template-columns:repeat(var(--board-cols), 3rem);grid-template-rows:repeat(var(--board-rows), 3rem);width:max-content;min-width:100%;min-height:100%;transform:translate(var(--pan-x), var(--pan-y)) scale(var(--zoom));transform-origin:0 0;display:grid;position:absolute;top:0;left:0}.board-grid,.board-grid-row{display:contents}.tile{z-index:1;grid-column:calc(var(--x) + 1) / span var(--w);grid-row:calc(var(--y) + 1) / span var(--h);color:#fff8de;text-align:center;pointer-events:none;background:0 0;border:2px solid #201b14;justify-content:center;align-items:center;min-width:0;min-height:0;padding:.5rem;display:flex;position:relative;box-shadow:inset 0 0 0 2px #f8efd933,inset 0 0 1.4rem #00000075,0 .2rem .8rem #00000047}.tile-label{color:#e9dec7;text-shadow:0 1px 2px #11100f;overflow-wrap:anywhere;background:#100e0c5c;border-radius:4px;max-width:100%;padding:.1rem .28rem;font-size:.78rem;font-weight:800;display:inline-block}.tile small{color:#f3d87a;text-shadow:0 1px 2px #11100f;font-weight:900;position:absolute;top:.25rem;right:.35rem}.tile-room{background:#4b4437}.tile-corridor{background:#374e46}.tile-corner{background:#394b54}.tile-tJunction{background:#503f57}.tile-objective{background:#663a32;border-color:#d7a94f}.tile.cleared{box-shadow:inset 0 0 0 999px #ffffff14}.board-cell{z-index:2;grid-column:calc(var(--x) + 1);grid-row:calc(var(--y) + 1);-webkit-user-drag:none;-webkit-user-select:none;user-select:none;background:#4c443880;border:1px solid #fff4d647;border-radius:0;min-width:0;min-height:0;padding:0}.board-cell:hover{background:#d7a94f3d;transform:none}.board-cell.targetable-cell{background:#57adbe4d;box-shadow:inset 0 0 0 2px #57adbef2,inset 0 0 1.1rem #57adbe3d}.board-cell.selected-target-cell{background:#f3d87a61;box-shadow:inset 0 0 0 3px #f3d87a,0 0 .85rem #f3d87a52}.selected-tile-cell{background:#5c482bdb;border-color:#d7a94fb8}.pending-door-cell{background:#d7a94f75;border-color:#f8efd9;box-shadow:inset 0 0 0 2px #f8efd9e0}.door-marker{z-index:4;left:calc(var(--token-x) * 3rem);top:calc(var(--token-y) * 3rem);pointer-events:none;background:0 0;border:1px solid #ffe094;border-radius:2px;width:3rem;height:3rem;position:absolute}.door-closed{background:#6a3a1c;box-shadow:0 0 0 1px #15110de6,0 0 .45rem #f7d9862e}.door-open{background:#d7a94fad;box-shadow:0 0 0 1px #f8efd980}.door-sealed{background:#4b4045;border-color:#211b1e;box-shadow:inset 0 0 0 2px #77666e}.door-north{height:.42rem;transform:translateY(-.21rem)}.door-east{width:.42rem;transform:translate(2.79rem)}.door-south{height:.42rem;transform:translateY(2.79rem)}.door-west{width:.42rem;transform:translate(-.21rem)}.trap-marker{z-index:3;left:calc(var(--token-x) * 3rem + .8rem);top:calc(var(--token-y) * 3rem + .8rem);color:#151311;pointer-events:none;background:#d7a94f;border:2px solid #151311;border-radius:50%;place-items:center;width:1.3rem;height:1.3rem;font-size:.9rem;font-weight:900;line-height:1;display:grid;position:absolute;box-shadow:0 .25rem .55rem #0000006b}.trap-triggered{color:#f8efd9;background:#8f463a}.token{z-index:3;left:calc(var(--token-x) * 3rem + .3rem);top:calc(var(--token-y) * 3rem + .3rem);color:#151311;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;border:2px solid #f8efd9;border-radius:50%;place-items:center;width:2.38rem;height:2.38rem;padding:0;font-size:.86rem;font-weight:900;display:grid;position:absolute;box-shadow:0 .35rem .85rem #00000059}.hero-token{background:#e8c766}.hero-1{background:#9fd1a6}.hero-2{background:#77b9d7}.hero-3{background:#d99ad7}.monster-token{background:#e0764d}.boss-token{color:#fff7d3;background:#951f2f}.image-token{background:#171513;overflow:hidden}.hero-token.image-token,.monster-token.image-token,.boss-token.image-token{overflow:visible}.token .token-art{border-radius:inherit;place-items:center;display:grid;position:absolute;inset:0;overflow:hidden}.image-token img{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block}.combat-overlay,.spellcasting-overlay,.trap-notice-overlay,.death-notice-overlay,.monster-details-overlay{z-index:220;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0b0ab8;place-items:center;padding:1rem;display:grid;position:absolute;inset:4.75rem 1rem 5.5rem}.spellcasting-overlay{padding:1rem;position:fixed;inset:0}.monster-details-overlay{position:fixed;inset:0}.hero-selection-overlay,.hero-activation-overlay,.help-overlay,.delve-overlay,.delve-completion-overlay,.flee-delve-overlay{z-index:220;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0b0ac7;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.hero-selection-card,.hero-activation-card,.help-card,.delve-card,.delve-completion-card,.flee-delve-card{background:#1f1c17fa;border:1px solid #d7a94f80;border-radius:8px;gap:1rem;width:min(52rem,100%);padding:1rem;display:grid;box-shadow:0 1rem 2.5rem #00000073}.hero-selection-card{grid-template-rows:auto minmax(0,1fr) auto;width:min(76rem,100%);max-height:calc(100vh - 2rem);overflow:hidden}.hero-activation-card{width:min(34rem,100%)}.hero-activation-card h2{margin:.15rem 0 0}.hero-activation-card p{margin-bottom:0}.hero-activation-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.hero-activation-choice{text-align:left;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.7rem;min-height:5.5rem;padding:.65rem;display:grid}.hero-activation-choice>span:last-child{gap:.2rem;display:grid}.hero-activation-choice small{color:#c8bda9}.hero-activation-choice.unavailable{opacity:.5}.hero-activation-choice.unavailable .hero-activation-portrait{filter:grayscale()}.hero-activation-portrait{background:#2b2823;border:2px solid #f8efd9e0;border-radius:50%;place-items:center;width:4rem;height:4rem;display:grid;overflow:hidden}.hero-activation-portrait img{object-fit:cover;width:100%;height:100%}.delve-card{width:min(34rem,100%)}.delve-completion-card{text-align:center;width:min(48rem,100%);max-height:calc(100vh - 2rem);overflow-y:auto}.flee-delve-card{text-align:center;width:min(32rem,100%)}.completion-reward{background:#64451f47;border:1px solid #d7a94f;border-radius:7px;gap:.25rem;padding:.85rem;display:grid}.completion-reward span,.completion-hero span{color:#c8bda9}.completion-reward p{margin:0}.completion-heroes{grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.75rem;display:grid}.completion-hero{background:#ffffff0b;border:1px solid #f8efd924;border-radius:7px;justify-items:center;gap:.3rem;padding:.75rem;display:grid}.completion-hero-token{border:2px solid #f8efd9e0;border-radius:50%;place-items:center;width:4.5rem;height:4.5rem;display:grid;overflow:hidden}.completion-hero-token img{object-fit:cover;width:100%;height:100%}.completion-hero.fallen{opacity:.5}.completion-hero.fallen .completion-hero-token{filter:grayscale()}.destructive-action{background:#5b2428;border-color:#cc3842bf}.delve-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem;display:grid}.delve-actions .hint-wrap,.help-card>.hint-wrap{width:100%;display:grid}.delve-actions button,.help-card>.hint-wrap button{width:100%}.party-management-grid{grid-template-columns:repeat(5,minmax(11rem,1fr));gap:.75rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.party-hero-column{background:#ffffff0b;border:1px solid #f8efd924;border-radius:7px;align-content:start;gap:.75rem;min-width:0;padding:.8rem;display:grid}.party-hero-column.inactive{opacity:.62}.party-hero-heading{grid-template:"portrait summary""variants variants""toggle toggle"/3.1rem minmax(0,1fr);align-items:center;gap:.6rem;display:grid}.party-section-heading{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.party-hero-heading>.party-hero-summary{gap:.15rem;min-width:0;display:grid}.party-hero-heading span{color:#c8bda9;font-size:.82rem}.party-hero-token{color:#f8efd9;background:#2b2823;border:2px solid #f8efd9e0;border-radius:50%;grid-area:portrait;place-items:center;width:3.1rem;height:3.1rem;font-size:1.15rem;font-weight:900;display:grid;overflow:hidden;box-shadow:0 .35rem .85rem #00000047}.party-hero-token img{object-fit:cover;width:100%;height:100%;display:block}.party-token-choice{display:contents}.party-hero-summary{grid-area:summary}.party-token-variants{white-space:nowrap;grid-area:variants;justify-self:center;align-items:center;gap:.25rem;max-width:100%;display:flex}.party-token-variants button{min-width:2.25rem;min-height:2.25rem;padding:.15rem}.party-token-variants span{font-size:.72rem}.party-toggle{color:#f8efd9;background:#0000002e;border:1px solid #d7a94f42;border-radius:6px;grid-area:toggle;justify-content:center;justify-self:stretch;align-items:center;gap:.35rem;min-height:2rem;padding:.25rem .45rem;font-size:.82rem;font-weight:800;display:flex}.party-hero-section{gap:.45rem;display:grid}.party-hero-section .hint-wrap{display:grid}.party-hero-section .hint-wrap button{width:100%}.setup-picker-overlay{z-index:230;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0c0b0ab8;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.setup-picker-card{background:#1f1c17fa;border:1px solid #d7a94f8c;border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto;gap:1rem;width:min(42rem,100%);max-height:calc(100vh - 2rem);padding:1rem;display:grid;overflow:hidden;box-shadow:0 1rem 2.5rem #00000073}.setup-picker-list{align-content:start;gap:.75rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.setup-picker-option{color:#f8efd9;text-align:left;background:#00000029;border:1px solid #f8efd924;border-radius:7px;gap:.55rem;width:100%;padding:.85rem;display:grid}.setup-picker-option>div{justify-content:space-between;gap:.75rem;display:flex}.setup-picker-option span,.setup-picker-option small{color:#c8bda9}.setup-picker-option p{color:#d8cfbd;margin:0}.setup-picker-option.assigned{opacity:.48}.help-card{grid-template-rows:auto auto minmax(0,1fr) auto;max-height:calc(100vh - 2rem)}.help-card .combat-heading{align-items:start}.help-tabs{grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;min-width:0;display:grid}.help-tabs button{text-overflow:ellipsis;white-space:nowrap;min-width:0;min-height:2rem;padding:.35rem .45rem;overflow:hidden}.help-tab-short{display:none}.help-content{gap:.9rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.help-content section{background:#ffffff0b;border:1px solid #f8efd91f;border-radius:7px;gap:.45rem;padding:.75rem;display:grid}.help-content ul{color:#d8cfbd;gap:.35rem;margin:0;padding-left:1.2rem;display:grid}.reference-list{gap:.55rem;display:grid}.reference-list article{background:#00000021;border:1px solid #f8efd91a;border-radius:7px;gap:.2rem;padding:.65rem;display:grid}.reference-list span{color:#d8cfbd}.spellcasting-card{background:#192020fa;border:1px solid #57adbe80;border-radius:8px;grid-template-rows:auto minmax(0,1fr);gap:1rem;width:min(38rem,100%);max-height:calc(100vh - 2rem);padding:1rem;display:grid;overflow:hidden;box-shadow:0 1rem 2.5rem #00000073}.setup-spellbook-card{grid-template-rows:auto minmax(0,1fr) auto}.death-notice-card{text-align:center;background:#261616fa;border:1px solid #cc3842a6;border-radius:8px;gap:1rem;width:min(24rem,100%);padding:1rem;display:grid;box-shadow:0 1rem 2.5rem #00000073}.trap-notice-card{text-align:center;background:#2a1f16fa;border:1px solid #d7a94fb8;border-radius:8px;gap:1rem;width:min(26rem,100%);padding:1rem;display:grid;box-shadow:0 1rem 2.5rem #00000073}.monster-details-card{background:#1f1c17fa;border:1px solid #d7a94f8c;border-radius:8px;gap:.9rem;width:min(24rem,100%);padding:1rem;display:grid;box-shadow:0 1rem 2.5rem #00000073}.monster-details-summary{background:#00000029;border:1px solid #f8efd91f;border-radius:7px;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.85rem;padding:.75rem;display:grid}.monster-details-summary>div{gap:.15rem;display:grid}.monster-details-summary span{color:#c8bda9}.monster-details-token{color:#151311;border-radius:50%;place-items:center;width:3.2rem;height:3.2rem;font-weight:900;display:grid;overflow:hidden}.trap-notice-card h2{font-size:1.35rem}.trap-notice-card strong{color:#f3d87a}.death-notice-card h2{font-size:1.35rem}.spell-list{align-content:start;gap:.75rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.spell-option{background:#00000029;border:1px solid #f8efd924;border-radius:7px;gap:.75rem;padding:.85rem;display:grid}.spell-option>div:first-child{justify-content:space-between;gap:.75rem;display:flex}.spell-option span{color:#c8e5e7}.spell-option p{color:#d8cfbd;margin:0}.spell-cost-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;display:grid}.spell-cost-grid span{text-align:center;background:#57adbe1f;border-radius:6px;padding:.45rem}.spell-slider{color:#c8e5e7;gap:.35rem;font-size:.82rem;display:grid}.spell-slider input{width:100%}.hero-card-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;display:grid}.hero-selection-option{text-align:left;gap:.6rem;min-width:0;display:grid}.combat-card{background:#1f1c17fa;border:1px solid #d7a94f80;border-radius:8px;gap:1rem;width:min(42rem,100%);padding:1rem;display:grid;box-shadow:0 1rem 2.5rem #00000073}.area-effect-card{grid-template-rows:auto auto minmax(0,1fr) auto;max-height:calc(100vh - 10rem);overflow:hidden}.combat-heading{justify-content:space-between;gap:1rem;display:flex}.combat-heading h2{margin-top:.15rem}.dice-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;display:grid}.dice-side{background:#00000026;border:1px solid #f8efd924;border-radius:7px;gap:.6rem;padding:.85rem;display:grid}.dice-side h3{color:#fff4d6;margin:0;font-size:.95rem}.dice-row{flex-wrap:wrap;gap:.6rem;display:flex}.compact-dice-row{gap:.4rem}.combat-die{color:#151311;-webkit-user-select:none;user-select:none;border:2px solid #f8efd9d9;border-radius:8px;place-items:center;width:3rem;height:3rem;font-size:1.35rem;font-weight:900;display:grid;position:relative;box-shadow:0 .45rem .85rem #0000004d}.die-boost{color:#fff4d6;background:#64451f;border-color:#f8efd9;border-radius:999px;min-height:1.45rem;padding:.1rem .35rem;font-size:.72rem;position:absolute;bottom:-.35rem;right:-.35rem}.combat-die.spent{filter:grayscale();opacity:.42}.combat-die.lost-die{filter:grayscale();opacity:.28;box-shadow:none}.combat-die.exploded-die{border-color:#ffd866;box-shadow:0 0 .65rem #ffd866d9,0 .45rem .85rem #0000004d}.area-effect-target-list{gap:.65rem;min-height:0;padding-right:.25rem;display:grid;overflow-y:auto}.area-effect-target{background:#00000026;border:1px solid #f8efd924;border-radius:7px;grid-template-columns:minmax(8rem,1fr) minmax(0,2fr);align-items:center;gap:.75rem;padding:.75rem;display:grid}.area-effect-target>div:first-child{gap:.25rem;display:grid}.area-effect-target span{color:#c8e5e7;font-size:.9rem}.draggable-die{cursor:grab}.draggable-die:active{cursor:grabbing}.rolling{animation:.18s linear infinite dice-roll}.dice-hero-0{background:#e8c766}.dice-hero-1{background:#9fd1a6}.dice-hero-2{background:#77b9d7}.dice-hero-3{background:#d99ad7}.dice-monster{background:#e0764d}.dice-boss{color:#fff7d3;background:#951f2f}.combat-summary{background:#0003;border-radius:7px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .75rem;display:flex}.block-warning{background:#523a1a80;border:1px solid #d7a94f9e;border-radius:7px;gap:.65rem;padding:.75rem;display:grid}.block-warning .button-row{justify-content:end;gap:.45rem}.block-warning .button-row button{min-height:2rem;padding:.35rem .55rem;font-size:.86rem}@keyframes dice-roll{0%{transform:rotate(-8deg)translateY(0)}50%{transform:rotate(8deg)translateY(-.12rem)}to{transform:rotate(-8deg)translateY(0)}}.token.selected,.token.active-actor{outline-offset:3px;outline:4px solid #ffd866;box-shadow:0 0 0 .28rem #6f4718b8,0 0 1rem #ffd86685,0 .35rem .85rem #0000006b}.acted-this-round{opacity:.58;filter:grayscale(.75)}.activation-tick{z-index:2;color:#151311;background:#d7a94f;border:1px solid #151311;border-radius:50%;place-items:center;width:.56rem;height:.56rem;font-size:.42rem;font-weight:900;line-height:1;display:grid;position:absolute;bottom:-.22rem;right:-.22rem}.monster-type-badge{z-index:2;pointer-events:none;background:#d7a94f;border:1px solid #151311;border-radius:50%;place-items:center;width:.56rem;height:.56rem;display:grid;position:absolute;bottom:-.22rem;left:-.22rem}.monster-type-badge img{object-fit:contain;width:.43rem;height:.43rem}.activation-card-status{color:#d7a94f;white-space:nowrap;margin-left:.35rem;font-size:.75rem;display:inline-block}.targetable-token{cursor:pointer;outline-offset:3px;outline:3px solid #72d3df;box-shadow:0 0 0 .25rem #57adbe3d,0 .35rem .85rem #0000006b}.selected-target{outline-color:#fff0a5;box-shadow:0 0 0 .32rem #f3d87a5c,0 0 1rem #f3d87a75}.empty-board{color:#b5ab98;grid-area:1/1/-1/-1;place-items:center;display:grid}.turn-controls{border-top:1px solid #d7a94f2e;grid-template-columns:max-content minmax(0,1fr);align-items:center;gap:.75rem;padding:.75rem;display:grid}.move-pad{grid-template-columns:repeat(3,3.35rem);gap:.35rem;display:grid}.move-pad button{white-space:nowrap;min-height:2.15rem;padding:.35rem .45rem}.move-pad button:first-child{grid-column:2}.move-pad button:nth-child(2){grid-column:1}.move-pad button:nth-child(3){grid-column:3}.move-pad button:nth-child(4){grid-column:2}.action-strip{justify-content:end}.action-strip button,.action-strip .hint-wrap{min-height:2.2rem}.action-strip button{white-space:nowrap;padding:.42rem .65rem}.primary-action{background:#64451f;border-color:#d7a94f}.auto-defence-control{color:#c8bda9;white-space:nowrap;align-items:center;gap:.35rem;font-size:.78rem;display:flex}.auto-defence-toggle{white-space:nowrap;background:#153a4270;border-color:#57adbe73;place-items:center;width:1.85rem;min-width:1.85rem;height:1.85rem;min-height:1.85rem;padding:0;font-size:.86rem;font-weight:900;display:grid}.auto-defence-toggle.active{background:#64451f;border-color:#d7a94f}.side-panel{gap:1rem;display:grid}.play-layout .side-panel{flex-direction:column;min-width:0;height:100%;min-height:0;padding-right:.15rem;display:flex;overflow:hidden auto}.play-layout .side-panel>*{flex:none}.play-layout .side-panel .panel{background:#181613d1}.panel,.todo-panel{padding:1rem}.panel{background:#1c1a16f0;border:1px solid #d7a94f40;border-radius:8px}.turn-panel{background:linear-gradient(#3529188a,#181613e6);border-color:#d7a94f70}.collapsible-panel{padding:0;overflow:visible}.collapsible-heading{text-align:left;background:0 0;border:0;border-radius:0;justify-content:space-between;align-items:center;gap:.75rem;width:100%;padding:.68rem .8rem;display:flex;transform:none}.collapsible-heading:hover:not(:disabled){transform:none}.collapsible-heading span{gap:.1rem;min-width:0;display:grid}.collapsible-heading small{color:#c8bda9;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.collapsible-heading b{color:#d7a94f;font-size:1.1rem}.panel-heading-end{flex:none;align-items:center;gap:.45rem;display:flex}.panel-badge{color:#bfe9ee;text-transform:uppercase;background:#153a42a6;border:1px solid #57adbe80;border-radius:999px;padding:.08rem .38rem;font-size:.68rem;font-style:normal;font-weight:900}.collapsible-body{gap:.68rem;min-width:0;padding:0 .8rem .8rem;display:grid}.hero-list,.monster-list{gap:.6rem;display:grid}.hero,.monster,.treasure{background:#ffffff0b;border:1px solid #f8efd91f;border-radius:7px;gap:.35rem;padding:.7rem;display:grid}.hero-select{color:#f8efd9;text-align:left;background:0 0;border:0;width:100%;padding:0}.hero-summary-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;display:grid}.details-toggle{min-height:2rem;padding:.3rem .5rem;font-size:.78rem}.hero-details{gap:.45rem;display:grid}.hero-select>div,.monster>div{justify-content:space-between;gap:.75rem;display:flex}.hero span,.monster span,.treasure span,.muted{color:#c8bda9}.hero.defeated{opacity:.52}.equipment-summary{margin:0}.equipment-select{color:#c8bda9;gap:.35rem;font-size:.86rem;display:grid}.equipment-select select{color:#f8efd9;background:#171511;border:1px solid #d7a94f47;border-radius:6px;width:100%;min-height:2rem}.spell-select{border:1px solid #d7a94f33;border-radius:6px;margin:0;padding:.5rem}.spell-select legend{color:#f8efd9;padding:0 .25rem}.spell-select label{align-items:center;gap:.45rem;display:flex}.selected-card{background:#d7a94f24;border-color:#d7a94f}.turn-status{background:#00000029;border:1px solid #f8efd91f;border-radius:7px;gap:.55rem;padding:.65rem;display:grid}.turn-phase-copy{font-size:.92rem}.current-task{color:#fff4d6;background:#153a4266;border:1px solid #57adbe6b;border-radius:7px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.68rem .72rem;font-weight:800;display:grid}.setup-checklist{grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.setup-checklist li{color:#c8bda9;background:#00000029;border-radius:6px;align-items:center;gap:.35rem;padding:.38rem .45rem;font-size:.83rem;display:flex}.setup-checklist li.complete{color:#f8efd9}.turn-actor{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.75rem;display:grid}.turn-actor>div{gap:.1rem;display:grid}.turn-actor span{color:#c8bda9}.turn-token{color:#151311;background:#2b2823;border:2px solid #ffd866;border-radius:50%;place-items:center;width:3.35rem;height:3.35rem;font-size:1.25rem;font-weight:900;display:grid;overflow:hidden;box-shadow:0 0 0 .16rem #6f4718b8,0 .35rem .85rem #0006}.turn-token img{object-fit:cover;width:100%;height:100%;display:block}.empty-token{color:#f8efd9}.turn-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.35rem;display:grid}.turn-stat-grid span{color:#c8bda9;text-align:center;background:#00000029;border-radius:6px;gap:.05rem;padding:.5rem .38rem;display:grid}.turn-stat-grid strong{color:#f8efd9}.turn-action-panel{background:#00000024;border:1px solid #f8efd91a;border-radius:7px;gap:.55rem;padding:.58rem;display:grid}.move-pad-wide{grid-template-rows:repeat(3,2.25rem);grid-template-columns:repeat(3,minmax(3rem,1fr));width:100%}.move-pad-wide button{width:100%}.move-pad .move-up{grid-area:1/2}.move-pad .move-left{grid-area:2/1}.move-pad .move-right{grid-area:2/3}.move-pad .move-down{grid-area:3/2}.move-pad-center{color:#c8bda9;text-transform:uppercase;background:#0000002e;border:1px solid #d7a94f4d;border-radius:7px;grid-area:2/2;place-items:center;min-width:0;min-height:0;padding:.25rem;font-size:.66rem;font-weight:800;line-height:1.05;display:grid}.move-pad-center strong{color:#fff4d6;font-size:.9rem}.action-grid{grid-template-columns:repeat(auto-fit,minmax(3rem,1fr));gap:.35rem;min-width:0;display:grid}.action-grid .hint-wrap{display:grid}.action-grid button{width:100%}.help-action-button{background:#153a427a;border-color:#57adbe73}.heading-actions{text-align:right;justify-content:end;align-items:center;gap:.5rem;display:flex}.icon-button{place-items:center;gap:.12rem;min-width:0;min-height:2.55rem;padding:.28rem .25rem;display:grid}.end-turn-action button,button.end-turn-action{background:#322b20b8;border-color:#d7a94f6b}.action-label{color:#d8cfbd;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.66rem;font-weight:800;line-height:1;overflow:hidden}.primary-action .action-label{color:#fff4d6}.button-icon{color:#f8efd9;place-items:center;width:1.45rem;height:1.45rem;font-size:1.3rem;font-weight:900;line-height:1;display:grid}.arrow-icon{font-size:1.55rem}dl{grid-template-columns:repeat(auto-fit,minmax(2.35rem,1fr));gap:.35rem;margin:0;display:grid}dl div{background:#00000029;border-radius:6px;place-items:center;padding:.35rem;display:grid}dt{color:#d7a94f;font-size:.75rem;font-weight:800}dd{margin:0}.boss{border-color:#d7a94f8c}.objective-treasure{border-color:#d7a94f}.log-list{color:#d8cfbd;gap:.45rem;max-height:18rem;margin:.8rem 0 0;padding-left:1.25rem;display:grid;overflow:auto}.tile-palette,.tool-toggle{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:.9rem 0;display:grid}.wide-button{width:100%}.todo-panel{max-width:54rem}.todo-list{gap:.75rem;margin:1rem 0 0;padding-left:1.4rem;display:grid}@media (width<=980px){.app-shell{height:auto;min-height:100vh;display:block;overflow:visible}.topbar,.panel-heading{flex-direction:column;align-items:center}.topbar{gap:.55rem;padding-bottom:.35rem}.topbar>div,.tabs{width:100%}.tabs{justify-content:end}.play-layout,.create-layout{grid-template-columns:1fr;gap:.55rem;padding-bottom:.75rem;overflow-y:auto}.play-layout .side-panel{height:auto;max-height:none;padding-right:0;overflow:visible}.play-layout .board-panel{min-height:0}.board-view-controls{grid-template-columns:minmax(9rem,1fr) auto auto;gap:.42rem;padding:.38rem .48rem}.button-bar-lead,.button-bar-status{min-width:0}.button-bar-status strong{font-size:1rem}.button-bar-resources,.button-bar-actions{flex-wrap:nowrap}.turn-panel .collapsible-body{grid-template-columns:minmax(0,.8fr) minmax(18rem,1.2fr);align-items:start}.turn-phase-copy,.current-task,.setup-checklist,.turn-status{grid-column:1}.turn-action-panel{grid-area:1/2/span 4}.board{height:clamp(20rem,42vh,29rem);min-height:20rem}.party-management-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=860px){.app-shell{padding:.28rem .5rem .5rem}.topbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.45rem;padding-bottom:.35rem;display:grid}.topbar>div,.tabs{width:auto}.brand-lockup{gap:0;display:grid}.app-title{font-size:1.08rem;line-height:1.05}.eyebrow{font-size:.64rem}.desktop-actions{display:none}.mobile-actions,.toolbar-menu.mobile-actions{display:inline-grid}.view-tabs{border-left:0;padding-left:0}.tabs{justify-content:end;gap:.28rem}.tabs button,.tabs .toolbar-menu summary{min-height:1.65rem;padding:.16rem .38rem;font-size:.74rem}.desktop-map-actions{display:none}.map-menu{display:inline-grid}.board{height:clamp(22rem,46vh,36rem);min-height:22rem}.board-view-controls{z-index:60;align-items:center;gap:.28rem;padding:.26rem .34rem;display:flex;position:relative;overflow:visible}.button-bar-lead{flex:1 0 auto;min-width:9.5rem}.button-bar-resources{flex-wrap:nowrap;flex:none;justify-content:start;padding-bottom:0;overflow:visible}.button-bar-actions{flex:none}.button-bar-resources .help-chip,.button-bar-resources .label-toggle{display:none}.button-bar-status{gap:0}.button-bar-status strong{font-size:.86rem}.board-view-controls button,.button-bar-actions button,.button-bar-resources button,.toolbar-menu summary{min-height:1.58rem;padding:.14rem .34rem;font-size:.72rem}.winds-indicator{grid-auto-flow:column;align-items:center;gap:.24rem;padding:.14rem .34rem}.winds-indicator span{font-size:.58rem}.winds-indicator strong{font-size:.78rem}.help-chip{width:1.8rem;min-width:1.8rem;height:1.8rem;min-height:1.8rem}.button-bar-actions .zoom-button{width:1.58rem}.turn-panel .collapsible-heading{padding:.46rem .62rem}.turn-panel .collapsible-heading b{font-size:.98rem}.turn-panel .collapsible-heading small{font-size:.7rem}.turn-panel .collapsible-body{gap:.42rem;padding:0 .62rem .62rem}.turn-phase-copy{font-size:.82rem}.current-task{gap:.34rem;padding:.46rem .52rem;font-size:.82rem}.turn-status{gap:.38rem;padding:.48rem}.turn-actor{gap:.52rem}.turn-token{width:2.65rem;height:2.65rem;font-size:1rem}.turn-stat-grid{gap:.26rem}.turn-stat-grid span{padding:.34rem .28rem;font-size:.78rem}.turn-action-panel{grid-template-columns:minmax(10.5rem,1fr) minmax(10.5rem,1fr);align-items:stretch;gap:.34rem;padding:.34rem}.control-pad-move,.control-pad-actions{min-width:0}.move-pad-wide{grid-template-rows:repeat(3,1.95rem);grid-template-columns:repeat(3,minmax(2.35rem,1fr));gap:.22rem}.move-pad button{min-height:1.95rem;padding:.14rem .2rem}.move-pad-center{padding:.18rem}.action-grid.control-pad-actions{grid-template-rows:repeat(3,1.95rem);grid-template-columns:repeat(3,minmax(2.35rem,1fr));gap:.22rem}.action-grid.control-pad-actions .icon-button{min-height:1.95rem;padding:.14rem;font-size:.76rem}.control-pad-actions .hint-wrap:has(.action-door){grid-area:1/2}.control-pad-actions .hint-wrap:has(.action-search){grid-area:2/1}:is(.control-pad-actions .hint-wrap:has(.action-attack),.control-pad-actions .hint-wrap:has(.action-confirm)){grid-area:2/2}.control-pad-actions .hint-wrap:has(.action-spells){grid-area:2/3}:is(.control-pad-actions .hint-wrap:has(.action-end),.control-pad-actions .hint-wrap:has(.action-cancel)){grid-area:3/2}.turn-panel .collapsible-body{grid-template-columns:1fr}.turn-phase-copy,.current-task,.setup-checklist,.turn-status,.turn-action-panel{grid-area:auto}}@media (width>=761px) and (width<=860px){.turn-panel .collapsible-body{grid-template-columns:minmax(0,.8fr) minmax(18rem,1.2fr);align-items:start}.turn-phase-copy,.current-task,.setup-checklist,.turn-status{grid-column:1}.turn-action-panel{grid-area:1/2/span 4}}@media (width<=620px){.app-shell{padding:.5rem}.help-tabs{gap:.22rem}.help-tabs button{min-height:1.75rem;padding:.28rem .2rem;font-size:.78rem}.help-tab-full{display:none}.help-tab-short{display:inline}.board{height:39vh;min-height:19rem}.setup-party-action{display:none}.turn-action-panel{order:-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.action-grid.control-pad-actions{grid-template-rows:repeat(3,1.85rem);grid-template-columns:repeat(3,minmax(1.9rem,1fr));gap:.22rem}.action-grid.control-pad-actions .icon-button{min-height:1.85rem}.move-pad-wide{grid-template-rows:repeat(3,1.85rem);grid-template-columns:repeat(3,minmax(1.9rem,1fr));gap:.22rem}.move-pad button{min-height:1.85rem}.combat-card .heading-actions{text-align:left;justify-content:start}.combat-card .heading-actions .muted{flex-basis:100%}.auto-defence-control{gap:.28rem;font-size:.72rem}.auto-defence-toggle{width:1.7rem;min-width:1.7rem;height:1.7rem;min-height:1.7rem;font-size:.78rem}.block-warning .button-row{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;display:grid}.board-content{grid-template-columns:repeat(var(--board-cols), 2.25rem);grid-template-rows:repeat(var(--board-rows), 2.25rem)}.token{left:calc(var(--token-x) * 2.25rem + .2rem);top:calc(var(--token-y) * 2.25rem + .2rem);width:1.85rem;height:1.85rem;font-size:.75rem}.door-marker{left:calc(var(--token-x) * 2.25rem);top:calc(var(--token-y) * 2.25rem);width:2.25rem;height:2.25rem}.trap-marker{left:calc(var(--token-x) * 2.25rem + .48rem);top:calc(var(--token-y) * 2.25rem + .48rem)}.door-north,.door-south{height:.34rem}.door-east,.door-west{width:.34rem}.door-east{transform:translate(2.08rem)}.door-south{transform:translateY(2.08rem)}.tile-label{padding-inline:.18rem;font-size:.68rem}.move-pad{grid-template-columns:repeat(3,1fr);width:100%}.turn-controls{grid-template-columns:1fr}.action-strip{grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;display:grid}.action-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.action-strip .hint-wrap{display:grid}.action-strip button{min-width:0;padding-inline:.45rem}.delve-actions,.tile-palette{grid-template-columns:1fr}.combat-overlay,.spellcasting-overlay,.trap-notice-overlay,.death-notice-overlay{inset:4.5rem .5rem 5rem}.dice-columns,.spell-cost-grid,.party-management-grid{grid-template-columns:1fr}}
