:root{--paper:#eceef0;--card:#fbfcfc;--wash:#e2e5e8;--ink:#1c2025;--line:#59616a;--rule:#c3c8ce;--muted:#6c747d;--accent:#a3201f;--accent-wash:#f5e3e2;--ok:#2f6b3e;--note:#f6efd9;--note-ink:#5a4a16;--f-display:"Alegreya", Georgia, "Times New Roman", serif;--f-label:"Alegreya Sans SC", "Alegreya Sans", system-ui, sans-serif;--f-body:"Alegreya Sans", system-ui, -apple-system, "Segoe UI", sans-serif}:root[data-theme=dark]{--paper:#14171a;--card:#1c2024;--wash:#252a2f;--ink:#e7e9ec;--line:#98a1aa;--rule:#3a4148;--muted:#9aa2ab;--accent:#e2625a;--accent-wash:#3a2020;--ok:#7cc48d;--note:#2e2a1c;--note-ink:#e6d79c;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.4;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:20px 48px}.wrap{max-width:1180px;margin:0 auto;display:flex;flex-direction:column;gap:18px}h1,h2,h3{text-wrap:balance;margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lbl{font-family:var(--f-label);font-weight:700;letter-spacing:.06em;font-size:12px;color:var(--ink)}.sub{font-family:var(--f-label);letter-spacing:.06em;font-size:11px;color:var(--muted)}.app{background:var(--card);border:1px solid var(--rule);border-radius:6px;overflow:hidden;box-shadow:0 1px 0 var(--rule)}.bar{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--rule);background:var(--wash)}.party{display:flex;gap:6px;flex-wrap:wrap}.pc{display:flex;align-items:center;gap:8px;border:1px solid var(--rule);background:var(--card);border-radius:20px;padding:3px 12px 3px 3px;cursor:pointer;font-size:13px}.pc .av{width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--card);display:grid;place-items:center;font-family:var(--f-label);font-weight:700;font-size:12px}.pc[aria-pressed=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.pc small{color:var(--muted)}.bar-r{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.saveerr{font-size:13px;color:var(--accent);background:var(--accent-wash);border:1px solid var(--accent);border-radius:4px;padding:5px 10px;max-width:420px}.btn{border:1px solid var(--line);background:var(--card);border-radius:4px;padding:6px 12px;cursor:pointer;font-weight:500;font-size:14px}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.edit[aria-pressed=true]{background:var(--ink);color:var(--card);border-color:var(--ink)}[data-mode=view] [data-add],[data-mode=view] .addform{display:none!important}[data-mode=view] .locked{cursor:default}[data-mode=view] input.locked:focus,[data-mode=view] textarea.locked:focus{background:transparent;border-bottom-color:var(--rule)}[data-mode=view] textarea.locked{resize:none;border-color:transparent;padding-inline:0}[data-mode=view] select.locked{-moz-appearance:none;appearance:none;-webkit-appearance:none;opacity:1}[data-mode=view] button.locked{cursor:default}.btn.ghost{border-style:dashed;color:var(--muted)}.tabs{display:flex;gap:2px;padding:0 14px;border-bottom:1.5px solid var(--line);overflow-x:auto}.tab{border:0;background:none;padding:10px 14px 8px;font-family:var(--f-label);font-weight:700;letter-spacing:.06em;font-size:13px;color:var(--muted);cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1.5px;white-space:nowrap}.tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.view{padding:16px}.box{border:1.5px solid var(--line);border-radius:4px;background:var(--card);position:relative;min-width:0}.box:before,.box:after{content:"";position:absolute;width:7px;height:7px;border:1.5px solid var(--line);background:var(--paper);transform:rotate(45deg);top:-5px}.box:before{left:-5px}.box:after{right:-5px}.box>h3{font-family:var(--f-label);font-weight:700;letter-spacing:.07em;font-size:13px;text-align:center;padding:7px 8px 5px;margin:0 8px;border-bottom:1.5px solid var(--line)}.box .in{padding:10px}.field{display:flex;flex-direction:column;gap:1px;min-width:0}.field input,.field select{border:0;border-bottom:1px solid var(--rule);background:transparent;padding:3px 2px;min-width:0;width:100%}.field input:focus,.field select:focus,textarea:focus{outline:none;border-bottom-color:var(--accent);background:var(--accent-wash)}.field .sub{order:2}input.big{font-family:var(--f-display);font-size:24px;font-weight:700;text-align:center;border:0;background:transparent;width:100%}.num{font-variant-numeric:tabular-nums}.head{display:grid;grid-template-columns:minmax(0,2.4fr) 92px 96px minmax(0,1.6fr) 110px 120px;gap:12px;align-items:stretch}.idgrid{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;padding:10px 12px}.idgrid .name{grid-column:1/-1}.idgrid .name input{font-family:var(--f-display);font-size:22px;font-weight:700}.lvl{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;border-radius:46px;padding:10px 6px}.lvl:before,.lvl:after{display:none}.shield{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:8px 6px 12px;border-radius:4px 4px 46px 46px}.shield:before,.shield:after{display:none}.hp{display:grid;grid-template-columns:1.3fr 1fr;gap:4px 10px;padding:8px 10px}.hp .cur{grid-row:span 2;display:flex;flex-direction:column;justify-content:flex-end;border-right:1px solid var(--rule);padding-right:8px}.hp .cur input{font-size:30px}.mini{display:flex;flex-direction:column;gap:4px;padding:8px 10px}.mini .t{text-align:center}.diamonds{display:flex;gap:3px;align-items:center}.dia{width:15px;height:15px;border:1.5px solid var(--ink);transform:rotate(45deg) scale(.82);background:transparent;cursor:pointer;padding:0;border-radius:1px;flex:none}.dia[aria-pressed=true]{background:var(--ink)}.dia.red[aria-pressed=true]{background:var(--accent);border-color:var(--accent)}.ds{display:flex;justify-content:space-between;align-items:center;gap:6px}.p1{display:grid;grid-template-columns:314px minmax(0,1fr);gap:14px;margin-top:16px;align-items:stretch}.p1>.left{align-self:start}.cfbox{flex:1 1 auto}.left{display:grid;grid-template-columns:150px 150px;gap:14px;align-content:start}.eqspan{grid-column:1/-1}.equip textarea{min-height:110px}.col{display:flex;flex-direction:column;gap:12px;min-width:0}.ab .score{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px 6px}.ab .mod{width:64px;height:64px;border-radius:50%;border:1.5px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center}.ab .mod input{font-size:24px;width:56px;padding:0}.ab .sc{border:1.5px solid var(--line);border-left:0;border-radius:0 6px 6px 0;padding:3px 6px;width:52px;text-align:center;margin-left:-8px}.ab .sc input{font-size:17px;padding:0}.ab .labels{display:flex;justify-content:space-between;padding:0 10px}.rows{border-top:1.5px solid var(--line);margin-top:6px;padding:6px 8px;display:flex;flex-direction:column;gap:3px}.rows.save{background:var(--wash)}.row{display:grid;grid-template-columns:18px 34px 1fr;gap:4px;align-items:center;font-size:13.5px}.row.savehead span{font-weight:700}.prof{width:14px;height:14px;border-radius:50%;border:1.5px solid var(--ink);background:none;cursor:pointer;padding:0;position:relative}.prof[data-v="1"]{background:var(--ink)}.prof[data-v="2"]{background:var(--ink);box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--ink)}.row input{border:0;border-bottom:1px solid var(--rule);background:transparent;text-align:center;padding:1px 0;width:100%;font-variant-numeric:tabular-nums}.pb .in{display:flex;justify-content:center}.pb input{font-size:30px}.statrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.stat .in{display:flex;justify-content:center;padding:6px}.stat input{font-size:26px}table.w{width:100%;border-collapse:collapse;font-size:14px}.w th{font-family:var(--f-label);font-size:11.5px;letter-spacing:.05em;color:var(--muted);text-align:left;font-weight:500;padding:4px 6px;border-bottom:1px solid var(--line)}.w td{border-bottom:1px solid var(--rule);padding:0}.w td input{border:0;background:transparent;width:100%;padding:6px}.w td+td{border-left:1px solid var(--rule)}.scrollx{overflow-x:auto}.toolbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:space-between;margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:4px}.chip{border:1px solid var(--rule);background:var(--card);border-radius:3px;padding:2px 8px;font-size:12.5px;cursor:pointer}.chip[aria-pressed=true]{background:var(--ink);color:var(--card);border-color:var(--ink)}.feat{border:1px solid var(--rule);border-radius:4px;margin-bottom:6px;background:var(--card)}.feat summary{list-style:none;display:grid;grid-template-columns:14px minmax(0,1fr) auto;gap:8px;align-items:center;padding:7px 9px;cursor:pointer}.feat summary::-webkit-details-marker{display:none}.feat summary .car{width:0;height:0;border-left:5px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}.feat[open] summary .car{transform:rotate(90deg)}.fname{font-weight:700;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline;min-width:0}.fname .one{font-weight:400;color:var(--muted);font-size:13.5px}.tags{display:flex;gap:4px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.tag{font-family:var(--f-label);font-size:11px;letter-spacing:.05em;border:1px solid var(--rule);padding:0 6px;border-radius:2px;white-space:nowrap}.tag.act{border-color:var(--line);color:var(--ink)}.tag.Action{background:var(--ink);color:var(--card);border-color:var(--ink)}.tag.Bonus{background:var(--accent);color:#fff;border-color:var(--accent)}.tag.Reaction{border-color:var(--accent);color:var(--accent)}.uses{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted)}.fbody{padding:4px 12px 12px 31px;display:flex;flex-direction:column;gap:8px}.fmeta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}textarea{width:100%;border:1px solid var(--rule);border-radius:3px;background:transparent;padding:7px 8px;resize:vertical;min-height:70px;line-height:1.45}.addform{border:1.5px dashed var(--line);border-radius:4px;padding:10px;display:flex;flex-direction:column;gap:8px;margin-bottom:8px;background:var(--wash)}.picker{display:flex;gap:8px;flex-wrap:wrap;align-items:end}.picker .field{flex:1 1 220px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.equip .in{display:flex;flex-direction:column;gap:6px}.armor{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center;font-size:13.5px}.armor label{display:flex;gap:4px;align-items:center;cursor:pointer}.p2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px}.casting{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px}.cast .in{display:grid;grid-template-columns:70px 1fr;gap:0}.cast .in>*{border-bottom:1px solid var(--rule);padding:6px}.cast .in>:nth-child(odd){border-right:1px solid var(--rule)}.cast input{text-align:center}.slots .in{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px 14px}.slot{display:grid;grid-template-columns:52px 34px 1fr;align-items:center;gap:4px;font-size:13px}.slot .sub{color:var(--ink)}.slot input{border:0;border-bottom:1px solid var(--rule);background:transparent;width:100%;text-align:center}.sp summary{grid-template-columns:14px 48px minmax(0,1fr) auto}.lvlpill{font-family:var(--f-label);font-weight:700;font-size:12px;text-align:center;border:1px solid var(--line);border-radius:2px;padding:0 4px}.crm{display:flex;gap:6px;font-family:var(--f-label);font-size:12px}.crm span{display:flex;align-items:center;gap:2px;color:var(--rule)}.crm span.on{color:var(--ink)}.crm span:before{content:"";width:8px;height:8px;border:1.3px solid currentColor;transform:rotate(45deg)}.crm span.on:before{background:currentColor}.portrait{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px}.ph{aspect-ratio:3/4;max-width:100%;border:1.5px dashed var(--line);border-radius:3px;display:grid;place-items:center;text-align:center;font-size:12px;color:var(--muted);padding:6px;background:repeating-linear-gradient(45deg,transparent 0 8px,var(--wash) 8px 9px)}.attune{display:flex;flex-direction:column;gap:4px}.attune div{display:flex;gap:8px;align-items:center}.coins{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.coin{border:1.5px solid var(--line);border-radius:3px;text-align:center;padding:2px 0}.coin input{border:0;background:transparent;width:100%;text-align:center;font-variant-numeric:tabular-nums}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0c0e80;display:grid;place-items:center;padding:16px;z-index:20}.modal[hidden]{display:none}.mbox{background:var(--card);border:1.5px solid var(--line);border-radius:6px;max-width:460px;width:100%;padding:18px;display:flex;flex-direction:column;gap:10px}.mbox h2{font-family:var(--f-display);font-size:21px}.mbox label{display:flex;gap:8px;align-items:flex-start}.mbox .r{display:flex;justify-content:flex-end;gap:8px;margin-top:6px}@media (max-width:1020px){.head{grid-template-columns:minmax(0,1fr) 92px 96px}.head .hp{grid-column:1/2}.p2{grid-template-columns:1fr}}@media (max-width:860px){.p1{grid-template-columns:1fr}.left{grid-template-columns:1fr 1fr}.casting{grid-template-columns:1fr}}@media (max-width:600px){.head{grid-template-columns:1fr 1fr}.head .idbox,.head .hp{grid-column:1/-1}.statrow{grid-template-columns:1fr 1fr}.two{grid-template-columns:1fr}.slots .in,.fmeta{grid-template-columns:1fr 1fr}.tags .tag.src{display:none}.view{padding:12px 10px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.app-shell{max-width:1180px;margin:0 auto}.brand{font-family:var(--f-display);font-weight:700;font-size:22px}.center{min-height:70vh;display:grid;place-items:center}.card{background:var(--card);border:1px solid var(--rule);border-radius:6px;padding:20px}.login{width:100%;max-width:360px;display:flex;flex-direction:column;gap:12px}.login h1{font-family:var(--f-display);font-size:26px}.login input{border:1px solid var(--line);border-radius:4px;padding:8px 10px;background:var(--card)}.err{color:var(--accent);font-size:14px}.muted{color:var(--muted)}.party-page{display:flex;flex-direction:column;gap:16px}.party-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.party-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.pcard{display:flex;flex-direction:column;gap:6px;text-decoration:none;color:inherit}.pcard:hover{border-color:var(--line)}.pcard .nm{font-family:var(--f-display);font-weight:700;font-size:20px}.pcard .row-actions{display:flex;justify-content:flex-end;gap:6px;margin-top:6px}.confirm{display:flex;flex-direction:column;gap:6px;margin-top:8px;font-size:14px}.confirm input{border:1px solid var(--line);border-radius:3px;padding:5px 8px;background:var(--card)}.btn.danger{border-color:var(--accent);color:var(--accent)}.btn.danger.solid{background:var(--accent);color:#fff}.btn.small{padding:2px 8px;font-size:12.5px}.btn:disabled{opacity:.5;cursor:default}a.pc{text-decoration:none;color:inherit}.banner{padding:8px 14px;border-bottom:1px solid var(--accent);background:var(--accent-wash);color:var(--ink);font-size:14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.banner .btn{padding:3px 10px;font-size:13px}.entry-tools{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.empty{color:var(--muted);font-size:13.5px;padding:6px 2px}.w td .rm{border:0;background:none;color:var(--muted);cursor:pointer;padding:4px 8px}.w td.tools{width:1%;white-space:nowrap}.choice{display:flex;gap:4px;align-items:center}.choice select,.choice input{flex:1;min-width:0}.linkish{border:0;background:none;color:var(--muted);font-size:12px;cursor:pointer;padding:0 2px;text-decoration:underline}[data-mode=view] .linkish{display:none}.mod-sc{display:contents}.saving-dot{display:none}input.big,select.big{font-family:var(--f-display);font-size:24px;font-weight:700;text-align:center;border:0;background:transparent;width:100%}.ab .mod input.big{font-size:24px}.hp .cur input.big,.pb input.big{font-size:30px}.stat input.big,.stat select.big{font-size:26px}.lvl input.xp{border:0;background:transparent;text-align:center;width:70px;padding:0}.attune input{border:0;border-bottom:1px solid var(--rule);background:transparent;flex:1;min-width:0;padding:3px 2px}.cast .in input,.cast .in select{border:0;background:transparent;width:100%;min-width:0;text-align:center}.cast .in select{text-align:left}.app input,.app select{min-width:0}.app input:not([type]):focus,.app textarea:focus{outline:none}.app input.locked:focus{background:transparent}.party .pc .av{flex:none}[data-mode=view] input.locked,[data-mode=view] textarea.locked{caret-color:transparent;cursor:default;user-select:none;-webkit-user-select:none}[data-mode=view] textarea.locked.wrap{display:block;width:100%;min-height:0;resize:none;overflow:hidden;border:0;border-radius:0;background:transparent;line-height:normal;padding:3px 2px;overflow-wrap:anywhere}[data-mode=view] .field textarea.locked.wrap,[data-mode=view] .attune textarea.locked.wrap{border-bottom:1px solid var(--rule)}[data-mode=view] .attune textarea.locked.wrap{flex:1;min-width:0;width:auto}[data-mode=view] .idgrid .name textarea.locked.wrap{font-family:var(--f-display);font-size:22px;font-weight:700}[data-mode=view] .w td textarea.locked.wrap{padding:6px}
