  *, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
  :root {
    --bg: #0f1115; --surface: #1a1d24; --surface2: #20232c;
    --border: #2a2e37; --text: #f4f4f5; --muted: #9a9ea8; --muted2: #6b6f78;
    --yes: #4caf7d; --yes-bg: rgba(76, 175, 125, 0.15); --no: #e0605a; --no-bg: rgba(224, 96, 90, 0.15); --maybe: #e8a33d; --maybe-bg: rgba(232, 163, 61, 0.15);
    --accent: #ffffff; --accent-text: #0f1115; --mono: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  }
  body { background: var(--bg); color: var(--text); font-family: var(--sans); min-height: 100vh; display: flex; flex-direction: column; }

  /* HEADER */
  header { padding: 18px 28px; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; }
  .header-brand { display: flex; align-items: center; gap: 14px; }
  .header-logo { height: 44px; width: auto; max-width: 140px; border-radius: 6px; object-fit: contain; flex-shrink: 0; }
  .header-titles h1 { font-size: 22px; font-weight: 700; margin: 0 0 3px; color: var(--text); letter-spacing: -0.01em; }
  .header-titles .subtitle { color: var(--muted); font-size: 13px; margin: 0; font-family: var(--sans); }
  .header-right { display: flex; align-items: center; gap: 16px; }
  .user-info { font-family: var(--mono); font-size: 11px; color: var(--muted); display: flex; align-items: center; gap: 7px; }
  .user-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--yes); flex-shrink: 0; }
  .gear-btn { background: none; border: 1px solid var(--border); border-radius: 6px; color: var(--muted); cursor: pointer; font-size: 15px; padding: 5px 9px; transition: all 0.15s; line-height: 1; }
  .gear-btn:hover { color: var(--text); border-color: #555; }
  .gear-btn.active { color: var(--text); border-color: var(--muted); background: var(--surface2); }

  /* IMPERSONATION ("Master filter") — deliberately loud, never mistakable
     for normal app chrome, since real writes go through as the
     impersonated user while this is up. */
  .impersonation-banner { background: var(--maybe-bg); border-bottom: 1.5px solid var(--maybe); color: var(--maybe); font-family: var(--sans); font-size: 13px; font-weight: 600; padding: 10px 28px; display: none; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; }
  .impersonation-banner-actions { display: flex; gap: 8px; }
  .impersonation-banner-actions .btn-manager-close { border-color: var(--maybe); color: var(--maybe); }
  .master-filter-list { display: flex; flex-direction: column; gap: 6px; max-height: 50vh; overflow-y: auto; }
  .master-filter-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 14px; background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; color: var(--text); font-family: var(--sans); font-size: 13px; cursor: pointer; transition: all 0.15s; text-align: left; }
  .master-filter-item:hover { border-color: #555; background: var(--bg); }
  .master-filter-you { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted2); }

  /* TABS */
  .tabs { display: flex; border-bottom: 1px solid var(--border); background: var(--surface); flex-shrink: 0; padding: 0 28px; }
  .tab { padding: 12px 20px; font-family: var(--mono); font-size: 12px; color: var(--muted); cursor: pointer; border-bottom: 2px solid transparent; transition: all 0.15s; letter-spacing: 0.04em; }
  .tab:hover { color: var(--text); }
  .tab.active { color: var(--text); border-bottom-color: var(--accent); }

  /* STATUS BAR (review tab) */
  .status-bar { padding: 8px 28px; background: var(--surface); border-bottom: 1px solid var(--border); display: flex; gap: 20px; font-family: var(--mono); font-size: 11px; color: var(--muted); flex-shrink: 0; }
  .status-bar span { display: flex; align-items: center; gap: 5px; }
  .progress-wrap { display: flex; align-items: center; gap: 10px; margin-left: auto; }
  .progress-text { font-family: var(--mono); font-size: 11px; color: var(--muted); }
  .progress-bar { width: 80px; height: 2px; background: var(--border); border-radius: 2px; }
  .progress-fill { height: 100%; background: var(--accent); border-radius: 2px; transition: width 0.4s ease; }
  .dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }
  .dot-yes { background: var(--yes); } .dot-no { background: var(--no); } .dot-pending { background: var(--muted); } .dot-maybe { background: var(--maybe); }

  /* ERROR */
  .error-banner { background: var(--no-bg); border-bottom: 1px solid rgba(224, 96, 90, 0.3); color: var(--no); font-family: var(--mono); font-size: 12px; padding: 10px 28px; display: none; flex-shrink: 0; }
  .error-banner.visible { display: block; }
  .success-banner { background: var(--yes-bg); border-bottom: 1px solid rgba(76, 175, 125, 0.3); color: var(--yes); font-family: var(--mono); font-size: 12px; padding: 10px 28px; display: none; flex-shrink: 0; }
  .success-banner.visible { display: block; }

  /* SETTINGS PANEL */
  .settings-panel { display: none; flex-direction: column; border-bottom: 1px solid var(--border); background: var(--surface); flex-shrink: 0; }
  .settings-panel.open { display: flex; }
  .settings-inner { padding: 24px 28px; display: flex; flex-direction: column; gap: 18px; max-width: 860px; }
  .settings-title { font-size: 13px; font-weight: 600; color: var(--text); margin-bottom: 2px; }
  .settings-subtitle { font-family: var(--mono); font-size: 11px; color: var(--muted); line-height: 1.6; }
  .settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
  .field-group { display: flex; flex-direction: column; gap: 6px; }
  .field-group label { font-family: var(--mono); font-size: 10px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--muted); }
  .field-group input, .field-group select, .field-group textarea { background: var(--surface2); border: 1px solid var(--border); color: var(--text); border-radius: 6px; padding: 9px 12px; font-family: var(--mono); font-size: 12px; outline: none; transition: border-color 0.15s; width: 100%; }
  .field-group input:focus, .field-group select:focus, .field-group textarea:focus { border-color: #555; }
  .field-group textarea { resize: vertical; min-height: 60px; font-family: var(--sans); line-height: 1.5; }
  .field-group .hint { font-family: var(--mono); font-size: 10px; color: var(--muted2); line-height: 1.5; }
  .settings-actions { display: flex; align-items: center; gap: 12px; padding-top: 4px; }
  .btn-save-settings { padding: 9px 20px; font-family: var(--sans); font-size: 13px; font-weight: 500; border-radius: 7px; border: 1px solid rgba(76, 175, 125, 0.3); background: var(--yes-bg); color: var(--yes); cursor: pointer; transition: all 0.15s; }
  .btn-save-settings:hover { background: rgba(76, 175, 125, 0.25); border-color: var(--yes); }
  .btn-test { padding: 9px 16px; font-family: var(--mono); font-size: 12px; border-radius: 7px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; transition: all 0.15s; }
  .btn-test:hover { color: var(--text); border-color: #555; }
  .test-result { font-family: var(--mono); font-size: 12px; }
  .test-result.ok { color: var(--yes); } .test-result.fail { color: var(--no); }
  .settings-divider { height: 1px; background: var(--border); }
  .setup-notice { background: rgba(232, 163, 61, 0.15); border: 1px solid rgba(232, 163, 61, 0.3); border-radius: 8px; padding: 12px 16px; font-family: var(--mono); font-size: 12px; color: var(--maybe); line-height: 1.7; }

  /* TAB CONTENT */
  .tab-content { display: none; flex: 1; overflow-y: auto; }
  .tab-content.active { display: flex; flex-direction: column; }

  /* ── EXTRACTOR TAB ── */
  .extractor-wrap { padding: 36px 28px; display: flex; flex-direction: column; gap: 20px; align-items: center; width: 100%; }
  .drop-zone { width: 100%; max-width: 640px; border: 1.5px dashed var(--border); border-radius: 12px; padding: 44px 32px; text-align: center; cursor: pointer; transition: border-color 0.2s, background 0.2s; position: relative; }
  .drop-zone:hover, .drop-zone.drag-over { border-color: #555; background: var(--surface); }
  .drop-zone input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; width: 100%; height: 100%; }
  .drop-icon { font-size: 28px; margin-bottom: 10px; }
  .drop-title { font-size: 15px; font-weight: 500; margin-bottom: 5px; }
  .drop-sub { font-family: var(--mono); font-size: 12px; color: var(--muted); }
  .stats-bar-ext { width: 100%; max-width: 640px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; padding: 14px 20px; font-family: var(--mono); font-size: 12px; color: var(--muted); display: none; gap: 24px; align-items: center; align-self: center; }
  .stats-bar-ext.visible { display: flex; }
  .stat { display: flex; flex-direction: column; gap: 3px; }
  .stat-num { font-size: 18px; font-weight: 500; color: var(--text); }
  .stat-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.08em; }
  .stats-divider { width: 1px; height: 32px; background: var(--border); }
  .ext-actions { width: 100%; max-width: 640px; display: none; gap: 10px; flex-direction: column; align-self: center; }
  .ext-actions.visible { display: flex; }
  .ext-actions-row { display: flex; gap: 10px; }
  .btn-push { flex: 1; padding: 13px; font-family: var(--sans); font-size: 14px; font-weight: 500; border-radius: 8px; border: 1px solid rgba(76, 175, 125, 0.3); background: var(--yes-bg); color: var(--yes); cursor: pointer; transition: all 0.15s; display: flex; align-items: center; justify-content: center; gap: 8px; }
  .btn-push:hover { background: rgba(76, 175, 125, 0.25); border-color: var(--yes); }
  .btn-push:active { transform: scale(0.98); }
  .btn-push:disabled { opacity: 0.4; cursor: not-allowed; }
  .btn-enrich { flex: 1; padding: 13px; font-family: var(--sans); font-size: 14px; font-weight: 500; border-radius: 8px; border: 1px solid var(--border); background: var(--surface2); color: var(--text); cursor: pointer; transition: all 0.15s; display: flex; align-items: center; justify-content: center; gap: 8px; }
  .btn-enrich:hover { background: var(--surface); border-color: #555; }
  .btn-enrich:active { transform: scale(0.98); }
  .btn-enrich:disabled { opacity: 0.4; cursor: not-allowed; }
  .btn-copy-ext { flex: 0; padding: 13px 18px; font-family: var(--sans); font-size: 13px; border-radius: 8px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; transition: all 0.15s; }
  .btn-copy-ext:hover { color: var(--text); border-color: #444; }
  .btn-reset-ext { flex: 0; padding: 13px 18px; font-family: var(--sans); font-size: 13px; border-radius: 8px; border: 1px solid var(--border); background: transparent; color: var(--muted); cursor: pointer; transition: all 0.15s; }
  .btn-reset-ext:hover { color: var(--text); border-color: #444; }
  .push-status { font-family: var(--mono); font-size: 12px; color: var(--muted); text-align: center; }
  .channel-list-ext { width: 100%; max-width: 640px; display: none; flex-direction: column; gap: 4px; max-height: 440px; overflow-y: auto; align-self: center; }
  .channel-list-ext.visible { display: flex; }
  .channel-item { display: flex; align-items: center; justify-content: space-between; background: var(--surface); border: 1px solid var(--border); border-radius: 8px; padding: 9px 13px; font-family: var(--mono); font-size: 12px; gap: 10px; }
  .channel-item:hover { border-color: #444; }
  .ch-num { color: var(--muted); font-size: 11px; flex-shrink: 0; min-width: 26px; }
  .ch-url { color: var(--accent); flex: 1; word-break: break-all; text-decoration: none; }
  .ch-url:hover { text-decoration: underline; }
  .ch-remove { color: var(--muted); background: none; border: none; cursor: pointer; font-size: 13px; padding: 2px 5px; border-radius: 4px; flex-shrink: 0; }
  .ch-remove:hover { color: var(--no); background: var(--no-bg); }
  .empty-ext { text-align: center; padding: 40px; font-family: var(--mono); font-size: 13px; color: var(--muted); display: none; width: 100%; }
  .btn-resolve { width: 100%; max-width: 640px; padding: 13px; font-family: var(--sans); font-size: 14px; font-weight: 500; border-radius: 8px; border: 1px solid rgba(90, 140, 255, 0.35); background: rgba(90, 140, 255, 0.12); color: #7fa4ff; cursor: pointer; transition: all 0.15s; display: none; align-self: center; }
  .btn-resolve:hover { background: rgba(90, 140, 255, 0.2); border-color: rgba(90, 140, 255, 0.5); }
  .btn-resolve:disabled { opacity: 0.5; cursor: not-allowed; }
  .empty-ext.visible { display: block; }

  /* ── REVIEW TAB ── */
  .review-wrap { flex: 1; display: flex; align-items: flex-start; justify-content: center; padding: 32px 24px; }
  .card-wrap { width: 100%; max-width: 680px; }
  .channel-num { font-family: var(--mono); font-size: 11px; color: var(--muted); margin-bottom: 14px; letter-spacing: 0.06em; }
  .card { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; overflow: hidden; animation: slideIn 0.22s ease; }
  @keyframes slideIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
  .card-header { padding: 20px 24px 16px; border-bottom: 1px solid var(--border); display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
  .channel-link { font-family: var(--mono); font-size: 13px; color: var(--accent); text-decoration: none; word-break: break-all; line-height: 1.5; }
  .channel-link:hover { text-decoration: underline; }
  .rating-badge { flex-shrink: 0; font-family: var(--mono); font-size: 11px; padding: 5px 12px; border-radius: 5px; border: 1px solid var(--border); color: var(--muted); white-space: nowrap; text-align: center; }
  .rating-badge .score-num { font-size: 14px; font-weight: 500; display: block; margin-bottom: 2px; }
  .rating-badge .score-label { font-size: 10px; opacity: 0.8; display: block; }
  .rating-badge.good { border-color: rgba(76, 175, 125, 0.3); color: var(--yes); background: var(--yes-bg); }
  .rating-badge.check { border-color: rgba(232, 163, 61, 0.3); color: var(--maybe); background: var(--maybe-bg); }
  .rating-badge.bad { border-color: rgba(224, 96, 90, 0.3); color: var(--no); background: var(--no-bg); }
  .card-body { padding: 20px 24px; display: flex; flex-direction: column; gap: 14px; }
  .field { display: flex; flex-direction: column; gap: 5px; }
  .field-label { font-family: var(--mono); font-size: 10px; letter-spacing: 0.1em; color: var(--muted); text-transform: uppercase; }
  .field-value { font-size: 14px; line-height: 1.65; color: var(--text); }
  .field-value.mono { font-family: var(--mono); font-size: 13px; }
  .stats-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .stat-block { background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; }
  .actions { padding: 16px 24px 20px; border-top: 1px solid var(--border); display: flex; gap: 10px; align-items: stretch; }
  .btn { flex: 1; padding: 13px; font-family: var(--sans); font-size: 14px; font-weight: 500; letter-spacing: 0.04em; border-radius: 8px; border: 1px solid var(--border); cursor: pointer; transition: all 0.15s ease; display: flex; align-items: center; justify-content: center; gap: 8px; }
  .btn-yes { background: var(--yes-bg); color: var(--yes); border-color: rgba(76, 175, 125, 0.3); }
  .btn-yes:hover { background: rgba(76, 175, 125, 0.25); border-color: var(--yes); }
  .btn-yes:active { transform: scale(0.98); }
  .btn-no { background: var(--no-bg); color: var(--no); border-color: rgba(224, 96, 90, 0.3); }
  .btn-no:hover { background: rgba(224, 96, 90, 0.25); border-color: var(--no); }
  .btn-no:active { transform: scale(0.98); }
  .btn-maybe { background: var(--maybe-bg); color: var(--maybe); border-color: rgba(232, 163, 61, 0.3); }
  .btn-maybe:hover { background: rgba(232, 163, 61, 0.25); border-color: var(--maybe); }
  .btn-maybe:active { transform: scale(0.98); }
  .btn-skip { flex: 0; padding: 13px 18px; background: transparent; color: var(--muted); }
  .btn-skip:hover { color: var(--text); border-color: #444; }
  .btn-load { padding: 9px 14px; background: transparent; color: var(--muted); font-size: 12px; border-radius: 6px; border: 1px solid var(--border); cursor: pointer; font-family: var(--mono); transition: all 0.15s; }
  .btn-load:hover { color: var(--text); border-color: #444; }
  .videos-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 4px; max-height: 400px; overflow-y: auto; }
  .video-thumb { border-radius: 6px; overflow: hidden; border: 1px solid var(--border); text-decoration: none; display: block; }
  .video-thumb-img-wrap { position: relative; }
  .video-thumb img { width: 100%; display: block; aspect-ratio: 16/9; object-fit: cover; }
  .video-thumb-duration { position: absolute; right: 4px; bottom: 4px; background: rgba(0,0,0,0.8); color: #fff; font-family: var(--mono); font-size: 10px; font-weight: 600; padding: 1px 5px; border-radius: 3px; line-height: 1.5; }
  .video-thumb-title { font-size: 11px; font-family: var(--mono); color: var(--muted); padding: 6px 8px 2px; line-height: 1.4; }
  .login-state { text-align: center; padding: 60px 40px; display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; }
  .login-state p { font-family: var(--mono); font-size: 13px; color: var(--muted); }
  .done-state { text-align: center; padding: 80px 40px; width: 100%; }
  .done-state h2 { font-size: 22px; margin-bottom: 10px; }
  .done-state p { font-family: var(--mono); font-size: 13px; color: var(--muted); }
  .loading-state { text-align: center; padding: 80px 40px; font-family: var(--mono); font-size: 13px; color: var(--muted); width: 100%; }
  .saving-indicator { position: fixed; bottom: 20px; right: 20px; background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; padding: 9px 14px; font-family: var(--mono); font-size: 12px; color: var(--muted); display: none; align-items: center; gap: 8px; z-index: 100; }
  .saving-indicator.visible { display: flex; }
  .spinner { width: 11px; height: 11px; border: 1.5px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin 0.7s linear infinite; }
  @keyframes spin { to { transform: rotate(360deg); } }
  /* KEYWORD SEARCH MODE */
  .kw-panel { width:100%; max-width:640px; display:flex; flex-direction:column; gap:14px; }
  .kw-field { display:flex; flex-direction:column; gap:6px; }
  .kw-field label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--muted); }
  .kw-field textarea { background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:9px 12px; font-family:var(--sans); font-size:13px; outline:none; width:100%; resize:vertical; min-height:80px; line-height:1.6; }
  .kw-field textarea:focus { border-color:#555; }
  .kw-options { display:flex; gap:14px; }
  .kw-opt { display:flex; flex-direction:column; gap:5px; }
  .kw-opt input { background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:7px 10px; font-family:var(--mono); font-size:12px; outline:none; width:90px; }
  .kw-count { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .kw-progress { width:100%; background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:14px 18px; display:none; flex-direction:column; gap:8px; }
  .kw-progress.visible { display:flex; }
  .kw-bar-bg { background:var(--bg); border-radius:4px; height:4px; }
  .kw-bar-fill { background:var(--accent); height:4px; border-radius:4px; width:0; transition:width 0.3s; }
  .kw-bar-label { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .kw-log { background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:8px 12px; max-height:120px; overflow-y:auto; font-family:var(--mono); font-size:11px; color:var(--muted); }
  .kw-log div { padding:1px 0; }
  .kw-log .ok { color:var(--yes); }
  .kw-log .err { color:var(--no); }
  .kw-quota { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:12px 16px; font-family:var(--mono); font-size:11px; display:none; flex-direction:column; gap:6px; }
  .kw-quota.visible { display:flex; }
  .kw-quota-row { display:flex; justify-content:space-between; color:var(--muted); border-bottom:1px solid var(--border); padding-bottom:5px; }
  .kw-quota-row:last-child { border-bottom:none; padding-bottom:0; color:var(--text); font-weight:500; }
  .btn-kw-run { width:100%; padding:13px; font-family:var(--sans); font-size:14px; font-weight:500; border-radius:8px; border:1px solid rgba(76, 175, 125, 0.3); background:var(--yes-bg); color:var(--yes); cursor:pointer; transition:all 0.15s; }
  .btn-kw-run:hover { background:rgba(76, 175, 125, 0.25); border-color:var(--yes); }
  .btn-kw-run:disabled { opacity:0.4; cursor:not-allowed; }

  /* ── ANALYTICS TAB ── */
  .analytics-wrap { padding: 32px 28px; display: flex; flex-direction: column; gap: 24px; max-width: 880px; margin: 0 auto; width: 100%; }
  .an-week-nav { display: flex; align-items: center; justify-content: center; gap: 16px; }
  .an-week-btn { background: var(--surface); border: 1px solid var(--border); color: var(--muted); border-radius: 7px; padding: 7px 12px; cursor: pointer; font-family: var(--mono); font-size: 13px; transition: all 0.15s; }
  .an-week-btn:hover { color: var(--text); border-color: #555; }
  .an-week-btn:disabled { opacity: 0.35; cursor: not-allowed; }
  .an-week-label { font-family: var(--mono); font-size: 13px; color: var(--text); min-width: 190px; text-align: center; }
  .an-week-current { font-size: 10px; color: var(--muted); text-decoration: underline; cursor: pointer; margin-left: 4px; }

  .an-hero { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 24px 26px; display: flex; flex-direction: column; gap: 16px; }
  .an-hero-top { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 10px; }
  .an-hero-num { font-size: 32px; font-weight: 700; color: var(--text); }
  .an-hero-num .an-hero-target { font-size: 18px; color: var(--muted); font-weight: 500; }
  .an-pace-badge { font-family: var(--mono); font-size: 12px; font-weight: 600; padding: 5px 12px; border-radius: 999px; white-space: nowrap; }
  .an-pace-ahead { background: var(--yes-bg); color: var(--yes); }
  .an-pace-ontrack { background: rgba(255,255,255,0.08); color: var(--text); }
  .an-pace-behind { background: var(--no-bg); color: var(--no); }
  .an-hero-bar-track { height: 8px; background: var(--surface2); border: 1px solid var(--border); border-radius: 999px; overflow: hidden; }
  .an-hero-bar-fill { height: 100%; background: var(--yes); border-radius: 999px; transition: width 0.4s ease; }

  .an-days-row { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
  .an-day { display: flex; flex-direction: column; align-items: center; gap: 6px; }
  .an-day-label { font-family: var(--mono); font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; }
  .an-day-bar-track { width: 100%; height: 64px; background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; display: flex; align-items: flex-end; overflow: hidden; position: relative; }
  .an-day-bar-fill { width: 100%; background: var(--yes); transition: height 0.3s ease; }
  .an-day-target-line { position: absolute; left: 0; right: 0; border-top: 1px dashed var(--muted2); }
  .an-day-num { font-family: var(--mono); font-size: 12px; color: var(--text); font-weight: 600; }

  .an-funnel { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 22px 26px; display: flex; flex-direction: column; gap: 16px; }
  .an-funnel-title { font-size: 13px; font-weight: 600; color: var(--text); }
  .an-funnel-row { display: flex; align-items: center; gap: 10px; }
  .an-funnel-stage { flex: 1; text-align: center; }
  .an-funnel-num { font-size: 22px; font-weight: 700; color: var(--text); }
  .an-funnel-stage-label { font-family: var(--mono); font-size: 10px; color: var(--muted); text-transform: uppercase; letter-spacing: 0.06em; margin-top: 3px; }
  .an-funnel-arrow { color: var(--muted2); font-size: 16px; flex-shrink: 0; }
  .an-suggestion { font-size: 13px; color: var(--muted); background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; padding: 12px 14px; line-height: 1.5; }
  .an-disclaimer { font-family: var(--mono); font-size: 10px; color: var(--muted2); }

  .an-stats-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }

  .an-trend { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 22px 26px; display: flex; flex-direction: column; gap: 14px; }
  .an-trend-title { font-size: 13px; font-weight: 600; color: var(--text); }
  .an-trend-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
  .an-trend-week { display: flex; flex-direction: column; align-items: center; gap: 6px; }
  .an-trend-bar-track { width: 100%; height: 48px; background: var(--surface2); border: 1px solid var(--border); border-radius: 6px; display: flex; align-items: flex-end; overflow: hidden; }
  .an-trend-bar-fill { width: 100%; background: var(--muted); transition: height 0.3s ease; }
  .an-trend-bar-fill.is-current { background: var(--yes); }
  .an-trend-label { font-family: var(--mono); font-size: 9px; color: var(--muted2); text-align: center; }
  .an-trend-num { font-family: var(--mono); font-size: 12px; color: var(--text); font-weight: 600; }

  .an-loading { text-align: center; padding: 60px 20px; font-family: var(--mono); font-size: 13px; color: var(--muted); }

  /* ── MANAGER REVIEW TAB ── */
  .mgr-person-section { background: var(--surface); border: 1px solid var(--border); border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; margin-bottom: 18px; }
  .mgr-person-header { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
  .mgr-person-name { font-size: 16px; font-weight: 700; color: var(--text); text-transform: capitalize; }
  .mgr-person-stats { font-family: var(--mono); font-size: 12px; color: var(--muted); }
  .mgr-yes-list { display: flex; flex-direction: column; gap: 8px; }
  .mgr-yes-row { display: flex; align-items: center; gap: 12px; background: var(--surface2); border: 1px solid var(--border); border-radius: 8px; padding: 10px 12px; }
  .mgr-yes-link { font-family: var(--mono); font-size: 12px; color: var(--accent); text-decoration: none; word-break: break-all; flex: 1; min-width: 180px; }
  .mgr-yes-link:hover { text-decoration: underline; }
  .mgr-yes-note { font-size: 12px; color: var(--text); flex: 1.4; min-width: 200px; }
  .mgr-yes-meta { font-family: var(--mono); font-size: 10px; color: var(--muted); white-space: nowrap; }
  .mgr-empty-row { font-family: var(--mono); font-size: 12px; color: var(--muted2); padding: 8px 2px; }

  .mgr-maybe-section { background: var(--surface); border: 1px solid rgba(232, 163, 61, 0.3); border-radius: 12px; padding: 20px 22px; display: flex; flex-direction: column; gap: 14px; }
  .mgr-maybe-title { font-size: 15px; font-weight: 700; color: var(--maybe); }
  .mgr-maybe-row { display: flex; align-items: center; gap: 12px; background: var(--maybe-bg); border: 1px solid rgba(232, 163, 61, 0.25); border-radius: 8px; padding: 10px 12px; }
  .mgr-maybe-owner { font-family: var(--mono); font-size: 10px; color: var(--maybe); text-transform: capitalize; background: rgba(232,163,61,0.15); padding: 2px 8px; border-radius: 999px; white-space: nowrap; }

  /* EXTRACTOR SUB-TABS */
  .ext-mode-toggle { display:flex; gap:0; background:var(--surface2); border:1px solid var(--border); border-radius:8px; overflow:hidden; width:100%; max-width:640px; }
  .ext-mode-btn { flex:1; padding:9px 16px; font-family:var(--mono); font-size:12px; color:var(--muted); background:transparent; border:none; cursor:pointer; transition:all 0.15s; letter-spacing:0.03em; }
  .ext-mode-btn.active { background:var(--surface); color:var(--text); }
  .ext-mode-btn:hover:not(.active) { color:var(--text); }

  /* CONVERTER (video URL → channel) */
  .converter-wrap { width:100%; max-width:640px; display:flex; flex-direction:column; gap:16px; }
  .conv-progress { width:100%; background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:14px 18px; display:none; flex-direction:column; gap:8px; }
  .conv-progress.visible { display:flex; }
  .conv-bar-bg { background:var(--bg); border-radius:4px; height:4px; }
  .conv-bar-fill { background:var(--accent); height:4px; border-radius:4px; width:0; transition:width 0.3s; }
  .conv-bar-label { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .conv-errors { background:var(--no-bg); border:1px solid rgba(224, 96, 90, 0.3); border-radius:8px; padding:10px 14px; font-family:var(--mono); font-size:11px; color:var(--no); display:none; }
  .conv-errors.visible { display:block; }

  /* DISCORD POPUP */
  .discord-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:200; display:none; align-items:center; justify-content:center; }
  .discord-overlay.open { display:flex; }
  .discord-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:600px; max-height:90vh; overflow-y:auto; display:flex; flex-direction:column; }
  .discord-modal-header { padding:18px 22px 14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
  .discord-modal-title { font-size:14px; font-weight:600; }
  .discord-modal-actions-top { display:flex; gap:8px; align-items:center; }
  .discord-settings-panel { display:none; padding:16px 22px; border-bottom:1px solid var(--border); background:var(--surface2); flex-direction:column; gap:12px; }
  .discord-settings-panel.open { display:flex; }
  .discord-field-group { display:flex; flex-direction:column; gap:5px; }
  .discord-field-group label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--muted); }
  .discord-field-group input, .discord-field-group textarea { background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:8px 11px; font-family:var(--mono); font-size:12px; outline:none; width:100%; }
  .discord-field-group textarea { resize:vertical; min-height:80px; line-height:1.5; }
  .discord-modal-body { padding:18px 22px; display:flex; flex-direction:column; gap:12px; flex:1; }
  .discord-textarea { background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:12px 14px; font-family:var(--mono); font-size:13px; line-height:1.7; outline:none; width:100%; resize:vertical; min-height:220px; }
  .discord-textarea:focus { border-color:#555; }
  .discord-image-area { border:1.5px dashed var(--border); border-radius:8px; padding:12px 14px; font-family:var(--mono); font-size:12px; color:var(--muted); display:flex; align-items:center; gap:10px; cursor:pointer; position:relative; }
  .discord-image-area:hover { border-color:#555; }
  .discord-image-area input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
  .discord-image-preview { max-height:80px; border-radius:6px; display:none; }
  .discord-modal-footer { padding:14px 22px; border-top:1px solid var(--border); display:flex; gap:10px; justify-content:flex-end; }
  .btn-discord { flex:0 0 auto; padding:13px 16px; background:transparent; color:var(--muted); border-color:var(--border); font-family:var(--sans); font-size:13px; font-weight:500; border-radius:8px; border:1px solid var(--border); cursor:pointer; transition:all 0.15s; }
  .btn-discord:hover { background:var(--surface2); border-color:#555; color:var(--text); }
  .btn-discord-send { padding:10px 22px; background:var(--accent); color:var(--accent-text); border:none; border-radius:7px; font-family:var(--sans); font-size:13px; font-weight:500; cursor:pointer; transition:all 0.15s; }
  .btn-discord-send:hover { opacity:0.9; }
  .btn-discord-send:disabled { opacity:0.5; cursor:not-allowed; }
  .btn-discord-close { padding:10px 16px; background:transparent; color:var(--muted); border:1px solid var(--border); border-radius:7px; font-family:var(--sans); font-size:13px; cursor:pointer; }
  .btn-discord-close:hover { color:var(--text); border-color:#555; }
  .btn-discord-regen { padding:8px 14px; background:transparent; color:var(--muted); border:1px solid var(--border); border-radius:6px; font-family:var(--mono); font-size:12px; cursor:pointer; transition:all 0.15s; }
  .btn-discord-regen:hover { color:var(--text); border-color:#555; }
  .btn-discord-settings { background:none; border:1px solid var(--border); border-radius:6px; color:var(--muted); cursor:pointer; font-size:14px; padding:5px 9px; transition:all 0.15s; line-height:1; }
  .btn-discord-settings:hover { color:var(--text); border-color:#555; }
  .discord-generating { font-family:var(--mono); font-size:12px; color:var(--muted); display:none; align-items:center; gap:8px; }
  .discord-generating.visible { display:flex; }
  /* MANAGER POPUP */
  .manager-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:200; display:none; align-items:center; justify-content:center; }
  .manager-overlay.open { display:flex; }
  .manager-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:340px; display:flex; flex-direction:column; overflow:hidden; }
  .manager-modal-header { padding:18px 22px 14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
  .manager-modal-title { font-size:14px; font-weight:600; }
  .manager-modal-body { padding:20px 22px; display:flex; flex-direction:column; gap:10px; }
  .manager-modal-footer { padding:14px 22px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; }
  .btn-manager-option { width:100%; padding:14px 18px; font-family:var(--sans); font-size:14px; font-weight:500; border-radius:8px; border:1px solid var(--border); background:var(--surface2); color:var(--text); cursor:pointer; transition:all 0.15s; text-align:left; display:flex; align-items:center; gap:10px; }
  .btn-manager-option:hover { border-color:#555; background:var(--bg); }
  .btn-manager-close { padding:10px 16px; background:transparent; color:var(--muted); border:1px solid var(--border); border-radius:7px; font-family:var(--sans); font-size:13px; cursor:pointer; }
  .btn-manager-close:hover { color:var(--text); border-color:#555; }

  /* COMPETITORS POPUP */
  .comp-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:300; display:none; align-items:center; justify-content:center; }
  .comp-overlay.open { display:flex; }
  .comp-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:900px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; }
  .comp-modal-header { padding:16px 22px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
  .comp-modal-title { font-size:14px; font-weight:600; }
  .comp-modal-actions { display:flex; gap:8px; align-items:center; }
  .comp-settings-panel { display:none; padding:14px 22px; border-bottom:1px solid var(--border); background:var(--surface2); flex-direction:column; gap:12px; flex-shrink:0; }
  .comp-settings-panel.open { display:flex; }
  .comp-settings-row { display:flex; gap:16px; align-items:flex-end; }
  .comp-field-group { display:flex; flex-direction:column; gap:5px; }
  .comp-field-group label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.1em; color:var(--muted); }
  .comp-field-group input { background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:7px 10px; font-family:var(--mono); font-size:12px; outline:none; width:80px; }
  .comp-modal-body { padding:20px 22px; overflow-y:auto; flex:1; display:flex; flex-direction:column; gap:24px; }
  .comp-modal-footer { padding:14px 22px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; flex-shrink:0; }
  .comp-section-title { font-family:var(--mono); font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:10px; }
  .comp-source-video { display:flex; align-items:center; gap:10px; padding:10px 12px; background:var(--surface2); border:1px solid var(--border); border-radius:8px; margin-bottom:12px; text-decoration:none; }
  .comp-source-thumb { width:80px; height:45px; border-radius:4px; object-fit:cover; flex-shrink:0; }
  .comp-source-info { display:flex; flex-direction:column; gap:3px; }
  .comp-source-title { font-size:13px; color:var(--text); line-height:1.4; }
  .comp-source-meta { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .comp-results-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:10px; }
  .comp-result-card { background:var(--surface2); border:1px solid var(--border); border-radius:8px; overflow:hidden; text-decoration:none; display:block; transition:border-color 0.15s; }
  .comp-result-card:hover { border-color:#555; }
  .comp-result-thumb { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; }
  .comp-result-info { padding:7px 9px; display:flex; flex-direction:column; gap:3px; }
  .comp-result-title { font-size:11px; color:var(--text); line-height:1.4; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .comp-result-channel { font-family:var(--mono); font-size:10px; color:var(--muted); }
  .comp-result-meta { font-family:var(--mono); font-size:10px; color:var(--muted); display:flex; justify-content:space-between; }
  .comp-loading { font-family:var(--mono); font-size:12px; color:var(--muted); display:flex; align-items:center; gap:8px; padding:20px 0; }
  .btn-comp-settings { background:none; border:1px solid var(--border); border-radius:6px; color:var(--muted); cursor:pointer; font-size:14px; padding:5px 9px; transition:all 0.15s; line-height:1; }
  .btn-comp-settings:hover { color:var(--text); border-color:#555; }
  .btn-comp-run { padding:8px 16px; background:var(--yes-bg); color:var(--yes); border:1px solid rgba(76, 175, 125, 0.3); border-radius:7px; font-family:var(--mono); font-size:12px; cursor:pointer; transition:all 0.15s; }
  .btn-comp-run:hover { background:rgba(76, 175, 125, 0.25); border-color:var(--yes); }
  .btn-comp-save { padding:7px 14px; background:transparent; color:var(--muted); border:1px solid var(--border); border-radius:6px; font-family:var(--mono); font-size:12px; cursor:pointer; }
  .btn-comp-save:hover { color:var(--text); border-color:#555; }
  .comp-saved { font-family:var(--mono); font-size:11px; color:var(--yes); display:none; }

  /* ── WARMUP TAB (Kelsey only) ─────────────────────────────────────── */
  .warmup-wrap { padding: 32px 28px; display: flex; flex-direction: column; gap: 20px; width: 100%; }

  .warmup-summary { display:grid; grid-template-columns:repeat(4, 1fr); gap:14px; }
  .warmup-summary-total { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; gap:6px; }
  .warmup-summary-total .warmup-summary-label { font-family:var(--mono); font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; }
  .warmup-summary-total .warmup-summary-num { font-size:28px; font-weight:700; color:var(--text); }
  .warmup-stat { border-radius:12px; padding:18px 20px; display:flex; flex-direction:column; gap:6px; }
  .warmup-stat .warmup-summary-label { font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:0.06em; }
  .warmup-stat .warmup-summary-num { font-size:28px; font-weight:700; }
  .warmup-stat.alive { background:var(--yes-bg); }
  .warmup-stat.alive .warmup-summary-label, .warmup-stat.alive .warmup-summary-num { color:var(--yes); }
  .warmup-stat.dead { background:var(--no-bg); }
  .warmup-stat.dead .warmup-summary-label, .warmup-stat.dead .warmup-summary-num { color:var(--no); }
  .warmup-stat.action { background:var(--maybe-bg); }
  .warmup-stat.action .warmup-summary-label, .warmup-stat.action .warmup-summary-num { color:var(--maybe); }

  .warmup-actions-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
  .warmup-actions-left { display:flex; align-items:center; gap:10px; }
  .btn-warmup-add { padding:9px 16px; font-family:var(--sans); font-size:13px; font-weight:500; border-radius:7px; border:1px solid var(--border); background:var(--surface2); color:var(--text); cursor:pointer; transition:all 0.15s; display:flex; align-items:center; gap:6px; }
  .btn-warmup-add:hover { background:var(--surface); border-color:#555; }
  .btn-warmup-filter { padding:9px 16px; font-family:var(--sans); font-size:13px; border-radius:7px; border:1px solid var(--border); background:transparent; color:var(--muted); cursor:pointer; transition:all 0.15s; }
  .btn-warmup-filter:hover { color:var(--text); border-color:#555; }
  .btn-warmup-filter.active { color:var(--text); border-color:var(--muted); background:var(--surface2); }
  .warmup-filter-panel { display:none; position:absolute; margin-top:44px; background:var(--surface); border:1px solid var(--border); border-radius:8px; padding:8px; flex-direction:column; gap:2px; z-index:50; min-width:160px; box-shadow:0 8px 24px rgba(0,0,0,0.35); }
  .warmup-filter-panel.open { display:flex; }
  .warmup-filter-opt { padding:7px 10px; border-radius:6px; font-family:var(--mono); font-size:12px; color:var(--muted); cursor:pointer; background:none; border:none; text-align:left; }
  .warmup-filter-opt:hover { background:var(--surface2); color:var(--text); }
  .warmup-filter-opt.active { color:var(--text); background:var(--surface2); }

  .warmup-board { display:grid; grid-template-columns:repeat(5, 1fr); gap:14px; align-items:start; }
  .warmup-column { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:14px; display:flex; flex-direction:column; gap:8px; min-height:80px; }
  .warmup-column-header { display:flex; align-items:center; justify-content:space-between; padding:0 2px 6px; font-family:var(--mono); font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:0.06em; border-bottom:1px solid var(--border); margin-bottom:2px; }
  .warmup-column-count { color:var(--text); font-weight:600; }
  .warmup-column-empty { font-family:var(--mono); font-size:11px; color:var(--muted2); padding:10px 2px; }

  .warmup-card { background:var(--surface2); border:1px solid var(--border); border-radius:8px; padding:10px 12px; display:flex; flex-direction:column; gap:6px; cursor:pointer; transition:border-color 0.15s, opacity 0.15s; }
  .warmup-card:hover { border-color:#555; }
  .warmup-card.alive { background:var(--yes-bg); border-color:rgba(76, 175, 125, 0.3); }
  .warmup-card.dead { background:var(--no-bg); border-color:rgba(224, 96, 90, 0.3); }
  .warmup-card.dragging { opacity:0.4; }
  .warmup-card-top-row { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
  .warmup-card-num { font-family:var(--mono); font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:5px; }
  .warmup-card-warning { color:var(--maybe); font-size:12px; }
  .warmup-card-meta { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .warmup-card-proxy { font-family:var(--mono); font-size:9px; color:rgba(244, 244, 245, 0.35); white-space:nowrap; flex-shrink:0; }
  .warmup-card-actions { display:flex; justify-content:flex-end; }
  .btn-warmup-advance { padding:4px 9px; font-family:var(--mono); font-size:10px; border-radius:5px; border:1px solid var(--border); background:transparent; color:var(--muted); cursor:pointer; transition:all 0.15s; }
  .btn-warmup-advance:hover { color:var(--text); border-color:#555; background:var(--surface); }

  .warmup-column-more { font-family:var(--mono); font-size:11px; color:var(--muted); text-decoration:underline; cursor:pointer; padding:6px 2px 2px; background:none; border:none; text-align:left; }
  .warmup-column-more:hover { color:var(--text); }

  .warmup-column.drag-over { border-color:var(--accent); background:var(--surface2); }

  .warmup-impressions-wrap { display:flex; flex-direction:column; gap:3px; }
  .warmup-impressions-label { font-family:var(--mono); font-size:11px; }
  .warmup-impressions-label.good { color:var(--yes); }
  .warmup-impressions-label.bad { color:var(--no); }
  .warmup-impressions-label.neutral { color:var(--muted); }
  .warmup-impressions-bar-track { width:100%; height:5px; background:var(--bg); border-radius:3px; overflow:hidden; }
  .warmup-impressions-bar-fill { height:100%; border-radius:3px; transition:width 0.3s ease; }
  .warmup-impressions-bar-fill.good { background:var(--yes); }
  .warmup-impressions-bar-fill.bad { background:var(--no); }
  .warmup-impressions-bar-fill.neutral { background:var(--muted2); }

  .warmup-fast-entry { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:20px 22px; display:none; flex-direction:column; gap:14px; }
  .warmup-fast-entry.open { display:flex; }
  .warmup-fast-entry-title { font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; justify-content:space-between; }
  .warmup-fast-entry-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .btn-warmup-save-next { padding:13px; font-family:var(--sans); font-size:14px; font-weight:500; border-radius:8px; border:1px solid var(--border); background:var(--surface2); color:var(--text); cursor:pointer; transition:all 0.15s; display:flex; align-items:center; justify-content:center; gap:8px; }
  .btn-warmup-save-next:hover { background:var(--surface); border-color:#555; }

  .warmup-edit-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:200; display:none; align-items:center; justify-content:center; }
  .warmup-edit-overlay.open { display:flex; }
  .warmup-edit-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:480px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; }
  .warmup-edit-modal-header { padding:18px 22px 14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
  .warmup-edit-modal-title { font-size:14px; font-weight:600; }
  .warmup-edit-modal-body { padding:20px 22px; display:flex; flex-direction:column; gap:14px; overflow-y:auto; flex:1; }
  .warmup-edit-modal-body select, .warmup-edit-modal-body input, .warmup-edit-modal-body textarea { background:var(--surface2); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:9px 12px; font-family:var(--mono); font-size:12px; outline:none; width:100%; }
  .warmup-edit-modal-body textarea { resize:vertical; min-height:60px; font-family:var(--sans); line-height:1.5; }
  .warmup-edit-modal-footer { padding:14px 22px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:10px; flex-shrink:0; }
  .warmup-edit-section-title { font-family:var(--mono); font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:0.08em; padding-top:6px; border-top:1px solid var(--border); margin-top:4px; }
  .warmup-edit-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
  .warmup-edit-outcome-display { background:var(--surface2); border:1px solid var(--border); border-radius:6px; padding:9px 12px; font-family:var(--mono); font-size:12px; }
  .warmup-edit-outcome-display.alive { color:var(--yes); border-color:rgba(76, 175, 125, 0.3); }
  .warmup-edit-outcome-display.dead { color:var(--no); border-color:rgba(224, 96, 90, 0.3); }
  .warmup-edit-outcome-display.neutral { color:var(--muted); }

  /* ── PROJECTS TAB (editors + managers only) ─────────────────────────── */
  .projects-wrap { padding: 32px 28px; display: flex; flex-direction: column; gap: 20px; width: 100%; }
  .projects-actions-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }

  .filters { display:flex; gap:8px; flex-wrap:wrap; }
  .filter-pill { padding:6px 16px; border-radius:999px; border:1px solid var(--border); background:transparent; color:var(--muted); font-family:var(--mono); font-size:12px; cursor:pointer; transition:all 0.15s; }
  .filter-pill:hover { color:var(--text); border-color:#555; }
  .filter-pill.active { border-color:var(--accent); color:var(--accent); }

  .projects-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; }

  .project-card { background:var(--surface); border:1px solid var(--border); border-radius:12px; padding:20px; display:flex; flex-direction:column; gap:12px; }
  /* Fixed height (not max-height) so every card's image box is identical
     regardless of the source image's own aspect ratio — object-fit:cover
     only actually crops to fill when BOTH dimensions are constrained;
     max-height alone let each image keep its natural (varying) height,
     which is what made the grid look randomly sized. */
  .project-card-image { width:100%; height:160px; border-radius:8px; object-fit:cover; display:block; }
  .project-card-image-placeholder { display:flex; align-items:center; justify-content:center; background:var(--surface2); font-size:32px; }
  .project-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .project-card-title { font-size:13px; font-weight:600; margin:0; line-height:1.4; }
  .project-badge { font-family:var(--mono); font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; white-space:nowrap; border:1px solid var(--border); }
  .project-badge.open { border-color:rgba(76, 175, 125, 0.3); color:var(--yes); background:var(--yes-bg); }
  .project-badge.pending { border-color:rgba(232, 163, 61, 0.3); color:var(--maybe); background:var(--maybe-bg); }
  .project-badge.taken { border-color:var(--border); color:var(--muted); background:var(--surface2); }
  .project-card-desc { font-size:13px; color:var(--muted); line-height:1.5; margin:0; }

  .project-detail-toggles { display:flex; flex-direction:column; border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
  .project-detail-toggle { display:flex; justify-content:space-between; align-items:center; width:100%; padding:10px 2px; border:none; border-bottom:1px solid var(--border); background:transparent; color:var(--text); font-family:var(--mono); font-size:12px; cursor:pointer; text-align:left; }
  .project-detail-toggle:last-child { border-bottom:none; }
  .project-detail-toggle .caret { color:var(--muted2); font-size:10px; transition:transform 0.15s ease; }
  .project-detail-toggle.expanded .caret { transform:rotate(180deg); }
  .project-detail-panel { font-size:12px; color:var(--muted); line-height:1.6; padding:2px 2px 12px; border-bottom:1px solid var(--border); white-space:pre-line; }
  .project-detail-panel:last-child { border-bottom:none; }

  .project-card-meta { display:flex; gap:16px; font-family:var(--mono); font-size:12px; color:var(--muted); }
  .project-card-meta b { color:var(--text); }
  .project-card-link { font-family:var(--mono); font-size:12px; color:var(--accent); text-decoration:none; }
  .project-card-assigned { font-family:var(--mono); font-size:12px; color:var(--muted2); font-style:italic; }

  .project-applicants-box { border-top:1px solid var(--border); padding-top:12px; }
  .project-applicants-label { font-family:var(--mono); font-size:11px; color:var(--muted2); margin-bottom:8px; }
  .project-applicant-row { display:flex; justify-content:space-between; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); }
  .project-applicant-row:last-child { border-bottom:none; }
  .project-applicant-name { font-size:13px; font-weight:600; color:var(--text); }
  .project-applicant-link { font-family:var(--mono); font-size:11px; color:var(--muted); display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; text-decoration:none; }
  .project-applicant-link:hover { color:var(--accent); }
  .project-applicant-actions { display:flex; gap:6px; flex-shrink:0; }
  .project-mystatus { font-family:var(--mono); font-size:12px; padding:8px 0; }
  .project-mystatus.pending { color:var(--maybe); }
  .project-mystatus.approved { color:var(--yes); }
  .project-mystatus.rejected { color:var(--no); }

  .project-stage-list { border:1px solid var(--border); border-radius:8px; overflow:hidden; }
  .project-stage-row { display:flex; align-items:flex-start; gap:10px; padding:8px 10px; border-bottom:1px solid var(--border); }
  .project-stage-row:last-child { border-bottom:none; }
  .project-stage-number { flex-shrink:0; width:20px; height:20px; border-radius:50%; background:var(--surface2); color:var(--muted); font-family:var(--mono); font-size:11px; font-weight:600; display:flex; align-items:center; justify-content:center; margin-top:2px; }
  .project-stage-row textarea { flex:1; min-height:36px; border:none; background:transparent; padding:6px 0; resize:vertical; font-family:var(--sans); font-size:13px; color:var(--text); }
  .project-stage-row textarea:focus { outline:none; }

  .project-image-zone { border:1.5px dashed var(--border); border-radius:8px; padding:16px; text-align:center; font-family:var(--mono); font-size:12px; color:var(--muted); cursor:text; transition:border-color 0.15s, color 0.15s; }
  .project-image-zone:focus { outline:none; border-color:#555; color:var(--text); }
  .project-image-zone.uploading { border-color:#555; color:var(--text); }
  .project-image-zone img { max-width:100%; max-height:140px; border-radius:6px; display:block; margin:6px auto 0; }

  .project-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); z-index:200; display:none; align-items:center; justify-content:center; padding:20px; }
  .project-overlay.open { display:flex; }
  .project-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:480px; max-height:90vh; display:flex; flex-direction:column; overflow:hidden; }
  .project-modal-header { padding:18px 22px 14px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
  .project-modal-title { font-size:14px; font-weight:600; }
  .project-modal-body { padding:20px 22px; display:flex; flex-direction:column; gap:14px; overflow-y:auto; flex:1; }
  .project-modal-footer { padding:14px 22px; border-top:1px solid var(--border); display:flex; justify-content:flex-end; gap:10px; flex-shrink:0; }

  .project-video-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.75); z-index:250; display:none; align-items:center; justify-content:center; padding:20px; }
  .project-video-overlay.open { display:flex; }
  .project-video-modal { background:var(--surface); border:1px solid var(--border); border-radius:14px; width:100%; max-width:720px; overflow:hidden; }
  .project-video-modal-header { display:flex; justify-content:space-between; align-items:center; padding:10px 16px; border-bottom:1px solid var(--border); }
  .project-video-modal-header span { font-family:var(--mono); font-size:12px; color:var(--muted); }
  .project-video-modal iframe { width:100%; height:480px; border:none; display:block; }
  .project-video-fallback { padding:40px 20px; text-align:center; font-family:var(--mono); font-size:12px; color:var(--muted); }
  .project-video-fallback a { color:var(--accent); }

  /* Generic accent CTA (white bg / black text) and compact approve/reject
     buttons — not Projects-specific despite living here, reusable anywhere
     a prominent primary action or a small green/red decision pair is needed. */
  .btn-accent { padding:13px; font-family:var(--sans); font-size:14px; font-weight:500; border-radius:8px; border:none; background:var(--accent); color:var(--accent-text); cursor:pointer; transition:all 0.15s; }
  .btn-accent:hover { opacity:0.9; }
  .btn-accent:active { transform:scale(0.98); }
  .btn-approve { padding:7px 14px; font-family:var(--sans); font-size:12px; font-weight:500; border-radius:6px; border:1px solid rgba(76, 175, 125, 0.3); background:var(--yes-bg); color:var(--yes); cursor:pointer; transition:all 0.15s; }
  .btn-approve:hover { background:rgba(76, 175, 125, 0.25); border-color:var(--yes); }
  .btn-reject { padding:7px 14px; font-family:var(--sans); font-size:12px; font-weight:500; border-radius:6px; border:1px solid rgba(224, 96, 90, 0.3); background:var(--no-bg); color:var(--no); cursor:pointer; transition:all 0.15s; }
  .btn-reject:hover { background:rgba(224, 96, 90, 0.25); border-color:var(--no); }

  /* ── CHANNELS ANALYTICS TAB (editors + managers only) ────────────────── */
  .ca-editor-section { display:flex; flex-direction:column; gap:14px; margin-bottom:36px; }
  .ca-editor-header { display:flex; align-items:center; justify-content:space-between; gap:12px; }
  .ca-editor-name { font-size:17px; font-weight:700; color:var(--text); text-transform:capitalize; }
  .ca-editor-total { font-family:var(--mono); font-size:12px; font-weight:400; color:var(--muted2); text-transform:none; }
  .ca-editor-count { font-family:var(--mono); font-size:12px; font-weight:700; padding:4px 12px; border-radius:999px; }
  .ca-editor-count.ok { color:var(--yes); background:var(--yes-bg); }
  .ca-editor-count.low { color:var(--no); background:var(--no-bg); }

  .ca-warning { background:var(--no-bg); border:1.5px solid var(--no); border-radius:10px; padding:16px 20px; font-family:var(--sans); font-size:15px; font-weight:600; color:var(--no); display:flex; align-items:center; gap:10px; margin-bottom:4px; }

  .ca-overview { background:var(--surface); border:1.5px solid var(--border); border-radius:14px; padding:18px 20px; margin-bottom:28px; }
  .ca-overview-title { font-size:13px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:0.04em; margin-bottom:14px; }
  .ca-overview-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px; }
  .ca-overview-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 14px; border-radius:9px; font-family:var(--sans); }
  .ca-overview-row.ok { background:var(--yes-bg); }
  .ca-overview-row.low { background:var(--no-bg); }
  .ca-overview-name { font-size:13px; font-weight:600; color:var(--text); text-transform:capitalize; }
  .ca-overview-count { font-family:var(--mono); font-size:13px; font-weight:700; }
  .ca-overview-row.ok .ca-overview-count { color:var(--yes); }
  .ca-overview-row.low .ca-overview-count { color:var(--no); }

  .ca-channels-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(380px, 1fr)); gap:18px; }
  .ca-channel-card { background:var(--surface); border:1.5px solid var(--border); border-radius:14px; padding:20px 22px; display:flex; flex-direction:column; gap:16px; transition:border-color 0.2s; }
  .ca-channel-card.gold { border-color:rgba(76, 175, 125, 0.5); }
  .ca-channel-card.fail { border-color:rgba(224, 96, 90, 0.4); }
  /* No opacity treatment for .killed anymore — killed cards live only in
     the "Past channels" view now (see caViewMode in channels-analytics.js),
     never mixed alongside active ones, so there's no contrast left to
     signal with fading; dimming a whole grid of already-killed cards just
     hurt readability for no benefit. */

  .ca-channel-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .ca-channel-titles { min-width:0; }
  .ca-channel-niche { font-size:17px; font-weight:700; color:var(--text); line-height:1.3; }
  .ca-channel-link { font-family:var(--mono); font-size:11px; color:var(--muted); text-decoration:none; word-break:break-all; display:block; margin-top:3px; }
  .ca-channel-link:hover { color:var(--accent); text-decoration:underline; }
  .ca-channel-meta { font-family:var(--mono); font-size:11px; color:var(--muted2); margin-top:3px; }
  .ca-kill-btn { flex-shrink:0; width:26px; height:26px; border-radius:50%; border:1px solid var(--border); background:transparent; color:var(--muted); font-size:14px; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all 0.15s; }
  .ca-kill-btn:hover { border-color:var(--no); color:var(--no); background:var(--no-bg); }
  .ca-last-polled { font-family:var(--mono); font-size:10px; color:var(--muted2); }

  /* Hero stage banner — the "quest progress" summary, top of every card */
  .ca-stage-banner { display:flex; align-items:center; gap:12px; background:var(--surface2); border-radius:10px; padding:12px 14px; }
  .ca-stage-icon { font-size:26px; line-height:1; flex-shrink:0; }
  .ca-stage-text { flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
  .ca-stage-label { font-family:var(--sans); font-size:13px; font-weight:600; color:var(--text); }
  .ca-stage-bar-track { height:6px; background:var(--bg); border-radius:999px; overflow:hidden; }
  .ca-stage-bar-fill { height:100%; border-radius:999px; transition:width 0.4s ease; background:var(--muted); }
  .ca-stage-bar-fill.new { background:var(--muted); }
  .ca-stage-bar-fill.active { background:var(--maybe); }
  .ca-stage-bar-fill.gold { background:var(--yes); }
  .ca-stage-bar-fill.fail { background:var(--no); }
  .ca-stage-banner.gold { background:var(--yes-bg); }
  .ca-stage-banner.fail { background:var(--no-bg); }

  .ca-wave-section { border-top:1px solid var(--border); padding-top:14px; display:flex; flex-direction:column; gap:10px; }
  .ca-wave-header { display:flex; justify-content:space-between; align-items:center; }
  .ca-wave-name { font-family:var(--sans); font-size:13px; font-weight:700; color:var(--text); }
  .ca-wave-threshold { font-family:var(--mono); font-size:10px; font-weight:400; color:var(--muted2); }
  .ca-wave-status { font-family:var(--mono); font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px; }
  .ca-wave-status.pass { color:var(--yes); background:var(--yes-bg); }
  .ca-wave-status.fail { color:var(--no); background:var(--no-bg); }
  .ca-wave-status.pending { color:var(--muted); background:var(--bg); }

  /* 4-segment step tracker */
  .ca-step-dots { display:flex; gap:6px; }
  .ca-step-dot { flex:1; height:8px; border-radius:999px; background:var(--bg); border:1px solid var(--border); }
  .ca-step-dot.pending { background:var(--maybe-bg); border-color:rgba(232, 163, 61, 0.4); }
  .ca-step-dot.pass { background:var(--yes); border-color:var(--yes); }
  .ca-step-dot.fail { background:var(--no); border-color:var(--no); }
  .ca-step-dot.filled { background:var(--accent); border-color:var(--accent); }

  .ca-cumulative-wrap { display:flex; flex-direction:column; gap:6px; }
  .ca-cumulative-numbers { font-family:var(--mono); font-size:20px; font-weight:700; color:var(--text); }
  .ca-cumulative-numbers span { font-size:12px; font-weight:500; color:var(--muted); }

  .ca-mini-bar-track { height:5px; background:var(--bg); border-radius:999px; overflow:hidden; }
  .ca-mini-bar-track.big { height:8px; }
  .ca-mini-bar-fill { height:100%; border-radius:999px; transition:width 0.4s ease; }
  .ca-mini-bar-fill.pass { background:var(--yes); }
  .ca-mini-bar-fill.fail { background:var(--no); }
  .ca-mini-bar-fill.active { background:var(--maybe); }
  .ca-mini-bar-fill.neutral { background:var(--muted2); }

  .ca-video-cards-row { display:grid; grid-template-columns:repeat(auto-fill, minmax(140px, 1fr)); gap:10px; }
  .ca-video-card { background:var(--surface2); border:1px solid var(--border); border-radius:8px; overflow:hidden; text-decoration:none; display:flex; flex-direction:column; transition:border-color 0.15s; }
  .ca-video-card:hover { border-color:#555; }
  .ca-video-thumb { width:100%; aspect-ratio:16/9; object-fit:cover; display:block; background:var(--bg); }
  .ca-video-thumb-empty { display:flex; align-items:center; justify-content:center; font-size:20px; }
  .ca-video-info { padding:8px 9px; display:flex; flex-direction:column; gap:6px; }
  .ca-video-title { font-family:var(--sans); font-size:11px; color:var(--text); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .ca-video-views { font-family:var(--mono); font-size:11px; font-weight:700; }
  .ca-video-views.pass { color:var(--yes); }
  .ca-video-views.fail { color:var(--no); }
  .ca-video-views.neutral { color:var(--muted); }

  .ca-wave-empty { font-family:var(--mono); font-size:11px; color:var(--muted2); padding:8px 2px; }

  /* ── SCRIPTWRITING TAB (editors + managers only) ──────────────────────── */
  .sw-run-panel { background:var(--surface); border:1.5px solid var(--border); border-radius:14px; padding:18px 20px; margin-bottom:24px; display:flex; flex-direction:column; gap:12px; }
  .sw-run-row { display:flex; gap:10px; }
  .sw-url-input { flex:1; padding:12px 14px; font-family:var(--mono); font-size:13px; background:var(--surface2); border:1px solid var(--border); border-radius:8px; color:var(--text); }
  .sw-url-input:focus { outline:none; border-color:var(--accent); }
  .sw-progress { display:flex; flex-direction:column; gap:6px; }
  .sw-progress-label { font-family:var(--mono); font-size:11px; color:var(--muted); }
  .sw-progress-track { height:6px; background:var(--surface2); border-radius:999px; overflow:hidden; }
  .sw-progress-fill { height:100%; background:var(--yes); border-radius:999px; transition:width 0.3s ease; }

  .sw-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(420px, 1fr)); gap:18px; }
  .sw-card { background:var(--surface); border:1.5px solid var(--border); border-radius:14px; padding:20px 22px; display:flex; flex-direction:column; gap:14px; }
  .sw-card.failed { border-color:rgba(224, 96, 90, 0.4); }
  .sw-card.done { border-color:rgba(76, 175, 125, 0.3); }
  .sw-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:8px; }
  .sw-card-titles { min-width:0; }
  .sw-card-actions { display:flex; align-items:center; gap:8px; flex-shrink:0; }

  .sw-status { font-family:var(--mono); font-size:11px; font-weight:700; padding:4px 10px; border-radius:999px; white-space:nowrap; }
  .sw-status.running { color:var(--maybe); background:var(--maybe-bg); }
  .sw-status.done { color:var(--yes); background:var(--yes-bg); }
  .sw-status.fail { color:var(--no); background:var(--no-bg); }

  .sw-error { background:var(--no-bg); border:1px solid rgba(224, 96, 90, 0.3); border-radius:8px; padding:10px 12px; font-family:var(--mono); font-size:11px; color:var(--no); }

  .sw-meta-row { display:flex; flex-wrap:wrap; gap:12px; font-family:var(--mono); font-size:11px; color:var(--muted); }
  .sw-meta-row a { color:var(--muted); text-decoration:none; }
  .sw-meta-row a:hover { color:var(--accent); text-decoration:underline; }

  .sw-details { border-top:1px solid var(--border); padding-top:10px; }
  .sw-details summary { cursor:pointer; font-family:var(--sans); font-size:12px; font-weight:600; color:var(--muted); }
  .sw-details summary:hover { color:var(--text); }
  .sw-field { margin-top:12px; }
  .sw-field-label { font-family:var(--mono); font-size:10px; text-transform:uppercase; letter-spacing:0.04em; color:var(--muted2); margin-bottom:4px; }
  .sw-field-value { font-family:var(--sans); font-size:12.5px; color:var(--text); line-height:1.5; white-space:pre-wrap; }

  .sw-prompt-box { background:var(--surface2); border:1px solid var(--border); border-radius:10px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
  .sw-prompt-header { display:flex; justify-content:space-between; align-items:center; font-family:var(--sans); font-size:12px; font-weight:600; color:var(--text); }
  .sw-prompt-text { font-family:var(--mono); font-size:11px; color:var(--muted); white-space:pre-wrap; max-height:220px; overflow-y:auto; line-height:1.5; margin:0; }
