:root{--bg:#10161d;--surface:#1b232c;--surface-2:#26303b;--border:#3a4655;--text:#e6eaee;--text-muted:#8b96a3;--accent:#c53131;--link:#1b9af0;--heal:#22c7a3;--magic-uncommon:#7fcf6e;--magic-rare:#4f9be8;--magic-very-rare:#b56fe0;--advantage:#2fb35a;--warn:#e0a030;--font:Roboto, "Helvetica Neue", Arial, sans-serif;--fs-xs:11px;--fs-sm:13px;--fs-md:15px;--fs-lg:20px;--fs-xl:28px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--radius:4px;--radius-pill:999px;--tap:44px;--box:22px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:var(--fs-md)/1.4 var(--font);margin:0}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overflow-x:hidden}input,textarea,select,.prose,.selectable{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}[hidden]{display:none!important}textarea{width:100%;padding:var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg)}input:not([type]),input[type=text],input[type=search]{min-height:var(--tap);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--link);outline-offset:2px}h1,h2,h3,h4{margin:0;font-weight:600}h1{font-size:var(--fs-lg)}h2{font-size:var(--fs-md)}h3{font-size:var(--fs-md);margin:var(--sp-4) 0 var(--sp-2)}h4{font-size:var(--fs-sm);margin:var(--sp-3) 0 var(--sp-1);text-transform:uppercase;color:var(--text-muted)}p{margin:var(--sp-2) 0}.muted{color:var(--text-muted)}.small{font-size:var(--fs-sm)}.tiny{font-size:var(--fs-xs)}.label{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);display:block}.center{text-align:center;padding:var(--sp-4)}.grow{flex:1;min-width:0}.plain{margin:0;padding:0;list-style:none}.danger-text{color:#ff6b6b}.heal-text{color:var(--heal)}.magic-uncommon{color:var(--magic-uncommon);font-style:italic}.btn{min-height:var(--tap);padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2);font-size:var(--fs-sm);font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.small{min-width:36px;min-height:36px;padding:0 var(--sp-2)}.btn.primary{background:var(--link);border-color:var(--link);color:#fff}.btn.danger{background:var(--accent);border-color:var(--accent);color:#fff}.btn.heal{background:var(--heal);border-color:var(--heal);color:#04241d}.btn.ghost{background:0 0}.btn.manage{margin:var(--sp-3) auto;border-color:var(--link);color:var(--link);background:0 0;display:block}.btn.cast{border-color:var(--link);min-height:32px;color:var(--link);text-transform:uppercase;font-size:var(--fs-xs);background:0 0}.btn.wide{width:100%;margin-top:var(--sp-3)}.icon-btn{min-width:var(--tap);min-height:var(--tap);background:0 0;border:0;font-size:24px}.link{color:var(--link);text-align:left;background:0 0;border:0;padding:0}.value-box{min-width:44px;min-height:36px;padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);font-weight:600}.chip{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--fs-sm);background:var(--surface);display:inline-flex}.chip.conc{border-color:var(--link)}.chip.form{border-color:var(--magic-uncommon)}.chip.cond{border-color:var(--warn)}.link-chip{border-color:var(--link);color:var(--link)}.warn-chip{border-color:var(--warn);color:var(--warn)}.tag{margin-left:var(--sp-2);padding:0 var(--sp-1);border-radius:var(--radius);font-size:var(--fs-xs)}.tag.warn{border:1px solid var(--warn);color:var(--warn)}.adv{background:var(--advantage);color:#fff;text-align:center;border-radius:50%;width:16px;height:16px;font-size:11px;line-height:16px;display:inline-block}.action-row{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;flex-wrap:wrap;display:flex}.action-row.tight{margin:0}.segmented{margin:var(--sp-2) 0;flex-wrap:wrap;gap:2px;display:flex}.segmented button{min-height:var(--tap);border:1px solid var(--border);background:var(--surface-2);padding:0 var(--sp-2);flex:1}.segmented.small button{min-height:36px;font-size:var(--fs-sm)}.segmented button.active{background:var(--link);border-color:var(--link);color:#fff}.segmented.wrap button{flex:45%}.num{width:88px;min-height:var(--tap);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);text-align:center;font-size:var(--fs-lg)}.search{width:100%;min-height:var(--tap);padding:0 var(--sp-3);margin:var(--sp-2) 0;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface-2)}select{min-height:var(--tap);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:0 var(--sp-2)}.field{justify-content:space-between;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;display:flex}.count{text-align:center;min-width:24px;font-weight:600}.boxes{vertical-align:middle;flex-wrap:wrap;gap:6px;display:inline-flex}.box{width:var(--tap);height:var(--tap);background:0 0;border:0;padding:11px;position:relative}.box:after{content:"";border:2px solid var(--border);background:var(--surface-2);border-radius:3px;position:absolute;inset:11px}.box.used:after{background:var(--accent);border-color:var(--accent)}.resource{align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.sheet-head{z-index:5;background:var(--bg);padding:calc(var(--sp-2) + env(safe-area-inset-top)) var(--sp-3) var(--sp-2);border-bottom:1px solid var(--surface-2);position:sticky;top:0}.title-row{align-items:center;gap:var(--sp-2);display:flex}.stat-row{gap:var(--sp-1);margin-top:var(--sp-2);grid-template-columns:repeat(3,1fr);display:grid}.sheet-head .stat-row{grid-template-columns:repeat(12,minmax(0,1fr))}.sheet-head .stat-row>*{grid-column:span 4}.sheet-head .stat-row>.ac,.sheet-head .stat-row>.speed{grid-column:span 3}.sheet-head .stat-row>.hp{grid-column:span 6}.stat-row .label{letter-spacing:.02em;font-size:9px}.stat-row.three{grid-template-columns:repeat(3,1fr)}.stat{min-height:64px;padding:var(--sp-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.stat strong{font-size:var(--fs-lg);line-height:1.1}.stat strong.on{color:var(--warn)}.stat.hp strong{font-size:var(--fs-lg)}.temp{color:var(--heal);font-size:var(--fs-sm)}.hpbar{background:var(--surface-2);border-radius:2px;width:100%;height:4px;margin-top:4px;display:block;overflow:hidden}.hpbar>span{background:var(--heal);height:100%;display:block}.hpbar>span.low{background:var(--accent)}.banner{justify-content:space-between;align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--link);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-sm);flex-wrap:wrap;display:flex}.banner.warn{border-color:var(--warn)}.banner.update{border-radius:0;margin:0}.banner-actions{gap:var(--sp-2);display:flex}.layout{padding:0 var(--sp-3) calc(140px + env(safe-area-inset-bottom));touch-action:pan-y pinch-zoom;min-height:60vh}.group-title{color:var(--link);text-transform:uppercase;font-size:var(--fs-sm);letter-spacing:.04em}.ability-grid{gap:var(--sp-2);margin-top:var(--sp-3);grid-template-columns:repeat(3,1fr);display:grid}.ability-grid.compact{grid-template-columns:repeat(6,1fr)}.ability{padding:var(--sp-2) var(--sp-1);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:center;display:flex}.ability strong{font-size:var(--fs-xl)}.ability-grid.compact strong{font-size:var(--fs-md)}.ability .abbr{display:none}.ability .score{padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:var(--fs-sm)}.save-grid{gap:var(--sp-2);grid-template-columns:1fr 1fr;display:grid}.save{align-items:center;gap:var(--sp-2);min-height:var(--tap);padding:0 var(--sp-2);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);display:flex}.save .label{text-align:left;flex:1}.sense-grid{gap:var(--sp-2);display:grid}.save.sense{padding:0 var(--sp-3)}.dot{border:1px dashed var(--text-muted);border-radius:50%;width:12px;height:12px;display:inline-block}.dot.on{background:var(--text);border:1px solid var(--text)}.defs{gap:var(--sp-1) var(--sp-3);margin:var(--sp-2) 0;font-size:var(--fs-sm);grid-template-columns:auto 1fr;display:grid}.defs>div{display:contents}.defs dt{color:var(--text-muted)}.defs dd{margin:0}.table{border-collapse:collapse;width:100%;font-size:var(--fs-sm)}.table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;color:var(--text-muted);padding:var(--sp-1);font-weight:600}.table td{padding:var(--sp-1);border-top:1px solid var(--surface-2);vertical-align:middle}.num-col{text-align:right}.spell-level{margin-top:var(--sp-3)}.level-head{justify-content:space-between;align-items:center;gap:var(--sp-2);flex-wrap:wrap;display:flex}.slots{align-items:center;gap:var(--sp-2);display:inline-flex}.spell-row{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;border-top:1px solid var(--surface-2);grid-template-columns:1fr auto auto;display:grid}.spell-name,.feature-name{min-height:var(--tap);text-align:left;background:0 0;border:0;padding:0;font-weight:600}.feature{padding:var(--sp-1) 0;border-top:1px solid var(--surface-2)}.cgroup{margin-top:var(--sp-2)}.creature-row{align-items:center;gap:var(--sp-2);width:100%;min-height:var(--tap);padding:var(--sp-1) var(--sp-2);border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);text-align:left;grid-template-columns:auto 1fr auto 96px;margin:2px 0;display:grid}button.creature-row{grid-template-columns:1fr auto 96px}.creature-row input[type=checkbox]{width:24px;height:24px;margin:10px}.creature-row.down{opacity:.6}.cname{min-height:var(--tap);overflow-wrap:anywhere;font-weight:600}.chp{min-height:var(--tap);text-align:right;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:stretch;padding:0;font-weight:600;display:flex}.groupbar{left:0;right:0;bottom:calc(57px + env(safe-area-inset-bottom));z-index:6;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);background:var(--surface);border-top:1px solid var(--border);display:flex;position:fixed}.groupbar span{flex:1}.group-list li{padding:var(--sp-2) 0;border-top:1px solid var(--surface-2)}.picker li{align-items:center;gap:var(--sp-2);padding:var(--sp-2) 0;border-top:1px solid var(--surface-2);display:flex}.picker li.picked strong{color:var(--link)}.statblock{margin-top:var(--sp-3)}.caction{padding:var(--sp-1) 0;border-top:1px solid var(--surface-2)}.conditions li{border-top:1px solid var(--surface-2);flex-wrap:wrap;align-items:center;display:flex}.conditions label{align-items:center;gap:var(--sp-2);min-height:var(--tap);display:flex}.conditions input{width:20px;height:20px}.conditions .prose{flex-basis:100%}.hp-big{gap:var(--sp-4);flex-wrap:wrap;display:flex}.hp-big strong{font-size:var(--fs-xl)}.hp-controls{align-items:center;gap:var(--sp-2);margin:var(--sp-3) 0;flex-wrap:wrap;display:flex}.hp-controls .btn{flex:1}.panel-backdrop{z-index:10;background:#00000080;position:fixed;inset:0}.panel{background:var(--bg);padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:absolute;inset:0}.panel-head{align-items:center;gap:var(--sp-2);padding:var(--sp-2);border-bottom:1px solid var(--surface-2);display:flex}.panel-body{overscroll-behavior:contain;padding:var(--sp-3);padding-bottom:calc(var(--sp-4) + env(safe-area-inset-bottom));flex:1;overflow-y:auto}.prose p{white-space:pre-line}.signin{max-width:420px;padding:var(--sp-4);text-align:center;margin:15vh auto}.signin-logo{border-radius:20px}.logo{border-radius:6px;flex:none}.block{display:block}.field.column{flex-direction:column;align-items:stretch}.check-row{align-items:center;gap:var(--sp-2);min-height:var(--tap);display:flex}.check-row input{width:20px;height:20px}.dis{background:var(--accent);color:#fff;text-align:center;border-radius:50%;width:16px;height:16px;margin-left:4px;font-size:11px;line-height:16px;display:inline-block}.adv{margin-left:4px}.adv-text{color:var(--advantage)}.dis-text{color:#ff6b6b}.chips{gap:var(--sp-1);margin:var(--sp-2) 0;scrollbar-width:none;display:flex;overflow-x:auto}.chips button{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--surface-2);font-size:var(--fs-sm);flex:none}.chips button.active{background:var(--link);border-color:var(--link);color:#fff}.section-title{margin:var(--sp-3) 0 0;font-size:var(--fs-lg)}.indicators{gap:var(--sp-2);margin-top:var(--sp-2);flex-wrap:wrap;display:flex}.indicator{min-height:36px;padding:0 var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);font-size:var(--fs-sm);text-align:left;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.indicator.form{border-color:var(--magic-uncommon);color:var(--magic-uncommon)}.indicator.conc{border-color:var(--link);color:var(--link)}.indicator.cond{border-color:var(--warn);color:var(--warn)}button.banner{text-align:left;justify-content:flex-start;width:100%}.roll-formula{align-items:center;gap:var(--sp-1);padding:var(--sp-3);margin:var(--sp-2) 0;border:1px solid var(--link);border-radius:var(--radius);background:var(--surface);flex-direction:column;display:flex}.roll-formula strong{font-size:var(--fs-xl)}.outcomes{gap:var(--sp-2);margin:var(--sp-3) 0;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));display:grid}.sources li{padding:2px 0}.confirm{margin-top:var(--sp-3);padding:var(--sp-3);border:1px solid var(--warn);border-radius:var(--radius);background:var(--surface)}.panel-foot{padding:var(--sp-2) var(--sp-3) calc(var(--sp-2) + env(safe-area-inset-bottom));border-top:1px solid var(--border);background:var(--bg)}.feed{gap:var(--sp-3);flex-direction:column;display:flex}.feed li.divider button{width:100%;padding:var(--sp-2) 0;background:0 0;border:0;flex-direction:column;display:flex}.feed-row{align-items:flex-end;gap:var(--sp-2);display:flex}.feed-row.mine{flex-direction:row-reverse}.avatar{border:2px solid var(--who);background:var(--surface-2);width:36px;height:36px;color:var(--who);font-size:var(--fs-sm);border-radius:50%;flex:none;place-items:center;font-weight:700;display:grid}.feed-body{flex-direction:column;gap:2px;min-width:0;max-width:calc(100% - 44px);display:flex}.feed-row.mine .feed-body{align-items:flex-end}.feed-who{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--who);font-weight:700}.feed-card{min-width:200px;max-width:100%;padding:var(--sp-2) var(--sp-3);border:2px solid var(--who);background:var(--surface);color:var(--text);text-align:left;box-shadow:0 0 10px color-mix(in srgb, var(--who) 25%, transparent);border-radius:12px;flex-direction:column;gap:2px;display:flex}.feed-row.mine .feed-card{background:var(--surface-2)}.feed-card:disabled{opacity:1;cursor:default}.feed-row.undone .feed-card{opacity:.5;text-decoration:line-through}.feed-row.locked .feed-card{opacity:.8}.feed-label{font-size:var(--fs-md);overflow-wrap:anywhere}.roll-title{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);font-weight:600}.roll-kind{color:var(--warn)}.roll-kind.k-attack{color:var(--link)}.roll-kind.k-damage{color:var(--accent)}.roll-kind.k-save,.roll-kind.k-concentration{color:var(--advantage)}.roll-main{align-items:center;gap:var(--sp-3);display:flex}.roll-dice{font-size:var(--fs-lg);flex:1}.roll-eq{color:var(--text-muted);font-size:var(--fs-lg)}.roll-total{font-size:34px;line-height:1.1}.roll-formula{font-size:var(--fs-sm);color:var(--text-muted)}.roll-outcome{text-transform:uppercase;font-weight:700}.roll-outcome.o-crit,.roll-outcome.o-hit,.roll-outcome.o-success{color:var(--advantage)}.roll-outcome.o-miss,.roll-outcome.o-failure{color:var(--accent)}.economy{align-items:center;gap:var(--sp-2) var(--sp-3);margin-top:var(--sp-2);padding:var(--sp-1) var(--sp-2);border:1px solid var(--link);border-radius:var(--radius);flex-wrap:wrap;display:flex}.economy-kind{align-items:center;gap:var(--sp-1);display:inline-flex}.economy .label{font-size:var(--fs-xs);text-transform:uppercase;color:var(--text-muted)}.pip{border:2px solid var(--link);background:var(--link);border-radius:50%;width:22px;height:22px;min-height:0}.pip.used{border-color:var(--border);background:0 0}.action-row.center{justify-content:center}.dice-result{margin:var(--sp-2) 0;font-size:var(--fs-lg)}.dice-tray{justify-content:center;gap:var(--sp-2);margin:var(--sp-3) 0;perspective:600px;flex-wrap:nowrap;display:flex;overflow-x:auto}.die{filter:drop-shadow(0 4px 8px #00000080);flex-direction:column;flex:0 76px;align-items:center;gap:2px;min-width:34px;display:flex}.die-face{aspect-ratio:1;width:100%;position:relative;container-type:inline-size}.die-svg{width:100%;height:100%;position:absolute;inset:0}.die-body{fill:#3b2a55;stroke:#b9a6e0;stroke-width:2.5px;stroke-linejoin:round}.die.big .die-body{fill:#5a2a2a;stroke:#e0a6a6}.die-facets{fill:none;stroke:#ffffff59;stroke-width:1.5px}.die-num{color:#f4e8c8;text-shadow:0 1px 3px #000c;place-items:center;font-size:38cqw;font-weight:800;display:grid;position:absolute;inset:0}.die.d4 .die-num{padding-top:22cqw;font-size:30cqw}.die.d10 .die-num{padding-bottom:12cqw;font-size:32cqw}.die-kind{font-size:var(--fs-xs);color:var(--text-muted);text-transform:uppercase;white-space:nowrap}.die.rolling .die-face{animation:.35s linear infinite tumble}.die:not(.big).rolling .die-face{animation:.4s linear infinite spin}.die.landed .die-face{animation:.35s ease-out land}.die.dropped{opacity:.4}.die.nat20{filter:drop-shadow(0 0 14px #f2c94c)}.die.nat20 .die-num{color:#ffe08a}.die.nat1{filter:drop-shadow(0 0 14px #ef5350)}.die.nat1 .die-num{color:#ff8a80}.die-pair{gap:var(--sp-1);flex:0 160px;min-width:72px;display:inline-flex}.die-pair .die{flex-basis:76px}.roll-toast{left:50%;bottom:calc(80px + env(safe-area-inset-bottom));z-index:70;min-width:220px;max-width:calc(100% - 32px);padding:var(--sp-2) var(--sp-4);border:2px solid var(--link);background:var(--surface);color:var(--text);opacity:1;border-radius:14px;flex-direction:column;align-items:center;gap:2px;transition:opacity .6s;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #0009}.roll-toast.fading{opacity:0}.roll-toast.nat20{border-color:#f2c94c;box-shadow:0 0 18px #f2c94c}.roll-toast.nat1{border-color:#ef5350;box-shadow:0 0 18px #ef5350}.roll-toast-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.roll-toast-main strong{font-size:30px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes tumble{0%{transform:rotateX(0)rotate(0)translateY(0)}50%{transform:rotateX(180deg)rotate(90deg)translateY(-10px)}to{transform:rotateX(360deg)rotate(180deg)translateY(0)}}@keyframes land{0%{transform:scale(1.35)}60%{transform:scale(.92)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.die.rolling .die-face,.die:not(.big).rolling .die-face,.die.landed .die-face{animation:none}}.dice-result strong{font-size:30px}.companions{margin-top:var(--sp-3);text-align:left}.divider button{align-items:center}.divider-text{font-size:var(--fs-xs);letter-spacing:.08em;color:var(--text-muted)}.divider-combat-start .divider-text,.divider-combat-end .divider-text{color:var(--accent);font-size:var(--fs-sm);border-top:2px solid var(--accent);text-align:center;width:100%;padding-top:var(--sp-1);font-weight:700}.divider-long-rest .divider-text,.divider-short-rest .divider-text{color:var(--link);font-weight:700}.fab{right:var(--sp-3);bottom:calc(64px + var(--sp-3) + env(safe-area-inset-bottom));z-index:7;min-height:52px;padding:0 var(--sp-4);border-radius:var(--radius);background:var(--accent);color:#fff;border:0;font-weight:700;position:fixed;box-shadow:0 4px 12px #00000080}.item-row{align-items:center;gap:var(--sp-2);min-height:var(--tap);border-top:1px solid var(--surface-2);display:flex}.item-name{padding:var(--sp-1) 0;text-align:left;background:0 0;border:0}.item-name .magic{font-style:italic}.equip{width:var(--tap);height:var(--tap);background:0 0;border:0;flex:none;position:relative}.equip:after{content:"";border:2px solid var(--border);border-radius:3px;position:absolute;inset:12px}.equip.on:after{background:var(--accent);border-color:var(--accent)}.rarity-uncommon{color:var(--magic-uncommon)}.rarity-rare{color:var(--magic-rare)}.rarity-very-rare,.rarity-legendary,.rarity-artifact{color:var(--magic-very-rare)}.effect-row{width:100%;padding:var(--sp-2);border:1px solid var(--surface-2);border-radius:var(--radius);background:var(--surface);text-align:left;flex-direction:column;margin:2px 0;display:flex}.skills-list li{align-items:center;gap:var(--sp-2);min-height:var(--tap);border-top:1px solid var(--surface-2);display:flex}.bottom-nav{z-index:8;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-scroll{scrollbar-width:none;flex:1;display:flex;overflow-x:auto}.bottom-nav button{min-height:56px;padding:0 var(--sp-3);font-size:var(--fs-sm);color:var(--text-muted);white-space:nowrap;background:0 0;border:0;border-top:3px solid #0000;flex:none;font-weight:600}.bottom-nav button.active{color:var(--text);border-top-color:var(--accent)}.head-icon{min-width:44px;min-height:44px;color:var(--text-muted);cursor:pointer;background:0 0;border:0;flex:none;font-size:22px}.head-icon.active{color:var(--accent)}.install{left:var(--sp-2);right:var(--sp-2);bottom:calc(64px + env(safe-area-inset-bottom));z-index:9;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-3);border:1px solid var(--link);border-radius:var(--radius);background:var(--surface);display:flex;position:fixed}@media (width>=768px){.panel{border-left:1px solid var(--border);width:min(560px,100%);left:auto}}@media (width>=1024px){:root{--page:1480px;--cols:minmax(0, 3fr) minmax(0, 3.3fr) minmax(0, 6fr);--edge:max(var(--sp-4), calc((100vw - var(--page)) / 2))}.sheet-head{padding:var(--sp-3) var(--edge) var(--sp-2);border-bottom:0;position:static}.desk-band{grid-template-columns:var(--cols);gap:var(--sp-4);margin-top:var(--sp-3);display:grid}.ability-band{gap:var(--sp-2);grid-column:1/3;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;display:grid;container-type:inline-size}.ability-band .ability{min-height:116px;padding:var(--sp-2) var(--sp-1) var(--sp-3);justify-content:space-between}.ability-band .ability .label{font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase}.ability-band .ability strong{font-size:42px;line-height:1}.ability-band .ability .score{padding:0 var(--sp-3);font-size:var(--fs-md)}.band-vitals{gap:var(--sp-2);grid-column:3;grid-template-columns:1fr 1fr 1fr 2fr;display:grid}.band-vitals .stat{min-height:116px}.band-vitals .stat strong{font-size:36px}.band-vitals .stat .label,.desk-vitals .stat .label{font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase}.layout{grid-template-columns:var(--cols);gap:var(--sp-4);padding:var(--sp-3) var(--edge) 96px;align-items:start;display:grid}.desk-vitals{gap:var(--sp-2);grid-template-columns:112px 112px minmax(0,1fr);display:grid}.desk-vitals .stat{min-height:104px}.desk-vitals .stat strong{font-size:36px}@container (width<=700px){.ability-band .ability .full{display:none}.ability-band .ability .abbr{display:inline}}.col-1{container-type:inline-size}@container (width<=310px){.save-grid{grid-template-columns:1fr}}@media (width<=1279px){.tabs button{padding:0 var(--sp-2);font-size:var(--fs-xs)}}.col-2 .value-box{min-width:52px;min-height:30px}.col-2 .table td{padding-block:2px}.desk-vitals.combat{grid-template-columns:112px 112px minmax(0,.75fr) minmax(0,1.25fr)}.vbox{padding:var(--sp-2) var(--sp-3);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.vbox h3{margin:0 0 var(--sp-1);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted)}.vbox .indicators{margin-top:0}.vbox .economy{gap:var(--sp-1) var(--sp-3);border:0;grid-template-columns:1fr 1fr;margin:0;padding:0;display:grid}.vbox .economy .economy-kind{white-space:nowrap;justify-content:space-between}.vbox .economy .economy-kind:last-child{grid-column:1/-1;justify-content:flex-start}.tabs{scrollbar-width:none;margin:var(--sp-3) 0 var(--sp-2);border-bottom:1px solid var(--surface-2);flex-wrap:nowrap;gap:0;display:flex;overflow-x:auto}.tabs button{min-height:36px;padding:0 var(--sp-3);white-space:nowrap;text-transform:uppercase;font-size:var(--fs-sm);color:var(--text-muted);background:0 0;border:0;border-bottom:2px solid #0000;flex:none;font-weight:600}.tabs button.active{color:var(--text);border-color:var(--accent)}.fab,.groupbar,.install{bottom:var(--sp-3)}.groupbar{width:480px;left:auto}}.tabbar{margin:var(--sp-2) 0;border-bottom:1px solid var(--surface-2);scrollbar-width:none;background:var(--bg);gap:0;display:flex;overflow-x:auto}.tabbar button{min-height:var(--tap);padding:0 var(--sp-3);color:var(--text-muted);font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;background:0 0;border:0;border-bottom:3px solid #0000;flex:1 0 auto;font-weight:600}.tabbar button.active{color:var(--text);border-bottom-color:var(--accent)}.boxes{gap:2px}.box{width:32px;height:40px;padding:0}.box:after{border-radius:3px;inset:6px 2px}.level-head{justify-content:flex-start;column-gap:var(--sp-3)}.slots{gap:var(--sp-1)}.resource{gap:var(--sp-2);justify-content:flex-start}.target-row{padding:var(--sp-2) 0;border-top:1px solid var(--surface-2)}.target-row input:not([type=checkbox]),.target-row select{flex:1;min-width:0}.target-hint{margin:2px 0 var(--sp-1);padding-left:var(--sp-2);border-left:2px solid var(--warn);color:var(--text)}.spell-row{grid-template-columns:1fr auto auto auto}.metamagic{padding:var(--sp-1) 0;border-top:1px solid var(--surface-2)}.font-of-magic,.followups{margin:var(--sp-3) 0;padding:var(--sp-2) var(--sp-3);border:1px solid var(--surface-2);border-radius:var(--radius)}.picker li.banned{opacity:.5}.sync-tag{font-size:var(--fs-xs);color:var(--text-muted);margin:0}.sync-tag.synced:before{content:"✓ "}.sync-tag.pending:before{content:"↑ "}.sync-tag.error,.sync-tag.conflict{color:var(--warn)}.sync-tag.error:before,.sync-tag.conflict:before{content:"⚠ "}.sync-tag.viewer:before{content:"👁 "}.char-cards{gap:var(--sp-3);margin-top:var(--sp-4);text-align:left;display:grid}.char-card{gap:var(--sp-1);min-height:44px;padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:inherit;font:inherit;text-align:left;cursor:pointer;flex-direction:column;display:flex}.char-card strong{font-size:var(--fs-lg)}.char-card:active{border-color:var(--accent)}.editor-add{align-items:center;gap:var(--sp-2);margin:var(--sp-2) 0;flex-wrap:wrap;display:flex}.action-row.wrap{flex-wrap:wrap}.section-body>.level-head{margin-bottom:var(--sp-3)}.hp-big .hp-owner{text-align:right;margin-left:auto}.hp-big .hp-owner strong{font-size:var(--fs-lg);color:var(--text-muted)}.attacks tr.has-options td{border-bottom:0}.attacks tr.attack-options td{padding-top:0}.attacks tr.attack-options .opts{gap:0 var(--sp-4);flex-wrap:wrap;display:flex}.review-tag{border:1px solid var(--warn);min-height:0;color:var(--warn);font:inherit;font-size:var(--fs-xs);cursor:pointer;background:0 0;border-radius:999px;padding:1px 6px;display:inline}.review-why{color:var(--warn)}.breakdown td{padding:var(--sp-1) var(--sp-2)}.breakdown .num-cell{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.breakdown tr.total td{border-top:1px solid var(--border);font-weight:700}.layout{overflow-x:clip}.col-main{will-change:transform}.modal-backdrop{z-index:60;padding:var(--sp-4);background:#0009;place-items:center;display:grid;position:fixed;inset:0}.modal{width:min(360px,100%);padding:var(--sp-4);border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);text-align:center}.modal-title{margin:0 0 var(--sp-2);font-size:var(--fs-xl);font-weight:700}.initiative li.current{color:var(--accent);font-weight:700}.initiative li{padding:var(--sp-1) 0;border-bottom:1px solid var(--border)}.initiative .enemy-effect{padding-left:40px}
