:root{--cell-size:43px}:root[data-theme=dark]{--bg:#0b0e14;--panel:#131720;--panel-2:#181d29;--panel-3:#202635;--line:#2a3040;--soft-line:#212633;--ink:#e8ebf2;--muted:#99a2b5;--faint:#6c7488;--red:#ff3b52;--red-deep:#d92638;--cyan:#3fd8e4;--cyan-deep:#25a8b3;--yellow:#f2b23e;--charcoal:#10141c;--cyan-rgb:63,216,228;--red-rgb:255,59,82;--yellow-rgb:242,178,62;--coord-rgb:160,175,205;--gridline-rgb:140,160,195;--shadow-rgb:0,0,0;--input-bg:#0e1219;--rail-bg:#131720f5;--board-bg:#080a0f;--grid-bg:#14181f;--cell-bg:#161a22;--cell-hover:#1f2634;--cell-drop:#22384a;--grid-border:#39415a;--scroll-thumb:#2c3342;--scroll-thumb-hover:#3a4254;--tab-index:#4a5164;--line-strong:#3d4454;--red-soft:#ff7285;--red-softer:#ff8b9b;--cyan-soft:#7de8f0;--backdrop:#05070ab8;--token-ring:#0b0e14;--bg-gridline:#788caf0b}:root[data-theme=light]{--bg:#f4efe6;--panel:#faf6ee;--panel-2:#f0e9dc;--panel-3:#e7dfcf;--line:#d8cfbc;--soft-line:#e2dac8;--ink:#3d3428;--muted:#6f6350;--faint:#978a74;--red:#a63a3a;--red-deep:#8f2f2f;--cyan:#2f6b66;--cyan-deep:#265a55;--yellow:#b07d2a;--charcoal:#ece4d4;--cyan-rgb:47,107,102;--red-rgb:166,58,58;--yellow-rgb:176,125,42;--coord-rgb:120,108,85;--gridline-rgb:150,135,105;--shadow-rgb:90,72,45;--input-bg:#fdfaf3;--rail-bg:#faf6eef5;--board-bg:#e9e1d1;--grid-bg:#efe8d9;--cell-bg:#f6f1e5;--cell-hover:#ede4d0;--cell-drop:#e2d8c0;--grid-border:#c9bda2;--scroll-thumb:#cfc4ad;--scroll-thumb-hover:#bcae92;--tab-index:#a89a7f;--line-strong:#c8bca3;--red-soft:#a63a3a;--red-softer:#8f2f2f;--cyan-soft:#265a55;--backdrop:#3c322380;--token-ring:#f4efe6;--bg-gridline:#7864460d}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--ink);margin:0;font-family:Arial,Microsoft YaHei,sans-serif;font-size:14px}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,.grid-cell:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:2px solid var(--token-ring);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.app-shell{background:linear-gradient(90deg, var(--bg-gridline) 1px, transparent 1px), linear-gradient(var(--bg-gridline) 1px, transparent 1px), var(--bg);background-size:24px 24px;min-height:100vh}.topbar{border-bottom:1px solid var(--line);min-height:76px;box-shadow:inset 0 -2px 0 rgba(var(--red-rgb),.28);background:var(--panel);align-items:center;gap:20px;padding:12px 18px;display:flex}.brand-lockup{align-items:center;gap:10px;min-width:215px;display:flex}.brand-mark{background:var(--red-deep);color:#fff;width:38px;height:38px;box-shadow:0 0 14px rgba(var(--red-rgb),.45);place-items:center;font-size:24px;font-weight:800;display:grid}.eyebrow,.section-label{color:var(--faint);letter-spacing:1.6px;text-transform:uppercase;margin:0;font-size:12px;font-weight:700}h1{letter-spacing:3px;color:var(--ink);text-shadow:0 0 12px rgba(var(--cyan-rgb),.35);margin:2px 0 0;font-size:20px;font-weight:800;line-height:1}.map-title-wrap{flex:1;gap:4px;min-width:180px;display:grid}.map-title-wrap label,.number-row label{color:var(--muted);font-size:12px;font-weight:700}input,textarea{border:1px solid var(--line);background:var(--input-bg);width:100%;color:var(--ink);border-radius:3px;padding:8px 9px;font-size:14px}input:focus,textarea:focus,select:focus{border-color:var(--cyan-deep)}.map-title-wrap input{max-width:330px;padding:6px 9px;font-weight:700}.top-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.round-pill{border:1px solid var(--line);background:var(--charcoal);color:var(--cyan);letter-spacing:1px;padding:9px 11px;font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:700}.command-button,.text-button{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);border-radius:3px;padding:8px 11px;font-size:13px;font-weight:700;transition:border-color .12s,background-color .12s,color .12s}.command-button:hover,.text-button:hover{border-color:var(--cyan-deep);color:var(--cyan)}.command-button:active{transform:translateY(1px)}.command-button.primary{background:var(--red-deep);border-color:var(--red-deep);color:#fff}.command-button.primary:hover{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 0 12px rgba(var(--red-rgb),.4)}.command-button.danger{border-color:rgba(var(--red-rgb),.55);color:var(--red-soft)}.command-button.danger:hover{background:rgba(var(--red-rgb),.14);border-color:var(--red);color:var(--red-softer)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.view-tabs{border-bottom:1px solid var(--line);background:var(--charcoal);align-items:stretch;min-height:52px;display:flex}.view-tabs>button{border:0;border-right:1px solid var(--soft-line);min-width:152px;color:var(--faint);letter-spacing:.4px;background:0 0;padding:0 18px;font-size:14px;font-weight:800;transition:background-color .12s,color .12s,box-shadow .12s}.view-tabs>button span{color:var(--tab-index);margin-right:9px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.view-tabs>button:hover{background:rgba(var(--cyan-rgb),.06);color:var(--muted)}.view-tabs>button.is-active{background:var(--panel-2);color:var(--ink);box-shadow:inset 0 -3px 0 var(--red), inset 0 -14px 22px -14px rgba(var(--red-rgb),.35)}.view-tabs>button.is-active span{color:var(--cyan)}.active-character{color:var(--muted);align-items:center;gap:8px;margin-left:auto;padding:8px 18px;font-size:13px;font-weight:700;display:flex}.active-character select{width:170px}select{border:1px solid var(--line);background:var(--input-bg);min-height:34px;color:var(--ink);border-radius:3px;padding:6px 28px 6px 8px;font-size:13px}.theme-toggle{border:0;border-right:1px solid var(--soft-line);min-width:48px;color:var(--yellow);background:0 0;padding:0 12px;font-size:17px;line-height:1;transition:background-color .12s,color .12s}.theme-toggle:hover{background:rgba(var(--yellow-rgb),.1);color:var(--ink)}.view-tabs>.theme-toggle{flex:none;min-width:48px}.map-view{flex-direction:column;min-height:calc(100vh - 129px);display:flex}.map-view .workspace{flex:1;min-height:0}.workspace{grid-template-columns:196px minmax(0,1fr) 320px;min-height:calc(100vh - 129px);display:grid}.left-rail,.right-rail{background:var(--rail-bg)}.left-rail{border-right:1px solid var(--line)}.right-rail{border-left:1px solid var(--line);overflow:auto}.rail-section,.side-section{border-bottom:1px solid var(--soft-line);padding:16px}.template-section select{width:100%;margin-top:10px}.tool-grid{grid-template-columns:repeat(2,1fr);gap:7px;margin-top:10px;display:grid}.tool-button{border:1px solid var(--line);background:var(--panel-2);min-height:56px;color:var(--ink);border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:7px 4px;line-height:1.2;transition:border-color .12s,background-color .12s;display:flex}.tool-button .tool-glyph{color:var(--cyan);font-size:17px;line-height:1}.tool-button small{color:var(--muted);font-size:12px;font-weight:700}.tool-button:hover{border-color:var(--cyan-deep)}.tool-button.is-active{background:var(--panel-3);border-color:var(--red);box-shadow:inset 0 0 0 1px rgba(var(--red-rgb),.35), 0 0 10px rgba(var(--red-rgb),.18)}.tool-button.is-active small{color:var(--ink)}.tool-caption{min-height:28px;color:var(--muted);margin:10px 0 0;font-size:12px;line-height:1.4}.note-input{margin-top:8px}.create-token-actions,.token-picker{gap:7px;margin-top:10px;display:grid}.token-choice{border:1px solid var(--line);background:var(--panel-2);color:var(--ink);text-align:left;border-radius:3px;align-items:center;gap:8px;padding:8px;font-size:13px;transition:border-color .12s,background-color .12s;display:flex}.token-choice:hover{border-color:var(--cyan-deep)}.token-choice span{color:#fff;border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:800;display:grid}.token-choice.is-active{box-shadow:inset 3px 0 0 var(--cyan);background:var(--panel-3);border-color:var(--cyan-deep)}.token-player span,.token-player{--token-color:var(--cyan-deep)}.token-enemy span,.token-enemy{--token-color:var(--red-deep)}.token-elite span,.token-elite{--token-color:#8b5fb0}.token-objective span,.token-objective{--token-color:#c98f1f}.token-civilian span,.token-civilian{--token-color:#5a6373}.token-choice span,.large-token{background:var(--token-color)}.legend-section{gap:10px;display:grid}.legend-item{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.legend-item b{color:var(--ink);margin-left:auto;font-family:ui-monospace,Consolas,monospace}.legend-swatch{border:1px solid var(--line-strong);width:16px;height:16px}.legend-swatch.terrain-wall{background:repeating-linear-gradient(135deg,#454d5e 0 3px,#2a303c 3px 6px)}.legend-swatch.terrain-cover{background:#5c4d24}.legend-swatch.terrain-hazard{background:repeating-linear-gradient(135deg,#a8842a 0 3px,#d9b44a 3px 6px)}.legend-swatch.terrain-water{background:repeating-linear-gradient(0deg,#1f5566 0 3px,#2f7d92 3px 6px)}.legend-swatch.terrain-elevation{background:linear-gradient(135deg,#2e3440 50%,#4a5263 50%)}.legend-swatch.terrain-obstacle-red{background:repeating-linear-gradient(135deg,#6e2a30 0 3px,#8f3a42 3px 6px)}.legend-swatch.terrain-obstacle-purple{background:repeating-linear-gradient(135deg,#4a3566 0 3px,#5f4680 3px 6px)}.legend-swatch.terrain-obstacle-gray{background:repeating-linear-gradient(135deg,#4d545f 0 3px,#646c78 3px 6px)}.legend-swatch.terrain-obstacle-blue{background:repeating-linear-gradient(135deg,#27436e 0 3px,#3a5c92 3px 6px)}.map-stage{background:#0b0e1499;flex-direction:column;min-width:0;padding:18px;display:flex}:root[data-theme=light] .map-stage{background:#e9e1d18c}.stage-meta{min-height:26px;color:var(--muted);align-items:center;gap:14px;font-size:13px;font-weight:700;display:flex}.stage-meta span+span{border-left:1px solid var(--line);padding-left:14px}.zoom-controls{align-items:center;gap:6px;margin-left:auto;display:inline-flex}.zoom-controls button{border:1px solid var(--line);background:var(--panel-2);min-width:32px;height:28px;color:var(--ink);cursor:pointer;border-radius:3px;padding:0 8px;font-size:15px;font-weight:800}.zoom-controls button:hover{border-color:var(--cyan);color:var(--cyan)}.zoom-controls .zoom-reset{min-width:54px;color:var(--muted);font-size:12px}.board-scroll{border:1px solid var(--line);background:var(--board-bg);touch-action:pan-x pan-y;flex:1;place-items:center;min-height:500px;margin-top:10px;padding:22px;display:grid;overflow:auto}.battle-grid{border:2px solid var(--grid-border);background:var(--grid-bg);width:max-content;box-shadow:0 0 0 1px rgba(var(--cyan-rgb),.12), 0 10px 32px rgba(var(--shadow-rgb),.5);-webkit-user-select:none;user-select:none;align-content:start;display:grid}.grid-cell{width:var(--cell-size);height:var(--cell-size);border-right:1px solid rgba(var(--gridline-rgb),.14);border-bottom:1px solid rgba(var(--gridline-rgb),.14);background:var(--cell-bg);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color 80ms;position:relative}.grid-cell:hover{background-color:var(--cell-hover)}.grid-cell.is-drop-target:hover{background-color:var(--cell-drop)}.grid-cell.terrain-wall{background:repeating-linear-gradient(135deg,#454d5e 0 4px,#272d39 4px 8px)}.grid-cell.terrain-cover{background-color:#4a3d1e;background-image:linear-gradient(45deg, rgba(var(--yellow-rgb),.16) 25%, transparent 25%, transparent 75%, rgba(var(--yellow-rgb),.16) 75%);background-size:8px 8px}.grid-cell.terrain-hazard{background:repeating-linear-gradient(135deg,#8f6f22 0 5px,#c9a137 5px 10px)}.grid-cell.terrain-water{background:repeating-linear-gradient(0deg,#1a4c5c 0 5px,#2a7085 5px 10px)}.grid-cell.terrain-elevation{background-color:#2a303d;background-image:linear-gradient(135deg, rgba(var(--coord-rgb),.14) 25%, transparent 25%, transparent 50%, rgba(var(--coord-rgb),.14) 50%, rgba(var(--coord-rgb),.14) 75%, transparent 75%);background-size:12px 12px}.grid-cell.terrain-obstacle-red{background:repeating-linear-gradient(135deg,#6e2a30 0 5px,#8f3a42 5px 10px)}.grid-cell.terrain-obstacle-purple{background:repeating-linear-gradient(135deg,#4a3566 0 5px,#5f4680 5px 10px)}.grid-cell.terrain-obstacle-gray{background:repeating-linear-gradient(135deg,#4d545f 0 5px,#646c78 5px 10px)}.grid-cell.terrain-obstacle-blue{background:repeating-linear-gradient(135deg,#27436e 0 5px,#3a5c92 5px 10px)}.coordinates{color:rgba(var(--coord-rgb),.5);pointer-events:none;font-family:ui-monospace,Consolas,monospace;font-size:10px;font-weight:700;position:absolute;top:2px;left:3px}.cell-note{z-index:2;border:1px solid rgba(var(--cyan-rgb),.5);background:var(--input-bg);max-width:calc(100% - 4px);color:var(--cyan);white-space:nowrap;text-overflow:ellipsis;pointer-events:none;padding:1px 4px;font-size:10px;font-weight:700;position:absolute;bottom:2px;left:50%;overflow:hidden;transform:translate(-50%)}.token-stack{z-index:3;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px;display:flex;position:absolute;inset:5px}.map-token{width:clamp(18px, calc(var(--cell-size) - 15px), 32px);height:clamp(18px, calc(var(--cell-size) - 15px), 32px);border:2px solid var(--token-ring);background:var(--token-color);color:#fff;box-shadow:0 0 8px rgba(var(--shadow-rgb),.55), 0 0 6px var(--token-color);font-size:clamp(9px, calc(var(--cell-size) * .3), 13px);touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:50%;place-items:center;padding:0;font-weight:800;display:grid}.map-token:hover,.map-token.is-selected{outline:2px solid var(--yellow);outline-offset:2px;transform:translateY(-1px)}.map-token small{background:var(--charcoal);color:#fff;border:1px solid #ffffff59;border-radius:8px;min-width:16px;height:16px;padding:1px 3px;font:700 10px/13px ui-monospace,Consolas,monospace;position:absolute;bottom:-5px;right:-5px}.map-token.is-selected{box-shadow:0 0 0 3px var(--token-ring), 0 0 0 5px rgba(var(--yellow-rgb),.9), 0 0 16px rgba(var(--yellow-rgb),.65), 0 0 6px var(--token-color)}.map-token.is-exhausted{cursor:not-allowed;filter:grayscale(.45);opacity:.7}.map-token.is-exhausted:hover{outline:none;transform:none}.board-hint{color:var(--faint);margin:10px 0 0;font-size:12px}.panel-head{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-head .section-label{margin-bottom:0}.panel-head:hover .section-label{color:var(--ink)}.panel-chevron{color:var(--faint);font-size:11px;transition:transform .14s}.panel-head.is-closed .panel-chevron{transform:rotate(-90deg)}.panel-head-actions{align-items:center;gap:8px;display:inline-flex}.peek-toggle{width:auto;padding:0 12px;font-size:13px;font-weight:800}.peek-toggle.is-active{color:var(--cyan);box-shadow:inset 0 -2px 0 var(--cyan);background:rgba(var(--cyan-rgb),.1)}.freemove-toggle.is-active{color:var(--yellow);box-shadow:inset 0 -2px 0 var(--yellow);background:rgba(var(--yellow-rgb),.12)}.map-stage{position:relative}.peek-card{z-index:30;border:1px solid var(--line);border-top:3px solid var(--cyan);background:var(--panel-2);width:min(258px,78vw);box-shadow:0 12px 30px rgba(var(--shadow-rgb),.5);border-radius:3px;padding:10px 12px;position:absolute;top:52px;right:18px}.peek-head{align-items:center;gap:9px;display:flex}.peek-title{flex-direction:column;flex:1;min-width:0;display:flex}.peek-title b{white-space:nowrap;text-overflow:ellipsis;font-size:14px;overflow:hidden}.peek-title small{color:var(--muted);font-size:11.5px}.peek-close{border:1px solid var(--line);width:26px;height:26px;color:var(--muted);cursor:pointer;background:0 0;border-radius:3px;flex:none;font-size:15px}.peek-close:hover{color:var(--ink);border-color:var(--ink)}.peek-statuses{flex-wrap:wrap;gap:5px;margin-top:9px;display:flex}.peek-statuses i{border:1px solid rgba(var(--yellow-rgb),.6);background:rgba(var(--yellow-rgb),.14);color:var(--yellow);border-radius:3px;padding:2px 8px;font-size:11.5px;font-style:normal;font-weight:800}.peek-statuses em{color:var(--faint);font-size:12px;font-style:normal}.peek-metrics{color:var(--muted);grid-template-columns:1fr 1fr;gap:4px 12px;margin-top:9px;font-size:12.5px;display:grid}.peek-metrics b{color:var(--ink);font-family:ui-monospace,Consolas,monospace}.peek-metrics b.is-out{color:var(--red)}.peek-pos{color:var(--faint);margin:8px 0 0;font-size:11px}.grid-cell.in-move-range{box-shadow:inset 0 0 0 2px rgba(var(--blue-rgb),.95);background-image:linear-gradient(rgba(var(--blue-rgb),.14), rgba(var(--blue-rgb),.14))}.grid-cell.in-dash-range{box-shadow:inset 0 0 0 2px rgba(var(--red-rgb),.85);background-image:linear-gradient(rgba(var(--red-rgb),.1), rgba(var(--red-rgb),.1))}.grid-cell.is-drop-ok{z-index:1;box-shadow:inset 0 0 0 2px var(--cyan);background-color:var(--cell-drop)}.grid-cell.is-drop-bad{z-index:1;box-shadow:inset 0 0 0 2px var(--red);cursor:not-allowed}:root[data-theme=dark]{--blue-rgb:91,143,201;--label-ink:#eef2f9;--label-shadow-rgb:6,8,13}:root[data-theme=light]{--blue-rgb:58,111,138;--label-ink:#3d3428;--label-shadow-rgb:250,246,238}.token-with-label{place-items:center;display:grid;position:relative}.token-name-label{z-index:6;max-width:calc(var(--cell-size) * 2);white-space:nowrap;text-overflow:ellipsis;color:var(--label-ink);pointer-events:none;text-shadow:1px 0 0 rgba(var(--label-shadow-rgb),.95), -1px 0 0 rgba(var(--label-shadow-rgb),.95), 0 1px 0 rgba(var(--label-shadow-rgb),.95), 0 -1px 0 rgba(var(--label-shadow-rgb),.95), 1px 1px 2px rgba(var(--label-shadow-rgb),.9);padding:0 3px;font-size:10.5px;font-weight:800;line-height:1.25;position:absolute;top:calc(100% + 2px);left:50%;overflow:hidden;transform:translate(-50%)}.initiative-bar{border-bottom:1px solid var(--line);background:var(--panel);align-items:stretch;gap:12px;padding:8px 14px;display:flex}.initiative-controls{flex-direction:column;flex:none;justify-content:center;gap:6px;display:flex}.initiative-controls .round-pill{text-align:center;padding:6px 10px}.initiative-controls .command-button{padding:6px 10px;font-size:13px}.initiative-track{scrollbar-width:thin;flex:1;align-items:stretch;gap:9px;min-width:0;padding:4px 2px;display:flex;overflow-x:auto}.initiative-card{border:1px solid var(--line);border-top:3px solid var(--token-color);background:var(--panel-2);border-radius:3px;flex:none;transition:transform .12s,box-shadow .12s,border-color .12s;display:flex;position:relative}.initiative-card-main{color:var(--ink);text-align:left;background:0 0;border:0;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:8px;padding:6px 10px;display:grid}.initiative-init{background:var(--token-color);color:#fff;border-radius:50%;grid-row:1/3;place-items:center;width:30px;height:30px;font-size:14px;font-weight:800;display:grid}.initiative-name{white-space:nowrap;text-overflow:ellipsis;max-width:132px;font-size:14px;font-weight:800;overflow:hidden}.initiative-meta{color:var(--muted);align-items:baseline;gap:8px;font-size:12px;display:flex}.initiative-meta i{font-style:normal;font-weight:700}.initiative-meta em{font-family:ui-monospace,Consolas,monospace;font-style:normal}.initiative-meta em.is-out{color:var(--red-soft);font-weight:800}.initiative-card.is-current{z-index:2;border-color:var(--yellow);border-top-color:var(--token-color);box-shadow:0 0 0 1px rgba(var(--yellow-rgb),.55), 0 0 14px rgba(var(--yellow-rgb),.3);transform:scale(1.06)}.initiative-reset{border:1px solid var(--line);background:var(--panel-3);width:20px;height:20px;color:var(--cyan);border-radius:50%;padding:0;font-size:12px;line-height:1;position:absolute;top:-7px;right:-7px}.initiative-reset:hover{border-color:var(--cyan-deep);background:rgba(var(--cyan-rgb),.14)}.initiative-empty{color:var(--faint);align-self:center;margin:0;font-size:13px}.map-toolbar{border-bottom:1px solid var(--line);background:var(--charcoal);flex-wrap:wrap;align-items:center;gap:18px;padding:7px 14px;display:flex}.toolbar-group{align-items:center;gap:8px;display:flex}.toolbar-group+.toolbar-group{border-left:1px solid var(--soft-line);padding-left:18px}.toolbar-label{color:var(--faint);letter-spacing:.5px;font-size:12px;font-weight:800}.toolbar-toggle{border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:3px;padding:6px 12px;font-size:13px;font-weight:700;transition:border-color .12s,color .12s,background-color .12s}.toolbar-toggle:hover{border-color:var(--cyan-deep);color:var(--ink)}.toolbar-toggle.is-on{border-color:var(--cyan-deep);background:rgba(var(--cyan-rgb),.12);color:var(--cyan);box-shadow:inset 0 0 0 1px rgba(var(--cyan-rgb),.25)}.range-chip{border-radius:3px;padding:4px 9px;font-size:12px;font-weight:700}.range-chip.move{border:1px solid rgba(var(--blue-rgb),.7);color:rgb(var(--blue-rgb))}.range-chip.dash{border:1px solid rgba(var(--red-rgb),.6);color:var(--red-soft)}.drag-hint{border:1px solid var(--cyan-deep);background:rgba(var(--cyan-rgb),.1);color:var(--cyan);border-radius:3px;margin-left:auto;padding:5px 11px;font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:700}.drag-hint.is-bad{border-color:var(--red);background:rgba(var(--red-rgb),.12);color:var(--red-soft)}.section-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.text-button{color:var(--cyan);background:0 0;border:0;padding:3px 0;font-size:13px}.text-button:hover{color:var(--cyan-soft)}.danger-text{color:var(--red-soft)}.danger-text:hover{color:var(--red-softer)}.number-row{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.number-row label{gap:5px;display:grid}.number-row input{padding:6px 7px}textarea{resize:vertical;min-height:88px;color:var(--ink);margin-top:10px;font-size:13px;line-height:1.5}.selected-panel{min-height:185px}.large-token{border:2px solid var(--token-ring);color:#fff;width:36px;height:36px;box-shadow:0 0 8px var(--token-color);border-radius:50%;place-items:center;font-size:15px;font-weight:800;display:grid}.empty-state{color:var(--faint);margin:14px 0 0;font-size:13px;line-height:1.6}.full-token-editor{margin-top:12px}.token-identity{grid-template-columns:40px minmax(0,1fr);align-items:center;gap:10px;display:grid}.token-identity label,.compact-stat-grid label,.resource-grid label{color:var(--muted);gap:5px;font-size:12px;font-weight:700;display:grid}.editor-subhead{border-bottom:1px solid var(--line);min-height:36px;color:var(--ink);letter-spacing:.6px;justify-content:space-between;align-items:center;margin-top:14px;padding:0 2px 7px;font-size:13px;font-weight:800;display:flex}.editor-subhead small{color:var(--faint);font-size:12px;font-weight:600}.editor-subhead.collapsible{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .12s}.editor-subhead.collapsible:hover{color:var(--cyan)}.editor-subhead.collapsible>span:before{content:"▾";color:var(--red);margin-right:7px;font-size:12px;display:inline-block}.editor-subhead.collapsible.is-closed>span:before{content:"▸";color:var(--faint)}.editor-subhead.collapsible.is-closed{color:var(--muted);border-bottom-style:dashed}.compact-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.compact-stat-grid input,.resource-grid input{text-align:center;min-width:0;padding:6px 4px;font-family:ui-monospace,Consolas,monospace;font-weight:700}.dice-pool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.resource-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.status-grid label{min-width:0;color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.status-grid input{width:auto;accent-color:var(--red)}.profile-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-top:10px;display:grid}.profile-grid label{color:var(--muted);gap:5px;font-size:12px;font-weight:700;display:grid}.profile-grid input{min-width:0;padding:6px 5px}.profile-grid select,.profile-grid textarea{width:100%;min-width:0}.profile-grid textarea{min-height:64px;margin-top:0}.profile-grid .wide-profile{grid-column:1/-1}.movement-row{border:1px solid rgba(var(--blue-rgb),.5);background:rgba(var(--blue-rgb),.08);color:var(--muted);border-radius:3px;justify-content:space-between;align-items:center;gap:10px;margin-top:10px;padding:8px 10px;font-size:13px;display:flex}.movement-row b{color:var(--ink);font-family:ui-monospace,Consolas,monospace}.movement-row b.is-out{color:var(--red-soft)}.attach-dialog-backdrop{z-index:60;background:var(--backdrop);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.attach-dialog{border:1px solid var(--line);border-top:3px solid var(--red);background:var(--panel-2);width:min(500px,100%);max-height:86vh;box-shadow:0 18px 48px rgba(var(--shadow-rgb),.6), 0 0 24px rgba(var(--red-rgb),.12);padding:20px;overflow:auto}.attach-dialog h3{letter-spacing:.5px;margin:6px 0 8px;font-size:20px;font-weight:800}.shot-dialog{width:min(560px,100%)}.shot-options{flex-wrap:wrap;gap:10px 18px;margin:12px 0 4px;display:flex}.shot-options label{cursor:pointer;align-items:center;gap:7px;font-size:13.5px;font-weight:700;display:inline-flex}.shot-peek-picker{margin-top:10px}.shot-peek-list{border:1px solid var(--soft-line);background:var(--input-bg);scrollbar-width:thin;border-radius:3px;flex-wrap:wrap;gap:7px 14px;max-height:108px;margin-top:7px;padding:8px 10px;display:flex;overflow-y:auto}.shot-peek-list label{cursor:pointer;align-items:center;gap:6px;font-size:13px;display:inline-flex}.shot-peek-list label.is-picked{color:var(--cyan);font-weight:800}.shot-empty{color:var(--faint);font-size:12.5px}.shot-preview{border:1px solid var(--line);background:var(--board-bg);border-radius:3px;width:100%;margin-top:14px;display:block}.shot-tip{opacity:.8;margin:10px 0 0;font-size:12px}.save-new-row{gap:8px;margin-top:12px;display:flex}.save-new-row input{border:1px solid var(--soft-line);background:var(--input-bg);min-width:0;color:var(--text);border-radius:3px;flex:1;padding:8px 10px;font-size:13.5px}.save-list{border:1px solid var(--soft-line);background:var(--input-bg);scrollbar-width:thin;border-radius:3px;flex-direction:column;gap:6px;max-height:220px;margin-top:12px;padding:8px 10px;display:flex;overflow-y:auto}.save-row{border-bottom:1px dashed var(--soft-line);justify-content:space-between;align-items:center;gap:10px;padding:6px 4px;display:flex}.save-row:last-child{border-bottom:none}.save-row-info{flex-direction:column;min-width:0;display:flex}.save-row-info strong{text-overflow:ellipsis;white-space:nowrap;font-size:13.5px;overflow:hidden}.save-row-info span{color:var(--faint);font-size:11.5px}.save-row-actions{flex-shrink:0;gap:6px;display:flex}.save-row-actions .command-button{padding:4px 10px;font-size:12px}.changelog-dialog{width:min(600px,100%)}.changelog-body{scrollbar-width:thin;max-height:56vh;margin-top:6px;padding-right:6px;overflow-y:auto}.changelog-body section{border:1px solid var(--soft-line);border-left:3px solid var(--cyan);background:var(--input-bg);border-radius:3px;margin-bottom:14px;padding:10px 12px}.changelog-body h4{margin:0 0 6px;font-size:14px;font-weight:800}.changelog-body ul{margin:0;padding-left:18px}.changelog-body li{color:var(--muted);margin:4px 0;font-size:13px;line-height:1.65}.changelog-body li b{color:var(--ink)}.changelog-foot{color:var(--ink);margin:2px 0 10px;font-size:13.5px;font-weight:800;line-height:1.7}.changelog-divider{color:var(--faint);letter-spacing:2px;text-transform:uppercase;margin:16px 0 8px;font-size:12px;font-weight:800}.changelog-divider:first-child{margin-top:0}.new-badge{background:var(--red-deep);color:#fff;letter-spacing:1px;vertical-align:2px;border-radius:3px;margin-left:8px;padding:1px 7px;font-size:10px;font-style:normal;font-weight:800;display:inline-block}.dialog-message{color:var(--muted);margin:8px 0 4px;font-size:13px;line-height:1.65}.form-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.deploy-dialog{width:min(560px,100%)}.deploy-fields{grid-template-columns:minmax(0,2fr) 1fr;gap:10px;margin-top:14px;display:grid}.deploy-fields label{color:var(--muted);gap:4px;font-size:12px;font-weight:700;display:grid}.deploy-fields input,.deploy-fields select{padding:6px 9px}.create-stat-grid{margin-top:12px}.create-stat-grid label{color:var(--muted);gap:5px;font-size:12px;font-weight:700;display:grid}.command-button:disabled,.toolbar-toggle:disabled{opacity:.45;cursor:not-allowed}.command-button:disabled:hover,.toolbar-toggle:disabled:hover{border-color:var(--line);color:inherit;background:var(--panel-2);box-shadow:none}.room-entry{border-color:var(--cyan-deep);color:var(--cyan)}.room-pill{border:1px solid var(--cyan-deep);background:rgba(var(--cyan-rgb),.08);color:var(--cyan);letter-spacing:.5px;cursor:pointer;border-radius:3px;align-items:center;gap:7px;padding:8px 11px;font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:700;transition:border-color .12s,background-color .12s;display:inline-flex}.room-pill:hover{background:rgba(var(--cyan-rgb),.16)}.status-dot{background:var(--muted);border-radius:50%;flex:none;width:8px;height:8px}.room-pill.status-online .status-dot{background:#4caf7d;box-shadow:0 0 6px #4caf7dcc}.room-pill.status-connecting .status-dot,.room-pill.status-reconnecting .status-dot{background:#d8a13c;animation:1.1s ease-in-out infinite pulse-dot;box-shadow:0 0 6px #d8a13ccc}.room-pill.status-offline .status-dot{background:var(--red-soft)}@keyframes pulse-dot{50%{opacity:.35}}.conn-warning{color:#d8a13c;font-weight:700}.map-token.is-own{box-shadow:0 0 0 2px #d8a13c,0 0 12px #d8a13c8c}.initiative-card.is-own{border-color:#d8a13ca6;box-shadow:0 0 10px #d8a13c40}.owner-tag{background:rgba(var(--cyan-rgb),.16);color:var(--cyan);border-radius:2px;margin-left:6px;padding:0 5px;font-size:10px;font-style:normal;font-weight:700}.player-panel{align-content:start;gap:8px;display:grid}.player-role-line{color:var(--muted);margin:0;font-size:13px}.player-role-line b{color:var(--ink)}.player-own-token{color:var(--muted);background:#d8a13c14;border:1px solid #d8a13c80;border-radius:3px;margin:0 0 4px;padding:9px 10px;font-size:12px;line-height:1.6}.player-own-token b{color:#d8a13c}.member-mini-list{gap:5px;margin:0 0 6px;padding:0;list-style:none;display:grid}.member-mini-list li{min-width:0;color:var(--ink);align-items:center;gap:6px;font-size:12px;display:flex}.member-mini-list li em{color:var(--faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-style:normal;overflow:hidden}.member-mini-list li.is-offline{opacity:.5}.member-dot{background:#4caf7d;border-radius:50%;flex:none;width:7px;height:7px}.is-offline .member-dot{background:var(--faint)}.member-badge{background:var(--red-deep);color:#fff;border-radius:2px;margin-left:5px;padding:0 4px;font-size:10px;font-style:normal;font-weight:800}.member-badge.you{background:var(--cyan-deep)}.room-dialog{border-top-color:var(--cyan-deep);width:min(540px,100%)}.room-menu{gap:8px;margin-top:12px;display:grid}.room-option{border:1px solid var(--line);background:var(--panel);text-align:left;cursor:pointer;border-radius:3px;gap:3px;padding:12px 14px;transition:border-color .12s,background-color .12s;display:grid}.room-option:hover{border-color:var(--cyan-deep);background:rgba(var(--cyan-rgb),.06)}.room-option b{color:var(--ink);font-size:14px}.room-option span{color:var(--muted);font-size:12px;line-height:1.55}.room-field{color:var(--muted);gap:5px;margin-top:12px;font-size:12px;font-weight:700;display:grid}.room-field input{letter-spacing:1px;padding:8px 10px}.room-link-row{justify-content:flex-start;margin-top:8px}.member-list{gap:6px;margin:8px 0 0;padding:0;list-style:none;display:grid}.member-list li{border:1px solid var(--soft-line);background:var(--panel);border-radius:3px;align-items:center;gap:8px;min-width:0;padding:7px 9px;font-size:13px;display:flex}.member-list li.is-offline{opacity:.55}.member-list .member-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--ink);flex:auto;font-weight:700;overflow:hidden}.member-list select{max-width:150px;padding:4px 6px;font-size:12px}.member-token{color:var(--faint);font-size:12px;font-style:normal}.token-editor-fieldset{border:0;min-width:0;margin:0;padding:0}.token-editor-fieldset:disabled{opacity:.72}.readonly-hint{border:1px solid var(--soft-line);background:var(--panel);color:var(--faint);border-radius:3px;margin:0 0 8px;padding:6px 9px;font-size:12px}:root[data-theme=light] h1{text-shadow:none}:root[data-theme=light] .brand-mark{box-shadow:0 2px 8px rgba(var(--red-rgb),.35)}:root[data-theme=light] .grid-cell{border-right-color:rgba(var(--gridline-rgb),.35);border-bottom-color:rgba(var(--gridline-rgb),.35)}:root[data-theme=light] .battle-grid{box-shadow:0 0 0 1px rgba(var(--cyan-rgb),.15), 0 8px 24px rgba(var(--shadow-rgb),.25)}:root[data-theme=light] .map-token small{border-color:#fff9}.attribution{z-index:40;pointer-events:none;position:fixed;bottom:10px;left:10px}.attribution-tag{border:1px solid var(--soft-line);background:var(--rail-bg);color:var(--faint);letter-spacing:1px;opacity:.75;pointer-events:auto;cursor:default;border-radius:3px;padding:2px 7px;font-size:11px;font-weight:700;transition:opacity .12s,color .12s,border-color .12s;display:inline-block}.attribution:hover .attribution-tag{opacity:1;color:var(--muted);border-color:var(--line)}.attribution-tip{border:1px solid var(--line);border-left:3px solid var(--red-deep);background:var(--panel-2);width:max-content;max-width:240px;color:var(--muted);box-shadow:0 8px 22px rgba(var(--shadow-rgb),.45);opacity:0;visibility:hidden;pointer-events:none;border-radius:3px;padding:7px 10px;font-size:12px;line-height:1.6;transition:opacity .14s,transform .14s,visibility .14s;position:absolute;bottom:calc(100% + 6px);left:0;transform:translateY(3px)}.attribution:hover .attribution-tip{opacity:1;visibility:visible;transform:translateY(0)}@media (max-width:1050px){.workspace{grid-template-columns:176px minmax(0,1fr)}.right-rail{border-top:1px solid var(--line);border-left:0;grid-column:1/-1;grid-template-columns:repeat(4,1fr);display:grid}.right-rail .side-section{border-right:1px solid var(--soft-line);border-bottom:0}.selected-panel{grid-column:span 2}}@media (max-width:730px){:root{--cell-size:38px}.topbar{flex-wrap:wrap;align-items:flex-start;gap:12px}.brand-lockup{min-width:0}.map-title-wrap{flex-basis:100%;order:3}.map-title-wrap input{max-width:none}.top-actions{justify-content:flex-start}.view-tabs{scrollbar-width:thin;overflow-x:auto}.view-tabs>button{flex:none;min-width:128px;padding:0 12px}.active-character{flex:none;min-width:230px;padding-right:10px}.active-character select{width:140px}.workspace{padding-bottom:92px;display:block}.left-rail{z-index:50;border-right:0;border-top:1px solid var(--line);background:var(--panel);box-shadow:0 -8px 24px rgba(var(--shadow-rgb),.45);scrollbar-width:thin;display:flex;position:fixed;bottom:0;left:0;right:0;overflow-x:auto}.left-rail .rail-section{border-bottom:0;border-right:1px solid var(--soft-line);flex:none;min-width:170px;padding:10px 12px}.left-rail .rail-section.is-collapsed{flex:none;align-self:stretch;align-items:center;min-width:0;padding:10px;display:flex}.left-rail .rail-section.is-collapsed .panel-head{gap:5px}.left-rail .rail-section.is-collapsed .section-label{letter-spacing:.4px;white-space:nowrap;font-size:11px}.left-rail .tool-grid{grid-template-columns:repeat(4,1fr)}.left-rail .tool-button{min-height:48px}.legend-section{min-width:180px!important}.map-stage{min-height:630px;padding:12px}.board-scroll{place-items:start;min-height:500px;padding:14px}.right-rail{display:block}.right-rail .side-section{border-right:0;border-bottom:1px solid var(--soft-line)}.deploy-fields{grid-template-columns:1fr}.initiative-name{max-width:92px}.toolbar-group+.toolbar-group{padding-left:10px}.attribution{bottom:102px;left:auto;right:10px}}.dice-faces{flex-wrap:wrap;gap:4px;display:inline-flex}.die-chip{border:1px solid var(--line);background:var(--input-bg);min-width:24px;height:24px;color:var(--ink);border-radius:6px;justify-content:center;align-items:center;padding:0 4px;font-size:13px;font-style:normal;font-weight:800;display:inline-flex}.dice-faces.is-compact .die-chip{border-radius:4px;min-width:17px;height:17px;font-size:10px}.die-chip.is-six{border-color:var(--red);color:var(--red);background:rgba(var(--red-rgb),.1)}.quick-judge{flex-direction:column;gap:8px;display:flex}.quick-judge-row{gap:8px;display:flex}.quick-judge-row label{min-width:0;color:var(--muted);flex-direction:column;flex:1;gap:3px;font-size:12px;font-weight:700;display:flex}.quick-judge-row label:has(select){flex:1.6}.quick-judge-roll{white-space:nowrap;flex:1;align-self:flex-end}.quick-judge-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.quick-judge .tool-caption{min-height:0;margin-top:0}.form-error{color:var(--red);margin:0;font-size:12px;font-weight:700}.dice-expr-row{gap:6px;display:flex}.dice-expr-row input{flex:1;min-width:0}.dice-quick-row{flex-wrap:wrap;gap:4px;display:flex}.dice-quick-row button{border:1px solid var(--soft-line);background:var(--panel-2);color:var(--muted);cursor:pointer;border-radius:3px;padding:4px 8px;font-size:12px;font-weight:700}.dice-quick-row button:hover{border-color:var(--cyan);color:var(--cyan)}.dice-hidden-toggle{color:var(--muted);align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.dice-hidden-toggle input{accent-color:var(--yellow)}.dice-flash-hidden-line{color:var(--faint);font-style:italic}.dice-stage-overlay{z-index:25;pointer-events:none;flex-direction:column;align-items:flex-start;gap:6px;max-width:min(360px,78%);padding:8px 0 0 10px;display:flex;position:absolute;inset:0 auto auto 0}.dice-flash-card{border:1px solid var(--line);border-top:3px solid var(--cyan);background:rgba(var(--shadow-rgb),.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background-color:var(--panel);width:min(340px,100%);box-shadow:0 14px 34px rgba(var(--shadow-rgb),.55);border-radius:4px;padding:10px 14px 12px;animation:.18s ease-out dice-flash-in;position:relative}.dice-flash-card.is-satsubatsu{border-top-color:var(--red)}.dice-flash-card.is-pool-pass{border-top-color:var(--cyan)}.dice-flash-card.is-pool-fail,.dice-flash-card.is-hidden-roll{border-top-color:var(--faint)}@keyframes dice-flash-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.dice-flash-close{color:var(--faint);cursor:pointer;pointer-events:auto;background:0 0;border:0;font-size:16px;position:absolute;top:4px;right:6px}.dice-flash-close:hover{color:var(--ink)}.dice-flash-head{align-items:baseline;gap:8px;margin-bottom:6px;display:flex}.dice-flash-head b{font-size:14px}.dice-flash-expr{color:var(--cyan);font-size:13px;font-weight:800}.dice-flash-head small{color:var(--faint);margin-left:auto;font-size:11px}.dice-flash-total{color:var(--muted);gap:14px;margin-top:8px;font-size:14px;display:flex}.dice-flash-total b{color:var(--ink);font-size:18px}.dice-flash-half b{color:var(--yellow)}.dice-flash-half small{color:var(--faint);font-size:11px}.dice-flash-zorome{color:var(--red);margin-top:6px;font-size:12px;font-weight:800}.dice-flash-note{color:var(--muted);margin-top:6px;font-size:12px}.pool-groups{flex-direction:column;gap:5px;display:flex}.pool-group{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pool-group-index{color:var(--faint);font-size:11px;font-weight:800}.pool-pass{color:var(--cyan);font-size:12px;font-weight:800}.pool-fail{color:var(--faint);font-size:12px;font-weight:800}.pool-patterns{gap:4px;display:inline-flex}.pool-patterns b{border:1px solid var(--yellow);color:var(--yellow);border-radius:3px;padding:0 5px;font-size:11px;font-weight:800;line-height:1.5}.pool-special-hint{color:var(--yellow);margin:6px 0 0;font-size:11px;font-weight:700;line-height:1.5}.dice-mini-strip{pointer-events:none;flex-direction:column;align-items:flex-start;gap:5px;display:flex}.dice-mini-strip>*{pointer-events:auto}.dice-mini-item{border:1px solid var(--soft-line);background:var(--panel-2);max-width:100%;color:var(--muted);cursor:pointer;opacity:.88;border-radius:999px;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.dice-mini-item:hover{border-color:var(--cyan);color:var(--ink);opacity:1}.dice-mini-name{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.dice-mini-expr{text-overflow:ellipsis;white-space:nowrap;max-width:120px;color:var(--faint);overflow:hidden}.dice-mini-total{color:var(--cyan);font-size:12px}.dice-mini-total.is-fail{color:var(--faint)}.dice-mini-total em{color:var(--yellow);font-size:10px;font-style:normal}.dice-mini-history{border:1px dashed var(--soft-line);color:var(--faint);cursor:pointer;background:0 0;border-radius:999px;padding:3px 10px;font-size:11px;font-weight:700}.dice-mini-history:hover{color:var(--cyan);border-color:var(--cyan)}.dice-drawer-backdrop{z-index:60;background:rgba(var(--shadow-rgb),.45);justify-content:flex-end;display:flex;position:fixed;inset:0}.dice-drawer{background:var(--panel);border-left:1px solid var(--line);width:min(420px,94vw);height:100%;box-shadow:-16px 0 40px rgba(var(--shadow-rgb),.5);flex-direction:column;animation:.18s ease-out dice-drawer-in;display:flex}@keyframes dice-drawer-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}.dice-drawer-head{border-bottom:1px solid var(--soft-line);justify-content:space-between;align-items:center;padding:12px 14px 8px;display:flex}.dice-drawer-tools{border-bottom:1px solid var(--soft-line);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 14px;font-size:12px;display:flex}.dice-drawer-tools label{color:var(--muted);align-items:center;gap:6px;font-weight:700;display:flex}.dice-drawer-tools .is-confirming{border-color:var(--red);color:var(--red);animation:.6s ease-in-out infinite alternate dice-confirm-blink}@keyframes dice-confirm-blink{0%{background:rgba(var(--red-rgb),.05)}to{background:rgba(var(--red-rgb),.22)}}.dice-drawer-list{flex-direction:column;flex:1;gap:8px;padding:8px 14px 16px;display:flex;overflow-y:auto}.dice-history-item{border:1px solid var(--soft-line);background:var(--input-bg);border-radius:4px;padding:8px 10px}.dice-history-item.is-satsubatsu{border-color:rgba(var(--red-rgb),.6)}.dice-history-item.is-pool-pass{border-left:3px solid var(--cyan)}.dice-history-item.is-pool-fail{border-left:3px solid var(--faint)}.dice-history-item.is-hidden-roll{opacity:.75}.dice-history-item header{align-items:baseline;gap:8px;margin-bottom:5px;display:flex}.dice-history-item header small{color:var(--faint);margin-left:auto;font-size:10px}.dice-history-result{flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.dice-drawer.judge-console{width:min(560px,96vw)}.judge-body{flex-direction:column;flex:1;gap:10px;padding:10px 16px 20px;display:flex;overflow-y:auto}.judge-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 12px;display:grid}.judge-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;font-weight:700;display:flex}.judge-grid label.is-disabled{opacity:.45}.judge-split,.judge-note{grid-column:span 2}.judge-total-row{border:1px solid var(--soft-line);background:var(--panel-2);color:var(--muted);border-radius:4px;flex-wrap:wrap;align-items:center;gap:12px;padding:8px 12px;font-size:13px;display:flex}.judge-total-row b{color:var(--cyan);font-size:16px}.judge-total-row .command-button{margin-left:auto}.judge-rules{flex-wrap:wrap;gap:4px 14px;display:flex}.judge-rules span{color:var(--faint);font-size:11px;font-weight:700}.judge-rules span:before{content:"· ";color:var(--cyan)}.judge-ydx{border:1px solid var(--soft-line);background:var(--input-bg);border-radius:4px;padding:4px 12px 12px}.judge-ydx .editor-subhead{margin-top:4px}.judge-ydx .dice-expr-row{align-items:center}.judge-half-label{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:12px;font-weight:700;display:flex}.judge-last-roll{border:1px solid var(--soft-line);border-left:3px solid var(--cyan);background:var(--input-bg);border-radius:4px;padding:8px 12px 10px}.judge-last-roll.is-pool-fail{border-left-color:var(--faint)}.judge-last-roll .dice-flash-head{margin-bottom:4px}.quick-judge-last{border:1px solid var(--soft-line);border-left:3px solid var(--cyan);background:var(--input-bg);cursor:pointer;text-align:left;border-radius:4px;align-items:center;gap:8px;width:100%;padding:5px 10px;font-size:12px;display:flex}.quick-judge-last:hover{border-color:var(--cyan)}.quick-judge-last.is-pool-fail{border-left-color:var(--faint)}.quick-judge-last-label{color:var(--faint);flex:none;font-weight:800}.quick-judge-last-expr{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.quick-judge-last-result{color:var(--cyan);flex:none;font-weight:800}.quick-judge-last-result.is-fail{color:var(--faint)}.quick-judge-last-result em{color:var(--yellow);font-size:11px;font-style:normal}@media (max-width:730px){.dice-stage-overlay{max-width:92%;padding:6px 0 0 8px;inset:0 auto auto 0}.dice-flash-card{border-top-width:2px;border-radius:0 0 6px 6px;width:100%;padding:8px 12px 10px}.dice-mini-item{max-width:100%}.dice-drawer-backdrop{justify-content:stretch}.dice-drawer{border-left:0;width:100%}.judge-grid{grid-template-columns:1fr}.judge-split,.judge-note{grid-column:span 1}}:root[data-theme=dark]{--edge-wall:#c3cbdd;--edge-door:#c98f4a;--edge-knob:#f2d7a0}:root[data-theme=light]{--edge-wall:#6b5d45;--edge-door:#8a5f1c;--edge-knob:#f4e3c0}.edge-line{z-index:3;pointer-events:none;border-radius:2px;position:absolute}.edge-n{height:4px;top:-2px;left:0;right:0}.edge-s{height:4px;bottom:-2px;left:0;right:0}.edge-w{width:4px;top:0;bottom:0;left:-2px}.edge-e{width:4px;top:0;bottom:0;right:-2px}.edge-line.is-wall{background:var(--edge-wall)}.edge-line.is-door-closed{background:var(--edge-door)}.edge-line.is-door-closed:after{content:"";background:var(--edge-knob);border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #00000059}.edge-n.is-door-open,.edge-s.is-door-open{background:var(--edge-door);opacity:.85;right:45%}.edge-w.is-door-open,.edge-e.is-door-open{background:var(--edge-door);opacity:.85;bottom:45%}.step-input{flex:1;align-items:stretch;gap:4px;display:flex}.step-input input{text-align:center;flex:1;min-width:0}.step-input button{border:1px solid var(--line);background:var(--panel-3);min-width:26px;color:var(--ink);cursor:pointer;border-radius:6px;flex:none;padding:0 6px;font-size:14px;font-weight:700;transition:background-color .1s}.step-input button:hover{background:var(--cell-hover)}.step-input button:active{transform:translateY(1px)}
