:root{--font-sans:'Inter',-apple-system,sans-serif;--radius:12px;--transition:0.2s ease}
[data-theme="dark"]{--bg:#0F1018;--bg-card:rgba(22,24,42,0.95);--bg-input:rgba(16,185,129,0.05);--border:rgba(16,185,129,0.12);--text:#E8E4F0;--text2:#A0A0C0;--text3:#6060A0;--primary:#10B981;--gradient:linear-gradient(135deg,#10B981,#059669)}
*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background:var(--bg);color:var(--text);min-height:100vh}
.app{max-width:540px;margin:0 auto}.header{padding:14px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}
.header h1{font-size:1rem;font-weight:700;background:var(--gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.btn{font-family:var(--font-sans);font-size:.82rem;font-weight:500;padding:6px 12px;border-radius:6px;border:none;cursor:pointer;transition:all var(--transition)}
.btn-primary{background:var(--gradient);color:#fff}.btn-ghost{background:transparent;color:var(--text2)}.btn-ghost:hover{background:var(--bg-input)}
.btn-sm{font-size:.72rem;padding:4px 8px}
.main{padding:20px;display:flex;flex-direction:column;gap:12px}
.add-row{display:flex;gap:6px}.add-row input{flex:1;min-width:120px;padding:6px;background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:.82rem;outline:none;font-family:var(--font-sans)}
.add-row select{padding:6px;background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;font-size:.78rem;outline:none;font-family:var(--font-sans)}
.cat-group{margin-bottom:8px}.cat-title{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--primary);margin-bottom:4px;letter-spacing:.04em}
.g-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(16,185,129,0.06);font-size:.82rem}
.g-item input[type="checkbox"]{accent-color:var(--primary)}
.g-item.checked span{text-decoration:line-through;opacity:.4}
.g-item .del{background:none;border:none;color:var(--text3);cursor:pointer;font-size:.72rem;margin-left:auto}.del:hover{color:#EF4444}
.summary{text-align:center;font-size:.75rem;color:var(--text3)}
