.ui-btn{border-radius:var(--radius);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.92rem;font-weight:600;transition:background .15s,border-color .15s,color .15s,transform 50ms;display:inline-flex}.ui-btn:active:not(:disabled){transform:translateY(1px)}.ui-btn:disabled{opacity:.45;cursor:not-allowed}.ui-btn--primary{background:var(--accent);color:var(--accent-contrast)}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover)}.ui-btn--secondary{background:var(--surface);border-color:var(--border);color:var(--text)}.ui-btn--secondary:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.ui-btn--ghost{color:var(--text-muted)}.ui-btn--ghost:hover:not(:disabled){color:var(--text);background:var(--surface-hover)}.ui-btn--danger{background:color-mix(in srgb, var(--error) 14%, transparent);color:var(--error);border-color:color-mix(in srgb, var(--error) 40%, transparent)}.ui-btn--danger:hover:not(:disabled){background:color-mix(in srgb, var(--error) 22%, transparent)}.ui-btn--sm{border-radius:var(--radius-sm);padding:6px 12px;font-size:.82rem}.ui-btn--lg{padding:13px 26px;font-size:1rem}.ui-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px}.ui-input,.ui-select,.ui-textarea{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);padding:10px 12px;font-size:.92rem;transition:border-color .15s}.ui-input:focus,.ui-select:focus,.ui-textarea:focus{border-color:var(--accent);outline:none}.ui-textarea{resize:vertical;line-height:1.6}.ui-field{flex-direction:column;gap:6px;display:flex}.ui-field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:600}.ui-field-hint{color:var(--text-muted);font-size:.8rem}.ui-badge{background:var(--accent-soft);color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.75rem;font-weight:600;display:inline-flex}.ui-badge--muted{background:var(--surface-hover);color:var(--text-muted);border-color:var(--border)}.ui-modal-overlay{z-index:100;background:#0000008c;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.ui-modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);width:100%;max-width:560px;max-height:85vh;padding:24px;overflow:auto}.ui-modal-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.ui-modal-title{font-size:1.15rem;font-weight:700}.ui-modal-close{color:var(--text-muted);border-radius:var(--radius-sm);padding:2px 6px;font-size:1.3rem;line-height:1}.ui-modal-close:hover{color:var(--text);background:var(--surface-hover)}.ui-spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.8s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-progress{background:var(--bg-elevated);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.ui-progress-fill{background:var(--accent);border-radius:999px;height:100%;transition:width .4s}.ui-empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:14px;padding:64px 24px;display:flex}.ui-empty-title{color:var(--text);font-size:1.15rem;font-weight:700}.ui-page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.ui-page-title{font-size:1.5rem;font-weight:700}.ui-page-subtitle{color:var(--text-muted);margin-top:2px;font-size:.92rem}.theme-toggle{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);width:36px;height:36px;color:var(--text);justify-content:center;align-items:center;font-size:1rem;display:inline-flex}.theme-toggle:hover{background:var(--surface-hover)}
