.btn { min-height:3rem; padding:.875rem 1rem; border-radius:var(--radius-md); border:1px solid var(--border-subtle); background:#fff; color:var(--text-strong); font-weight:700; cursor:pointer; } .btn-primary { background:var(--primary); color:var(--primary-contrast); border-color:transparent; } .btn-secondary { background:var(--surface-card); } .btn-ghost { background:var(--surface-card); } .btn-small { min-height:2.5rem; padding:.65rem .9rem; } .btn-block { width:100%; } .badge { display:inline-flex; align-items:center; min-height:2rem; padding:.35rem .8rem; border-radius:var(--radius-full); font-size:var(--text-sm); font-weight:700; } .badge-success { background:var(--surface-green); color:var(--success); } .badge-neutral { background:var(--surface-muted); color:var(--text-muted); } .badge-queued { background:color-mix(in srgb, var(--queue) 16%, white); color:var(--queue); } .badge-uploading { background:color-mix(in srgb, var(--primary) 14%, white); color:var(--primary); } .badge-failed { background:color-mix(in srgb, var(--error) 14%, white); color:var(--error); } .badge-complete { background:color-mix(in srgb, var(--success) 14%, white); color:var(--success); } .screen-card,.panel { background:var(--surface-card); border:1px solid var(--border-subtle); border-radius:var(--radius-xl); box-shadow:var(--shadow-sm); } .screen-card { padding:var(--space-6); } .panel { padding:var(--space-5); } .form-field { display:grid; gap:var(--space-3); } .form-field-spaced { padding-bottom:var(--space-3); } .form-field label { font-weight:700; } .form-field input { min-height:3.4rem; padding:1rem; border-radius:var(--radius-lg); border:1px solid var(--border-subtle); background:var(--surface-card); } .field-help,.queue-subtext,.metric-meta,.activity-meta,.file-row-meta { color:var(--text-muted); line-height:1.6; } .inline-message { padding:var(--space-4); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); } .inline-message-neutral { background:var(--surface-blue); } .inline-message-success { background:var(--surface-green); } .inline-message-warning { background:var(--surface-peach); } .file-row { display:grid; grid-template-columns:minmax(0,1fr); gap:var(--space-4); padding:var(--space-4); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); background:var(--surface-card); } .file-row.is-failed { background:var(--surface-rose); border-color:color-mix(in srgb, var(--error) 42%, var(--border-strong)); box-shadow:0 0 0 1px color-mix(in srgb, var(--error) 20%, transparent); } .file-row-main { display:grid; gap:var(--space-3); } .file-row-head { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-4); align-items:start; } .file-row-status-actions { display:flex; align-items:center; gap:var(--space-3); justify-content:flex-end; } .file-row-name { font-size:1.05rem; font-weight:700; overflow-wrap:anywhere; } .file-row-actions { display:flex; gap:var(--space-2); align-items:center; justify-content:flex-end; } .progress-track { height:.6rem; background:var(--surface-muted); border-radius:999px; overflow:hidden; border:1px solid var(--border-subtle); } .progress-bar { height:100%; background:var(--primary); width:0%; transition:width .25s linear; } .file-row.is-failed .progress-bar { background:var(--error); } .table-card { overflow:hidden; border:1px solid var(--border-subtle); border-radius:var(--radius-lg); } .table-card th, .table-card td { padding:1.2rem 1rem; text-align:left; border-bottom:1px solid var(--border-subtle); } .table-card th { background:var(--surface-muted); } .theme-toggle { width:3rem; height:3rem; border-radius:50%; border:1px solid var(--border-subtle); background:var(--surface-card); } .brand-lockup { display:inline-flex; align-items:center; gap:var(--space-3); font-weight:700; font-size:1.15rem; } .brand-mark { display:inline-grid; place-items:center; width:2.5rem; height:2.5rem; border:1px solid var(--border-subtle); border-radius:50%; background:var(--surface-card); }
.btn:disabled{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border-subtle);cursor:not-allowed;opacity:.65;box-shadow:none}
.btn-primary:disabled,.btn-secondary:disabled,.btn-ghost:disabled{background:var(--surface-muted);color:var(--text-muted);border-color:var(--border-subtle)}

.badge-multipart { background: color-mix(in srgb, var(--surface-blue) 70%, white); color: var(--primary); border:1px solid color-mix(in srgb, var(--primary) 18%, transparent); }
