:root{--bg:#f6f6f3;--surface:#fff;--surface-2:#f0efea;--border:#e4e3dd;--text:#1c1e24;--muted:#6b6f76;--gold:#c9a24b;--green:#15803d;--amber:#b45309;--red:#b91c1c;--blue:#2563eb;--bg-accent:#f4efe4}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:inherit}button{cursor:pointer}button,input,textarea{font-family:inherit}.shell{display:flex;min-height:100vh}.side{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:16px 12px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:8px;font-weight:600;padding:6px 10px 18px}.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--gold)}.nav{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;color:var(--muted);font-size:14px;border:none;background:none;width:100%;text-align:left}.nav.on,.nav:hover{background:var(--surface-2);color:var(--text)}.nav .badge{margin-left:auto;background:var(--amber);color:#fff;font-size:11px;padding:1px 7px;border-radius:999px}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;padding:14px 24px;border-bottom:1px solid var(--border)}.topbar .who{font-size:13px;color:var(--muted)}.content{padding:22px 24px}.h1{font-size:18px;font-weight:600;margin:0 0 2px}.sub{font-size:13px;color:var(--muted);margin:0 0 18px}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px;margin-bottom:20px}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px}.card .label{font-size:12px;color:var(--muted);margin-bottom:6px}.card .value{font-size:24px;font-weight:600}.bar-row{margin-bottom:10px}.bar-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.bar-top .muted{color:var(--muted)}.bar-bg{height:8px;background:var(--surface-2);border-radius:5px;overflow:hidden}.bar-fill{height:100%;background:var(--blue);border-radius:5px}.panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}.row{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row .grow{flex:1 1;min-width:0}.row .name{font-weight:500;font-size:14px}.row .meta{font-size:12px;color:var(--muted);margin-top:2px}.name-input{width:100%;background:transparent;border:1px solid transparent;border-bottom:1px dashed var(--border);color:var(--text);font-weight:500;font-size:14px;border-radius:0;padding:3px 6px;margin:0 0 2px -6px}.name-input:focus,.name-input:hover{background:var(--surface-2)}.name-input:focus{border:1px solid var(--gold);border-radius:6px;outline:none}.price-input{width:86px;color:var(--text);font-size:14px}.desc-input,.price-input{background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:6px 8px}.desc-input{width:100%;color:var(--muted);font-size:13px;margin-top:4px}.btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:7px;padding:7px 12px;font-size:13px}.btn.save,.btn:hover{border-color:var(--gold)}.btn.save{background:var(--gold);color:#1a1a1a}.btn.ok{color:var(--green)}.btn.no{color:var(--red)}.btn:disabled{opacity:.5;cursor:default}.pill{font-size:11px;padding:2px 9px;border-radius:999px}.pill.green{background:rgba(52,199,123,.15);color:var(--green)}.pill.amber{background:rgba(224,169,58,.15);color:var(--amber)}.pill.blue{background:rgba(74,144,226,.15);color:var(--blue)}.pill.grey{background:var(--surface-2);color:var(--muted)}.cat-head{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:14px 16px 6px}.cat-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--surface-2);border:none;border-top:1px solid var(--border);color:var(--text);padding:12px 16px;font-size:13px;font-weight:500;cursor:pointer}.cat-toggle:hover{background:var(--border)}.cat-toggle .chev{color:var(--muted);margin-right:8px;display:inline-block;width:12px}.cat-toggle .cat-count{color:var(--muted);font-weight:400;font-size:12px}.saved{color:var(--green);font-size:12px}.cat-rename{color:var(--muted);cursor:pointer;font-size:13px;padding:2px 7px;border-radius:6px;border:1px solid var(--border)}.cat-rename:hover{background:var(--border);color:var(--text)}.drag{cursor:-webkit-grab;cursor:grab;color:var(--muted);font-size:15px;padding:0 6px;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1}.drag:hover{color:var(--text)}.drag:active{cursor:-webkit-grabbing;cursor:grabbing}.row.drop-hint{box-shadow:inset 0 2px 0 var(--gold)}.toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--surface-2);border:1px solid var(--border);padding:10px 16px;border-radius:9px;font-size:13px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{width:340px;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:28px}.login-card h1{font-size:18px;margin:0 0 4px}.login-card p{font-size:13px;color:var(--muted);margin:0 0 20px}.login-card label{font-size:12px;color:var(--muted);display:block;margin:12px 0 5px}.login-card input{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:8px;padding:10px 12px;font-size:14px}.login-card .submit{width:100%;margin-top:20px;background:var(--gold);color:#1a1a1a;border:none;border-radius:8px;padding:11px;font-size:14px;font-weight:600}.login-card .err{color:var(--red);font-size:13px;margin-top:12px}.muted-center{text-align:center;color:var(--muted);padding:40px}