:root{--ink:#15131a;--muted:#716d78;--line:#e7e2ea;--purple:#7024d4;--pink:#ed2e86;--paper:#fbf9fc;--risk:#fff0f2}
*{box-sizing:border-box}
html{overflow-x:hidden}
body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font:15px/1.45 Inter,Segoe UI,sans-serif}
main{max-width:1440px;margin:auto;padding:32px}
header{display:flex;justify-content:space-between;align-items:center;padding:36px 4px 48px;border-bottom:1px solid var(--line)}
h1{font-size:56px;line-height:1;margin:8px 0 12px;letter-spacing:-3px}
h2{font-size:25px;margin:0}
.eyebrow{color:var(--purple);font-weight:800;letter-spacing:2px}
.brand{font-size:30px;font-weight:900}
.brand span{color:var(--pink)}
section{background:#fff;margin:22px 0;padding:28px;border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px #33164b09}
.section-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.section-title>div{display:flex;gap:13px;align-items:center}
.section-title b{color:var(--pink)}
.collapse-section{margin-left:auto;padding:8px 11px;border:1px solid #d5c5e6;background:#fff;color:var(--purple);font-size:12px;box-shadow:none}
.section-collapsed>.section-title{margin-bottom:0}
.section-collapsed>:not(.section-title){display:none!important}
.month-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.month{padding:15px;border:1px dashed #cfc7d6;border-radius:12px;cursor:pointer;transition:.2s}
.month:hover{border-color:var(--purple)}
.month b{display:block;font-size:18px}
.month span{font-size:12px;color:var(--muted)}
.month.done{background:#f1e9ff;border-style:solid;border-color:#b995ed}
.month.error{background:#fff0f2;border-color:#ed2e86}
.saved-archive{margin-top:18px}
.archive-list{display:grid;gap:8px}
.archive-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#fff}
.form-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
label{font-weight:650}
input,select,textarea{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:9px;padding:11px;background:white;font:inherit}
textarea{min-height:120px;resize:vertical}
input:disabled{background:#f2eef5;color:#9a93a3}
small{display:block;color:var(--muted);font-weight:400;margin-top:5px}
.tip{position:relative;display:inline-grid;place-items:center;width:18px;height:18px;margin-left:4px;border-radius:50%;background:#efe7fb;color:var(--purple);font-size:12px;font-weight:900;cursor:help}
.tip::after{content:attr(data-tip);position:absolute;left:50%;bottom:145%;transform:translateX(-50%);width:min(320px,80vw);padding:10px 12px;border:1px solid #d8cae8;border-radius:10px;background:#241333;color:#fff;font-size:13px;font-weight:500;line-height:1.35;box-shadow:0 12px 30px #24133333;opacity:0;pointer-events:none;z-index:20;transition:.15s}
.tip::before{content:"";position:absolute;left:50%;bottom:115%;transform:translateX(-50%);border:7px solid transparent;border-top-color:#241333;opacity:0;transition:.15s}
.tip:hover::after,.tip:focus::after,.tip:hover::before,.tip:focus::before{opacity:1}
.check{display:flex;gap:9px;align-items:center;background:#faf7fd;border:1px solid var(--line);border-radius:10px;padding:12px}
.check input,.toolbar-check input{width:auto;margin:0}
.explain,.advanced{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fcfaff}
.help-grid,.rules-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.help-grid p{margin:0;color:#403948}
.muted{color:var(--muted)}
.run{background:linear-gradient(110deg,#27103e,#511686);color:white;display:grid;grid-template-columns:1fr auto;align-items:center}
.run p{color:#d8c8e7}
.run button{margin-left:8px}
.run progress,.run pre{grid-column:1/-1;width:100%}
.run pre{max-height:150px;overflow:auto;color:#dac7e8;white-space:pre-wrap}
button,.button{border:0;border-radius:10px;padding:12px 18px;background:linear-gradient(90deg,var(--purple),var(--pink));color:#fff;font-weight:750;cursor:pointer;text-decoration:none}
.secondary{background:transparent;border:1px solid #ffffff66}
.summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
.summary div{min-width:0;padding:17px;background:#f7f2fb;border-radius:12px}
.summary strong,.summary span{display:block}
.summary strong{font-size:26px}
.summary span{color:var(--muted)}
.toolbar{display:flex;gap:10px;margin:22px 0;align-items:center}
.toolbar input{margin:0;max-width:360px}
.toolbar select{margin:0;width:160px}
.toolbar .secondary{color:var(--purple);border-color:var(--purple)}
.toolbar-check{display:flex;align-items:center;gap:7px;white-space:nowrap}
.serp-form{display:grid;grid-template-columns:2fr 160px 180px auto;gap:14px;align-items:end}
.parts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:12px 0}
.parts div{padding:14px;border:1px solid var(--line);border-radius:12px;background:#fbf7ff}
.parts strong{display:block;color:var(--purple);font-size:22px}
.parts span{display:block;font-weight:800}
.notes p{margin:7px 0;color:var(--muted)}
.mini{padding:7px 10px;border-radius:8px;font-size:12px}
.light{background:white!important;color:var(--purple)!important;border:1px solid #cdb9e7!important}
.danger-outline{background:#fff;color:#b8214d;border:1px solid #eab5c4}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th,td{text-align:left;padding:11px;border-bottom:1px solid var(--line);vertical-align:top}
th{position:sticky;top:0;background:#fff;color:var(--muted)}
tr.risk{background:var(--risk);box-shadow:inset 4px 0 var(--pink)}
.tag{display:inline-block;color:#a31450;font-weight:700}
.star{font-size:24px;line-height:1;background:transparent;color:#b9a8c9;padding:0}
.star.on{color:#f0a000}
.row-note{width:220px;min-height:50px;padding:8px;font-size:12px}
.link{display:block;background:transparent;color:var(--purple);padding:3px 0;text-align:left;text-decoration:underline}
.section-badge{padding:7px 10px;border-radius:999px;background:#f2eafb;color:var(--purple);font-size:12px;font-weight:800}
.product-upload-form{display:grid;grid-template-columns:1.2fr 170px 170px 1.5fr auto;gap:12px;align-items:end;padding:18px;border:1px solid #dfd2ec;border-radius:14px;background:linear-gradient(135deg,#fbf8ff,#fff)}
.subsection-heading{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}
.subsection-heading h3,.subsection-heading p{margin:0}
.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;min-width:0}
.report-grid>*{min-width:0;max-width:100%}
.report-card{display:flex;flex-direction:column;min-width:0;min-height:190px;padding:17px;border:1px solid var(--line);border-radius:14px;background:#fcfbfd}
.report-card.ready{border-color:#a8d9c3;background:#f6fff9}
.report-card.processing,.report-card.uploaded{border-color:#d7c2ef;background:#fbf7ff}
.report-card.error{border-color:#efb3c4;background:#fff7f9}
.report-card h3{font-size:20px;margin:14px 0 4px}
.report-card p{margin:2px 0 10px}
.report-card small{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.report-card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
.report-card-actions button{align-self:flex-start;margin-top:0}
.report-card-top{display:flex;min-width:0;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}
.report-status{font-weight:850;color:var(--purple)}
.report-card.ready .report-status{color:#087c4d}
.error-text{color:#b8214d!important;font-size:12px}
.analysis-controls{display:grid;grid-template-columns:1.35fr 1.35fr 180px 170px auto auto;gap:12px;align-items:end;margin:28px 0 18px;padding:18px;border-radius:14px;background:#2d1148;color:#fff}
.analysis-controls select{color:var(--ink)}
.product-filter-panel{margin-top:18px;background:#fcfaff}
.product-filters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:13px}
.product-filters .wide{grid-column:span 2}
.filter-actions{display:flex;flex-wrap:wrap;gap:9px;align-items:center;margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.filter-actions select,.filter-actions input{width:210px;margin:0}
.product-summary{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:18px}
.result-meta{display:flex;justify-content:space-between;align-items:center;margin:18px 0 10px;font-weight:750}
.result-meta div{display:flex;gap:8px}
.product-table{min-width:3350px}
.product-table th{z-index:2;box-shadow:0 1px var(--line)}
.product-table td:nth-child(4){min-width:370px}
.column-sort{padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:12px;white-space:nowrap}
.column-sort:hover{color:var(--purple);text-decoration:underline}
.table-hint{margin:12px 0 8px;padding:10px 12px;border-radius:10px;background:#f7f2fb;color:var(--muted);font-size:12px}
.inline-enrichment{width:112px;min-width:112px;margin:0;padding:8px;font-size:12px;transition:.15s}
.inline-enrichment.saving{background:#fff8e9;border-color:#d9a93b}
.inline-enrichment.saved{background:#eaf9f2;border-color:#58ad86}
.data-unavailable{color:#a56800;font-weight:800}
.compact-details{min-width:185px;margin:0}
.compact-details summary{margin:0;font-size:12px;color:var(--purple)}
.compact-details[open] summary{margin-bottom:8px}
.compact-details p{max-width:270px;margin:4px 0 10px;white-space:normal;line-height:1.4}
.compact-details a{display:block;max-width:260px;margin:7px 0;color:var(--purple)}
.cell-actions{display:flex;flex-wrap:wrap;gap:8px}
.cell-actions .link,.compact-details>.link{font-size:12px}
.product-cell{display:flex;gap:10px;align-items:flex-start}
.product-cell img{width:52px;height:68px;object-fit:cover;border-radius:8px;background:#f3eef7}
.product-cell b{display:block;max-width:300px}
.product-cell small{max-width:300px}
.product-cell-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:7px}
.product-cell-actions .link{display:inline-block;font-size:12px;text-decoration:none;border-bottom:1px dashed currentColor}
.delta-up{color:#087c4d;font-weight:800}
.delta-down{color:#c42152;font-weight:800}
.compliance{display:inline-block;max-width:135px;font-weight:800;text-decoration:none;border-bottom:1px dashed currentColor}
.compliance.required,.compliance.certificate,.compliance.declaration{color:#b8214d}
.compliance.review,.compliance.experiment{color:#a56800}
.compliance.not_detected{color:#087c4d}
.research-lab{position:relative;margin:22px 0;padding:24px;border:1px solid #d9c7ec;border-radius:18px;background:linear-gradient(145deg,#fbf8ff 0,#fff 55%,#fff7fb 100%);overflow:visible}
.research-heading{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}
.research-heading h3{font-size:24px;margin:4px 0}
.research-heading p{margin:0;color:var(--muted);max-width:760px}
.research-kicker{display:inline-block;color:var(--pink);font-size:11px;font-weight:900;letter-spacing:1.5px}
.research-mark{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:16px;background:linear-gradient(135deg,var(--purple),var(--pink));color:#fff;font-size:27px;box-shadow:0 12px 25px #7024d433}
.strategy-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:20px}
.strategy-card{min-height:120px;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);text-align:left;transition:.18s;box-shadow:none}
.strategy-card:hover{transform:translateY(-2px);border-color:#b995ed}
.strategy-card.active{border-color:var(--purple);background:#f4edff;box-shadow:inset 0 0 0 1px var(--purple)}
.strategy-card b,.strategy-card span{display:block}
.strategy-card span{margin-top:7px;color:var(--muted);font-size:12px;font-weight:500}
.research-settings-panel{margin:14px 0 0;padding:15px;border:1px solid var(--line);border-radius:13px;background:#fff}
.research-settings-panel summary{margin:0;font-size:16px}
.research-settings-panel[open] summary{margin-bottom:16px}
.research-settings{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:13px}
.research-check{align-self:end;min-height:47px}
.research-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:16px}
.research-actions .muted{flex:1;min-width:240px}
.backtest-output{margin-top:20px;padding-top:4px;border-top:1px solid var(--line)}
.backtest-summary{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:14px}
.backtest-table{min-width:780px}
.score-badge{display:inline-grid;place-items:center;min-width:52px;padding:7px 9px;border:0;border-radius:10px;background:#f0e7fc;color:var(--purple);font-weight:900}
.score-badge.strong{background:#e5f7ef;color:#087c4d}
.score-badge.weak{background:#fff0f2;color:#b8214d}
.workflow-select{min-width:145px;margin:0;padding:8px;font-size:12px}
.seller-power{display:inline-block;padding:5px 8px;border-radius:8px;background:#f3eef7;color:#5e2d8b;font-weight:850}
.seller-power.monster{background:#fff0f2;color:#b8214d}
.seller-power.strong{background:#fff6e5;color:#8a5b00}
.seller-power small{margin-top:2px}
.tool-dialog{width:min(960px,calc(100vw - 32px));max-height:90vh;margin:auto;padding:0;border:0;border-radius:18px;background:#fff;box-shadow:0 30px 100px #17052266;overflow:auto}
.tool-dialog::backdrop{background:#16072299;backdrop-filter:blur(4px)}
.compact-dialog{width:min(660px,calc(100vw - 32px))}
.dialog-head{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--line);background:#fff}
.dialog-head h3{margin:3px 0 0;font-size:24px}
.dialog-close{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:50%;background:#f3eef7;color:var(--ink);font-size:24px}
#scoreDialogBody,#dossierBody{padding:22px 24px}
.score-list{display:grid;gap:9px}
.score-item{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:11px}
.score-item.pass{border-color:#b8dfcd;background:#f6fff9}
.score-item.fail{border-color:#efc1ce;background:#fff8fa}
.score-item .score-flag{font-size:18px}
.score-item b,.score-item small{margin:0}
.dossier-hero{display:grid;grid-template-columns:90px 1fr;gap:16px;align-items:start}
.dossier-hero img{width:90px;height:120px;object-fit:cover;border-radius:12px;background:#f3eef7}
.dossier-hero h4{font-size:22px;margin:0 0 6px}
.dossier-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:13px}
.dossier-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:20px 0}
.dossier-metrics div{padding:14px;border-radius:11px;background:#f7f2fb}
.dossier-metrics strong,.dossier-metrics span{display:block}
.dossier-metrics strong{font-size:20px}
.history-chart{width:100%;height:180px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fcfbfd}
.history-chart svg{display:block;width:100%;height:100%}
.history-table{min-width:700px;margin-top:14px}
.seasonality-note{padding:13px 15px;border-radius:11px;background:#fff8e9;color:#795400}
.economics-layout{display:grid;grid-template-columns:360px 1fr;gap:22px;padding:22px 24px 28px}
.economics-form{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.economics-form input[readonly]{background:#f2eef5;color:#5c5067}
.economics-save{grid-column:1/-1}
.economics-product{padding:15px;border-radius:12px;background:#f7f2fb}
.economics-product b{display:block;font-size:18px}
.economics-result{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.economics-result div{padding:16px;border-radius:12px;background:#f7f2fb}
.economics-result div.good{background:#eaf9f2;color:#087c4d}
.economics-result div.bad{background:#fff0f2;color:#b8214d}
.economics-result strong,.economics-result span{display:block}
.economics-result strong{font-size:22px}
.footnote{color:var(--muted);font-size:12px}
details{margin-top:25px}
summary{font-size:20px;font-weight:750;cursor:pointer;margin-bottom:15px}
footer{padding:26px;color:var(--muted);text-align:center}
@media(max-width:1180px){.strategy-grid{grid-template-columns:repeat(3,1fr)}.research-settings{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1100px){.product-upload-form,.analysis-controls{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:1fr 1fr}.product-filters{grid-template-columns:repeat(3,1fr)}.economics-layout{grid-template-columns:1fr}.economics-form{grid-template-columns:repeat(4,1fr)}}
@media(max-width:900px){main{padding:14px}h1{font-size:40px}.month-grid{grid-template-columns:repeat(3,1fr)}.form-grid{grid-template-columns:1fr 1fr}.summary{grid-template-columns:repeat(3,minmax(0,1fr))}.help-grid,.rules-grid,.serp-form,.parts{grid-template-columns:1fr}.product-filters{grid-template-columns:1fr 1fr}.product-filters .wide{grid-column:span 2}header .brand{display:none}}
@media(max-width:520px){.form-grid{grid-template-columns:1fr}.run{grid-template-columns:1fr}.run div:last-of-type{display:flex}.month-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.strategy-grid,.research-settings,.economics-form{grid-template-columns:1fr 1fr}.dossier-metrics{grid-template-columns:1fr 1fr}.research-heading{gap:10px}.research-mark{width:42px;height:42px;flex-basis:42px}.research-actions>*{width:100%}.score-item{grid-template-columns:26px 1fr}.score-item>small{grid-column:2}}
@media(max-width:650px){.product-upload-form,.analysis-controls,.report-grid,.product-filters{grid-template-columns:1fr}.product-filters .wide{grid-column:auto}.archive-item,.subsection-heading,.result-meta{align-items:stretch;flex-direction:column}.filter-actions>*{width:100%!important}.research-lab{padding:17px}.strategy-grid,.research-settings,.economics-form{grid-template-columns:1fr}.economics-layout{padding:17px}.dossier-hero{grid-template-columns:65px 1fr}.dossier-hero img{width:65px;height:86px}.dialog-head,#scoreDialogBody,#dossierBody{padding-left:17px;padding-right:17px}}
