:root{--bg: #050506;--bg-elev: #0d0e11;--bg-elev-2: #16181d;--panel: #0e0f12;--panel-header: #121317;--popover: #1b1c20;--popover-border: #34363c;--popover-shadow: 0 0 0 1px rgba(0, 0, 0, .35), 0 4px 10px rgba(0, 0, 0, .5), 0 18px 44px rgba(0, 0, 0, .6);--border: #212329;--border-soft: #191b1f;--text: #f3f5f7;--text-dim: #8b909a;--text-faint: #595e68;--accent: #c2f04a;--accent-2: #d6ff6e;--accent-ink: #0a0c0f;--accent-soft: rgba(194, 240, 74, .1);--magenta: #c86bff;--magenta-soft: rgba(200, 107, 255, .12);--gold: #d4af37;--good: #3ddc97;--good-soft: rgba(61, 220, 151, .14);--warn: #f2c14e;--danger: #ff6b7a;--danger-soft: rgba(255, 107, 122, .14);--radius: 20px;--radius-sm: 12px;--radius-pill: 999px;--shadow: 0 12px 40px rgba(0, 0, 0, .55);--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-serif: "Iowan Old Style", "Palatino Linotype", "Georgia", serif;--font-mono: "SF Mono", "JetBrains Mono", "Fira Code", monospace}[data-theme=light]{--bg: #eceef1;--bg-elev: #ffffff;--bg-elev-2: #f3f5f7;--panel: #ffffff;--panel-header: #f8f9fb;--border: #e2e6eb;--border-soft: #edf0f3;--text: #141619;--text-dim: #5a626e;--text-faint: #99a1ad;--accent: #5f9400;--accent-2: #74b300;--accent-ink: #ffffff;--accent-soft: rgba(95, 148, 0, .1);--magenta: #a63ce0;--magenta-soft: rgba(166, 60, 224, .1);--good: #16a06a;--good-soft: rgba(22, 160, 106, .12);--danger: #d6455a;--danger-soft: rgba(214, 69, 90, .12);--shadow: 0 12px 40px rgba(30, 40, 60, .14)}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;width:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px;line-height:1.5;overflow:hidden}button{font-family:inherit;cursor:pointer}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}::-webkit-scrollbar-track{background:transparent}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;gap:14px;padding:0 18px;height:60px;background:var(--bg);border-bottom:1px solid var(--border-soft);flex-shrink:0}.brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18px;letter-spacing:-.2px;color:var(--text)}.brand .glyph{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--accent),var(--magenta));color:var(--accent-ink);font-size:17px;font-weight:800}.topbar .spacer{flex:1}.preset-tabs{display:flex;gap:4px;align-items:center;background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-pill);padding:4px}.preset-tab{background:transparent;color:var(--text-dim);border:none;padding:7px 15px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;display:flex;align-items:center;gap:6px;transition:background .14s,color .14s}.preset-tab:hover{color:var(--text)}.preset-tab.active{background:var(--accent);color:var(--accent-ink)}.preset-tab .mini{opacity:0;font-size:11px}.preset-tab:hover .mini,.preset-tab.active .mini{opacity:.7}.preset-tab .mini:hover{opacity:1}.btn{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);padding:7px 14px;border-radius:var(--radius-pill);font-size:13px;font-weight:500;transition:background .12s,border-color .12s,color .12s}.btn:hover{background:var(--bg-elev-2);border-color:var(--text-faint)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:700}.btn.primary:hover{background:var(--accent-2)}.btn.ghost{background:transparent;border-color:transparent}.btn.sm{padding:4px 10px;font-size:12px}.btn.icon{padding:6px 9px;line-height:1}select.select{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);padding:7px 12px;font-size:13px;font-family:inherit}.input{background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);padding:9px 14px;font-size:13px;font-family:inherit;width:100%}.input:focus{outline:none;border-color:var(--accent)}.grid-wrap{flex:1;overflow:auto;padding:10px}.panel{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);display:flex;flex-direction:column;height:100%;overflow:hidden;box-shadow:var(--shadow)}.panel-header{display:flex;align-items:center;gap:8px;padding:11px 15px;background:transparent;border-bottom:1px solid var(--border-soft);cursor:move;-webkit-user-select:none;user-select:none;flex-shrink:0}.panel-title{font-weight:700;font-size:15px;letter-spacing:-.2px;text-transform:none;color:var(--text)}.panel-header .tools{margin-left:auto;display:flex;gap:4px}.panel-body{flex:1;overflow:auto;padding:10px 12px}.panel-body.flush{padding:0}.react-grid-item.react-grid-placeholder{background:var(--accent);opacity:.18;border-radius:var(--radius)}.react-grid-item>.react-resizable-handle:after{display:none}.react-grid-item>.react-resizable-handle{background-image:none;width:16px;height:16px}.react-grid-item>.react-resizable-handle-se{cursor:se-resize}.react-grid-item>.react-resizable-handle-sw{cursor:sw-resize}.react-grid-item>.react-resizable-handle-ne{cursor:ne-resize}.react-grid-item>.react-resizable-handle-nw{cursor:nw-resize}.search-row{padding:9px 10px;border-bottom:1px solid var(--border-soft);display:flex;gap:6px;flex-shrink:0}.search-row .input{flex:1;min-width:0}.source-filter{flex:0 0 auto;max-width:45%}.source-filter .dropdown-value{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-row{display:flex;align-items:center;gap:8px;padding:0 10px 9px;border-bottom:1px solid var(--border-soft);flex-shrink:0}.filter-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);flex:none}.pub-filter{flex:1;min-width:0}.pub-filter .dropdown-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-filter-row{flex-wrap:wrap}.book-filter{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:5px;flex:1;min-width:0}.book-trigger{flex:none}.book-chip{font-size:11px;padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--accent-2);border:1px solid var(--accent);cursor:pointer;white-space:nowrap}.book-chip:hover{background:var(--accent);color:var(--accent-ink)}.book-popover{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;min-width:220px;max-width:320px;max-height:300px;overflow-y:auto}.book-opt{display:flex;align-items:center;gap:7px;text-align:left;background:transparent;border:none;color:var(--text);font-size:12.5px;padding:6px 9px;border-radius:6px;white-space:nowrap}.book-opt:hover{background:var(--accent-soft);color:var(--accent-2)}.book-opt.on{color:var(--accent-2)}.book-check{display:inline-block;width:12px;flex:none;color:var(--accent-2)}.kind-tabs{display:flex;gap:2px;padding:6px 8px;border-bottom:1px solid var(--border-soft);flex-wrap:wrap}.kind-tab{background:transparent;border:none;color:var(--text-faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;padding:4px 8px;border-radius:4px}.kind-tab.active{background:var(--accent-soft);color:var(--accent-2)}.list{list-style:none;margin:0;padding:0}.list-item{padding:7px 12px;border-bottom:1px solid var(--border-soft);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px}.list-item:hover{background:var(--bg-elev-2)}.list-item.selected{background:var(--accent-soft);box-shadow:inset 2px 0 0 var(--accent)}.list-item .meta{font-size:11px;color:var(--text-faint);white-space:nowrap}.badge{font-size:10px;font-weight:700;padding:2px 9px;border-radius:var(--radius-pill);background:var(--bg-elev-2);color:var(--text-dim);border:none}.badge.import{color:var(--magenta);background:var(--magenta-soft)}.badge.good{color:var(--good);background:var(--good-soft)}.badge.danger{color:var(--danger);background:var(--danger-soft)}.empty{color:var(--text-faint);text-align:center;padding:24px 12px;font-size:13px}.statblock h2{font-family:var(--font);color:var(--accent-2);margin:0 0 2px;font-size:22px}.statblock .subtitle{font-style:italic;color:var(--text-dim);margin-bottom:8px;font-size:13px}.statblock .rule{height:2px;background:linear-gradient(90deg,var(--accent),transparent);margin:8px 0;border:none}.statblock .attr-line{display:flex;gap:6px;margin:3px 0;font-size:13px}.statblock .attr-line b{color:var(--accent-2)}.statblock .pub-footer{font-size:12px;color:var(--text-dim);font-style:italic;margin-top:4px}.statblock .pub-footer b{color:var(--text-faint);font-style:normal}.abilities{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin:10px 0}.ability{background:var(--bg-elev);border:1px solid var(--border-soft);border-radius:var(--radius-sm);text-align:center;padding:6px 2px}.ability .lbl{font-size:10px;color:var(--text-faint);text-transform:uppercase;letter-spacing:1px}.ability .val{font-weight:700;font-size:15px}.ability .mod{color:var(--text-dim);font-size:12px}.statblock .entry{margin:8px 0;font-size:13px}.statblock .entry b{color:var(--accent-2);font-style:italic}.statblock .section-title{font-family:var(--font);color:var(--accent-2);border-bottom:1px solid var(--accent);font-size:15px;margin:12px 0 6px;padding-bottom:2px}.initiative-controls{display:flex;gap:6px;padding:8px 10px;border-bottom:1px solid var(--border-soft);align-items:center;flex-shrink:0}.round-pill{background:var(--accent-soft);color:var(--accent-2);font-weight:700;border-radius:12px;padding:3px 10px;font-size:12px}.combatant{display:grid;grid-template-columns:auto 34px 1fr auto;gap:8px;align-items:center;padding:6px 10px;border-bottom:1px solid var(--border-soft)}.combatant.pc{box-shadow:inset 3px 0 0 var(--good)}.combatant.selected{background:var(--bg-elev);box-shadow:inset 3px 0 0 var(--accent-2)}.combatant.active{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.cbody{min-width:0}.cline{display:flex;align-items:center;gap:8px}.cline .cname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cactions{display:flex;align-items:center;gap:2px}.combatant .row-remove{opacity:0}.combatant:hover .row-remove,.combatant:focus-within .row-remove{opacity:1}.combatant .init-box{width:30px;text-align:center;font-weight:700;font-size:16px;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text)}.combatant .cname{font-weight:600}.hp-track{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-dim)}.hp-track input{width:42px;text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:2px}.hp-bar{height:4px;border-radius:2px;background:var(--border);margin-top:4px;overflow:hidden}.hp-bar>span{display:block;height:100%;background:var(--good)}.cond-chips{display:flex;flex-wrap:wrap;gap:3px;margin-top:4px}.cond-chip{font-size:10px;padding:1px 6px;border-radius:8px;background:var(--warn);color:var(--accent-ink);cursor:pointer}.cond-chip.conc{background:var(--magenta-soft);color:var(--magenta);border:1px solid var(--magenta)}.combatant-select{accent-color:var(--accent);margin:0;cursor:pointer}.hp-track .amt-input,.amt-input{width:46px;text-align:center;background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:2px 4px;font-size:12px}.hp-pill{display:inline-flex;align-items:baseline;gap:3px;padding:2px 9px;border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--bg);color:var(--text);font-size:12px;cursor:pointer;white-space:nowrap}.hp-pill:hover,.hp-pill.open{border-color:var(--accent)}.hp-pill:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.hp-pill .hp-max{color:var(--text-faint)}.hp-pill .hp-temp{color:var(--accent-2);font-weight:600}.hp-pop{width:236px;padding:10px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:8px}.hp-pop-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;font-size:12px}.hp-pop-name{font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hp-pop-now{color:var(--text-dim);white-space:nowrap;font-variant-numeric:tabular-nums}.hp-pop-amount{width:100%;box-sizing:border-box;text-align:center;font-size:22px;font-weight:700;font-variant-numeric:tabular-nums;padding:6px 8px;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm)}.hp-pop-amount::placeholder{color:var(--text-faint)}.hp-pop-amount:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.hp-pop-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.hp-pop-actions .btn{justify-content:center;text-align:center}.hp-pop-hint{font-size:11px;color:var(--text-faint);text-align:center;min-height:16px;white-space:nowrap;font-variant-numeric:tabular-nums}.hp-pop-hint b{color:var(--text)}.hp-pop-hint kbd{font-family:var(--font-mono);font-size:10px;padding:0 4px;border:1px solid var(--border);border-radius:3px;color:var(--text-dim)}.hp-pop-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:8px;border-top:1px solid var(--border-soft);font-size:11px;color:var(--text-dim)}.hp-pop-foot label{display:inline-flex;align-items:center;gap:6px}.btn.heal:not(:disabled){background:var(--good-soft);border-color:var(--good);color:var(--good);font-weight:700}.btn.heal:not(:disabled):hover{filter:brightness(1.1)}.btn.danger:disabled{background:var(--bg-elev);border-color:var(--border);color:var(--text);font-weight:500}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.combat-prompts{display:flex;flex-direction:column;gap:3px;margin-top:5px}.combat-prompt{display:flex;align-items:center;gap:6px;font-size:12px;padding:3px 6px 3px 8px;border-radius:var(--radius-sm);background:var(--magenta-soft);color:var(--text);border-left:3px solid var(--magenta)}.combat-prompt>span{flex:1}.combat-prompt.death-save,.combat-prompt.death{background:var(--danger-soft);border-left-color:var(--danger)}.combat-prompt.death{font-weight:700}.group-hit{padding:8px 10px;border-bottom:1px solid var(--border-soft);background:var(--bg-elev);flex-shrink:0}.group-hit-row{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.group-hit-count{font-size:12px;font-weight:700;color:var(--accent-2);margin-right:2px}.group-hit .amt-input{width:72px}.group-hit-targets{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}.group-hit-targets li{display:flex;align-items:center;gap:4px;font-size:12px}.group-hit-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.hit-toggle{font-size:11px;padding:1px 7px;border-radius:var(--radius-pill);border:1px solid var(--border);background:transparent;color:var(--text-dim);cursor:pointer}.hit-toggle.on{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.hit-toggle:focus-visible,.combatant-select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.group-hit-preview{font-family:var(--font-mono);color:var(--danger);min-width:34px;text-align:right}.cond-rounds{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:11px;color:var(--text-dim);padding:4px 6px 6px;border-bottom:1px solid var(--border-soft);margin-bottom:2px}.dice-panel{display:flex;flex-direction:column;gap:8px}.dice-input-row{display:flex;gap:6px}.quick-dice{display:flex;flex-wrap:wrap;gap:5px}.d20-split{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-elev-2)}.d20-split-part{background:transparent;border:none;color:var(--text-dim);font-weight:600;font-size:12px;padding:5px 10px;cursor:pointer}.d20-split-part.dis,.d20-split-part.adv{padding:5px 7px;border-left:1px solid var(--border-soft)}.d20-split-part.dis{border-left:none;border-right:1px solid var(--border-soft)}.d20-split-part:hover{color:var(--text)}.d20-split-part.dis:hover{background:var(--danger-soft);color:var(--danger)}.d20-split-part.adv:hover{background:var(--good-soft);color:var(--good)}.d20-split-part:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.quick-die{background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);padding:5px 10px;font-weight:600;font-size:12px}.quick-die:hover{border-color:var(--accent);color:var(--accent-2)}.roll-log{margin-top:4px;font-size:12px;color:var(--text-dim)}.roll-log .line{padding:3px 0;border-bottom:1px solid var(--border-soft);display:flex;justify-content:space-between}.roll-log .total{color:var(--accent-2);font-weight:700}.dice-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#06080cb8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0}}.dice-overlay .total-readout{font-family:var(--font-serif);font-size:clamp(60px,14vw,180px);font-weight:800;color:#fff;text-shadow:0 0 40px var(--accent),0 4px 10px rgba(0,0,0,.6);line-height:1;opacity:0;animation:pop-total .4s .55s ease forwards}.dice-overlay .notation-readout{color:var(--text-dim);font-size:18px;margin-top:8px;letter-spacing:2px;opacity:0;animation:pop-total .4s .6s ease forwards}.dice-overlay .breakdown{color:var(--text-faint);font-size:13px;margin-top:6px;max-width:70vw;text-align:center;opacity:0;animation:pop-total .4s .65s ease forwards}.dice-overlay .dismiss-hint{position:absolute;bottom:28px;color:var(--text-faint);font-size:12px;letter-spacing:1px;opacity:0;animation:pop-total .4s 1s ease forwards}@keyframes pop-total{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.dice-canvas{position:absolute;top:0;right:0;bottom:0;left:0}.timer-panel{display:flex;flex-direction:column;align-items:center;gap:14px;padding:16px 12px;height:100%;justify-content:center;container-type:size}.timer-display{font-family:var(--font-mono);font-size:clamp(36px,min(24cqw,36cqh),140px);font-weight:700;line-height:1;color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.timer-display.low{color:var(--warn)}.timer-display.done{color:var(--danger);animation:timer-flash .8s ease-in-out infinite}@keyframes timer-flash{50%{opacity:.35}}.timer-done-label{color:var(--danger);font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:13px}.timer-set{display:flex;gap:10px}.timer-set label{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--text-dim);text-align:center}.timer-set .input{width:72px;text-align:center;font-size:16px}.timer-chip{margin-left:6px;padding:0 6px;border-radius:var(--radius-pill);background:var(--accent-soft);color:var(--text);font-family:var(--font-mono);font-size:11px;font-variant-numeric:tabular-nums}.timer-chip.done{background:var(--danger);color:#fff;font-family:inherit}.timer-controls{display:flex;gap:8px}.timer-quick{display:flex;gap:6px}.embed-frame{width:100%;height:100%;border:none;background:var(--bg)}.embed-setup{padding:14px;display:flex;flex-direction:column;gap:10px}.embed-help{color:var(--text-dim);font-size:13px;margin:0}.embed-input{display:flex;flex-direction:column;gap:6px}.embed-input .input{flex:1;min-width:0}.embed-textarea{width:100%;min-height:84px;resize:vertical;background:var(--bg);color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:9px 10px;font-family:var(--font-mono);font-size:12px;line-height:1.5}.embed-textarea:focus{outline:none;border-color:var(--accent)}.embed-input .btn{align-self:flex-start}.embed-error{color:var(--danger);font-size:12px}.embed-note{color:var(--text-faint);font-size:11px;margin:4px 0 0}.embed-info{position:relative;display:inline-flex;align-items:center;margin-left:6px;color:var(--text-faint);cursor:help;vertical-align:middle;outline:none}.embed-info:hover,.embed-info:focus-visible{color:var(--accent-2)}.embed-tooltip{display:block;width:260px;background:var(--bg-elev-2);color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:9px 11px;font-size:11.5px;line-height:1.5}.embed-tooltip strong{color:var(--text)}.tables-panel{display:flex;flex-direction:column;height:100%;min-height:0}.table-tabs{display:flex;flex-wrap:wrap;gap:4px;padding:8px;border-bottom:1px solid var(--border-soft);flex:none}.table-tab{background:var(--bg-elev-2);border:1px solid var(--border-soft);color:var(--text-dim);font-size:12px;padding:4px 10px;border-radius:var(--radius-pill);display:inline-flex;align-items:center;gap:5px}.table-tab.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-2)}.table-srd{font-size:9px;letter-spacing:.05em;color:var(--text-faint);border:1px solid var(--border);border-radius:4px;padding:0 3px}.table-roll-bar{display:flex;align-items:center;gap:8px;padding:10px;flex:none}.table-result{display:flex;align-items:center;gap:10px;margin:0 10px 8px;padding:10px 12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--radius-sm)}.table-result-roll{font-family:var(--font-mono);font-size:28px;font-weight:700;color:var(--accent-2);flex:none}.table-result-text{flex:1;font-size:13px;color:var(--text)}.table-rows{flex:1 1 auto;min-height:0;overflow-y:auto;padding:0 10px 10px}.table-row{display:grid;grid-template-columns:54px 1fr;gap:8px;padding:5px 6px;font-size:12.5px;border-bottom:1px solid var(--border-soft);border-radius:6px}.table-row.hit{background:var(--accent-soft)}.table-range{color:var(--text-faint);font-family:var(--font-mono);font-size:11px;text-align:right}.table-create{display:flex;flex-direction:column;gap:8px;padding:12px;height:100%}.table-textarea{flex:1;min-height:160px;resize:none;background:var(--bg);color:var(--text);border:1px solid var(--border-soft);border-radius:var(--radius-sm);padding:10px;font-family:var(--font-mono);font-size:12.5px;line-height:1.5}.table-textarea:focus{outline:none;border-color:var(--accent)}.notes-layout{display:flex;flex-direction:column;height:100%;min-height:0}.session-log{display:flex;flex-direction:column;min-height:0;flex:0 0 auto;max-height:55%;overflow:hidden;border-bottom:1px solid var(--border)}.scratch{display:flex;flex-direction:column;min-height:60px;flex:1 1 auto}.section-label{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:8px 12px 4px;flex:none}.log-feed{flex:1 1 auto;min-height:0;overflow-y:auto;padding:2px 12px 8px}.log-row{display:grid;grid-template-columns:auto auto 1fr;gap:7px;align-items:baseline;padding:4px 0;font-size:13px;line-height:1.45;color:var(--text);border-bottom:1px solid var(--border-soft)}.log-row:last-child{border-bottom:none}.log-time{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);white-space:nowrap}.log-icon{font-size:12px;line-height:1}.log-row.note .log-text{color:var(--text)}.log-row.auto .log-text{color:var(--text-dim)}.log-input{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--border-soft);background:var(--panel);flex:none}.log-input .input{flex:1;min-width:0}.notes-area{width:100%;flex:1 1 auto;min-height:0;background:var(--bg);color:var(--text);border:none;resize:none;padding:10px 12px 12px;font-family:var(--font-mono);font-size:13px;line-height:1.6}.notes-area:focus{outline:none}.enc-row{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid var(--border-soft)}.stepper{display:flex;align-items:center;gap:4px}.stepper button{width:22px;height:22px;border-radius:4px;background:var(--bg-elev-2);border:1px solid var(--border);color:var(--text)}.enc-summary{padding:10px 12px;border-top:1px solid var(--border);background:var(--bg-elev)}.enc-summary .xp-line{display:flex;justify-content:space-between;margin:2px 0;font-size:13px}.enc-summary .difficulty{font-weight:700;text-transform:uppercase;letter-spacing:.5px}.diff-trivial{color:var(--text-faint)}.diff-easy{color:var(--good)}.diff-medium{color:var(--warn)}.diff-hard{color:var(--accent-2)}.diff-deadly{color:var(--danger)}.party-card{background:var(--bg-elev);border:1px solid var(--border-soft);border-left:3px solid var(--good);border-radius:var(--radius-sm);padding:8px 10px;margin-bottom:8px}.party-card .pname{font-weight:700;display:flex;justify-content:space-between}.party-stats{display:flex;gap:12px;margin-top:4px;font-size:12px;color:var(--text-dim)}.party-stats b{color:var(--text)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:900}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);width:min(560px,92vw);max-height:85vh;overflow:auto;padding:18px 20px}.modal h3{margin:0 0 12px;font-family:var(--font);color:var(--accent-2)}.feedback-kinds{display:flex;flex-wrap:wrap;gap:6px}.feedback-text{width:100%;resize:vertical;min-height:90px;font-family:var(--font)}.feedback-details{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.feedback-details .settings-hint{flex-basis:100%}.feedback-check{display:inline-flex!important;align-items:center;gap:6px;cursor:pointer;color:var(--text)}.feedback-preview{flex-basis:100%;margin:0;padding:8px 10px;background:var(--bg-elev);color:var(--text-dim);border:1px solid var(--border-soft);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:11px;white-space:pre-wrap;word-break:break-word}.btn.disabled{opacity:.5;pointer-events:none}.field{margin-bottom:10px}.field label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:3px}.row-gap{display:flex;gap:8px;flex-wrap:wrap}.source-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border:1px solid var(--border-soft);border-radius:var(--radius-sm);margin-bottom:6px}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:24px;text-align:center;color:var(--text-dim);margin:10px 0}.dropzone.drag{border-color:var(--accent);background:var(--accent-soft)}.panel-close-btn{color:var(--text-faint);opacity:0;transition:opacity .12s,color .12s}.panel:hover .panel-close-btn{opacity:1}.panel-close-btn:hover{color:var(--danger)}.dice-overlay .rolling-hint{position:absolute;bottom:40px;color:var(--text-dim);font-size:16px;letter-spacing:3px;text-transform:uppercase;animation:pulse-hint 1s ease-in-out infinite}@keyframes pulse-hint{0%,to{opacity:.4}50%{opacity:1}}.dice-mute{position:absolute;top:20px;right:22px;z-index:10;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);font-size:18px;width:42px;height:42px;display:flex;align-items:center;justify-content:center;opacity:.6;transition:opacity .12s}.dice-mute:hover{opacity:1}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(16px);background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:10px 16px;font-size:13px;font-weight:600;box-shadow:var(--shadow);z-index:1200;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.dup-options{display:flex;flex-direction:column;gap:8px}.dup-opt{text-align:left;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 14px;color:var(--text);display:flex;flex-direction:column;gap:3px;transition:border-color .12s,background .12s}.dup-opt:hover{border-color:var(--accent);background:var(--accent-soft)}.dup-opt b{font-size:14px}.dup-opt span{font-size:12px;color:var(--text-dim)}.enc-tabs{display:flex;align-items:center;gap:4px;padding:8px 10px;border-bottom:1px solid var(--border-soft);overflow-x:auto;flex-shrink:0}.enc-tab{display:inline-flex;align-items:center;gap:6px;background:var(--bg-elev);border:1px solid var(--border-soft);color:var(--text-dim);border-radius:var(--radius-pill);padding:5px 10px;font-size:12px;font-weight:600;white-space:nowrap}.enc-tab:hover{color:var(--text)}.enc-tab.active{background:var(--accent-soft);color:var(--accent-2);border-color:var(--accent)}.enc-tab-count{font-size:10px;background:var(--bg-elev-2);color:var(--text-faint);border-radius:var(--radius-pill);padding:0 6px;min-width:16px;text-align:center}.enc-tab.active .enc-tab-count{background:var(--accent);color:var(--accent-ink)}.enc-tab-x{color:var(--text-faint);font-size:10px}.enc-tab-x:hover{color:var(--danger)}.enc-tab-add{background:transparent;border:1px dashed var(--border);color:var(--text-dim);border-radius:var(--radius-pill);width:26px;height:26px;flex-shrink:0}.enc-tab-add:hover{border-color:var(--accent);color:var(--accent-2)}.enc-tab-input{background:var(--bg);border:1px solid var(--accent);color:var(--text);border-radius:var(--radius-pill);padding:4px 10px;font-size:12px;font-weight:600;width:120px}.enc-tab-input:focus{outline:none}.dice-link{display:inline;background:var(--accent-soft);color:var(--accent-2);border:none;border-radius:5px;padding:0 4px;font:inherit;font-weight:700;cursor:pointer;transition:background .1s,color .1s}.dice-link:hover{background:var(--accent);color:var(--accent-ink)}.md-p{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--text)}.md-h{font-weight:700;color:var(--accent-2);margin:14px 0 6px;line-height:1.3}.md-h1{font-size:18px;border-bottom:1px solid var(--accent);padding-bottom:4px}.md-h2{font-size:16px}.md-h3{font-size:14px;color:var(--text)}.md-h4,.md-h5,.md-h6{font-size:13px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.4px}.md-list{margin:0 0 10px;padding-left:20px;font-size:13px;line-height:1.6}.md-list li{margin:2px 0}.md-quote{margin:0 0 10px;padding:6px 12px;border-left:3px solid var(--accent);background:var(--bg-elev);color:var(--text-dim);font-size:13px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.md-table{width:100%;border-collapse:collapse;margin:0 0 12px;font-size:12.5px}.md-table th,.md-table td{text-align:left;padding:5px 9px;border-bottom:1px solid var(--border-soft)}.md-table th{color:var(--accent-2);font-weight:700;background:var(--bg-elev);border-bottom:1px solid var(--border)}.md-table tr:hover td{background:var(--bg-elev)}.rules-browse{padding:4px 0 12px}.rules-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-faint);padding:10px 12px 6px}.rules-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 12px 6px}.rules-chip{background:var(--bg-elev);border:1px solid var(--border-soft);color:var(--text-dim);border-radius:var(--radius-pill);padding:4px 11px;font-size:12px;font-weight:600}.rules-chip:hover{border-color:var(--accent);color:var(--accent-2)}.rules-cat-head{display:flex;justify-content:space-between;align-items:center;cursor:pointer}.rules-subs{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.rules-sub{background:transparent;border:1px solid var(--border-soft);color:var(--text-faint);border-radius:var(--radius-sm);padding:3px 9px;font-size:11.5px}.rules-sub:hover{border-color:var(--accent);color:var(--accent-2)}.rules-detail{display:flex;flex-direction:column;height:100%}.rules-back{align-self:flex-start;margin:8px 10px 0}.rules-content{padding:8px 14px 16px;overflow:auto}.quickroll-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1100;background:#05050680;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding-top:18vh;animation:fade-in .12s ease}.quickroll{width:min(420px,90vw);background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.quickroll-title{font-weight:700;font-size:13px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-dim);margin-bottom:10px}.quickroll-hint{margin-top:12px;font-size:11px;color:var(--text-faint)}.quickroll-hint kbd{background:var(--bg-elev-2);border:1px solid var(--border);border-radius:4px;padding:1px 5px;font-family:var(--font-mono);font-size:10px}.gen-body{padding:0}.gen-tab{padding:10px 12px}.gen-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}.gen-result{display:flex;flex-direction:column;gap:8px}.gen-coins{font-weight:700;color:var(--gold);font-size:14px}.gen-pool{font-size:11.5px;color:var(--text-faint);margin:-4px 0 10px}.gen-pool.empty-pool{color:var(--danger)}.gen-howto{font-size:12px;color:var(--text-dim);border:1px solid var(--border-soft);border-radius:var(--radius-sm);background:var(--bg-elev)}.gen-howto>summary{cursor:pointer;padding:6px 10px;color:var(--text-dim);-webkit-user-select:none;user-select:none}.gen-howto>summary:hover{color:var(--text)}.gen-howto>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:var(--radius-sm)}.gen-howto-body{padding:0 10px 8px;display:flex;flex-direction:column;gap:6px;line-height:1.5}.gen-howto-body b{color:var(--text);font-weight:600}.gen-odds{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:auto auto 1fr;column-gap:12px;row-gap:2px}.gen-odds li{display:contents}.gen-odds-p{font-family:var(--font-mono);color:var(--text);text-align:right}.gen-odds-n{color:var(--text-faint)}.gen-card{background:var(--bg-elev);border:1px solid var(--border-soft);border-left:3px solid var(--accent);border-radius:var(--radius-sm);padding:10px 12px}.gen-card-title{font-weight:700;font-size:15px;color:var(--accent-2)}.gen-card-sub{color:var(--text-dim);font-style:italic;font-size:12px;margin-bottom:6px}.gen-card-line{font-size:13px;margin:3px 0}.gen-card-quirk{font-size:12px;color:var(--text-dim);font-style:italic;margin-top:6px}.gen-item-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.gen-item-name{cursor:pointer;font-weight:500}.gen-item-caret{color:var(--text-faint);font-size:10px}.gen-item-actions{display:flex;align-items:center;gap:4px}.gen-item-desc{margin-top:6px;padding:8px 10px;background:var(--bg-elev);border-radius:var(--radius-sm);font-size:12.5px;line-height:1.5;color:var(--text-dim)}.settings-menu{position:relative}.settings-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:1150;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px;width:min(300px,90vw);display:flex;flex-direction:column;gap:12px;max-height:calc(100vh - 90px);max-height:calc(100dvh - 90px);overflow-y:auto;overscroll-behavior:contain}.settings-row{display:flex;flex-direction:column;gap:5px}.settings-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint)}.settings-data{display:flex;gap:6px}.settings-hint{font-size:11px;color:var(--text-faint);line-height:1.45;margin-top:4px}.list-more{padding:10px 12px;text-align:center;font-size:12px;color:var(--text-faint);border-top:1px solid var(--border-soft);background:var(--bg-elev)}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#0505068c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;animation:fade-in .12s ease}.cmdk{width:min(560px,92vw);max-height:70vh;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.cmdk-input{background:transparent;border:none;border-bottom:1px solid var(--border-soft);color:var(--text);font-size:16px;padding:16px 18px;font-family:inherit}.cmdk-input:focus{outline:none}.cmdk-results{overflow-y:auto;flex:1;padding:6px}.cmdk-hint{color:var(--text-faint);font-size:13px;padding:18px;text-align:center}.cmdk-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;background:transparent;border:none;color:var(--text);text-align:left;padding:9px 12px;border-radius:var(--radius-sm);font-size:14px}.cmdk-row.active{background:var(--accent-soft)}.cmdk-row.active .cmdk-name{color:var(--accent-2)}.cmdk-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cmdk-meta{display:flex;align-items:center;gap:8px;flex-shrink:0}.cmdk-metatext{font-size:12px;color:var(--text-faint)}.cmdk-kind{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-dim);background:var(--bg-elev-2);border-radius:var(--radius-pill);padding:2px 8px}.cmdk-footer{display:flex;gap:14px;padding:8px 14px;border-top:1px solid var(--border-soft);font-size:11px;color:var(--text-faint);background:var(--bg-elev)}.search-btn{display:inline-flex;align-items:center;justify-content:center;color:var(--text-dim)}.search-btn:hover{color:var(--text)}.cond-popover{display:flex;flex-direction:column;gap:2px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:6px;width:150px;max-height:220px;overflow-y:auto}.cond-opt{text-align:left;background:transparent;border:none;color:var(--text);font-size:12.5px;padding:6px 9px;border-radius:6px}.cond-opt:hover{background:var(--accent-soft);color:var(--accent-2)}.cond-opt-empty{color:var(--text-faint);font-size:12px;padding:6px 9px}.dropdown{position:relative;display:inline-flex;min-width:0}.dropdown-trigger{display:inline-flex;align-items:center;gap:8px;justify-content:space-between;width:100%;cursor:pointer;background:var(--bg-elev);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);padding:7px 12px;font-size:13px;font-family:inherit;transition:border-color .12s,background .12s}.dropdown-trigger:hover{border-color:var(--text-faint)}.dropdown[data-open=true] .dropdown-trigger{border-color:var(--accent)}.dropdown-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-caret{color:var(--text-dim);flex-shrink:0;transition:transform .15s ease,color .12s}.dropdown-trigger:hover .dropdown-caret{color:var(--text)}.dropdown[data-open=true] .dropdown-caret{transform:rotate(180deg);color:var(--accent)}.popover-layer{z-index:1300}.dropdown-menu{min-width:160px;max-width:320px;max-height:300px;overflow-y:auto;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:5px}.dropdown-menu.align-right{left:auto;right:0}.dropdown-opt{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);font-size:13px;padding:7px 10px;border-radius:6px;white-space:nowrap}.dropdown-opt:hover{background:var(--bg-elev-2)}.dropdown-opt.active{background:var(--accent-soft);color:var(--accent-2);font-weight:600}.dropdown-group{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);padding:8px 10px 3px}.dropdown-grow{flex:1;min-width:0}.enc-add{position:relative;display:inline-flex}.enc-add-popover{min-width:160px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:5px}.enc-add-head{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint);padding:6px 9px 3px}.enc-add-opt{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;color:var(--text);font-size:13px;padding:7px 9px;border-radius:6px}.enc-add-opt:hover{background:var(--accent-soft);color:var(--accent-2)}.enc-add-count{font-size:10px;background:var(--bg-elev-2);color:var(--text-faint);border-radius:var(--radius-pill);padding:1px 7px}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:700}.btn.danger:hover{filter:brightness(1.08)}.confirm-modal{width:min(400px,92vw)}.cleanup-modal{width:min(540px,94vw)}.cleanup-list{max-height:46vh;overflow-y:auto;border:1px solid var(--border-soft);border-radius:var(--radius-sm)}.cleanup-row{display:flex;align-items:center;gap:8px;padding:7px 10px;border-bottom:1px solid var(--border-soft)}.cleanup-row:last-child{border-bottom:none}.cleanup-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.cleanup-count{flex:none;min-width:36px;text-align:right}.cleanup-row .input{flex:1;min-width:0}.cleanup-merges{margin-top:14px}.cleanup-merge-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0}.ability-inputs{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}.ability-input{display:flex;flex-direction:column;align-items:center;gap:2px}.ability-input-lbl{font-size:10px;color:var(--text-faint);font-weight:700;letter-spacing:.5px}.ability-input .input{padding:6px 4px;text-align:center}.party-saves{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.save-chip{font-size:11px;background:var(--bg-elev-2);color:var(--text-dim);border-radius:var(--radius-pill);padding:2px 8px}.feedback-modal .dropdown-value.is-placeholder{color:var(--text-faint)}.entry .md-p,.entry .md-list,.entry .md-table{margin-bottom:6px}.entry>:last-child,.gen-item-desc>:last-child{margin-bottom:0}.gen-item-desc .md-p,.gen-item-desc .md-list{font-size:inherit;color:inherit;margin-bottom:6px}@keyframes anchor-flash{0%,35%{background:var(--accent-soft)}to{background:transparent}}.md-h.anchor-flash{animation:anchor-flash 1.6s ease-out;border-radius:var(--radius-sm);margin-left:-4px;margin-right:-4px;padding-left:4px;padding-right:4px}@media (prefers-reduced-motion: reduce){.md-h.anchor-flash{animation:none;background:var(--accent-soft)}}.rules-result-group{list-style:none;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:10px 12px 4px}.add-picker{width:320px;padding:8px;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow);display:flex;flex-direction:column;gap:4px}.add-picker-status{font-size:11px;color:var(--text-faint);min-height:15px;padding:0 2px}.add-picker-scroll{max-height:340px;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.add-picker-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:2px 2px 4px}.add-picker-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;width:100%;padding:5px 8px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text);font-size:13px;text-align:left;cursor:pointer}.add-picker-row:hover:not(:disabled),.add-picker-row:focus-visible{background:var(--accent-soft);outline:none}.add-picker-row:disabled{color:var(--text-faint);cursor:default}.add-picker-row .meta{font-size:11px;white-space:nowrap}.add-picker-empty{font-size:12px;color:var(--text-faint);padding:2px 8px 4px;line-height:1.45}.add-picker-custom{display:grid;grid-template-columns:1fr 52px 52px auto;gap:4px;padding:0 2px}.hp-pop-actions .btn{transition:opacity .1s,box-shadow .1s}.hp-pop-actions .btn.is-dimmed{opacity:.4}.hp-pop-actions .btn.danger.is-enter{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--danger)}.hp-pop-actions .btn.heal.is-enter{background:var(--good);color:var(--panel);box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--good)}@media (prefers-reduced-motion: reduce){.hp-pop-actions .btn{transition:none}}.hp-drained{color:var(--magenta);font-weight:600}.hp-temp-clear,.drain-chip{font:inherit;font-size:11px;padding:0 6px;margin-left:4px;border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap}.hp-temp-clear{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-2)}.drain-chip{border:1px solid var(--magenta);background:var(--magenta-soft);color:var(--magenta)}.hp-temp-clear:focus-visible,.drain-chip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.amt-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.sample-banner{display:flex;align-items:center;gap:10px;padding:6px 18px;min-height:38px;background:var(--accent-soft);color:var(--text);border-bottom:1px solid var(--border-soft);font-size:13px;flex-shrink:0}.sample-banner .spacer{flex:1}.sample-badge{padding:2px 8px;border-radius:var(--radius-pill);background:var(--accent);color:var(--accent-ink);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.sample-text{color:var(--text-dim)}.btn.sample-locked{opacity:.5;cursor:not-allowed}.corner-card{position:fixed;left:20px;bottom:20px;z-index:900;width:330px;max-width:calc(100vw - 40px);padding:14px 16px;background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-sm);box-shadow:var(--shadow)}.corner-card-title{font-weight:700;font-size:14px;margin-bottom:6px;padding-right:20px}.corner-card-text{margin:0 0 12px;font-size:13px;line-height:1.45;color:var(--text-dim)}.corner-card-actions{display:flex;gap:8px;flex-wrap:wrap}.corner-card-close{position:absolute;top:8px;right:8px;border:0;background:transparent;color:var(--text-dim);cursor:pointer;font-size:12px;padding:4px 6px;border-radius:6px}.corner-card-close:hover{color:var(--text);background:var(--border-soft)}a.btn{text-decoration:none}.settings-about{margin-bottom:6px}.settings-credit a{color:var(--accent-2);text-decoration:underline}.about-modal{width:min(480px,92vw)}.about-text{color:var(--text-dim);font-size:13px;line-height:1.55;margin:0 0 10px}.about-heading{margin:4px 0 6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--text-faint)}.feedback-support{margin-right:auto;align-self:center;font-size:12px;color:var(--text-dim);text-decoration:none}.feedback-support:hover{color:var(--text);text-decoration:underline}input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num-input{position:relative;display:block;width:100%}.num-input>.input{padding-right:28px}.timer-set .num-input>.input{padding-left:22px;padding-right:22px}.timer-set .num-input{width:72px}.num-steps{position:absolute;top:50%;right:7px;transform:translateY(-50%);display:flex;flex-direction:column;gap:1px;opacity:0;pointer-events:none;transition:opacity .12s}.num-input:hover .num-steps,.num-input:focus-within .num-steps{opacity:1;pointer-events:auto}@media (hover: none){.num-steps{opacity:1;pointer-events:auto}}.num-steps button{display:grid;place-items:center;width:16px;height:11px;padding:0;border:0;border-radius:4px;background:var(--bg-elev-2);color:var(--text-dim);cursor:pointer}.num-steps button:hover{background:var(--accent-soft);color:var(--text)}.num-steps button:active{background:var(--accent);color:var(--accent-ink)}.num-steps svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}@media (prefers-reduced-motion: reduce){.num-steps{transition:none}}.hp-pop,.cond-popover,.dropdown-menu{background:var(--popover);border-color:var(--popover-border);box-shadow:var(--popover-shadow)}.dropdown-opt:hover{background:var(--popover-border)}.hp-pop-amount{background:var(--bg-elev)}.hp-pop .btn:disabled{opacity:.6}.hp-pop-hint kbd{font-family:inherit;font-size:10px;font-weight:600;padding:1px 5px;border:1px solid var(--border);border-bottom-width:2px;border-radius:5px;background:var(--bg-elev);color:var(--text-dim)}.amt-input,.hp-track .amt-input{width:52px;padding:3px 8px;border-radius:var(--radius-pill);background:var(--bg-elev);font-variant-numeric:tabular-nums}.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}
