:root{--bg: #f6f1e7;--panel: #fffdf8;--ink: #2b2330;--muted: #6c6270;--line: #e2d8c6;--accent: #7b3f61;--accent-ink: #fff;--teal: #2c6e6a;--void: #3a2e4d;--danger: #a23b3b;--radius: 10px;--shadow: 0 1px 3px rgba(43, 35, 48, .08), 0 6px 20px rgba(43, 35, 48, .06);--font: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}@media(prefers-color-scheme:dark){:root{--bg: #1c1822;--panel: #262030;--ink: #efe8f0;--muted: #a99fb0;--line: #3a3348;--accent: #c98bb0;--accent-ink: #1c1822;--teal: #6fc3bd;--void: #b9a8dc}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);line-height:1.45}a{color:var(--accent)}h1,h2,h3{font-family:var(--font);line-height:1.15}h1{font-size:1.9rem;margin:0 0 .25rem}small,.muted{color:var(--muted)}.app{max-width:980px;margin:0 auto;padding:1.25rem 1rem 4rem}.topbar{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1rem;border-bottom:1px solid var(--line);padding-bottom:.75rem}.brand{font-weight:700;letter-spacing:.3px}.brand .sub{color:var(--muted);font-family:var(--sans);font-size:.8rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:1rem 1.1rem;margin-bottom:1rem}.panel>h2:first-child,.panel>h3:first-child{margin-top:0}.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.grid{display:grid;gap:.75rem}.grid.two{grid-template-columns:1fr 1fr}.grid.cols{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}@media(max-width:620px){.grid.two{grid-template-columns:1fr}}label{font-family:var(--sans);font-size:.82rem;color:var(--muted);display:block;margin-bottom:.2rem}input[type=text],input[type=number],input[type=date],textarea,select{width:100%;font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.5rem .6rem}textarea{min-height:4rem;resize:vertical;font-family:var(--sans);font-size:.9rem}input:focus,textarea:focus,select:focus{outline:2px solid var(--accent);outline-offset:1px}button{font-family:var(--sans);font-size:.88rem;cursor:pointer;background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:.5rem .85rem}button.ghost{background:transparent;color:var(--accent);border:1px solid var(--line)}button.small{padding:.3rem .55rem;font-size:.8rem}button.danger{background:transparent;color:var(--danger);border:1px solid var(--line)}button:disabled{opacity:.5;cursor:default}.pill{font-family:var(--sans);font-size:.75rem;padding:.15rem .5rem;border-radius:999px;background:var(--bg);border:1px solid var(--line);color:var(--muted)}.tracklist{list-style:none;margin:.25rem 0 0;padding:0;display:grid;gap:.3rem}.tracklist li{display:flex;gap:.55rem;align-items:flex-start;font-family:var(--sans);font-size:.88rem}.tracklist input[type=checkbox]{margin-top:.2rem;width:1.05rem;height:1.05rem;accent-color:var(--accent);flex:none}.boxrow{display:flex;gap:.4rem}.boxrow input[type=checkbox]{width:1.3rem;height:1.3rem;accent-color:var(--accent)}.ability{text-align:center;background:var(--bg);border:1px solid var(--line);border-radius:8px;padding:.5rem}.ability .name{font-family:var(--sans);font-size:.72rem;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}.ability .val{font-size:1.5rem;font-weight:700}.ability .step{display:flex;gap:.3rem;justify-content:center}.ability .step button{background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:.1rem .5rem}.itemrow{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;align-items:center}.listcard{border:1px solid var(--line);border-radius:8px;padding:.6rem .7rem;background:var(--bg)}.linkbox{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all;background:var(--bg);border:1px dashed var(--line);border-radius:8px;padding:.5rem}.void{color:var(--void)}.teal{color:var(--teal)}.saved{color:var(--teal);font-family:var(--sans);font-size:.82rem}.err{color:var(--danger);font-family:var(--sans);font-size:.85rem}.spacer{flex:1}.center{text-align:center}.stack>*+*{margin-top:.6rem}hr.soft{border:0;border-top:1px solid var(--line);margin:1rem 0}
