.workspace{gap:1rem;display:grid}.workspace>*,.stack>*{min-width:0}.field input,.field select{width:100%;min-width:0}.ws-2{grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr)}@media (width<=860px){.ws-2{grid-template-columns:1fr}}.die .die-body{fill:var(--surface-3);stroke:var(--border-strong);stroke-width:3px}.die text{fill:var(--text);font-family:var(--display);font-weight:700}.die-dropped{opacity:.32}.die-dropped text{text-decoration:line-through}.die-crit .die-body{fill:#3a2a0c;stroke:var(--accent);stroke-width:4px}.die-crit text{fill:var(--accent-2)}.die-crit{filter:drop-shadow(0 0 10px #e8b24fb3)}.die-fumble .die-body{fill:#3a120c;stroke:var(--ember);stroke-width:4px}.die-fumble text{fill:#ff9a85}.die-max .die-body{stroke:var(--accent)}.tray{grid-template-columns:repeat(7,1fr);gap:.5rem;display:grid}@media (width<=560px){.tray{grid-template-columns:repeat(4,1fr)}}.tray-die{background:var(--bg-2);border:1px solid var(--border);cursor:pointer;color:var(--muted);font:inherit;user-select:none;border-radius:12px;place-items:center;gap:.15rem;padding:.6rem .2rem .45rem;font-size:.78rem;font-weight:650;transition:border-color .15s,transform 80ms,background .15s;display:grid;position:relative}.tray-die:hover{border-color:var(--accent);background:var(--surface-2)}.tray-die:active{transform:scale(.95)}.tray-die .die .die-body{fill:#0000;stroke:var(--muted);stroke-width:4px}.tray-die .die text{fill:var(--muted);font-size:24px;font-family:var(--font);font-weight:700}.tray-die:hover .die .die-body{stroke:var(--accent)}.tray-die:hover .die text{fill:var(--accent-2)}.tray-die .count{background:var(--accent);min-width:1.45rem;height:1.45rem;color:var(--accent-ink);border-radius:999px;place-items:center;padding:0 .3rem;font-size:.78rem;font-weight:800;display:grid;position:absolute;top:-7px;right:-7px;box-shadow:0 2px 8px #00000080}.tray-die.active{border-color:var(--accent)}.tray-die.active .die .die-body{stroke:var(--accent);fill:#e8b24f14}.stepper{border:1px solid var(--border-strong);background:var(--bg-2);border-radius:10px;align-items:center;display:inline-flex;overflow:hidden}.stepper button{font:inherit;width:2.2rem;height:2.3rem;color:var(--text);cursor:pointer;background:0 0;border:0;font-weight:700}.stepper button:hover{background:var(--surface-2);color:var(--accent-2)}.stepper output{text-align:center;font-variant-numeric:tabular-nums;min-width:2.6rem;font-weight:700}.expr-row{gap:.5rem;display:flex}.expr-row input{flex:1;padding:.65rem .8rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:1.05rem}.stage{text-align:center;border-radius:var(--radius);background:radial-gradient(500px 220px at 50% 30%, #e8b24f14, transparent 70%), var(--bg-2);border:1px solid var(--border);flex-direction:column;justify-content:center;align-items:center;min-height:230px;padding:1.25rem .5rem;display:flex;position:relative;overflow:hidden}.stage-total{font-family:var(--display);color:var(--text);font-variant-numeric:tabular-nums;text-shadow:0 0 40px #e8b24f40;font-size:clamp(3.5rem,12vw,6rem);font-weight:700;line-height:1}.stage-total.crit{color:var(--accent-2);text-shadow:0 0 40px #e8b24f99}.stage-total.fumble{color:#ff8a73;text-shadow:0 0 40px #ef5a3c80}.stage-badge{letter-spacing:.2em;text-transform:uppercase;border-radius:999px;margin-bottom:.5rem;padding:.25rem .7rem;font-size:.72rem;font-weight:800}.stage-badge.crit{color:var(--accent-2);background:#e8b24f26;border:1px solid #e8b24f80}.stage-badge.fumble{color:#ff8a73;background:#ef5a3c26;border:1px solid #ef5a3c80}.stage-label{color:var(--muted);margin-top:.4rem;font-size:.9rem}.stage-dice{flex-wrap:wrap;justify-content:center;gap:.35rem;max-width:100%;margin-top:1rem;display:flex}.stage-dice .mod{color:var(--muted);align-self:center;padding:0 .25rem;font-size:1.1rem;font-weight:800}.stage-empty{color:var(--faint)}.stage-stats{color:var(--faint);margin-top:.75rem;font-size:.8rem}.rolling .die{animation:.45s cubic-bezier(.2,.8,.3,1.2) both tumble}.rolling .die:nth-child(2n){animation-delay:40ms}.rolling .die:nth-child(3n){animation-delay:80ms}@keyframes tumble{0%{opacity:0;transform:translateY(-24px)rotate(-200deg)scale(.6)}to{opacity:1;transform:none}}.pop{animation:.35s ease-out pop}@keyframes pop{0%{opacity:.2;transform:scale(.7)}70%{transform:scale(1.06)}to{transform:scale(1)}}.list{margin:0;padding:0;list-style:none}.list-item{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.5rem .25rem;font-size:.92rem;display:flex}.list-item:last-child{border-bottom:0}.list-item .grow{min-width:0}.list-item .sub{color:var(--faint);white-space:nowrap;text-overflow:ellipsis;font-family:ui-monospace,Consolas,monospace;font-size:.8rem;overflow:hidden}.list-item .num{font-family:var(--display);font-variant-numeric:tabular-nums;text-align:right;min-width:2.5rem;font-size:1.15rem;font-weight:700}.saved-btn{text-align:left;min-width:0;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;flex-direction:column;flex:1;padding:.15rem .25rem;display:flex}.saved-btn:hover{background:var(--surface-2)}.saved-btn:hover strong{color:var(--accent-2)}.history{max-height:300px;overflow-y:auto}.empty-note{color:var(--faint);padding:.5rem .25rem;font-size:.88rem}.init-bar{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex;position:sticky;top:64px}.round-badge{align-items:baseline;gap:.5rem;display:flex}.round-badge .n{font-family:var(--display);color:var(--accent-2);font-size:1.8rem;font-weight:700;line-height:1}.round-badge .l{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:700}.now-up{font-weight:650}.now-up span{color:var(--accent-2)}.add-grid{grid-template-columns:2fr repeat(4,minmax(70px,1fr)) auto;align-items:end;gap:.5rem;display:grid}@media (width<=720px){.add-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.add-grid .field:first-child{grid-column:1/-1}}.side-toggle{display:inline-flex}.combat-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.cmb{--side:var(--frost);border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);grid-template-columns:4px 3.4rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.7rem .8rem .7rem 0;transition:border-color .2s,box-shadow .2s,transform .2s;display:grid}.cmb.foe{--side:var(--ember)}.cmb:before{content:"";background:var(--side);opacity:.8;border-radius:4px 0 0 4px;align-self:stretch;margin:-.7rem 0}.cmb.active{border-color:var(--accent);box-shadow:var(--glow);transform:translate(4px)}.cmb.down{opacity:.45}.cmb.down .cmb-name{text-decoration:line-through}.cmb-init{font:inherit;font-family:var(--display);text-align:center;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.1rem 0;font-size:1.5rem;font-weight:700}.cmb-init:hover{background:var(--surface-2);color:var(--accent-2)}.cmb-name{flex-wrap:wrap;align-items:center;gap:.5rem;font-weight:650;display:flex}.cmb-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.3rem;font-size:.82rem;display:flex}.ac{align-items:center;gap:.25rem;display:inline-flex}.hpbar{background:var(--bg);border:1px solid var(--border);border-radius:999px;width:140px;height:8px;position:relative;overflow:hidden}.hpbar>i{background:var(--heal);border-radius:999px;transition:width .3s,background .3s;position:absolute;inset:0 auto 0 0}.hpbar.mid>i{background:var(--accent)}.hpbar.low>i{background:var(--ember)}.hp-text{font-variant-numeric:tabular-nums}.cond-chip{color:#c3b8ff;cursor:pointer;background:#8f7cf726;border:1px solid #8f7cf759;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:650}.cond-chip:hover{text-decoration:line-through}.conc-chip{color:#a9dcf5;background:#5cb8e626;border-color:#5cb8e659}.cmb-ctl{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.3rem;display:flex}.cmb-ctl input{text-align:center;width:4rem;padding:.35rem .45rem}.dmg-btn:hover{color:var(--ember);border-color:var(--ember)}.heal-btn:hover{color:var(--heal);border-color:var(--heal)}@media (width<=640px){.cmb{grid-template-columns:4px 2.8rem minmax(0,1fr)}.cmb-ctl{grid-column:2/-1;justify-content:flex-start}.hpbar{width:100px}}.menu{z-index:30;background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));gap:.2rem;width:300px;padding:.4rem;display:grid;position:absolute}.menu button{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:8px;padding:.4rem .55rem;font-size:.85rem}.menu button:hover{background:var(--surface-3);color:var(--accent-2)}.menu button.on{color:#c3b8ff}.menu .menu-head{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);grid-column:1/-1;padding:.3rem .55rem;font-size:.7rem;font-weight:700}.player-view{z-index:100;background:var(--bg);flex-direction:column;gap:2vh;padding:4vh 5vw;display:flex;position:fixed;inset:0;overflow:auto}.player-view h2{justify-content:space-between;align-items:baseline;margin:0;font-size:clamp(1.5rem,4vw,3rem);display:flex}.pv-list{flex-direction:column;gap:1.2vh;margin:0;padding:0;list-style:none;display:flex}.pv-item{background:var(--surface);border:2px solid var(--border);border-radius:16px;align-items:center;gap:2vw;padding:1.4vh 2vw;font-size:clamp(1.2rem,3.2vw,2.4rem);display:flex}.pv-item.active{border-color:var(--accent);box-shadow:var(--glow)}.pv-item .pv-init{font-family:var(--display);color:var(--muted);min-width:3ch}.pv-item .pv-state{color:var(--muted);margin-left:auto;font-size:.6em}.meter{background:var(--bg);border:1px solid var(--border);border-radius:999px;height:14px;position:relative;overflow:hidden}.meter-fill{border-radius:999px;transition:width .35s,background .35s;position:absolute;inset:0 auto 0 0}.meter-ticks{height:1.4rem;color:var(--faint);font-size:.7rem;position:relative}.meter-ticks span{white-space:nowrap;position:absolute;top:.25rem;transform:translate(-50%)}.meter-ticks span:before{content:"";background:var(--border-strong);width:1px;height:.5rem;position:absolute;top:-.6rem;left:50%}.verdict{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.verdict .big{font-family:var(--display);font-size:2rem;font-weight:700;line-height:1.1}.d-low,.d-trivial{color:var(--muted)}.d-easy{color:var(--heal)}.d-moderate,.d-medium{color:var(--accent-2)}.d-high,.d-hard{color:#ff9f5a}.d-beyond,.d-deadly{color:var(--ember)}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.5rem;margin-top:1rem;display:grid}.stat{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;padding:.55rem .7rem}.stat b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.25rem;display:block}.stat span{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem;font-weight:650}.search-results{border:1px solid var(--border);border-radius:10px;max-height:340px;margin-top:.5rem;overflow-y:auto}.mon-row{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.5rem .7rem;font-size:.92rem;display:grid}.mon-row:last-child{border-bottom:0}.mon-row:hover{background:var(--surface-2)}.mon-row .mon-sub{color:var(--faint);font-size:.78rem}.cr-pill{background:var(--surface-3);color:var(--accent-2);white-space:nowrap;border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.group-row{border-bottom:1px solid var(--border);grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:.6rem;padding:.55rem 0;display:grid}.group-row:last-child{border-bottom:0}.group-row .stepper button{width:1.9rem;height:2rem}.group-row .stepper output{min-width:1.8rem}.party-row{flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem 0;display:flex}.coins{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.coin{text-align:center;background:var(--bg-2);border:1px solid var(--border);border-radius:12px;padding:.75rem .25rem}.coin b{font-family:var(--display);font-variant-numeric:tabular-nums;font-size:1.35rem;display:block}.coin span{text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:700}.coin.pp span{color:#d9e2ec}.coin.gp span{color:var(--accent-2)}.coin.sp span{color:#c0c6cf}.coin.cp span{color:#d08a5c}.coin.zero{opacity:.35}.treasure-list{flex-direction:column;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.treasure{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;align-items:center;gap:.7rem;padding:.6rem .75rem;display:flex}.treasure .grow{min-width:0}.treasure .val{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;font-size:.88rem}.treasure.magic{border-color:color-mix(in srgb, var(--r) 45%, var(--border));background:linear-gradient(90deg, color-mix(in srgb, var(--r) 10%, transparent), var(--bg-2) 60%)}.treasure .rar{color:var(--r);font-size:.75rem;font-weight:700}.split{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.npc-hero{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:1rem;display:grid}.npc-sigil{width:72px;height:72px;font-family:var(--display);color:var(--accent-ink);background:conic-gradient(from 200deg, var(--accent), var(--accent-2), var(--accent));box-shadow:var(--glow);border-radius:50%;place-items:center;font-size:1.8rem;font-weight:700;display:grid}.npc-name{font-family:var(--display);margin:0;font-size:clamp(1.5rem,3.5vw,2.1rem);font-weight:700;line-height:1.15}.npc-job{color:var(--muted);margin-top:.2rem}.npc-fields{gap:.5rem;margin-top:1rem;display:grid}.npc-field{background:var(--bg-2);border:1px solid var(--border);border-radius:10px;grid-template-columns:6.5rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.6rem .75rem;display:grid}.npc-field.locked{border-color:#e8b24f80}.npc-field .k{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem;font-weight:700}.lock{font:inherit;color:var(--faint);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;place-items:center;width:2rem;height:2rem;display:grid}.lock:hover{color:var(--text);border-color:var(--border-strong)}.lock[aria-pressed=true]{color:var(--accent);background:#e8b24f14;border-color:#e8b24f80}@media (width<=520px){.npc-field{grid-template-columns:minmax(0,1fr) auto}.npc-field .k{grid-column:1/-1}}.name-cloud{flex-wrap:wrap;gap:.4rem;display:flex}.name-chip{font:inherit;background:var(--bg-2);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:999px;padding:.3rem .7rem;font-size:.88rem}.name-chip:hover{border-color:var(--accent);color:var(--accent-2)}
