:root{--bg:#f8f9fa;--surface:#ffffff;--border:#e2e5e9;--text:#1a1d21;--text-muted:#6b7280;--accent:#0f5c4c;--accent-hover:#0a4539;--danger:#dc2626;--warning:#d97706;--success:#16a34a;--sidebar-width:220px;--radius:6px;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{font-family:var(--font-sans);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--surface);border-right:1px solid var(--border);padding:1.5rem 0;position:fixed;top:0;left:0;bottom:0;overflow-y:auto}.sidebar-brand{padding:0 1.25rem 1.5rem;border-bottom:1px solid var(--border);margin-bottom:1rem}.sidebar-brand h1{font-size:1rem;font-weight:700;color:var(--accent)}.sidebar-brand p{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.sidebar nav a{display:block;padding:.5rem 1.25rem;color:var(--text);font-size:.875rem;text-decoration:none;border-left:3px solid transparent}.sidebar nav a:hover{background:var(--bg);text-decoration:none}.sidebar nav a.active{background:#edf7f4;color:var(--accent);border-left-color:var(--accent);font-weight:500}.sidebar-section{margin-bottom:.75rem}.sidebar-section-title{padding:.75rem 1.25rem .25rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.sidebar-link-hint,.sidebar-section-title{font-size:.6875rem;color:var(--text-muted)}.sidebar-link-hint{display:block;font-weight:400;margin-top:.125rem}.affiliate-workflow-guide-compact{margin-bottom:1rem}.affiliate-workflow-guide-compact h3{font-size:1rem;margin-bottom:.5rem}.product-ops-panel-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.product-ops-panel-header h3{margin:0}.affiliate-workflow-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));grid-gap:.75rem;gap:.75rem}.affiliate-workflow-step{display:block;padding:.75rem;border:1px solid var(--border);border-radius:8px;text-decoration:none;color:inherit}.affiliate-workflow-step:hover{border-color:var(--accent);background:#f8fcfb;text-decoration:none}.affiliate-workflow-step-active{border-color:var(--accent);background:#edf7f4}.affiliate-workflow-step strong{display:block;margin-bottom:.25rem}.card-primary{border-color:var(--accent);box-shadow:0 0 0 1px rgba(26,127,100,.08)}.card-nested{box-shadow:none;border:1px solid var(--border)}.affiliate-analytics-details summary{cursor:pointer;font-weight:600;padding:.25rem 0}.affiliate-analytics-body{margin-top:1rem}.main-content{margin-left:var(--sidebar-width);flex:1 1;padding:2rem;max-width:1200px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.page-header h2{font-size:1.5rem;font-weight:600}.page-header p{color:var(--text-muted);font-size:.875rem;margin-top:.25rem}.page-header-actions{display:flex;gap:.75rem;align-items:center}.detail-grid{display:grid;grid-template-columns:160px 1fr;grid-gap:.5rem 1rem;gap:.5rem 1rem;font-size:.875rem}.detail-grid dt{color:var(--text-muted);font-weight:500}.detail-grid dd{margin:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.card h3{font-size:.875rem;font-weight:600;margin-bottom:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1.5rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1rem}.stat-card .value{font-size:1.75rem;font-weight:700;color:var(--accent)}.stat-card .label{font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.stat-card-link{display:block;color:inherit;text-decoration:none}.stat-card-link:hover .value{color:var(--accent-hover,var(--accent))}.grid-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:1.5rem;gap:1.5rem}@media (max-width:768px){.grid-2{grid-template-columns:1fr}.sidebar{display:none}.main-content{margin-left:0}}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.875rem}th{text-align:left;border-bottom:2px solid var(--border);font-weight:600;color:var(--text-muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap}td,th{padding:.625rem .75rem}td{border-bottom:1px solid var(--border);vertical-align:middle}tr:hover td{background:#f8f9fa}.badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:500}.badge-success{background:#dcfce7;color:#166534}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-neutral{background:#f3f4f6;color:#4b5563}.badge-tier-a{background:#dcfce7;color:#166534;font-weight:600}.badge-tier-b{background:#dbeafe;color:#1e40af;font-weight:600}.badge-tier-c{background:#f3f4f6;color:#4b5563;font-weight:600}.badge-tier-unrated{background:#fef3c7;color:#92400e}.badge-tier-suggested{border:1px dashed}.btn{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;cursor:pointer;border:none;line-height:1}.btn,.btn:hover{text-decoration:none}.btn-primary{background:var(--accent);color:white}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--bg)}.btn-danger{background:var(--danger);color:white}.btn-sm{padding:.25rem .625rem;font-size:.75rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-grid .full-width{grid-column:1/-1}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-group label{font-size:.8125rem;font-weight:500;color:var(--text)}.form-group input,.form-group select,.form-group textarea{padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem;font-family:inherit;background:var(--surface)}.form-group textarea{min-height:100px;resize:vertical}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(15,92,76,.1)}.form-actions{display:flex;gap:.75rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.attention-list{list-style:none}.attention-list li{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border);font-size:.875rem}.attention-list li:last-child{border-bottom:none}.empty-state{text-align:center;padding:3rem;color:var(--text-muted)}.mono{font-family:var(--font-mono);font-size:.8125rem}.score{font-weight:700;color:var(--accent)}.markdown-preview{background:#1e1e1e;color:#d4d4d4;padding:1rem;border-radius:var(--radius);font-family:var(--font-mono);font-size:.8125rem;white-space:pre-wrap;overflow-x:auto;max-height:500px;overflow-y:auto}.section-title{font-size:1rem;font-weight:600;margin-bottom:.75rem}.mt-4{margin-top:1.5rem}.mb-4{margin-bottom:1.5rem}.text-muted{color:var(--text-muted)}.text-sm{font-size:.8125rem}.flex{display:flex}.gap-2{gap:.5rem}.items-center,.login-page{align-items:center}.login-page{min-height:100vh;display:flex;justify-content:center;padding:2rem}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:2rem}.login-card h1{font-size:1.5rem;margin-bottom:.25rem;color:var(--accent)}.login-card form{margin-top:1.5rem}.login-card .btn{width:100%;justify-content:center;margin-top:1rem}.login-error{color:var(--danger);font-size:.875rem;margin-top:.75rem}.logout-button{display:block;width:100%;padding:.5rem 1.25rem;margin-top:1rem;border:none;background:none;color:var(--text-muted);font-size:.875rem;text-align:left;cursor:pointer}.logout-button:hover{color:var(--danger);background:var(--bg)}.queue-filters{margin-bottom:1rem;padding:1rem 1.25rem}.queue-filters-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.filter-label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;font-weight:500;color:var(--text-muted)}.filter-label select{min-width:140px;padding:.375rem .5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.875rem}.queue-title{font-weight:500}.badge-priority-p1{background:#0f5c4c;color:#fff}.badge-priority-p2{background:#dbeafe;color:#1e40af}.badge-priority-p3{background:#f3f4f6;color:#4b5563}.badge-priority-hold{background:#fef3c7;color:#92400e}.badge-priority-ignore{background:#f3f4f6;color:#9ca3af}.opportunity-detail{display:flex;flex-direction:column;gap:1.25rem;margin-bottom:1.5rem}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.summary-grid.compact{margin-bottom:.75rem}.summary-grid dt{font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.25rem}.summary-grid dd{font-size:.9rem}.score-lg{font-size:1.5rem;font-weight:700;color:var(--accent)}.section-lead{color:var(--text-muted);font-size:.8125rem;margin:-.5rem 0 1rem}.factor-list{display:flex;flex-direction:column;gap:.5rem}.factor-item{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem}.factor-item summary{display:flex;justify-content:space-between;cursor:pointer;font-weight:500}.factor-score{font-weight:700;color:var(--accent)}.factor-evidence{margin-top:.75rem;font-size:.8125rem}.evidence-json{margin-top:.5rem;padding:.75rem;background:var(--bg);border-radius:var(--radius);font-family:var(--font-mono);font-size:.75rem;overflow-x:auto}.strategic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:1rem;gap:1rem}.strategic-grid dt{font-size:.7rem;color:var(--text-muted);text-transform:uppercase}.action-panel{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.action-panel h3{font-size:.875rem;margin-bottom:.75rem}.action-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.action-message{margin-top:.75rem;font-size:.8125rem}.action-success{color:var(--success)}.action-error{color:var(--danger)}.action-running{color:var(--text-muted)}.serp-results ol{margin:.5rem 0 0;padding-left:1.25rem}.serp-pos{color:var(--text-muted);margin-right:.25rem}.serp-gaps ul,.serp-signals{margin-top:1rem}.serp-gaps li{margin-bottom:.35rem}.edit-metadata{margin-top:1rem}.edit-metadata summary{cursor:pointer;font-weight:600;margin-bottom:1rem}.catalog-summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem;padding:1rem 1.25rem}.catalog-summary-value{font-size:1.5rem;font-weight:700;color:var(--accent)}.catalog-summary-label{font-size:.75rem;color:var(--text-muted)}.catalog-table .score{text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score-unknown{color:var(--warning);font-style:italic}.catalog-row-attention{background:#fffbeb}.badge-judgment,.catalog-row-attention:hover{background:#fef3c7}.badge-judgment{color:#92400e;font-size:.7rem;margin:.1rem}.judgment-flag-list{display:flex;flex-wrap:wrap;gap:.25rem}.human-tier-cell{display:flex;flex-direction:column;gap:.35rem;align-items:flex-start}.human-tier-quick-edit{display:flex;gap:.35rem;align-items:center}.human-priority-input,.human-tier-select{padding:.2rem .35rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.75rem;min-width:3rem}.human-priority-input{width:3.5rem}.checkbox-label{flex-direction:row!important;align-items:center;gap:.5rem}.catalog-details-summary{cursor:pointer;font-weight:600;padding:.25rem 0}.catalog-human-tier-table td,.catalog-human-tier-table th{vertical-align:top;padding:.6rem .5rem}.revenue-kpi-muted{color:var(--text-muted);font-size:1.25rem}.revenue-section-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.revenue-filters{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1rem}.revenue-filter-group{display:flex;flex-direction:column;gap:.5rem}.revenue-filter-label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em}.revenue-filter-buttons,.revenue-product-meta{display:flex;flex-wrap:wrap;gap:.35rem}.revenue-product-meta{margin-top:.35rem}.readiness-breakdown{display:inline-block}.readiness-summary{cursor:pointer;font-weight:700;color:var(--accent);list-style:none}.readiness-summary::-webkit-details-marker{display:none}.readiness-breakdown-list{margin-top:.5rem;padding-left:1rem;font-size:.8125rem;color:var(--text-muted)}.status-dot{font-size:.75rem;margin-right:.25rem}.status-dot-complete{color:var(--success)}.status-dot-partial{color:var(--warning)}.status-dot-missing{color:var(--danger)}.ml-1{margin-left:.35rem}.search-growth-overview{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1rem;gap:1rem;margin-bottom:1rem}.overview-status-list,.overview-tier-grid{display:flex;flex-direction:column;gap:.75rem}.overview-status-row,.overview-tier-label{font-size:.875rem}.overview-tier-count{font-weight:700;margin:.15rem 0 .35rem}.overview-bar-track,.overview-status-bar-wrap{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.overview-status-row{display:grid;grid-template-columns:110px 1fr 32px;grid-gap:.75rem;gap:.75rem;align-items:center}.overview-bar-fill{height:100%;border-radius:999px;background:var(--accent)}.overview-bar-fill.tier-a{background:#0f5c4c}.overview-bar-fill.tier-b{background:#2563eb}.overview-bar-fill.tier-c{background:#6b7280}.overview-status-count{text-align:right;font-weight:600}.cluster-list-header{display:flex;justify-content:space-between;align-items:baseline;margin:1.25rem 0 .75rem}.cluster-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:1rem;gap:1rem}.action-priority-badge{display:inline-flex;align-items:center;font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.2rem .5rem;border-radius:999px;white-space:nowrap}.action-priority-start-now{background:#fee2e2;color:#991b1b;border:1px solid #fecaca}.action-priority-fix-next{background:#fef3c7;color:#92400e;border:1px solid #fde68a}.action-priority-in-progress{background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe}.action-priority-can-wait{background:#f3f4f6;color:#4b5563;border:1px solid #e5e7eb}.action-priority-monitor{background:#ecfdf5;color:#047857;border:1px solid #d1fae5}.overview-action-card{grid-column:1/-1}.overview-action-list{display:flex;flex-direction:column;gap:.65rem}.overview-action-row{display:grid;grid-template-columns:110px 1fr 32px;grid-gap:.75rem;gap:.75rem;align-items:center}.overview-status-row-muted{grid-template-columns:1fr auto}.overview-tier-card .overview-tier-block{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--border)}.overview-tier-card .overview-tier-block:last-child{border-bottom:none}.overview-tier-card .overview-tier-count{margin:0;color:var(--text-muted);font-weight:500}.cluster-tier-muted{font-size:.6875rem;color:var(--text-muted);background:#f3f4f6;padding:.1rem .4rem;border-radius:999px}.action-queue{display:grid;grid-template-columns:1.4fr 1fr;grid-gap:1rem;gap:1rem;margin-bottom:1rem}.action-queue-clear{grid-column:1/-1}.action-queue-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.action-queue-urgent{border-left:4px solid var(--danger)}.action-queue-next{border-left:4px solid var(--warning)}.action-queue-list{list-style:none;margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.action-queue-list-compact .action-queue-item{padding:.5rem 0}.action-queue-item{display:block;padding:.65rem .75rem;border:1px solid var(--border);border-radius:var(--radius);color:inherit;text-decoration:none;background:var(--bg)}.action-queue-item:hover{border-color:#fecaca;background:#fff7f7;text-decoration:none}.action-queue-item-main{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.action-queue-tier{font-size:.75rem;color:var(--text-muted)}.action-queue-reason{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.action-queue-reason-inline{font-size:.75rem;color:var(--text-muted)}.action-queue-meta{display:flex;gap:.75rem;margin-top:.35rem;font-size:.75rem}.metric-alert{color:var(--danger);font-weight:600}.metric-danger{color:var(--danger);font-weight:700}.metric-warning{color:var(--warning);font-weight:600}.metric-muted{color:var(--text-muted)}.metric-ok{color:var(--text)}.cluster-card{display:block;background:var(--surface);border:1px solid var(--border);border-left-width:4px;border-radius:var(--radius);padding:1rem;color:inherit;text-decoration:none;transition:border-color .15s ease,box-shadow .15s ease}.cluster-card-start_now{border-left-color:var(--danger)}.cluster-card-fix_next{border-left-color:var(--warning)}.cluster-card-in_progress{border-left-color:#3b82f6}.cluster-card-can_wait,.cluster-card-monitor{border-left-color:#d1d5db}.cluster-card-muted{opacity:.82}.cluster-card-muted:hover{opacity:1}.cluster-card:hover{box-shadow:0 2px 8px rgba(15,92,76,.08);text-decoration:none}.cluster-card-start_now:hover{border-color:#fecaca}.cluster-card-title-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.35rem}.cluster-action-reason{font-size:.8125rem;color:var(--text-muted);margin-bottom:.75rem;line-height:1.4}.cluster-action-callout{padding:.75rem 1rem;border-radius:var(--radius);border:1px solid var(--border)}.cluster-action-callout strong{display:block;margin-bottom:.25rem}.cluster-action-callout p{font-size:.875rem;color:var(--text-muted);margin:0}.cluster-action-callout-start_now{background:#fef2f2;border-color:#fecaca}.cluster-action-callout-fix_next{background:#fffbeb;border-color:#fde68a}.cluster-action-callout-in_progress{background:#eff6ff;border-color:#bfdbfe}.cluster-action-callout-can_wait,.cluster-action-callout-monitor{background:#f9fafb}.cluster-card-header{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.75rem}.cluster-card-header h3{font-size:1rem;margin-bottom:.35rem}.cluster-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:.5rem 1rem;gap:.5rem 1rem;margin-bottom:.75rem}.cluster-metric{display:flex;justify-content:space-between;gap:.5rem;font-size:.8125rem}.cluster-metric-label{color:var(--text-muted)}.cluster-metric-value{font-weight:600}.cluster-role-summary{border-top:1px solid var(--border);padding-top:.75rem;display:flex;flex-direction:column;gap:.35rem}.cluster-role-row{font-size:.8125rem}.cluster-card-footer,.cluster-role-row{display:flex;justify-content:space-between}.cluster-card-footer{align-items:center;margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.cluster-view-link{color:var(--accent);font-size:.8125rem;font-weight:600}.cluster-missing-pill{font-size:.75rem;background:#fef3c7;color:#92400e;padding:.15rem .5rem;border-radius:999px}.cluster-missing-pill-danger{background:#fee2e2;color:#991b1b;font-weight:600}.cluster-wait-pill{font-size:.75rem;color:var(--text-muted);background:#f3f4f6;padding:.15rem .5rem;border-radius:999px}.cluster-status-badge{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:999px;white-space:nowrap;background:#f3f4f6;color:#6b7280}.cluster-status-subdued{opacity:.85}.cluster-status-authority,.cluster-status-building,.cluster-status-connected,.cluster-status-empty,.cluster-status-growing,.cluster-status-indexing,.cluster-status-seeding{background:#f3f4f6;color:#6b7280}.cluster-detail-title-row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.cluster-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.cluster-detail-secondary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));grid-gap:1rem;gap:1rem;margin-top:1rem}.cluster-article-list{list-style:none;display:flex;flex-direction:column;gap:.5rem}.cluster-article-item{display:flex;gap:.5rem;align-items:flex-start;font-size:.875rem}.cluster-article-icon{width:1rem;flex-shrink:0;color:var(--text-muted)}.cluster-article-item.status-published .cluster-article-icon{color:var(--success)}.cluster-article-item.status-missing .cluster-article-icon{color:var(--warning)}.cluster-missing-source{margin-left:auto;font-size:.75rem;color:var(--text-muted)}.cluster-issue-list ul{list-style:none;display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem;color:var(--text-muted)}.cluster-published-role-section{margin-top:1.25rem}.cluster-published-role-section:first-of-type{margin-top:.75rem}.cluster-published-role-heading{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}@media (max-width:900px){.action-queue{grid-template-columns:1fr}.overview-action-row,.overview-status-row{grid-template-columns:1fr;gap:.35rem}}.visual-studio-summary{margin-bottom:1.5rem;padding:1.25rem 1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.visual-studio-summary-title{font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);margin-bottom:1rem}.visual-studio-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:1rem;gap:1rem}.visual-studio-summary-value{font-size:1.5rem;font-weight:600;line-height:1.2}.visual-studio-summary-label{font-size:.8125rem;color:var(--text-muted)}.visual-studio-notice{margin-bottom:1rem;padding:.75rem 1rem;border:1px solid #f0d7a6;border-radius:var(--radius);background:#fff8eb;font-size:.875rem}.visual-template-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.visual-template-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.visual-template-card-thumb{aspect-ratio:16/9;background:#f3efe6;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:hidden}.visual-template-card-thumb img{width:100%;height:100%;object-fit:cover;object-position:center}.visual-template-card-thumb--empty{color:var(--text-muted)}.visual-template-card-body{padding:1rem;display:flex;flex-direction:column;gap:.35rem}.visual-template-card-body h3{font-size:1rem;margin:0}.visual-template-card-types{font-family:var(--font-mono);font-size:.75rem;color:var(--text-muted)}.visual-template-card-status{font-size:.875rem;margin-top:.25rem}.visual-studio-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);grid-gap:1.25rem;gap:1.25rem;align-items:start}.visual-studio-controls{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);padding:1rem;display:flex;flex-direction:column;gap:1rem;position:-webkit-sticky;position:sticky;top:1rem;max-height:calc(100vh - 2rem);overflow:auto}.visual-studio-controls-header h2{margin:.35rem 0 .25rem;font-size:1.25rem}.visual-studio-control-block{border-top:1px solid var(--border);padding-top:.75rem}.visual-studio-control-label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.5rem}.visual-studio-select{width:100%;padding:.45rem .6rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit;background:var(--surface)}.visual-studio-meta{display:grid;grid-gap:.35rem;gap:.35rem;font-size:.8125rem}.visual-studio-meta dt{color:var(--text-muted);font-size:.6875rem;text-transform:uppercase;letter-spacing:.04em}.visual-studio-meta dd{margin:0}.visual-studio-variant-row{display:flex;flex-wrap:wrap;gap:.5rem}.visual-studio-external-list{list-style:none;display:grid;grid-gap:.75rem;gap:.75rem}.visual-studio-external-list li{padding:.5rem 0;border-bottom:1px solid var(--border)}.visual-studio-preview-pane{min-width:0;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);padding:1rem}.visual-studio-preview-label{font-size:.75rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted);margin-bottom:.75rem}.visual-studio-canvas-frame{width:100%;max-width:1600px;aspect-ratio:16/9;margin:0 auto;background:#f3efe6;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;overflow:auto}.visual-studio-canvas-img{width:100%;height:100%;object-fit:contain}.visual-studio-article-width-frame{margin:0 auto;background:#f3efe6;padding:1rem}.visual-studio-responsive-img{display:block;width:100%;height:auto}.visual-studio-missing{padding:2rem 1rem;text-align:center;color:var(--text-muted)}@media (max-width:960px){.visual-studio-layout{grid-template-columns:1fr}.visual-studio-controls{position:static;max-height:none}}.filter-row{display:flex;flex-wrap:wrap;gap:.5rem}.filter-pill{display:inline-flex;padding:.35rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:.8125rem}.filter-pill:hover{text-decoration:none;border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}.filter-pill--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface))}.brand-assets-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-gap:1.25rem;gap:1.25rem}@media (max-width:900px){.brand-assets-grid{grid-template-columns:1fr}}.brand-preview-card{border:1px solid var(--border);border-radius:var(--radius);padding:1rem;background:#fafbfc}.brand-meta-dl{display:grid;grid-gap:.5rem;gap:.5rem;margin-top:.75rem;font-size:.8125rem}.brand-meta-dl dt{font-weight:600;color:var(--text-muted)}.brand-actions-stack{display:grid;grid-gap:1rem;gap:1rem}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem}.brand-preview-matrix__grid,.product-chip-preview-row{display:flex;flex-wrap:wrap;gap:6px}.brand-preview-matrix__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:1rem;gap:1rem}.admin-product-chip,.product-logo-thumb{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:4px 10px 4px 6px;border:1px solid var(--border);border-radius:6px;background:color-mix(in srgb,var(--surface) 90%,var(--bg));font-size:.8125rem;font-weight:500}.admin-product-chip__logo,.product-logo-thumb{width:24px;height:24px;padding:0;justify-content:center}.admin-product-chip__logo img,.product-logo-thumb img{max-width:20px;max-height:20px;object-fit:contain}.admin-product-chip__initial,.product-logo-thumb--initial{width:20px;height:20px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--chip-brand,var(--text)) 14%,transparent);color:var(--chip-brand,var(--text));font-size:.68rem;font-weight:700}.product-logo-thumb{border:none;background:transparent;min-height:0;padding:0}.product-logo-stats{gap:1rem;font-size:.875rem;color:var(--text-muted)}.product-logo-stats,.product-logo-toolbar{display:flex;flex-wrap:wrap;margin-bottom:1rem}.product-logo-toolbar{gap:.5rem;align-items:center}.product-logo-search{flex:1 1;min-width:200px;max-width:360px;padding:.45rem .65rem;border:1px solid var(--border);border-radius:var(--radius);font:inherit}.product-logo-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:1rem;gap:1rem}.product-logo-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);overflow:hidden}.product-logo-card__preview{display:flex;align-items:center;justify-content:center;min-height:120px;padding:1.25rem;background:color-mix(in srgb,var(--bg) 70%,var(--surface));border-bottom:1px solid var(--border)}.product-logo-card__image{max-width:72px;max-height:72px;object-fit:contain}.product-logo-card__placeholder{width:72px;height:72px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:1.75rem;font-weight:700;background:color-mix(in srgb,var(--chip-brand,var(--text)) 14%,transparent);color:var(--chip-brand,var(--text))}.product-logo-card__body{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.product-logo-card__body h3{font-size:1rem;margin:0}.product-logo-card__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:0}.product-logo-card__chip-preview{margin:.25rem 0}.product-logo-card__upload{display:flex;flex-direction:column;gap:.35rem;margin-top:.25rem;padding-top:.5rem;border-top:1px solid var(--border)}.product-logo-card__upload input[type=file]{font-size:.75rem}.product-logo-card__actions{display:flex;flex-wrap:wrap;gap:.35rem}