:root{color:#edf5f0;font-synthesis:none;text-rendering:optimizelegibility;background:#0d100e;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(120deg,#0c100ef5,#191713f2),#0d100e;min-width:320px;min-height:100vh;margin:0}button,select,input,textarea{font:inherit}button,select,input,textarea,.file-field{color:#f7fbf8;background:#1b211d;border:1px solid #edf5f029}button{cursor:pointer;border-radius:8px;min-height:38px}button:hover,.file-field:hover,.route-link:hover{background:#263027}input,select,textarea{border-radius:8px;width:100%}input:not([type=range]),select,textarea{padding:10px 12px}textarea{resize:vertical}input[type=range]{accent-color:#8ed39e}.app-shell{grid-template-columns:minmax(320px,390px) minmax(0,1fr);gap:16px;width:100vw;min-height:100vh;padding:16px;display:grid}.control-panel{background:#101311fa;border:1px solid #edf5f021;border-radius:8px;flex-direction:column;gap:12px;min-height:0;max-height:calc(100vh - 32px);padding:14px;display:flex;overflow:auto;box-shadow:0 18px 48px #00000047}.brand-block{border-bottom:1px solid #edf5f01f;padding-bottom:8px}.auth-card{background:#101411;border:1px solid #edf5f01f;border-radius:8px;grid-template-columns:minmax(0,1fr) 74px;align-items:center;gap:8px;margin-top:10px;padding:8px;display:grid}.auth-card strong,.auth-card span{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.auth-card strong{color:#f7fbf8;font-size:.84rem}.auth-card span{color:#a8b9ad;font-size:.74rem}.auth-card button{min-height:32px;padding:0 8px;font-size:.76rem;font-weight:900}.eyebrow,.map-header p{color:#a8b9ad;letter-spacing:0;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:800}h1,h2,p{margin-top:0}h1{margin-bottom:4px;font-size:2.1rem;line-height:1}h2{margin-bottom:10px;font-size:1rem}.subtle,.hint{color:#b7c6bd;margin-bottom:0;font-size:.9rem;line-height:1.35}.mode-tabs{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px;display:grid}.workspace-tabs{grid-template-columns:1fr 1fr;gap:8px;display:grid}.workspace-button{color:#bfccc4;min-height:42px;font-size:.92rem;font-weight:900}.workspace-button.is-active{color:#08110c;background:#8ed39e}.tab-button{color:#bfccc4;min-height:34px;padding:0 6px;font-size:.84rem;font-weight:800}.tab-button.is-active{color:#08110c;background:#8ed39e}.tool-panel,.token-panel,.encounter-panel,.audio-panel,.run-dashboard,.prep-dashboard{background:#151a17;border:1px solid #edf5f01a;border-radius:8px;padding:12px}.run-dashboard,.prep-dashboard{background:#111914;border-color:#8ed39e47;gap:10px;display:grid}.prep-dashboard{border-color:#ffd36e3d}.display-status-card{background:#0d120f;border:1px solid #edf5f01f;border-radius:8px;gap:4px;padding:10px;display:grid}.display-status-card span{color:#8ed39e;text-transform:uppercase;font-size:.76rem;font-weight:900}.display-status-card strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:1rem;overflow:hidden}.display-status-card small{color:#b7c6bd;line-height:1.3}.prep-steps{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.prep-steps span{color:#dbe8df;text-transform:uppercase;background:#101411;border:1px solid #edf5f01f;border-radius:999px;place-items:center;min-height:28px;font-size:.72rem;font-weight:900;display:grid}.prep-actions button{min-width:0}.danger-action{color:#fff4f2;background:#5b2522}.danger-action:hover{background:#71302b}.tool-panel{display:none}.tool-panel.is-active{gap:12px;display:grid}.field,.toggle,.file-field{gap:7px;display:grid}.field span,.toggle span,.file-field span{color:#dbe8df;font-size:.88rem;font-weight:800}.file-field{cursor:pointer;border-radius:8px;place-items:center;min-height:44px}.file-field input{opacity:0;width:1px;height:1px;position:absolute}.toggle{grid-template-columns:20px 1fr;align-items:center}.toolbar,.stepper{grid-template-columns:1fr 1fr;gap:8px;display:grid}.save-state-row{grid-template-columns:minmax(72px,.7fr) 1fr 1fr;align-items:center;gap:8px;display:grid}.save-state-pill{color:#dbe8df;text-transform:uppercase;background:#1b211d;border:1px solid #edf5f024;border-radius:8px;place-items:center;min-height:34px;font-size:.76rem;font-weight:900;display:grid}.save-state-pill[data-state=saved]{color:#07120c;background:#8ed39e}.save-state-pill[data-state=failed]{color:#160b0b;background:#ff9c8f}.save-state-pill[data-state=unsaved]{color:#1a1204;background:#ffd36e}.route-link{color:#f7fbf8;background:#1b211d;border:1px solid #edf5f029;border-radius:8px;place-items:center;min-height:38px;font-weight:800;text-decoration:none;display:grid}.compact-section{padding-top:4px}.section-heading{justify-content:space-between;align-items:center;gap:12px;display:flex}output{color:#ffd36e;text-align:right;min-width:2.4rem;font-size:1.8rem;font-weight:900}.icon-action{color:#08110c;background:#8ed39e;width:38px;min-height:34px;font-size:1.2rem;font-weight:900}.pill-label{color:#08110c;text-align:center;background:#8ed39e;border:1px solid #edf5f024;border-radius:999px;min-width:2.2rem;padding:5px 8px;font-size:.78rem;font-weight:900}.library-grid{gap:10px;max-height:58vh;padding-right:2px;display:grid;overflow:auto}.library-card{background:#101411;border:1px solid #edf5f01f;border-radius:8px;grid-template-columns:112px minmax(0,1fr);gap:10px;min-height:112px;padding:9px;display:grid}.library-thumb{background-color:#070807;background-position:50%;background-size:cover;border-radius:6px;width:112px;min-height:94px}.library-card-body{align-content:start;gap:5px;min-width:0;display:grid}.library-category{color:#ffd36e;text-transform:uppercase;font-size:.72rem;font-weight:900}.library-card strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.92rem;line-height:1.15;overflow:hidden}.library-card p{color:#b7c6bd;margin-bottom:2px;font-size:.78rem;line-height:1.25}.library-actions{grid-template-columns:.8fr 1.2fr;gap:6px;display:grid}.library-actions button{min-height:30px;padding:0 8px;font-size:.78rem;font-weight:900}.asset-card{background:#101411;border:1px solid #edf5f01f;border-radius:8px;gap:5px;padding:10px;display:grid}.asset-card span{color:#ffd36e;text-transform:uppercase;font-size:.78rem;font-weight:900}.cleanup-preview{grid-template-columns:1fr 1fr;gap:8px;display:grid}.cleanup-preview>div{gap:5px;display:grid}.cleanup-preview span{color:#ffd36e;text-transform:uppercase;font-size:.72rem;font-weight:900}.cleanup-preview-image{background-color:#070807;background-position:50%;background-size:cover;border:1px solid #edf5f01f;border-radius:6px;min-height:92px}.asset-library-grid{gap:9px;max-height:44vh;padding-right:2px;display:grid;overflow:auto}.asset-library-card{background:#101411;border:1px solid #edf5f01f;border-radius:8px;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:8px;display:grid}.asset-library-thumb{object-fit:cover;background-color:#070807;background-position:50%;background-size:cover;border-radius:6px;width:92px;height:62px}.asset-library-body{gap:6px;min-width:0;display:grid}.asset-library-body span{color:#ffd36e;text-transform:uppercase;font-size:.72rem;font-weight:900}.asset-library-body input{min-height:30px;padding:0 8px;font-size:.8rem;font-weight:800}.asset-library-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}.asset-library-actions button{min-height:30px;padding:0 8px;font-size:.78rem;font-weight:900}.audio-library-list{gap:7px;display:grid}.audio-row{grid-template-columns:minmax(0,1fr) 70px 64px;align-items:center;gap:6px;display:grid}.audio-row strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.84rem;overflow:hidden}.audio-row button{min-height:30px;padding:0 8px;font-size:.76rem;font-weight:900}.soundboard-list{gap:7px;display:grid}.soundboard-row{grid-template-columns:20px minmax(0,1fr) 58px;align-items:center;gap:8px;display:grid}.soundboard-row strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.84rem;overflow:hidden}.soundboard-row button{min-height:30px;padding:0 8px;font-size:.76rem;font-weight:900}.import-report{background:#101411;border:1px solid #edf5f01f;border-radius:8px;gap:7px;padding:10px;display:grid}.import-report-row{grid-template-columns:92px minmax(0,1fr);align-items:center;gap:10px;display:grid}.import-report-row span{color:#a8b9ad;text-transform:uppercase;font-size:.76rem;font-weight:900}.import-report-row strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.86rem;overflow:hidden}.import-warning{color:#ffd36e;margin:2px 0 0;font-size:.8rem;line-height:1.25}.token-list{gap:7px;display:grid}.token-template-tools{grid-template-columns:minmax(0,1fr) repeat(5,minmax(72px,92px));gap:6px;margin-bottom:8px;display:grid}.token-template-tools select,.token-template-tools button{min-height:30px;padding:0 6px;font-size:.74rem;font-weight:900}.token-row{border-bottom:1px solid #edf5f014;grid-template-columns:minmax(92px,1fr) 78px 48px 48px 68px;align-items:center;gap:6px;padding-bottom:7px;display:grid}.token-row input,.token-row select,.token-row button{min-height:32px;padding:0 6px;font-size:.78rem;font-weight:800}.token-row input[type=number]{text-align:center}.token-row input:nth-child(6),.token-row input:nth-child(7),.token-row input:nth-child(8){min-width:0}.token-row input:nth-child(9){grid-column:1/span 5;min-width:0}.token-row .token-note{grid-column:span 2;min-width:0}.token-row .token-note-toggle{grid-column:span 1}.token-row .token-control-player{grid-column:span 2;min-width:0}.token-row .token-control-toggle{grid-column:span 2}.token-row .token-player-name{grid-column:span 2;min-width:0}.token-row .token-display-toggle{grid-column:span 1}.dice-quick-roll-list{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;display:grid}.dice-quick-roll-list button{min-height:28px;padding:0 4px;font-size:.72rem;font-weight:900}.dice-advantage-row{grid-template-columns:1fr 1fr;gap:5px;display:grid}.dice-advantage-row button{min-height:28px;padding:0 6px;font-size:.72rem;font-weight:900}.template-list,.mcp-list,.character-link-list,.gm-card-list,.npc-forge-actor-list,.suite-context-panel,.outcome-event-list,.dice-roll-list,.reveal-audit-list,.scribe-event-list{gap:7px;display:grid}.template-row,.mcp-row,.character-link-row,.npc-forge-actor-row,.suite-context-row,.outcome-event-row,.dice-roll-row,.reveal-audit-row,.scribe-event-row{background:#101411;border:1px solid #edf5f01f;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px;padding:8px;display:grid}.template-row{grid-template-columns:minmax(0,1fr) 74px 58px 58px}.mcp-row{grid-template-columns:minmax(0,1fr) auto auto}.content-pack-row{grid-template-columns:minmax(0,1fr) auto auto auto}.content-pack-review{grid-column:1/-1;gap:5px;display:grid}.content-pack-review span{color:#b7c6bd;text-transform:none;background:#edf5f008;border:1px solid #edf5f01a;border-radius:6px;min-height:24px;padding:4px 6px;font-size:.72rem;font-weight:800}.content-pack-review span[data-status=ready]{color:#b7e3c1;border-color:#8ed39e5c}.content-pack-review span[data-status=unsupported]{color:#ffb8b1;border-color:#ff7d726b}.content-pack-review span[data-status=installed]{color:#ffe2a0;border-color:#ffd36e66}.mcp-settings-row{grid-column:1/-1;grid-template-columns:minmax(150px,1.4fr) minmax(110px,1fr) minmax(110px,1fr) auto auto;align-items:center;gap:6px;display:grid}.mcp-settings-row input{color:#ecf5ef;background:#080d0a;border:1px solid #edf5f029;border-radius:6px;width:100%;min-width:0;min-height:30px;padding:0 8px}.inline-checkbox{color:#a8b9ad;white-space:nowrap;align-items:center;gap:5px;font-size:.74rem;font-weight:800;display:inline-flex}.inline-checkbox input{width:auto;min-height:0}.template-row.polygon-row{grid-template-columns:minmax(0,1fr) 88px 58px 58px 58px 58px}.suite-context-row{grid-template-columns:minmax(0,1fr);align-items:start}.suite-context-row span{color:#8ed39e;text-transform:uppercase;font-size:.68rem;font-weight:900}.suite-context-row p{color:#b7c6bd;margin:0;font-size:.78rem;line-height:1.3}.mcp-row[data-status=connected]{border-color:#8ed39e73}.mcp-row[data-status=error],.mcp-row[data-status=failed]{border-color:#ff7d728c}.mcp-row strong,.template-row strong,.character-link-row strong,.gm-card-row strong,.npc-forge-actor-row strong,.suite-context-row strong,.outcome-event-row strong,.dice-roll-row strong,.reveal-audit-row strong,.scribe-event-row strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.84rem;overflow:hidden}.mcp-row span,.template-row span,.npc-forge-actor-row span,.outcome-event-row span,.dice-roll-row span,.reveal-audit-row span,.scribe-event-row span{color:#a8b9ad;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.76rem;overflow:hidden}.gm-card-row{background:#101411;border:1px solid #edf5f01f;border-radius:8px;gap:7px;padding:9px;display:grid}.gm-card-row[data-status=active]{border-color:#ffd36e80}.gm-card-row p{color:#b7c6bd;margin:0;font-size:.8rem;line-height:1.3}.gm-card-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.template-row button,.mcp-row button,.gm-card-actions button,.npc-forge-actor-row button,.character-link-row select{min-height:30px;padding:0 8px;font-size:.76rem;font-weight:900}.token-visibility{color:#08110c;background:#8ed39e}.token-remove{color:#fff4f2;background:#5b2522}.round-controls{grid-template-columns:52px 52px;gap:6px;display:grid}.round-controls button{min-height:30px;padding:0 6px;font-size:.76rem;font-weight:900}.initiative-list{gap:7px;display:grid}.initiative-row{grid-template-columns:48px minmax(42px,.7fr) 54px minmax(80px,1fr);align-items:center;gap:6px;display:grid}.initiative-row button,.initiative-row input{min-height:30px;padding:0 6px;font-size:.76rem;font-weight:800}.initiative-row strong{color:#dbe8df;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.84rem;overflow:hidden}.initiative-row.is-active-turn{background:#8ed39e21;border-radius:8px;padding:4px}.display-shell{background:#070807;border:1px solid #edf5f024;border-radius:8px;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;min-width:0;min-height:0;padding:16px;display:grid}body[data-route=player]{background:#040504;overflow:hidden}body[data-route=player] .app-shell{grid-template-columns:1fr;height:100vh;min-height:100vh;padding:0;overflow:hidden}body[data-route=player] .control-panel{display:none}body[data-route=player] .display-shell{border:0;border-radius:0;height:100vh;min-height:100vh;padding:22px;overflow:hidden}body[data-route=player] .status-strip{display:none}body[data-route=player] .map-surface{width:auto;max-width:100%;height:min(100%,56.25vw - 24.75px)}body[data-route=player][data-player-display-mode=blackout] .map-header,body[data-route=player][data-player-display-mode=blackout] .player-content-strip{display:none}body[data-route=player][data-player-display-mode=blackout] .map-viewport{background:#000;position:relative}body[data-route=player][data-player-display-mode=blackout] .map-viewport:after{color:#edf5f0d1;content:"Display paused";place-items:center;font-size:clamp(1.4rem,4vw,3rem);font-weight:900;display:grid;position:absolute;inset:0}body[data-route=player][data-player-display-mode=blackout] .map-surface{opacity:0}.display-shell:fullscreen{background:#040504;width:100vw;height:100vh;padding:22px}.map-header{justify-content:space-between;align-items:end;gap:18px;padding-bottom:14px;display:flex}.map-header h2{margin:4px 0;font-size:clamp(1.6rem,3.8vw,3.6rem);line-height:1}#playerNoteDisplay{color:#dbe8df;max-width:56rem;font-size:clamp(.95rem,1.4vw,1.2rem);font-weight:700;display:block}.status-strip{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.status-strip span{color:#e2eee6;background:#151a17;border:1px solid #edf5f029;border-radius:8px;min-height:34px;padding:7px 10px;font-weight:900}.map-viewport{background:#040504;border-radius:8px;place-items:center;min-height:0;display:grid;overflow:hidden}.player-content-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-height:0;display:grid}.player-content-strip[hidden]{display:none}.player-content-card{background:#101411;border:1px solid #edf5f024;border-radius:8px;gap:3px;min-width:0;padding:8px 10px;display:grid}.player-dice-card{background:#17160f;border-color:#ffd36e52}.player-content-card span{color:#8ed39e;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap;font-size:.68rem;font-weight:900;overflow:hidden}.player-dice-card span{color:#ffd36e}.player-content-card strong{color:#f7fbf8;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem;overflow:hidden}.player-content-card p{color:#b7c6bd;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:.78rem;line-height:1.25;display:-webkit-box;overflow:hidden}.map-surface{--grid-size:56px;--grid-color:245, 250, 246;--grid-opacity:.22;--grid-offset-x:0px;--grid-offset-y:0px;--zoom:1;aspect-ratio:16/9;width:min(100%,177.778vh - 199.111px);transform:scale(var(--zoom));transform-origin:50%;background:radial-gradient(circle at 22% 28%,#6189556b,#0000 19%),radial-gradient(circle at 72% 38%,#5a563e7a,#0000 22%),linear-gradient(35deg,#273329 0%,#47533a 36%,#242723 37%,#30382d 100%);border:1px solid #ffffff21;border-radius:8px;position:relative;overflow:hidden}.map-artwork,.map-video,.light-layer,.light-source-layer,.grid-layer,.hex-grid-layer,.wall-layer,.door-layer,.portal-layer,.measurement-layer,.template-layer,.figure-detection-layer,.fog-layer,.token-layer{position:absolute;inset:0}.map-artwork{background-position:50%;background-size:cover}.map-video{object-fit:cover;width:100%;height:100%}.light-layer{pointer-events:none;mix-blend-mode:multiply}.light-source-layer{pointer-events:none}.light-source-layer.is-editing{pointer-events:auto}.light-source{--light-range:80px;--light-dim-range:160px;--light-bright-stop:25%;--light-fade-stop:72%;--light-color:#ffd36e;--light-angle:60deg;width:var(--light-dim-range);height:var(--light-dim-range);background:radial-gradient(circle, var(--light-color) 0 8%, color-mix(in srgb, var(--light-color) 34%, transparent) var(--light-bright-stop), transparent var(--light-fade-stop));filter:blur(2px);pointer-events:auto;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.light-source[data-shape=cone]{border-radius:0}.light-source[data-role=secondary]{filter:blur(4px)saturate(.78)}.light-source[data-role=secondary][data-selected=true]{outline-style:dashed}.light-source[data-shape=cone][data-selected=true]{outline-offset:5px}.light-source[data-selected=true]{outline-offset:3px;outline:2px solid #8ed39e}.light-source[data-elevation]:not([data-elevation="0"]):after{content:attr(data-elevation) " ft";color:#08110c;background:#f7fbf8;border-radius:999px;padding:2px 5px;font-size:.64rem;font-weight:900;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.grid-layer{background-image:linear-gradient(rgba(var(--grid-color), var(--grid-opacity)) 1px, transparent 1px), linear-gradient(90deg, rgba(var(--grid-color), var(--grid-opacity)) 1px, transparent 1px);background-position:var(--grid-offset-x) var(--grid-offset-y);background-size:var(--grid-size) var(--grid-size);mix-blend-mode:screen}.hex-grid-layer{pointer-events:none}.hex-grid-layer polygon{fill:none;stroke:rgba(var(--grid-color), var(--grid-opacity));stroke-linejoin:round;stroke-width:1px}.wall-layer,.door-layer,.portal-layer{pointer-events:none}.wall-layer.is-editing,.door-layer.is-editing{pointer-events:auto}.wall-layer polyline{fill:none;stroke:#ff7066eb;stroke-linecap:round;stroke-linejoin:round;stroke-width:.35px;pointer-events:stroke}.wall-layer polyline[data-selected=true]{stroke:#8ed39e;stroke-width:.65px}.wall-layer polyline[data-elevation]:not([data-elevation="0"]),.door-layer polyline[data-elevation]:not([data-elevation="0"]){stroke-dasharray:1.4 .65}.door-layer polyline{fill:none;stroke:#ffd36ef2;stroke-dasharray:1.2 .9;stroke-linecap:round;stroke-linejoin:round;stroke-width:.55px;pointer-events:stroke}.door-layer polyline[data-open=true]{opacity:.38}.door-layer polyline[data-selected=true]{stroke:#8ed39e;stroke-width:.75px}.portal-layer polyline{fill:none;stroke:#d7b3fff2;stroke-linecap:round;stroke-linejoin:round;stroke-width:.45px}.measurement-layer,.template-layer,.figure-detection-layer{pointer-events:none}.measurement-layer line{stroke:#8ed39ef2;stroke-linecap:round;stroke-width:3px}.measurement-layer text{paint-order:stroke;fill:#f7fbf8;stroke:#070807e6;stroke-width:4px;font-size:14px;font-weight:900}.map-template{--template-color:#8ed39e;border:2px solid var(--template-color);background:color-mix(in srgb, var(--template-color) 24%, transparent);position:absolute;transform:translate(-50%,-50%)}.map-template-circle,.map-template-cone{border-radius:999px}.map-template-cone{clip-path:polygon(0 50%,100% 0,100% 100%);border-radius:8px}.map-template-line{border-radius:999px;height:8px!important}.map-template[data-kind=terrain]{border-style:dashed}.map-template[data-draggable=true],.map-overlay-label[data-draggable=true]{cursor:grab;pointer-events:auto;touch-action:none}.map-template[data-draggable=true]:active,.map-overlay-label[data-draggable=true]:active{cursor:grabbing}.map-template[data-kind=elevation]:after{content:"E";color:#f7fbf8;font-size:.7rem;font-weight:900;position:absolute;top:2px;right:4px}.map-overlay-label{--label-color:#f7fbf8;border:1px solid color-mix(in srgb, var(--label-color) 42%, transparent);max-width:min(240px,28vw);color:var(--label-color);overflow-wrap:anywhere;text-align:center;background:#070a08c2;border-radius:6px;padding:4px 8px;font-size:.78rem;font-weight:900;line-height:1.15;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #00000047}.map-overlay-label[data-visibility=gm-only]{border-style:dashed}.overlay-stroke-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.overlay-stroke-svg polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.overlay-stroke-svg polygon{fill-opacity:.22;stroke-opacity:.9;stroke-width:2px}.overlay-stroke-svg polygon[data-kind=terrain]{stroke-dasharray:4 3}.overlay-stroke-svg polygon[data-kind=elevation]{fill-opacity:.12;stroke-width:3px}.overlay-stroke-svg polyline[data-visibility=gm-only],.overlay-stroke-svg polygon[data-visibility=gm-only]{stroke-dasharray:4 4}.figure-detection{background:#ffd36e33;border:2px solid #ffd36e;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.figure-detection[data-matched=true]{background:#8ed39e33;border-color:#8ed39e}.fog-layer{pointer-events:none;width:100%;height:100%}.fog-cursor{z-index:4;pointer-events:none;border:2px solid #8ed39ee6;border-radius:999px;position:absolute;transform:translate(-50%,-50%)}.fog-cursor[data-mode=hide]{border-color:#ff7d72f2}.token-layer{pointer-events:none}.token{--hp-percent:100%;color:#08110c;pointer-events:auto;background:linear-gradient(var(--token-color), var(--token-color)) padding-box, conic-gradient(#8ed39e var(--hp-percent), #fff3 0) border-box;touch-action:none;border:3px solid #f8fbf8;border-radius:999px;place-items:center;min-width:32px;min-height:32px;font-size:1rem;font-weight:900;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 10px 22px #00000057}.token-hero{--token-color:#8ccfff}.token-enemy{--token-color:#ff7d72}.token-neutral{--token-color:#ffd36e}.token-npc{--token-color:#d7b3ff}.token-statuses{color:#08110c;background:#ffd36e;border:2px solid #070807;border-radius:999px;place-items:center;min-width:20px;min-height:20px;font-size:.62rem;font-weight:900;display:grid;position:absolute;bottom:-8px;right:-8px}.is-hidden-token{opacity:.42;outline-offset:3px;outline:2px dashed #ffffffbf}@media (width<=980px){.app-shell{grid-template-columns:1fr}.control-panel{order:2;max-height:none}.display-shell{min-height:56vh}.map-header{flex-direction:column;align-items:start}.status-strip{justify-content:flex-start}}
