.gear-editor{--part-base:#f4f5f8;--part-base-edge:#9aa0b3;--part-sf:#d19a00;--part-scroll:#1c7ed6;--part-flame:#2f9e44;--dot-incomplete:#d49b00;--dot-invalid:#e8590c;--star:#8a6300}@media (prefers-color-scheme:dark){.gear-editor{--part-base:#f1f3f5;--part-base-edge:#f1f3f5;--part-sf:#ffd43b;--part-scroll:#74c0fc;--part-flame:#8ce99a;--dot-incomplete:#f2c14e;--dot-invalid:#ff922b;--star:#ffd43b}}.gear-editor .sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.gear-editor select,.gear-editor textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;max-width:100%;padding:7px 8px}.gear-editor select:focus-visible,.gear-editor .gear-tile:focus-visible,.gear-editor .linklike:focus-visible,.gear-editor .gear-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.gear-editor select:disabled,.gear-editor input:disabled{opacity:.6;cursor:not-allowed}.gear-editor h3{margin:0 0 6px;font-size:.95rem}.gear-layout{grid-template-columns:minmax(0,470px) minmax(0,1fr);align-items:start;gap:20px;margin-top:8px;display:grid}.gear-grid-wrap{position:sticky;top:64px}@media (width<=900px){.gear-layout{grid-template-columns:minmax(0,1fr)}.gear-grid-wrap{position:static}}.gear-grid{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(0,auto);gap:6px;padding:8px;display:grid}.gear-tile,.gear-blank{grid-column:var(--col,auto);grid-row:var(--row,auto);aspect-ratio:1;min-width:0;min-height:0}.gear-tile{font:inherit;color:var(--text);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:8px;place-items:center;padding:0;transition:border-color .12s,box-shadow .12s;display:grid;position:relative}.gear-tile:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border))}.gear-tile.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:color-mix(in srgb, var(--accent-soft) 50%, var(--surface))}.gear-tile.is-empty{background:0 0;border-style:dashed}.gear-blank{border:1px dashed color-mix(in srgb, var(--border) 70%, transparent);opacity:.55;border-radius:8px}.gear-tile-icon{object-fit:contain;image-rendering:auto;width:60%;max-width:44px;height:60%;max-height:44px}.gear-tile-none{display:block}.gear-tile-stars{color:var(--star);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.66rem;font-weight:700;line-height:1.1;position:absolute;top:2px;right:4px}.gear-tile-flame{color:var(--part-flame);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.64rem;font-weight:700;line-height:1.1;position:absolute;bottom:2px;left:4px}.gear-tile .gear-dot{width:8px;height:8px;position:absolute;bottom:4px;right:4px}.gear-card-cell{grid-column:var(--col) / span var(--cols);grid-row:var(--row) / span var(--rows);min-width:0;display:flex}.gear-char-card{text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:4px;min-width:0;padding:8px;display:flex}.gear-char-ign{overflow-wrap:anywhere;font-size:1rem;font-weight:700;line-height:1.2}.gear-char-class{font-size:.85rem}.gear-char-level{color:var(--muted);font-size:.8rem}.gear-char-check{margin-top:4px;font-size:.75rem}.gear-totems{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-top:8px;padding:8px;display:grid}.gear-totems .gear-tile{grid-area:auto}.gear-dot{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;display:inline-block}.dot-ok{background:var(--ok)}.dot-incomplete{background:var(--dot-incomplete)}.dot-invalid{background:var(--dot-invalid)}.dot-error{background:var(--off);box-shadow:0 0 0 2px var(--off-soft)}.dot-empty{border:1.5px solid var(--muted);background:0 0}.gear-tile.is-error{border-color:color-mix(in srgb, var(--off) 55%, var(--border))}.gear-tile.is-invalid{border-color:color-mix(in srgb, var(--dot-invalid) 45%, var(--border))}.gear-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin:8px 2px 0;padding:0;font-size:.78rem;list-style:none;display:flex}.gear-legend li{align-items:center;gap:6px;display:inline-flex}@media (width<=640px){.gear-grid,.gear-totems{gap:4px;padding:5px}.gear-tile-stars,.gear-tile-flame{font-size:.56rem}.gear-tile .gear-dot{width:6px;height:6px;bottom:3px;right:3px}.gear-char-ign{font-size:.9rem}}.gear-badge-ok{background:var(--ok-soft);color:var(--ok)}.gear-badge-incomplete{background:var(--warn-soft);color:inherit}.gear-badge-invalid{background:color-mix(in srgb, var(--dot-invalid) 18%, transparent);color:var(--dot-invalid)}.gear-badge-error{background:var(--off-soft);color:var(--off)}.badge-prime{background:var(--accent-soft);color:var(--accent)}.gear-check-state{align-self:center;font-size:.85rem}.gear-warn-text{color:var(--off)}.gear-detail{min-width:0}.gear-detail-body>*+*{margin-top:14px}.gear-detail-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding-bottom:10px;display:flex}.gear-detail-title{align-items:center;gap:8px;margin:0;font-size:1.1rem;display:inline-flex}.gear-detail-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.gear-inline{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.gear-inline select{padding:5px 8px;font-size:.85rem}.gear-match{margin:4px 0 8px}.gear-fields{flex-wrap:wrap;align-items:flex-end;gap:10px 14px;display:flex}.gear-fields>.field{flex:220px;min-width:0}.gear-fields>.gear-field-sm{flex:0 150px}.gear-fields-col{flex-direction:column;align-items:stretch}.gear-fields-col>.field{flex:none}.gear-align-end{align-self:flex-end}.gear-section{border-top:1px solid var(--border);padding-top:12px}.gear-section .hint{margin-top:0}.gear-picker{position:relative}.gear-picker-list{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:300px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:0;overflow:auto;box-shadow:0 8px 24px #0a0c142e}.gear-picker-opt{cursor:pointer;border-radius:6px;flex-direction:column;padding:6px 10px;display:flex}.gear-picker-opt.is-active{background:var(--surface-2)}.gear-picker-opt.is-picked .gear-picker-name{color:var(--accent)}.gear-picker-name{font-size:.9rem;font-weight:600}.gear-picker-meta{font-size:.78rem}.gear-picker-empty{padding:8px 10px;font-size:.85rem}.gear-num{text-align:right;font-variant-numeric:tabular-nums;width:100%;min-width:52px;padding:6px 8px}.gear-stat-table .gear-num,.gear-flame-grid .gear-num{appearance:textfield}.gear-stat-table .gear-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gear-stat-table .gear-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gear-flame-grid .gear-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.gear-flame-grid .gear-num::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.gear-editor .gear-stat-table th,.gear-editor .gear-stat-table td{vertical-align:middle;padding:5px 6px}.gear-stat-table td.num{min-width:64px}.gear-stat-table thead th{font-size:.7rem}.gear-stat-table .gear-stat-name{white-space:nowrap;font-weight:600}.gear-stat-table .gear-stat-name .hint{white-space:normal;margin:0;font-weight:400}.part-swatch{vertical-align:-1px;border:1px solid var(--border);border-radius:3px;width:10px;height:10px;display:inline-block}th.part-base .part-swatch{background:var(--part-base);border-color:var(--part-base-edge)}th.part-sf .part-swatch{background:var(--part-sf);border-color:var(--part-sf)}th.part-scroll .part-swatch{background:var(--part-scroll);border-color:var(--part-scroll)}th.part-flame .part-swatch{background:var(--part-flame);border-color:var(--part-flame)}td.part-base .gear-num{border-left:3px solid var(--part-base-edge)}td.part-sf .gear-num{border-left:3px solid var(--part-sf)}td.part-scroll .gear-num{border-left:3px solid var(--part-scroll)}td.part-flame .gear-num{border-left:3px solid var(--part-flame)}.gear-total{font-weight:700}.gear-stat-check{white-space:nowrap;text-align:right}.gear-mismatch{color:var(--off);align-items:center;gap:6px;margin-right:6px;font-size:.8rem;font-weight:600;display:inline-flex}.gear-sum-ok{color:var(--ok);margin-right:6px;font-size:.78rem}.row-bad td,.row-bad th{background:color-mix(in srgb, var(--off-soft) 60%, transparent)}.gear-x{all:unset;cursor:pointer;color:var(--muted);border-radius:6px;padding:2px 6px;font-size:1rem;line-height:1}.gear-x:hover{color:var(--off);background:var(--off-soft)}.gear-stats .gear-inline{margin-top:8px}.gear-pot-lines{gap:6px;display:grid}.gear-pot-line{align-items:center;gap:8px;min-width:0;display:flex}.gear-pot-line select,.gear-pot-line input{flex:1;min-width:0}.gear-pot-line.is-bad select{border-color:var(--dot-invalid);background:color-mix(in srgb, var(--dot-invalid) 10%, var(--surface))}.gear-pot-n{text-align:center;width:18px;color:var(--muted);flex:none;font-size:.8rem;font-weight:700}.gear-flame-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px 10px;display:grid}.gear-flame-field>span{font-weight:600;font-size:.8rem!important}.gear-flame-field .gear-num{border-left:3px solid var(--part-flame)}.gear-issues{gap:4px;margin:6px 0 0;padding:0;font-size:.85rem;list-style:none;display:grid}.gear-issue{overflow-wrap:anywhere;border:1px solid #0000;border-radius:6px;padding:6px 10px}.gear-issue.is-error{background:var(--off-soft);color:var(--off)}.gear-issue.is-invalid{background:color-mix(in srgb, var(--dot-invalid) 12%, transparent);color:var(--text);border-color:color-mix(in srgb, var(--dot-invalid) 35%, transparent)}.gear-issue.is-notice{background:var(--info-soft);color:var(--info)}.gear-issue.is-incomplete{background:var(--warn-soft)}.gear-issue-tag{text-transform:uppercase;letter-spacing:.04em;margin-right:4px;font-size:.72rem;font-weight:700}.gear-all-ok{color:var(--ok);margin:12px 0 0;font-size:.9rem}.gear-messages{border-top:1px solid var(--border);padding-top:12px}@media (width<=640px){.gear-stats .table-wrap{overflow:visible}.gear-editor .gear-stat-table,.gear-editor .gear-stat-table tbody{display:block}.gear-editor .gear-stat-table thead{display:none}.gear-editor .gear-stat-table tr{border-bottom:1px solid var(--border);grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 8px;padding:8px 10px;display:grid}.gear-editor .gear-stat-table tbody tr:last-child{border-bottom:none}.gear-editor .gear-stat-table th,.gear-editor .gear-stat-table td{background:0 0;border:0;min-width:0;padding:0;display:block}.gear-editor .gear-stat-table th[scope=row]{grid-column:1/-1}.gear-editor .gear-stat-table td[data-label]:before{content:attr(data-label);color:var(--muted);text-align:left;white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:.7rem;display:block;overflow:hidden}.gear-editor .gear-stat-table td[data-label=Total]{grid-column:span 2}.gear-editor .gear-stat-table td.gear-stat-check{text-align:right;grid-column:span 2;align-self:end;padding-bottom:6px}.gear-editor .gear-stat-table tr.row-bad{background:color-mix(in srgb, var(--off-soft) 60%, transparent)}.gear-detail-actions .btn-sm{padding:5px 8px}.gear-fields>.gear-field-sm{flex:130px}}@media (prefers-reduced-motion:reduce){.gear-tile{transition:none}}.gear-savebar{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px;padding:10px 14px;display:flex;position:sticky;bottom:0;box-shadow:0 -2px 10px #00000014}.gear-save-status{color:var(--muted);flex:160px;min-width:0;font-size:.9rem}@media (width<=640px){.gear-savebar{padding:8px 10px}.gear-save-status{font-size:.8rem}}.gear-detail{scroll-margin-top:120px}.gear-field-err{color:var(--off);font-size:.75rem;display:block}.gear-optional>summary{cursor:pointer;color:var(--muted,#8a93a6);padding:2px 0;font-size:.9em}.gear-optional>summary:hover{color:inherit}.gear-optional[open]>summary{margin-bottom:6px}.cs-root{--cs-gap:16px}.cs-sr{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.cs-layout{gap:var(--cs-gap);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.cs-main>*+*{margin-top:var(--cs-gap)}@media (width>=1040px){.cs-layout{grid-template-columns:minmax(0,1fr) 360px}.cs-side{max-height:calc(100vh - 80px);position:sticky;top:64px;overflow-y:auto}}@media (width<=1039px){.cs-side{order:-1}}.cs-section .hint{max-width:820px}.cs-h3{margin:18px 0 8px;font-size:.95rem}.cs-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));align-items:start;gap:14px 16px;margin-top:10px;display:grid}.cs-field{flex-direction:column;gap:4px;min-width:0;display:flex}.cs-field>label,.cs-label{font-size:.88rem;font-weight:600}.cs-help{color:var(--muted);font-size:.78rem;line-height:1.35}.cs-field-err{color:var(--off);font-size:.78rem;font-weight:600}.cs-input-wrap{align-items:center;gap:4px;width:100%;min-width:0;display:inline-flex}.cs-num{font-variant-numeric:tabular-nums;text-align:right;width:100%;min-width:0;padding:6px 8px}.cs-suffix{color:var(--muted);font-size:.85rem}.cs-cell{flex-direction:column;gap:2px;min-width:0;display:flex}.cs-root select,.cs-text{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;max-width:100%;padding:6px 8px}.cs-root select:focus-visible,.cs-text:focus-visible,.cs-root summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cs-root select.input-bad{border-color:var(--off);background:var(--off-soft)}.cs-where{margin:4px 0 10px;font-size:.85rem}.cs-where summary{cursor:pointer;color:var(--accent);width:fit-content}.cs-where>div{background:var(--surface-2);color:var(--text);border-radius:8px;max-width:820px;margin-top:6px;padding:8px 12px}.cs-stat-table{border:1px solid var(--border);border-radius:8px;gap:0;display:grid;overflow:hidden}.cs-stat-head,.cs-stat-row{grid-template-columns:130px repeat(3,minmax(90px,1fr)) minmax(100px,.9fr) minmax(150px,1.2fr);align-items:center;gap:10px;padding:8px 12px;display:grid}.cs-stat-head{background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:.74rem;font-weight:600}.cs-stat-row+.cs-stat-row{border-top:1px solid var(--border)}.cs-stat-name{flex-direction:column;line-height:1.2;display:flex}.cs-stat-name small{font-size:.72rem}.cs-stat-cell{min-width:0}.cs-total{font-variant-numeric:tabular-nums;flex-direction:column;align-items:flex-end;font-weight:700;display:flex}.cs-total small{font-size:.72rem;font-weight:400}.cs-window{flex-direction:column;gap:2px;display:flex}.cs-ok-mark{color:var(--ok);font-size:.78rem;font-weight:600}.cs-off-mark{color:var(--off);font-size:.82rem;font-weight:700}@media (width<=760px){.cs-stat-head{display:none}.cs-stat-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.cs-stat-name{flex-direction:row;grid-column:1/-1;align-items:baseline;gap:8px}.cs-stat-cell:before{content:attr(data-label);color:var(--muted);margin-bottom:2px;font-size:.72rem;font-weight:600;display:block}.cs-total{align-items:flex-start}}.cs-sub{margin-top:14px}.cs-sub>summary{cursor:pointer;font-size:.92rem;font-weight:600}.cs-list-row{grid-template-columns:minmax(0,2fr) minmax(90px,1fr) auto;align-items:center;gap:8px;margin:6px 0;display:grid}.cs-cond-row{grid-template-columns:minmax(0,2fr) minmax(120px,1fr) minmax(90px,1fr) auto}.cs-list-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:8px;font-size:.85rem;display:flex}.cs-cond-group{border:1px solid var(--border);border-radius:8px;min-width:0;margin:12px 0 0;padding:10px 14px 12px}.cs-cond-group legend{padding:0 6px;font-weight:700}.cs-cond-group .hint{margin:0 0 6px}.cs-empty{margin:4px 0;font-size:.85rem}@media (width<=640px){.cs-list-row,.cs-cond-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cs-list-row>.cs-text{grid-column:1/-1}}.cs-hyper-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px 18px;display:grid}.cs-hyper-row{border-bottom:1px dashed var(--border);justify-content:space-between;align-items:center;gap:10px;padding:4px 0;display:flex}.cs-hyper-label{flex-direction:column;font-size:.88rem;line-height:1.2;display:flex}.cs-hyper-label small{font-size:.72rem}.cs-hyper-row:not(.cs-valued) label{color:var(--muted)}.cs-valued label{font-weight:600}.cs-dot{background:var(--accent);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.cs-pill-off{background:var(--off-soft);color:var(--off)}.cs-advanced>summary{cursor:pointer;list-style:revert}.cs-advanced>summary h2{font-size:1rem;display:inline}.cs-check .card-head{margin-bottom:4px}.cs-checking{font-size:.8rem}.cs-headline{border-radius:8px;margin:0 0 10px;padding:8px 12px;font-weight:700}.cs-head-ok{background:var(--ok-soft);color:var(--ok)}.cs-head-off{background:var(--off-soft);color:var(--off);border:2px solid var(--off);font-size:1.05rem}.cs-head-err{background:var(--off-soft);color:var(--off)}.cs-head-muted{background:var(--surface-2);color:var(--muted);font-weight:600}.cs-lines{gap:8px;margin:0;padding:0;list-style:none;display:grid}.cs-line{border:1px solid var(--border);border-radius:8px;padding:8px 10px}.cs-line-ok{border-color:color-mix(in srgb, var(--ok) 40%, var(--border))}.cs-line-off{border:2px solid var(--off);background:color-mix(in srgb, var(--off-soft) 60%, transparent)}.cs-line-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.cs-line-name{font-weight:700}.cs-line-nums{grid-template-columns:max-content 1fr;gap:0 12px;margin:4px 0 0;font-size:.85rem;display:grid}.cs-line-nums dt{color:var(--muted)}.cs-line-nums dd{text-align:right;font-variant-numeric:tabular-nums;margin:0}.cs-off{padding:3px 10px;font-size:.85rem}.cs-match{font-size:.74rem}.cs-diff{color:var(--off);font-size:.78rem;font-weight:600}.cs-totals{margin-top:10px}.cs-tips{margin-top:10px;font-size:.85rem}.cs-tips ul{margin:4px 0 0;padding-left:18px}.cs-savebar{z-index:5;margin-top:var(--cs-gap);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:10px 14px;position:sticky;bottom:0;box-shadow:0 -2px 10px #00000014}.cs-savebar-inner{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.cs-save-status{color:var(--muted);flex:160px;min-width:0;font-size:.9rem}.cs-bar-check{border-radius:999px;flex:0 auto;padding:3px 10px;font-size:.82rem;font-weight:700}.cs-bar-check.cs-head-off{border-width:1px;font-size:.82rem}@media (width>=1040px){.cs-bar-check{display:none}}@media (width<=640px){.cs-savebar{padding:8px 10px}.cs-savebar .btn{padding:7px 12px}.cs-bar-check{text-align:center;flex-basis:100%}.cs-save-status{flex:1 1 0;font-size:.8rem}}.cs-buffed-check{flex-direction:column;align-items:flex-start;gap:3px;display:flex}.cs-save-err{margin-bottom:0}:root{--bg:#f6f7fb;--surface:#fff;--surface-2:#f0f2f8;--border:#e1e4ee;--text:#1b1e2b;--muted:#646a80;--accent:#6d4aff;--accent-contrast:#fff;--accent-soft:#ece7ff;--ok:#107a45;--ok-soft:#dcf5e7;--off:#b3261e;--off-soft:#fde4e1;--warn-soft:#fff4d6;--info-soft:#e5efff;--info:#1f4fa8;--discord:#5865f2;--radius:10px;--shadow:0 1px 2px #1418280f, 0 2px 8px #1418280a;--mono:ui-monospace, "SF Mono", "Cascadia Mono", Consolas, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0f1118;--surface:#171a24;--surface-2:#1f2331;--border:#2b3042;--text:#e7e9f2;--muted:#9aa0b8;--accent:#9b83ff;--accent-contrast:#12101c;--accent-soft:#2a2445;--ok:#5ad196;--ok-soft:#133526;--off:#ff8a80;--off-soft:#3d1a19;--warn-soft:#3a3016;--info-soft:#1a2640;--info:#9dbcff;--shadow:0 1px 2px #0006;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{letter-spacing:-.01em;margin:0 0 .25rem;font-size:1.6rem}h2{margin:0;font-size:1.1rem}.muted{color:var(--muted)}.hint{color:var(--muted);margin:.25rem 0 .75rem;font-size:.85rem}.mono{font-family:var(--mono);font-size:.9em}.strong{font-weight:600}.app{flex-direction:column;min-height:100vh;display:flex}.container{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:24px 16px 48px}.footer{text-align:center;border-top:1px solid var(--border);padding:16px;font-size:.8rem}.stack>*+*{margin-top:16px}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:10;position:sticky;top:0}.topbar-inner{flex-wrap:wrap;align-items:center;gap:20px;max-width:1200px;margin:0 auto;padding:10px 16px;display:flex}.brand{color:var(--text);align-items:center;gap:8px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-mark{width:28px;height:28px;display:block}.nav{gap:4px;display:flex}.nav a{color:var(--muted);border-radius:8px;padding:6px 10px}.nav a:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav a.active{color:var(--text);background:var(--surface-2);font-weight:600}.spacer{flex:1}.userbox{align-items:center;gap:8px;display:flex}.avatar{border-radius:50%;width:28px;height:28px}.avatar-fallback{background:var(--accent-soft);color:var(--accent);place-items:center;font-size:13px;font-weight:700;display:inline-grid}.username{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-weight:500;overflow:hidden}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.card-head h2{align-items:center;gap:10px;display:flex}.card-actions{flex-wrap:wrap;gap:8px;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.page-head p{max-width:720px;margin:0}.btn{font:inherit;cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:8px 14px;font-weight:600;line-height:1.2;display:inline-flex}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:hover:not(:disabled){filter:brightness(1.05);text-decoration:none}.btn:focus-visible,.chip:focus-visible,.th-btn:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);color:var(--accent-contrast)}.btn-secondary{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-ghost{color:var(--text);border-color:var(--border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger-ghost{color:var(--off);border-color:var(--border);background:0 0}.btn-danger-ghost:hover:not(:disabled){background:var(--off-soft)}.btn-discord{background:var(--discord);color:#fff;padding:11px 16px}.btn-sm{padding:5px 10px;font-size:.85rem}.btn-block{width:100%}.field{flex-direction:column;gap:4px;display:flex}.field>span{font-size:.9rem;font-weight:600}input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;padding:8px 10px}input[type=file]{background:var(--surface-2);padding:6px}.input-bad{border-color:var(--off);background:var(--off-soft)}.form-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:start;gap:16px;display:grid}.form-actions{grid-column:1/-1}.alert{border:1px solid #0000;border-radius:8px;margin:10px 0;padding:10px 14px}.alert strong{margin-bottom:2px;display:block}.alert-error{background:var(--off-soft);color:var(--off);border-color:color-mix(in srgb, var(--off) 25%, transparent)}.alert-info{background:var(--info-soft);color:var(--info);border-color:color-mix(in srgb, var(--info) 25%, transparent)}.details{margin:6px 0 0;padding-left:20px;font-size:.85rem}.badge{letter-spacing:.04em;vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-block}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-off{background:var(--off-soft);color:var(--off)}.badge-muted{background:var(--surface-2);color:var(--muted)}.badge-edit{background:var(--warn-soft);color:inherit;letter-spacing:0;margin-left:8px;font-weight:600}.pill{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:2px 10px;font-size:.85rem;font-weight:600;display:inline-block}.login{place-items:center;min-height:60vh;display:grid}.login-logo{width:72px;height:72px;display:block}.login-card{width:100%;max-width:420px;padding:28px}.login-card>*+*{margin-top:14px}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:10px;margin:18px 0 10px;font-size:.8rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.dev-login>*+*{margin-top:10px}.char-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.char-card{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.char-link{color:var(--text);flex:1;min-width:0}.char-link:hover{text-decoration:none}.char-link:hover .char-ign{color:var(--accent)}.char-ign{overflow-wrap:anywhere;font-size:1.1rem;font-weight:700}.char-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.char-title{overflow-wrap:anywhere}.char-sub{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.back{font-size:.9rem;display:inline-block}.table-wrap{-webkit-overflow-scrolling:touch;border:1px solid var(--border);border-radius:8px;overflow-x:auto}.table{border-collapse:collapse;width:100%;font-size:.9rem}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px 10px}.table thead th{background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;color:var(--muted);white-space:nowrap;font-size:.78rem;position:sticky;top:0}.table tbody tr:last-child td{border-bottom:none}.table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table-compact td,.table-compact th{padding:6px 10px}.optimizer .table tbody tr{cursor:pointer}.optimizer .table tbody tr:hover td{background:var(--surface-2)}.row-grey td{color:var(--muted);opacity:.65}.row-open td{background:var(--accent-soft)}.row-detail td{background:var(--surface-2);cursor:default;font-size:.85rem}.row-detail p{margin:0 0 6px}.row-edited td{background:color-mix(in srgb, var(--warn-soft) 55%, transparent)}.action{min-width:220px}.th-btn{all:unset;cursor:pointer;align-items:center;gap:4px;display:inline-flex}.sort-ind{width:10px;font-size:.7rem}.type-tag{background:var(--surface-2);text-transform:capitalize;border-radius:6px;padding:1px 8px;font-size:.75rem;font-weight:600;display:inline-block}.type-starforce{color:#7a5a00;background:#fff1c2}.type-cube{color:#4b2fb8;background:#e4dcff}.type-flame{color:#9a3a0b;background:#ffe0d1}.type-scroll{color:#0d5b8c;background:#d8f0ff}.type-hyper{color:#5a2d91;background:#efe3ff}@media (prefers-color-scheme:dark){.type-starforce{color:#ffd966;background:#3a3012}.type-cube{color:#c5b6ff;background:#2c2350}.type-flame{color:#ffb28c;background:#3f2317}.type-scroll{color:#8fd0ff;background:#13304a}.type-hyper{color:#d3b8ff;background:#2e1f47}}.chips{flex-wrap:wrap;gap:8px;margin:6px 0 12px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;text-transform:capitalize;border-radius:999px;padding:4px 12px;font-size:.85rem}.chip-on{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.chip-count{opacity:.7;margin-left:2px;font-size:.78rem}.price-cell{align-items:center;gap:10px;display:flex}.price-input{font-variant-numeric:tabular-nums;width:160px}.unit{white-space:nowrap;font-size:.85rem}.raw{margin-top:12px}.raw summary{cursor:pointer;color:var(--muted);font-size:.85rem}.raw pre{background:var(--surface-2);border-radius:8px;max-height:420px;padding:12px;font-size:.78rem;overflow:auto}.spinner-wrap{color:var(--muted);align-items:center;gap:8px;display:inline-flex}.spinner{border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation:none}}@media (width<=640px){.container{padding:16px 16px 40px}h1{font-size:1.35rem}.username{display:none}.card{padding:14px}.price-input{width:120px}.price-cell{flex-direction:column;align-items:flex-start;gap:2px}}.opt-settings{flex-wrap:wrap;align-items:flex-end;gap:12px 20px;margin:4px 0 10px;display:flex}.field-inline select,.edit-data input,.json-editor{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:6px 8px}.check{align-items:center;gap:6px;padding-bottom:6px;font-size:.9rem;display:inline-flex}.row-actions{justify-content:flex-end;gap:6px;display:inline-flex}.row-loses td{background:color-mix(in srgb, var(--off-soft) 45%, transparent)}.neg{color:var(--off)}.badge-inline{letter-spacing:0;margin-left:8px}.facts{grid-template-columns:max-content 1fr;gap:2px 12px;margin:6px 0;display:grid}.facts dt{color:var(--muted)}.facts dd{overflow-wrap:anywhere;margin:0}.detail-table{margin:6px 0}.json-editor{resize:vertical;box-sizing:border-box;width:100%;min-height:360px;font-size:.78rem;line-height:1.35}.linklike{all:unset;color:var(--accent);cursor:pointer}.linklike:hover{text-decoration:underline}.tabs{border-bottom:1px solid var(--border);scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.tab{color:var(--muted);white-space:nowrap;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 14px;font-weight:600;position:relative}.tab:hover{color:var(--text);text-decoration:none}.tab-on{color:var(--accent);border-bottom-color:var(--accent)}.tab-dot{background:var(--off);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.steps{color:var(--muted);flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;font-size:.9rem;list-style:none;display:flex}.steps li{align-items:center;gap:6px;display:inline-flex}.step-n{border:1px solid var(--border);border-radius:50%;place-items:center;width:22px;height:22px;font-size:.78rem;font-weight:700;display:inline-grid}.step-on{color:var(--text);font-weight:600}.step-on .step-n{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast)}.step-done .step-n{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.rename{flex-wrap:wrap;align-items:center;gap:6px;display:inline-flex}.rename input{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;width:12rem;max-width:100%;padding:5px 8px}.opt-keep{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px;font-size:.9rem;display:flex}.opt-keep-label{color:var(--muted)}.opt-keep select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:999px;max-width:100%;padding:3px 10px;font-size:.85rem}.opt-kept{text-transform:none;cursor:default;overflow-wrap:anywhere;align-items:center;gap:4px;max-width:100%;display:inline-flex}.chip-x{all:unset;cursor:pointer;padding:0 2px;font-weight:700;line-height:1}.chip-x:focus-visible{outline:2px solid var(--accent-contrast);border-radius:4px}.opt-save-state{padding-bottom:6px;font-size:.82rem}.opt-mvp-src{flex-basis:100%;margin:0}.opt-price-note ul{margin:4px 0}.row-plan{max-width:min(960px,100vw - 76px);position:sticky;left:10px}.row-plan details summary{cursor:pointer}.opt-side+.opt-side{margin-top:18px}.opt-side h3{margin:0 0 4px;font-size:1rem}.opt-group{margin-top:8px}.opt-reason{margin:0 0 6px;font-size:.9rem}.side-table tbody tr{cursor:pointer}.side-table tbody tr:hover td{background:var(--surface-2)}.opt-table td.action{min-width:200px}@media (width<=640px){.tab{padding:8px 10px}.action,.opt-table td.action{min-width:160px}.facts{grid-template-columns:1fr}.facts dt{margin-top:4px}}.opt-needs{margin-top:2px}.field-select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;min-height:40px;padding:8px 10px}.field-err{color:var(--off);font-size:.85rem}:root{--accent-text:#5a37e6}@media (prefers-color-scheme:dark){:root{--accent-text:var(--accent)}}.pill,.avatar-fallback,.badge-prime{color:var(--accent-text)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.icon{object-fit:contain;vertical-align:middle;flex:none;display:inline-block}.icon-missing{opacity:.8}.price-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.price-row{border-radius:8px;grid-template-columns:minmax(40px,auto) minmax(0,1fr) auto 64px;align-items:center;gap:6px 12px;padding:6px 8px;display:grid}.price-row.row-edited{background:color-mix(in srgb, var(--warn-soft) 55%, transparent)}.price-icons{flex-wrap:wrap;align-items:center;gap:2px;min-width:32px;display:inline-flex}.price-tag{margin-left:4px;font-size:.85rem;font-weight:700}.price-name{overflow-wrap:anywhere;font-weight:600}.price-reset{justify-content:flex-end;display:flex}.price-save-state{align-self:center;min-width:4em;font-size:.85rem}@media (width<=640px){.price-row{grid-template-columns:auto minmax(0,1fr) auto}.price-row .price-icons{grid-row:span 2}.price-row .price-input{grid-column:2;width:100%}.price-row .price-reset{grid-area:1/3/span 2}}.opt-table tbody tr.opt-row{cursor:pointer}.opt-table tbody tr.opt-row:hover td{background:var(--surface-2)}.opt-table tbody tr.opt-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.opt-table tbody tr.opt-row.row-open td{background:var(--accent-soft)}.opt-arrow-col{width:28px;padding-right:0!important}.disclosure{all:unset;cursor:pointer;width:22px;height:22px;color:var(--muted);border-radius:6px;place-items:center;font-size:.85rem;display:inline-grid}.disclosure:hover{background:var(--surface-2);color:var(--text)}.opt-icon-col{width:44px}.opt-item-icon{display:block}.opt-upgrade{align-items:center;gap:8px;display:inline-flex}.opt-upgrade>span{overflow-wrap:anywhere}.opt-record-col{white-space:nowrap;text-align:right}.opt-record{font-weight:600}.opt-row-hint{margin:0 0 6px}.optimizer .table tbody tr.row-detail{cursor:default}.optimizer .table tbody tr.row-detail:hover td{background:var(--surface-2)}.opt-notes{color:var(--info)}.opt-notes ul{margin:0}.rec-backdrop{z-index:50;background:#0a0c1473;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.rec-dialog{width:100%;max-width:560px;max-height:calc(100vh - 32px);overflow-y:auto}.rec-item{align-items:center;gap:10px;margin:4px 0 10px;display:flex}.rec-upgrade{font-size:.85rem}.rec-form{margin:8px 0}.rec-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px 12px;display:grid}.rec-field>span{font-size:.85rem}.rec-field .gear-num{text-align:right;font-variant-numeric:tabular-nums;width:100%}.rec-quick{flex-wrap:wrap;gap:8px;margin:6px 0 10px;display:flex}.rec-score{margin:10px 0 0}.rec-hyper-changes{font-variant-numeric:tabular-nums;gap:4px;margin:6px 0 10px;padding:0;list-style:none;display:grid}.rec-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-top:8px;display:flex}.rec-problem{flex:200px;font-size:.85rem}.rec-dialog .gear-section{border-top:0;padding-top:0}.rec-dialog select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:0;max-width:100%;padding:7px 8px}.rec-dialog .gear-pot-lines{gap:6px;display:grid}.rec-dialog .gear-pot-line{align-items:center;gap:8px;display:flex}.rec-dialog .gear-pot-line select{flex:1}.rec-dialog .gear-pot-n{text-align:center;width:18px;color:var(--muted);font-size:.8rem;font-weight:700}.rec-dialog .gear-issues{color:var(--off);margin:6px 0 0;padding:0;font-size:.85rem;list-style:none}.rec-dialog .gear-field-err{color:var(--off);font-size:.75rem;display:block}.rec-list{gap:4px;margin:0;padding:0;list-style:none;display:grid}.rec-entry{background:var(--surface-2);border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:6px 8px;font-size:.9rem;display:flex}.rec-desc{overflow-wrap:anywhere;flex:200px;min-width:0}.rec-when{font-size:.8rem}.rec-undone{opacity:.6}.rec-undone .rec-desc{text-decoration:line-through}
