:root {
  /* ── Surface & Background ── */
  --bg:#f8fafc;--surface:#fff;--surface-alt:#f1f5f9;
  /* ── Borders ── */
  --border:#e2e8f0;--border-strong:#cbd5e1;
  /* ── Text ── */
  --text:#0f172a;--text-sec:#475569;--text-muted:#94a3b8;
  /* ── Accent (Primary) ── */
  --accent:#2563eb;--accent-h:#1d4ed8;--accent-bg:#eff6ff;--accent-border:#bfdbfe;
  /* ── Semantic Colors ── */
  --success:#059669;--success-bg:#d1fae5;--success-border:#6ee7b7;
  --error:#dc2626;--error-bg:#fee2e2;--error-border:#fecaca;
  --warn:#d97706;--warn-bg:#fef3c7;--warn-border:#fde68a;
  --purple:#7c3aed;--purple-bg:#ede9fe;--purple-border:#c4b5fd;
  /* ── System Bar ── */
  --bar:#0f172a;--bar-text:#e2e8f0;--bar-border:#334155;--bar-hover:#1e293b;
  /* ── Radius ── */
  --radius:8px;--radius-sm:4px;--radius-lg:12px;
  /* ── Typography ── */
  --mono:'SF Mono',Monaco,'Cascadia Code','Fira Code',monospace;
  --text-2xs:.62rem;--text-xs:.68rem;--text-sm:.72rem;--text-base:.8rem;--text-lg:.88rem;--text-xl:1rem;--text-2xl:1.2rem;
  /* ── Spacing Scale (v6.0.183) ── */
  --space-1:4px;--space-2:6px;--space-3:8px;--space-4:10px;--space-5:12px;--space-6:16px;--space-7:20px;--space-8:24px;
  /* ── Info Box Tokens ── */
  --info-bg:var(--accent-bg);--info-border:var(--accent-border);--info-text:var(--accent);
  --badge-radius:12px;--badge-pad:3px 10px;--badge-font:var(--text-xs);
  /* ── Shadows (Elevation) ── */
  --shadow-xs:0 1px 2px rgba(0,0,0,.05);
  --shadow-sm:0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(0,0,0,.1);
  --shadow-lg:0 12px 36px rgba(0,0,0,.15);
  --shadow-xl:0 20px 60px rgba(0,0,0,.2);
  /* ── Gradients ── */
  --grad-pipeline:linear-gradient(135deg,#dc2626,#f59e0b);
  --grad-progress:linear-gradient(90deg,#3b82f6,#06b6d4);
  --grad-seo:linear-gradient(90deg,#dc2626,#f59e0b);
  /* ── Focus ── */
  --focus-ring:0 0 0 3px rgba(37,99,235,.15);
  /* ── Overlay ── */
  --overlay:rgba(15,23,42,.55);
  /* ── Transitions ── */
  --transition:.15s ease;--transition-slow:.25s ease;
  /* ── Z-Index Scale (v4.38) ── */
  --z-sticky:10;--z-nav:40;--z-bar:50;--z-menu:60;--z-overlay:100;--z-info:110;--z-progress:120;--z-help:150;--z-auth:200;--z-toast:250;--z-float:300;--z-dashboard:350;--z-modal-ai:400;--z-lightbox:450;
  /* ── Extended Palette (for dark mode compatibility) ── */
  --on-accent:#fff;--cost:#b45309;
  --accent-dark:#1d4ed8;--success-text:#065f46;--error-text:#991b1b;--warn-text:#92400e;--purple-dark:#5b21b6;
  --error-light:#f87171;--warn-light:#fbbf24;--success-light:#34d399;--log-info:#60a5fa;
  --row-even:#fafbfc;--row-hover:#f0f4ff;--changed-bg:#fef9c3;--changed-border:#fbbf24;
  /* ── Extended Palette (audit item 3.5) ── */
  --success-darker:#047857;--error-hover:#b91c1c;--error-darker:#7f1d1d;
  --bar-text-bright:#f1f5f9;--bar-text-dim:#cbd5e1;
  --accent-bg-deep:#dbeafe;--accent-text:#1e40af;
  --pink:#ec4899;--pink-bg:#fce7f3;--pink-dark:#be185d;--pink-darker:#9d174d;
  --cyan:#06b6d4;--cyan-bg:#cffafe;--cyan-dark:#0e7490;
  --model-haiku:#0e7490;--model-haiku-bg:#ecfeff;
  --model-sonnet:#1d4ed8;--model-sonnet-bg:#eff6ff;
  --model-opus:#6d28d9;--model-opus-bg:#f5f3ff;
  --model-gemini:#d97706;--model-gemini-bg:#fffbeb;
  --cell-ai-bg:#dbeafe;--cell-ai-border:#93c5fd;
  --cell-user-bg:#dcfce7;--cell-user-border:#86efac;
  --code-indigo-bg:#e0e7ff;--code-indigo-text:#3730a3;
  --indigo:#6366f1;--purple-medium:#8b5cf6;--purple-text:#6b21a8;--purple-border-light:#c084fc;--purple-bg-deep:#ddd6fe;
  --warn-darker:#854d0e;--warn-accent:#facc15;--amber:#f59e0b;
  --diff-del-bg:#fecaca;--diff-ins-bg:#dcfce7;
  --grad-expert:linear-gradient(135deg,#6366f1,#8b5cf6);--grad-expert-h:linear-gradient(135deg,#4f46e5,#7c3aed);
}
/* ── DARK THEME ── */
[data-theme="dark"]{
  --bg:#0f172a;--surface:#1e293b;--surface-alt:#334155;
  --border:#475569;--border-strong:#64748b;
  --text:#e2e8f0;--text-sec:#94a3b8;--text-muted:#64748b;
  --accent:#3b82f6;--accent-h:#60a5fa;--accent-bg:rgba(59,130,246,.12);--accent-border:rgba(59,130,246,.3);
  --success:#22c55e;--success-bg:rgba(34,197,94,.12);--success-border:rgba(34,197,94,.3);
  --error:#ef4444;--error-bg:rgba(239,68,68,.12);--error-border:rgba(239,68,68,.3);
  --warn:#f59e0b;--warn-bg:rgba(245,158,11,.12);--warn-border:rgba(245,158,11,.3);
  --purple:#a78bfa;--purple-bg:rgba(167,139,250,.12);--purple-border:rgba(167,139,250,.3);
  --bar:#020617;--bar-text:#e2e8f0;--bar-border:#1e293b;--bar-hover:#0f172a;
  --overlay:rgba(0,0,0,.65);
  --info-bg:rgba(59,130,246,.1);--info-border:rgba(59,130,246,.25);--info-text:var(--accent);
  --on-accent:#fff;--cost:#f59e0b;
  --accent-dark:#93c5fd;--success-text:#86efac;--error-text:#fca5a5;--warn-text:#fde68a;--purple-dark:#c4b5fd;
  --error-light:#f87171;--warn-light:#fbbf24;--success-light:#34d399;--log-info:#60a5fa;
  --row-even:rgba(255,255,255,.02);--row-hover:rgba(59,130,246,.08);
  --changed-bg:rgba(245,158,11,.15);--changed-border:rgba(251,191,36,.4);
  --shadow-xs:0 1px 2px rgba(0,0,0,.2);--shadow-sm:0 1px 3px rgba(0,0,0,.3);
  --shadow-md:0 4px 12px rgba(0,0,0,.4);--shadow-lg:0 12px 36px rgba(0,0,0,.5);--shadow-xl:0 20px 60px rgba(0,0,0,.6);
  --focus-ring:0 0 0 3px rgba(59,130,246,.25);
  --grad-pipeline:linear-gradient(135deg,#ef4444,#f59e0b);--grad-progress:linear-gradient(90deg,#3b82f6,#06b6d4);--grad-seo:linear-gradient(90deg,#ef4444,#f59e0b);
  /* ── Extended Dark Palette ── */
  --success-darker:#34d399;--error-hover:#f87171;--error-darker:#991b1b;
  --bar-text-bright:#f1f5f9;--bar-text-dim:#94a3b8;
  --accent-bg-deep:rgba(59,130,246,.18);--accent-text:#93c5fd;
  --pink:#f472b6;--pink-bg:rgba(236,72,153,.12);--pink-dark:#f9a8d4;--pink-darker:#f472b6;
  --cyan:#22d3ee;--cyan-bg:rgba(34,211,238,.12);--cyan-dark:#67e8f9;
  --model-haiku:#67e8f9;--model-haiku-bg:rgba(34,211,238,.08);
  --model-sonnet:#93c5fd;--model-sonnet-bg:rgba(59,130,246,.08);
  --model-opus:#c4b5fd;--model-opus-bg:rgba(139,92,246,.08);
  --model-gemini:#fbbf24;--model-gemini-bg:rgba(251,191,35,.08);
  --cell-ai-bg:rgba(59,130,246,.15);--cell-ai-border:rgba(59,130,246,.3);
  --cell-user-bg:rgba(34,197,94,.15);--cell-user-border:rgba(34,197,94,.3);
  --code-indigo-bg:rgba(99,102,241,.12);--code-indigo-text:#a5b4fc;
  --indigo:#818cf8;--purple-medium:#a78bfa;--purple-text:#c4b5fd;--purple-border-light:rgba(167,139,250,.4);--purple-bg-deep:rgba(167,139,250,.25);
  --warn-darker:#fde68a;--warn-accent:#fbbf24;--amber:#f59e0b;
  --diff-del-bg:rgba(239,68,68,.2);--diff-ins-bg:rgba(34,197,94,.2);
  --grad-expert:linear-gradient(135deg,#818cf8,#a78bfa);--grad-expert-h:linear-gradient(135deg,#6366f1,#8b5cf6);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}
.app{width:calc(100% - 32px);max-width:100%;margin:0 auto;padding:12px 0}
/* Global focus-visible — keyboard accessibility (unified ring) */
:focus-visible{outline:none;box-shadow:var(--focus-ring)}
button:focus-visible,.btn:focus-visible,.sys-btn:focus-visible,.mode-btn:focus-visible,.help-btn:focus-visible,.pag-num:focus-visible,.pag-btn:focus-visible,.bulk-btn:focus-visible,.pipe-step:focus-visible,.col-sel-toggle:focus-visible,.sec-toggle:focus-visible,.usearch-mode:focus-visible,.csv-mode-btn:focus-visible,.log-f:focus-visible{outline:none;box-shadow:var(--focus-ring)}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--focus-ring)}
/* Unified shake animation (single definition) */
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
/* Utility classes */
.hidden{display:none!important}
/* SVG icon inline defaults */
.sys-menu-item svg,.btn svg{vertical-align:-.125em}
.pipe-grad-badge{background:var(--grad-pipeline);color:var(--on-accent)}

/* ── SYSTEM BAR ── */
.sys-bar{background:var(--bar);color:var(--bar-text);padding:10px 20px;display:flex;align-items:center;gap:20px;border-radius:var(--radius);margin:0 16px 12px;font-size:var(--text-base);flex-wrap:wrap}
.sys-logo{height:36px;width:auto;border-radius:var(--radius);flex-shrink:0;object-fit:contain;background:var(--surface);padding:6px 10px;box-shadow:var(--shadow-sm)}
.sys-bar .sys-item{display:flex;align-items:center;gap:6px;white-space:nowrap}
.sys-bar .sys-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.sys-bar .sys-dot.ok{background:var(--success-border)}.sys-bar .sys-dot.err{background:var(--error-light)}.sys-bar .sys-dot.pen{background:var(--warn-light);animation:pulse 1.5s infinite}.sys-bar .sys-dot.ok.checking{animation:pulseGreen .8s ease-in-out 1}
.sys-bar .sys-label{color:var(--text-muted);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.5px}
.sys-bar .sys-val{color:var(--bar-text-bright);font-weight:600}
.sys-bar .sys-sep{width:1px;height:20px;background:var(--bar-border)}
.sys-bar .sys-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.sys-version{font-size:.65rem;color:var(--text-muted);font-family:var(--mono)}
.sys-btn{padding:4px 12px;border:1px solid var(--bar-border);border-radius:var(--radius-sm);background:transparent;color:var(--bar-text-dim);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:var(--transition)}
.sys-btn:hover{background:var(--bar-hover);border-color:var(--border-strong);color:var(--on-accent)}
/* System menu dropdown */
.sys-menu-wrap{position:relative}
.sys-menu{display:none;position:absolute;top:100%;right:0;margin-top:6px;background:var(--bar);border:1px solid var(--bar-border);border-radius:var(--radius);min-width:220px;box-shadow:var(--shadow-lg);z-index:60;overflow:hidden}
.sys-menu.open{display:block}
.sys-menu-item{padding:10px 16px;font-size:var(--text-base);color:var(--bar-text);cursor:pointer;transition:var(--transition);display:flex;align-items:center;gap:8px;white-space:nowrap}
.sys-menu-item:hover{background:var(--bar-hover)}
.sys-menu-item.sys-menu-danger{color:var(--error-light)}
.sys-menu-item.sys-menu-danger:hover{background:var(--error-darker)}
.sys-menu-sep{height:1px;background:var(--bar-border);margin:2px 0}
#sysMenuWorkTime{cursor:default}
#sysMenuWorkTime:hover{background:transparent}
/* ── Cost display in sys-bar ── */
.sys-cost-item{background:rgba(245,158,11,.12);border-radius:var(--radius-sm);padding:4px 10px!important;border:1px solid rgba(245,158,11,.3)}
.sys-cost-value{color:var(--warn-light);font-weight:700;font-family:var(--mono);font-size:.82rem}
.sys-cost-pln{color:var(--text-muted);font-size:var(--text-xs);font-family:var(--mono)}
.sys-cost-total{font-size:.58rem;color:var(--text-muted)}
@keyframes costPulse{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}
.sys-cost-bump{animation:costPulse .3s ease}
/* ── Undo buttons ── */
.pipe-undo-btn{background:none;border:1px solid var(--border-strong);color:var(--text-muted);border-radius:var(--radius-sm);padding:2px 8px;font-size:var(--text-xs);cursor:pointer;transition:var(--transition);white-space:nowrap}
.pipe-undo-btn:hover{background:var(--surface-alt);color:var(--text);border-color:var(--accent)}
.pipe-undo-btn:disabled{opacity:.3;cursor:not-allowed}
.pipe-undo-bar{display:flex;gap:6px;align-items:center;margin-top:6px;padding:6px 10px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.72rem}
/* ── Column edit header button ── */
.pipe-col-edit-btn{display:inline-block;width:14px;height:14px;line-height:14px;text-align:center;font-size:.6rem;background:rgba(37,99,235,.15);color:var(--accent);border-radius:3px;cursor:pointer;margin-left:4px;border:none;vertical-align:middle;transition:var(--transition)}
.pipe-col-edit-btn:hover{background:var(--accent);color:var(--on-accent)}
/* ── Sortable column headers ── */
.pipe-th-sorted,.sg-th-sorted{background:rgba(37,99,235,.08)!important}
th[onclick]{transition:background .15s}
th[onclick]:hover{background:rgba(37,99,235,.06)!important}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes pulseGreen{0%{box-shadow:0 0 0 0 rgba(52,211,153,.7)}50%{box-shadow:0 0 0 4px rgba(52,211,153,.3)}100%{box-shadow:0 0 0 0 rgba(52,211,153,0)}}
/* ── MODE SWITCH ── */
.mode-bar{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px;margin:0 16px 12px}
.mode-btn{flex:1;padding:9px 16px;border:none;border-radius:var(--radius-sm);font-size:.84rem;font-weight:600;cursor:pointer;transition:var(--transition);background:transparent;color:var(--text-sec);text-align:center}
.mode-btn:hover{background:var(--surface-alt);color:var(--text)}
.mode-btn.active{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 3px rgba(37,99,235,.25)}

/* ── PANELS ── */
.panel{display:none;margin:0 16px}.panel.active{display:block}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:12px}
.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.card-title{font-size:.82rem;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:.4px}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.fg{flex:1;min-width:120px}
.fg label{display:block;font-size:.72rem;font-weight:600;margin-bottom:3px;color:var(--text-sec);text-transform:uppercase;letter-spacing:.3px}
.fg .req{color:var(--error)}
input,select,textarea{width:100%;padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.84rem;font-family:inherit;background:var(--surface);color:var(--text);transition:var(--transition)}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
textarea{resize:vertical;min-height:44px}

/* ── BUTTONS ── */
.btn{padding:7px 14px;border:none;border-radius:var(--radius-sm);font-size:var(--text-base);cursor:pointer;font-weight:600;transition:var(--transition);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn-pri{background:var(--accent);color:var(--on-accent)}.btn-pri:hover:not(:disabled){background:var(--accent-h)}
.btn-sec{background:var(--surface);color:var(--text-sec);border:1px solid var(--border)}.btn-sec:hover:not(:disabled){background:var(--surface-alt);border-color:var(--border-strong)}
.btn-success{background:var(--success);color:var(--on-accent)}.btn-success:hover:not(:disabled){background:var(--success-darker)}
.btn-danger{background:var(--error);color:var(--on-accent)}.btn-danger:hover:not(:disabled){background:var(--error-hover)}
.btn-ghost{background:transparent;color:var(--text-sec);border:none}.btn-ghost:hover{color:var(--text);background:var(--surface-alt)}
.btn-sm{padding:4px 10px;font-size:var(--text-sm)}
.btn-xs{padding:2px 8px;font-size:var(--text-xs)}
.btn-outline{background:transparent;color:var(--accent);border:1.5px solid var(--accent)}.btn-outline:hover:not(:disabled){background:var(--accent);color:var(--on-accent)}.btn-outline:disabled{opacity:.3}
.btn-fix-outline{color:var(--error);border:1px solid var(--error);font-weight:600;background:transparent}.btn-fix-outline:hover:not(:disabled){background:rgba(220,38,38,.06)}
.btn-fix-outline.btn-success{color:#fff;border-color:var(--success);background:var(--success)}.btn-fix-outline.btn-success:hover:not(:disabled){background:var(--success-darker)}
.spinner{display:inline-block;width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .6s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* ── CREATE PRODUCT CARDS ── */
.prod-card{border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:10px;position:relative;background:var(--surface)}
.prod-card-del{position:absolute;top:8px;right:8px;background:var(--error-bg);color:var(--error);border:1px solid var(--error-border);border-radius:var(--radius-sm);width:26px;height:26px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:var(--transition)}
.prod-card-del:hover{background:var(--error);color:var(--on-accent)}
.sec-toggle{background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 12px;width:100%;text-align:left;cursor:pointer;font-size:.75rem;font-weight:600;color:var(--text-sec);margin-bottom:6px;display:flex;justify-content:space-between;align-items:center;transition:var(--transition);text-transform:uppercase;letter-spacing:.3px}
.sec-toggle:hover{background:var(--border);border-color:var(--border-strong)}
.sec-toggle .arr{transition:transform .2s;font-size:.6rem}.sec-toggle .arr.open{transform:rotate(90deg)}
.sec-body{display:none;padding:8px 4px}.sec-body.open{display:block}

/* ── FETCH CONTROL (legacy) ── */
.fetch-control{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}

/* ── UNIVERSAL SEARCH MODULE ── */
.usearch{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.usearch-modes{display:flex;gap:2px;background:var(--surface-alt);border:1px solid var(--border);border-radius:6px;padding:2px;flex-shrink:0}
.usearch-mode{padding:4px 10px;border:none;border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:600;cursor:pointer;background:transparent;color:var(--text-sec);transition:var(--transition);white-space:nowrap;line-height:1.3}
.usearch-mode:hover{background:var(--surface);color:var(--text)}
.usearch-mode.active{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 3px rgba(37,99,235,.2)}
.usearch-inputs{display:flex;gap:6px;align-items:center;flex:1;min-width:0}
.usearch-field{display:flex;gap:4px;align-items:center}
.usearch-field input,.usearch-field select{padding:5px 8px;font-size:.78rem;height:30px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.usearch-field input:focus,.usearch-field select:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}
.usearch-field input::placeholder{color:var(--text-muted);font-size:.72rem}
.usearch-hint{font-size:.62rem;color:var(--text-muted);white-space:nowrap}
.usearch-hint.ok{color:var(--success)}.usearch-hint.warn{color:var(--warn)}.usearch-hint.err{color:var(--error)}
.usearch-sep{color:var(--text-muted);font-size:.72rem;line-height:1}
.usearch .btn{height:30px;padding:0 12px;font-size:.72rem}
.usearch-count{font-size:.72rem;font-weight:600;color:var(--text-sec);font-family:var(--mono)}
/* ── COLUMN SELECTOR ── */
.col-selector{border:1px solid var(--border);border-radius:var(--radius);margin-top:10px;background:var(--surface);overflow:hidden}
.col-sel-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-alt);border:none;cursor:pointer;font-size:.78rem;font-weight:600;color:var(--text-sec);text-transform:uppercase;letter-spacing:.4px;transition:var(--transition)}
.col-sel-toggle:hover{background:var(--border)}
.col-sel-toggle .sel-summary{font-weight:400;font-size:.72rem;color:var(--text-muted);text-transform:none;letter-spacing:0}
.col-sel-toggle .sel-arrow{font-size:.6rem;transition:transform .2s}.col-sel-toggle .sel-arrow.open{transform:rotate(180deg)}
.col-sel-body{display:none;padding:12px 14px 14px}
.col-sel-body.open{display:block}
.col-sel-actions{display:flex;gap:6px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.col-sel-groups{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.col-grp{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.col-grp-head{display:flex;align-items:center;gap:8px;padding:7px 10px;background:var(--surface-alt);border-bottom:1px solid var(--border);font-size:.72rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.4px}
.col-grp-head input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.col-grp-head .grp-count{margin-left:auto;font-weight:400;font-size:.65rem;color:var(--text-muted)}
.col-grp-items{padding:6px 10px}
.col-grp-items label{display:flex;align-items:center;gap:7px;padding:6px 4px;font-size:.76rem;color:var(--text);cursor:pointer;transition:.1s;border-radius:3px;min-height:36px}
.col-grp-items label:hover{color:var(--accent)}
.col-grp-items input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.col-grp-items .field-key{font-family:var(--mono);font-size:.62rem;color:var(--text-muted);margin-left:auto}

/* ── CSV MODE BAR ── */
.csv-mode-bar{display:flex;gap:4px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:4px;margin-bottom:14px}
.csv-mode-btn{flex:1;padding:9px 16px;border:none;border-radius:var(--radius-sm);font-size:.82rem;font-weight:600;cursor:pointer;transition:var(--transition);background:transparent;color:var(--text-sec);text-align:center}
.csv-mode-btn:hover{background:var(--surface-alt);color:var(--text)}
.csv-mode-btn.active{background:var(--accent);color:var(--on-accent);box-shadow:0 1px 3px rgba(37,99,235,.25)}
.csv-mode-expert{background:var(--grad-expert);color:var(--on-accent);border-color:var(--indigo)}
.csv-mode-expert:hover{background:var(--grad-expert-h)}

/* ── CSV IMPORT/EXPORT TAB ── */
.csv-section{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:14px;overflow:hidden}
.csv-section-head{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--surface-alt);border-bottom:1px solid var(--border);font-size:.82rem;font-weight:700;color:var(--text);flex-wrap:wrap;min-width:0;overflow:hidden}
.csv-section-head .csv-step{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.72rem;font-weight:800;flex-shrink:0}
.csv-section-body{padding:16px}
.csv-warn{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;border-radius:var(--radius-sm);font-size:.78rem;line-height:1.5;margin-bottom:10px}
.csv-warn-info{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent-text)}
.csv-warn-warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}
.csv-warn-danger{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}
.csv-warn .csv-warn-icon{font-size:1.1rem;flex-shrink:0;line-height:1}
/* v4.38: Collapsible info boxes */
details.pipe-info-collapsible{display:block;cursor:default}
details.pipe-info-collapsible>span{display:block;margin-top:6px}
.pipe-info-summary{cursor:pointer;font-weight:600;font-size:.74rem;color:var(--accent-text);list-style:none;display:flex;align-items:center;gap:6px}
.pipe-info-summary::-webkit-details-marker{display:none}
.pipe-info-summary::before{content:"";display:inline-block;width:0;height:0;border-left:5px solid currentColor;border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s}
details.pipe-info-collapsible[open]>.pipe-info-summary::before{transform:rotate(90deg)}
/* v6.0.59: Unified mode info panels */
.pipe-mode-info{padding:14px 16px;background:var(--accent-bg, rgba(59,130,246,0.04));border:1px solid var(--accent-border, #bfdbfe);border-radius:10px;margin-bottom:16px;font-size:.78rem;line-height:1.5;color:var(--text-sec)}
.pipe-mode-info strong{color:var(--accent);font-size:.82rem}
.pipe-mode-info code{font-size:.72rem;padding:1px 5px;border-radius:4px;background:var(--surface-alt, #f1f5f9)}
.csv-param-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin:12px 0}
.csv-param-grp{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.csv-param-grp-head{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--surface-alt);border-bottom:1px solid var(--border);font-size:.7rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.3px}
.csv-param-grp-head input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.csv-param-grp-head .param-cnt{margin-left:auto;font-weight:400;font-size:.62rem;color:var(--text-muted)}
.csv-param-items{padding:5px 10px}
.csv-param-items label{display:flex;align-items:center;gap:7px;padding:6px 4px;font-size:.74rem;color:var(--text);cursor:pointer;min-height:36px}
.csv-param-items label:hover{color:var(--accent)}
.csv-param-items input[type="checkbox"]{accent-color:var(--accent);width:16px;height:16px;cursor:pointer}
.csv-upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:16px 24px;text-align:center;cursor:pointer;transition:.2s;background:var(--surface)}
.csv-upload-zone:hover,.csv-upload-zone.drag-over{border-color:var(--accent);background:var(--accent-bg)}
.csv-upload-zone .upload-icon{font-size:1.4rem;color:var(--text-muted);margin-bottom:4px}
.csv-upload-zone .upload-text{font-size:.82rem;color:var(--text-sec);margin-bottom:4px}
.csv-upload-zone .upload-hint{font-size:.7rem;color:var(--text-muted)}
.csv-preview{margin-top:12px;overflow-x:auto;max-height:40vh;border:1px solid var(--border);border-radius:var(--radius)}
.csv-preview table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.csv-preview th{background:var(--surface-alt);padding:6px 8px;text-align:left;font-size:var(--text-xs);font-weight:700;color:var(--text-sec);text-transform:uppercase;border-bottom:2px solid var(--border-strong);position:sticky;top:0}
.csv-preview td{padding:5px 8px;border-bottom:1px solid var(--border);vertical-align:top;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.csv-preview tr:nth-child(even) td{background:var(--row-even)}
.csv-preview .csv-diff{background:var(--warn-bg);font-weight:600}
.csv-preview .csv-new{background:var(--success-bg);font-weight:600}
.csv-preview .csv-miss{background:var(--error-bg);color:var(--text-muted);font-style:italic}
.csv-summary{display:flex;gap:14px;flex-wrap:wrap;padding:10px 0;font-size:.8rem}
.csv-summary .csv-stat{display:flex;align-items:center;gap:5px;font-weight:600}
.csv-summary .csv-stat .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* ── STATUS BADGES ── */
.st{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;font-family:var(--mono)}
.st-clean{background:var(--surface-alt);color:var(--text-muted)}
.st-edited{background:var(--warn-bg);color:var(--warn-text)}
.st-ready{background:var(--accent-bg);color:var(--accent-dark)}
.st-syncing{background:var(--purple-bg);color:var(--purple)}
.st-synced{background:var(--success-bg);color:var(--success)}
.st-warn{background:var(--warn-bg);color:var(--warn)}
.st-success{background:var(--success-bg);color:var(--success)}
.st-error{background:var(--error-bg);color:var(--error)}

/* ── DATA GRID ── */
.grid-wrap{overflow-x:auto;max-height:62vh;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}
table{width:100%;border-collapse:collapse;font-size:var(--text-base);table-layout:auto}
thead{position:sticky;top:0;z-index:3}
.col-group{background:var(--surface-alt);text-align:center;padding:4px 6px;font-size:.65rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border)}
.col-group:last-child{border-right:none}
th{background:var(--surface-alt);padding:7px 6px;text-align:center;font-weight:700;font-size:var(--text-xs);color:var(--text-sec);border-bottom:2px solid var(--border-strong);border-right:1px solid var(--border);white-space:nowrap;user-select:none;overflow:hidden;text-overflow:ellipsis;position:relative;text-transform:uppercase;letter-spacing:.3px}
th:last-child{border-right:none}
th.ck{width:36px;text-align:center}
th.w-id{min-width:55px}th.w-code{min-width:90px}th.w-ean{min-width:100px}
th.w-name{min-width:170px}th.w-desc{min-width:150px}th.w-ldesc{min-width:190px}
th.w-prod{min-width:140px}th.w-num{min-width:80px}th.w-cat{min-width:80px}
th.w-meta{min-width:160px}th.w-st{min-width:70px}th.w-ext{min-width:90px}
th .rh{position:absolute;right:0;top:0;bottom:0;width:4px;cursor:col-resize;background:transparent}
th .rh:hover{background:var(--accent)}
/* ── Column drag & drop ── */
th[draggable="true"]{cursor:grab}
th[draggable="true"]:active{cursor:grabbing}
th.col-dragging{opacity:.35;background:var(--accent-bg)!important}
th.col-drag-over{background:var(--accent-bg)!important;box-shadow:inset 3px 0 0 var(--accent)}
td{padding:6px 6px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);vertical-align:top;overflow:hidden}
td:last-child{border-right:none}
td input,td textarea,td select{border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 6px;font-size:var(--text-base);background:var(--surface);width:100%;transition:var(--transition);font-family:inherit}
td input:hover,td textarea:hover,td select:hover{border-color:var(--border-strong)}
td input:focus,td textarea:focus,td select:focus{border-color:var(--accent);background:var(--surface);box-shadow:var(--focus-ring)}
td.changed input,td.changed textarea,td.changed select{background:var(--changed-bg);border-color:var(--changed-border)}
td.ean-invalid input{background:var(--error-bg)!important;border-color:var(--error)!important;box-shadow:0 0 0 2px rgba(239,68,68,.15)}
input.input-error{background:var(--error-bg)!important;border-color:var(--error)!important;box-shadow:0 0 0 2px rgba(239,68,68,.15);animation:shake .3s}
td.synced-change input,td.synced-change textarea,td.synced-change select{background:var(--success-bg);border-color:var(--success-light);transition:background 2s ease}
td.readonly-col input{background:var(--surface-alt)!important;color:var(--text-muted);cursor:not-allowed;border-color:var(--border)}
td.id-col{font-family:var(--mono);font-weight:700;font-size:.8rem;padding:9px 6px;white-space:nowrap}
td.id-col a{color:var(--accent);text-decoration:none}
td.id-col a:hover{text-decoration:underline;color:var(--accent-h)}
td.st-col{padding:8px 4px;text-align:center}
td.num-col input{text-align:center}
td.text-col textarea{text-align:left;line-height:1.4}
/* Group separators — thicker right border on last column of each group */
th.grp-end,td.grp-end{border-right:2px solid var(--border-strong)!important}
tr:nth-child(even) td{background:var(--row-even)}
tr:hover td{background:var(--row-hover)}
tr.selected td{background:var(--accent-bg)}
.no-data{text-align:center;padding:48px;color:var(--text-muted);font-size:.85rem}

/* ── COLUMN FILTER ROW (Excel-style) ── */
.col-filter-row td{background:var(--surface-alt);padding:3px 4px;border-bottom:1px solid var(--border-strong);vertical-align:middle}
.col-filter-select,.pipe-col-filter-select{width:100%;padding:3px 5px;font-size:.7rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-sec);cursor:pointer;font-family:inherit;appearance:auto;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.col-filter-select:focus,.pipe-col-filter-select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}
.col-filter-select.filter-active,.pipe-col-filter-select.filter-active{border-color:var(--accent);background:var(--accent-bg);color:var(--text);font-weight:600}
.col-filter-clear-btn{border:none;background:transparent;color:var(--text-muted);font-size:.75rem;cursor:pointer;padding:2px 4px;border-radius:var(--radius-sm);transition:var(--transition);line-height:1}
.col-filter-clear-btn:hover{color:var(--error);background:var(--error-bg)}

/* ── BULK EDIT ROW ── */
.bulk-edit-row td{background:var(--accent-bg);border-bottom:2px solid var(--accent);padding:5px 4px;vertical-align:middle}
.bulk-edit-label{font-size:.6rem;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.4px;text-align:center;line-height:1.2;white-space:nowrap}
.bulk-edit-cell{display:flex;align-items:center;gap:3px}
.bulk-edit-cell input[type="checkbox"]{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0}
.bulk-edit-cell .bulk-edit-input{flex:1;min-width:0;padding:4px 5px;font-size:.76rem;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);color:var(--text-muted);transition:var(--transition);width:100%}
.bulk-edit-cell .bulk-edit-input:disabled{opacity:.5;cursor:not-allowed}
.bulk-edit-cell.active .bulk-edit-input{background:var(--surface);color:var(--text);border-color:var(--accent);opacity:1;cursor:text;box-shadow:var(--focus-ring)}
.bulk-edit-cell.active .bulk-edit-input:focus{border-color:var(--accent-h);box-shadow:var(--focus-ring)}
.bulk-edit-apply{flex-shrink:0;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:var(--success);color:var(--on-accent);font-size:var(--text-base);font-weight:700;cursor:pointer;display:none;align-items:center;justify-content:center;transition:var(--transition);line-height:1}
.bulk-edit-apply:hover{background:var(--success-darker);transform:scale(1.08)}
.bulk-edit-cell.active .bulk-edit-apply{display:inline-flex}

/* ── STATS BAR ── */
.stats-bar{display:flex;gap:16px;margin-bottom:10px;font-size:.78rem;color:var(--text-sec);align-items:center;flex-wrap:wrap}
.stats-bar strong{color:var(--text)}
.stats-bar .status-summary{display:flex;gap:6px;margin-left:auto}

/* ── SEARCH BAR ── */
.search-bar{display:flex;gap:10px;align-items:center;margin-bottom:10px;padding:10px 14px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius)}
.search-bar input{flex:1;padding:8px 14px 8px 36px;border:2px solid var(--border);border-radius:var(--radius);font-size:.85rem;background:var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2394a3b8' viewBox='0 0 16 16'%3E%3Cpath d='M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85zm-5.44.156a5 5 0 1 1 0-10 5 5 0 0 1 0 10z'/%3E%3C/svg%3E") no-repeat 12px center;transition:var(--transition)}
.search-bar input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}
.search-info{font-size:.75rem;color:var(--text-sec);white-space:nowrap}.search-info strong{color:var(--accent)}
.match-badge{display:inline-block;padding:1px 5px;border-radius:3px;font-size:.6rem;font-weight:700;letter-spacing:.3px;vertical-align:middle;margin-left:3px}
.match-sku{background:var(--accent-bg-deep);color:var(--accent-dark)}.match-ean{background:var(--pink-bg);color:var(--pink-dark)}.match-name{background:var(--success-bg);color:var(--success-text)}
tr.search-hidden{display:none}

/* ── BULK ACTION BAR ── */
.bulk-bar{position:fixed;bottom:0;left:0;right:0;background:var(--bar);color:var(--bar-text);padding:12px 24px;display:flex;align-items:center;gap:12px;z-index:50;box-shadow:0 -4px 20px rgba(0,0,0,.15);transform:translateY(100%);transition:transform var(--transition-slow);flex-wrap:wrap}
.bulk-bar.visible{transform:translateY(0)}
.bulk-bar .bulk-count{font-size:.82rem;font-weight:600;margin-right:8px}
.bulk-bar .bulk-sep{width:1px;height:24px;background:var(--bar-border)}
.bulk-btn{padding:7px 14px;border:none;border-radius:var(--radius-sm);font-size:.78rem;cursor:pointer;font-weight:600;transition:var(--transition);display:inline-flex;align-items:center;gap:5px}
.bulk-btn:disabled{opacity:.4;cursor:not-allowed}
.bulk-btn-pri{background:var(--accent);color:var(--on-accent)}.bulk-btn-pri:hover:not(:disabled){background:var(--accent-h)}
.bulk-btn-success{background:var(--success);color:var(--on-accent)}.bulk-btn-success:hover:not(:disabled){background:var(--success-darker)}
.bulk-btn-sec{background:var(--bar-hover);color:var(--bar-text-dim);border:1px solid var(--bar-border)}.bulk-btn-sec:hover{background:var(--bar-border);color:var(--on-accent)}
.file-label{display:inline-flex;align-items:center;gap:5px;padding:7px 14px;background:var(--bar-hover);border:1px solid var(--bar-border);border-radius:var(--radius-sm);font-size:.78rem;font-weight:600;color:var(--bar-text-dim);cursor:pointer;transition:var(--transition)}
.file-label:hover{background:var(--bar-border);color:var(--on-accent)}.file-label input{display:none}

/* ── LOG CONSOLE ── */
.log-filters{display:flex;gap:4px;margin-bottom:8px}
.log-f{padding:4px 12px;border:1px solid var(--border);border-radius:12px;font-size:var(--text-sm);font-weight:600;cursor:pointer;background:var(--surface);color:var(--text-sec);transition:var(--transition)}
.log-f.active{background:var(--text);color:var(--on-accent);border-color:var(--text)}
.log-f:hover:not(.active){background:var(--surface-alt)}
.log{font-family:var(--mono);font-size:.73rem;background:var(--bar);color:var(--bar-text);border-radius:var(--radius);padding:14px;max-height:340px;overflow-y:auto;line-height:1.7}
.le{padding:2px 0;border-bottom:1px solid rgba(51,65,85,.4)}.le:last-child{border:none}
.lt{color:var(--text-muted)}.li{color:var(--log-info)}.lok{color:var(--success-light)}.ler{color:var(--error-light)}.lw{color:var(--warn-light)}.ld{color:var(--text-muted);padding-left:16px}

/* ── MODAL ── */
.modal-overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-overlay);display:none;align-items:center;justify-content:center}
.modal-overlay.show{display:flex}
.modal{background:var(--surface);border-radius:var(--radius-lg);padding:24px;max-width:480px;width:92%;box-shadow:var(--shadow-xl)}
.modal h3{margin-bottom:10px;font-size:1rem}.modal p{margin-bottom:16px;color:var(--text-sec);font-size:.88rem;line-height:1.5}
.modal-actions{display:flex;gap:8px;justify-content:flex-end}

/* ── INFO MODAL ── */
.info-overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-info);display:none;align-items:center;justify-content:center}
.info-overlay.show{display:flex}
.info-modal{background:var(--surface);border-radius:var(--radius-lg);padding:24px;max-width:600px;width:94%;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-xl)}
.info-modal h3{margin-bottom:12px;font-size:1rem;display:flex;align-items:center;gap:8px}
.info-modal .info-body{font-size:.85rem;line-height:1.6;color:var(--text-sec)}
.info-modal .info-body table{width:100%;border-collapse:collapse;margin:8px 0;font-size:.8rem;table-layout:auto}
.info-modal .info-body th,.info-modal .info-body td{padding:4px 8px;border:1px solid var(--border);text-align:left}
.info-modal .info-body th{background:var(--surface-alt);font-weight:600;font-size:.72rem;text-transform:uppercase;color:var(--text-sec)}
.info-modal .info-body .info-ok{color:var(--success);font-weight:600}
.info-modal .info-body .info-err{color:var(--error);font-weight:600}
.info-modal .info-body .info-warn{color:var(--warn);font-weight:600}
.info-modal .info-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}

/* ── AUTH OVERLAY ── */
.auth-overlay{position:fixed;inset:0;z-index:var(--z-auth);display:flex;align-items:center;justify-content:center;background:var(--overlay);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);transition:opacity .3s ease}
.auth-overlay.hidden{opacity:0;pointer-events:none}
.app.blurred{filter:blur(8px);pointer-events:none;user-select:none}
.auth-card{background:var(--surface);border-radius:var(--radius-lg);padding:40px 36px;max-width:380px;width:92%;text-align:center;box-shadow:var(--shadow-xl)}
.auth-logo{max-width:200px;height:auto;margin-bottom:20px;border-radius:8px}
.auth-title{font-size:1.1rem;font-weight:700;color:var(--text);margin-bottom:6px}
.auth-hint{font-size:.82rem;color:var(--text-sec);margin-bottom:18px}
.auth-input{width:100%;padding:12px 16px;border:2px solid var(--border);border-radius:var(--radius);font-size:1rem;text-align:center;letter-spacing:4px;font-family:var(--mono);transition:var(--transition)}
.auth-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}
.auth-btn{width:100%;padding:12px;font-size:.9rem;margin-top:12px}
.auth-error{color:var(--error);font-size:.78rem;margin-top:10px;min-height:1.2em}
.auth-input.shake{animation:shake .4s ease}

/* ── PROGRESS OVERLAY ── */
.progress-overlay{position:fixed;inset:0;background:var(--overlay);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-progress);display:none;align-items:center;justify-content:center}
.progress-overlay.show{display:flex}
.progress-card{background:var(--surface);border-radius:var(--radius-lg);padding:32px 36px;max-width:420px;width:90%;text-align:center;box-shadow:var(--shadow-xl)}
.progress-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}
.progress-title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:6px}
.progress-detail{font-size:.82rem;color:var(--text-sec);margin-bottom:12px;min-height:1.2em}
.progress-bar-wrap{width:100%;height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden;margin-bottom:12px}
.progress-bar{height:100%;background:var(--accent);border-radius:3px;transition:width .3s ease;width:0}
.progress-steps{text-align:left;font-size:.76rem;color:var(--text-sec);line-height:1.8}
.progress-steps .step{display:flex;align-items:center;gap:6px}
.progress-steps .step-done{color:var(--success)}.progress-steps .step-done::before{content:"\2713";font-weight:700}
.progress-steps .step-active{color:var(--accent);font-weight:600}.progress-steps .step-active::before{content:"\25CF";font-size:.5em;vertical-align:middle}
.progress-steps .step-pending{color:var(--text-muted)}.progress-steps .step-pending::before{content:"\25CB";font-size:.5em;vertical-align:middle}

/* ── HELP TOOLTIP ── */
.help-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--surface-alt);border:1px solid var(--border);color:var(--text-muted);font-size:.65rem;font-weight:700;cursor:pointer;transition:var(--transition);line-height:1;vertical-align:middle;margin-left:4px;flex-shrink:0}
.help-btn:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}
.help-popup{position:fixed;z-index:var(--z-help);max-width:360px;width:90%;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:14px 16px;font-size:var(--text-base);color:var(--text-sec);line-height:1.6;animation:helpIn .15s ease}
.help-popup h4{font-size:.82rem;font-weight:700;color:var(--text);margin-bottom:6px}
.help-popup ul{margin:4px 0 4px 16px}
.help-popup li{margin:2px 0}
.help-popup code{background:var(--surface-alt);padding:1px 5px;border-radius:3px;font-size:.72rem;font-family:var(--mono)}
.help-popup .help-close{position:absolute;top:8px;right:10px;background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;padding:2px}
.help-popup .help-close:hover{color:var(--text)}
@keyframes helpIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}

/* ── AUDIT TRAIL ── */
.audit-table{width:100%;border-collapse:collapse;font-size:var(--text-base);table-layout:auto}
.audit-table th{background:var(--surface-alt);padding:6px 10px;text-align:left;font-size:var(--text-xs);font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid var(--border-strong);white-space:nowrap}
.audit-table td{padding:5px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.audit-table tr:nth-child(even) td{background:var(--row-even)}
.audit-type{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:10px;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.audit-type-update{background:var(--accent-bg-deep);color:var(--accent-dark)}
.audit-type-create{background:var(--success-bg);color:var(--success)}
.audit-type-csv_update{background:var(--purple-bg);color:var(--purple)}
.audit-type-csv_create{background:var(--pink-bg);color:var(--pink-dark)}
.audit-type-bulk_edit{background:var(--warn-bg);color:var(--warn-text)}
.audit-type-csv_upload{background:var(--cyan-bg);color:var(--cyan-dark)}
.audit-type-csv_create_start{background:var(--pink-bg);color:var(--pink-darker)}
.audit-type-pipeline_seo{background:var(--error-bg);color:var(--error)}
.audit-type-pipeline_create{background:var(--success-bg);color:var(--success-darker)}
.code-tag{background:var(--surface-alt);padding:1px 5px;border-radius:3px;font-size:.72rem}
.audit-detail{font-size:.72rem;color:var(--text-muted);max-height:0;overflow:hidden;transition:max-height .3s ease}
.audit-detail.open{max-height:600px;overflow-y:auto}
.audit-detail table{width:100%;border-collapse:collapse;margin-top:4px;font-size:.72rem}
.audit-detail th{background:var(--bg);padding:3px 6px;font-size:.62rem;border-bottom:1px solid var(--border)}
.audit-detail td{padding:3px 6px;border-bottom:1px solid var(--surface-alt)}
.audit-expand{background:none;border:none;color:var(--accent);cursor:pointer;font-size:.72rem;padding:0;font-weight:600}
.audit-expand:hover{text-decoration:underline}

/* ── AUTO-REFRESH INDICATOR ── */
.refresh-indicator{display:inline-flex;align-items:center;gap:4px;font-size:.68rem;color:var(--text-muted);transition:.3s}
.refresh-indicator.stale{color:var(--warn);font-weight:600}
.refresh-indicator .refresh-dot{width:6px;height:6px;border-radius:50%;background:var(--text-muted);transition:.3s}
.refresh-indicator.stale .refresh-dot{background:var(--warn);animation:pulse 1.5s infinite}
.refresh-indicator.checking .refresh-dot{background:var(--accent);animation:spin .6s linear infinite}

/* ── AI IMPORT TAB ── */
.ai-split{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.ai-split-seo{grid-template-columns:280px 1fr}
.ai-col-left-narrow .card{margin-bottom:0}
.ai-col-right-wide .card{margin-bottom:0}
.ai-drop-zone-compact{padding:20px 12px}
.ai-col .card{margin-bottom:0}
.ai-drop-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:36px 20px;text-align:center;cursor:pointer;transition:.2s;background:var(--surface);position:relative}
.ai-drop-zone:hover,.ai-drop-zone.drag-over{border-color:var(--accent);background:var(--accent-bg)}
.ai-drop-zone .upload-text{font-size:.82rem;color:var(--text-sec);margin-bottom:4px}
.ai-drop-zone .upload-hint{font-size:.7rem;color:var(--text-muted)}
.ai-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.ai-preview{position:relative;width:100px;height:100px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--border);flex-shrink:0}
.ai-preview img{width:100%;height:100%;object-fit:cover}
.ai-preview-del{position:absolute;top:2px;right:2px;background:rgba(220,38,38,.85);color:var(--on-accent);border:none;border-radius:50%;width:24px;height:24px;font-size:.7rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:.15s}
.ai-preview-del:hover{background:var(--error)}
.ai-form{position:relative;min-height:200px}
.ai-form-overlay{position:absolute;inset:0;z-index:5;background:rgba(248,250,252,.85);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}
.ai-form-overlay-text{font-size:.9rem;color:var(--text-muted);font-weight:600;text-align:center;padding:20px}
.ai-form-overlay.hidden{display:none}
.ai-analysis-info{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);font-size:.76rem;margin-top:8px}
.ai-analysis-info.ok{background:var(--success-bg);color:var(--success-text)}
.ai-analysis-info.err{background:var(--error-bg);color:var(--error-text)}
.ai-analysis-info.loading{background:var(--accent-bg);color:var(--accent-text)}
/* ── SEO GENERATOR ── */
.seo-style-selector{display:flex;gap:8px}
.seo-style-opt{display:flex;align-items:center;gap:6px;cursor:pointer}
.seo-style-opt input[type="radio"]{margin:0}
.seo-style-label{display:inline-block;padding:4px 12px;border-radius:var(--radius-sm);font-size:.78rem;font-weight:700;letter-spacing:.3px;border:2px solid var(--border);transition:.2s}
.seo-style-opt input:checked+.seo-style-marzena{background:var(--warn-bg);border-color:var(--warn);color:var(--warn-text)}
.seo-style-opt input:checked+.seo-style-celestyna{background:var(--purple-bg);border-color:var(--purple);color:var(--purple-dark)}
.seo-style-opt input:checked+.seo-style-justyna{background:var(--success-bg);border-color:var(--success-light);color:var(--success-text)}
.seo-style-opt input:checked+.seo-style-tomasz{background:var(--changed-bg);border-color:var(--warn-accent);color:var(--warn-darker)}
.seo-style-marzena{background:var(--surface)}
.seo-style-celestyna{background:var(--surface)}
.seo-style-justyna{background:var(--surface)}
.seo-style-tomasz{background:var(--surface)}
.seo-cost{font-size:.85rem;font-weight:600;color:var(--accent);font-family:var(--mono);padding:6px 0}
.seo-results{position:relative;min-height:200px}
.seo-results-overlay{position:absolute;inset:0;z-index:5;background:rgba(248,250,252,.85);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;border-radius:var(--radius)}
.seo-results-overlay.hidden{display:none}
.seo-counter{font-size:.68rem;color:var(--text-muted);font-family:var(--mono);font-weight:400}

/* ── SEO ACCEPTED ROWS ── */
.seo-grid-wrap{overflow-x:auto;max-height:400px;border:1px solid var(--border);border-radius:var(--radius)}
.seo-accepted-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}
.seo-accepted-table th{background:var(--surface-alt);border-bottom:2px solid var(--border-strong);padding:8px 6px;text-align:left;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.4px;color:var(--text-sec);white-space:nowrap;position:sticky;top:0;z-index:2}
.seo-accepted-table td{padding:4px 4px;border-bottom:1px solid var(--border);vertical-align:top}
.seo-accepted-input{width:100%;padding:4px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.78rem;font-family:inherit;background:var(--surface);color:var(--text);resize:vertical}
.seo-accepted-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-bg)}
.seo-lang-badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-sm);font-size:.72rem;font-weight:700;letter-spacing:.5px;text-align:center}
.seo-lang-pl{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn)}
.seo-lang-en{background:var(--accent-bg-deep);color:var(--accent-text);border:1px solid var(--accent)}

/* ── BATCH SEO ── */
.batch-product-card{border:1px solid var(--border);border-radius:var(--radius);padding:12px;margin-bottom:10px;background:var(--surface);position:relative}
.batch-card-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:8px;border-bottom:1px solid var(--border)}
.batch-card-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;background:var(--accent);color:var(--on-accent);font-size:.7rem;font-weight:800;flex-shrink:0}
.batch-card-body{display:flex;gap:12px;align-items:flex-start}
.batch-card-images{flex:0 0 160px;display:flex;flex-direction:column;gap:6px}
.batch-card-images .ai-drop-zone-compact{padding:12px 8px}
.batch-card-fields{flex:1;min-width:0}
.batch-previews{display:flex;gap:4px;flex-wrap:wrap}
.batch-result-item{border:1px solid var(--border);border-radius:var(--radius);margin-bottom:8px;overflow:hidden}
.batch-result-header{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--surface-alt);cursor:pointer;font-size:.82rem;transition:var(--transition)}
.batch-result-header:hover{background:var(--border)}
.batch-result-body{display:none;padding:14px}
.batch-result-body.open{display:block}
/* ── GENSEOULTRA TABLE ── */
.sg-img-cell{min-width:180px;padding:4px!important}
.sg-img-zone{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border:1.5px dashed var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:.2s;background:var(--surface);font-size:.76rem;color:var(--text-sec);vertical-align:middle}
.sg-img-zone:hover,.sg-img-zone.drag-over{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.sg-img-previews{display:inline-flex;gap:3px;flex-wrap:wrap;margin-left:4px;vertical-align:middle}
.sg-img-thumb{position:relative;width:36px;height:36px;border-radius:3px;overflow:hidden;border:1px solid var(--border);display:inline-block;flex-shrink:0}
.sg-img-thumb img{width:100%;height:100%;object-fit:cover}
.sg-img-del{position:absolute;top:0;right:0;background:rgba(220,38,38,.85);color:var(--on-accent);border:none;border-radius:0 0 0 3px;width:20px;height:20px;font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;padding:0;opacity:0;transition:.15s}
.sg-img-thumb:hover .sg-img-del{opacity:1}
.sg-info-input{font-size:.76rem!important;padding:4px 6px!important}
#sgProdTable td{vertical-align:middle}
#sgProdTable .ck{width:36px;text-align:center}
#sgProdTable .st-col{padding:6px 4px;text-align:center}
#sgProdTable .id-col{font-family:var(--mono);font-weight:700;font-size:.78rem;white-space:nowrap}
#sgProdTable .id-col a{color:var(--accent);text-decoration:none}
#sgProdTable .id-col a:hover{text-decoration:underline}

/* ── TOAST NOTIFICATIONS ── */
.toast-container{position:fixed;top:16px;right:16px;z-index:var(--z-toast);display:flex;flex-direction:column;gap:8px;max-width:420px;width:calc(100% - 32px);pointer-events:none}
.toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:12px 16px;border-radius:var(--radius);font-size:.82rem;line-height:1.5;box-shadow:var(--shadow-lg);animation:toastIn var(--transition-slow);word-break:break-word;white-space:pre-line}
.toast-error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error-text)}
.toast-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text)}
.toast-warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn-text)}
.toast-info{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent-text)}
.toast-icon{font-size:1rem;flex-shrink:0;line-height:1;margin-top:1px}
.toast-msg{flex:1;min-width:0}
.toast-close{flex-shrink:0;background:none;border:none;color:inherit;opacity:.5;cursor:pointer;font-size:1rem;padding:0 2px;line-height:1;transition:var(--transition)}
.toast-close:hover{opacity:1}
.toast.removing{animation:toastOut .2s ease forwards}
@keyframes toastIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes toastOut{to{opacity:0;transform:translateX(40px)}}

/* ── BATCH NOW PANEL ── */
.batch-now-panel{margin-bottom:10px}
.batch-now-card{border-left:3px solid var(--accent);padding:12px 16px}
.batch-now-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.batch-now-title{font-size:.82rem;font-weight:800;color:var(--accent);text-transform:uppercase;letter-spacing:.4px}
.batch-now-hint{font-size:.72rem;color:var(--text-muted)}
.batch-now-body{}
.batch-now-row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.batch-now-row .fg label{font-size:.68rem}
.batch-now-presets{display:flex;gap:6px;align-items:center;margin-top:8px;flex-wrap:wrap}
.batch-now-presets-label{font-size:.68rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px}
.batch-now-presets .btn-ghost{border:1px solid var(--border);background:var(--surface-alt)}
.batch-now-presets .btn-ghost:hover{background:var(--accent-bg);border-color:var(--accent);color:var(--accent)}

/* ── ANALYTICS DASHBOARD ── */
.analytics-kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-bottom:14px}
.analytics-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 12px;text-align:center;transition:border-color var(--transition),box-shadow var(--transition)}
.analytics-kpi:hover{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}
.kpi-icon{font-size:1.05rem;margin-bottom:3px;opacity:.6;line-height:1}
.kpi-value{font-size:1.3rem;font-weight:800;color:var(--text);font-family:var(--mono);line-height:1.2}
.kpi-label{font-size:.62rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-top:3px}
.kpi-success .kpi-value{color:var(--success)}
.kpi-error .kpi-value{color:var(--error)}
.kpi-warn .kpi-value{color:var(--warn)}
.kpi-accent .kpi-value{color:var(--accent)}
.kpi-purple .kpi-value{color:var(--purple)}
.analytics-empty{text-align:center;padding:24px;color:var(--text-muted);font-size:.78rem;font-style:italic}

/* Analytics — Activity Timeline */
.analytics-timeline{max-height:320px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}
.analytics-timeline-item{display:flex;align-items:center;gap:8px;padding:5px 10px;border-bottom:1px solid var(--border);font-size:var(--text-sm);transition:background var(--transition)}
.analytics-timeline-item:hover{background:var(--surface-alt)}
.analytics-timeline-item:last-child{border-bottom:none}
.analytics-timeline-item:nth-child(even){background:rgba(0,0,0,.01)}
.atl-time{font-family:var(--mono);font-size:.66rem;color:var(--text-muted);flex-shrink:0;min-width:52px}
.atl-icon{font-size:.78rem;flex-shrink:0;width:18px;text-align:center}
.atl-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;flex-shrink:0;min-width:75px;padding:2px 6px;border-radius:3px;text-align:center}
.act-load .atl-label{background:var(--accent-bg);color:var(--accent-dark)}
.act-sync .atl-label{background:var(--success-bg);color:var(--success)}
.act-create .atl-label{background:var(--success-bg);color:var(--success-text)}
.act-batch .atl-label{background:var(--warn-bg);color:var(--warn-text)}
.act-error .atl-label{background:var(--error-bg);color:var(--error)}
.act-quality .atl-label{background:var(--purple-bg);color:var(--purple)}
.atl-msg{color:var(--text-sec);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.act-seo-params .atl-label{background:var(--accent-bg-deep);color:var(--accent-text)}
.act-seo-params{flex-wrap:wrap}
.seo-params-details{width:100%;margin:4px 0 2px 78px;padding:6px 10px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.68rem;line-height:1.5}
.seo-params-group{margin-bottom:3px}
.seo-params-group:last-child{margin-bottom:0}
.seo-params-group-label{font-weight:700;color:var(--text-pri);margin-right:4px}
.seo-params-list code{background:var(--code-indigo-bg);color:var(--code-indigo-text);padding:0 3px;border-radius:2px;font-size:.64rem;font-family:var(--mono);white-space:nowrap}

/* Analytics — Data Quality */
.dq-summary{display:flex;align-items:center;gap:20px;margin-bottom:16px;padding:14px 18px;background:var(--surface-alt);border-radius:var(--radius)}
.dq-score{text-align:center;flex-shrink:0}
.dq-score-value{font-size:2rem;font-weight:900;font-family:var(--mono);line-height:1}
.dq-score-label{font-size:.65rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.4px;margin-top:2px}
.dq-score-ok .dq-score-value{color:var(--success)}
.dq-score-warn .dq-score-value{color:var(--warn)}
.dq-score-err .dq-score-value{color:var(--error)}
.dq-info{display:flex;flex-direction:column;gap:2px;font-size:.78rem;color:var(--text-sec)}
.dq-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.dq-item{padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface)}
.dq-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.dq-field-name{font-size:.74rem;font-weight:600;color:var(--text)}
.dq-crit{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:var(--error);color:var(--on-accent);font-size:.55rem;font-weight:800;margin-right:3px;flex-shrink:0}
.dq-pct{font-size:.68rem;font-family:var(--mono);color:var(--text-muted)}
.dq-bar-wrap{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}
.dq-bar{height:100%;border-radius:3px;transition:width .4s ease}
.dq-bar-ok{background:var(--success)}
.dq-bar-warn{background:var(--warn)}
.dq-bar-err{background:var(--error)}

/* Analytics — Audit Aggregation */
.audit-agg{margin-bottom:16px}
.audit-agg-header{display:flex;gap:20px;margin-bottom:12px;font-size:.82rem;color:var(--text-sec)}
.audit-agg-bars{display:flex;flex-direction:column;gap:8px}
.audit-agg-row{display:flex;align-items:center;gap:10px}
.audit-agg-label{font-size:.74rem;font-weight:600;color:var(--text);min-width:120px;flex-shrink:0}
.audit-agg-bar-wrap{flex:1;height:20px;background:var(--surface-alt);border-radius:var(--radius-sm);overflow:hidden}
.audit-agg-bar{height:100%;border-radius:var(--radius-sm);transition:width .4s ease}
.audit-agg-count{font-size:.78rem;font-weight:700;font-family:var(--mono);color:var(--text);min-width:30px;text-align:right}
.audit-recent{margin-top:16px}
.audit-recent-title{font-size:.72rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.4px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
.audit-recent-item{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border);font-size:.78rem}
.audit-recent-item:last-child{border-bottom:none}
.audit-recent-time{font-family:var(--mono);font-size:.68rem;color:var(--text-muted);flex-shrink:0;min-width:130px}
.audit-recent-count{font-family:var(--mono);font-size:.7rem;font-weight:600;color:var(--text);flex-shrink:0;min-width:55px}
.audit-recent-desc{color:var(--text-sec);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ── EXPERT IMPORT ── */
.expert-group{margin-bottom:6px}
.expert-toggle{position:relative}
.expert-grp-hint{font-size:.68rem;font-weight:400;color:var(--text-muted);margin-left:4px}
.expert-hint{display:block;font-size:.68rem;color:var(--text-muted);margin-top:2px}
.expert-product-count{font-size:.76rem;font-weight:400;color:var(--text-sec);margin-left:auto}
.expert-table-wrap{overflow-x:auto;max-height:600px;overflow-y:auto;border:1px solid var(--border);border-radius:var(--radius-sm)}
.expert-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);min-width:900px}
.expert-table thead{position:sticky;top:0;z-index:2}
.expert-table th{background:var(--surface-alt);border-bottom:2px solid var(--border-strong);padding:6px 8px;text-align:left;font-size:var(--text-xs);font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.3px;white-space:nowrap}
.expert-table td{padding:4px 6px;border-bottom:1px solid var(--border);vertical-align:top}
.expert-table tr:hover{background:var(--accent-bg)}
.expert-table input,.expert-table textarea,.expert-table select{width:100%;padding:3px 5px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-family:inherit;background:var(--surface)}
.expert-table input:focus,.expert-table textarea:focus,.expert-table select:focus{border-color:var(--accent);outline:none;box-shadow:var(--focus-ring)}
.expert-table input[readonly]{background:var(--surface-alt);color:var(--text-sec)}
.expert-table .exp-row-num{font-weight:700;font-family:var(--mono);color:var(--text-sec);font-size:.7rem;text-align:center;min-width:28px}
.expert-table .exp-code{font-family:var(--mono);font-weight:700;color:var(--accent)}
.expert-table .exp-req{border-color:var(--warn)}
.expert-table .exp-del{background:none;border:none;color:var(--error);cursor:pointer;font-size:.82rem;padding:2px 6px;border-radius:3px;transition:.15s}
.expert-table .exp-del:hover{background:var(--error-bg)}
.expert-table .exp-status{font-size:.66rem;font-weight:600;padding:2px 6px;border-radius:3px;white-space:nowrap}
.expert-table .exp-status.ok{background:var(--success-bg);color:var(--success)}
.expert-table .exp-status.err{background:var(--error-bg);color:var(--error)}
.expert-table .exp-status.pen{background:var(--surface-alt);color:var(--text-muted)}

/* ── PIPELINE STEPPER (redesigned v4.16.0) ── */
.pipe-stepper{display:flex;align-items:flex-start;gap:0;margin-bottom:16px;padding:14px 20px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);position:sticky;top:0;z-index:40;box-shadow:var(--shadow-xs);overflow-x:auto}
.pipe-step{display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;padding:6px 8px;border-radius:var(--radius);transition:var(--transition);white-space:nowrap;flex-shrink:0;min-width:56px;position:relative}
.pipe-step:hover{background:var(--surface-alt)}
.pipe-num{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--surface-alt);color:var(--text-muted);font-size:.72rem;font-weight:800;flex-shrink:0;transition:all .25s ease;border:2px solid transparent}
.pipe-num svg{width:18px;height:18px}
.pipe-label{font-size:.72rem;color:var(--text-sec);font-weight:600;text-align:center}
.pipe-step-stat{font-size:.6rem;color:var(--text-muted);font-family:var(--mono);white-space:nowrap;max-width:80px;overflow:hidden;text-overflow:ellipsis;min-height:.7em}
/* Active step */
.pipe-step.active .pipe-num{background:var(--grad-pipeline);color:var(--on-accent);border-color:transparent;box-shadow:0 0 0 3px rgba(220,38,38,.15);animation:stepPulse 2s ease-in-out infinite}
.pipe-step.active .pipe-label{color:var(--text);font-weight:800}
@keyframes stepPulse{0%,100%{box-shadow:0 0 0 3px rgba(220,38,38,.15)}50%{box-shadow:0 0 0 6px rgba(220,38,38,.08)}}
/* Done (visited but not active) */
.pipe-step.done .pipe-num{background:var(--success);color:var(--on-accent);border-color:var(--success)}
.pipe-step.done .pipe-label{color:var(--success)}
/* Stage completed (action done) */
.pipe-step.stage-completed .pipe-num{background:var(--success);color:var(--on-accent)}
.pipe-step.stage-completed .pipe-label{color:var(--success);font-weight:700}
.pipe-step.active.stage-completed .pipe-num{background:var(--grad-pipeline);box-shadow:0 0 0 3px rgba(5,150,105,.2)}
.pipe-step.active.stage-completed .pipe-label{color:var(--text);font-weight:800}
/* Connector lines */
.pipe-connector{flex:1;height:3px;background:var(--border);min-width:16px;margin:18px 2px 0;border-radius:2px;transition:background .4s ease}
.pipe-connector.done{background:var(--success)}

/* ── FIXED BOTTOM NAVIGATION BAR ── */
.pipe-bottom-nav{position:fixed;bottom:0;left:0;right:0;height:56px;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -2px 12px rgba(0,0,0,.08);display:none;align-items:center;justify-content:space-between;padding:0 24px;z-index:50;gap:16px}
.pipe-bottom-nav.visible{display:flex}
.pipe-bottom-info{font-size:.82rem;font-weight:600;color:var(--text-sec);text-align:center;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pipe-bottom-btn{min-width:110px;height:38px;font-size:.84rem;font-weight:700}
#pipeBottomPrev.hidden{visibility:hidden}
#csvPipelinePanel{padding-bottom:72px}

/* ── STAGE HERO CARDS ── */
.pipe-hero{display:flex;align-items:center;gap:14px;padding:16px 20px!important;border-bottom:2px solid var(--border)!important}
.pipe-hero-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;flex-shrink:0}
.pipe-hero-icon svg{width:22px;height:22px}
.pipe-hero-0 .pipe-hero-icon{background:rgba(37,99,235,.1);color:var(--accent)}
.pipe-hero-0b .pipe-hero-icon{background:rgba(6,182,212,.1);color:#0891b2}
.pipe-hero-1 .pipe-hero-icon{background:rgba(124,58,237,.1);color:var(--purple)}
.pipe-hero-1b .pipe-hero-icon{background:rgba(99,102,241,.1);color:var(--purple)}
.pipe-hero-2 .pipe-hero-icon{background:rgba(20,184,166,.1);color:#0d9488}
.pipe-hero-2b .pipe-hero-icon{background:rgba(16,185,129,.1);color:#059669}
/* Section divider between merged sub-stages */
.pipe-section-divider{border:none;border-top:1px solid var(--border);margin:28px 0 24px;opacity:1}
.pipe-subsection-head{font-size:.78rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.03em;margin-bottom:10px;padding-top:14px;border-top:1px solid var(--border)}
/* Pipeline utility classes (v4.13.0) */
.pipe-meta{font-size:.76rem;font-weight:400;color:var(--text-sec)}
.pipe-action-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.pipe-info-box{margin-bottom:12px;padding:10px 16px;background:var(--surface-alt);border-radius:8px;border:1px solid var(--border);font-size:.76rem}
.pipe-action-box{margin:12px 0;padding:14px;background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:var(--radius);font-size:.78rem;line-height:1.5}
.pipe-action-box .pipe-action-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.pipe-action-box .pipe-action-header strong{font-size:.88rem;color:var(--text)}
.pipe-action-box .pipe-action-header .pipe-action-icon{color:var(--accent);flex-shrink:0}
.pipe-action-box .pipe-action-desc{font-size:.76rem;color:var(--text-sec);margin-bottom:10px}
.pipe-action-select{font-size:.76rem;padding:3px 8px;border:1px solid var(--accent-border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text)}
.pipe-toggle-btn{font-size:.72rem;padding:2px 10px}
.pipe-hero-text{flex:1;min-width:0}
.pipe-hero-title{font-size:.92rem;font-weight:800;color:var(--text);line-height:1.3}
.pipe-hero-desc{font-size:.74rem;color:var(--text-sec);font-weight:400;margin-top:2px}
.pipe-csv-template-link{display:inline-flex;align-items:center;gap:5px;padding:4px 12px;border-radius:20px;font-size:.7rem;font-weight:600;white-space:nowrap;flex-shrink:0;color:var(--accent);background:var(--accent-bg);border:1px solid var(--accent-border);text-decoration:none;transition:all .15s;cursor:pointer}
.pipe-csv-template-link:hover{background:var(--accent);color:#fff;border-color:var(--accent)}
.pipe-status-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:20px;font-size:.7rem;font-weight:700;white-space:nowrap;flex-shrink:0;background:var(--surface-alt);color:var(--text-muted);border:1px solid var(--border);transition:all .2s}
.pipe-status-chip.done{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}
.pipe-status-chip.active{background:var(--accent-bg);color:var(--accent);border-color:var(--accent-border)}
.pipe-status-chip.error{background:var(--error-bg);color:var(--error-text);border-color:var(--error-border)}

/* ── AUDIT TOOLBAR TIERS ── */
.audit-toolbar-primary{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.audit-toolbar-secondary{display:flex;gap:6px;align-items:center;margin-bottom:12px;flex-wrap:wrap;padding:6px 10px;background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border)}
/* ── AUDIT FILTER TABS (v3.8.7) ── */
.audit-filter-tabs{display:flex;gap:4px;margin-bottom:10px;flex-wrap:wrap}
.audit-filter-tab{padding:5px 14px;border-radius:20px;font-size:.72rem;font-weight:600;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text-sec);transition:all .15s}
.audit-filter-tab:hover{background:var(--surface-alt)}
.audit-filter-tab.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.audit-filter-tab[data-arg="failing"].active{background:var(--error);border-color:var(--error)}
.audit-filter-tab[data-arg="approved"].active{background:var(--success);border-color:var(--success)}
.audit-filter-tab[data-arg="rejected"].active{background:var(--warn);color:#000;border-color:var(--warn)}

/* ── COLLAPSIBLE PRODUCT TABLE ── */
.pipe-table-header{cursor:pointer;user-select:none;transition:background .15s}
.pipe-table-header:hover{background:var(--surface)!important}
.pipe-table-toggle{display:inline-flex;align-items:center;transition:transform .2s;margin-left:8px}
.pipe-table-toggle.collapsed{transform:rotate(-90deg)}
.pipe-table-body{transition:max-height .3s ease;overflow:hidden}
.pipe-table-body.collapsed{max-height:0!important;padding:0!important;border-top:none}
/* Legacy: .pipe-progress used as container for inline progress boxes (pipeAuditFixProgress) */
.pipe-progress{margin-bottom:12px}
.pipe-stage{animation:pipeSlide .25s ease;scroll-margin-top:90px}
#pipeDefaultsSection{scroll-margin-top:90px}
@keyframes pipeSlide{from{opacity:0;transform:translateX(12px)}to{opacity:1;transform:translateX(0)}}
.pipe-defaults-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0}
.pipe-defaults-grid .fg{margin-bottom:0}
.pipe-score{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:3px 8px;border-radius:4px;font-size:.72rem;font-weight:800;font-family:var(--mono)}
.pipe-score.high{background:var(--success-bg);color:var(--success)}
.pipe-score.mid{background:var(--warn-bg);color:var(--warn)}
.pipe-score.low{background:var(--error-bg);color:var(--error)}
.pipe-score.none{background:var(--surface-alt);color:var(--text-muted)}
/* v5.0.10: Audit nav buttons unified — now use .btn.btn-outline.btn-sm (see base button styles) */
.pipe-audit-status{font-size:.66rem;font-weight:600;padding:2px 6px;border-radius:3px}
.pipe-audit-status.approved{background:var(--success-bg);color:var(--success)}
.pipe-audit-status.rejected{background:var(--error-bg);color:var(--error)}
.pipe-audit-status.pending{background:var(--surface-alt);color:var(--text-muted)}
.pipe-detail-row{background:var(--surface-alt);display:none}
.pipe-detail-row.open{display:table-row}
.pipe-detail-content{padding:10px 16px;font-size:.76rem}
.pipe-detail-content .pipe-field{margin-bottom:6px}
.pipe-detail-content .pipe-field label{font-weight:700;font-size:.68rem;color:var(--text-sec);text-transform:uppercase;display:block;margin-bottom:2px}
.pipe-detail-content .pipe-field .pipe-val{background:var(--surface);border:1px solid var(--border);border-radius:3px;padding:4px 8px;font-size:.74rem;max-height:80px;overflow-y:auto;word-break:break-word}

/* ── PIPELINE PRODUCT TABLE ── */
.pipe-batch-bar{background:var(--accent-bg);border:1px solid var(--accent);border-radius:6px;padding:8px 12px;margin-bottom:10px}
.pipe-product-check{width:16px;height:16px;cursor:pointer;accent-color:var(--accent)}
#pipeProductTable{font-size:var(--text-sm)}
#pipeProductTable th{position:sticky;top:0;background:var(--surface);z-index:2;font-size:var(--text-xs);text-transform:uppercase;color:var(--text-sec);padding:6px 8px;white-space:nowrap;border-bottom:2px solid var(--border-strong)}
#pipeProductTable td{padding:4px 8px;border-bottom:1px solid var(--border);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#pipeProductTable tr.pipe-row-selected{background:var(--accent-bg)}
#pipeProductTable tr:hover{background:var(--surface-alt)}
.pipe-cell-edit{cursor:pointer;border-radius:3px;padding:1px 4px;transition:.1s}
.pipe-cell-edit:hover{background:var(--accent-bg);outline:1px solid var(--accent)}
.pipe-cell-input{width:100%;font-size:.76rem;padding:2px 4px;border:1px solid var(--accent);border-radius:3px;font-family:inherit;box-sizing:border-box}
.pipe-cell-input:focus{outline:2px solid var(--accent);outline-offset:-1px}
/* Pipeline filter & pagination */
#pipeFilterBar input:focus{border-color:var(--accent);outline:1px solid var(--accent)}
#pipePaginationBar{font-size:.76rem;color:var(--text-sec);gap:8px}
#pipePaginationBar button:disabled{opacity:.3;cursor:default}
#pipeSeoProgressDetail{font-family:var(--mono);font-size:.7rem;color:var(--text-muted)}
#pipeSeoEnrichSection{border:1px dashed var(--accent);background:var(--accent-bg)}
.pipe-row-status{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.pipe-row-status.pending{background:var(--text-muted)}
.pipe-row-status.approved{background:var(--success)}
.pipe-row-status.rejected{background:var(--error)}
.pipe-row-status.ok{background:var(--success)}
.pipe-row-status.error{background:var(--error)}

/* ── PAGINATION BAR ── */
.pag-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 8px 6px;font-size:.78rem;color:var(--text-sec);border-top:1px solid var(--border);background:var(--bg)}
.pag-bar .pag-btn{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;border-radius:4px;transition:background .15s}
.pag-bar .pag-btn:disabled{opacity:.3;cursor:default}
.pag-numbers{display:flex;gap:2px}
.pag-num{min-width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;font-size:.74rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text);cursor:pointer;transition:all .15s;font-weight:500}
.pag-num:hover{background:var(--accent-bg);border-color:var(--accent)}
.pag-num.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:700}
.pag-info{font-size:.74rem;color:var(--text-muted);margin-left:8px;font-weight:500;white-space:nowrap}
.pag-size{font-size:.72rem;padding:4px 6px;border:1px solid var(--border);border-radius:4px;background:var(--bg);color:var(--text);cursor:pointer;margin-left:4px}
.pag-label{font-size:.68rem;color:var(--text-muted)}

/* ── CELL ORIGIN HIGHLIGHTING ── */
/* Light blue = AI-generated change */
td.cell-ai,#pipeProductTable td.cell-ai{background:var(--cell-ai-bg)!important}
td.cell-ai input,td.cell-ai textarea,td.cell-ai select{background:var(--cell-ai-bg)!important;border-color:var(--cell-ai-border)}
/* Light green = User manual change */
td.cell-user,#pipeProductTable td.cell-user{background:var(--cell-user-bg)!important}
td.cell-user input,td.cell-user textarea,td.cell-user select{background:var(--cell-user-bg)!important;border-color:var(--cell-user-border)}
/* Legend bar */
.cell-origin-legend{display:flex;align-items:center;gap:16px;padding:6px 12px;font-size:.72rem;color:var(--text-sec);background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;flex-wrap:wrap}
.cell-origin-legend .legend-swatch{display:inline-block;width:16px;height:12px;border-radius:2px;border:1px solid var(--border);vertical-align:middle;margin-right:4px}
.cell-origin-legend .legend-swatch.ai{background:var(--cell-ai-bg);border-color:var(--cell-ai-border)}
.cell-origin-legend .legend-swatch.user{background:var(--cell-user-bg);border-color:var(--cell-user-border)}

/* ── REUSABLE: Model Comparison Table ── */
.model-compare{display:flex;gap:12px;flex-wrap:wrap;font-size:.66rem;margin:8px 0 4px;line-height:1.3}
.model-compare-shared{flex:1 1 200px;padding:6px 10px;background:var(--surface-alt);border-radius:6px;border:1px solid var(--border)}
.model-compare-diff{flex:1 1 320px}
.model-compare-title{font-weight:700;color:var(--text-sec);margin-bottom:2px}
.model-compare-desc{color:var(--text-muted)}
.model-compare table{width:100%;border-collapse:collapse;font-size:.64rem}
.model-compare th,.model-compare td{padding:2px 6px;border:1px solid var(--border)}
.model-compare th{text-align:left;background:var(--surface-alt)}
.model-compare td{text-align:center}
.model-compare td:first-child{text-align:left}
.model-compare .row-haiku{background:var(--model-haiku-bg)}.model-compare .row-haiku td:first-child{color:var(--model-haiku)}
.model-compare .row-sonnet{background:var(--model-sonnet-bg)}.model-compare .row-sonnet td:first-child{color:var(--model-sonnet);font-weight:700}
.model-compare .row-opus{background:var(--model-opus-bg)}.model-compare .row-opus td:first-child{color:var(--model-opus)}

/* ── REUSABLE: Progress Bars ── */
.progress-track{background:var(--surface-alt);border-radius:var(--radius-sm);height:8px;overflow:hidden}
.progress-fill{height:100%;border-radius:var(--radius-sm);transition:width .3s;width:0}
.progress-fill-accent{background:var(--grad-progress)}
.progress-fill-seo{background:var(--grad-seo)}
.progress-fill-success{background:var(--success)}

/* ── Indeterminate progress bar (activity indicator) ── */
.progress-fill-indeterminate{height:100%;width:30%;border-radius:var(--radius-sm);background:var(--grad-progress);position:relative;animation:indeterminate-slide 1.4s ease-in-out infinite;opacity:0}
.progress-fill-indeterminate.active{opacity:1}
@keyframes indeterminate-slide{0%{transform:translateX(-100%)}50%{transform:translateX(170%)}100%{transform:translateX(340%)}}

/* ── FLOATING PROGRESS OVERLAY (v4.13.0) ── */
.pipe-float-progress{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:var(--z-float);width:480px;max-width:92vw;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.25)}
.pipe-float-progress.minimized{top:auto;bottom:16px;left:auto;right:16px;transform:none;width:280px}
.pipe-float-progress.minimized .pipe-float-body{display:none}
.pipe-float-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);cursor:move;user-select:none;background:var(--accent-bg);border-radius:12px 12px 0 0}
.pipe-float-progress.minimized .pipe-float-header{border-radius:12px;border-bottom:none}
.pipe-float-body{padding:14px}
/* v4.20.3: Pro metrics grid in float */
.pipe-float-metrics{display:grid;grid-template-columns:1fr 1fr 1fr;gap:2px 8px;margin-top:10px;padding:8px 0 4px;border-top:1px solid var(--border)}
.pipe-float-metric{text-align:center}
.pipe-float-metric-label{display:block;font-size:.62rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:2px}
.pipe-float-metric-value{display:block;font-size:.84rem;font-weight:700;font-family:var(--mono)}
/* v4.37: Current product + log */
.pipe-float-current{display:flex;align-items:center;gap:6px;padding:4px 8px;background:var(--accent-bg);border-radius:6px;border:1px solid rgba(59,130,246,.15);overflow:hidden}
/* v5.0.59: Product line + phase stepper */
.pipe-float-product-line{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--accent-bg);border-radius:6px;border:1px solid rgba(59,130,246,.15);margin-bottom:6px;overflow:hidden}
.pipe-float-product-name{font-size:.76rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.pipe-float-counter{font-size:.7rem;font-weight:700;color:var(--accent);font-family:var(--mono);white-space:nowrap;flex-shrink:0}
.pipe-float-phases{display:flex;gap:4px;margin:6px 0 2px}
.pipe-phase{flex:1;text-align:center;font-size:.62rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em;padding:3px 0;border-radius:4px;background:var(--surface-alt);color:var(--text-muted);transition:background .2s,color .2s}
.pipe-phase.done{background:rgba(34,197,94,.12);color:var(--success)}
.pipe-phase.active{background:var(--accent-bg);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}
.pipe-float-log{margin-top:10px;padding-top:8px;border-top:1px solid var(--border)}
.pipe-float-log-item{display:flex;align-items:center;gap:6px;font-size:.7rem;padding:2px 0;color:var(--text-sec)}
.pipe-float-log-item .log-time{margin-left:auto;font-family:var(--mono);font-size:.66rem;color:var(--text-muted)}
.pipe-float-cost{color:var(--cost,var(--warn))}

/* ── STANDARDIZED PIPELINE PROGRESS BOX (v4.11.0) ── */
.pipe-progress-box{padding:12px 16px;border:1px solid var(--border);border-radius:8px;background:linear-gradient(135deg,var(--surface),var(--surface-alt));margin:8px 0}
.pipe-progress-header{display:flex;align-items:center;gap:10px;margin-bottom:8px;font-size:.78rem}
.pipe-progress-spinner{width:16px;height:16px;min-width:16px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite}
.pipe-progress-spinner.done{border-color:var(--success);border-top-color:var(--success);animation:none}
.pipe-progress-spinner.error{border-color:var(--error);border-top-color:var(--error);animation:none}
.pipe-progress-status{font-weight:600;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pipe-progress-counter{font-family:var(--mono);font-size:.76rem;color:var(--accent);font-weight:700;white-space:nowrap}
.pipe-progress-bar-wrap{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}
.pipe-progress-bar-fill{height:100%;border-radius:3px;background:var(--grad-progress);transition:width .3s;width:0}
.pipe-progress-bar-fill.success{background:var(--success)}
.pipe-progress-bar-fill.error{background:var(--error)}
.pipe-progress-detail{font-size:.72rem;color:var(--text-sec);margin-top:6px;min-height:1em}

/* ── Unified inline status (v4.37.2) ── */
.pipe-inline-status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-sec);vertical-align:middle}
.pipe-inline-status .pipe-inline-spinner{width:14px;height:14px;min-width:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}
.pipe-inline-status.ok{color:var(--success)}
.pipe-inline-status.ok .pipe-inline-spinner{border-color:var(--success);animation:none}
.pipe-inline-status.err{color:var(--error)}
.pipe-inline-status.err .pipe-inline-spinner{border-color:var(--error);animation:none}

/* ── pipe-stop-btn removed in v4.20 — STOP now in float header ── */

/* ── REUSABLE: Inline layout helpers ── */
.flex-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.flex-end{align-self:flex-end}
.flex-col-fixed-sm{flex:0 0 160px}
.flex-col-fixed-md{flex:0 0 180px}
.flex-col-fixed-lg{flex:0 0 200px}
.ml-auto{margin-left:auto}
.mt-sm{margin-top:8px}
.mt-md{margin-top:12px}
.mb-sm{margin-bottom:8px}
.text-status{font-size:.78rem}

/* ── UNIVERSAL AI OPERATION PANEL (v4.4.0) ── */
.api-status-dashboard{position:fixed;bottom:20px;right:20px;width:400px;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(0,0,0,.18);z-index:var(--z-dashboard);overflow:hidden;transition:transform .2s,opacity .2s}
.api-sd-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:linear-gradient(135deg,var(--accent),var(--accent-h));color:var(--on-accent)}
.api-sd-title{font-size:.82rem;font-weight:700;flex:1}
.api-sd-model-badge{font-size:.68rem;padding:2px 8px;border-radius:10px;background:rgba(255,255,255,.2);color:var(--on-accent);font-weight:600;margin:0 8px}
.api-sd-body{padding:12px 14px}
.api-sd-indicator{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.api-sd-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}
.api-sd-spinner.done{animation:none;border-color:var(--success);border-top-color:var(--success)}
.api-sd-spinner.aborted{animation:none;border-color:var(--error);border-top-color:var(--error)}
.api-sd-status-text{font-size:.78rem;font-weight:600;color:var(--text);flex:1}
.api-sd-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.api-sd-metric{padding:6px 10px;background:var(--surface-alt);border-radius:var(--radius-sm);text-align:center}
.api-sd-metric-label{display:block;font-size:.64rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px}
.api-sd-metric-value{display:block;font-size:.92rem;font-weight:700;color:var(--text);margin-top:2px}
.api-sd-cost-metric{background:linear-gradient(135deg,var(--warn-bg),var(--warn-border));border:1px solid var(--warn)}
.api-sd-cost{color:var(--warn-text) !important}
.api-sd-progress-bar{height:6px;background:var(--surface-alt);border-radius:3px;overflow:hidden}
.api-sd-progress-fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--success));border-radius:3px;transition:width .3s}
.api-sd-progress-fill.error{background:var(--grad-seo)}
.api-sd-abort-wrap{margin-top:10px;text-align:center}
.api-sd-abort-btn{width:100%;padding:8px 16px;border:2px solid var(--error);background:rgba(220,38,38,.08);color:var(--error);border-radius:var(--radius);font-size:.78rem;font-weight:700;cursor:pointer;transition:background .15s,color .15s}
.api-sd-abort-btn:hover{background:var(--error);color:var(--on-accent)}
.api-sd-abort-btn:disabled{opacity:.5;cursor:not-allowed;background:rgba(220,38,38,.04)}
.api-sd-abort-btn:disabled:hover{background:rgba(220,38,38,.04);color:var(--error)}

/* ── AI OPERATION QUEUE BANNER (v4.9.1) ── */
.aiop-queue-banner{position:fixed;bottom:420px;right:20px;width:400px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:2px solid #1d4ed8;border-radius:var(--radius-lg);box-shadow:0 8px 32px rgba(59,130,246,.25);z-index:var(--z-dashboard);overflow:hidden;transition:transform .2s,opacity .2s,bottom .2s;color:#fff}
.aiop-queue-header{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.2)}
.aiop-queue-icon{font-size:1.1rem;flex-shrink:0}
.aiop-queue-title{font-size:.78rem;font-weight:700;flex:1}
.aiop-queue-body{padding:10px 14px;max-height:200px;overflow-y:auto}
.aiop-queue-item{font-size:.74rem;padding:4px 0;display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid rgba(255,255,255,.1)}
.aiop-queue-item:last-child{border-bottom:none}
.aiop-queue-time{font-size:.66rem;color:rgba(255,255,255,.7);font-family:var(--mono);flex-shrink:0}
.aiop-queue-more{font-size:.68rem;color:rgba(255,255,255,.7);font-style:italic;margin-top:6px;text-align:center}

/* ── AI MODEL SELECTOR MODAL (v4.4.0) ── */
.aiop-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:var(--z-modal-ai);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s}
.aiop-modal-overlay.show{opacity:1;pointer-events:all}
.aiop-modal{background:var(--surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:480px;max-width:92vw;max-height:90vh;overflow:auto;transform:scale(.95);transition:transform .2s}
.aiop-modal-overlay.show .aiop-modal{transform:scale(1)}
.aiop-modal-header{padding:16px 20px 12px;border-bottom:1px solid var(--border)}
.aiop-modal-header h3{margin:0;font-size:.92rem;font-weight:700;color:var(--text)}
.aiop-modal-header .aiop-subtitle{font-size:.74rem;color:var(--text-sec);margin-top:4px}
.aiop-modal-body{padding:16px 20px}
.aiop-model-cards{display:flex;gap:10px;margin-bottom:16px}
.aiop-model-card{flex:1;padding:12px;border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:center;transition:border-color .15s,background .15s}
.aiop-model-card:hover{background:var(--surface-alt)}
.aiop-model-card.selected{border-color:var(--accent);background:var(--accent-bg)}
.aiop-model-card.selected .aiop-mc-name{color:var(--accent)}
.aiop-model-card.recommended{border-color:#16a34a;background:rgba(34,197,94,.06)}
.aiop-model-card.recommended.selected{border-color:#16a34a;background:rgba(34,197,94,.1);box-shadow:0 0 0 2px rgba(34,197,94,.2)}
.aiop-model-card.recommended .aiop-mc-name{color:#16a34a}
.aiop-model-card.recommended .aiop-mc-rec{background:#16a34a}
.aiop-mc-name{font-size:.82rem;font-weight:700;margin-bottom:2px}
.aiop-mc-stars{font-size:.72rem;letter-spacing:1px;margin-bottom:4px}
.aiop-mc-meta{font-size:.68rem;color:var(--text-sec);line-height:1.5}
.aiop-mc-meta strong{color:var(--text)}
.aiop-mc-rec{font-size:.58rem;text-transform:uppercase;letter-spacing:.5px;padding:2px 6px;border-radius:8px;background:var(--accent);color:var(--on-accent);display:inline-block;margin-top:4px}
.aiop-summary{padding:10px 14px;background:var(--surface-alt);border-radius:var(--radius);font-size:.76rem;color:var(--text-sec);margin-bottom:16px;border-left:3px solid var(--accent)}
.aiop-summary strong{color:var(--text)}
.aiop-modal-footer{padding:12px 20px 16px;display:flex;justify-content:flex-end;gap:8px}
.aiop-modal-footer .btn{min-width:120px}

/* ── E-E-A-T BADGES (v3.12.0) ── */
.eeat-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:.66rem;font-weight:600}
.eeat-high{background:var(--success-bg);color:var(--success-text);border:1px solid var(--success-border)}
.eeat-medium{background:var(--warn-bg);color:var(--warn-text);border:1px solid var(--warn-border)}
.eeat-low{background:var(--error-bg);color:var(--error-text);border:1px solid var(--error-border)}
.eeat-score-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}
.eeat-score-item{text-align:center;padding:6px;background:var(--surface-alt);border-radius:var(--radius-sm);border:1px solid var(--border)}
.eeat-score-label{display:block;font-size:.6rem;text-transform:uppercase;color:var(--text-muted);letter-spacing:.3px}
.eeat-score-val{display:block;font-size:.88rem;font-weight:800;margin-top:2px}

/* ── DRAGGABLE PANELS ── */
.pipe-drag-handle{cursor:grab;user-select:none;-webkit-user-select:none;position:relative}
.pipe-drag-handle:active{cursor:grabbing}
.pipe-drag-handle::before{content:"";display:inline-block;width:16px;height:16px;margin-right:6px;vertical-align:middle;background:radial-gradient(circle,var(--text-muted) 1.2px,transparent 1.2px);background-size:6px 6px;opacity:.4;transition:opacity .15s;flex-shrink:0}
.pipe-drag-handle:hover::before{opacity:.8}
.csv-section.pipe-floating{position:fixed;z-index:var(--z-float);box-shadow:0 12px 48px rgba(0,0,0,.25);border:2px solid var(--accent);resize:both;overflow:auto;min-width:320px;min-height:120px;max-width:95vw;max-height:90vh}
.csv-section.pipe-floating .csv-section-head{background:linear-gradient(135deg,var(--accent),var(--accent-h));color:var(--on-accent)}
.csv-section.pipe-floating .csv-section-head .csv-step{background:var(--on-accent);color:var(--accent)}
.pipe-dock-btn{display:none;margin-left:auto;background:rgba(255,255,255,.25);color:var(--on-accent);border:none;border-radius:var(--radius-sm);padding:2px 8px;font-size:.7rem;font-weight:700;cursor:pointer;transition:var(--transition);flex-shrink:0}
.pipe-dock-btn:hover{background:rgba(255,255,255,.4)}
.csv-section.pipe-floating .pipe-dock-btn{display:inline-flex;align-items:center;gap:4px}
.pipe-floating-placeholder{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface-alt);min-height:48px;display:flex;align-items:center;justify-content:center;font-size:.72rem;color:var(--text-muted);margin-bottom:14px;padding:12px}
/* ── Scene Chips for Lifestyle Module ── */
.pipe-scene-chip{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border:1.5px solid var(--border);border-radius:20px;cursor:pointer;font-size:.74rem;font-weight:600;color:var(--text-sec);background:var(--surface);transition:all .15s;user-select:none}
.pipe-scene-chip:hover{border-color:var(--accent);color:var(--accent);background:rgba(59,130,246,.04)}
.pipe-scene-chip-active,.pipe-scene-chip:has(input:checked){border-color:var(--accent);color:var(--on-accent);background:var(--accent)}
.pipe-scene-chip-active svg,.pipe-scene-chip:has(input:checked) svg{stroke:var(--on-accent)}

/* ── RESIZABLE TABLE COLUMNS ── */
.col-resize-handle{position:absolute;right:-3px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:3;background:transparent;transition:background .15s}
.col-resize-handle:hover,.col-resize-handle.active{background:var(--accent);opacity:.5;border-radius:1px}
.expert-table th.resizable-th,.csv-preview th.resizable-th{position:relative;overflow:visible}
.expert-table.col-resizing,.csv-preview table.col-resizing{cursor:col-resize;user-select:none;-webkit-user-select:none}
.expert-table.col-resizing td,.expert-table.col-resizing th,.csv-preview table.col-resizing td,.csv-preview table.col-resizing th{cursor:col-resize}

/* Pipeline analytics section */
.pipe-analytics-stages{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.pipe-analytics-stage{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);flex:1;min-width:140px;transition:all .2s}
.pipe-analytics-stage.stage-done{border-color:var(--success);background:var(--success-bg)}
.pipe-analytics-stage.stage-active{border-color:var(--accent);background:var(--accent-bg)}
.pipe-analytics-stage-num{width:24px;height:24px;border-radius:50%;background:var(--surface-alt);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.66rem;font-weight:800;font-family:var(--mono);color:var(--text-muted);flex-shrink:0}
.stage-done .pipe-analytics-stage-num{background:var(--success);border-color:var(--success);color:#fff}
.stage-active .pipe-analytics-stage-num{background:var(--accent);border-color:var(--accent);color:#fff}
.pipe-analytics-stage-info{display:flex;flex-direction:column;gap:1px}
.pipe-analytics-stage-name{font-size:.7rem;font-weight:700;color:var(--text)}
.pipe-analytics-stage-stat{font-size:.6rem;color:var(--text-muted)}
.pipe-analytics-summary{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.pipe-analytics-metric{text-align:center;padding:12px 16px;background:var(--surface-alt);border-radius:var(--radius);min-width:110px;flex:1;border:1px solid var(--border)}
.pipe-analytics-metric-value{font-size:1.2rem;font-weight:800;font-family:var(--mono);color:var(--text)}
.pipe-analytics-metric-label{font-size:.62rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:2px}

/* ═══ Virtual Table Performance Classes (v5.0) ═══ */
.pipe-cell{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pipe-cell-mono{font-family:var(--mono);font-weight:600}
.pipe-cell-wide{max-width:220px}
.pipe-cell-narrow{max-width:120px}
.pipe-cell-param-empty{background:rgba(239,68,68,.06)}
.pipe-cell-readonly{opacity:.6}
/* Score sparkline bar */
.pipe-sparkline{display:inline-flex;align-items:center;gap:4px;font-size:.74rem;font-family:var(--mono)}
.pipe-sparkline-bar{height:8px;border-radius:4px;min-width:4px;transition:width .2s ease}
.pipe-sparkline-high{background:var(--success)}
.pipe-sparkline-mid{background:var(--warn)}
.pipe-sparkline-low{background:var(--error)}
/* Keyboard navigation */
.pipe-row-focused{outline:2px solid var(--accent);outline-offset:-2px}
/* Drag select */
.pipe-row-drag-selecting{background:var(--accent-bg)!important}
/* Split pane */
.pipe-split-container{display:flex;gap:0;height:calc(100vh - 200px);min-height:400px}
.pipe-split-table{flex:1;overflow:auto;min-width:0}
.pipe-split-detail{width:420px;min-width:320px;max-width:520px;border-left:2px solid var(--border);overflow-y:auto;padding:16px;background:var(--surface);display:none}
.pipe-split-detail.open{display:block}
/* Diff view */
.pipe-diff-del{background:var(--diff-del-bg);text-decoration:line-through;padding:1px 3px;border-radius:2px}
.pipe-diff-ins{background:var(--diff-ins-bg);padding:1px 3px;border-radius:2px}
/* Cost estimator */
.pipe-cost-estimate{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--surface-alt);border:1px solid var(--border);border-radius:var(--radius);font-size:.78rem;margin-bottom:12px}
.pipe-cost-estimate strong{font-family:var(--mono)}
/* Keyboard shortcut hint */
.pipe-kbd{display:inline-block;padding:1px 5px;font-size:.64rem;font-family:var(--mono);background:var(--surface-alt);border:1px solid var(--border);border-radius:3px;color:var(--text-muted);vertical-align:middle}
/* Smart queue indicator */
.pipe-smart-queue{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;font-size:.68rem;background:var(--purple-bg);color:var(--purple);border-radius:10px}

/* ── UNIFIED PHOTO GRID v4.23.0 ── */
.pipe-unified-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}
.pipe-unified-img-card{border:2px solid var(--border);border-radius:8px;overflow:hidden;background:var(--surface);cursor:grab;transition:box-shadow .15s,border-color .15s,opacity .15s}
.pipe-unified-img-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.12)}
.pipe-unified-img-card.dragging{opacity:.4;border-color:var(--accent);box-shadow:0 4px 16px rgba(59,130,246,.25)}
.pipe-unified-img-card.drag-over{border-color:var(--accent);border-style:dashed;background:rgba(59,130,246,.04)}
.pipe-unified-img-card.rejected{opacity:.5;cursor:default}
.pipe-unified-order-badge{position:absolute;top:6px;left:6px;width:24px;height:24px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.3);z-index:2}
.pipe-unified-source-badge{position:absolute;top:6px;right:6px;padding:2px 6px;border-radius:4px;font-size:.6rem;font-weight:700;z-index:2}
.pipe-unified-source-badge.ai{background:rgba(139,92,246,.15);color:var(--purple);border:1px solid rgba(139,92,246,.3)}
.pipe-unified-source-badge.web{background:rgba(59,130,246,.15);color:var(--accent);border:1px solid rgba(59,130,246,.3)}
.pipe-unified-source-badge.drive{background:rgba(34,197,94,.15);color:var(--success);border:1px solid rgba(34,197,94,.3)}
/* v4.37: Photo overlay toggle + dimensions */
.pipe-photo-overlay-toggle{position:absolute;top:30px;right:6px;width:24px;height:24px;border-radius:50%;background:rgba(239,68,68,.85);color:#fff;border:none;cursor:pointer;font-size:16px;line-height:24px;text-align:center;z-index:3;opacity:0;transition:opacity .15s;display:flex;align-items:center;justify-content:center;padding:0}
.pipe-photo-overlay-toggle.restore{background:rgba(34,197,94,.85)}
.pipe-unified-img-card:hover .pipe-photo-overlay-toggle{opacity:1}
/* v6.0.58: Image info bar — shared across all image displays */
.pipe-img-info-bar{padding:3px 8px;background:var(--surface-alt);border-top:1px solid var(--border);font-family:var(--mono);line-height:1.35;overflow:hidden}
.pipe-img-info-bar .img-info-name{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;font-size:.6rem}
.pipe-img-info-bar .img-info-meta{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:var(--text-muted);font-size:.56rem}

/* ── AUTOPILOT v4.24.0 ── */
@keyframes autopilot-pulse{0%,100%{opacity:1}50%{opacity:.4}}
.autopilot-pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);animation:autopilot-pulse 1.5s ease-in-out infinite;margin-right:4px;vertical-align:middle}
.pipe-autopilot-indicator{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;font-size:.72rem;font-weight:600;background:rgba(34,197,94,.1);color:var(--success);border:1px solid rgba(34,197,94,.25);border-radius:12px}

/* ── Menu SEO v6.0.77 — Dashboard + Table + Slide-over ── */
/* Dashboard */
.mseo-dashboard{position:relative}
.mseo-dashboard-header{display:flex;align-items:center;justify-content:space-between}
.mseo-dashboard-toggle{background:none;border:none;font-size:1rem;cursor:pointer;color:var(--text-muted);padding:4px 8px;transition:transform .2s}
.mseo-dashboard.collapsed .mseo-dashboard-toggle{transform:rotate(-90deg)}
.mseo-dashboard-body{transition:max-height .25s ease,opacity .2s;overflow:hidden}
.mseo-dashboard.collapsed .mseo-dashboard-body{max-height:0!important;opacity:0;padding:0}
.mseo-dashboard-compact{font-size:.72rem;color:var(--text-muted);padding:4px 0;font-weight:600}
.mseo-dashboard-row{display:flex;gap:16px;margin-top:12px;flex-wrap:wrap}
.mseo-tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:10px}
.mseo-tile{padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all var(--transition);text-align:center}
.mseo-tile:hover{border-color:var(--accent);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.mseo-tile.active{border-color:var(--accent);background:var(--accent-bg)}
.mseo-tile-value{font-size:1.4rem;font-weight:900;font-family:var(--mono);line-height:1.2}
.mseo-tile-value.green{color:var(--success)}.mseo-tile-value.orange{color:var(--warn)}.mseo-tile-value.red{color:var(--error)}
.mseo-tile-label{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-top:4px}
.mseo-histogram{flex:1;min-width:200px}
.mseo-histogram-title{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-bottom:6px}
.mseo-histogram-row{display:flex;align-items:center;gap:6px;margin:3px 0;cursor:pointer}
.mseo-histogram-row:hover .mseo-histogram-fill{opacity:.8}
.mseo-histogram-label{width:24px;font-size:.66rem;font-weight:700;text-align:right;font-family:var(--mono);flex-shrink:0;color:var(--text-muted)}
.mseo-histogram-fill{height:16px;border-radius:3px;transition:width .3s;min-width:2px}
.mseo-histogram-fill.green{background:var(--success)}.mseo-histogram-fill.orange{background:var(--warn)}.mseo-histogram-fill.red{background:var(--error)}
.mseo-histogram-count{font-size:.64rem;font-family:var(--mono);color:var(--text-muted);width:28px;flex-shrink:0}
.mseo-quickactions{flex:1;min-width:200px}
.mseo-quickactions-title{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-bottom:6px}
.mseo-quickactions-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.mseo-quick-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:14px;font-size:.7rem;font-weight:600;cursor:pointer;border:1px solid var(--error-border);background:var(--error-bg);color:var(--error);transition:all var(--transition)}
.mseo-quick-chip:hover{background:var(--error);color:#fff;border-color:var(--error)}
.mseo-quick-chip .mseo-qc-score{font-family:var(--mono);font-weight:800}
/* Toolbar */
.mseo-toolbar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap}
.mseo-toolbar-left{display:flex;align-items:center;gap:8px;flex:1;min-width:0;flex-wrap:wrap}
.mseo-toolbar-right{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap}
.mseo-toolbar-search{position:relative;min-width:180px;flex:1;max-width:280px}
.mseo-toolbar-search input{width:100%;padding:6px 10px 6px 30px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.78rem;background:var(--surface);transition:border-color var(--transition)}
.mseo-toolbar-search input:focus{border-color:var(--accent);outline:none;box-shadow:var(--focus-ring)}
.mseo-toolbar-search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}
.mseo-toolbar-select{font-size:.72rem;padding:5px 8px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit}
.mseo-toolbar-select:focus{border-color:var(--accent);outline:none}
.mseo-toolbar-checkall{display:flex;align-items:center;gap:4px;font-size:.72rem;font-weight:600;color:var(--text-muted);cursor:pointer;white-space:nowrap}
.mseo-toolbar-checkall input{accent-color:var(--accent)}
/* Table */
.mseo-table-wrap{overflow-x:auto;max-height:calc(100vh - 340px);overflow-y:auto}
.mseo-table{width:100%;border-collapse:collapse;font-size:.76rem}
.mseo-table thead{position:sticky;top:0;z-index:2;background:var(--surface-alt)}
.mseo-table th{padding:8px 10px;text-align:left;font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);border-bottom:2px solid var(--border);white-space:nowrap;user-select:none}
.mseo-table td{padding:6px 10px;border-bottom:1px solid var(--border-light);vertical-align:middle}
.mseo-table-empty{text-align:center;padding:40px 16px!important;color:var(--text-muted);font-size:.82rem}
.mseo-th-check{width:36px}.mseo-th-score{width:52px}.mseo-th-mt{width:160px}.mseo-th-md{width:160px}
.mseo-th-nad{width:56px;text-align:center}.mseo-th-pod{width:56px;text-align:center}
.mseo-th-kann{width:40px;text-align:center}.mseo-th-serp{width:48px;text-align:center}.mseo-th-src{width:48px;text-align:center}.mseo-th-date{width:72px}
.mseo-th-sortable{cursor:pointer;user-select:none;position:relative}
.mseo-th-sortable:hover{color:var(--accent)}
.mseo-th-sortable::after{content:"";display:inline-block;width:0;height:0;margin-left:4px;vertical-align:middle;opacity:.3}
.mseo-sorted-asc::after{opacity:1;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid var(--accent)}
.mseo-sorted-desc::after{opacity:1;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid var(--accent)}
.mseo-table tbody tr{cursor:pointer;transition:background var(--transition);border-left:3px solid transparent}
.mseo-table tbody tr:hover{background:var(--row-hover)}
.mseo-table tbody tr.active{background:var(--accent-bg);border-left-color:var(--accent)}
.mseo-table tbody tr.dirty{border-left-color:var(--warn);background:rgba(245,158,11,.04)}
.mseo-table .mseo-td-check{width:36px}
.mseo-table .mseo-td-check input{width:14px;height:14px;cursor:pointer;accent-color:var(--accent)}
.mseo-td-name{font-weight:600;min-width:0;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mseo-td-name .mseo-expand{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;font-size:.7rem;color:var(--text-muted);cursor:pointer;transition:transform .15s;flex-shrink:0;vertical-align:middle;margin-right:2px}
.mseo-td-name .mseo-expand.expanded{transform:rotate(90deg)}
.mseo-td-name .mseo-expand.hidden{visibility:hidden}
.mseo-node-id{font-weight:400;font-size:.62rem;color:var(--text-muted);font-family:var(--mono)}
.mseo-td-score{font-weight:800;font-family:var(--mono);text-align:center}
.mseo-td-score.high{color:var(--success)}.mseo-td-score.mid{color:var(--warn)}.mseo-td-score.low{color:var(--error)}
.mseo-td-badge{font-size:.62rem;font-family:var(--mono);display:inline-block;padding:1px 5px;border-radius:4px;font-weight:600;white-space:nowrap}
.mseo-td-badge.ok{background:var(--success-bg);color:var(--success)}.mseo-td-badge.warn{background:var(--warn-bg);color:var(--warn)}.mseo-td-badge.bad{background:var(--error-bg);color:var(--error)}
.mseo-td-trunc{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle;color:var(--text-muted);font-size:.7rem}
.mseo-td-nad{text-align:center}.mseo-td-pod{text-align:center}
.mseo-td-kann{text-align:center;font-size:.82rem}
.mseo-td-serp{text-align:center;font-weight:700;font-family:var(--mono);font-size:.72rem}
.mseo-td-serp.top3{color:var(--success)}.mseo-td-serp.top10{color:var(--warn)}
.mseo-td-src{text-align:center;font-size:.72rem}
.mseo-td-date{font-size:.66rem;font-family:var(--mono);color:var(--text-muted);white-space:nowrap}
.mseo-special-badge{font-size:.54rem;padding:1px 5px;border-radius:8px;color:#fff;font-weight:700;vertical-align:middle;margin-left:4px}
/* Central modal (was slide-over) */
.mseo-slideover{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:none;pointer-events:none}
.mseo-slideover.open{display:flex;align-items:center;justify-content:center;pointer-events:auto}
.mseo-slideover-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.35);opacity:0;transition:opacity .25s}
.mseo-slideover.open .mseo-slideover-backdrop{opacity:1}
.mseo-slideover-panel{position:relative;width:820px;max-width:92vw;max-height:88vh;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 64px rgba(0,0,0,.18),0 0 0 1px rgba(0,0,0,.04);transform:scale(.95);opacity:0;transition:transform .25s cubic-bezier(.4,0,.2,1),opacity .2s ease-out;display:flex;flex-direction:column;overflow:hidden;z-index:1}
.mseo-slideover.open .mseo-slideover-panel{transform:scale(1);opacity:1}
.mseo-so-close{position:absolute;top:12px;right:14px;background:var(--surface-alt);border:1px solid var(--border);font-size:1rem;color:var(--text-muted);cursor:pointer;padding:4px 10px;border-radius:8px;transition:all var(--transition);z-index:5}
.mseo-so-close:hover{background:var(--error-bg);color:var(--error);border-color:var(--error)}
.mseo-so-header{padding:14px 18px 10px;border-bottom:1px solid var(--border);background:var(--surface)}
.mseo-so-title{font-size:.9rem;font-weight:800;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mseo-so-body{flex:1;min-height:0;overflow-y:auto;padding:0}
.mseo-so-footer{padding:10px 18px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:8px;align-items:center;flex-wrap:wrap;flex-shrink:0}
.mseo-so-back{background:none;border:none;font-size:.78rem;color:var(--accent);cursor:pointer;padding:4px 8px;font-weight:600;transition:all var(--transition)}
.mseo-so-back:hover{color:var(--accent-dark);text-decoration:underline}
.mseo-stage1,.mseo-stage2{display:flex;flex-direction:column;flex:1;min-height:0}
.mseo-stage2-header{display:flex;align-items:center;gap:8px;padding-right:40px}
.mseo-so-score{font-size:.78rem;font-weight:800;font-family:var(--mono);margin-left:auto;padding:2px 8px;border-radius:4px}
/* Stage 1 sections */
.mseo-s1-section{padding:12px 18px;border-bottom:1px solid var(--border)}
.mseo-s1-section:last-child{border-bottom:none}
.mseo-s1-score-row{display:flex;align-items:center;gap:14px}
.mseo-s1-field{display:flex;justify-content:space-between;gap:8px;padding:4px 0;font-size:.74rem}
.mseo-s1-field-label{font-weight:700;color:var(--text-muted);text-transform:uppercase;font-size:.64rem;min-width:80px;flex-shrink:0}
.mseo-s1-field-value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}
.mseo-s1-field-value.empty{color:var(--text-muted);font-style:italic}
.mseo-s1-collapse{cursor:pointer;display:flex;align-items:center;gap:6px;padding:10px 18px;font-size:.72rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;border-bottom:1px solid var(--border);transition:background var(--transition)}
.mseo-s1-collapse:hover{background:var(--surface-alt)}
.mseo-s1-collapse-arrow{font-size:.7rem;transition:transform .2s}
.mseo-s1-collapse.open .mseo-s1-collapse-arrow{transform:rotate(90deg)}
.mseo-s1-collapse-body{display:none;padding:0}
.mseo-s1-collapse.open+.mseo-s1-collapse-body{display:block}
.mseo-cannibal-warn{line-height:1.3}
/* Keep existing field/suggest/score/etc styles */
.mseo-editor-badge{font-size:.62rem;font-family:var(--mono);padding:2px 8px;border-radius:10px;font-weight:600}
.mseo-editor-fields{padding:16px 18px;flex:1;display:flex;flex-direction:column;gap:14px}
.mseo-field{display:flex;flex-direction:column;gap:4px}
.mseo-field-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mseo-field-label{font-size:.72rem;font-weight:700;color:var(--text-sec);text-transform:uppercase;letter-spacing:.4px}
.mseo-field-counter{font-size:.68rem;font-family:var(--mono);font-weight:600;padding:1px 6px;border-radius:4px}
.mseo-field-counter.ok{background:var(--success-bg);color:var(--success)}
.mseo-field-counter.warn{background:var(--warn-bg);color:var(--warn)}
.mseo-field-counter.bad{background:var(--error-bg);color:var(--error)}
.mseo-field-edit-btn{font-size:.62rem;padding:2px 8px;border:1px solid var(--border);border-radius:4px;background:var(--surface-alt);color:var(--text);cursor:pointer;font-weight:600;white-space:nowrap;transition:all var(--transition);margin-left:auto}
.mseo-field-edit-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}
.mseo-field-improve-btn{font-size:.62rem;padding:2px 8px;border:1px solid var(--accent);border-radius:4px;background:linear-gradient(135deg,var(--accent-bg),var(--accent-bg-deep));color:var(--accent);cursor:pointer;font-weight:700;white-space:nowrap;transition:all var(--transition);margin-left:6px}
.mseo-field-improve-btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.12)}
.mseo-field-improve-btn:disabled,.mseo-field-improve-btn.loading{opacity:.6;cursor:wait}
.mseo-field-save-btn{font-size:.72rem;padding:2px 6px;border:1px solid var(--success);border-radius:4px;background:var(--success-bg);color:var(--success);cursor:pointer;font-weight:700;white-space:nowrap;transition:all var(--transition);margin-left:4px;line-height:1}
.mseo-field-save-btn:hover{background:var(--success);color:#fff;transform:translateY(-1px);box-shadow:0 2px 6px rgba(0,0,0,.12)}
.mseo-field-save-btn:disabled{opacity:.6;cursor:wait}
.mseo-field-save-btn.hidden{display:none}
.mseo-setting-save-btn{font-size:.68rem;padding:1px 6px;border:1px solid var(--success);border-radius:4px;background:var(--success-bg);color:var(--success);cursor:pointer;font-weight:700;transition:all var(--transition);margin-left:4px;line-height:1.2}
.mseo-setting-save-btn:hover{background:var(--success);color:#fff}
.mseo-field-readonly{padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);font-size:.82rem;color:var(--text-muted);min-height:36px;display:flex;align-items:center}
.mseo-field-lock{font-size:.7rem;vertical-align:middle;opacity:.6}
.mseo-field-lock-clickable{cursor:pointer;transition:opacity var(--transition)}
.mseo-field-lock-clickable:hover{opacity:1}
.mseo-field-lock-open{font-size:.7rem;vertical-align:middle;opacity:.5;color:var(--success)}
.mseo-field-locked-editable{border-style:dashed;cursor:pointer}
.mseo-field input[type="text"],.mseo-field textarea{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.82rem;font-family:inherit;transition:border-color var(--transition);background:var(--surface)}
.mseo-field input[type="text"]:focus,.mseo-field textarea:focus{border-color:var(--accent);outline:none;box-shadow:var(--focus-ring)}
.mseo-field input.dirty,.mseo-field textarea.dirty{border-color:var(--warn);background:var(--changed-bg)}
.mseo-field textarea{resize:vertical;min-height:60px}
.mseo-html-preview{padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-alt);font-size:.78rem;line-height:1.6;max-height:200px;overflow-y:auto;cursor:pointer;transition:border-color var(--transition)}
.mseo-html-preview:hover{border-color:var(--accent)}
.mseo-html-edit{width:100%;min-height:200px;padding:10px;border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:.78rem;font-family:var(--mono);background:var(--surface);resize:vertical}
.mseo-chips{display:flex;flex-wrap:wrap;gap:5px;padding:6px 0}
.mseo-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;background:var(--accent-bg);color:var(--accent-dark);border:1px solid var(--accent-border);border-radius:14px;font-size:.74rem;font-weight:500;transition:all var(--transition)}
.mseo-chip:hover{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.mseo-chip-remove{cursor:pointer;font-size:.9rem;line-height:1;opacity:.6;transition:opacity var(--transition)}
.mseo-chip-remove:hover{opacity:1}
.mseo-chip-input{flex:1;min-width:100px;padding:4px 8px;border:1px dashed var(--border);border-radius:var(--radius-sm);font-size:.78rem;background:transparent;outline:none}
.mseo-chip-input:focus{border-color:var(--accent);border-style:solid}
.mseo-score{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;font-size:.95rem;font-weight:800;font-family:var(--mono);border:3px solid;flex-shrink:0}
.mseo-score.high{border-color:var(--success);color:var(--success);background:var(--success-bg)}
.mseo-score.mid{border-color:var(--warn);color:var(--warn);background:var(--warn-bg)}
.mseo-score.low{border-color:var(--error);color:var(--error);background:var(--error-bg)}
.mseo-issues{padding:8px 12px;background:var(--surface-alt);border-radius:var(--radius-sm);font-size:.72rem;line-height:1.7}
.mseo-issue{display:flex;align-items:start;gap:6px}
.mseo-issue-icon{flex-shrink:0;margin-top:2px}
/* ── Health Dashboard ── */
.mseo-health{padding:14px 18px;border-bottom:1px solid var(--border)}
.mseo-health-title{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted);margin-bottom:10px}
.mseo-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mseo-health-card{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt)}
.mseo-health-card-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-bottom:4px}
.mseo-health-card-value{font-size:1rem;font-weight:800;font-family:var(--mono)}
.mseo-health-card-sub{font-size:.58rem;color:var(--text-muted);margin-top:2px}
.mseo-health-bar{height:4px;border-radius:2px;background:var(--border);margin-top:6px;overflow:hidden}
.mseo-health-bar-fill{height:100%;border-radius:2px;transition:width .3s ease}
.mseo-health-stars{color:var(--warn);font-size:1.1rem;letter-spacing:2px}
.mseo-health-stars-empty{color:var(--border)}
.mseo-health-actions{margin-top:10px;padding:8px 10px;border-radius:var(--radius-sm);background:var(--accent-bg);border:1px solid var(--accent-border);font-size:.66rem}
.mseo-health-action{display:flex;align-items:start;gap:5px;line-height:1.5}
.mseo-health-action::before{content:"→";color:var(--accent);font-weight:700;flex-shrink:0}
.mseo-health-tier{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:.66rem}
.mseo-health-tier-pos{width:22px;text-align:center;font-weight:700;font-family:var(--mono);font-size:.62rem}
.mseo-health-tier-domain{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mseo-health-tier-us{font-weight:700;color:var(--accent);padding:4px 0;border-top:1px dashed var(--accent-border);border-bottom:1px dashed var(--accent-border);margin:2px 0}
.mseo-health-alert{padding:6px 8px;border-radius:var(--radius-sm);font-size:.62rem;margin-top:6px;display:flex;align-items:start;gap:5px}
.mseo-health-alert.success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success)}
.mseo-health-alert.warn{background:var(--warn-bg);border:1px solid var(--warn-border);color:var(--warn)}
.mseo-health-alert.error{background:var(--error-bg);border:1px solid var(--error-border);color:var(--error)}
.mseo-health-alert.info{background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent)}
@media (max-width:480px){.mseo-health-grid{grid-template-columns:1fr}}
.mseo-upload-result{padding:12px 14px;border-radius:var(--radius);margin-top:12px;font-size:.78rem}
.mseo-upload-result.success{background:var(--success-bg);border:1px solid var(--success-border)}
.mseo-upload-result.error{background:var(--error-bg);border:1px solid var(--error-border)}
.mseo-upload-field{display:flex;align-items:center;gap:6px;padding:3px 0}
.mseo-upload-field .ok{color:var(--success);font-weight:700}
.mseo-upload-field .fail{color:var(--error);font-weight:700}
.mseo-actions{padding:14px 18px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.mseo-actions-top{position:sticky;top:0;z-index:10;border-top:none;border-bottom:1px solid var(--border);background:var(--surface);box-shadow:0 2px 8px rgba(0,0,0,.06)}
.mseo-model-btn{font-size:.6rem;padding:2px 8px;border-radius:4px;border:1px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;font-weight:700;transition:all var(--transition)}
.mseo-model-btn:hover{border-color:var(--accent);color:var(--accent)}
.mseo-model-btn.active{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}
.mseo-batch{padding:8px 12px;border-top:1px solid var(--border);background:var(--surface);display:flex;gap:6px;flex-wrap:wrap}
.mseo-batch .btn{font-size:.7rem;padding:4px 10px}
.mseo-dirty-badge{display:inline-block;padding:2px 8px;font-size:.62rem;font-weight:700;text-transform:uppercase;border-radius:10px;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border);letter-spacing:.3px}
.mseo-settings{padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface-alt)}
.mseo-audit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.mseo-audit-card{border-radius:var(--radius-sm);padding:10px 12px;border-left:4px solid;background:var(--surface);transition:box-shadow var(--transition)}
.mseo-audit-card:hover{box-shadow:0 2px 8px rgba(0,0,0,.08)}
.mseo-audit-ok{border-left-color:#10b981;background:linear-gradient(135deg,#ecfdf5,var(--surface))}
.mseo-audit-warn{border-left-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,var(--surface))}
.mseo-audit-error{border-left-color:#ef4444;background:linear-gradient(135deg,#fef2f2,var(--surface))}
.mseo-audit-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.mseo-audit-icon{font-size:.9rem;line-height:1}
.mseo-audit-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.3px;color:var(--text-sec)}
.mseo-audit-status{font-size:.62rem;font-weight:800;padding:1px 8px;border-radius:10px;margin-left:auto;white-space:nowrap}
.mseo-audit-status-ok{background:#d1fae5;color:#065f46}
.mseo-audit-status-warn{background:#fef3c7;color:#92400e}
.mseo-audit-status-error{background:#fee2e2;color:#991b1b}
.mseo-audit-current{font-size:.7rem;font-weight:600;color:var(--text);margin-bottom:3px}
.mseo-audit-reason{font-size:.66rem;color:var(--text-sec);line-height:1.45}
.mseo-audit-action{font-size:.66rem;font-weight:700;color:var(--accent);margin-top:4px}
.mseo-audit-note{font-size:.62rem;color:var(--text-muted);margin-top:10px;padding:6px 8px;background:var(--surface);border-radius:var(--radius-sm);border:1px dashed var(--border);line-height:1.4}
.mseo-audit-select-row{display:flex;align-items:center;gap:8px;margin:6px 0 2px}
.mseo-setting-select{font-size:.72rem;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:inherit;min-width:120px;transition:border-color var(--transition)}
.mseo-setting-select:hover{border-color:var(--accent)}
.mseo-setting-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px rgba(99,102,241,.15)}
.mseo-setting-dirty{display:inline-block;padding:1px 6px;font-size:.56rem;font-weight:700;text-transform:uppercase;border-radius:8px;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border);letter-spacing:.3px;margin-left:4px}
.mseo-audit-dirty{border:1px solid var(--warn-border)!important;box-shadow:0 0 0 1px var(--warn-bg)}
.mseo-serp{padding:14px 18px;border-bottom:1px solid var(--border);background:var(--surface)}
.mseo-serp-header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.mseo-serp-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text-sec)}
.mseo-serp-btn{font-size:.66rem;padding:2px 10px;border-radius:10px;cursor:pointer;border:1px solid var(--border);background:var(--surface-alt);color:var(--text-sec);transition:all var(--transition)}
.mseo-serp-btn:hover{border-color:var(--accent);color:var(--accent)}
.mseo-serp-loading{font-size:.72rem;color:var(--text-muted);font-style:italic}
.mseo-serp-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mseo-serp-card{padding:10px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-alt);font-size:.74rem}
.mseo-serp-card-title{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-bottom:6px}
.mseo-serp-pos{font-size:1.6rem;font-weight:900;font-family:var(--mono);line-height:1}
.mseo-serp-pos.top3{color:var(--success)}
.mseo-serp-pos.top10{color:var(--warn)}
.mseo-serp-pos.notfound{color:var(--error);font-size:1rem}
.mseo-serp-competitor{display:flex;align-items:center;gap:8px;padding:5px 0;border-bottom:1px solid var(--border)}
.mseo-serp-competitor:last-child{border-bottom:none}
.mseo-serp-rank{font-size:.9rem;font-weight:800;font-family:var(--mono);width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid}
.mseo-serp-rank.r1{border-color:#fbbf24;color:#b45309;background:#fef3c7}
.mseo-serp-rank.r2{border-color:#94a3b8;color:#475569;background:#f1f5f9}
.mseo-serp-rank.r3{border-color:#d97706;color:#92400e;background:#fef3c7}
.mseo-serp-comp-info{flex:1;min-width:0;overflow:hidden}
.mseo-serp-comp-domain{font-weight:700;font-size:.72rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mseo-serp-comp-title{font-size:.66rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mseo-serp-keywords{display:flex;flex-wrap:wrap;gap:4px}
.mseo-serp-kw{display:inline-block;padding:2px 8px;font-size:.66rem;border-radius:10px;background:var(--purple-bg);color:var(--purple);font-weight:500}
.mseo-url-row{display:flex;align-items:center;gap:8px;padding:8px 18px;border-bottom:1px solid var(--border);background:var(--surface);font-size:.74rem}
.mseo-url-link{color:var(--accent);text-decoration:none;font-family:var(--mono);font-size:.7rem;word-break:break-all}
.mseo-url-link:hover{text-decoration:underline}
.mseo-redirect-count{font-size:.66rem;font-family:var(--mono);padding:2px 8px;border-radius:10px;background:var(--surface-alt);color:var(--text-muted)}
.mseo-suggest{margin-top:4px;padding:8px 10px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#f0fdf4,#ecfdf5);border:1px solid #bbf7d0;font-size:.72rem}
.mseo-suggest-header{display:flex;align-items:center;gap:6px;margin-bottom:4px}
.mseo-suggest-label{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:#059669;flex-shrink:0}
.mseo-suggest-accept{font-size:.62rem;padding:2px 10px;border-radius:10px;cursor:pointer;border:1px solid #059669;background:#059669;color:#fff;font-weight:700;transition:all var(--transition);margin-left:auto;flex-shrink:0}
.mseo-suggest-accept:hover{background:#047857}
.mseo-suggest-value{font-size:.72rem;line-height:1.5;color:#065f46;word-break:break-word;max-height:80px;overflow-y:auto}
.mseo-suggest-loading{font-size:.66rem;color:var(--text-muted);font-style:italic}
/* Operations progress infobox */
.mseo-ops-infobox{border-bottom:1px solid var(--border);background:linear-gradient(135deg,#eff6ff,#f0f9ff);flex-shrink:0}
.mseo-ops-header{display:flex;align-items:center;gap:8px;padding:10px 16px;padding-right:52px;border-bottom:1px solid rgba(59,130,246,.12)}
.mseo-ops-spinner{width:14px;height:14px;min-width:14px;border:2.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}
.mseo-ops-spinner.done{border-color:var(--success);border-top-color:var(--success);animation:none}
.mseo-ops-spinner.error{border-color:var(--error);border-top-color:var(--error);animation:none}
.mseo-ops-title{font-size:.76rem;font-weight:800;color:#1e3a8a;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mseo-ops-model{font-size:.62rem;padding:2px 8px;border-radius:10px;background:rgba(59,130,246,.1);color:var(--accent);font-weight:700;white-space:nowrap}
.mseo-ops-abort{font-size:.62rem;padding:3px 10px;border:1.5px solid var(--error);border-radius:6px;background:rgba(220,38,38,.06);color:var(--error);cursor:pointer;font-weight:800;white-space:nowrap;transition:all var(--transition);flex-shrink:0}
.mseo-ops-abort:hover{background:var(--error);color:#fff}
.mseo-ops-abort:disabled{opacity:.5;cursor:not-allowed}
.mseo-ops-body{padding:10px 16px 12px}
.mseo-ops-desc{font-size:.72rem;line-height:1.5;color:#334155;margin-bottom:8px}
.mseo-ops-desc strong{color:#1e3a8a}
.mseo-ops-progress-wrap{height:5px;border-radius:3px;background:rgba(59,130,246,.1);overflow:hidden;margin-bottom:6px}
.mseo-ops-bar{height:100%;border-radius:3px;background:linear-gradient(90deg,var(--accent),#6366f1);transition:width .4s ease-out}
.mseo-ops-detail{font-size:.68rem;color:var(--text-muted);font-family:var(--mono);min-height:1em}
.mseo-ops-timer{display:flex;align-items:center;gap:12px;margin-bottom:8px;font-size:.72rem;font-family:var(--mono)}
.mseo-ops-timer-item{display:flex;align-items:center;gap:4px}
.mseo-ops-timer-label{font-size:.6rem;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);font-weight:700}
.mseo-ops-timer-value{font-weight:800;color:#1e3a8a;font-size:.78rem}
.mseo-history{padding:14px 18px;border-bottom:1px solid var(--border)}
.mseo-history-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.mseo-history-title{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.4px;color:var(--text-muted)}
.mseo-history-count{font-size:.62rem;color:var(--text-muted);font-family:var(--mono)}
.mseo-history-list{max-height:260px;overflow-y:auto}
.mseo-history-entry{padding:6px 8px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:var(--radius-sm);transition:background var(--transition)}
.mseo-history-entry:hover{background:var(--surface)}
.mseo-history-entry.expanded{background:var(--surface)}
.mseo-history-row{display:flex;align-items:center;gap:8px}
.mseo-history-date{font-size:.72rem;font-weight:700;color:var(--text);font-family:var(--mono)}
.mseo-history-source{font-size:.58rem;padding:1px 6px;border-radius:3px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
.mseo-history-source.manual{background:var(--accent-bg);color:var(--accent)}
.mseo-history-source.ai{background:#ede9fe;color:#7c3aed}
.mseo-history-score{font-size:.66rem;font-weight:700;font-family:var(--mono);margin-left:auto}
.mseo-history-arrow{font-size:.7rem;color:var(--text-muted);transition:transform .2s;width:14px;flex-shrink:0}
.mseo-history-entry.expanded .mseo-history-arrow{transform:rotate(90deg)}
.mseo-history-diff{margin:8px 0 4px;padding:6px 10px;background:var(--surface);border-radius:var(--radius-sm);font-family:var(--mono);font-size:.66rem;line-height:1.6}
.mseo-diff-field{font-size:.6rem;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.3px;margin-top:6px}
.mseo-diff-field:first-child{margin-top:0}
.mseo-diff-del{background:#fee2e2;color:#991b1b;padding:1px 4px;border-radius:2px;text-decoration:line-through;display:block;word-break:break-word}
.mseo-diff-add{background:#dcfce7;color:#166534;padding:1px 4px;border-radius:2px;display:block;word-break:break-word}
.mseo-history-restore{font-size:.6rem;cursor:pointer;color:var(--accent);border:1px solid var(--accent);background:transparent;padding:1px 8px;border-radius:10px;font-weight:600;margin-left:auto;transition:all var(--transition)}
.mseo-history-restore:hover{background:var(--accent);color:#fff}
.mseo-history-empty{font-size:.7rem;color:var(--text-muted);text-align:center;padding:16px 0}
.mseo-serp-trend{margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}
.mseo-serp-trend-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.3px;color:var(--text-muted);margin-bottom:6px}
.mseo-serp-trend-bar{display:flex;align-items:center;gap:6px;margin:3px 0}
.mseo-serp-trend-pos{width:28px;font-size:.68rem;font-weight:700;text-align:right;font-family:var(--mono);flex-shrink:0}
.mseo-serp-trend-fill{height:14px;border-radius:2px;transition:width .3s}
.mseo-serp-trend-fill.top3{background:var(--success)}
.mseo-serp-trend-fill.top10{background:var(--warn)}
.mseo-serp-trend-fill.low{background:var(--error)}
.mseo-serp-trend-date{font-size:.58rem;color:var(--text-muted);font-family:var(--mono);flex-shrink:0;width:40px}
.mseo-dropdown{width:100%;padding:8px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);font-size:.8rem;background:var(--bg);color:var(--text);cursor:pointer;transition:border-color var(--transition)}
.mseo-dropdown:focus{border-color:var(--accent);outline:none}
/* CSV import zone */
.mcsv-upload-zone{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center;cursor:pointer;transition:.2s;color:var(--text-muted)}
.mcsv-upload-zone:hover,.mcsv-upload-zone.dragover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.mcsv-upload-label{color:var(--accent);cursor:pointer;font-weight:600;text-decoration:underline}

/* ── Pipeline Image Gallery (v3.1) ── */
.pipe-img-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-top:10px}
.pipe-img-card{border:2px solid var(--border);border-radius:8px;overflow:hidden;position:relative;background:var(--surface);transition:border-color .2s,box-shadow .2s}
.pipe-img-card:hover{border-color:var(--accent)}
.pipe-img-card.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
.pipe-img-card.packshot{border-color:var(--success);box-shadow:0 0 0 3px rgba(34,197,94,.15)}
.pipe-img-card img{width:100%;height:110px;object-fit:cover;display:block;background:var(--surface-alt)}
.pipe-img-card-info{padding:6px 8px;font-size:.68rem;color:var(--text-sec);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pipe-img-card-badge{position:absolute;top:4px;left:4px;font-size:.58rem;font-weight:700;padding:2px 6px;border-radius:4px;background:rgba(0,0,0,.6);color:#fff}
.pipe-img-card-remove{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:50%;background:var(--error);color:#fff;border:none;font-size:11px;line-height:20px;text-align:center;cursor:pointer;display:none}
.pipe-img-card:hover .pipe-img-card-remove{display:block}
.pipe-img-card-score{position:absolute;bottom:32px;right:4px;font-size:.6rem;font-weight:700;padding:1px 6px;border-radius:3px;background:var(--accent);color:var(--on-accent)}
.pipe-img-drop{border:2px dashed var(--border);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:.2s;color:var(--text-muted);font-size:.8rem}
.pipe-img-drop:hover,.pipe-img-drop.dragover{border-color:var(--accent);background:var(--accent-bg);color:var(--accent)}
.pipe-img-card{cursor:pointer}
/* ── Image Lightbox ── */
.pipe-lightbox{position:fixed;inset:0;z-index:var(--z-lightbox);background:rgba(0,0,0,.85);display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px;padding:20px}
.pipe-lightbox.show{display:flex}
.pipe-lightbox-close{position:absolute;top:16px;right:20px;font-size:28px;color:#fff;cursor:pointer;background:none;border:none;z-index:calc(var(--z-lightbox) + 1);width:40px;height:40px;line-height:40px;text-align:center}
.pipe-lightbox-close:hover{color:var(--accent)}
.pipe-lightbox img{max-width:90vw;max-height:75vh;object-fit:contain;border-radius:8px;box-shadow:0 8px 32px rgba(0,0,0,.5)}
.pipe-lightbox-info{color:#fff;font-size:.82rem;text-align:center;max-width:90vw;line-height:1.5}
.pipe-lightbox-info a{color:var(--accent);text-decoration:none}
.pipe-lightbox-info a:hover{text-decoration:underline}
/* v4.37: Lightbox gallery navigation */
.pipe-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);font-size:48px;color:#fff;background:rgba(0,0,0,.4);border:none;cursor:pointer;width:48px;height:80px;display:flex;align-items:center;justify-content:center;z-index:calc(var(--z-lightbox) + 1);border-radius:6px;transition:background .15s}
.pipe-lightbox-nav:hover{background:rgba(0,0,0,.7)}
.pipe-lightbox-prev{left:12px}
.pipe-lightbox-next{right:12px}
.pipe-lightbox-counter{color:#fff;font-size:.88rem;font-family:var(--mono);font-weight:600;text-align:center;letter-spacing:.05em;opacity:.8}


/* ── v6.0.21: Audit checkboxes & batch bar & overflow menu ── */
.audit-check{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}
#pipeAuditTable tr.audit-row-selected{background:var(--accent-bg)}
.audit-batch-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;margin-bottom:10px;background:var(--accent-bg);border:1px solid var(--accent);border-radius:6px;animation:auditBatchIn .2s ease}
@keyframes auditBatchIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.audit-overflow-wrap{position:relative;display:inline-block}
.audit-overflow-menu{position:absolute;right:0;top:100%;z-index:50;min-width:180px;padding:4px 0;background:var(--surface);border:1px solid var(--border);border-radius:6px;box-shadow:var(--shadow-md,0 4px 16px rgba(0,0,0,.15))}
.audit-overflow-item{display:flex!important;align-items:center;gap:6px;width:100%;padding:6px 12px!important;font-size:.72rem!important;border-radius:0!important;text-align:left}
.audit-overflow-item:hover{background:var(--surface-alt)}
/* v6.0.21: Product table — bigger checkboxes */
.pipe-product-check{width:20px;height:20px}

/* ── COMPETITIVE EDGE REPORT v6.0.67 ── */
.ce-panel{margin-top:14px;padding:14px 16px;background:var(--surface-alt);border-radius:8px;border:1px solid var(--border);border-left:3px solid var(--accent)}
.ce-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.ce-header-left{display:flex;align-items:center;gap:6px;font-size:.78rem}
.ce-overall{display:flex;align-items:center;gap:4px;font-weight:700;font-size:.82rem}
.ce-overall-score{font-family:var(--mono);font-size:.9rem}
.ce-badge{font-size:.58rem;padding:1px 5px;border-radius:4px;font-weight:600;text-transform:uppercase;letter-spacing:.3px}
.ce-badge-dfs{background:rgba(59,130,246,.12);color:var(--accent)}
.ce-summary{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.ce-summary-stat{font-size:.66rem;padding:2px 7px;border-radius:10px;font-weight:600}
.ce-good{background:rgba(34,197,94,.12);color:var(--success)}
.ce-ok{background:rgba(234,179,8,.12);color:var(--warn)}
.ce-weak{background:rgba(239,68,68,.12);color:var(--error)}
.ce-neutral{background:var(--surface);color:var(--text-sec);border:1px solid var(--border)}
.ce-metrics{display:flex;flex-direction:column;gap:10px}
.ce-metric{display:flex;flex-direction:column;gap:3px}
.ce-metric-head{display:flex;align-items:center;justify-content:space-between}
.ce-metric-label{font-size:.72rem;font-weight:600;color:var(--text)}
.ce-metric-value{font-size:.72rem;font-weight:700;font-family:var(--mono)}
.ce-metric-value.ce-pass{color:var(--success)}
.ce-metric-value.ce-ok{color:var(--warn)}
.ce-metric-value.ce-weak{color:var(--error)}
.ce-bar-track{height:5px;background:var(--border);border-radius:3px;overflow:hidden}
.ce-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}
.ce-metric-detail{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline}
.ce-metric-sub{font-size:.64rem;color:var(--text-muted)}
.ce-metric-extra{font-size:.64rem;color:var(--text-sec);font-family:var(--mono)}
.ce-metric-missed{font-size:.62rem;color:var(--error);font-style:italic}
.ce-metric-warn{font-size:.62rem;color:var(--error);font-weight:600}
.ce-metric-items{display:flex;flex-wrap:wrap;gap:3px}
.ce-struct-item{font-size:.62rem;padding:1px 5px;border-radius:4px;font-weight:500}
.ce-struct-item.ce-ok{background:rgba(34,197,94,.08);color:var(--success)}
.ce-struct-item.ce-weak{background:rgba(239,68,68,.08);color:var(--error)}
.ce-auth-dist{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}
.ce-auth-dist span{font-size:.64rem;padding:2px 6px;border-radius:4px;font-weight:500}
.ce-auth-good{background:rgba(34,197,94,.08);color:var(--success)}
.ce-auth-other{background:var(--surface);color:var(--text-muted);border:1px solid var(--border)}
/* ── DIFF VIEW (v6.0.107) ── */
.mseo-diff-list{display:flex;flex-direction:column;gap:12px;padding:8px 0}
.mseo-diff-card{border:1px solid var(--border);border-radius:8px;background:var(--surface);overflow:hidden;transition:opacity .2s}
.mseo-diff-card-rejected{opacity:.4}
.mseo-diff-card-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-alt);border-bottom:1px solid var(--border)}
.mseo-diff-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.82rem}
.mseo-diff-check input{width:16px;height:16px;accent-color:var(--accent)}
.mseo-diff-score{white-space:nowrap}
.mseo-diff-field{padding:8px 14px;border-bottom:1px solid var(--border)}
.mseo-diff-field:last-child{border-bottom:none}
.mseo-diff-field-label{font-size:.72rem;font-weight:700;color:var(--text-sec);margin-bottom:4px;display:flex;align-items:center;gap:8px}
.mseo-diff-len{font-weight:400;color:var(--text-muted);font-size:.65rem}
.mseo-diff-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:900px){.mseo-diff-row{grid-template-columns:1fr}}
.mseo-diff-old,.mseo-diff-new{padding:6px 10px;border-radius:6px;font-size:.74rem;line-height:1.5;word-break:break-word;max-height:180px;overflow-y:auto}
.mseo-diff-old{background:rgba(239,68,68,.05);border:1px solid rgba(239,68,68,.15)}
.mseo-diff-new{background:rgba(34,197,94,.05);border:1px solid rgba(34,197,94,.15)}
.mseo-diff-tag{display:inline-block;font-size:.58rem;font-weight:800;text-transform:uppercase;padding:1px 5px;border-radius:3px;margin-right:6px;letter-spacing:.5px}
.mseo-diff-old .mseo-diff-tag{background:rgba(239,68,68,.12);color:var(--error)}
.mseo-diff-new .mseo-diff-tag{background:rgba(34,197,94,.12);color:var(--success)}
.mseo-diff-no-change{padding:10px 14px;font-size:.74rem;color:var(--text-muted);font-style:italic}
.mseo-diff-cannibal{padding:4px 14px;font-size:.7rem;color:var(--warn);background:var(--warn-bg);border-bottom:1px solid var(--border)}
.mseo-diff-skipped{padding:8px 12px;font-size:.72rem;color:var(--text-sec);background:var(--surface-alt);border-radius:6px}
.mseo-diff-errors{padding:8px 12px;font-size:.72rem;color:var(--error);background:var(--error-bg);border-radius:6px}
/* ═══════════════════════════════════════════════════════════════
   SHARED UI COMPONENTS (v6.0.183) — production design system
   ═══════════════════════════════════════════════════════════════ */

/* ── Info Box Component ── */
.ui-infobox{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:1.5;margin-bottom:var(--space-3)}
.ui-infobox-info{background:var(--info-bg);border:1px solid var(--info-border)}
.ui-infobox-success{background:var(--success-bg);border:1px solid var(--success-border)}
.ui-infobox-warn{background:var(--warn-bg);border:1px solid var(--warn-border)}
.ui-infobox-error{background:var(--error-bg);border:1px solid var(--error-border)}
.ui-infobox-icon{flex-shrink:0;margin-top:1px}
.ui-infobox-body{flex:1;min-width:0}

/* ── Badge Component ── */
.ui-badge{display:inline-flex;align-items:center;gap:4px;padding:var(--badge-pad);border-radius:var(--badge-radius);font-size:var(--badge-font);font-weight:600;white-space:nowrap}
.ui-badge-success{background:var(--success-bg);color:var(--success)}
.ui-badge-error{background:var(--error-bg);color:var(--error)}
.ui-badge-warn{background:var(--warn-bg);color:var(--warn)}
.ui-badge-info{background:var(--accent-bg);color:var(--accent)}
.ui-badge-purple{background:var(--purple-bg);color:var(--purple)}
.ui-badge-neutral{background:var(--surface-alt);color:var(--text-sec)}

/* ── Data Table Component ── */
.ui-data-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}
.ui-data-table th{background:var(--surface-alt);padding:6px 8px;text-align:left;font-size:var(--text-xs);font-weight:700;color:var(--text-sec);text-transform:uppercase;border-bottom:2px solid var(--border-strong);letter-spacing:.3px}
.ui-data-table td{padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}
.ui-data-table tr:nth-child(even){background:var(--row-even)}
.ui-data-table .td-mono{font-family:var(--mono);font-weight:600}
.ui-data-table .td-ok{color:var(--success)}
.ui-data-table .td-err{color:var(--error)}
.ui-data-table .td-warn{color:var(--warn)}

/* ── Module Identity Headers ── */
.module-accent-pipeline{border-left:3px solid var(--accent)}
.module-accent-menu{border-left:3px solid var(--purple)}
.module-accent-edit{border-left:3px solid var(--success)}
.module-accent-analytics{border-left:3px solid var(--indigo)}
.module-accent-search{border-left:3px solid var(--cyan)}

/* ── FOOTER ── */
.footer{text-align:center;padding:14px 0 8px;font-size:.7rem;color:var(--text-muted);letter-spacing:.2px;margin:0 16px}
