html{-webkit-text-size-adjust:100%}body{-webkit-font-smoothing:antialiased}:root{--bg:#0f1410;--bg-elev:#182018;--panel:#1c261c;--panel-border:#2e3d2e;--ink:#e8efe4;--muted:#9aab97;--accent:#c4a35a;--accent-soft:#8f7340;--combat:#e08a7a;--life:#6fbf8a;--charm:#d4a574;--danger:#c97b6a;--radius:14px;--font-display:"Segoe UI", "Hiragino Sans", "Yu Gothic UI", sans-serif;--font-body:"Segoe UI", "Hiragino Sans", "Yu Gothic UI", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(ellipse 80% 50% at 10% -10%, #243324 0%, transparent 55%), radial-gradient(ellipse 60% 40% at 100% 0%, #2a2218 0%, transparent 50%), var(--bg);line-height:1.5}button,input,select,textarea{font:inherit}a{color:var(--accent)}.app{max-width:1200px;margin:0 auto;padding:1.25rem 1rem 3rem}.boot{text-align:center;color:var(--muted);padding:3rem}.topbar{justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem;display:flex}.brand-kicker{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.72rem}.topbar h1{font-family:var(--font-display);margin:.2rem 0 .4rem;font-size:clamp(1.4rem,3vw,2rem);font-weight:700}.lede{color:var(--muted);max-width:36rem;margin:0}.badge-unofficial{border:1px solid var(--accent-soft);color:var(--accent);white-space:nowrap;border-radius:999px;flex-shrink:0;padding:.4rem .85rem;font-size:.78rem}.toolbar.sticky{z-index:20;background:color-mix(in srgb, var(--bg-elev) 92%, transparent);border:1px solid var(--panel-border);border-radius:var(--radius);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem;display:flex;position:sticky;top:0}.tabs{flex-wrap:wrap;gap:.35rem;display:flex}.tab,.slot-tab,.btn{border:1px solid var(--panel-border);background:var(--panel);color:var(--ink);cursor:pointer;border-radius:999px;padding:.45rem .9rem;transition:border-color .15s,background .15s}.tab:hover,.slot-tab:hover,.btn:hover{border-color:var(--accent-soft)}.tab.active,.slot-tab.active{background:color-mix(in srgb, var(--accent) 22%, var(--panel));border-color:var(--accent);color:#fff8e8}.actions{flex-wrap:wrap;gap:.4rem;margin-left:auto;display:flex}.btn.primary{color:#1a1408;background:linear-gradient(#d4b574,#a8843f);border-color:#c4a35a;font-weight:700}.btn.secondary{background:#243024}.btn.ghost{background:0 0}.toast{width:100%;color:var(--accent);margin:0;font-size:.9rem}.layout{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:start;gap:1rem;display:grid}.panel{background:var(--panel);border:1px solid var(--panel-border);border-radius:var(--radius);padding:1rem 1.1rem 1.25rem}.panel h2{margin:0 0 .35rem;font-size:1.15rem}.hint{color:var(--muted);margin:0 0 1rem;font-size:.9rem}.subhead{color:var(--accent);margin:1.1rem 0 .55rem;font-size:.95rem}.grid-2,.grid-3{gap:.75rem;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.block-label{width:100%;margin-top:.5rem}input,select,textarea{border:1px solid var(--panel-border);width:100%;color:var(--ink);background:#121812;border-radius:10px;padding:.55rem .7rem}input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb, var(--accent) 55%, transparent);outline-offset:1px}.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;display:grid}.skill-row{border:1px solid var(--panel-border);background:#141c14;border-radius:10px;flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .55rem}.skill-row span{color:var(--ink);font-size:.85rem}.skill-row input{text-align:right;width:4.5rem}.slot-tabs{flex-wrap:wrap;gap:.35rem;margin-bottom:.9rem;display:flex}.slot-tab{padding:.35rem .7rem;font-size:.82rem}.dynamic-list{flex-direction:column;gap:.45rem;display:flex}.dynamic-row{grid-template-columns:1fr 1fr auto;align-items:center;gap:.4rem;display:grid}.dynamic-row.wide{grid-template-columns:auto 1fr auto}.gem-index{color:var(--muted);font-size:.8rem}.preview{position:sticky;top:5.5rem}.preview-head{margin-bottom:.6rem}.preview-head h2{margin:0;font-size:1.05rem}.preview-head p{color:var(--muted);margin:.2rem 0 0;font-size:.85rem}.card-shell{border-radius:18px;overflow:hidden}.status-card{background:linear-gradient(160deg,#c4a35a1f,#0000 40%),linear-gradient(#243024,#1f2a1f 45%,#161c16);border:1px solid #3d4f3a;border-radius:18px;min-width:320px;padding:1.15rem 1.1rem .9rem;box-shadow:0 18px 40px #00000059}.card-kicker{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.7rem}.card-name{margin:.25rem 0 .15rem;font-size:1.55rem;line-height:1.2}.card-meta{color:var(--muted);margin:0;font-size:.88rem}.score-row{grid-template-columns:repeat(3,1fr);gap:.45rem;margin:1rem 0 .55rem;display:grid}.score{text-align:center;background:#00000038;border:1px solid #ffffff0f;border-radius:12px;padding:.55rem .45rem}.score span{color:var(--muted);font-size:.72rem;display:block}.score strong{margin-top:.15rem;font-size:1.05rem;display:block}.score.combat strong{color:#e08a7a}.score.life strong{color:#7fd39a}.score.charm strong{color:#e0b48a}.total-score{text-align:center;color:var(--muted);margin:0 0 .8rem;font-size:.85rem}.total-score strong{color:var(--accent)}.card-section{border-top:1px solid #c4a35a38;margin-top:.85rem;padding-top:.75rem}.card-section h3{color:var(--accent);margin:0 0 .45rem;font-size:.9rem}.empty-line,.note-line{color:var(--muted);margin:0;font-size:.85rem}.skill-chips{flex-wrap:wrap;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.skill-chips li{background:#00000040;border-radius:999px;align-items:baseline;gap:.35rem;padding:.2rem .55rem;font-size:.78rem;display:inline-flex}.skill-chips em{color:var(--accent);font-style:normal}.equip-list{flex-direction:column;gap:.55rem;display:flex}.equip-item{background:#0003;border:1px solid #ffffff0d;border-radius:12px;padding:.55rem .65rem}.equip-item-head{justify-content:space-between;align-items:center;margin-bottom:.15rem;display:flex}.equip-item-head strong{font-size:.82rem}.seal-badge{color:#1a1408;background:var(--accent);border-radius:999px;padding:.1rem .45rem;font-size:.72rem}.equip-title,.equip-stats,.equip-rune,.equip-gems,.equip-seal,.equip-enchant,.equip-notes{color:#d5dfd1;margin:.15rem 0 0;font-size:.78rem}.equip-rune,.equip-gems,.equip-seal,.equip-enchant,.equip-notes{color:var(--muted)}.card-footer{color:var(--muted);border-top:1px solid #c4a35a38;justify-content:space-between;gap:.5rem;margin-top:.9rem;padding-top:.65rem;font-size:.68rem;display:flex}.site-footer{border-top:1px solid var(--panel-border);color:var(--muted);margin-top:2rem;padding-top:1rem;font-size:.82rem}.site-footer p{margin:.35rem 0}@media (width<=900px){.layout{grid-template-columns:1fr}.preview{order:-1;position:static}.grid-2,.grid-3,.skill-grid{grid-template-columns:1fr}.topbar{flex-direction:column}.actions{margin-left:0}.dynamic-row,.dynamic-row.wide{grid-template-columns:1fr}}
