:root{--ink:#17201d;--muted:#69736f;--muted-on-green:#5c6662;--paper:#f5f6f2;--surface:#fff;--line:#e3e7e1;--green:#1d684f;--green-soft:#e7f1eb;--lime:#d8ee9f;--red:#a8423a;--red-soft:#faece9;--amber:#8a6516;--amber-soft:#f8f0d8;--sidebar:#18231f;--shadow:0 18px 50px rgba(24,35,31,.12)}
*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;min-height:100%;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:"Segoe UI",Arial,sans-serif}button,input,select{font:inherit}button{cursor:pointer}body.signed-out .app-shell,body.authenticated .auth-screen,body:not(.authenticated) .drawer,body:not(.authenticated) dialog{display:none!important}.auth-loading{min-height:100vh;display:grid;place-items:center;background:var(--sidebar);color:#fff}.auth-loading div{text-align:center}.auth-loading .brand-mark{margin:auto}.auth-loading p{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.08em;color:#b6c3bd;margin-top:14px}.app-shell{display:grid;grid-template-columns:238px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--sidebar);color:#f4f7f4;padding:24px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none;padding:0 8px 28px}.brand-mark{display:grid;place-items:center;width:36px;height:36px;background:var(--lime);color:var(--sidebar);font:500 12px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;border-radius:9px}.brand strong,.brand small{display:block}.brand strong{font-size:15px}.brand small{font-size:12px;color:#aebbb5;margin-top:2px}.sidebar nav{display:grid;gap:4px}.nav-item{border:0;background:transparent;color:#b7c4be;padding:11px 12px;border-radius:7px;text-align:left;display:flex;align-items:center;gap:10px;font-size:13px}.nav-item:hover,.nav-item.is-active{background:#26342e;color:#fff}.nav-icon{width:18px;text-align:center;font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.nav-count{margin-left:auto;background:#32473e;color:#d8ee9f;font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;padding:3px 6px;border-radius:10px}.sidebar-foot{margin-top:auto;padding:16px 10px 2px;border-top:1px solid #2d3b35}.sidebar-foot p{font-size:12px;margin:0 0 3px}.sidebar-foot span{font-size:12px;color:#91a098}.main-column{min-width:0}.topbar{height:76px;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:10}.company-control{display:flex;align-items:center;gap:10px}.company-control label{font-size:12px;color:var(--muted)}.company-control select{border:0;background:transparent;font-weight:600;color:var(--ink);max-width:260px}.top-actions{display:flex;gap:10px;align-items:center}.btn{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:7px;padding:9px 13px;font-weight:600;font-size:12px;white-space:nowrap}.btn:hover{border-color:#b8c3bd}.btn-primary{background:var(--green);border-color:var(--green);color:#fff}.btn-primary:hover{background:#165740}.btn:disabled{opacity:.5;cursor:wait}main{padding:34px 34px 60px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:24px}.page-heading h1,.empty-state h1{font-size:32px;letter-spacing:-.045em;line-height:1.08;margin:4px 0 8px}.page-heading>div>p:last-child{margin:0;color:var(--muted);font-size:13px}.kicker{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.09em;color:var(--green);margin:0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);background:var(--line);gap:1px;margin-bottom:20px}.metrics article{background:var(--surface);padding:18px 20px}.metrics span,.metrics small{display:block}.metrics span{font-size:12px;color:var(--muted);margin-bottom:7px}.metrics strong{font:500 25px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:-.05em}.metrics small{font-size:12px;color:var(--muted);margin-top:6px}.data-surface{background:var(--surface);border:1px solid var(--line)}.surface-toolbar{min-height:58px;padding:10px 14px 10px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.tabs{display:flex;gap:20px}.tab{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:600;padding:10px 0;position:relative}.tab.is-active{color:var(--ink)}.tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-11px;height:2px;background:var(--green)}.filters{display:flex;gap:8px}.filters select{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 9px;font-size:12px;color:var(--ink);max-width:190px}.match-help{font-size:12px;color:var(--muted)}.table-scroll{overflow:auto;min-height:360px}table{width:100%;border-collapse:collapse;min-width:980px}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);font-size:12px;vertical-align:middle}th{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#fafbf8;position:sticky;top:0;z-index:1}tbody tr{transition:background .12s}tbody tr:hover{background:#f7f9f5}.numeric{text-align:right;font-variant-numeric:tabular-nums}.product-cell{max-width:310px}.product-name{font-size:12px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-meta{font-size:12px;color:var(--muted);margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-meta a{color:var(--green)}.sku{font:11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:12px;background:#eef1ed;color:#53615b;font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.badge.green{background:var(--green-soft);color:var(--green)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.confidence{display:flex;align-items:center;gap:8px;min-width:100px}.confidence span{font:11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.gap-lower{color:var(--green)}.gap-higher{color:var(--red)}.pagination{height:53px;display:flex;justify-content:space-between;align-items:center;padding:0 16px;color:var(--muted);font-size:12px}.pagination>div{display:flex;align-items:center;gap:10px}.page-btn{border:1px solid var(--line);background:#fff;width:30px;height:28px;border-radius:5px}.page-btn:disabled{opacity:.35}.empty-row td{text-align:center;color:var(--muted);padding:70px 20px}.empty-row strong{display:block;color:var(--ink);margin-bottom:5px;font-size:13px}.sources-view{display:flex;gap:16px;align-items:stretch;flex-wrap:wrap}.sources-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:16px;flex:1}.source-card,.add-source-card{border:1px solid var(--line);background:var(--surface);padding:18px;text-align:left;min-height:138px}.source-card .source-type{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--green);letter-spacing:.06em}.source-card h3{font-size:15px;margin:14px 0 4px}.source-card p{font-size:12px;color:var(--muted);margin:0}.source-card strong{display:block;font:500 22px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;margin-top:14px}.add-source-card{min-width:220px;color:var(--muted);display:grid;place-content:center;text-align:center;border-style:dashed}.add-source-card span{font-size:24px}.add-source-card strong,.add-source-card small{display:block}.add-source-card strong{font-size:12px;color:var(--ink);margin:7px 0 3px}.add-source-card small{font-size:12px}.empty-state{max-width:820px;margin:72px auto;text-align:center}.empty-art{width:150px;height:92px;margin:0 auto 28px;display:flex;align-items:end;justify-content:center;gap:8px}.empty-art span{width:35px;background:var(--green-soft);border:1px solid #c8ddd0}.empty-art span:nth-child(1){height:46px}.empty-art span:nth-child(2){height:78px;background:var(--lime);border-color:#bed87f}.empty-art span:nth-child(3){height:60px}.empty-state h1{font-size:42px}.empty-state>p:not(.kicker){color:var(--muted);max-width:620px;margin:0 auto 23px;line-height:1.7;font-size:14px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:48px;text-align:left}.steps div{background:#fff;padding:17px;display:flex;gap:11px;align-items:center}.steps b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--green-soft);color:var(--green);font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.steps span{font-size:12px;color:var(--muted)}.steps strong{display:block;color:var(--ink);font-size:12px}.drawer{position:fixed;right:0;top:0;bottom:0;width:min(620px,100%);background:#fff;z-index:40;box-shadow:var(--shadow);transform:translateX(102%);transition:transform .2s ease;overflow:auto}.drawer.is-open{transform:none}.drawer-head{height:76px;padding:18px 22px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1}.drawer-head h2{font-size:19px;margin:3px 0 0}.icon-btn{border:0;background:transparent;font-size:22px;padding:5px 9px;color:var(--muted)}.drawer-content{padding:22px}.versus{display:grid;place-items:center;color:var(--muted);font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}dialog{border:0;padding:0;width:min(720px,calc(100% - 28px));background:#fff;color:var(--ink);box-shadow:var(--shadow)}dialog::backdrop{background:rgba(18,27,23,.5)}dialog form{padding:24px}.dialog-head{display:flex;justify-content:space-between;align-items:flex-start}.dialog-head h2{font-size:23px;margin:4px 0 0}.dialog-intro{color:var(--muted);font-size:12px;line-height:1.6;max-width:610px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:19px}label{font-size:12px;color:var(--muted)}input,select{color:var(--ink)}.form-grid input,.form-grid select{display:block;width:100%;margin-top:6px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:10px;font-size:12px}.file-drop{margin-top:18px;border:1px dashed #bfc8c2;background:#f8faf7;min-height:112px;display:grid;place-content:center;text-align:center;cursor:pointer}.file-drop input{position:absolute;opacity:0;pointer-events:none}.file-drop>span,.file-drop strong,.file-drop small{display:block}.file-icon{font-size:20px;color:var(--green)}.file-drop strong{font-size:12px;color:var(--ink);margin:5px 0}.file-drop small{font-size:12px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.progress-message{min-height:18px;margin-top:10px;font-size:12px;color:var(--green)}.progress-message.error{color:var(--red)}.toast{position:fixed;right:22px;bottom:22px;background:var(--ink);color:#fff;padding:11px 15px;border-radius:7px;font-size:12px;z-index:100;opacity:0;transform:translateY(8px);pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:none}
.inline-action{border:0;background:transparent;color:var(--green);font-size:12px;font-weight:600;margin-left:7px;padding:4px;min-height:24px}
.sources-grid{flex:1 1 100%}.agent-banner{flex:1 1 100%;background:var(--sidebar);color:#fff;padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:28px}.agent-banner h2{font-size:20px;margin:5px 0 7px}.agent-banner p:last-child{margin:0;color:#b9c6c0;font-size:12px;line-height:1.6;max-width:760px}.agent-banner .kicker{color:var(--lime)}.agent-card{min-height:250px}.agent-card-top,.agent-foot{display:flex;align-items:center;justify-content:space-between;gap:10px}.agent-status{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--green);display:flex;align-items:center;gap:5px}.agent-status i{width:6px;height:6px;border-radius:50%;background:currentColor}.agent-status.running{color:var(--amber)}.agent-status.error,.agent-message.error{color:var(--red)}.source-card .agent-domain{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.agent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin:17px 0}.agent-stats div{background:#fafbf8;padding:10px}.agent-stats strong{display:block;font:500 16px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.agent-stats span{font-size:12px;color:var(--muted)}.source-card .agent-message{min-height:34px;line-height:1.5}.agent-foot{border-top:1px solid var(--line);padding-top:10px;margin-top:11px}.agent-foot>span{font-size:12px;color:var(--muted)}.agent-empty .btn{margin-top:18px}.source-divider{flex:1 1 100%;display:flex;align-items:center;gap:12px;color:var(--muted);font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.07em;text-transform:uppercase;margin-top:8px}.source-divider:after{content:"";height:1px;background:var(--line);flex:1}.agent-guardrails{display:flex;flex-wrap:wrap;gap:7px;margin-top:18px;padding:13px;background:#f5f8f4}.agent-guardrails strong{font-size:12px;width:100%}.agent-guardrails span{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--green);background:var(--green-soft);padding:5px 7px}
.toolbar-title{font-size:12px}.surface-toolbar>div>p{margin:3px 0 0}.rank-pill{display:inline-grid;place-items:center;min-width:28px;height:24px;border-radius:13px;background:var(--green-soft);color:var(--green);font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.reason-chips{display:flex;gap:4px;flex-wrap:wrap;max-width:330px}.reason-chips span{padding:4px 6px;background:#f1f4f0;color:#53615b;font-size:12px;border-radius:3px}
.auth-screen{min-height:100vh;display:grid;grid-template-columns:minmax(360px,1.05fr) minmax(420px,.95fr);background:#fff}.auth-brand-panel{background:var(--sidebar);color:#fff;padding:clamp(42px,7vw,94px);display:flex;flex-direction:column;justify-content:space-between}.auth-brand-panel .brand-mark{margin-bottom:70px}.auth-brand-panel .kicker{color:var(--lime)}.auth-brand-panel h1{font-size:clamp(38px,5vw,68px);line-height:1.02;letter-spacing:-.055em;max-width:760px;margin:12px 0 22px}.auth-brand-panel div>p:last-child{color:#b6c3bd;font-size:14px;line-height:1.7;max-width:600px}.auth-proof{display:flex;gap:8px;flex-wrap:wrap;margin-top:60px}.auth-proof span{border:1px solid #35463f;color:#c8d3ce;padding:8px 10px;font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.auth-form-panel{display:grid;place-items:center;padding:40px}.auth-box{width:min(420px,100%)}.auth-box h2{font-size:29px;letter-spacing:-.04em;margin:7px 0}.auth-box>p:not(.kicker):not(.auth-note){font-size:12px;color:var(--muted);line-height:1.6}.auth-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:28px 0 20px}.auth-tabs .tab.is-active:after{bottom:-1px}.auth-box form{display:grid;gap:14px}.auth-box form label{font-size:12px}.auth-box form input{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:6px;padding:12px;font-size:13px}.auth-submit{width:100%;padding:12px;margin-top:4px}.auth-note{font-size:12px;color:var(--muted);line-height:1.6;margin-top:20px}.account-menu{display:flex;align-items:center;gap:8px;border-left:1px solid var(--line);padding-left:10px}.account-menu span{font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-view{display:grid;gap:16px}.team-banner{background:var(--surface);border:1px solid var(--line);padding:22px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.team-banner h2{font-size:19px;margin:5px 0}.team-banner p:last-child{font-size:12px;color:var(--muted);margin:0;max-width:680px}.pending-invites{display:grid;gap:8px}.pending-card{border:1px solid var(--line);background:#fff;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px}.pending-card strong,.pending-card span{display:block}.pending-card strong{font-size:12px}.pending-card span{font-size:12px;color:var(--muted);margin-top:3px}.invite-result{margin-top:16px;background:var(--green-soft);padding:13px;font-size:12px;line-height:1.5}.invite-code{font:500 12px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;display:block;margin-top:7px;overflow-wrap:anywhere}
.pricing-view{display:grid;gap:16px}.pricing-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#fff;border:1px solid var(--line);padding:0 16px}.pricing-toolbar .tab.is-active:after{bottom:-1px}.pricing-actions{display:flex;align-items:center;gap:8px}.pricing-actions label{display:flex;align-items:center;gap:7px}.pricing-actions select{border:1px solid var(--line);background:#fff;padding:8px;border-radius:6px;font-size:12px}.pricing-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-bottom:14px}.pricing-metrics article{background:#fff;padding:16px 18px}.pricing-metrics span,.pricing-metrics small{display:block}.pricing-metrics span{font-size:12px;color:var(--muted)}.pricing-metrics strong{display:block;font:500 23px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;margin:7px 0}.pricing-metrics small{font-size:12px;color:var(--muted)}.model-warning{color:var(--muted);font-size:12px;line-height:1.5;margin:10px 2px 0}.launch-banner{background:var(--sidebar);color:#fff;padding:26px;display:flex;justify-content:space-between;align-items:center;gap:28px}.launch-banner h2{font-size:24px;margin:7px 0}.launch-banner p:last-child{font-size:12px;line-height:1.6;color:#b7c5be;max-width:780px;margin:0}.launch-banner .kicker{color:var(--lime)}.launches-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.launch-card{background:#fff;border:1px solid var(--line);padding:19px}.launch-card header{display:flex;justify-content:space-between;gap:14px}.launch-card h3{font-size:15px;margin:5px 0}.launch-card header>strong{font:500 21px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.launch-card>p{font-size:12px;color:var(--muted);line-height:1.5}.launch-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);margin-top:14px}.launch-stats div{background:#fafbf8;padding:10px}.launch-stats span,.launch-stats strong{display:block}.launch-stats span{font-size:12px;color:var(--muted)}.launch-stats strong{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;margin-top:5px}.research-layout{display:grid;grid-template-columns:minmax(320px,.75fr) minmax(0,1.25fr);gap:16px}.research-explainer{background:var(--sidebar);color:#fff;padding:26px}.research-explainer .kicker{color:var(--lime)}.research-explainer h2{font-size:25px;line-height:1.15;margin:8px 0}.research-explainer>p:last-of-type{color:#b7c5be;font-size:12px;line-height:1.7}.method-steps{display:grid;gap:8px;margin-top:25px}.method-steps div{display:flex;align-items:center;gap:10px;border-top:1px solid #33423c;padding-top:9px}.method-steps b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--lime);color:var(--sidebar);font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.method-steps span{font-size:12px;color:#aab9b2}.method-steps strong{color:#fff;margin-right:5px}.market-signals{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.market-card{background:#fff;border:1px solid var(--line);padding:18px}.market-card .source-type{font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;color:var(--green)}.market-card h3{font-size:13px;line-height:1.4;margin:11px 0}.market-card .signal-value{font:500 27px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.market-card p{font-size:12px;color:var(--muted);line-height:1.5}.market-card a{font-size:12px;color:var(--green)}
@media(max-width:1050px){.app-shell{grid-template-columns:76px minmax(0,1fr)}.sidebar{padding:22px 10px}.brand span:last-child,.nav-item:not(.is-active) .nav-count,.nav-item{font-size:0}.brand{padding-left:10px}.nav-item{justify-content:center}.nav-icon{font-size:16px}.sidebar-foot{display:none}.metrics{grid-template-columns:repeat(2,1fr)}.sources-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.auth-screen{grid-template-columns:1fr}.auth-brand-panel{padding:36px;min-height:330px}.auth-brand-panel .brand-mark{margin-bottom:40px}.auth-brand-panel h1{font-size:40px}.auth-proof{margin-top:30px}.auth-form-panel{padding:36px 20px}.account-menu span{display:none}}
@media(max-width:720px){.app-shell{display:block}.sidebar{position:fixed;z-index:30;bottom:0;top:auto;width:100%;height:58px;flex-direction:row;padding:6px}.brand,.sidebar-foot{display:none}.sidebar nav{display:flex;width:100%;justify-content:space-around}.nav-item,.nav-item:not(.is-active){font-size:12px;flex-direction:column;gap:1px;padding:5px 15px}.nav-icon{font-size:14px}.topbar{height:auto;min-height:68px;padding:10px 14px;align-items:flex-start}.company-control{display:block}.company-control label{display:block;margin-bottom:4px}.main-column{padding-bottom:58px}main{padding:24px 14px}.page-heading{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:1fr 1fr}.metrics article{padding:14px}.surface-toolbar{align-items:flex-start;flex-direction:column}.tabs{width:100%;overflow:auto;gap:16px}.filters{width:100%}.filters select{flex:1;min-width:0}.sources-grid{grid-template-columns:1fr}.versus{min-height:32px}.form-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr}.empty-state{margin-top:35px}.empty-state h1{font-size:32px}.drawer{bottom:58px}.page-heading h1{font-size:27px}}
@media(max-width:900px){.pricing-toolbar{align-items:flex-start;flex-direction:column;padding:12px}.pricing-actions{width:100%;overflow:auto}.pricing-metrics{grid-template-columns:1fr 1fr}.launches-grid,.research-layout{grid-template-columns:1fr}.market-signals{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.pricing-actions label{display:none}.pricing-metrics,.market-signals{grid-template-columns:1fr}.launch-banner{align-items:flex-start;flex-direction:column}.launch-stats{grid-template-columns:1fr 1fr}}
.badge.distinct{background:#e8eef7;color:#345a83}:where(.kicker,.badge,.sku,.rank-pill,.source-type,.signal-value,.metrics strong,.pricing-metrics strong,.nav-count,.brand-mark,th){font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace!important}[role="button"]:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--green);outline-offset:2px}@media(max-width:720px){.top-actions{flex-wrap:wrap;justify-content:flex-end}.product-meta{white-space:normal}}@media(max-width:600px){}

/* Pricing Lab: wide analytical tables scroll inside their own surface. */
#workspace,.pricing-view,.pricing-view>section,.data-surface{min-width:0;max-width:100%}
.pricing-toolbar{min-width:0;flex-wrap:wrap}.pricing-toolbar>.tabs{min-width:0;max-width:100%;overflow-x:auto}
.table-scroll{display:block;width:100%;max-width:100%;overflow-x:auto;overflow-y:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable both-edges;-webkit-overflow-scrolling:touch}
.form-section-title{margin:22px 0 -8px;padding-top:16px;border-top:1px solid var(--line);font-size:12px}
#pricing-profile-dialog{max-height:calc(100vh - 28px);overflow:auto}
.form-section-title{margin:24px 0 0;font-size:13px}.form-section-title small{font-weight:400;color:var(--muted)}.form-help{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.6}.experiment-checks{display:grid;gap:8px;margin-top:16px;padding:14px;background:#f7f9f6;border:1px solid var(--line)}.experiment-checks label{display:flex;align-items:flex-start;gap:9px;line-height:1.45;color:var(--ink)}.experiment-checks input{margin-top:2px;accent-color:var(--green)}
.history-chart{margin:14px 0;border:1px solid var(--line);background:#fff;padding:14px}.history-chart header{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px}.history-chart header span{font-size:12px;color:var(--muted)}.history-chart svg{display:block;width:100%;height:150px;overflow:visible}.history-chart .grid{stroke:#e8ece9;stroke-width:1}
@media(max-width:1100px){}
@media(max-width:720px){}
@media(max-width:480px){}

/* Pricing Lab v2 — decision first, with plain-language sales curves. */
#pricing-portfolio-panel{display:grid;gap:18px}.pricing-toolbar{border-radius:12px;padding:3px 16px}.pricing-toolbar .tab{font-size:14px}.pricing-actions label{font-size:14px}.pricing-actions select{font-size:14px;padding:10px}.pricing-metrics{border-radius:12px;overflow:hidden;margin:0}.pricing-metrics article{padding:20px}.pricing-metrics span{font-size:14px}.pricing-metrics strong{font-size:28px}.pricing-metrics small{font-size:13px;line-height:1.45}.pricing-list-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:4px}.pricing-list-toolbar strong,.pricing-list-toolbar span{display:block}.pricing-list-toolbar strong{font-size:20px}.pricing-list-toolbar span{color:var(--muted);font-size:14px;margin-top:4px}.pricing-search{display:flex;align-items:center;gap:8px;width:min(360px,100%);padding:11px 13px;background:#fff;border:1px solid var(--line);border-radius:10px;color:var(--muted)}.pricing-search:focus-within{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,104,79,.1)}.pricing-search input{width:100%;border:0;outline:0;background:transparent;font-size:15px}.pricing-product-list{display:grid;gap:14px}.pricing-product-card{background:#fff;border:1px solid var(--line);border-left:5px solid #98a59f;border-radius:14px;overflow:hidden;box-shadow:0 5px 18px rgba(25,43,35,.035)}.pricing-product-card.ready{border-left-color:#3b9b5f}.pricing-product-card.test{border-left-color:#d79b25}.pricing-product-card>header{display:flex;justify-content:space-between;gap:24px;padding:20px 22px 16px;border-bottom:1px solid #edf0ec}.pricing-product-card h3{font-size:19px;line-height:1.3;margin:9px 0 4px}.pricing-product-card header p{margin:0;color:var(--muted);font-size:14px}.pricing-status{display:inline-flex;align-items:center;width:max-content;padding:5px 9px;border-radius:999px;background:#eef1ef;color:#5c6963;font-size:12px;font-weight:750;letter-spacing:.04em}.pricing-status.ready{background:#e3f5e8;color:#17633a}.pricing-status.test{background:#fff2d6;color:#75510a}.pricing-status.needs{background:#edf0ee;color:#56635d}.pricing-product-card>footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 22px;background:#fafbf9;border-top:1px solid #edf0ec}.pricing-product-card>footer p{max-width:680px;margin:0;font-size:14px;line-height:1.5;color:var(--muted)}.pricing-product-card>footer>div{display:flex;align-items:center;gap:12px;flex-shrink:0}.pricing-product-card .btn{font-size:14px}.pricing-product-card .inline-action{font-size:13px}.pricing-pagination{background:#fff;border:1px solid var(--line);border-radius:10px;font-size:14px}.sales-chart{min-width:0}.sales-chart svg{display:block;width:100%;height:auto;max-height:300px;overflow:visible}.sales-chart.compact svg{height:145px}.sales-grid{stroke:#e5eae7;stroke-width:1}.sales-band{fill:rgba(50,139,93,.12)}.sales-line{fill:none;stroke:#237553;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.sales-marker line{stroke-width:1.5;stroke-dasharray:4 4}.sales-marker circle{stroke:#fff;stroke-width:3}.sales-marker text,.axis-label{font-size:12px;font-weight:650;fill:#53615b}.sales-marker.current line{stroke:#53615b}.sales-marker.current circle{fill:#53615b}.sales-marker.suggested line{stroke:#d47322}.sales-marker.suggested circle{fill:#d47322}.sales-marker.suggested text{fill:#a34b11}.sales-chart-empty,.pricing-loading{display:grid;place-items:center;gap:7px;min-height:150px;padding:28px;background:#fff;border:1px solid var(--line);border-radius:12px;text-align:center}.sales-chart-empty strong,.pricing-loading strong{font-size:17px}.sales-chart-empty span,.pricing-loading span{font-size:14px;color:var(--muted)}.pricing-loading.error strong{color:var(--red)}.pricing-loading .btn{margin-top:7px}.model-warning#pricing-warning{font-size:14px;line-height:1.55;margin:0 2px}#pricing-drawer .drawer-head{height:auto;min-height:82px}#pricing-drawer .drawer-head .kicker{font-size:12px}#pricing-drawer .drawer-head h2{font-size:22px}#pricing-drawer .drawer-content{padding:24px}.simple-recommendation{border:1px solid var(--line);border-top:5px solid #98a59f;border-radius:14px;padding:22px}.simple-recommendation.ready{border-top-color:#3b9b5f}.simple-recommendation.test{border-top-color:#d79b25}.simple-recommendation>p{font-size:14px;color:var(--muted);margin:10px 0 4px}.simple-recommendation>h3{font-size:22px;margin:0 0 20px}.simple-recommendation>div{padding:20px;border-radius:11px;background:#f4f8f4}.simple-recommendation>div>span,.simple-recommendation>div>strong{display:block}.simple-recommendation>div>span{font-size:13px;color:var(--muted)}.simple-recommendation>div>strong{font-size:27px;line-height:1.2;margin-top:6px}.simple-recommendation>div>p{font-size:15px;line-height:1.55;margin:8px 0 0;color:#4f5d57}.sales-curve-panel,.plain-reasons,#pricing-drawer-content>section{margin-top:26px}.drawer-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}.drawer-section-heading span{font-size:12px;font-weight:750;letter-spacing:.07em;color:var(--green)}.drawer-section-heading h3{font-size:20px;margin:5px 0 0}.curve-source{padding:6px 9px;background:var(--green-soft);border-radius:999px;text-align:right;letter-spacing:0!important}.sales-curve-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:16px}.sales-curve-summary>div{padding:14px;background:#f6f8f5;border-radius:9px}.sales-curve-summary span,.sales-curve-summary strong,.sales-curve-summary small{display:block}.sales-curve-summary span{font-size:13px;color:var(--muted)}.sales-curve-summary strong{font-size:19px;margin:5px 0}.sales-curve-summary small{font-size:13px;color:var(--muted)}.curve-warning{padding:12px 14px;background:#fff7e4;border-left:3px solid #d79b25;color:#5e512f;font-size:14px;line-height:1.55}.plain-reasons ol{counter-reset:reason;display:grid;gap:10px;margin:0;padding:0;list-style:none}.plain-reasons li{counter-increment:reason;display:grid;grid-template-columns:32px 1fr;align-items:center;gap:11px;padding:13px 14px;border:1px solid var(--line);border-radius:9px;font-size:15px;line-height:1.5}.plain-reasons li:before{content:counter(reason);display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--green-soft);color:var(--green);font-weight:750}.simple-benchmarks{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.simple-benchmarks article{padding:14px;border:1px solid var(--line);border-radius:9px}.simple-benchmarks span,.simple-benchmarks strong{display:block}.simple-benchmarks span{font-size:13px;color:var(--muted)}.simple-benchmarks strong{font-size:18px;margin-top:5px}.simple-benchmarks p{font-size:13px;line-height:1.45;color:var(--muted);margin:7px 0 0}.simple-empty{grid-column:1/-1;padding:20px;background:#f6f8f5;color:var(--muted);font-size:14px;border-radius:9px}.next-information{padding:18px;background:#fff5dd;border-radius:11px}.next-information h3{font-size:18px;margin:0}.next-information ul{font-size:15px;line-height:1.7;margin:10px 0 0;padding-left:20px}.price-details{margin-top:26px;border:1px solid var(--line);border-radius:10px;padding:0 16px}.price-details summary{cursor:pointer;padding:16px 0;font-size:15px;font-weight:700}.price-details>p{font-size:14px;color:var(--muted);line-height:1.5}
@media(max-width:1050px){.pricing-product-card>footer{align-items:flex-start;flex-direction:column}.simple-benchmarks{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.pricing-list-toolbar{align-items:stretch;flex-direction:column}.pricing-search{width:100%}.pricing-product-card>header{align-items:flex-start}.sales-curve-summary{grid-template-columns:1fr 1fr}.pricing-product-card>footer>div{align-items:stretch;flex-direction:column;width:100%}.pricing-product-card>footer .btn{width:100%}.drawer-section-heading{align-items:flex-start;flex-direction:column}.simple-benchmarks{grid-template-columns:1fr}.sales-chart.compact svg{height:130px}}
@media(max-width:480px){.pricing-product-card>header{flex-direction:column}.sales-curve-summary{grid-template-columns:1fr}.simple-recommendation>div>strong{font-size:23px}}
.advanced-inputs{margin-top:18px;border:1px solid var(--line);border-radius:9px;padding:0 14px}.advanced-inputs summary{cursor:pointer;padding:14px 0;font-size:14px;font-weight:700}.advanced-inputs[open]{padding-bottom:16px}.advanced-inputs .form-help{font-size:13px}.advanced-inputs label,#pricing-profile-dialog label{font-size:14px}#pricing-profile-dialog .dialog-intro,#pricing-profile-dialog .form-help{font-size:14px}#pricing-profile-dialog .form-grid input,#pricing-profile-dialog .form-grid select{font-size:14px;padding:11px}.experiment-checks label{font-size:14px}

/* Review-status filter, catalogue row actions and import warnings. */
.toolbar-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;justify-content:flex-end}
.toolbar-controls .tabs{gap:14px}
.product-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px;font-size:12px;color:var(--muted)}
.product-actions .btn{padding:5px 8px;font-size:12px}
.progress-message.warn{color:var(--amber)}
.progress-message p{margin:4px 0}
.progress-message details{margin-top:8px}
.progress-message summary{cursor:pointer;font-weight:600}
.import-warnings{margin:8px 0 0;padding-left:18px;max-height:180px;overflow:auto;line-height:1.8}
#import-progress{max-height:260px;overflow:auto}
@media(max-width:880px){.toolbar-controls{justify-content:flex-start;width:100%}}

/* Dashboard loading state: the tables stay readable but clearly not current. */
.data-surface.is-loading{opacity:.55;transition:opacity .15s}
.data-surface.is-loading .table-scroll{cursor:progress}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.table-scroll:focus-visible,.tabs .tab:focus-visible,.btn:focus-visible,.page-btn:focus-visible,.icon-btn:focus-visible,.inline-action:focus-visible{outline:3px solid var(--green);outline-offset:2px}.nav-item:focus-visible{outline:3px solid #7faa91;outline-offset:2px}

/* Says which kind of empty this is: a fresh install with nothing loaded, or an account with no
   workspace. Without it the onboarding hero reads identically to a broken app. */
.empty-state-status { max-width: 46rem; margin: 0 auto 1.25rem; padding: .75rem 1rem; border: 1px solid #d5c68a; border-left: 3px solid #b8952f; border-radius: 6px; background: #fdf8e7; color: #5b4708; font-size: .9rem; line-height: 1.55; text-align: left; }
/* A workspace that failed to load must not look like a workspace with nothing in it. */
.workspace-error { margin: 0 0 1rem; padding: .75rem 1rem; border: 1px solid #e0b4b4; border-left: 3px solid #b23c3c; border-radius: 6px; background: #fdf1f1; color: #7d2626; font-size: .9rem; line-height: 1.55; }

/* --- Page-owned surfaces -------------------------------------------------------------------
   Each page now carries its own counters and its own search, so the metric band sits inside a
   view rather than above all of them, and a search box sits in the toolbar it filters. */
#catalog-view>.metrics,#matches-view>.metrics,#tracking-view>.metrics,#sources-view>.metrics{margin:0 0 16px}
.inline-search{display:flex;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);min-width:210px}
.inline-search span{color:var(--muted);font-size:12px}
.inline-search input{border:0;background:transparent;padding:8px 0;font:inherit;color:inherit;width:100%}
.inline-search input:focus{outline:none}
.inline-search:focus-within{border-color:var(--green)}

/* Specifications on the Products page. The catalogue has always carried these and never shown
   them; they are what tells one product from another, so they get a column of their own. */
.spec-chips{display:flex;flex-wrap:wrap;gap:4px;max-width:270px}
.spec-chips span{display:inline-block;padding:2px 7px;border-radius:999px;background:var(--paper);border:1px solid var(--line);font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:130px}
.spec-chips .spec-more{background:transparent;border-style:dashed}

/* Collection health, not price history: whether we can read this product's price at all. The
   reason and the error text belong to Prices & changes, which owns the crawl. */
.check-dot{display:inline-block;width:7px;height:7px;border-radius:50%;vertical-align:middle;margin-left:5px}
.check-dot.is-green{background:var(--green)}
.check-dot.is-amber{background:var(--amber,#c98a20)}
.check-dot.is-grey{background:#fff;box-shadow:inset 0 0 0 1.5px #69736f}

/* Confirm and reject, on the row. These existed only inside the comparison drawer, so the review
   table could filter by a decision it gave the operator no way to make. */
.inline-action.is-affirm{color:var(--green)}
.inline-action.is-deny{color:var(--red)}
.product-actions{display:flex;flex-wrap:wrap;gap:8px 2px;margin-top:4px}
.unmatched-switch{padding:10px 12px 0}

/* Prices & changes: movement is a direction, not a verdict. Whose move it is decides whether it
   is good news, and the Difference column already answers that. */
.price-move{font-variant-numeric:tabular-nums;color:var(--ink)}
.tracking-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}
.tracking-attention{margin-top:14px}
.attention-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}
.attention-row:last-child{border-bottom:0}
.attention-row small{display:block;color:var(--muted);font-size:12px}

@media (max-width:900px){
  .spec-chips{max-width:none}
  .inline-search{min-width:0;flex:1 1 160px}
  .tracking-toolbar-actions{width:100%}
}

/* --- Finding a product ----------------------------------------------------------------------
   Active filters have to be visible and individually removable: four dropdowns and a search box
   can all be set from a link, or restored from the last session, and a narrowed table with no
   visible cause reads as missing data rather than as a filter. */
.active-filters{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px 0}
.active-filters .filter-count{font-size:12px;font-weight:600;color:var(--muted);margin-right:2px}
.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font:inherit;font-size:12px;color:var(--ink);cursor:pointer}
.filter-chip strong{font-weight:600}
.filter-chip:hover{border-color:var(--green);color:var(--green)}
.filter-chip.is-clear-all{border-style:dashed;color:var(--muted)}

/* Sorting reorders the whole filtered set in SQL, so the indicator is a claim about every row,
   not about the fifty on screen. The arrow only appears on the column actually in use. */
.sort-header{border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;text-align:inherit}
.sort-header::after{content:"";font-size:11px;color:var(--muted);opacity:0}
.sort-header:hover::after{content:"\2195";opacity:.5}
.sort-header.is-sorted{color:var(--green)}
.sort-header.is-sorted::after{opacity:1;color:var(--green)}
.sort-header[data-direction="asc"]::after{content:"\2191"}
.sort-header[data-direction="desc"]::after{content:"\2193"}
.numeric .sort-header{justify-content:flex-end}
.sort-header:focus-visible{outline:2px solid var(--green);outline-offset:2px;border-radius:3px}

@media (max-width:900px){
  .active-filters{padding:10px 12px 0 16px}
}

/* --- Catalogue lifecycle --------------------------------------------------------------------
   A delete that removes thousands of products has to argue its own case, so the dialog shows the
   real counts and the destructive button is styled as destructive rather than as the primary. */
.btn-danger{background:var(--red);border-color:var(--red);color:#fff}
.btn-danger:hover:not(:disabled){background:#8f3730;border-color:#8f3730}
.btn-danger:disabled{opacity:.45;cursor:not-allowed}
.source-card-actions{margin-top:10px;padding-top:9px;border-top:1px solid var(--line)}
.agent-foot-actions{display:inline-flex;gap:10px;align-items:center}
.source-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}
.delete-impact{margin:12px 0}
.delete-impact-list{list-style:none;margin:0 0 10px;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.delete-impact-list li{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);font-size:12px;color:var(--muted)}
.delete-impact-list strong{display:block;font-size:17px;color:var(--ink);font-variant-numeric:tabular-nums}
#source-delete-confirm-field{display:block;margin-top:4px}
/* A competitor catalogue has no controls, so the card says why rather than looking unfinished. */
.source-card-note{margin:10px 0 0;padding-top:9px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
/* The closest candidate on a product nothing matched, offered for a yes or no. */
.unmatched-closest{margin-top:7px}.unmatched-closest .product-actions{margin-top:3px}
/* A long competitor name wraps here instead of pushing the next column off screen. */
.unmatched-closest .product-meta{white-space:normal;overflow-wrap:anywhere}

.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.session-notice{position:sticky;top:76px;z-index:9;display:flex;align-items:center;justify-content:center;gap:14px;padding:10px 30px;background:var(--amber-soft);color:var(--ink);border-bottom:1px solid #e5d7a8;font-size:13px}.session-notice .btn{padding:6px 11px}.page-jump{display:inline-flex;align-items:center;gap:6px;margin-left:12px;font-size:12px;color:var(--muted)}.page-jump input{width:64px;border:1px solid var(--line);border-radius:5px;padding:5px 7px;font:inherit;color:var(--ink);background:#fff}.page-jump input:disabled{opacity:.5}
.product-name,.product-meta,.reason-chips span{unicode-bidi:isolate}

/* --- Accounts (CF-01 to CF-05) --------------------------------------------------------------
   The sign-in screen's other ways in, and the account's own controls, which belong to no page. */
.auth-links{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:14px}
.link-button{border:0;background:transparent;padding:4px 0;min-height:24px;color:var(--green);font-size:12px;font-weight:600;text-decoration:underline;text-underline-offset:2px}
.account-more{position:relative}
.account-more>summary{cursor:pointer;list-style:none;border:1px solid var(--line);border-radius:7px;padding:8px 11px;font-size:12px;font-weight:600;background:#fff}
.account-more>summary::-webkit-details-marker{display:none}
.account-more-panel{position:absolute;right:0;top:calc(100% + 6px);z-index:20;display:grid;gap:6px;min-width:190px;padding:10px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.team-banner-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.team-view>.invite-result{margin-top:0}
/* What a rebuild is doing, on the page whose rows it rewrites (CF-07). */
.rebuild-status{margin:0 0 12px;padding:9px 12px;border-left:3px solid var(--green);background:var(--green-soft);font-size:12px;color:var(--ink)}
.rebuild-status.is-warning{border-left-color:var(--amber);background:var(--amber-soft)}
/* The comparison drawer's own failure, so a weak alternative's warning is never read as one (CF-27). */
.comparison-error{color:var(--red);font-size:12px;line-height:1.5}
/* A product page that now leads somewhere else (CF-14). */
.moved-note{margin-top:4px;font-size:12px;color:var(--amber);white-space:normal}
.moved-note a{color:var(--amber)}
.manual-watch,.stock-confirm,.tracking-check{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px;color:var(--ink)}
.form-hint{display:block;margin-top:5px;font-size:12px;color:var(--muted)}
.form-hint .link-button{margin-left:6px}
.stock-confirm.is-attention{color:var(--amber);font-weight:600}
.rank-pill{padding:0 8px;white-space:nowrap}
/* --- Products, the grouped review queue and the review drawer (UI round) ---------------------
   Products and Competitor websites carry three counters each now: the competitor catalogue's moved to its websites. */
#catalog-view>.metrics,#sources-view>.metrics{grid-template-columns:repeat(3,1fr)}
/* Where a product sits, one level per item: product group, category, sub-category; or theirs: the group, then the site's. */
.category-path{display:flex;flex-wrap:wrap;gap:2px 5px;margin:0;padding:0;list-style:none;font-size:12px;color:var(--muted);max-width:260px}
.category-path li{overflow-wrap:anywhere;unicode-bidi:isolate}
.category-path li+li::before{color:var(--muted);content:"\203A";margin-right:5px}
.category-path li:last-child{color:var(--ink);font-weight:600}
.tab-count{font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}
/* The product page's own highlights, before any specification chip. */
.highlight-list{margin:0;padding-left:16px;max-width:300px;font-size:12px;line-height:1.45;color:var(--ink)}
.highlight-list li{overflow-wrap:anywhere;unicode-bidi:isolate}
.unmatched-details{margin-top:6px;font-size:12px;white-space:normal}
.unmatched-details summary{cursor:pointer;color:var(--green);font-weight:600}
.unmatched-details .highlight-list,.unmatched-details .spec-chips{margin-top:6px}
.agent-offer{margin:6px 0 0;font-size:12px;color:var(--ink);overflow-wrap:anywhere}
.agent-offer span{color:var(--muted)}
/* The review queue: one row per product of ours, its three closest matches beside it as cards of their own. */
.match-table th,.match-table td{vertical-align:top}
/* Four equal columns that fit the page: sized by their content, the decision buttons pushed each to about 274px and the third
   match off the right edge of a 1280px screen. Below 880px the table keeps that width and its region scrolls. */
.match-table{table-layout:fixed;width:100%;min-width:880px}
/* In a quarter of the table the code and the page link wrap; cut to one line, "Open our page" read "Open our p…". */
.match-table .product-meta{white-space:normal;overflow:visible}
.match-table thead th{width:25%}.match-table thead th[colspan]{width:75%}
.match-own{position:static;z-index:auto;min-width:220px;background:#fafbf8;font-size:12px;font-weight:400;font-family:"Segoe UI",Arial,sans-serif!important;letter-spacing:normal;text-transform:none;color:var(--ink);cursor:pointer}
.match-option{min-width:220px;cursor:pointer}
.match-option.is-empty{cursor:default;color:var(--muted)}
.option-label{display:none;margin-bottom:6px;font:500 11px ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.option-head{display:flex;gap:10px;align-items:flex-start;min-width:0}
.option-text{min-width:0;flex:1}
.option-text .product-name{white-space:normal;overflow-wrap:anywhere}
.match-own .category-path,.match-rank,.match-verdict,.match-decision,.match-option .reason-chips{margin-top:6px}
/* A product picture, in a fixed box, so nothing moves when it arrives and a picture that fails leaves the frame. */
.thumb-frame{display:inline-grid;place-items:center;flex:0 0 64px;width:64px;height:64px;border:1px solid var(--line);border-radius:8px;background:var(--paper);overflow:hidden}
.product-thumb{display:block;width:100%;height:100%;object-fit:contain;background:#fff}
.more-options{margin-top:8px;font-size:12px}
.more-options summary{cursor:pointer;color:var(--green);font-weight:600}
.more-option{margin-top:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:var(--surface);cursor:pointer}
/* The review drawer: our product and each match in a block of its own, side by side, and what was compared in each. */
.match-compare{margin:0 0 18px}
.match-compare-title{margin:0 0 4px;font-size:15px}
.match-blocks{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:12px;align-items:start}
.match-block{display:grid;gap:8px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}
/* Muted text keeps 4.5:1 on our block's green tint, where --muted itself gives 4.25:1. */
.match-block.is-own{background:var(--green-soft);--muted:var(--muted-on-green)}
.match-block.is-opened{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}
.block-head{display:flex;gap:10px;align-items:flex-start}
.block-head>div{min-width:0}
.block-head h4{margin:2px 0;font-size:13px;line-height:1.35;overflow-wrap:anywhere}
.block-kicker{margin:0;font-size:12px;font-weight:600;color:var(--green)}
.block-label,.block-pricing,.block-fresh,.block-note{margin:0;font-size:12px;color:var(--muted)}
.block-label{color:var(--ink);font-weight:600}
.own-facts,.factor-list,.factor-axes{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.own-facts li{display:flex;flex-wrap:wrap;gap:2px 6px;align-items:baseline;overflow-wrap:anywhere}
.fact-label{font-weight:600}
.own-facts small{font-size:12px;color:var(--muted)}
.factor-summary{font-size:12px;font-weight:600;color:var(--ink)}
.factor-meter{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;height:10px}
.factor-meter span{border-radius:3px}
.factor-meter .is-same{background:var(--green)}
.factor-meter .is-close{background:var(--lime);box-shadow:inset 0 0 0 1.5px var(--green)}
.factor-meter .is-different{background:var(--red)}
.factor-meter .is-unknown{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--muted)}
.factor-row,.factor-price{display:grid;grid-template-columns:18px minmax(0,1fr);gap:6px;align-items:start}
.factor-row p,.factor-price{margin:0;overflow-wrap:anywhere}
.factor-icon{font-weight:700;text-align:center}
.factor-row.is-same .factor-icon,.factor-row.is-close .factor-icon,.factor-price.is-same .factor-icon,.factor-price.is-close .factor-icon{color:var(--green)}
.factor-row.is-different .factor-icon,.factor-price.is-different .factor-icon{color:var(--red)}
.factor-row.is-unknown .factor-icon,.factor-price.is-unknown .factor-icon{color:var(--muted)}
.factor-word{display:inline-block;padding:1px 6px;border-radius:999px;font-size:12px;font-weight:600}
.factor-row.is-same .factor-word{color:var(--green);background:var(--green-soft)}
.factor-row.is-close .factor-word{color:var(--green);background:var(--lime)}
.factor-row.is-different .factor-word{color:var(--red);background:var(--red-soft)}
.factor-row.is-unknown .factor-word{color:var(--muted);background:var(--paper)}
.factor-blocks{color:var(--red);font-weight:600}
.factor-theirs,.factor-reason,.factor-axes{color:var(--muted)}
.factor-axes{gap:2px;margin-top:2px}
.factor-price{padding-top:8px;border-top:1px solid var(--line)}
.factor-price small{display:block;margin-top:2px;font-size:12px;color:var(--muted)}
.also-compared summary,.match-details summary{cursor:pointer;font-weight:600;color:var(--green)}
.also-compared .factor-list{margin-top:8px}
.block-reasons{margin:0;padding-left:16px;color:var(--ink)}
.match-details{margin-top:18px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:12px}
.detail-set h4{margin:12px 0 6px;font-size:13px}
/* At phone width: each product of ours and each of its matches a card of its own, stacked; the drawer's blocks stacked
   ours first, then the pair it was opened for, then the rest. */
@media(max-width:720px){
  #catalog-view>.metrics,#sources-view>.metrics{grid-template-columns:1fr}
  .filters{flex-wrap:wrap}.filters select{flex:1 1 calc(50% - 8px)}
  .match-table,.match-table tbody{display:block;min-width:0}
  .match-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .match-group{display:grid;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}
  .match-own,.match-option{display:block;width:auto;min-width:0;padding:10px 12px;border-bottom:0}
  .match-option{margin:0 12px;border:1px solid var(--line);border-radius:10px}
  .option-label{display:block}
  .match-own .thumb-frame,.match-option .thumb-frame{flex-basis:56px;width:56px;height:56px}
  .match-blocks{grid-template-columns:1fr}
  .match-block.is-own{order:-2}
  .match-block.is-opened{order:-1}
}
