:root{--bg:#0f1218;--panel:#171b24;--panel-2:#1e2330;--line:#2a3142;--line-2:#364056;--text:#e6e9f0;--muted:#8a93a8;--accent:#e0a944;--accent-ink:#1a1305;--good:#4cc38a;--bad:#ef6461;--warn:#f0b44c;--info:#6aa8ff;--fire:#f06a3c;--water:#3f95f0;--wind:#e8c63f;--light:#f1ead2;--dark:#a46ae0;--radius:10px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3,h4{margin:0;font-weight:600}code{background:var(--panel-2);border-radius:4px;padding:1px 5px}button,input,select{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--line-2);background:var(--panel-2);border-radius:7px;padding:6px 12px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:default}button.ghost{background:0 0}button.ghost.on{border-color:var(--accent);color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);padding:9px 28px;font-weight:700}button.primary:hover:not(:disabled){filter:brightness(1.08);border-color:var(--accent)}button.danger:not(.icon){border-color:color-mix(in srgb, var(--bad) 60%, var(--line-2));color:var(--bad);background:0 0;padding:9px 28px;font-weight:700}button.danger:not(.icon):hover:not(:disabled){border-color:var(--bad);background:color-mix(in srgb, var(--bad) 10%, transparent)}.state.running button{margin-top:14px}input,select{background:var(--bg);border:1px solid var(--line-2);border-radius:7px;min-width:0;padding:6px 9px}input:focus,select:focus,button:focus-visible{outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);outline-offset:1px}input.num{text-align:right;width:100%}input.num::-webkit-inner-spin-button{opacity:.4}.muted{color:var(--muted)}.small{font-size:12px}.hint{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.bad{color:var(--bad)}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:20px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:8px;display:flex}.brand h1{letter-spacing:.2px;font-size:17px}.logo{color:var(--accent);font-size:20px}.account{color:var(--muted);font-size:13px}.account b{color:var(--text)}.spec-controls{align-items:center;gap:8px;margin-left:auto;display:flex}.save-form{align-items:center;gap:6px;display:flex}.save-form input{width:150px}.layout{grid-template-columns:minmax(380px,520px) 1fr;align-items:start;gap:20px;padding:20px;display:grid}.builder{flex-direction:column;gap:12px;max-height:calc(100vh - 90px);padding-right:4px;display:flex;position:sticky;top:70px;overflow-y:auto}.builder-head{justify-content:space-between;align-items:center;display:flex}.builder-head h2{font-size:15px}.output{min-width:0}@media (width<=960px){.layout{grid-template-columns:minmax(0,1fr);padding:12px}.builder{max-height:none;position:static;overflow:visible}.spec-controls{margin-left:0}}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px}.section-title{margin-bottom:10px;font-size:14px}.card.monster{padding:0}.card.monster.open{border-color:var(--line-2)}.monster-head{align-items:center;display:flex}.expander{text-align:left;background:0 0;border:none;flex-wrap:wrap;flex:1;align-items:center;gap:8px;min-width:0;padding:11px 12px;display:flex}.idx{background:var(--panel-2);width:20px;height:20px;color:var(--muted);border-radius:50%;place-items:center;font-size:11px;font-weight:700;display:inline-grid}.dot{border-radius:50%;flex:none;width:9px;height:9px;display:inline-block}.mname{font-weight:600}.mname.placeholder{color:var(--muted);font-weight:400}.mmeta{color:var(--muted);font-size:12px}.msummary{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;flex-basis:100%;padding-left:28px;font-size:12px;overflow:hidden}.head-actions{gap:2px;padding-right:8px;display:flex}button.icon{color:var(--muted);background:0 0;border:none;padding:4px 7px}button.icon:hover:not(:disabled){color:var(--text)}button.icon.danger:hover{color:var(--bad)}.monster-body{border-top:1px solid var(--line);flex-direction:column;gap:14px;padding:12px 14px 14px;display:flex}.field>label,label.sub{color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:6px;font-size:12px;font-weight:600;display:block}label.sub{margin-top:10px}.field>label .hint{text-transform:none;letter-spacing:0}.chips{flex-wrap:wrap;align-items:center;gap:5px;display:flex}.chips.wrap{margin-top:8px}.chip{color:var(--muted);background:0 0;border-radius:999px;padding:3px 9px;font-size:12px}.chip.on{background:color-mix(in srgb, var(--accent) 18%, transparent);border-color:var(--accent);color:var(--text)}.setpill{--c:var(--muted);border:1px solid color-mix(in srgb, var(--c) 55%, transparent);background:color-mix(in srgb, var(--c) 14%, transparent);border-radius:999px;align-items:center;gap:2px;padding:2px 4px 2px 10px;font-size:12px;display:inline-flex}.setpill span{margin-right:4px}.setpill b{text-align:center;min-width:14px}.setpill button{color:var(--muted);background:0 0;border:none;padding:0 5px}.setpill button:hover:not(:disabled){color:var(--text)}.setpill .x:hover{color:var(--bad)}.add-set{border-style:dashed;padding:3px 6px;font-size:12px}.mains{flex-direction:column;gap:6px;display:flex}.main-row{align-items:baseline;gap:10px;display:flex}.slotno{color:var(--muted);flex:none;width:44px;font-size:12px}.stat-table{border-collapse:collapse;table-layout:fixed;width:100%}.stat-table th,.stat-table td{padding:2px 4px;font-size:13px}.stat-table thead th{color:var(--muted);text-align:right;text-transform:uppercase;font-size:11px;font-weight:600}.stat-table thead th:first-child{text-align:left}.stat-table tbody th{text-align:left;font-weight:600}.stat-table col.c-stat{width:44px}.stat-table col.c-base{width:64px}.stat-table td.base{color:var(--muted);text-align:right}.stat-table input{padding:4px 6px}.stat-table tr.set th{color:var(--accent)}.stat-table tr.derived th,.stat-table tr.derived td{border-top:1px dashed var(--line-2);padding-top:5px}.stat-table tr.derived th{cursor:help}.stat-table .na{text-align:center;color:var(--muted);display:block}.dmg-help{margin:6px 0 8px;display:block}.add-monster{color:var(--muted);background:0 0;border-style:dashed;padding:10px}.add-monster:hover{color:var(--text)}.run-bar{background:linear-gradient(transparent, var(--bg) 35%);align-items:center;gap:12px;padding:10px 0 4px;display:flex;position:sticky;bottom:0}.picker{position:relative}.picker-input{width:100%}.picker-list{z-index:30;background:var(--panel-2);border:1px solid var(--line-2);border-radius:8px;max-height:280px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 10px 30px #00000073}.picker-list li{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;display:flex}.picker-list li.hi{background:var(--line)}.picker-list li.empty{color:var(--muted);cursor:default}.pname{flex:1}.pmeta{color:var(--muted);font-size:12px}.options{flex-direction:column;gap:16px;display:flex}.opt-group{flex-direction:column;gap:8px;display:flex}.opt-group+.opt-group{border-top:1px solid var(--line);padding-top:14px}.opt-group h4{font-size:13px}.inline-fields{flex-wrap:wrap;gap:12px;display:flex}.inline-fields label{color:var(--muted);flex-direction:column;gap:3px;width:120px;font-size:12px;display:flex}.inline-fields input,.inline-fields select{color:var(--text)}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.stat-grid label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.stat-grid label span{width:30px}.stat-grid input{padding:4px 6px}.toggle{cursor:pointer;align-items:center;gap:9px;font-size:13px;display:flex}.toggle input{opacity:0;width:0;height:0;position:absolute}.toggle .track{background:var(--line-2);border-radius:999px;flex:none;width:30px;height:17px;transition:background .15s;position:relative}.toggle .track:after{content:"";background:var(--text);border-radius:50%;width:13px;height:13px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.track{background:var(--accent)}.toggle input:checked+.track:after{background:var(--accent-ink);transform:translate(13px)}.toggle input:focus-visible+.track{outline:2px solid var(--accent);outline-offset:2px}.results{flex-direction:column;gap:14px;display:flex}.state{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:center;padding:40px 28px}.state h3{margin-bottom:8px}.state.empty p{max-width:460px;margin:0 auto}.state.error,.state.fail{text-align:left;border-color:color-mix(in srgb, var(--bad) 50%, var(--line));background:color-mix(in srgb, var(--bad) 7%, var(--panel));padding:18px 20px}.state.fail{border-color:color-mix(in srgb, var(--warn) 50%, var(--line));background:color-mix(in srgb, var(--warn) 6%, var(--panel))}.state.error p{margin:6px 0 0}.diagnosis{margin:8px 0 0;padding-left:20px}.diagnosis li{margin:4px 0}.diagnosis li.sub{color:var(--muted);margin-left:18px}.spinner{border:3px solid var(--line-2);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin:0 auto 14px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.boot{text-align:center;max-width:560px;margin:12vh auto;padding:20px}.boot h1{margin-bottom:16px}.boot-actions{justify-content:center;margin-top:10px;display:flex}.imported-tag{border:1px solid var(--accent);color:var(--accent);border-radius:999px;margin-left:8px;padding:1px 7px;font-size:11px}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tabs button{color:var(--muted);background:0 0;border:none;border-bottom:2px solid #0000;border-radius:0;align-items:center;gap:6px;padding:8px 14px;display:flex}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.warn-dot{background:var(--warn);border-radius:50%;width:6px;height:6px}.summary{flex-wrap:wrap;gap:8px;display:flex}.badge{border:1px solid var(--line-2);color:var(--muted);border-radius:999px;padding:3px 10px;font-size:12px}.badge.good{color:var(--good);border-color:color-mix(in srgb, var(--good) 50%, transparent)}.badge.warn{color:var(--warn);border-color:color-mix(in srgb, var(--warn) 50%, transparent)}.build-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.build-head h3{font-size:16px}.build-head .sets{align-items:center;gap:5px;margin-left:auto;display:flex}.settag{--c:var(--muted);color:color-mix(in srgb, var(--c) 85%, white);background:color-mix(in srgb, var(--c) 18%, transparent);border:1px solid color-mix(in srgb, var(--c) 40%, transparent);border-radius:5px;padding:2px 8px;font-size:11px;font-weight:600}.settag.none{color:var(--muted)}.stats-row{grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;margin-bottom:12px;display:grid}@media (width<=1250px){.stats-row{grid-template-columns:repeat(3,minmax(0,1fr))}}.crtag{background:color-mix(in srgb, var(--accent) 18%, transparent);color:var(--accent);white-space:nowrap;border-radius:4px;margin-left:4px;padding:0 4px;font-size:9px;font-weight:700}.stat{background:var(--panel-2);border:1px solid #0000;border-radius:8px;flex-direction:column;padding:6px 8px;display:flex}.stat.ok{border-color:color-mix(in srgb, var(--good) 45%, transparent)}.stat.miss{border-color:var(--bad)}.stat.max .sname{color:var(--accent)}.sname{color:var(--muted);font-size:11px;font-weight:600}.sval{font-variant-numeric:tabular-nums;font-size:16px;font-weight:600}.sbonus{color:var(--muted);font-size:11px}.stat.ok .sbonus{color:var(--good)}.stat.miss .sbonus{color:var(--bad)}.note{color:var(--warn);margin:0 0 10px;font-size:12px}.runes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}@media (width<=520px){.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{gap:8px 16px;padding:10px 12px}}@media (width<=760px){.runes{grid-template-columns:repeat(2,minmax(0,1fr))}}.rune{--c:var(--muted);overflow-wrap:anywhere;background:var(--panel-2);border:1px solid var(--line);border-top:3px solid var(--c);border-radius:8px;flex-direction:column;gap:2px;min-width:0;padding:8px 10px;font-size:12.5px;display:flex}.rune-top{flex-wrap:wrap;align-items:center;gap:6px;font-size:12px;display:flex}.rslot{background:var(--line);border-radius:4px;place-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:inline-grid}.rset{color:color-mix(in srgb, var(--c) 85%, white);font-weight:600}.rstars{color:var(--muted);margin-left:auto}.rlvl{color:var(--muted);font-variant-numeric:tabular-nums}.rlvl.up{color:var(--warn);font-weight:600}.rmain{margin-top:3px;font-size:14px;font-weight:700}.rmain .now{color:var(--warn);font-size:11px;font-weight:400}.rinnate{color:var(--info);font-size:12px}.rsubs{color:var(--text);opacity:.88;margin:2px 0 0;padding:0;list-style:none}.grind{color:var(--warn);font-size:11px}.gem{color:var(--info);font-size:10px}.rfrom{color:var(--muted);margin-top:auto;padding-top:5px;font-size:11px}.rfrom.moved{color:var(--accent)}.rfrom.inv{color:var(--info)}table.moves,.candidates table{border-collapse:collapse;width:100%;font-size:13px}table.moves th,.candidates th{text-align:left;color:var(--muted);text-transform:uppercase;border-bottom:1px solid var(--line);padding:4px 6px;font-size:11px;font-weight:600}table.moves td,.candidates td{border-bottom:1px solid color-mix(in srgb, var(--line) 60%, transparent);padding:6px}table.moves td:first-child{width:26px}table.moves tr.done td{opacity:.4;text-decoration:line-through}.up-badge{color:var(--warn);border:1px solid color-mix(in srgb, var(--warn) 50%, transparent);border-radius:4px;margin-left:6px;padding:0 4px;font-size:10px}.candidates{color:var(--muted);font-size:13px}.candidates summary{cursor:pointer;padding:4px 0}.candidates td{color:var(--text);font-variant-numeric:tabular-nums}.toast{background:var(--panel-2);border:1px solid var(--line-2);border-left:4px solid var(--good);z-index:50;border-radius:8px;padding:10px 16px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #0006}.toast.err{border-left-color:var(--bad)}.set-violent{--c:#d9534f}.set-swift{--c:#e8c63f}.set-will{--c:#5fb0ff}.set-despair{--c:#a46ae0}.set-rage{--c:#f06a3c}.set-fatal{--c:#ff7a59}.set-blade{--c:#ff9f43}.set-energy{--c:#4cc38a}.set-guard{--c:#7f9cff}.set-focus{--c:#9ad14b}.set-endure{--c:#c2a878}.set-vampire{--c:#c43c6a}.set-nemesis{--c:#8c7bd6}.set-shield{--c:#6fc2c9}.set-revenge{--c:#e05a8a}.set-destroy{--c:#b0603a}.set-fight{--c:#e37a50}.set-determination{--c:#7aa0c4}.set-enhance{--c:#5cc59a}.set-accuracy{--c:#c9d35a}.set-tolerance{--c:#a3b0bf}.set-seal{--c:#b48ad8}.set-intangible{--c:#e6e9f0}button.small{padding:3px 10px;font-size:12px}.turn-bar{border:1px dashed var(--line-2);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:9px 14px;display:flex}.turn-bar.on{border-style:solid;border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.turn-row{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:4px 6px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.turn-row li{align-items:center;gap:5px;display:flex}.turn-row li+li:not(.turn-reset):before{content:"→";color:var(--muted);margin-right:1px}.turn-row .idx{width:16px;height:16px;font-size:10px}.turn-reset{margin-left:6px}.gap-field{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.gap-field input.num{width:56px}.idx.turn{background:var(--accent);color:var(--accent-ink)}.turn-pos{background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}button.linklike{color:var(--accent);font-size:inherit;background:0 0;border:0;padding:0;text-decoration:underline}
