@import "https://fonts.googleapis.com/css2?family=Sora:wght@400;500;600;700;800&family=Plus+Jakarta+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,500&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--ink-950:#17130f;--ink-900:#1c1815;--ink-800:#2a2420;--ink-700:#3d3630;--ink-600:#574e46;--ink-500:#766a60;--ink-400:#9c9086;--ink-300:#c3b9ad;--ink-200:#ded5c8;--ink-100:#efe8dc;--ink-50:#faf7f2;--white:#fffdfa;--terracotta-900:#7a2f18;--terracotta-700:#a8431f;--terracotta-600:#c8501f;--terracotta-500:#e8623d;--terracotta-400:#ee805f;--terracotta-300:#f4a888;--terracotta-200:#f9cdb8;--terracotta-100:#fde7db;--amber-700:#a86a12;--amber-600:#cd8619;--amber-500:#f4a340;--amber-400:#f7b968;--amber-300:#fad090;--amber-200:#fce3ba;--amber-100:#fdf1dd;--success-600:oklch(50% .13 152);--success-500:oklch(62% .14 152);--success-100:oklch(94% .05 152);--warning-600:oklch(55% .15 70);--warning-500:oklch(68% .16 70);--warning-100:oklch(95% .06 80);--danger-600:oklch(50% .19 25);--danger-500:oklch(60% .2 25);--danger-100:oklch(94% .06 25);--info-600:oklch(50% .1 240);--info-500:oklch(60% .12 240);--info-100:oklch(94% .03 240);--bg-page:var(--ink-50);--bg-surface:var(--white);--bg-sunken:var(--ink-100);--bg-inverse:var(--ink-950);--bg-brand:var(--terracotta-500);--bg-brand-hover:var(--terracotta-600);--bg-brand-press:var(--terracotta-700);--text-primary:var(--ink-900);--text-secondary:var(--ink-600);--text-tertiary:var(--ink-500);--text-inverse:var(--ink-50);--text-brand:var(--terracotta-600);--text-on-brand:var(--white);--border-subtle:var(--ink-200);--border-default:var(--ink-300);--border-strong:var(--ink-700);--border-brand:var(--terracotta-500);--focus-ring:var(--terracotta-400);--font-display:"Sora", "Segoe UI", system-ui, sans-serif;--font-body:"Plus Jakarta Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--weight-extrabold:800;--tracking-tight:-.02em;--tracking-wide:.04em;--radius-sm:8px;--radius-md:12px;--radius-lg:20px;--radius-pill:999px;--shadow-sm:0 1px 2px #1a140e0f, 0 1px 1px #1a140e0a;--shadow-md:0 4px 12px #1a140e14, 0 1px 2px #1a140e0d;--shadow-lg:0 12px 32px #1a140e1f, 0 2px 6px #1a140e0f;--ease-standard:cubic-bezier(.4, 0, .2, 1);--duration-fast:.12s;--duration-base:.2s;font-family:var(--font-body)}*{box-sizing:border-box}body{background:var(--bg-page);color:var(--text-primary);margin:0}a{color:var(--text-brand);text-decoration:none}a:hover{text-decoration:underline}h1{font-family:var(--font-display);font-weight:var(--weight-bold);letter-spacing:var(--tracking-tight);margin:0 0 4px;font-size:26px}h3{font-family:var(--font-display);font-weight:var(--weight-semibold);margin:0 0 8px}.muted{color:var(--text-secondary)}.small{font-size:13px}.page{min-height:100vh}.container{max-width:900px;margin:0 auto;padding:28px 20px 80px}.topbar{border-bottom:1px solid var(--border-subtle);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;background:#fffdfad9;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--text-primary);align-items:center;gap:9px;font-size:16px;display:flex}.brand img{border-radius:6px;width:24px;height:24px;display:block}.brand .chip{font-family:var(--font-body);font-weight:var(--weight-semibold)}.btn{border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-primary);border-radius:var(--radius-md);font-family:var(--font-body);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), transform var(--duration-fast) var(--ease-standard);padding:10px 16px;font-size:14px}.btn:hover{border-color:var(--border-strong);background:var(--bg-sunken)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default;transform:none}.btn-primary{background:var(--bg-brand);border-color:var(--bg-brand);color:var(--text-on-brand)}.btn-primary:hover{background:var(--bg-brand-hover);border-color:var(--bg-brand-hover)}.btn-primary:active{background:var(--bg-brand-press);border-color:var(--bg-brand-press)}.btn-passkey{background:var(--bg-surface);width:100%}.btn-ghost{color:var(--text-brand);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--terracotta-100);border-color:#0000}.btn-full{width:100%}.btn.small{border-radius:var(--radius-sm);padding:6px 12px;font-size:13px}.btn-danger{color:var(--danger-600);border-color:var(--danger-100);background:var(--bg-surface)}.btn-danger:hover{background:var(--danger-100);border-color:var(--danger-100)}input,select,textarea{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-primary);border-radius:var(--radius-md);font-size:14px;font-family:var(--font-body);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);outline:none;padding:10px 12px}input::placeholder,textarea::placeholder{color:var(--text-tertiary)}input:focus,select:focus,textarea:focus{border-color:var(--border-brand);box-shadow:0 0 0 2px var(--terracotta-100)}.login-page{background:var(--bg-page);place-items:center;min-height:100vh;padding:20px;display:grid}.login-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:center;width:360px;padding:36px}.login-logo{font-family:var(--font-display);font-size:30px;font-weight:var(--weight-extrabold);letter-spacing:var(--tracking-tight);color:var(--text-primary);justify-content:center;align-items:center;gap:10px;display:flex}.login-logo img{border-radius:8px;width:34px;height:34px}.login-sub{color:var(--text-secondary);margin:6px 0 24px;font-size:13px}.login-divider{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin:16px 0;font-size:12px}.magic-sent p{margin:4px 0}.error-msg{color:var(--danger-600);margin-top:12px;font-size:13px}.card-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:20px 0;display:grid}.customer-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;text-align:left;font-family:var(--font-body);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-base) var(--ease-standard), border-color var(--duration-base) var(--ease-standard);flex-direction:column;align-items:flex-start;gap:8px;padding:18px;display:flex}.customer-card:hover{border-color:var(--border-brand);box-shadow:var(--shadow-md)}.customer-name{font-weight:var(--weight-bold);color:var(--text-primary);font-size:16px}.chip{font-size:11px;font-weight:var(--weight-semibold);background:var(--ink-100);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-secondary);padding:3px 10px}.add-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-top:12px;padding:18px}.row{flex-wrap:wrap;gap:10px;display:flex}.row input,.row select{flex:1;min-width:160px}.passkey-banner{background:var(--terracotta-100);border:1px solid var(--terracotta-200);border-radius:var(--radius-lg);justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;padding:14px 18px;display:flex}.passkey-banner strong{color:var(--terracotta-700);font-size:14px}.url-input{background:var(--bg-surface);border:1px solid var(--border-default);width:100%;color:var(--text-primary);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-mono);resize:vertical;outline:none;margin-top:8px;padding:12px 14px}.url-input:focus{border-color:var(--border-brand);box-shadow:0 0 0 2px var(--terracotta-100)}.scan-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin:12px 0 18px;display:flex}.scan-bar>input{flex:1;min-width:220px}.count{color:var(--text-secondary);align-items:center;gap:6px;font-size:13px;display:flex}.count input{width:64px}.job-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:16px}.job-panel.done{border-color:var(--success-500)}.job-panel.error{border-color:var(--danger-500)}.job-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.job-head strong{font-family:var(--font-display);font-weight:var(--weight-semibold)}.progress{background:var(--bg-sunken);border-radius:var(--radius-pill);height:8px;overflow:hidden}.progress-fill{background:var(--bg-brand);border-radius:var(--radius-pill);height:100%;transition:width .4s var(--ease-standard)}.job-stats{font-family:var(--font-mono);margin-top:8px}.channel-tabs{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.tab{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);cursor:pointer;color:var(--text-secondary);padding:6px 14px;font-size:13px}.tab.on{border-color:var(--border-brand);color:var(--text-brand);background:var(--terracotta-100)}.results-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}table.videos{border-collapse:collapse;width:100%;font-size:14px;font-family:var(--font-body)}table.videos th{text-align:left;color:var(--text-secondary);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-wide);border-bottom:1px solid var(--border-subtle);padding:10px 8px;font-size:11px}table.videos td{border-bottom:1px solid var(--border-subtle);vertical-align:top;padding:10px 8px}table.videos tbody tr:hover td{background:var(--bg-page)}.src{font-size:11px;font-weight:var(--weight-semibold);border-radius:var(--radius-pill);font-family:var(--font-mono);padding:3px 10px}.src.cap{background:var(--success-100);color:var(--success-600)}.src.stt{background:var(--info-100);color:var(--info-600)}.src.err{background:var(--danger-100);color:var(--danger-600)}table.videos th.ck,table.videos td.ck{width:26px;padding-right:0}table.videos input[type=checkbox]{accent-color:var(--bg-brand);cursor:pointer;width:16px;height:16px}tr.row-sel td{background:var(--terracotta-100)!important}tr.row-err td{background:var(--danger-100)}.err-text{color:var(--danger-600);text-overflow:ellipsis;white-space:nowrap;max-width:340px;margin-top:4px;overflow:hidden}.err-count{color:var(--danger-600);font-weight:var(--weight-semibold)}.row-actions{white-space:nowrap}.icon-btn{border:1px solid var(--border-subtle);background:var(--bg-surface);width:30px;height:30px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);justify-content:center;align-items:center;margin-left:2px;font-size:13px;display:inline-flex}.icon-btn:hover{border-color:var(--border-default);background:var(--bg-sunken);color:var(--text-primary)}.icon-btn:disabled{opacity:.35;cursor:default}.icon-btn.danger:hover{border-color:var(--danger-500);color:var(--danger-600);background:var(--danger-100)}.bulk-bar{background:var(--bg-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-md);align-items:center;gap:8px;margin-bottom:10px;padding:10px 12px;display:flex}.results-actions{align-items:center;gap:10px;display:flex}.flash{color:var(--success-600);font-weight:var(--weight-semibold)}.spinner{border:3px solid var(--border-subtle);border-top-color:var(--bg-brand);border-radius:50%;width:28px;height:28px;margin:80px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
