.btn{height:var(--btn-h);border-radius:var(--radius-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--motion-fast) var(--ease-standard);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-family:inherit;font-size:13px;font-weight:500;display:inline-flex}.btn:hover{background:var(--hover);border-color:var(--text-tertiary)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.active{background:color-mix(in srgb, var(--primary) 10%, transparent);border-color:var(--primary);color:var(--primary)}.btn.primary{background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn.primary:hover{background:color-mix(in srgb, var(--fg) 85%, var(--bg));border-color:color-mix(in srgb, var(--fg) 85%, var(--bg))}.btn.accent{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:var(--glow-soft)}.btn.accent:hover{background:var(--primary-hover);border-color:var(--primary-hover);box-shadow:var(--glow-md)}.btn.danger{background:var(--expense);color:#fff;border-color:var(--expense)}.btn.danger:hover{filter:brightness(.92)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:var(--hover)}.btn.xs{height:var(--btn-xs-h);padding:0 10px;font-size:12px}.btn.icon{width:var(--btn-h);border-radius:var(--radius);justify-content:center;padding:0}.btn.icon.xs{width:var(--btn-xs-h)}.btn.md{height:var(--btn-md-h);padding:0 14px;font-size:13px}.btn.lg{height:var(--btn-lg-h);padding:0 18px;font-size:14px}.btn.xl{height:var(--btn-xl-h);padding:0 22px;font-size:15px}.btn.danger-outline{color:var(--expense);border-color:var(--expense);background:0 0}.btn.danger-outline:hover{background:color-mix(in srgb, var(--expense) 8%, transparent)}.btn.link{color:var(--accent-light);background:0 0;border-color:#0000;height:auto;padding:0;text-decoration:none}.btn.link:hover{background:0 0;text-decoration:underline}.icon-btn{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;transition:background var(--motion-fast), color var(--motion-fast), border-color var(--motion-fast);justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--hover);color:var(--fg);border-color:var(--line-strong)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.active{color:var(--primary);border-color:var(--primary)}
