/* M8 palette: orange, charcoal, ink, sand and white. */
:root{color-scheme:light;--ink:#201f1d;--muted:#676461;--accent:#f1801e;--line:#d8d4ce;--bg:#eeebe5;--white:#fff;--surface:#fff;--surface-2:#eeebe5;--text:var(--ink);--text-muted:var(--muted);--border:var(--line);--error:#963d13}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.6 system-ui,-apple-system,sans-serif}
header{height:84px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:25px;padding:0 5vw;background:#fff}
.brand{font-size:29px;font-weight:850;text-decoration:none;color:var(--ink);letter-spacing:-1px;white-space:nowrap}
.brand span{font-size:21px;font-weight:400;margin-left:6px}
header .tag{margin-right:auto}
.tag{font-size:10px;letter-spacing:1.3px;font-weight:750;color:var(--muted)}
main{width:100%;max-width:none;margin:0;padding:40px 5vw;box-sizing:border-box}
#welcome{max-width:1200px;margin:0 auto}
#workspace{width:100%;max-width:none;min-width:0}
.welcome{display:grid;grid-template-columns:1.3fr 1fr;gap:75px;align-items:center;min-height:600px}
.eyebrow{font-size:11px;letter-spacing:2px;font-weight:750;color:#333235}
h1{font-size:46px;line-height:1.15;font-weight:650;letter-spacing:-1.8px;margin:20px 0}
h2{font-size:23px;line-height:1.3;font-weight:650;letter-spacing:-.5px}
.lead{font-size:18px;max-width:470px;color:var(--muted)}
.pill{display:inline-block;background:#fbe6d4;color:#333235;padding:8px 16px;border-radius:30px;font-size:13px;font-weight:650}
.steps{display:flex;flex-direction:column;gap:12px;margin:34px 0;padding:0;list-style:none;color:#333235}
.steps li{display:flex;gap:12px}.step-num{min-width:2ch}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px;min-width:0}
.auth{box-shadow:0 18px 65px #201f1d10;padding:32px}
.tabs{display:flex;gap:4px;background:#eeebe5;border-radius:9px;padding:4px}
.tabs button{flex:1;border:0;background:none;color:var(--muted);padding:10px}
.tabs .selected{background:#333235;color:#fff;box-shadow:0 1px 4px #00000012}
.compact{display:inline-flex;min-width:300px}
label{display:block;font-size:13px;font-weight:650;margin:18px 0 0}
input,select{display:block;width:100%;border:1px solid #c6c1b9;border-radius:7px;background:#fff;padding:12px;font:inherit;margin:6px 0;color:var(--ink)}
input:focus,select:focus{outline:2px solid #f1801e;outline-offset:2px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button{font:inherit;font-weight:650;cursor:pointer;border-radius:7px}
button:disabled{opacity:.5;cursor:not-allowed}
.primary,.secondary{padding:12px 18px;margin-top:18px}
.primary{background:var(--accent);border:1px solid var(--accent);color:var(--ink);width:100%}
.primary:hover:not(:disabled){background:#e87412}
header .header-auth{margin-left:auto;margin-top:0;width:auto;min-width:0;max-width:min(100%,420px);flex-shrink:1;white-space:nowrap;padding:12px 18px}
header #logout{margin-left:auto}
.secondary{background:#fff;border:1px solid #c6c1b9;color:#333235}
.quiet{border:none;background:none;color:#333235;padding:8px 0;font-size:13px}
.muted{color:var(--muted);font-size:13px}
.centered{text-align:center}
.section-heading{text-align:center;margin:65px 0 28px}
.plans,.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.plans{max-width:840px;margin:auto}
.billing-period{max-width:840px;margin:0 auto 24px;display:flex;align-items:end;justify-content:space-between;gap:30px}.billing-period label{min-width:260px}.billing-period p{max-width:430px;margin:0}.billing-period+.plans .card{display:flex;flex-direction:column}.billing-period+.plans .plan-list{flex:1}#billing-panel{max-width:1050px;margin:0 auto 60px}#billing-panel .section-heading{max-width:720px;margin:30px auto;text-align:center}#billing-panel .section-heading .lead{margin-inline:auto}#billing-panel>.banner{max-width:840px;margin:0 auto 24px}
.price{font-size:42px;font-weight:650;letter-spacing:-1px;margin:20px 0 0}
.price small{font-size:13px;color:var(--muted);letter-spacing:0;font-weight:400}
.plan-list{padding:0;list-style:none;margin:25px 0 0}
.plan-list li{padding:6px 0}
.plan-list li::before{content:'✓';color:#333235;margin-right:10px}
.core{border:2px solid #f1801e}
.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}
.page-heading h1{font-size:36px;overflow-wrap:anywhere}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:25px 0}
.metrics h2{font-size:33px;margin:12px 0}
.metrics p,.metrics small{color:var(--muted);font-size:13px}
.work-grid{margin:24px 0}
.banner{display:flex;justify-content:space-between;gap:25px;align-items:center;background:#fbe6d4;border:1px solid #eac7a8;padding:18px 24px;border-radius:12px}
.banner p{margin:4px 0;font-size:13px}.banner button{margin:0;flex-shrink:0}
.upcoming{background:transparent}.upcoming p{color:var(--muted)}
.narrow{max-width:480px;margin:50px auto}.narrow h1{font-size:30px}
#notice{position:sticky;top:0;z-index:3;padding:14px 5vw;background:#eeebe5;border-bottom:1px solid var(--line)}
#notice.error{background:#fbe6d4;color:#963d13}
footer{padding:30px;text-align:center;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
.legal-hint a,.legal-doc a{color:#333235}.legal-back{margin-left:auto}
[hidden]{display:none!important}
@media(max-width:800px){.welcome{grid-template-columns:1fr;gap:25px}.intro h1{font-size:37px}.plans,.work-grid,.metrics{grid-template-columns:1fr}.billing-period{display:block}.billing-period label{min-width:0}.billing-period p{margin-top:12px}main{padding:30px 20px}.page-heading,.banner{align-items:flex-start;flex-direction:column}header{padding:0 20px;gap:15px}.tag{font-size:9px}.compact{min-width:0;max-width:100%}.price{font-size:36px}}
/* Data center */
.first-data-intro{max-width:850px;margin:10px auto 28px;text-align:center}
.first-data-intro h2{font-size:clamp(30px,5vw,48px);letter-spacing:-1.5px;margin:14px 0}
.first-data-intro>p:not(.eyebrow){max-width:720px;margin:0 auto;color:var(--muted);font-size:17px}
.first-data-intro ul{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;list-style:none;padding:0;margin:24px 0 0}
.first-data-intro li{background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:12px;font-weight:650}
.first-data-mode #import-card{max-width:none;width:100%;margin:0;border-top:4px solid var(--accent);box-shadow:0 18px 55px #201f1d12}
.first-data-mode #import-card:focus{outline:none}
.workspace-nav{display:flex;gap:8px;border-bottom:1px solid var(--border);margin:32px 0;padding-bottom:16px}
.workspace-nav button{border:0;background:transparent;color:var(--text);padding:12px 24px}
.workspace-nav button.selected{background:var(--accent);color:var(--ink)}
#data-heading{font-size:32px;margin:0;color:var(--text)}
h3{font-family:system-ui,-apple-system,sans-serif;font-size:22px;font-weight:600;margin:16px 0;color:var(--text)}
h4{font-size:15px}
.data-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px;margin:24px 0}
.data-stats>div{background:var(--surface);padding:16px 24px;border:1px solid var(--border);border-radius:12px}
.data-stats small{display:block;color:var(--text-muted)}
.data-stats strong{display:block;font:600 26px/1.4 system-ui,-apple-system,sans-serif;color:var(--text)}
.import-steps{list-style:none;display:flex;gap:8px;padding:0;margin:0 0 32px;border-bottom:1px solid var(--border)}
.import-steps li{flex:1;color:var(--text-muted);font-size:13px;padding:12px 8px;border-bottom:3px solid transparent}
.import-steps [aria-current]{color:var(--text);border-color:#333235;font-weight:800}
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{font:600 22px/1.4 system-ui,-apple-system,sans-serif;padding:0;color:var(--text)}
fieldset:disabled{opacity:.65}
select{max-width:100%}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.file-drop{display:block;background:var(--surface-2);border:1px dashed var(--muted);border-radius:12px;padding:24px;margin:24px 0}
.file-drop input{background:var(--surface)}
.file-drop span{display:block}
.data-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap}
.data-actions .primary{width:auto;margin-top:0}
.data-actions a{font-size:13px;color:var(--text);text-underline-offset:4px}
.table-scroll{width:100%;overflow:auto;margin:16px 0;border:1px solid var(--border);border-radius:12px}
.table-scroll table{min-width:100%;border-collapse:collapse;font-size:13px;text-align:left}
.table-scroll th{padding:12px 16px;background:var(--surface-2);font-weight:800;white-space:nowrap;color:var(--text)}
.table-scroll td{padding:12px 16px;border-top:1px solid var(--border);min-width:90px;max-width:320px;overflow-wrap:anywhere;color:var(--text)}
.table-scroll tbody tr:nth-child(even){background:var(--surface-2)}
.mapping-row{display:grid;grid-template-columns:minmax(140px,1.1fr) minmax(160px,1fr) minmax(200px,1.6fr);gap:12px 16px;border-bottom:1px solid var(--border);padding:8px 0;align-items:center}
.mapping-row strong{display:block;font-size:13px;font-weight:700;line-height:1.3;overflow-wrap:anywhere;color:var(--text)}
.mapping-row small{display:block;max-width:100%;max-height:2.6em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);margin-top:2px;font-size:11px;line-height:1.3;font-weight:400}
#mapping-fields .map-field,#mapping-fields .attribute-fields input,#mapping-fields .attribute-fields select,#mapping-fields .form-grid select,#mapping-fields .form-grid input{
  margin:0;min-height:32px;padding:5px 28px 5px 10px;font-size:12px;line-height:1.3;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);box-shadow:none
}
#mapping-fields .form-grid input{padding-right:10px}
#mapping-fields select,#mapping-fields .map-field,#mapping-fields .attribute-fields select{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath stroke='%23676461' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='m1.5 1.8 4.5 4.4 4.5-4.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 10px center;background-size:10px 7px;cursor:pointer
}
#mapping-fields select:hover,#mapping-fields .map-field:hover,#mapping-fields .attribute-fields select:hover{border-color:#b0aaa2}
#mapping-fields select:focus,#mapping-fields .map-field:focus,#mapping-fields .attribute-fields input:focus,#mapping-fields .form-grid select:focus,#mapping-fields .form-grid input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
.attribute-fields{display:grid;grid-template-columns:1fr 1fr;gap:6px;align-items:center}
.attribute-fields input,.attribute-fields select{margin:0;min-width:0}
.attribute-fields .attr-name{grid-column:1/-1}
#mapping-fields .form-grid{gap:12px 16px;margin-top:12px}
#mapping-fields .form-grid label{margin:0;font-size:12px;font-weight:650;color:var(--text)}
#mapping-fields .form-grid label select,#mapping-fields .form-grid label input{margin-top:4px}
#mapping-fields > .muted{margin:10px 0}
#mapping-fields .check-label{margin:8px 0;font-size:13px;gap:10px;line-height:1.35}
#mapping-fields .primary{margin-top:14px;padding:10px 16px;width:auto}
.check-label{display:flex;gap:12px;align-items:flex-start;line-height:1.6;font-weight:500;color:var(--text)}
.check-label input{width:20px;min-height:20px;flex:0 0 20px;margin:0;accent-color:#333235}
#validation-panel{margin-top:32px;border-top:1px solid var(--border);padding-top:16px}
.error-message{color:var(--error);font-weight:700}
.valid-message{font-weight:700;border-left:4px solid var(--accent);padding-left:16px}
.validation-warnings{background:var(--surface-2);padding:16px 16px 16px 32px;font-size:13px}
.validation-warnings li{margin:8px 0}
.data-register,#pending-imports{margin-top:24px}
.data-register .secondary{margin:0}
.data-register details{overflow:auto}
summary{cursor:pointer;font-weight:700;min-height:44px;padding:8px 0;color:var(--text)}
.pending-row{display:flex;justify-content:space-between;gap:24px;align-items:center}
.empty-data{padding:24px}
.data-register details table{font-size:13px;border-collapse:collapse}
.data-register details th,.data-register details td{padding:8px 16px;text-align:left;color:var(--text)}
.preview-block{margin:16px 0;min-width:0;max-width:100%}
.preview-block .table-scroll{margin:0;max-width:100%;overflow-x:auto;overflow-y:auto;-webkit-overflow-scrolling:touch}
.preview-block .table-scroll th,.preview-block .table-scroll td{padding:6px 10px;font-size:12px;line-height:1.35;min-width:72px;max-width:none;overflow-wrap:normal}
.preview-block .table-scroll th{padding:8px 10px}
.grid-pager{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 4px 0}
.grid-pager p{margin:0;font-size:13px}
.grid-pager-nav{display:flex;align-items:center;gap:12px}
.grid-pager-nav span{font-size:13px;font-weight:650;color:var(--text);min-width:7.5rem;text-align:center}
.grid-pager-nav .quiet{margin:0;min-height:36px;padding:6px 12px}
.register-block{min-width:0;max-width:100%}
.register-block .register-scroll{margin:0;max-width:100%;max-height:420px;overflow:auto;-webkit-overflow-scrolling:touch}
.register-block .register-scroll th,.register-block .register-scroll td{padding:6px 10px;font-size:12px;line-height:1.35}
.register-block .register-scroll th{padding:8px 10px}
.register-grid{width:100%;min-width:100%;border-collapse:collapse}
.register-grid th{position:sticky;top:0;z-index:3;background:var(--surface-2)}
.weekly-matrix,.pivot-scroll{max-height:420px;position:relative}
.weekly-matrix .weekly-grid{width:max-content;min-width:100%;table-layout:fixed}
.pivot-grid,.preview-grid{width:max-content;min-width:max-content;table-layout:auto;border-collapse:separate;border-spacing:0}
.weekly-grid th,.pivot-grid th,.preview-grid th{position:sticky;top:0;z-index:3}
.weekly-grid th:nth-child(n+6),.pivot-grid th.date-col{background:var(--accent);color:var(--ink);text-align:center;min-width:84px}
.weekly-grid td:nth-child(n+6),.pivot-grid td.date-col{text-align:right;min-width:84px;font-variant-numeric:tabular-nums;white-space:nowrap}
.weekly-grid th:nth-child(-n+5),.weekly-grid td:nth-child(-n+5){position:sticky;z-index:2;background:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.weekly-grid th:nth-child(-n+5){z-index:4;background:var(--surface-2)}
.weekly-grid tbody tr:nth-child(even) td:nth-child(-n+5){background:var(--surface-2)}
.weekly-grid th:nth-child(1),.weekly-grid td:nth-child(1){left:0;width:110px;min-width:110px}
.weekly-grid th:nth-child(2),.weekly-grid td:nth-child(2){left:110px;width:120px;min-width:120px}
.weekly-grid th:nth-child(3),.weekly-grid td:nth-child(3){left:230px;width:250px;min-width:250px}
.weekly-grid th:nth-child(4),.weekly-grid td:nth-child(4){left:480px;width:150px;min-width:150px}
.weekly-grid th:nth-child(5),.weekly-grid td:nth-child(5){left:630px;width:120px;min-width:120px;box-shadow:5px 0 8px #201f1d14}
.pivot-grid th:not(.date-col),.pivot-grid td:not(.date-col){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px}
@media(max-width:900px){.mapping-row{grid-template-columns:1fr 1fr;align-items:start}.attribute-fields{grid-column:1/-1}}
@media(max-width:900px){.weekly-grid th:nth-child(n+2):nth-child(-n+5),.weekly-grid td:nth-child(n+2):nth-child(-n+5){position:static}.weekly-grid th:nth-child(5),.weekly-grid td:nth-child(5){box-shadow:none}}

/* Private M8 administration */
.admin-heading{align-items:flex-end}
.admin-actions{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}
.admin-actions label{margin:0;min-width:150px;font-size:12px}
.admin-actions select{margin:5px 0 0}
.admin-actions button{margin:0}
.admin-system{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin:20px 0 16px;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:var(--border)}
.admin-status-item{display:grid;grid-template-columns:10px 1fr;align-items:center;gap:2px 10px;padding:14px 16px;background:var(--surface)}
.admin-status-item small{grid-column:2;color:var(--muted)}
.admin-status-item strong{grid-column:2;font-size:14px}
.status-dot{grid-row:1/3;width:9px;height:9px;border-radius:50%;background:var(--error)}
.status-dot.ok{background:#2c9960;box-shadow:0 0 0 4px #2c99601a}
.admin-kpis{grid-template-columns:repeat(5,minmax(0,1fr));margin:0 0 24px}
.admin-analysis-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;margin:24px 0}
.admin-analysis-grid .card{margin:0;min-width:0}
.admin-funnel{display:grid;gap:14px;margin-top:18px}
.admin-funnel-heading{display:flex;justify-content:space-between;gap:16px;font-size:13px}
.admin-funnel-track{height:9px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:6px}
.admin-funnel-track span{display:block;height:100%;border-radius:inherit;background:var(--accent)}
.admin-bars{height:210px;display:flex;align-items:flex-end;gap:4px;padding:16px 0 0;border-bottom:1px solid var(--border)}
.admin-bar-column{flex:1;height:100%;display:flex;align-items:flex-end;min-width:3px}
.admin-bar-column span{display:block;width:100%;min-height:0;background:var(--accent);border-radius:3px 3px 0 0}
.admin-bar-column span:hover{background:#333235}
.admin-daily-legend{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:10px;color:var(--muted);font-size:12px}
.admin-daily-legend strong{color:var(--text)}
.admin-companies-card{margin-top:24px}
.admin-company-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.admin-company-filters input,.admin-company-filters select{margin:0;min-width:210px}
.admin-company-table{min-width:1180px}
.admin-company-table td strong,.admin-company-table td small{display:block}
.admin-company-table td small{margin-top:4px;color:var(--muted)}
@media(max-width:1050px){.admin-system{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-analysis-grid{grid-template-columns:1fr}}
@media(max-width:620px){.admin-system,.admin-kpis{grid-template-columns:1fr}.admin-actions,.admin-company-filters{width:100%}.admin-actions label,.admin-actions select,.admin-company-filters input,.admin-company-filters select{width:100%}}

/* Forecast workspace */
#forecast-heading{font-size:32px;margin:0}
.pill.stale{background:#fbe6d4;color:var(--error);border-color:#eac7a8}
.forecast-run-card{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;border-top:4px solid var(--accent);margin:24px 0}
.forecast-run-card h3{margin:5px 0}
.forecast-run-card p{margin-bottom:0}
.forecast-form{display:flex;align-items:flex-end;justify-content:flex-end;gap:14px;flex:1 1 620px;flex-wrap:wrap}
.forecast-form label{margin:0;min-width:155px}
.forecast-form select{margin:5px 0 0}
.forecast-form .primary{width:auto;margin:0;white-space:nowrap}
.run-forecast-wrap{position:relative;display:inline-flex;align-items:stretch}
.run-forecast-tip{position:absolute;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);z-index:4;width:max-content;max-width:min(280px,70vw);padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);box-shadow:0 10px 28px #201f1d22;font-size:12px;font-weight:650;line-height:1.45;text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease}
.run-forecast-tip::after{content:"";position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:var(--surface)}
.run-forecast-wrap.is-locked-today:hover .run-forecast-tip,
.run-forecast-wrap.is-locked-today:focus-within .run-forecast-tip{opacity:1;visibility:visible}
.forecast-metrics{margin-top:24px}
.forecast-output{margin-top:0}
.aggregation-card{margin:24px 0}
.aggregation-card .page-heading{margin-bottom:20px}
.aggregation-heading-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}
.result-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:12px;flex-wrap:wrap;flex-shrink:0}.result-heading-actions .button-link{white-space:nowrap}
.aggregation-heading-actions .quiet{margin:0;padding:8px 12px;border:1px solid var(--border);border-radius:999px;background:var(--surface);min-height:36px}
.aggregation-heading-actions .quiet:hover:not(:disabled){border-color:var(--accent);color:var(--ink)}
.aggregation-settings{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}
.aggregation-fields{border:1px solid var(--border);border-radius:10px;margin:18px 0 0;padding:14px}
.aggregation-fields legend{font-weight:700;padding:0 6px}
.aggregation-fields legend small{color:var(--muted);font-weight:400;margin-left:6px}
.aggregation-dimension-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px;margin-top:4px}
.dimension-option{display:flex;align-items:flex-start;gap:9px;background:var(--surface-2);border:1px solid var(--border);border-radius:8px;margin:0;padding:10px 11px;cursor:pointer}
.dimension-option input{width:auto;margin:3px 0 0;accent-color:var(--accent)}
.dimension-option strong,.dimension-option small{display:block}
.dimension-option small{color:var(--muted);font-size:11px;margin-top:2px}
.dimension-option:has(input:checked){border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}
.aggregation-card .data-actions{margin-top:18px}
.aggregation-card .table-scroll{max-height:330px}
.compact-action{width:auto;margin-top:12px}
.saved-configs{display:grid;gap:8px;margin-top:20px}
.saved-config{display:flex;align-items:center;justify-content:space-between;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;padding:11px 14px}
.saved-config strong,.saved-config small{display:block}
.saved-config small{color:var(--muted)}
.forecast-scroll{margin:0;max-height:520px;position:relative}
.forecast-scroll table{width:max-content;min-width:100%;table-layout:fixed}
.forecast-scroll th{position:sticky;top:0;z-index:3}
.forecast-scroll th.date-col{background:var(--accent);color:var(--ink);text-align:center;min-width:84px}
.forecast-scroll td.date-col{text-align:right;min-width:84px;font-variant-numeric:tabular-nums;white-space:nowrap}
.forecast-grid-table th:nth-child(-n+6),.forecast-grid-table td:nth-child(-n+6),.forecast-family-grid th:first-child,.forecast-family-grid td:first-child{position:sticky;z-index:2;background:var(--surface);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.forecast-grid-table th:nth-child(-n+6),.forecast-family-grid th:first-child{z-index:4;background:var(--surface-2)}
.forecast-grid-table tbody tr:nth-child(even) td:nth-child(-n+6),.forecast-family-grid tbody tr:nth-child(even) td:first-child{background:var(--surface-2)}
.forecast-grid-table th:nth-child(1),.forecast-grid-table td:nth-child(1){left:0;width:105px;min-width:105px}
.forecast-grid-table th:nth-child(2),.forecast-grid-table td:nth-child(2){left:105px;width:120px;min-width:120px}
.forecast-grid-table th:nth-child(3),.forecast-grid-table td:nth-child(3){left:225px;width:165px;min-width:165px}
.forecast-grid-table th:nth-child(4),.forecast-grid-table td:nth-child(4){left:390px;width:180px;min-width:180px}
.forecast-grid-table th:nth-child(5),.forecast-grid-table td:nth-child(5){left:570px;width:90px;min-width:90px;text-align:center}
.forecast-grid-table th:nth-child(6),.forecast-grid-table td:nth-child(6){left:660px;width:85px;min-width:85px;box-shadow:5px 0 8px #201f1d14;text-align:right}
.forecast-family-grid th:first-child,.forecast-family-grid td:first-child{left:0;width:230px;min-width:230px;box-shadow:5px 0 8px #201f1d14}
.forecast-editor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;border-block:1px solid var(--border);padding:12px 0;margin:18px 0 8px}
.forecast-editor-toolbar .tabs{margin:0}.editor-context,.chart-legend{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.editor-context strong{font-size:12px;color:var(--muted)}
.unit-chip{background:var(--ink);color:#fff;border-radius:7px;padding:7px 12px;font-size:12px;font-weight:700}
.forecast-editor-grid{width:max-content;min-width:100%;table-layout:fixed}.forecast-editor-grid th{white-space:nowrap}.forecast-editor-grid th.date-col{background:var(--accent);color:var(--ink);min-width:96px;text-align:center}.forecast-editor-grid td.date-col{min-width:96px;text-align:right;font-variant-numeric:tabular-nums}.forecast-editor-grid th:first-child,.forecast-editor-grid td:first-child{width:42px;min-width:42px;text-align:center}.forecast-editor-grid th:nth-child(2),.forecast-editor-grid td:nth-child(2){width:82px;min-width:82px;text-align:center}.forecast-editor-grid .primary-cell{font-weight:700;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.forecast-editor-grid tbody tr{cursor:pointer}.forecast-editor-grid tbody tr.chart-selected td{background:#fff4e8}.forecast-editor-grid tbody tr.chart-selected td:first-child{box-shadow:inset 4px 0 0 var(--accent)}
.forecast-editor-grid input[type=checkbox]{width:16px;height:16px;margin:0;accent-color:var(--accent)}.forecast-editor-grid input[type=number]{width:82px;margin:0;padding:7px;text-align:right;border-color:var(--accent);background:#fff}.row-actions{white-space:nowrap}.icon-action{width:30px;height:30px;padding:0;margin:0 2px;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--ink);font-size:16px}.icon-action:hover{border-color:var(--accent);color:var(--accent)}.icon-action:disabled{opacity:.35}.save-action{background:var(--accent);border-color:var(--accent);color:var(--ink)}.adjusted-cell{background:#fff0dd!important;color:#9a4c00;font-weight:700;box-shadow:inset 0 -3px 0 var(--accent)}
.forecast-editor-grid tfoot td{position:sticky;bottom:0;background:var(--surface-2);border-top:2px solid var(--ink);font-weight:800;z-index:2}.forecast-editor-grid tfoot td:first-child{text-align:right}
.forecast-chart-panel{border-top:1px solid var(--border);margin-top:18px;padding-top:20px}.chart-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:10px}.chart-heading h4{font-size:18px;margin:3px 0}.chart-legend{font-size:12px;color:var(--muted)}.chart-legend i{display:inline-block;width:22px;height:3px;margin-right:7px;vertical-align:middle}.forecast-editor-grid tbody tr.adjustment-row{cursor:pointer}.forecast-editor-grid tbody tr.adjustment-row td{background:#f7f5f1;color:var(--muted);font-size:12px}.forecast-editor-grid tbody tr.adjustment-row.chart-selected td{background:#eef6f2}.forecast-editor-grid .adjustment-label{font-weight:700;font-style:italic;color:#2F6F5E}.history-key{background:var(--ink)}.forecast-key{background:var(--accent)}.adjustment-key{background:#2F6F5E}#forecast-chart{display:block;max-width:100%;background:#fff}
@media(max-width:800px){.forecast-run-card,.forecast-form{align-items:stretch;flex-direction:column}.forecast-form{width:100%}.forecast-form .primary{width:100%}.aggregation-settings{grid-template-columns:1fr}.forecast-grid-table th:nth-child(n+2):nth-child(-n+6),.forecast-grid-table td:nth-child(n+2):nth-child(-n+6){position:static}.forecast-grid-table th:nth-child(6),.forecast-grid-table td:nth-child(6){box-shadow:none}}
@media(max-width:800px){.forecast-editor-toolbar,.chart-heading{align-items:flex-start;flex-direction:column}.editor-context{gap:8px}}

/* Demand health dashboard */
#dashboard-heading{font-size:32px;margin:0}.dashboard-heading .secondary{margin:0}.dashboard-filters{display:grid;grid-template-columns:minmax(230px,1.25fr) minmax(420px,2.2fr) minmax(160px,.7fr) auto;gap:18px;align-items:end;border-top:4px solid var(--accent);margin-bottom:14px}.dashboard-filters h3{margin:3px 0}.dashboard-filters p{margin:0}.dashboard-filter-fields{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:10px}.dashboard-filter-fields label,.dashboard-ranking{margin:0}.dashboard-filter-fields select,.dashboard-ranking select{margin-bottom:0;padding:9px 10px}.dashboard-filter-actions{display:flex;gap:12px;align-items:center}.dashboard-filter-actions .primary{width:auto;margin:0;white-space:nowrap}.dashboard-filter-actions .quiet{margin:0;min-width:48px}.dashboard-context{margin:0 0 15px}.dashboard-kpis{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:15px;margin:15px 0 24px}.dashboard-kpis article{padding:20px 22px}.dashboard-kpis p{color:var(--muted);font-size:12px;margin:0}.dashboard-kpis h2{font-size:30px;margin:7px 0 2px}.dashboard-kpis small{color:var(--muted);font-size:11px}.dashboard-kpis .attention-kpi{background:#333235;color:#fff;border-color:#333235}.dashboard-kpis .attention-kpi h2,.dashboard-kpis .attention-kpi p{color:#fff}.dashboard-kpis .attention-kpi small{color:#eeebe5}.positive-change{color:#2f6f5e!important}.negative-change{color:#963d13!important}.demand-overview-card{margin-bottom:20px}.demand-overview-card h3{margin:3px 0}.demand-overview-card canvas{display:block;max-width:100%;background:#fff}.dashboard-analysis-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;margin-bottom:20px}.dashboard-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.dashboard-card-heading h3{margin:3px 0}.dashboard-card-heading p{margin:0}.dashboard-card-heading .secondary{margin:0}.dashboard-note{margin:17px 0 0}.abc-xyz-matrix{display:grid;grid-template-columns:64px repeat(3,1fr);gap:7px;margin-top:20px}.matrix-axis,.matrix-corner{display:flex;align-items:center;justify-content:center;min-height:30px;font-size:11px;font-weight:800;color:var(--muted)}.matrix-cell{min-height:95px;border:1px solid var(--border);border-radius:9px;padding:12px;background:var(--surface-2)}.matrix-cell strong,.matrix-cell span,.matrix-cell small{display:block}.matrix-cell strong{font-size:18px}.matrix-cell span{font-size:12px;margin-top:7px}.matrix-cell small{color:var(--muted);font-size:11px}.matrix-a{box-shadow:inset 4px 0 0 var(--accent)}.matrix-b{box-shadow:inset 4px 0 0 #333235}.matrix-c{box-shadow:inset 4px 0 0 #b9b4ac}.demand-segments{display:grid;gap:14px;margin-top:22px}.segment-row>div:first-child{display:flex;justify-content:space-between;font-size:12px}.segment-track{height:8px;border-radius:999px;background:var(--surface-2);overflow:hidden;margin-top:5px}.segment-track i{display:block;height:100%;border-radius:inherit;background:var(--accent);min-width:2px}.exception-card{margin-bottom:20px}.exception-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:20px}.exception-row{display:flex;align-items:flex-start;gap:13px;border:1px solid var(--border);border-radius:10px;padding:14px}.exception-row.priority-3{border-left:4px solid var(--accent)}.exception-icon{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;background:var(--surface-2);border-radius:50%;font-weight:850}.exception-row strong{font-size:13px}.exception-row p{color:var(--muted);font-size:11px;margin:2px 0 0}.empty-inline{padding:18px;color:var(--muted);text-align:center}.portfolio-reports{margin-bottom:24px}.dashboard-report-tabs{margin:22px 0 12px;overflow-x:auto}.dashboard-report-tabs button{min-width:130px;white-space:nowrap}.dashboard-report-scroll{max-height:520px}.dashboard-report-table th{position:sticky;top:0;z-index:2}.dashboard-report-table td:first-child{font-weight:750}.dashboard-report-table td:nth-child(n+4){font-variant-numeric:tabular-nums}.dashboard-report-table tbody tr:hover{background:#fff4e8}
@media(max-width:1200px){.dashboard-filters{grid-template-columns:1fr 2fr}.dashboard-ranking{grid-column:1}.dashboard-filter-actions{grid-column:2;justify-content:flex-end}.dashboard-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:850px){.workspace-nav{overflow-x:auto}.workspace-nav button{white-space:nowrap}.dashboard-filters{grid-template-columns:1fr}.dashboard-filter-fields{grid-template-columns:1fr 1fr}.dashboard-ranking,.dashboard-filter-actions{grid-column:auto}.dashboard-filter-actions{justify-content:flex-start}.dashboard-kpis{grid-template-columns:1fr 1fr}.dashboard-analysis-grid{grid-template-columns:1fr}.exception-list{grid-template-columns:1fr}}
@media(max-width:560px){.dashboard-filter-fields{grid-template-columns:1fr}.dashboard-kpis{grid-template-columns:1fr}.abc-xyz-matrix{grid-template-columns:45px repeat(3,minmax(76px,1fr));gap:4px}.matrix-cell{padding:8px}.dashboard-report-tabs button{min-width:115px}}
.dashboard-kpis h2{font-size:clamp(24px,2vw,30px);white-space:nowrap}

/* Supplier purchase planning */
#purchase-heading{font-size:32px;margin:0}.purchase-heading{margin-bottom:22px}.purchase-setup-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:20px;margin:20px 0}.purchase-upload-card,.purchase-run-card{border-top:4px solid var(--accent)}.purchase-upload-card h3,.purchase-run-card h3{margin:4px 0}.purchase-upload-card form{border-top:1px solid var(--line);margin-top:22px;padding-top:4px}.purchase-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;counter-reset:purchase;list-style:none;padding:0;margin:20px 0}.purchase-steps li{background:var(--surface-2);border-radius:8px;padding:12px;font-size:12px;font-weight:700}.purchase-steps li::before{counter-increment:purchase;content:'0' counter(purchase);display:block;color:#963d13;font-size:10px;letter-spacing:1px;margin-bottom:4px}.button-link{display:inline-block;text-decoration:none;border-radius:7px;font-weight:650;padding:12px 18px;margin:0}.purchase-formula{margin:24px 0;background:#333235;color:#fff;border-radius:10px;padding:18px;text-align:center;font-weight:750}.purchase-run-card .primary{width:auto}.purchase-kpis{grid-template-columns:repeat(4,minmax(170px,1fr))}.purchase-suppliers-card,.purchase-lines-card{margin-bottom:20px}.purchase-filters{display:flex;gap:12px;margin:18px 0}.purchase-filters label{margin:0;min-width:190px}.purchase-filters select{margin-bottom:0}.purchase-table-scroll{max-height:520px}.purchase-table-scroll table{width:max-content;min-width:100%;border-collapse:collapse}.purchase-table-scroll th{position:sticky;top:0;z-index:2;background:#333235;color:#fff}.purchase-table-scroll th,.purchase-table-scroll td{padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap;text-align:left;font-size:12px}.purchase-table-scroll td:nth-child(n+6){font-variant-numeric:tabular-nums;text-align:right}.purchase-critical-row td{background:#fff0e2}.purchase-critical-row td:first-child{box-shadow:inset 4px 0 0 #963d13;color:#963d13;font-weight:800}.purchase-buy-row td:first-child{box-shadow:inset 4px 0 0 var(--accent);font-weight:800}.purchase-covered-row td:first-child{box-shadow:inset 4px 0 0 #9b978f}.warning-pill{background:#fff0e2;color:#963d13}.purchase-lines-card .secondary{margin:0}.purchase-suppliers-card .purchase-table-scroll{max-height:320px}
@media(max-width:1050px){.purchase-setup-grid{grid-template-columns:1fr}.purchase-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.purchase-steps{grid-template-columns:1fr}.purchase-kpis{grid-template-columns:1fr}.purchase-filters{flex-direction:column}.purchase-filters label{min-width:0}}

/* Purchase health dashboard */
#purchase-dashboard-heading{font-size:32px;margin:0}.purchase-dashboard-filters{grid-template-columns:minmax(230px,1fr) minmax(520px,2.4fr) auto}.purchase-dashboard-filter-fields{grid-template-columns:repeat(4,minmax(125px,1fr))}.purchase-health-kpis{grid-template-columns:repeat(5,minmax(150px,1fr))}.purchase-health-charts{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.purchase-health-charts h3{margin:3px 0}.purchase-health-charts canvas{display:block;max-width:100%;background:#fff}.purchase-health-breakdowns{grid-template-columns:1fr 1fr}.purchase-health-breakdowns .segment-track i{background:#333235}.purchase-health-breakdowns article:first-child .segment-row:first-child .segment-track i{background:#963d13}.purchase-health-breakdowns article:first-child .segment-row:nth-child(2) .segment-track i{background:var(--accent)}.purchase-report-tabs button{min-width:135px}.purchase-health-reports{margin-bottom:24px}.purchase-line-report-table{min-width:1420px}.purchase-line-report-table th,.purchase-line-report-table td{white-space:nowrap}.purchase-line-report-table th:nth-child(3),.purchase-line-report-table td:nth-child(3){min-width:220px;white-space:normal}
@media(max-width:1200px){.purchase-dashboard-filters{grid-template-columns:1fr 2fr}.purchase-dashboard-filters .dashboard-filter-actions{grid-column:2;justify-content:flex-end}.purchase-health-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.purchase-dashboard-filters{grid-template-columns:1fr}.purchase-dashboard-filters .dashboard-filter-actions{grid-column:auto;justify-content:flex-start}.purchase-dashboard-filter-fields{grid-template-columns:1fr 1fr}.purchase-health-charts,.purchase-health-breakdowns{grid-template-columns:1fr}.purchase-health-kpis{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.purchase-dashboard-filter-fields,.purchase-health-kpis{grid-template-columns:1fr}}
@media(max-width:600px){
  .first-data-intro{text-align:left}
  .first-data-intro ul{justify-content:flex-start}
  .mapping-row{grid-template-columns:1fr;gap:6px;padding:10px 0}
  .import-steps{gap:0}
  .import-steps li{font-size:11px;padding:8px 4px}
  .data-actions{align-items:stretch;gap:16px;flex-direction:column}
  .workspace-nav button{padding:12px}
  .data-stats{grid-template-columns:1fr 1fr}
  .data-stats>div{padding:16px}
  .data-stats strong{font-size:22px}
}

/* Auth legal hint + terms page */
.legal-hint{margin-top:16px;line-height:1.55}
.legal-hint a,.legal-doc a{color:var(--text);font-weight:700;text-underline-offset:3px}
.legal-hint a:hover,.legal-doc a:hover{color:#333235}
.legal-back{margin-left:auto;text-decoration:none}
.legal-back:hover{color:#333235}
.legal-main{max-width:820px}
.legal-doc{padding:40px 44px}
.legal-doc h1{margin-top:12px;font-size:clamp(28px,4vw,40px)}
.legal-doc h2{margin:36px 0 12px;font-size:20px}
.legal-doc p,.legal-doc li{color:var(--text);font-size:14px;line-height:1.7}
.legal-doc ul{padding-left:20px;margin:12px 0}
.legal-doc li{margin:10px 0}
.legal-banner{margin:24px 0;display:block}
.legal-banner.banner{align-items:flex-start}
@media(max-width:760px){
  .legal-doc{padding:28px 20px}
  header .legal-back{margin:0 0 16px auto}
}

/* Product explanation entry point. */
.product-link{font-weight:600;white-space:nowrap;text-underline-offset:4px}
@media(max-width:520px){body>header{height:auto;min-height:84px;flex-wrap:wrap;padding-block:16px;gap:12px}header .header-auth{width:100%;max-width:none;white-space:normal;font-size:13px;line-height:1.3}.product-link{font-size:12px}}

/* M8 identity in the existing welcome header and numbered steps. */
.brand{display:inline-flex;align-items:center}
.brand-image{display:block;width:140px;height:46px;object-fit:contain}
.steps .step-num{color:#963d13}
input::placeholder{color:#76716b}
