/* Generated by frontend/build.cjs. Edit the listed source modules, not this file. */
/* SOURCE: styles.css */
:root{
  --ink:#17324a;--muted:#6c8192;--line:#d8e7f1;--canvas:#f3f8fc;--paper:#fff;
  --teal:#3898dc;--teal-dark:#247fbe;--mint:#e3f3ff;--orange:#f39a3c;--red:#c94a45;
  --green:#1f7a5b;--blue:#6f8db8;--yellow:#d9a431;--shadow:0 12px 35px rgba(42,105,150,.09);
}
*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei UI","PingFang SC",system-ui,sans-serif;background:var(--canvas);color:var(--ink)}
button,input,select{font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:238px 1fr}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;scrollbar-width:thin;background:#143a5a;color:#fff;padding:26px 18px 20px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;padding:0 8px 28px}.brand-mark{position:relative;flex:0 0 auto;width:42px;height:42px;border-radius:14px;background:linear-gradient(145deg,#ffad58,#ee8732);display:grid;place-items:center;font-weight:800;box-shadow:0 8px 20px rgba(243,154,60,.28);overflow:hidden;cursor:pointer;outline:2px solid transparent;outline-offset:3px;transition:outline-color .15s ease,transform .15s ease}.brand-mark:hover{transform:translateY(-1px);outline-color:rgba(255,255,255,.28)}.brand-mark:focus-visible{outline-color:#86d0ff}.brand-mark input{display:none}.brand-mark img{display:block;width:100%;height:100%;object-fit:cover}.brand-mark .brand-logo-fallback{margin:0;color:#fff;font-size:14px;line-height:1}.brand strong,.brand span{display:block}.brand strong{font-size:17px}.brand span{font-size:11px;color:#b9d7ec;margin-top:4px}.sidebar nav{display:grid;gap:7px}.nav-item{border:0;background:transparent;color:#c3dbea;padding:13px 14px;border-radius:12px;text-align:left;display:flex;align-items:center;gap:12px;cursor:pointer}.nav-item span{width:22px;text-align:center;font-weight:800}.nav-item b{margin-left:auto;border-radius:10px;padding:2px 7px;background:#c95049;color:#fff;font-size:11px}.nav-item:hover,.nav-item.active{background:#286a9a;color:#fff}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:18px 8px 0;display:flex;gap:10px;align-items:flex-start}.sidebar-foot strong,.sidebar-foot span{display:block;font-size:11px}.sidebar-foot span{color:#a9c9df;margin-top:4px;line-height:1.4}.status-dot{width:9px;height:9px;background:#65c9ff;border-radius:50%;margin-top:3px;box-shadow:0 0 0 4px rgba(101,201,255,.14)}
main{min-width:0;padding:0 34px 44px}.topbar{height:104px;display:flex;justify-content:space-between;align-items:center}.topbar h1{margin:3px 0 0;font-size:27px;letter-spacing:-.5px}.eyebrow{margin:0;color:var(--teal);font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.top-actions{display:flex;gap:10px;align-items:center}.top-actions select{min-width:150px}.button{border:0;border-radius:11px;padding:10px 15px;font-weight:700;cursor:pointer;transition:.18s ease}.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.45;cursor:not-allowed;transform:none}.button.primary{background:var(--teal);color:#fff;box-shadow:0 6px 15px rgba(10,107,98,.16)}.button.primary:hover{background:var(--teal-dark)}.button.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}.button.large{padding:13px 22px}.view{display:none}.view.active{display:block}.hidden{display:none!important}.muted{color:var(--muted);font-size:12px}.context-row{display:flex;justify-content:space-between;align-items:center;margin:0 0 15px}.context-row>div{display:flex;gap:9px;align-items:center}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#eef2f1;color:#657472;font-size:11px;font-weight:700}.pill.teal{background:var(--mint);color:var(--teal)}
.notice{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);border-radius:18px;padding:22px;display:flex;align-items:center;gap:18px}.notice-icon{width:44px;height:44px;border-radius:14px;background:var(--mint);display:grid;place-items:center;color:var(--teal);font-size:24px}.notice p{margin:5px 0 0;color:var(--muted)}.notice button{margin-left:auto}.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:16px}.kpi{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:19px;min-height:128px;box-shadow:0 5px 20px rgba(32,62,58,.04);display:flex;flex-direction:column}.kpi.hero{background:linear-gradient(145deg,#0c6b63,#084d49);color:#fff;border:0}.kpi span{font-size:12px;color:var(--muted);font-weight:700}.kpi.hero span,.kpi.hero small{color:#c6dfdb}.kpi strong{font-size:27px;margin:14px 0 8px;letter-spacing:-.5px}.kpi small{color:var(--muted);font-size:11px}.kpi.positive strong{color:var(--green)}.kpi.negative strong{color:var(--red)}
.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:16px;margin-bottom:16px}.panel{background:var(--paper);border:1px solid var(--line);border-radius:17px;padding:20px;box-shadow:0 5px 22px rgba(32,62,58,.035)}.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;margin-bottom:18px}.panel h2,.rules-intro h2,.anomaly-summary h2{font-size:17px;margin:5px 0 0}.reconcile-bar{display:flex;height:16px;border-radius:20px;overflow:hidden;background:#edf1f0;margin:23px 0 15px}.reconcile-bar span{min-width:2px;transition:width .3s}.legend{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.legend-item{display:flex;gap:9px;align-items:flex-start}.legend-dot{width:9px;height:9px;border-radius:3px;margin-top:3px}.legend-item span,.legend-item strong{display:block;font-size:11px}.legend-item span{color:var(--muted)}.legend-item strong{margin-top:3px}.helper{color:var(--muted);font-size:11px;line-height:1.65;margin:14px 0 0}.cost-row{margin-top:15px}.cost-label{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}.cost-track{height:7px;background:#edf2f1;border-radius:8px;overflow:hidden}.cost-track span{display:block;height:100%;border-radius:8px}.table-panel{padding:0;overflow:hidden}.table-title{padding:19px 20px 0}.filters{display:flex;gap:8px}.filters input{width:215px}.filters input,.filters select,.top-actions select,input,select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 10px;color:var(--ink);outline:none}.filters input:focus,input:focus,select:focus{border-color:#83bdb5;box-shadow:0 0 0 3px rgba(10,107,98,.08)}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:1020px}th,td{padding:13px 12px;border-top:1px solid #e7eeec;text-align:right;font-size:11px;white-space:nowrap}.table-panel thead th{background:#f8faf9;color:#111;font-size:12px;font-weight:900;letter-spacing:.2px;text-transform:none;padding-top:15px;padding-bottom:15px}th:first-child,td:first-child{text-align:left;padding-left:20px}.product-cell{max-width:270px}.product-cell strong,.product-cell span{display:block;overflow:hidden;text-overflow:ellipsis}.product-cell span{color:var(--muted);font-size:10px;margin-top:4px}.profit-row td{background:var(--row-tone,transparent);transition:background-color .18s ease}.profit-row td:first-child{box-shadow:inset 3px 0 0 var(--row-accent,transparent)}.profit-row:hover td{filter:saturate(1.08)}.amount-positive{color:var(--green);font-weight:800}.amount-negative{color:var(--red);font-weight:800}.amount-neutral{color:var(--ink);font-weight:700}.break-even-roi span{display:inline-block;min-width:40px;padding:3px 7px;border-radius:6px;background:#fff1a8;color:#765600;font-weight:900}.ctr-warning{color:var(--red);font-weight:900}.row-toggle{border:0;background:#edf5f3;color:var(--teal);width:28px;height:28px;border-radius:8px;cursor:pointer}.detail-row td{background:#f8fbfa;padding:0 20px 18px}.detail-wrap{display:none}.detail-row.open .detail-wrap{display:block}.detail-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;padding-top:14px}.detail-chip{background:#fff;border:1px solid var(--line);border-radius:10px;padding:9px}.detail-chip span,.detail-chip strong{display:block;font-size:10px}.detail-chip span{color:var(--muted);margin-bottom:5px}
.freight-summary-panel{margin-bottom:16px;background:linear-gradient(135deg,#fff 0%,#f4faff 100%)}.freight-summary-panel .panel-head{align-items:center}.freight-summary-panel .helper{margin-top:7px}.freight-total{text-align:right;padding:10px 14px;border:1px solid #cfe5f5;border-radius:12px;background:#fff;min-width:170px}.freight-total span,.freight-total strong{display:block}.freight-total span{color:var(--muted);font-size:11px}.freight-total strong{font-size:22px;margin-top:4px;color:#237fbe}.freight-rows{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.freight-metric{position:relative;border:1px solid #dbe9f3;border-radius:13px;background:#fff;padding:14px 14px 26px}.freight-metric-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.freight-metric-head strong,.freight-metric-head small{display:block}.freight-metric-head strong{font-size:13px}.freight-metric-head small{color:var(--muted);font-size:10px;margin-top:4px}.freight-metric-head b{font-size:17px;white-space:nowrap}.freight-metric .cost-track{margin-top:14px}.freight-metric em{position:absolute;right:14px;bottom:7px;color:var(--muted);font-size:10px;font-style:normal}
.trend-panel{margin-bottom:16px;padding-bottom:14px}.trend-head{align-items:center;margin-bottom:8px}.trend-copy{margin:6px 0 0;color:var(--muted);font-size:11px}.trend-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.trend-legend button{border:0;background:#f3f7f6;border-radius:999px;padding:7px 10px;display:flex;align-items:center;gap:6px;color:#526765;font-size:11px;font-weight:700;cursor:pointer;transition:opacity .18s ease,background .18s ease}.trend-legend button:hover{background:#e8f0ee}.trend-legend button.inactive{opacity:.32}.trend-legend i,.chart-tooltip i{width:9px;height:9px;border-radius:50%;background:var(--legend-color);display:inline-block;flex:0 0 auto}.trend-chart-wrap{position:relative;width:100%;min-height:300px}.trend-chart-wrap canvas{display:block;width:100%;height:300px}.chart-tooltip{position:absolute;z-index:3;min-width:205px;padding:11px 12px;background:rgba(16,47,48,.95);color:#fff;border-radius:11px;box-shadow:0 10px 30px rgba(16,47,48,.22);pointer-events:none}.chart-tooltip strong{display:block;margin-bottom:7px;font-size:12px}.chart-tooltip span{display:grid;grid-template-columns:12px 1fr auto;align-items:center;gap:6px;font-size:10px;margin-top:5px}.chart-tooltip b{font-size:10px}.filters{flex-wrap:wrap;justify-content:flex-end}.filters input{width:200px}#dateFilter{min-width:128px}#resultFilter{min-width:150px}.table-scroll table{min-width:1170px}.table-panel thead th:nth-child(2),.product-cell{text-align:left}.date-cell{font-weight:800;color:#4f6462}.product-cell{max-width:270px}
.step-banner{display:flex;gap:15px;align-items:center;background:linear-gradient(110deg,#e1f1ed,#f8fbfa);border:1px solid #cfe6e1;border-radius:17px;padding:18px 20px;margin-bottom:16px}.step-banner>span{width:34px;height:34px;border-radius:11px;background:var(--teal);color:#fff;display:grid;place-items:center;font-weight:800}.step-banner strong{font-size:14px}.step-banner p{margin:4px 0 0;color:var(--muted);font-size:12px}.upload-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.upload-card{position:relative;background:#fff;border:1.5px dashed #b9cfcb;border-radius:17px;min-height:198px;padding:22px 18px;display:flex;align-items:center;flex-direction:column;justify-content:center;text-align:center;cursor:pointer;transition:.2s}.upload-card:hover,.upload-card.ready{border-color:var(--teal);background:#fbfefd;transform:translateY(-2px)}.upload-card input{display:none}.upload-icon{width:48px;height:48px;border-radius:15px;background:var(--mint);color:var(--teal);display:grid;place-items:center;font-weight:900;font-size:17px;margin-bottom:14px}.upload-card strong{font-size:14px}.upload-card small{color:var(--muted);margin:7px 0 14px;line-height:1.5}.upload-card em{font-style:normal;color:var(--teal);font-size:11px;font-weight:800;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-upload-card{padding-bottom:68px}.upload-template-link{position:absolute;left:18px;right:18px;bottom:18px;display:flex;align-items:center;justify-content:center;min-height:34px;border:1px solid #b8ddf4;border-radius:9px;background:#edf8ff;color:#237fbe;font-size:11px;font-weight:900;text-decoration:none;transition:.18s}.upload-template-link::before{content:"↓";margin-right:6px;font-size:14px}.upload-template-link:hover,.upload-template-link:focus-visible{border-color:#3898dc;background:#dff2ff;color:#176da5;outline:none;box-shadow:0 0 0 3px rgba(56,152,220,.1)}.import-bottom{margin-top:16px}.form-grid{display:grid;gap:12px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.five{grid-template-columns:repeat(5,1fr)}.form-grid.two{grid-template-columns:repeat(2,1fr)}label span{display:block;color:#607371;font-size:11px;font-weight:700;margin-bottom:7px}label input,label select{width:100%}.ready-panel,.save-panel{display:flex;justify-content:space-between;align-items:center;gap:20px}.ready-panel p{color:var(--muted);font-size:12px}.rules-intro,.anomaly-summary{background:linear-gradient(135deg,#123d3b,#0c2f31);color:#fff;border-radius:18px;padding:24px;display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.rules-intro p,.anomaly-summary p{max-width:660px;color:#b8d0cc;font-size:12px;line-height:1.6}.rules-intro .eyebrow,.anomaly-summary .eyebrow{color:#78ceb9}.version-card{min-width:210px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);padding:15px;border-radius:13px}.version-card span,.version-card strong,.version-card small{display:block}.version-card span,.version-card small{color:#b8d0cc;font-size:10px}.version-card strong{margin:7px 0;font-size:14px}.rule-panel{margin-bottom:16px}.rule-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:16px}.text-button{border:0;background:transparent;color:var(--teal);font-size:11px;font-weight:800;cursor:pointer}.step-table{display:grid;gap:7px}.step-row{display:grid;grid-template-columns:1fr 1fr 25px;gap:7px;align-items:center}.step-row.header,.log-row.header{color:var(--muted);font-size:10px;font-weight:800}.step-row input,.log-row input{width:100%;padding:8px}.delete-step{border:0;background:#faeeee;color:var(--red);border-radius:7px;height:30px;cursor:pointer}.logistics-panel{margin-bottom:16px}.logistics-table{display:grid;gap:7px}.log-row{display:grid;grid-template-columns:1fr 1fr 1fr 30px;gap:8px;align-items:center}.test-result{margin-top:12px;background:#f1f7f5;border-radius:11px;padding:12px;color:var(--teal);font-size:12px;font-weight:700}.anomaly-count{text-align:center;background:rgba(255,255,255,.08);border-radius:15px;padding:15px 28px}.anomaly-count strong,.anomaly-count span{display:block}.anomaly-count strong{font-size:29px;color:#f4a45e}.anomaly-count span{font-size:10px;color:#b8d0cc}.anomaly-list{display:grid;gap:10px}.anomaly-item{background:#fff;border:1px solid var(--line);border-left:4px solid var(--yellow);border-radius:13px;padding:16px;display:grid;grid-template-columns:120px 1fr 220px;gap:16px;align-items:center}.anomaly-item.error{border-left-color:var(--red)}.anomaly-item strong{font-size:12px}.anomaly-item p{margin:4px 0 0;color:var(--muted);font-size:11px}.anomaly-item .where{text-align:right;color:var(--muted);font-size:10px}.anomaly-item.expandable{cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}.anomaly-item.expandable:hover,.anomaly-item.expandable:focus-visible{border-color:#8ec9ee;box-shadow:0 5px 18px rgba(56,152,220,.12);outline:none}.anomaly-item.expandable.open{background:#fbfdff}.anomaly-expand-hint{display:block;margin-top:5px;color:#2d91d0;font-weight:800}.anomaly-detail{grid-column:1/-1;border-top:1px solid #d9e8f2;padding-top:13px;cursor:default;user-select:text}.anomaly-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.anomaly-detail-head strong{font-size:11px}.anomaly-detail-head span{font-size:10px;color:var(--muted)}.anomaly-order-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(205px,1fr));gap:7px;max-height:230px;overflow:auto;padding:2px}.anomaly-order-list code{display:block;padding:9px 10px;border:1px solid #dceaf3;border-radius:8px;background:#f3f9fd;color:#174b70;font-size:11px;line-height:1.25;overflow-wrap:anywhere}.empty-anomaly{background:#fff;border:1px solid var(--line);border-radius:16px;padding:34px;text-align:center;color:var(--muted)}.toast{position:fixed;right:24px;bottom:24px;background:#173c3a;color:#fff;border-radius:12px;padding:13px 17px;box-shadow:var(--shadow);opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s;max-width:360px;font-size:12px;z-index:20}.toast.show{opacity:1;transform:none}.toast.error{background:#9d3d39}
@media(max-width:1100px){.app-shell{grid-template-columns:86px 1fr}.sidebar{padding:24px 12px}.brand>div:last-child,.nav-item:not(.active){font-size:0}.nav-item{justify-content:center}.nav-item span{font-size:16px}.nav-item b{position:absolute;margin:0 0 28px 28px}.sidebar-foot>div:last-child{display:none}.brand-mark{width:42px}.kpi-grid{grid-template-columns:repeat(2,1fr)}.rule-grid{grid-template-columns:1fr}.form-grid.five{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){main{padding:0 16px 30px}.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;width:auto;height:66px;padding:8px;background:#102f30;z-index:10}.brand,.sidebar-foot{display:none}.sidebar nav{grid-template-columns:repeat(5,1fr);gap:4px}.nav-item,.nav-item:not(.active){font-size:9px;display:flex;flex-direction:column;gap:3px;padding:5px}.nav-item span{font-size:14px}.topbar{height:auto;padding:20px 0 16px;align-items:flex-end}.top-actions select,.top-actions .ghost{display:none}.topbar h1{font-size:23px}.kpi-grid,.two-col,.upload-grid,.freight-rows{grid-template-columns:1fr}.form-grid.three,.form-grid.five,.form-grid.two{grid-template-columns:1fr}.table-title,.trend-head{align-items:flex-start;flex-direction:column}.filters{display:flex;width:100%;justify-content:flex-start}.filters input{width:100%}.filters select{flex:1}.trend-legend{justify-content:flex-start}.rules-intro,.anomaly-summary,.ready-panel,.save-panel{align-items:flex-start;flex-direction:column}.version-card{width:100%}.detail-grid{grid-template-columns:repeat(2,1fr)}.anomaly-item{grid-template-columns:1fr}.anomaly-item .where{text-align:left}.view{padding-bottom:60px}}
.button.primary{box-shadow:0 6px 16px rgba(56,152,220,.22)}.filters input:focus,input:focus,select:focus{border-color:#75bdeb;box-shadow:0 0 0 3px rgba(56,152,220,.1)}.kpi.hero{background:linear-gradient(145deg,#49a9e9,#267fbe)}.kpi.hero span,.kpi.hero small{color:#e6f5ff}.rules-intro,.anomaly-summary{background:linear-gradient(135deg,#1f5f90,#173e61)}.rules-intro p,.anomaly-summary p{color:#c8e1f2}.rules-intro .eyebrow,.anomaly-summary .eyebrow{color:#86d0ff}.step-banner{background:linear-gradient(110deg,#e2f3ff,#fff8ef);border-color:#c9e6f8}.upload-card:hover,.upload-card.ready{background:#fbfdff}.table-panel thead th{background:#f4f9fd}.detail-row td{background:#f6fbff}.row-toggle{background:#eaf6fd}.reconcile-bar,.cost-track{background:#eaf1f6}.toast{background:#1c557e}
.date-range-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 16px;padding:14px 16px;border:1px solid #cce5f6;border-radius:15px;background:linear-gradient(100deg,#eaf7ff,#fffaf3);box-shadow:0 5px 18px rgba(56,152,220,.05)}.date-range-bar>div:first-child{display:flex;align-items:center;gap:11px}.date-range-bar strong,.date-range-bar small{display:block}.date-range-bar strong{font-size:12px}.date-range-bar small{margin-top:4px;color:var(--muted);font-size:10px}.range-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--orange);color:#fff;font-weight:900;box-shadow:0 5px 12px rgba(243,154,60,.2)}.range-inputs{display:flex;align-items:flex-end;gap:8px}.range-inputs label span{margin-bottom:4px;font-size:9px}.range-inputs input{min-width:142px;padding:8px 9px}.range-inputs>b{align-self:center;margin-top:15px;color:var(--muted);font-size:11px}.range-inputs .button{padding:9px 13px;white-space:nowrap}
@media(max-width:950px){.date-range-bar{align-items:flex-start;flex-direction:column}.range-inputs{width:100%;flex-wrap:wrap}.range-inputs label{flex:1}.range-inputs input{width:100%;min-width:130px}}
@media(max-width:760px){.sidebar{background:#143a5a}.range-inputs label{flex:1 1 42%}.range-inputs .button{flex:1}.context-row{align-items:flex-start;gap:8px}.context-row>div{flex-wrap:wrap}}

/* Account, shop switching and first-run setup. */
.auth-screen{min-height:100vh;display:grid;place-items:center;padding:28px;background:radial-gradient(circle at 12% 18%,rgba(103,195,250,.26),transparent 30%),radial-gradient(circle at 88% 82%,rgba(243,154,60,.18),transparent 27%),linear-gradient(145deg,#eaf6ff,#f8fbfd 55%,#fff8ef)}
.auth-card{width:min(620px,100%);padding:34px 38px;border:1px solid #cfe4f3;border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 24px 70px rgba(37,104,151,.16)}
.auth-brand{display:flex;align-items:center;gap:13px;margin-bottom:28px}.auth-logo{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#050505;box-shadow:0 9px 22px rgba(0,0,0,.22);overflow:hidden}.auth-logo img{display:block;width:100%;height:100%;object-fit:cover}
.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{font-size:20px}.auth-brand span{margin-top:4px;color:var(--muted);font-size:11px}.auth-card h1{margin:7px 0 8px;font-size:27px}.auth-copy,.auth-hint{color:var(--muted);font-size:12px;line-height:1.65}.auth-hint{margin:22px 0 0;text-align:center}.auth-form{display:grid;gap:15px;margin-top:23px}.auth-form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.auth-form .button{margin-top:4px}
.shop-switcher{margin:0 0 16px;padding:11px;border:1px solid rgba(255,255,255,.13);border-radius:13px;background:rgba(255,255,255,.06)}.shop-switcher>span,.shop-switcher small{display:block}.shop-switcher>span{margin-bottom:7px;color:#9fc8e4;font-size:10px;font-weight:800}.shop-switcher select{width:100%;padding:8px 9px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#fff;color:#17324a;font-size:11px}.shop-switcher small{margin-top:7px;color:#9fc8e4;font-size:9px;line-height:1.45}.logout-button{margin-top:9px;padding:0;border:0;background:transparent;color:#91c9ed;font-size:10px;cursor:pointer}.logout-button:hover{color:#fff}.brand-readonly{cursor:default;pointer-events:none}
.access-dialog{width:min(1040px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:0;border:0;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(21,61,91,.28);overflow:hidden}.access-dialog::backdrop{background:rgba(15,42,62,.42);backdrop-filter:blur(3px)}.access-dialog-body{max-height:calc(100vh - 145px);overflow:auto;padding:20px 24px 26px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.access-create-card,.access-overview{padding:18px;border:1px solid var(--line);border-radius:15px;background:#fbfdff}.access-create-card h3,.access-overview h3{margin:5px 0 14px;font-size:16px}.access-note{margin:-6px 0 15px;color:var(--muted);font-size:10px;line-height:1.55}.access-form{display:grid;gap:12px}.access-shop-bindings{display:grid;grid-template-columns:1fr 1fr;gap:8px}.shop-binding{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.shop-binding input{width:auto}.shop-binding b,.shop-binding small{display:block}.shop-binding b{font-size:11px}.shop-binding small{margin-top:3px;color:var(--muted);font-size:9px}.access-overview{grid-column:1/-1}.access-user{display:grid;grid-template-columns:210px 1fr;gap:15px;align-items:center;padding:12px 0;border-top:1px solid #e6eef4}.access-user:first-child{border-top:0}.access-user strong,.access-user small{display:block}.access-user small{margin-top:4px;color:var(--muted);font-size:10px}.access-user>div:last-child{display:flex;flex-wrap:wrap;gap:6px}.role-chip{padding:5px 8px;border-radius:999px;background:#edf4f8;color:#55748a;font-size:9px;font-weight:800}.role-chip.admin{background:#fff0dc;color:#a55d08}.role-chip.manager{background:#e7edff;color:#4d62b5}.role-chip.operator{background:#e3f3ff;color:#247fbe}.role-chip.finance,.role-chip.viewer{background:#eef2f4;color:#647684}
@media(max-width:1100px){.shop-switcher{padding:7px}.shop-switcher>span,.shop-switcher small{display:none}.shop-switcher select{font-size:0;padding:9px 4px}.shop-switcher select option{font-size:11px}}
@media(max-width:760px){.auth-card{padding:25px 20px}.auth-form-two{grid-template-columns:1fr}.access-dialog-body{grid-template-columns:1fr}.access-overview{grid-column:auto}.access-user{grid-template-columns:1fr}.access-shop-bindings{grid-template-columns:1fr}}

/* Link table: render specification details only when expanded. */
.table-scroll table{min-width:1240px}
.profit-row td{transition:none}
.order-count{font-weight:900;color:var(--teal)}
.detail-row td{background:#f6fbff;padding:0 20px 18px}
.detail-wrap{display:block}
.detail-summary{display:flex;justify-content:space-between;align-items:center;padding-top:13px}
.detail-summary strong{font-size:11px}
.detail-summary span{color:var(--muted);font-size:10px}
.detail-grid{display:grid;grid-template-columns:repeat(4,minmax(220px,1fr));gap:9px;padding-top:10px}
.detail-chip{min-width:0;background:#fff;border:1px solid var(--line);border-radius:10px;padding:11px 12px}
.detail-chip-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.detail-chip-head strong{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.detail-chip-head span{display:block;flex:0 0 auto;margin:0;padding:3px 6px;border-radius:6px;background:var(--mint);color:var(--teal);font-size:10px;font-weight:900}
.detail-chip small{display:block;margin-top:5px;color:var(--muted);font-size:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.detail-values{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:9px}
.detail-values span{display:block;margin:0;color:var(--muted);font-size:9px}
.detail-values b{display:block;margin-top:3px;color:var(--ink);font-size:10px}
@media(max-width:1100px){.detail-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}
@media(max-width:760px){.detail-grid{grid-template-columns:1fr}.detail-summary{align-items:flex-start;flex-direction:column;gap:4px}}

/* Lightweight grid keeps inline expansion fast without native table reflow. */
.table-scroll .result-table{--result-columns:96px minmax(280px,1fr) 112px 108px 70px repeat(5,84px) 96px 92px 104px 78px 78px 72px 44px;display:block;width:100%;min-width:1670px}
.result-table thead,.result-table tbody{display:block}
.result-table thead tr,.result-table .profit-row{display:grid;grid-template-columns:var(--result-columns);align-items:stretch}
.result-table th,.result-table .profit-row td{display:flex;align-items:center;justify-content:flex-end;min-width:0}
.result-table th:first-child,.result-table .profit-row td:first-child,.result-table th:nth-child(2),.result-table .profit-row td:nth-child(2),.result-table th:nth-child(3),.result-table .profit-row td:nth-child(3){justify-content:flex-start}
.result-table thead th:nth-child(2){justify-content:center;text-align:center}
.result-table .profit-row{content-visibility:auto;contain-intrinsic-size:auto 62px;min-height:62px}
.result-table .detail-row{display:block;contain:layout style paint}
.result-table .detail-row>td{display:block;width:100%;white-space:normal}
.result-table .product-cell{position:relative;width:100%;max-width:none;display:flex;align-items:center;justify-content:flex-start;padding-top:13px;padding-bottom:13px}
.result-table .product-cell strong{width:100%;line-height:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-table .product-cell span{position:absolute;left:12px;right:12px;top:calc(50% + 9px);margin:0;line-height:12px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-table .product-id-cell{overflow:hidden;text-overflow:ellipsis;color:#668095;font-size:10px;font-variant-numeric:tabular-nums}
.result-table th:nth-child(4),.result-table .activity-cell{justify-content:center!important;text-align:center}
.result-table .activity-cell{padding-left:4px;padding-right:4px}
.activity-pill{display:inline-flex;align-items:center;justify-content:center;margin:0 auto;padding:3px 8px;border-radius:999px;background:#e7f4fc;color:var(--teal-dark);font-size:9px;font-weight:900;line-height:1.25;text-align:center;white-space:nowrap}
.activity-pill.special{background:#fff0dc;color:#b96818}
@media(max-width:1200px) and (min-width:761px){.upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.result-table .profit-row{cursor:default}
.profit-row.detail-selected td{outline:1px solid rgba(56,152,220,.28);outline-offset:-1px}
.upload-grid{grid-template-columns:repeat(4,minmax(210px,1fr))}
.perspective-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:14px;padding:5px;border:1px solid #c9e2f2;border-radius:15px;background:#edf7fd}.perspective-picker button{display:flex;align-items:flex-start;flex-direction:column;gap:4px;border:0;border-radius:11px;padding:13px 16px;background:transparent;color:#52758c;text-align:left;cursor:pointer;transition:.18s}.perspective-picker button:hover{background:rgba(255,255,255,.72)}.perspective-picker button.active{background:#3898dc;color:#fff;box-shadow:0 5px 14px rgba(56,152,220,.22)}.perspective-picker strong{font-size:13px}.perspective-picker small{font-size:10px;opacity:.84}.pdd-orders-card{border-color:#9dcdeb}.pdd-orders-card .upload-icon{background:#e8f5fe;color:#2388c9}
.form-grid.four{grid-template-columns:repeat(4,1fr)}
.fee-panel-head{align-items:center}.fee-import-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.button.compact{padding:8px 12px;font-size:11px}.fee-snapshot-status{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:13px;padding:10px 12px;border:1px solid #d9e9f5;border-radius:10px;background:#f4f9fd}.fee-snapshot-status span{font-size:11px;font-weight:900;color:#237eb9}.fee-snapshot-status small{font-size:10px;color:var(--muted)}.fee-snapshot-status.ready{border-color:#b9dfd3;background:#f0faf7}.fee-snapshot-status.ready span{color:#147a5e}.fee-snapshot-status.warning{border-color:#f0d69a;background:#fff9e9}.fee-snapshot-status.warning span{color:#9a6a00}
.fee-manual-toggle{display:flex;align-items:center;gap:7px;margin-top:10px;font-size:10px;color:var(--muted);cursor:pointer}.fee-manual-toggle input{width:auto;margin:0;accent-color:var(--primary)}
@media(max-width:1200px) and (min-width:761px){.upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.upload-grid,.form-grid.four,.perspective-picker{grid-template-columns:1fr}.fee-panel-head{align-items:flex-start;flex-direction:column}.fee-import-actions{justify-content:flex-start}}
@media(max-width:820px){.auto-export-range{grid-template-columns:1fr 1fr}.auto-export-range>div{grid-column:1/-1}}
.result-table .summary-body{display:block;border-top:2px solid #8fc9ec;border-bottom:1px solid #bcdff3;background:#eaf6fd;box-shadow:0 5px 14px rgba(38,116,170,.08)}
.result-table .summary-row{display:grid;grid-template-columns:var(--result-columns);align-items:stretch;min-height:64px}
.result-table .summary-row td{display:flex;align-items:center;justify-content:flex-end;min-width:0;padding:12px 10px;font-weight:800;color:#173f5d;border-right:1px solid rgba(118,178,215,.18)}
.result-table .summary-row td:first-child,.result-table .summary-row td:nth-child(2){justify-content:center;text-align:center}
.result-table .summary-row td:nth-child(2){flex-direction:column;align-items:center;justify-content:center}
.result-table .summary-row td:nth-child(2) span{margin-top:3px;color:#6b8aa0;font-size:9px;font-weight:600}
.result-table .summary-row .amount-positive{color:#047857}.result-table .summary-row .amount-negative{color:#d43f3a}
.subsidy-amount{color:#6758c7;font-weight:850}
.metric-fill{display:block;width:0;animation:metric-bar-grow .72s cubic-bezier(.22,.75,.24,1) forwards;will-change:width}
.cost-track .metric-fill{border-radius:999px}
@keyframes metric-bar-grow{from{width:0}to{width:var(--target-width)}}
.result-table th.sortable{gap:4px;cursor:pointer;user-select:none;transition:color .16s ease,background-color .16s ease}
.result-table th.sortable:hover{color:#267fbe;background:#eaf5fc}
.result-table th.sortable::after{content:"⇅";width:12px;color:#9bb1c1;font-size:10px;font-weight:900;text-align:center}
.result-table th.sortable[data-sort-direction="desc"]{color:#176ca8;background:#e4f3fc}
.result-table th.sortable[data-sort-direction="desc"]::after{content:"↓";color:#176ca8}
.result-table th.sortable[data-sort-direction="asc"]{color:#176ca8;background:#e4f3fc}
.result-table th.sortable[data-sort-direction="asc"]::after{content:"↑";color:#176ca8}
.result-table th{position:relative;overflow:visible}
.column-resizer{position:absolute;z-index:6;top:0;right:-4px;bottom:0;width:9px;cursor:col-resize;touch-action:none}
.column-resizer::after{content:"";position:absolute;top:22%;bottom:22%;left:4px;width:1px;background:#a9c8dc;opacity:0;transition:opacity .15s ease,background-color .15s ease,box-shadow .15s ease}
.result-table th:hover .column-resizer::after,.column-resizer:hover::after,.column-resizer.active::after{opacity:1;background:#2f91d2;box-shadow:0 0 0 1px rgba(47,145,210,.12)}
body.column-resizing{cursor:col-resize!important;user-select:none}
body.column-resizing *{cursor:col-resize!important}
.result-frozen-header{position:fixed;z-index:30;top:0;display:none;overflow:hidden;background:#f4f9fd;border-bottom:2px solid #79bee9;box-shadow:0 8px 22px rgba(28,85,126,.18);pointer-events:auto}
.result-frozen-header.visible{display:block}
.result-frozen-header .frozen-result-table{display:block;margin:0;border-collapse:collapse;transform:translateX(0);will-change:transform}
.result-frozen-header .frozen-result-table thead{display:block}
.result-frozen-header .frozen-result-table thead tr{display:grid;grid-template-columns:var(--result-columns);align-items:stretch}
.result-frozen-header .frozen-result-table th{display:flex;position:relative;align-items:center;justify-content:flex-end;min-width:0;padding:15px 12px;border-top:0;background:#f4f9fd;color:#111;font-size:12px;font-weight:900;letter-spacing:.2px;white-space:nowrap}
.result-frozen-header .frozen-result-table th:first-child,.result-frozen-header .frozen-result-table th:nth-child(3){justify-content:flex-start}
.result-frozen-header .frozen-result-table th:nth-child(2),.result-frozen-header .frozen-result-table th:nth-child(4){justify-content:center;text-align:center}
.result-frozen-header .frozen-result-table th.sortable{cursor:ns-resize;user-select:none;transition:color .15s ease,background-color .15s ease}
.result-frozen-header .frozen-result-table th.sortable::after{content:"⇅";width:12px;color:#9bb1c1;font-size:10px;font-weight:900;text-align:center}
.result-frozen-header .frozen-result-table th.sortable[data-sort-direction="desc"],.result-frozen-header .frozen-result-table th.sortable[data-sort-direction="asc"]{color:#176ca8;background:#e4f3fc}
.result-frozen-header .frozen-result-table th.sortable[data-sort-direction="desc"]::after{content:"↓";color:#176ca8}
.result-frozen-header .frozen-result-table th.sortable[data-sort-direction="asc"]::after{content:"↑";color:#176ca8}
@media(prefers-reduced-motion:reduce){.metric-fill{width:var(--target-width);animation:none}.result-table th.sortable{transition:none}}
@media(max-width:1350px) and (min-width:1101px){.kpi-grid{grid-template-columns:repeat(3,1fr)}}
.button.danger{background:#d94a45;color:#fff;box-shadow:0 6px 16px rgba(201,74,69,.18)}.button.danger:hover{background:#bd3935}
.history-dialog{width:min(720px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 48px));padding:0;border:0;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(21,61,91,.28);overflow:hidden}
.history-dialog::backdrop{background:rgba(15,42,62,.42);backdrop-filter:blur(3px)}
.history-dialog-head{display:flex;justify-content:space-between;gap:20px;padding:22px 24px 17px;border-bottom:1px solid var(--line)}
.history-dialog-head h2{margin:5px 0 0;font-size:19px}.history-dialog-head p:last-child{margin:7px 0 0;color:var(--muted);font-size:11px}
.dialog-close{width:34px;height:34px;border:0;border-radius:10px;background:#edf5fa;color:#55758b;font-size:20px;cursor:pointer}
.history-select-all{display:grid;grid-template-columns:22px 1fr auto;align-items:center;padding:12px 24px;background:#f5faff;border-bottom:1px solid #dcecf6;cursor:pointer}.history-select-all input{width:16px;height:16px}.history-select-all span{margin:0;color:#36566c;font-size:11px}.history-select-all b{font-size:11px;color:#267fbe}
.history-manage-list{max-height:min(480px,55vh);overflow:auto;padding:8px 14px}
.history-manage-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:12px 10px;border-bottom:1px solid #edf2f5;cursor:pointer;border-radius:10px}.history-manage-item:hover{background:#f3f9fd}.history-manage-item input{width:16px;height:16px}.history-manage-item span{margin:0}.history-manage-item strong,.history-manage-item small{display:block}.history-manage-item strong{font-size:12px}.history-manage-item small{margin-top:4px;color:var(--muted);font-size:10px}.history-manage-item>b{font-size:12px}.history-mode-chip{display:inline-block;margin-right:7px;padding:3px 6px;border-radius:999px;background:#e7f4fc;color:#287fad;font-size:8px;font-style:normal;font-weight:850;vertical-align:1px}
.history-empty{padding:42px;text-align:center;color:var(--muted);font-size:12px}
.history-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding:15px 24px 20px;border-top:1px solid var(--line);background:#fbfdfe}

/* Product changelog. */
.changelog-button{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin-top:12px;padding:8px 10px;border:1px solid rgba(164,217,249,.24);border-radius:9px;background:rgba(61,151,211,.12);color:#cceaff;font-size:10px;font-weight:800;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.changelog-button:hover{background:rgba(61,151,211,.24);border-color:rgba(164,217,249,.42);transform:translateY(-1px)}.changelog-button i{display:grid;place-items:center;width:18px;height:18px;border-radius:6px;background:#399cdd;color:#fff;font-size:8px;font-style:normal;box-shadow:0 3px 9px rgba(48,151,216,.25)}
.changelog-dialog{width:min(920px,calc(100vw - 32px));max-height:calc(100vh - 40px);padding:0;border:0;border-radius:20px;background:#fff;color:var(--ink);box-shadow:0 26px 80px rgba(16,53,80,.32);overflow:hidden}.changelog-dialog::backdrop{background:rgba(12,38,58,.48);backdrop-filter:blur(4px)}
.changelog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:23px 27px 19px;border-bottom:1px solid #dceaf3;background:linear-gradient(110deg,#eef9ff,#fffaf3)}.changelog-head h2{margin:5px 0 0;font-size:22px}.changelog-head p:last-child{margin:8px 0 0;color:var(--muted);font-size:11px}.changelog-head .dialog-close{flex:0 0 auto}
.changelog-body{max-height:calc(100vh - 205px);overflow:auto;padding:8px 27px 14px;scrollbar-width:thin;scrollbar-color:#aed3e9 transparent}.changelog-release{position:relative;display:grid;grid-template-columns:145px minmax(0,1fr);gap:24px;padding:24px 0;border-bottom:1px solid #e5eef4}.changelog-release:last-child{border-bottom:0}.changelog-release::before{content:"";position:absolute;left:154px;top:30px;bottom:-31px;width:2px;background:#dcecf6}.changelog-release:last-child::before{bottom:30px}.changelog-release::after{content:"";position:absolute;left:149px;top:29px;width:12px;height:12px;border:3px solid #fff;border-radius:50%;background:#7cbde6;box-shadow:0 0 0 2px #cde7f7}.changelog-release.current::after{background:#f29a39;box-shadow:0 0 0 2px #ffe0b7}
.changelog-date{padding-right:15px;text-align:right}.changelog-date strong,.changelog-date span{display:block}.changelog-date strong{color:#1d6f9f;font-size:13px}.changelog-date span{margin-top:6px;color:#8aa0af;font-size:9px;font-weight:800}.changelog-release.current .changelog-date span{color:#c36e17}.changelog-content{padding-left:9px}.changelog-content h3{margin:0 0 11px;color:#153d5b;font-size:15px}.changelog-content ul{display:grid;gap:7px;margin:0;padding-left:17px}.changelog-content li{padding-left:3px;color:#506d80;font-size:11px;line-height:1.65}.changelog-content li::marker{color:#4ca4dc}
.changelog-foot{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 27px 18px;border-top:1px solid #dceaf3;background:#f8fbfd}.changelog-foot span{color:#78909f;font-size:10px}.changelog-foot .button{flex:0 0 auto}
@media(max-width:700px){.changelog-dialog{width:calc(100vw - 20px);max-height:calc(100vh - 20px)}.changelog-head{padding:19px 18px 16px}.changelog-body{max-height:calc(100vh - 190px);padding:5px 18px 12px}.changelog-release{grid-template-columns:1fr;gap:9px;padding:20px 0}.changelog-release::before,.changelog-release::after{display:none}.changelog-date{padding:0;text-align:left}.changelog-date strong,.changelog-date span{display:inline}.changelog-date span{margin-left:8px}.changelog-content{padding:0}.changelog-foot{align-items:flex-start;flex-direction:column;padding:13px 18px 16px}.changelog-foot .button{width:100%}}

/* Internal pilot security and administration. */
.upload-card.upload-disabled{opacity:.62;cursor:not-allowed;background:#f4f7f9}.upload-card.upload-disabled:hover{transform:none;box-shadow:none}.upload-card.upload-disabled em::after{content:" · 仅管理员可更新"}
.overview-context-actions{display:flex;align-items:center;gap:14px}.overview-basis-switch{display:flex;padding:4px;border:1px solid #c8e2f3;border-radius:12px;background:#edf7fd}.overview-basis-switch button{border:0;border-radius:8px;padding:8px 15px;background:transparent;color:#57758a;font-size:11px;font-weight:800;cursor:pointer;transition:.18s}.overview-basis-switch button:hover{color:#247fbe}.overview-basis-switch button.active{background:#3898dc;color:#fff;box-shadow:0 4px 12px rgba(56,152,220,.22)}.basis-explanation{display:flex;align-items:center;gap:10px;margin:-3px 0 13px;padding:10px 13px;border:1px solid #cfe5f3;border-radius:11px;background:#f2f9fd;color:#4e7188;font-size:11px}.basis-explanation strong{color:#247fbe}.jst-report-card{min-height:220px}.jst-detection{display:grid;gap:5px;width:100%;margin-top:13px;text-align:left}.jst-detection i{display:block;padding:6px 8px;border-radius:7px;background:#f2f5f7;color:#78909f;font-size:9px;font-style:normal;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.jst-detection i.ready{background:#e6f6ff;color:#187fbe;font-weight:800}
.button.tiny{padding:6px 9px;border-radius:8px;font-size:9px;white-space:nowrap}
.access-user{grid-template-columns:190px minmax(220px,1fr) auto}.access-user.inactive{opacity:.58}.access-user-roles{display:flex;flex-wrap:wrap;gap:6px}.access-user-actions{display:flex;gap:7px;justify-content:flex-end}
.audit-overview{background:#f8fbfd}.audit-list{display:grid;max-height:310px;overflow:auto}.audit-row{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 2px;border-top:1px solid #e6eef4}.audit-row:first-child{border-top:0}.audit-row strong,.audit-row small{display:block}.audit-row strong{font-size:11px}.audit-row small{margin-top:4px;color:var(--muted);font-size:9px}.audit-row>span{padding:4px 7px;border-radius:999px;background:#e5f6ef;color:#167653;font-size:9px;font-weight:800}.audit-row.failure>span{background:#ffe9e7;color:#bc3f3a}
.security-dialog{width:min(500px,calc(100vw - 32px));padding:0;border:0;border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 24px 70px rgba(21,61,91,.28);overflow:hidden}.security-dialog::backdrop{background:rgba(15,42,62,.42);backdrop-filter:blur(3px)}.security-form{padding:20px 24px 0}.security-form .history-dialog-actions{margin:4px -24px 0}
.auth-form label small{display:block;margin-top:5px;color:var(--muted);font-size:9px}
@media(max-width:760px){.access-user{grid-template-columns:1fr}.access-user-actions{justify-content:flex-start}.security-dialog{width:calc(100vw - 22px)}}

/* Pre-listing break-even calculator. */
.listing-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:23px 25px;border-radius:18px;background:linear-gradient(135deg,#1f5f90,#2d83bd);color:#fff;box-shadow:0 12px 30px rgba(35,112,167,.13)}
.listing-intro h2{margin:5px 0 0;font-size:22px}.listing-intro p:last-child{margin:8px 0 0;color:#d8edf9;font-size:12px}.listing-intro .eyebrow{color:#9bd8ff}.listing-intro .pill{flex:0 0 auto;background:rgba(255,255,255,.16);color:#fff}
.catalog-admin-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;border-color:#a9d8f5;background:linear-gradient(90deg,#f2faff,#fffaf3)}.catalog-upload-button input{display:none}.catalog-upload-button span{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 18px;border-radius:11px;background:#3499dc;color:white;font-weight:900;cursor:pointer;box-shadow:0 8px 20px rgba(52,153,220,.2)}.listing-form-panel{margin-bottom:16px}.listing-sku-inputs{display:grid;gap:14px}.listing-sku-card{padding:16px;border:1px solid #cfe3f1;border-radius:16px;background:#f8fcff;overflow:visible}.listing-sku-card-head{display:grid;grid-template-columns:64px 1fr auto;align-items:end;gap:12px}.listing-sku-number{align-self:center;width:54px;height:42px;border-radius:12px;background:#dff2ff;color:#257fb9;font-size:12px;line-height:42px;text-align:center}.listing-sku-fields{display:grid;grid-template-columns:minmax(150px,1fr) minmax(120px,.55fr) minmax(190px,.8fr);gap:10px}.listing-sku-card input,.listing-sku-card select,.listing-shared-fields select{width:100%}.listing-remove-sku,.listing-remove-component{border:0;background:#fff0ef;color:#c7443e;border-radius:10px;cursor:pointer;font-weight:900}.listing-remove-sku{height:40px;padding:0 14px}.listing-components{display:grid;gap:8px;margin:14px 0 9px;padding-top:13px;border-top:1px solid #e0edf5}.listing-component-row{position:relative;display:grid;grid-template-columns:minmax(280px,1fr) 110px 38px;align-items:end;gap:9px}.listing-component-row:focus-within{z-index:12}.listing-component-qty input{text-align:center}.listing-remove-component{width:38px;height:40px;font-size:18px}.catalog-combobox{position:relative}.catalog-combobox .listing-component-search{padding-right:45px}.catalog-combobox-toggle{position:absolute;right:1px;top:1px;width:40px;height:38px;border:0;border-left:1px solid #d3e4ef;border-radius:0 9px 9px 0;background:#f2f9fd;color:#247fb9;font-size:20px;cursor:pointer}.catalog-combobox.open .catalog-combobox-toggle{background:#dff2ff;transform:rotate(180deg)}.catalog-suggestions{position:absolute;z-index:40;top:calc(100% + 5px);left:0;right:0;max-height:310px;overflow:auto;padding:5px;border:1px solid #acd6ef;border-radius:12px;background:#fff;box-shadow:0 16px 34px rgba(20,67,98,.2)}.catalog-suggestion{display:block;width:100%;padding:10px 12px;border:0;border-radius:8px;background:#fff;color:#0c314a;text-align:left;cursor:pointer}.catalog-suggestion:hover,.catalog-suggestion:focus{outline:0;background:#e9f6ff}.catalog-suggestion strong,.catalog-suggestion small{display:block}.catalog-suggestion strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.catalog-suggestion em{margin-right:7px;color:#2189ca;font-style:normal}.catalog-suggestion small{margin-top:4px;color:#67869a}.catalog-suggestion-empty{padding:18px 12px;color:#718a9b;text-align:center}.listing-add-component,.listing-add-sku{border:1px dashed #8fc8eb;background:#edf8ff;color:#2584c0;border-radius:10px;min-height:38px;padding:0 14px;font-weight:900;cursor:pointer}.listing-add-sku{width:100%;margin:12px 0}.listing-shared-fields{display:grid;grid-template-columns:minmax(260px,1.3fr) minmax(180px,.7fr);gap:12px;max-width:720px;margin-top:13px;padding-top:13px;border-top:1px solid #e7eff4}.listing-component-details{display:grid;gap:7px;margin:0 0 12px}.listing-component-detail{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:14px;padding:10px;border-radius:10px;background:#f2f9fd;border:1px solid #e0eef6}.listing-component-detail span,.listing-component-detail small{display:block}.listing-component-detail small{margin-top:3px;color:#66859a}
.listing-advanced{margin-top:14px;border-top:1px solid #e2edf4;padding-top:13px}.listing-advanced summary{width:max-content;color:var(--teal-dark);font-size:11px;font-weight:800;cursor:pointer;user-select:none}.listing-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:13px;max-width:720px}
.listing-submit{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:16px;padding-top:15px;border-top:1px solid #e7eff4}.listing-submit p{margin:0;color:var(--muted);font-size:11px}.listing-submit button{min-width:125px}
.listing-empty{text-align:center;padding:48px}.listing-empty strong{font-size:16px}.listing-empty p{margin:9px 0 0;color:var(--muted);font-size:12px}
.listing-recommendation{display:grid;grid-template-columns:1.65fr repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.listing-recommendation>article{min-height:126px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 5px 20px rgba(32,62,58,.04)}.listing-recommendation-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 23px;border:0!important;background:linear-gradient(145deg,#49a9e9,#267fbe)!important;color:#fff}.listing-recommendation-hero.warning{background:linear-gradient(145deg,#f1a03b,#e37632)!important}.listing-recommendation-hero .eyebrow{color:#dff3ff}.listing-recommendation-hero h2{margin:5px 0 0;font-size:22px}.listing-recommendation-hero p:last-child{margin:8px 0 0;color:#eaf7ff;font-size:10px;line-height:1.6}.listing-recommendation-hero>strong{font-size:34px}.listing-recommendation-stat{display:flex;flex-direction:column;padding:19px}.listing-recommendation-stat span{color:var(--muted);font-size:10px;font-weight:800}.listing-recommendation-stat strong{margin:16px 0 9px;font-size:24px}.listing-recommendation-stat small{color:var(--muted);font-size:10px}
.listing-comparison{display:grid;gap:11px;margin-bottom:16px}.listing-compare-card{overflow:hidden;border:1px solid #d8e8f2;border-radius:15px;background:#fff;box-shadow:0 4px 16px rgba(35,89,126,.04)}.listing-compare-toggle{display:grid;grid-template-columns:42px minmax(210px,1.55fr) repeat(3,minmax(105px,.65fr)) 76px;align-items:center;gap:14px;width:100%;padding:15px 18px;border:0;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:background .2s ease,transform .2s ease}.listing-compare-toggle:hover{background:#f5fbff}.listing-compare-toggle:active{transform:scale(.998)}.listing-compare-toggle[aria-expanded="true"]{background:#eef8ff}.listing-compare-toggle>span{min-width:0}.listing-compare-toggle>span:not(.listing-compare-main):not(.listing-compare-number) small,.listing-compare-toggle>span:not(.listing-compare-main):not(.listing-compare-number) b{display:block;text-align:right}.listing-compare-toggle small{color:var(--muted);font-size:10px}.listing-compare-toggle b{font-size:13px}.listing-compare-number{width:34px;height:34px;border-radius:10px;background:#dff2ff;color:#2585c2;font-size:12px;font-weight:900;line-height:34px;text-align:center}.listing-compare-main b,.listing-compare-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.listing-compare-main small{margin-top:6px}.listing-compare-toggle i{color:#2788c8;font-size:10px;font-style:normal;font-weight:800;text-align:right}.listing-compare-detail{border-top:1px solid #d9eaf4;background:#f8fcff;animation:listingDetailIn .24s ease both}.listing-expanded-detail{padding:18px}.listing-expanded-detail .listing-detail-layout{margin-bottom:14px}.listing-expanded-detail .listing-detail-layout>section{padding:17px;border:1px solid #dfebf3;border-radius:13px;background:#fff}.listing-detail-title{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:10px}.listing-detail-title h3{margin:4px 0 0;font-size:15px}@keyframes listingDetailIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
.listing-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.listing-kpi{display:flex;flex-direction:column;min-height:128px;padding:19px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 5px 20px rgba(32,62,58,.04)}.listing-kpi.hero{border:0;background:linear-gradient(145deg,#49a9e9,#267fbe);color:#fff}.listing-kpi span{color:var(--muted);font-size:11px;font-weight:700}.listing-kpi.hero span,.listing-kpi.hero small{color:#e6f5ff}.listing-kpi strong{margin:15px 0 8px;font-size:27px}.listing-kpi small{color:var(--muted);font-size:10px}
.listing-detail-layout{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;margin-bottom:16px}.listing-cost-list{display:grid;gap:0}.listing-cost-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:11px 3px;border-bottom:1px solid #edf2f5}.listing-cost-row div{min-width:0}.listing-cost-row strong,.listing-cost-row span{display:block}.listing-cost-row strong{font-size:12px}.listing-cost-row span{margin-top:4px;color:var(--muted);font-size:10px}.listing-cost-row b{font-size:13px;white-space:nowrap}.listing-cost-row.total{margin-top:3px;border-top:2px solid #d9e9f3}.listing-cost-row.income b,.listing-cost-row.positive b{color:var(--green)}.listing-cost-row.negative b{color:var(--red)}
.listing-freight-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.listing-freight-grid>div{padding:12px;border:1px solid #e0ecf4;border-radius:11px;background:#f7fbfe}.listing-freight-grid span,.listing-freight-grid strong{display:block}.listing-freight-grid span{color:var(--muted);font-size:10px}.listing-freight-grid strong{margin-top:6px;font-size:13px}
.listing-formula-panel{margin-bottom:16px}.listing-formula-panel h2{margin-bottom:15px}.listing-formulas{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.listing-formulas>div{padding:13px;border-radius:11px;background:#f3f9fd;border:1px solid #deedf6}.listing-formulas span,.listing-formulas b{display:block}.listing-formulas span{color:#39769f;font-size:10px;font-weight:800}.listing-formulas b{margin-top:7px;font-size:11px;line-height:1.6}
@media(max-width:1450px){.listing-recommendation{grid-template-columns:repeat(3,1fr)}.listing-recommendation-hero{grid-column:span 3}.listing-compare-toggle{grid-template-columns:42px minmax(190px,1.3fr) repeat(3,minmax(90px,.6fr)) 68px}}
@media(max-width:1050px){.listing-recommendation{grid-template-columns:repeat(2,1fr)}.listing-recommendation-hero{grid-column:span 2}.listing-compare-toggle{grid-template-columns:42px minmax(190px,1fr) repeat(2,minmax(90px,.5fr)) 65px}.listing-compare-toggle>span:nth-of-type(3){display:none}}
@media(max-width:900px){.listing-detail-layout{grid-template-columns:1fr}.listing-advanced-grid{grid-template-columns:repeat(2,1fr)}.listing-sku-card-head{grid-template-columns:54px 1fr}.listing-sku-fields{grid-template-columns:1fr 1fr}.listing-remove-sku{grid-column:2}.listing-component-detail{grid-template-columns:1fr}.listing-compare-toggle{grid-template-columns:38px minmax(150px,1fr) repeat(2,minmax(80px,.5fr))}.listing-compare-toggle>span:nth-of-type(2),.listing-compare-toggle i{display:none}}
@media(max-width:760px){.listing-intro,.listing-submit,.catalog-admin-panel{align-items:flex-start;flex-direction:column}.listing-advanced-grid,.listing-kpis,.listing-formulas,.listing-recommendation,.listing-shared-fields,.listing-sku-fields{grid-template-columns:1fr}.listing-recommendation-hero{grid-column:auto}.listing-sku-card-head{grid-template-columns:1fr}.listing-sku-number{justify-self:start}.listing-remove-sku{grid-column:auto}.listing-component-row{grid-template-columns:1fr 90px 38px}.listing-component-row label:first-child{grid-column:1/4}.listing-compare-toggle{grid-template-columns:34px 1fr 1fr}.listing-compare-toggle>span:nth-of-type(4){display:none}.listing-submit button{width:100%}.step-banner{align-items:flex-start;flex-wrap:wrap}.context-row,.overview-context-actions{align-items:flex-start;flex-direction:column}.overview-basis-switch{width:100%}.overview-basis-switch button{flex:1}.basis-explanation{align-items:flex-start;flex-direction:column}}

/* After-sales review dashboard. */
.after-sales-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:22px 24px;border:1px solid #b9def5;border-radius:18px;background:linear-gradient(105deg,#edf8ff,#fffaf3);box-shadow:0 8px 24px rgba(38,112,164,.06)}
.after-sales-intro h2{margin:5px 0 0;font-size:22px}.after-sales-intro p:last-child{margin:8px 0 0;color:var(--muted);font-size:11px}.after-sales-intro>.pill{flex:0 0 auto;background:#dff2ff;color:#217bb7}
.after-sales-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px;margin-bottom:16px}.after-sales-kpi{display:flex;flex-direction:column;min-height:124px;padding:18px;border:1px solid var(--line);border-radius:17px;background:#fff;box-shadow:0 5px 20px rgba(32,62,58,.04)}.after-sales-kpi span{color:var(--muted);font-size:10px;font-weight:800}.after-sales-kpi strong{margin:15px 0 8px;font-size:25px}.after-sales-kpi small{color:var(--muted);font-size:9px}.after-sales-kpi.hero{border:0;background:linear-gradient(145deg,#49a9e9,#267fbe);color:#fff}.after-sales-kpi.hero span,.after-sales-kpi.hero small{color:#e7f6ff}.after-sales-kpi.positive strong{color:#08785a}.after-sales-kpi.danger strong{color:#d04b46}
.after-sales-chart-grid{display:grid;grid-template-columns:minmax(360px,.85fr) minmax(480px,1.15fr);gap:16px;margin-bottom:16px}.after-sales-chart-grid.small{grid-template-columns:1fr 1fr}.after-sales-chart-panel{min-height:340px}.after-sales-chart-grid.small .after-sales-chart-panel{min-height:260px}
.after-sales-donut-layout{display:grid;grid-template-columns:190px minmax(0,1fr);align-items:center;gap:26px;min-height:250px}.after-sales-donut{position:relative;width:174px;height:174px;margin:auto;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(40,111,159,.08);transition:background .35s ease}.after-sales-donut::after{content:"";position:absolute;inset:35px;border-radius:50%;background:#fff;box-shadow:0 2px 12px rgba(26,75,108,.09)}.after-sales-donut span,.after-sales-donut small{position:absolute;z-index:1;left:50%;transform:translateX(-50%);white-space:nowrap}.after-sales-donut span{top:64px;font-size:26px;font-weight:900}.after-sales-donut small{top:99px;color:var(--muted);font-size:10px}.after-sales-legend{display:grid;gap:8px}.after-sales-legend>div{display:grid;grid-template-columns:11px minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid #edf2f5}.after-sales-legend i{width:9px;height:9px;border-radius:50%}.after-sales-legend span{overflow:hidden;color:#48677c;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.after-sales-legend b{font-size:10px}
.after-sales-bars{display:grid;gap:11px;margin-top:10px}.after-sales-bars.compact{gap:10px}.after-sales-bar-row{display:grid;gap:6px}.after-sales-bar-label{display:flex;align-items:center;justify-content:space-between;gap:15px}.after-sales-bar-label strong{overflow:hidden;max-width:76%;font-size:10px;text-overflow:ellipsis;white-space:nowrap}.after-sales-bar-label span{color:var(--muted);font-size:9px;white-space:nowrap}.after-sales-bar-track{height:9px;overflow:hidden;border-radius:999px;background:#eaf1f5}.after-sales-bar-track i{display:block;width:0;height:100%;border-radius:999px;background:var(--bar-color);animation:after-sales-bar-grow .65s cubic-bezier(.22,.75,.24,1) forwards}.after-sales-no-data{padding:70px 0;text-align:center;color:var(--muted);font-size:11px}@keyframes after-sales-bar-grow{to{width:var(--bar-width)}}
.after-sales-table-panel{margin-bottom:18px}.after-sales-table{width:100%;min-width:980px;border-collapse:collapse}.after-sales-table th,.after-sales-table td{padding:13px 12px;border-bottom:1px solid #e6eef4;text-align:right;font-size:10px}.after-sales-table th{background:#f1f8fd;color:#294f68;font-weight:900}.after-sales-table th:first-child,.after-sales-table td:first-child{text-align:left}.after-sales-table td:first-child{max-width:330px;overflow:hidden;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.after-sales-table tbody tr:hover{background:#f7fbfe}.after-sales-table .amount-positive{color:#08785a;font-weight:850}.after-sales-table .amount-negative{color:#d04b46;font-weight:850}
@media(max-width:1350px){.after-sales-kpis{grid-template-columns:repeat(3,1fr)}.after-sales-chart-grid{grid-template-columns:1fr}}
@media(max-width:760px){.after-sales-intro{align-items:flex-start;flex-direction:column}.after-sales-kpis{grid-template-columns:1fr 1fr}.after-sales-chart-grid,.after-sales-chart-grid.small{grid-template-columns:1fr}.after-sales-donut-layout{grid-template-columns:1fr}.after-sales-chart-panel{min-height:auto}.after-sales-kpi.hero{grid-column:1/3}}
@media(prefers-reduced-motion:reduce){.after-sales-bar-track i{width:var(--bar-width);animation:none}.after-sales-donut{transition:none}}

/* Organization-wide channel overview. */
.channel-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;margin-bottom:16px;padding:22px 24px;border:1px solid #acd9f4;border-radius:19px;background:linear-gradient(110deg,#edf8ff 0,#f8fcff 56%,#fff8ee 100%);box-shadow:0 8px 25px rgba(37,113,166,.06)}
.channel-hero h2{margin:5px 0 0;font-size:23px}.channel-hero p:last-child{margin:8px 0 0;color:var(--muted);font-size:11px}.channel-control-stack{display:flex;align-items:flex-end;flex-direction:column;gap:10px}.channel-mode-switch{display:flex;overflow:hidden;border:1px solid #b9dced;border-radius:10px;background:#fff;box-shadow:0 3px 10px rgba(47,121,166,.06)}.channel-mode-switch button{min-height:35px;padding:0 13px;border:0;border-left:1px solid #dfedf5;background:#fff;color:#52768c;font-size:9px;font-weight:850;cursor:pointer}.channel-mode-switch button:first-child{border-left:0}.channel-mode-switch button:hover{background:#edf8ff}.channel-mode-switch button.active{background:#3499dc;color:#fff}.channel-range{display:flex;align-items:end;gap:8px;flex:0 0 auto}.channel-range label span{display:block;margin-bottom:5px;color:#5d7c91;font-size:9px;font-weight:800}.channel-range input{width:135px;padding:10px 11px;border:1px solid #c9dfed;border-radius:10px;background:#fff}.channel-range>b{padding-bottom:11px;color:#7290a3;font-size:10px}.channel-presets{display:flex;align-self:end;overflow:hidden;margin-right:6px;border:1px solid #c9dfed;border-radius:10px;background:#fff}.channel-presets button{height:39px;padding:0 11px;border:0;border-left:1px solid #e0edf5;background:#fff;color:#5c788b;font-size:10px;cursor:pointer}.channel-presets button:first-child{border-left:0}.channel-presets button:hover,.channel-presets button.active{background:#3499dc;color:#fff}
.channel-loading{display:flex;align-items:center;justify-content:center;gap:11px;min-height:260px;color:#55758a}.channel-loading span{width:22px;height:22px;border:3px solid #d8edf9;border-top-color:#3499dc;border-radius:50%;animation:channel-spin .8s linear infinite}@keyframes channel-spin{to{transform:rotate(360deg)}}.channel-context{display:flex;align-items:center;justify-content:space-between;margin:2px 0 12px}
.channel-kpis{display:grid;grid-template-columns:1.15fr repeat(4,1fr);gap:13px;margin-bottom:16px}.channel-kpi{display:flex;flex-direction:column;min-height:126px;padding:19px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:0 5px 20px rgba(32,73,104,.045)}.channel-kpi span{color:var(--muted);font-size:10px;font-weight:850}.channel-kpi strong{margin:16px 0 9px;font-size:25px}.channel-kpi small{color:var(--muted);font-size:9px}.channel-kpi.hero{border:0;background:linear-gradient(145deg,#48aceb,#267fbe);color:#fff;box-shadow:0 11px 24px rgba(50,145,208,.2)}.channel-kpi.hero span,.channel-kpi.hero small{color:#e9f7ff}.channel-kpi.subsidy{background:linear-gradient(145deg,#faf9ff,#fff);border-color:#dcd8fa}
.channel-visual-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:16px;margin-bottom:16px}.channel-health-panel,.channel-cost-panel{min-height:315px}.channel-health-layout,.channel-cost-layout{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:24px;min-height:220px}.channel-ring,.channel-cost-ring{position:relative;width:172px;height:172px;margin:auto;border-radius:50%;transition:background .5s ease}.channel-ring::after,.channel-cost-ring::after{content:"";position:absolute;inset:28px;border-radius:50%;background:#fff;box-shadow:0 3px 14px rgba(32,84,119,.1)}.channel-ring>div,.channel-cost-ring>div{position:absolute;z-index:1;inset:0;display:grid;place-content:center;text-align:center}.channel-ring strong,.channel-cost-ring strong{font-size:24px}.channel-ring small,.channel-cost-ring small{margin-top:4px;color:var(--muted);font-size:9px}.channel-health-copy strong{font-size:17px}.channel-health-copy p{margin:10px 0 0;color:var(--muted);font-size:10px;line-height:1.6}.channel-cost-legend{display:grid;gap:9px}.channel-cost-legend>div{display:grid;grid-template-columns:11px minmax(0,1fr) auto;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid #edf2f5}.channel-cost-legend i{width:9px;height:9px;border-radius:50%}.channel-cost-legend span,.channel-cost-legend small{display:block}.channel-cost-legend span{font-size:10px}.channel-cost-legend small{margin-top:4px;color:var(--muted);font-size:8px}.channel-cost-legend b{font-size:11px}
.channel-trend-panel{margin-bottom:16px}.channel-trend-wrap{position:relative;min-height:280px}.channel-trend-wrap canvas{display:block;width:100%;height:280px}.channel-trend-wrap .chart-tooltip{display:grid;gap:6px;min-width:195px}.channel-trend-wrap .chart-tooltip span{display:flex;justify-content:space-between;gap:18px;font-size:10px}.channel-trend-wrap .chart-tooltip b{font-size:10px}
.channel-shop-panel{margin-bottom:20px}.channel-shop-list{display:grid;gap:8px}.channel-shop-row{display:grid;grid-template-columns:34px minmax(190px,1.15fr) minmax(120px,1fr) repeat(3,minmax(92px,.58fr)) 80px;align-items:center;gap:12px;padding:13px 14px;border:1px solid #dfebf3;border-left:4px solid #39a17c;border-radius:13px;background:#fff;transition:transform .18s ease,box-shadow .18s ease}.channel-shop-row:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(35,89,126,.08)}.channel-shop-row.loss{border-left-color:#d0524c;background:#fffafa}.channel-shop-row.empty{border-left-color:#9cb0be;opacity:.72}.channel-shop-rank{display:grid;place-items:center;width:28px;height:28px;border-radius:9px;background:#e2f3ff;color:#247fba;font-size:10px;font-weight:900}.channel-shop-name strong,.channel-shop-name small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.channel-shop-name strong{font-size:11px}.channel-shop-name small{margin-top:5px;color:var(--muted);font-size:8px}.channel-shop-bar{height:8px;overflow:hidden;border-radius:999px;background:#eaf1f5}.channel-shop-bar span{display:block;width:0;height:100%;border-radius:999px;background:linear-gradient(90deg,#75c6f2,#318fcd);animation:channel-shop-grow .65s ease forwards}@keyframes channel-shop-grow{to{width:var(--shop-width)}}.channel-shop-metric span,.channel-shop-metric b{display:block;text-align:right}.channel-shop-metric span{color:var(--muted);font-size:8px}.channel-shop-metric b{margin-top:5px;font-size:10px}.channel-shop-open{padding:8px 9px;border:1px solid #b9dbef;border-radius:9px;background:#eff8fe;color:#2584c0;font-size:9px;font-weight:850;cursor:pointer}.channel-shop-open:hover{background:#3499dc;color:#fff}
@media(max-width:1400px){.channel-hero{align-items:flex-start;flex-direction:column}.channel-control-stack{align-items:flex-start;width:100%}.channel-range{width:100%;flex-wrap:wrap}.channel-kpis{grid-template-columns:repeat(3,1fr)}.channel-kpi.hero{grid-column:span 2}.channel-shop-row{grid-template-columns:34px minmax(170px,1fr) minmax(110px,.8fr) repeat(2,minmax(88px,.5fr)) 76px}.channel-shop-metric:nth-of-type(3){display:none}}
@media(max-width:1000px){.channel-visual-grid{grid-template-columns:1fr}.channel-shop-row{grid-template-columns:34px minmax(170px,1fr) minmax(100px,.8fr) minmax(85px,.5fr) 76px}.channel-shop-metric:nth-of-type(4),.channel-shop-metric:nth-of-type(5){display:none}}
@media(max-width:760px){.channel-kpis{grid-template-columns:1fr 1fr}.channel-kpi.hero{grid-column:1/3}.channel-mode-switch{width:100%}.channel-mode-switch button{flex:1;padding:0 6px}.channel-range{align-items:end}.channel-presets{width:100%;margin:0}.channel-presets button{flex:1}.channel-range label{flex:1}.channel-range input{width:100%}.channel-health-layout,.channel-cost-layout{grid-template-columns:1fr}.channel-shop-row{grid-template-columns:30px minmax(130px,1fr) 72px}.channel-shop-bar,.channel-shop-metric{display:none}.channel-health-panel,.channel-cost-panel{min-height:auto}}
@media(prefers-reduced-motion:reduce){.channel-loading span{animation:none}.channel-shop-bar span{width:var(--shop-width);animation:none}.channel-ring,.channel-cost-ring{transition:none}}

/* Import tutorials. */
.upload-card{padding-top:48px}.upload-card-picker{display:flex;align-items:center;flex:1;width:100%;min-height:140px;flex-direction:column;justify-content:center;text-align:center;cursor:pointer}.upload-tutorial-button{position:absolute;top:13px;right:13px;z-index:2;padding:6px 9px;border:1px solid #b8ddf4;border-radius:999px;background:#eef8ff;color:#237fbe;font-size:9px;font-weight:900;line-height:1;cursor:pointer;transition:.18s}.upload-tutorial-button:hover,.upload-tutorial-button:focus-visible{border-color:#3898dc;background:#dff2ff;outline:none;box-shadow:0 0 0 3px rgba(56,152,220,.1)}.activity-upload-card{padding-top:48px}
.auto-export-range{display:grid;grid-template-columns:minmax(280px,1fr) 180px 180px;gap:12px;align-items:end;margin:-2px 0 16px;padding:14px 18px;border:1px solid #b9dcf2;border-radius:15px;background:linear-gradient(110deg,#f2f9fe,#fff)}.auto-export-range p{margin:0 0 3px}.auto-export-range strong,.auto-export-range small{display:block}.auto-export-range small{margin-top:4px;color:#698293;font-size:10px}.auto-export-range label span{margin-bottom:5px}.auto-export-range input{display:block;width:100%;padding:9px 10px;border:1px solid #c9dfed;border-radius:9px;background:#fff;color:#214c69}.pdd-orders-card{padding-bottom:12px}.pdd-orders-card .upload-card-picker{min-height:112px}.pdd-auto-export{position:relative;z-index:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%;padding-top:10px;border-top:1px solid #d4e8f5}.pdd-auto-export.single-action .button{grid-column:1/-1}.pdd-auto-export .button{align-self:end;min-height:31px;padding:7px 9px}.pdd-auto-export small{grid-column:1/-1;margin:0;color:#6d8798;font-size:8px;line-height:1.45}.pdd-auto-export small.error{color:#c4463f}.pdd-auto-export small.ready{color:#16765e;font-weight:800}.jst-auto-actions small+small{margin-top:-3px}
.tutorial-dialog{width:min(1180px,calc(100vw - 54px));max-width:none;height:min(850px,calc(100vh - 44px));padding:0;border:0;border-radius:22px;background:#f4f9fd;color:var(--ink);box-shadow:0 24px 70px rgba(18,61,91,.3)}.tutorial-dialog::backdrop{background:rgba(15,48,70,.56);backdrop-filter:blur(4px)}.tutorial-shell{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;height:100%}.tutorial-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:23px 26px 18px;border-bottom:1px solid #d8e8f3;background:#fff}.tutorial-head h2{margin:5px 0 0;font-size:23px}.tutorial-head p:last-child{margin:7px 0 0;color:var(--muted);font-size:11px}.tutorial-close{position:static;flex:0 0 auto;width:36px;height:36px;border:0;border-radius:11px;background:#edf5fa;color:#51748a;font-size:23px;cursor:pointer}.tutorial-tabs{display:flex;gap:8px;overflow-x:auto;padding:12px 26px;border-bottom:1px solid #d9e8f2;background:#fbfdff}.tutorial-tabs button{flex:0 0 auto;padding:8px 13px;border:1px solid #c7dfef;border-radius:10px;background:#fff;color:#557589;font-size:10px;font-weight:850;cursor:pointer}.tutorial-tabs button.active{border-color:#3499dc;background:#3499dc;color:#fff}.tutorial-body{overflow:auto;padding:22px 26px 30px}.tutorial-summary{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:14px;margin-bottom:18px}.tutorial-note,.tutorial-fields{padding:16px 18px;border:1px solid #d3e7f4;border-radius:14px;background:#fff}.tutorial-note h3,.tutorial-fields h3{margin:0 0 8px;font-size:13px}.tutorial-note p,.tutorial-fields p{margin:0;color:#5d788a;font-size:10px;line-height:1.75}.tutorial-fields ul{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.tutorial-fields li{padding:5px 8px;border-radius:7px;background:#edf7fd;color:#2d719e;font-size:9px;font-weight:750}.tutorial-warning{margin-top:10px;padding:9px 11px;border-left:3px solid #f39a31;border-radius:7px;background:#fff7e9;color:#8a5e19;font-size:9px;line-height:1.65}.tutorial-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.tutorial-step{overflow:hidden;border:1px solid #d7e7f1;border-radius:15px;background:#fff;box-shadow:0 5px 18px rgba(38,91,128,.05)}.tutorial-step.wide{grid-column:1/-1}.tutorial-step-copy{display:flex;align-items:flex-start;gap:11px;padding:14px 15px}.tutorial-step-copy>span{display:grid;flex:0 0 auto;place-items:center;width:26px;height:26px;border-radius:9px;background:#3499dc;color:#fff;font-size:10px;font-weight:900}.tutorial-step-copy h3{margin:1px 0 5px;font-size:12px}.tutorial-step-copy p{margin:0;color:var(--muted);font-size:9px;line-height:1.65}.tutorial-image{display:block;padding:0 12px 12px}.tutorial-image img{display:block;width:100%;max-height:510px;object-fit:contain;object-position:top center;border:1px solid #e1ebf2;border-radius:9px;background:#f7fafc}.tutorial-step.portrait .tutorial-image img{height:430px}.tutorial-template-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px;padding:18px 20px;border:1px solid #b9ddf4;border-radius:15px;background:linear-gradient(110deg,#eaf7ff,#fffaf2)}.tutorial-template-card h3{margin:0 0 6px;font-size:14px}.tutorial-template-card p{margin:0;color:var(--muted);font-size:10px}.tutorial-template-card a{flex:0 0 auto;text-decoration:none}.tutorial-rule-list{display:grid;gap:9px;margin:0;padding:0;list-style:none}.tutorial-rule-list li{padding:12px 14px;border:1px solid #d9e8f2;border-radius:11px;background:#fff;color:#496b80;font-size:10px;line-height:1.65}.tutorial-rule-list b{color:#173e61}.tutorial-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 26px;border-top:1px solid #d8e8f3;background:#fff}.tutorial-foot span{color:var(--muted);font-size:9px}.tutorial-foot .button{flex:0 0 auto}
@media(max-width:820px){.tutorial-dialog{width:calc(100vw - 20px);height:calc(100vh - 20px)}.tutorial-summary,.tutorial-steps{grid-template-columns:1fr}.tutorial-step.wide{grid-column:auto}.tutorial-step.portrait .tutorial-image img{height:auto;max-height:560px}.tutorial-template-card,.tutorial-foot{align-items:flex-start;flex-direction:column}.tutorial-head,.tutorial-tabs,.tutorial-body,.tutorial-foot{padding-left:16px;padding-right:16px}.pdd-auto-export{grid-template-columns:1fr 1fr}.pdd-auto-export .button{grid-column:1/-1}}

/* Account and shop administration additions. */
.access-shop-row{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:15px;align-items:center;padding:12px 0;border-top:1px solid #e6eef4}.access-shop-row:first-child{border-top:0}.access-shop-row strong,.access-shop-row small{display:block}.access-shop-row small{margin-top:4px;color:var(--muted);font-size:10px}
.toast[popover]{inset:auto 24px 24px auto;margin:0;border:0}.toast[popover]::backdrop{background:transparent;pointer-events:none}
@media(max-width:760px){.access-shop-row{grid-template-columns:1fr}.access-shop-row .access-user-actions{justify-content:flex-start}}

/* Public-site compliance footer. */
.auth-screen{position:relative;padding-bottom:72px}.auth-compliance{position:absolute;right:20px;bottom:20px;left:20px;margin:0;text-align:center}.auth-compliance a,.site-compliance a{color:#668397;font-size:11px;text-decoration:none}.auth-compliance a:hover,.auth-compliance a:focus-visible,.site-compliance a:hover,.site-compliance a:focus-visible{color:#247fbe;text-decoration:underline}.site-compliance{margin:32px 0 -24px;padding:18px 0 0;border-top:1px solid #d8e7f1;text-align:center}
@media(max-width:760px){.site-compliance{margin-bottom:56px}.auth-compliance{bottom:16px}}
.ai-report-dialog{width:min(960px,calc(100vw - 24px));max-height:calc(100vh - 32px)}
.ai-report-body{padding:20px 24px;max-height:calc(100vh - 150px);overflow:auto}
.ai-report-body textarea{width:100%;box-sizing:border-box;padding:10px;border:1px solid var(--line);border-radius:9px;font:inherit;resize:vertical}
.ai-report-downloads{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}
.ai-report-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:12px/1.8 monospace;background:#f4f9fd;border-radius:12px;padding:14px;max-height:420px;overflow:auto}
.dashboard-kpis{grid-template-columns:repeat(6,minmax(0,1fr))}
.dashboard-kpis .kpi{min-width:0}.dashboard-kpis strong{overflow-wrap:anywhere}
@media(max-width:1499px) and (min-width:1101px){.dashboard-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* AI_DAILY_SCOPED_APPEND */
.ai-report-dialog [hidden]{display:none!important}
.ai-daily-facts{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}
.ai-daily-facts th,.ai-daily-facts td{padding:8px 6px;border-bottom:1px solid var(--border,#dde2ea);text-align:right}
.ai-daily-facts th:first-child,.ai-daily-facts td:first-child{text-align:left}
.ai-daily-version{overflow-wrap:anywhere}
.ai-daily-section article{padding:12px 0;border-bottom:1px solid var(--border,#dde2ea)}
.ai-daily-section p{white-space:pre-wrap;overflow-wrap:anywhere}
#aiDailyControls{display:grid;gap:12px;padding:16px 0}
#aiDailyControls label{display:grid;gap:8px}
#aiDailyControls textarea{width:100%;resize:vertical}
#aiHistoryList{display:grid;gap:8px}
#aiHistoryList button{white-space:normal;text-align:left;overflow-wrap:anywhere}
.ai-daily-history{margin-top:24px;border-top:1px solid var(--border,#dde2ea);padding-top:16px}

/* SOURCE: ui-refinement.css */
/* Visual-only layer. Keep structural/responsive rules and all JS hooks in styles.css. */
:root {
  --ink: #213547;
  --muted: #607286;
  --line: #dfe6ee;
  --canvas: #f6f8fb;
  --paper: #ffffff;
  --teal: #247fbe;
  --teal-dark: #1d689e;
  --mint: #edf5fc;
  --green: #197052;
  --red: #bc4141;
  --shadow: 0 4px 18px rgba(28, 49, 74, .05);
  --ui-radius: 12px;
}
body { font-size: 14px; line-height: 1.5; }
button, input, select, textarea { font-family: inherit; }
button, input, select, textarea, .kpi strong, .result-table,
.after-sales-kpi strong, .channel-kpi strong, .freight-total strong,
.cost-label, .legend-item strong { font-variant-numeric: tabular-nums; }

/* Retain the existing brand/logo and navigation model. */
.sidebar { background: #17344f; }
.brand-mark { box-shadow: none; border-radius: 10px; }
.brand strong { font-size: 18px; }
.brand span, .sidebar-foot strong, .sidebar-foot span { font-size: 12px; }
.nav-item { border-radius: 9px; font-weight: 600; }
.nav-item:hover { background: #234763; }
.nav-item.active { background: #286a9a; box-shadow: inset 3px 0 #94d0f5; }
.shop-switcher { border-color: #38516a; background: #203f59; border-radius: 10px; }
.shop-switcher small { color: #bfcede; font-size: 12px; }
.topbar { gap: 20px; border-bottom: 1px solid var(--line); margin-bottom: 20px; }
.topbar h1 { font-size: 25px; font-weight: 750; letter-spacing: -.5px; }
.top-actions { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.top-actions .button, .top-actions select { font-size: 13px; }
.eyebrow { font-size: 12px; letter-spacing: .7px; }

/* A restrained shared surface hierarchy, without replacing component layouts. */
.panel, .notice, .kpi, .after-sales-kpi, .channel-kpi,
.rule-panel, .catalog-admin-panel, .listing-sku-card {
  border-color: var(--line); border-radius: var(--ui-radius); box-shadow: var(--shadow);
}
.panel h2 { font-size: 18px; font-weight: 700; }
.kpi { padding: 18px; min-height: 132px; }
.kpi strong { font-size: 27px; letter-spacing: -.5px; font-weight: 750; }
.kpi span, .kpi small, .after-sales-kpi span, .after-sales-kpi small,
.channel-kpi span, .channel-kpi small { font-size: 12px; }
.kpi.hero, .channel-kpi.hero, .after-sales-kpi.hero {
  background: #245b86; color: #fff; box-shadow: none;
}
.kpi.hero span, .kpi.hero small, .channel-kpi.hero span, .channel-kpi.hero small,
.after-sales-kpi.hero span, .after-sales-kpi.hero small { color: #e0edf7; }
.kpi.hero strong, .channel-kpi.hero strong, .after-sales-kpi.hero strong { color: #fff; }
.date-range-bar, .freight-summary-panel, .after-sales-intro,
.channel-hero, .auto-export-range, .tutorial-template-card {
  background: #fff; border-color: var(--line); border-radius: var(--ui-radius); box-shadow: var(--shadow);
}
.step-banner { background: #edf5fc; border-color: #d5e5f3; border-radius: var(--ui-radius); }
.rules-intro, .anomaly-summary, .listing-intro {
  background: #234a6b; border-radius: var(--ui-radius); box-shadow: none;
}
.range-icon { box-shadow: none; background: var(--mint); color: var(--teal); border-radius: 9px; }
.helper, .trend-copy, .date-range-bar small, .range-inputs label span,
.legend-item span, .legend-item strong, .freight-metric-head small, .freight-metric em,
.basis-explanation, .freight-total span, label span { font-size: 12px; }
.cost-label { font-size: 13px; }
.reconcile-bar { height: 12px; }
.cost-track, .reconcile-bar { background: #edf1f6; }
.trend-legend button { background: #f0f4f8; font-size: 12px; color: #4c6275; }
.trend-legend button:hover { background: #e5edf5; }
.pill { font-size: 11px; }

/* Inputs remain native; preserve file-input hiding and disabled states. */
.button { border-radius: 9px; font-size: 13px; transition: background-color .15s, border-color .15s, box-shadow .15s; }
.button:hover { transform: none; }
.button.primary { box-shadow: 0 2px 5px rgba(32, 93, 141, .12); }
.button.ghost { background: #fff; border-color: #d6e0eb; }
.button.ghost:hover { background: #f1f6fb; }
.filters input, .filters select, .top-actions select, input, select, textarea {
  border-radius: 8px; font-size: 13px;
}
input:focus, select:focus, textarea:focus {
  border-color: #72add5; box-shadow: 0 0 0 3px rgba(36, 127, 190, .12);
}
button:focus-visible, a:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid #247fbe; outline-offset: 3px;
}
.upload-card { border-radius: var(--ui-radius); border-color: #bacbd9; box-shadow: none; }
.upload-card:hover { transform: none; background: #f8fbfe; }
.upload-card.ready { border-color: #609d88; background: #f3faf7; }
.upload-card small, .upload-card em, .pdd-auto-export small, .auto-export-range small,
.upload-tutorial-button, .upload-template-link { font-size: 12px; }
.upload-icon { box-shadow: none; border-radius: 10px; }
.upload-tutorial-button { border-radius: 7px; }

/* Do not change the 17-column grid, resizing, frozen headers or event gestures. */
.table-panel .result-table th, .result-frozen-header .frozen-result-table th {
  background: #f1f5f9; color: #34495d; font-size: 12px; font-weight: 700; letter-spacing: 0;
}
.result-table td { font-size: 12px; }
.result-table .product-cell strong { font-size: 12px; font-weight: 650; }
.result-table .product-cell span, .result-table .product-id-cell,
.result-table .summary-row td span, .detail-summary span,
.detail-chip span, .detail-chip strong, .detail-chip small { font-size: 12px; }
.detail-chip, .detail-chip-head { line-height: 1.5; }
.detail-values b, .detail-values span, .activity-pill, .jst-detection i,
.after-sales-legend span, .after-sales-legend b, .after-sales-bar-label span,
.after-sales-bar-label strong, .version-card span, .version-card small { font-size: 11px; }
.detail-values b, .after-sales-bar-label span, .channel-shop-metric,
.freight-metric-head b, .listing-summary, .listing-result { font-variant-numeric: tabular-nums; }
.detail-chip { border-radius: 9px; box-shadow: none; }
.profit-row td {
  /* Keep the margin-sensitive tint visible instead of diluting it with white. */
  background-image: none;
}
.profit-row:hover td { filter: none; background-image: none; }
.profit-row .amount-positive { color: #075a40; }
.profit-row .amount-negative { color: #a02724; }
.result-table .summary-body { background: #edf3f9; }
.row-toggle { border: 1px solid #ceddeb; background: #f0f6fc; color: #24699c; border-radius: 7px; }
.row-toggle:hover { background: #e1effb; }
.break-even-roi span { background: #fff4d3; color: #805c12; font-weight: 700; }

/* Keep all dialog sizing, scrolling, native modal and toast behavior. */
dialog { border-radius: 14px; box-shadow: 0 20px 65px rgba(19, 40, 65, .2); }
dialog::backdrop { background: rgba(19, 35, 54, .42); }
.history-dialog-head, .tutorial-head { border-color: var(--line); }
.dialog-close { border-radius: 8px; }
.ai-report-body, .tutorial-body { background: #fafbfd; }
.ai-report-preview { background: #f0f4f9; border: 1px solid #e0e7ef; border-radius: 10px; }
.tutorial-note p, .tutorial-fields p, .tutorial-warning, .tutorial-step-copy p,
.tutorial-rule-list li, .tutorial-foot span, .tutorial-tabs button { font-size: 12px; }
.tutorial-fields li { font-size: 11px; }
.auth-card { border-radius: 16px; box-shadow: 0 16px 55px rgba(28, 59, 88, .1); }
.auth-copy, .auth-form label span, .auth-error, .access-shop-row small { font-size: 12px; }
.toast { background: #233e56; box-shadow: var(--shadow); }
.toast.error { background: #a73535; }
.site-compliance a, .auth-compliance a { color: var(--muted); font-size: 12px; }

/* Preserve existing breakpoints; only accommodate the larger, readable type. */
@media (min-width: 1101px) {
  .nav-item { font-size: 14px; }
  .topbar { height: auto; min-height: 100px; padding: 16px 0; }
}
@media (max-width: 1499px) and (min-width: 761px) {
  .date-range-bar { flex-wrap: wrap; }
  .range-inputs { flex-wrap: wrap; }
}
@media (max-width: 760px) {
  .overview-context-actions { width: 100%; }
  .overview-basis-switch button { white-space: nowrap; }
  .topbar h1 { font-size: 22px; }
  .topbar { gap: 12px; }
  .top-actions { gap: 6px; }
  .top-actions .button { font-size: 12px; padding: 9px 10px; }
  .nav-item, .nav-item:not(.active) { font-size: 11px; }
  .kpi { padding: 14px; }
  .kpi strong { font-size: 23px; }
  .kpi small { font-size: 11px; }
  .legend { grid-template-columns: 1fr; gap: 12px; }
  .ai-report-body { padding: 16px; }
}
/* On-demand help keeps business screens compact without removing explanations. */
.ui-help { margin: 8px 0; min-width: 0; }
.ui-help > summary { cursor: pointer; color: #356b91; font-size: 13px; line-height: 1.6; }
.ui-help > summary:focus-visible { outline: 2px solid #2689bb; outline-offset: 3px; border-radius: 3px; }
.ui-help > p { margin: 8px 0 0; overflow-wrap: anywhere; }
.step-banner .ui-help { margin-bottom: 0; }
.pdd-auto-export > small:empty { display: none; }
.listing-form-panel > .panel-head { flex-wrap: wrap; }
.listing-form-panel > .panel-head > .pill { flex: 0 0 auto; white-space: nowrap; }
/* Calculation evidence stays inside the current console palette. */
.trace-panel { grid-column: 1 / -1; min-width: 0; }
.trace-tools { display:flex; gap:10px; flex-wrap:wrap; margin:12px 0; }
.trace-tools input { flex:1; min-width:180px; }
.trace-table-wrap { overflow:auto; max-width:100%; }
.trace-table-wrap table { width:100%; min-width:760px; font-size:13px; }
.trace-table-wrap td { vertical-align:top; white-space:normal; overflow-wrap:anywhere; padding:12px; }
.trace-table-wrap details[open] { min-width:320px; max-width:580px; }
.trace-facts { display:grid; grid-template-columns:minmax(90px,1fr) minmax(120px,3fr); gap:6px 12px; font-size:12px; }
.trace-facts dt { opacity:.75; }
.trace-facts dd { margin:0; overflow-wrap:anywhere; }
.trace-panel summary { cursor:pointer; padding:8px 0; }
.anomaly-item .where button { display:block; margin-top:8px; }
.result-table .activity-tags{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;max-width:100%;padding:4px 0}
.result-table .activity-tags .activity-pill{display:inline-flex;flex-wrap:wrap;gap:2px 4px;max-width:100%;white-space:normal;overflow-wrap:anywhere;padding:3px 5px}
.result-table .activity-tags .activity-id{font-size:8px;font-weight:400;opacity:.8;white-space:nowrap}

/* SOURCE: mobile-navigation.css */
/* Reuse the permission-filtered desktop sidebar; mobile only, no duplicated controls. */
.mobile-menu-toggle, .mobile-nav-heading, .mobile-nav-backdrop { display: none; }

@media (max-width: 760px) {
  .topbar {
    align-items: center; gap: 10px; background: var(--canvas);
  }
  .topbar > div:first-child { min-width: 0; flex: 1; }
  .topbar h1 { font-size: 22px; }
  .top-actions { flex: 0 1 auto; }
  .mobile-menu-toggle {
    display: grid; place-items: center; flex: 0 0 44px;
    width: 44px; height: 44px; padding: 0;
    border: 1px solid var(--line); border-radius: 9px;
    background: #fff; color: var(--ink); cursor: pointer;
  }
  .mobile-menu-toggle span { font-size: 24px; line-height: 1; }
  .mobile-nav-backdrop:not([hidden]) {
    display: block; position: fixed; inset: 0; z-index: 100;
    background: rgba(17, 35, 53, .48); touch-action: none;
  }
  .sidebar {
    display: none; position: fixed; top: 0; right: auto; bottom: 0;
    left: max(32px, calc(100vw - 360px));
    z-index: 101; width: min(360px, calc(100vw - 32px));
    height: 100vh; height: 100dvh; box-sizing: border-box;
    padding: max(18px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));
    background: #17344f; overflow-y: auto; overscroll-behavior: contain;
    box-shadow: -12px 0 40px rgba(17, 35, 53, .18);
  }
  body.mobile-nav-open .sidebar { display: flex; flex-direction: column; }
  body.mobile-nav-open { overflow: hidden; }
  .sidebar > * { flex-shrink: 0; }
  .mobile-nav-heading {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px; margin-bottom: 18px;
  }
  .mobile-nav-heading strong { font-size: 19px; }
  .mobile-nav-heading button {
    width: 44px; height: 44px; border: 1px solid #567087; border-radius: 9px;
    background: #24445f; color: #fff; font-size: 28px; cursor: pointer;
  }
  .sidebar .brand { display: none; }
  .sidebar .shop-switcher { width: 100%; margin-bottom: 18px; }
  .sidebar .shop-switcher > span { display: block; font-size: 12px; }
  .sidebar .shop-switcher select {
    display: block; width: 100%; min-width: 0; min-height: 44px;
    font-size: 16px; color: #213547; background: #fff;
    text-overflow: ellipsis;
  }
  .sidebar .shop-switcher small { display: block; font-size: 12px; line-height: 1.5; }
  .sidebar nav { display: grid; grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .sidebar .nav-item, .sidebar .nav-item:not(.active) {
    display: flex; flex-direction: row; align-items: center; justify-content: flex-start;
    min-height: 46px; padding: 11px 12px; gap: 12px; font-size: 15px;
  }
  .sidebar .nav-item span { flex: 0 0 22px; font-size: 17px; }
  .sidebar .nav-item b { position: static; margin: 0 0 0 auto; }
  .sidebar .sidebar-foot { display: flex; margin-top: 20px; }
  .sidebar .sidebar-foot > div:last-child { display: block; min-width: 0; }
  .sidebar-foot .logout-button, .sidebar-foot .changelog-button { min-height: 44px; font-size: 13px; }
  .sidebar button:focus-visible { outline-color: #b6e1ff; }
  .view { padding-bottom: 0; }
}

/* SOURCE: dashboard-presentation.css */
.dashboard-kpis .kpi { position: relative; padding-right: 38px; }
.dashboard-freight-card{position:relative;width:min(100%,380px);box-sizing:border-box;margin-bottom:16px;padding-right:38px}
.dashboard-cost-panel,.burn-links-panel{margin-bottom:18px;min-width:0}
.dashboard-cost-panel #costRows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 32px}
.dashboard-cost-panel .cost-label{align-items:flex-start;gap:16px}.dashboard-cost-panel .cost-label span{min-width:0;overflow-wrap:anywhere}.dashboard-cost-panel .cost-label strong{flex-shrink:0;font-variant-numeric:tabular-nums}
.burn-link-tools{margin:14px 0}.burn-link-tools input{width:min(100%,400px);box-sizing:border-box}
.burn-link-row{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(60px,1fr) minmax(100px,max-content);align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}
.burn-link-identity{min-width:0}.burn-link-identity strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.6;font-size:13px}.burn-link-identity small{display:block;color:var(--muted);overflow-wrap:anywhere;margin-top:5px}
.burn-link-row>b{font-size:16px;font-variant-numeric:tabular-nums;text-align:right;overflow-wrap:anywhere;max-width:180px}
.burn-link-track{height:9px;border-radius:9px;background:var(--surface-soft);overflow:hidden}.burn-link-track span{display:block;height:100%;background:#d9a431;border-radius:9px}
.burn-links-panel .panel-head{flex-wrap:wrap}.burn-links-panel .trace-tools{align-items:center}.burn-links-panel .helper{overflow-wrap:anywhere}
.burn-links-panel .trace-tools{flex-wrap:wrap;gap:10px}.burn-page-size{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:13px;color:var(--muted)}.burn-page-size select{width:auto;min-width:76px;padding:7px 10px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--ink)}
@media(max-width:680px){.dashboard-cost-panel #costRows{grid-template-columns:minmax(0,1fr)}.burn-link-row{grid-template-columns:minmax(0,1fr) minmax(80px,max-content);gap:10px}.burn-link-track{grid-column:1/-1;grid-row:2}.burn-link-row>b{max-width:120px}.burn-link-identity small{font-size:11px}}
.metric-detail-button {
  position: absolute; right: 8px; top: 10px; width: 28px; height: 28px;
  border: 0; border-radius: 7px; background: transparent; color: inherit;
  font-size: 18px; cursor: pointer;
}
.metric-detail-button:hover, .metric-detail-button[aria-expanded="true"] { background: rgba(80,130,165,.14); }
.dashboard-detail-strip { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0 0 14px; }
.dashboard-detail-strip > span, .compact-table-note { color: var(--muted); font-size: 12px; }
.dashboard-detail-strip b { font-variant-numeric: tabular-nums; }
.dashboard-attention { border: 1px solid #efd697; background: #fff9ed; border-radius: 10px; padding: 10px 14px; margin-bottom: 14px; color: #815c16; font-size: 12px; }
.dashboard-attention[hidden] { display: none; }
.dashboard-attention p { margin: 3px 0; }
.dashboard-breakdown { margin-bottom: 18px; }
.dashboard-breakdown > summary { cursor: pointer; color: var(--teal-dark); padding: 10px 0; font-size: 13px; }
.dashboard-breakdown[open] > summary { margin-bottom: 10px; }
.dashboard-metric-popover {
  position: fixed; z-index: 90; box-sizing: border-box; margin: 0; padding: 18px;
  width: 380px; overflow-y: auto; overscroll-behavior: contain;
  border: 1px solid #d2dfe9; border-radius: 13px; background: #fff; color: var(--ink);
  box-shadow: 0 12px 40px rgba(24,48,74,.2); font-size: 13px;
}
.dashboard-metric-popover[hidden] { display: none; }
.dashboard-metric-popover header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.dashboard-metric-popover header strong { font-size: 16px; }
.dashboard-metric-popover header button { border: 1px solid var(--line); background: #f3f7fb; color: var(--ink); border-radius: 7px; padding: 6px 9px; min-height: 32px; cursor: pointer; }
.dashboard-metric-popover header button[aria-pressed="true"] { color: var(--teal-dark); background: var(--mint); }
.dashboard-metric-popover .metric-context, .dashboard-metric-popover .metric-note { color: var(--muted); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.dashboard-metric-popover dl { margin: 10px 0; }
.dashboard-metric-popover dl > div { display: flex; gap: 12px; justify-content: space-between; padding: 10px 0; border-bottom: 1px solid #edf1f5; }
.dashboard-metric-popover dt { min-width: 0; }
.dashboard-metric-popover dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; overflow-wrap: anywhere; }

/* SOURCE: report-sequence.css */
#sequencePanel { padding: 18px; margin-bottom: 16px; }
#sequencePanel .fee-import-actions { justify-content: flex-start; }
#sequencePanel p, #sequenceIssueDialog p { color: var(--muted); line-height: 1.65; overflow-wrap: anywhere; }
#sequenceSteps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px 22px; padding-left: 20px; font-size: 12px; }
#sequenceIssueDialog { width: min(540px,calc(100vw - 32px)); padding: 24px; border: 1px solid #c9dfed; border-radius: 16px; }
#sequenceIssueDialog::backdrop { background: rgb(15 35 50 / 45%); }
#view-import [data-download-info], #activityRememberedInfo { overflow-wrap: anywhere; }
@media(max-width:820px) {
  #view-import .auto-export-range { grid-template-columns: repeat(2,minmax(0,1fr)); }
  #view-import .auto-export-range>div { grid-column: 1/-1; min-width: 0; }
  #view-import .auto-export-range label, #view-import .auto-export-range input { min-width: 0; }
  #sequenceSteps { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* SOURCE: console-theme.css */
/* JhinBI console: presentation only. Brand/profit tokens and table geometry stay intact. */
:root { --console-rail: 76px; --console-sidebar: 248px; --console-ease: cubic-bezier(.4,0,.1,1); }
.console-icon { display: inline-block; width: 21px; height: 21px; flex: 0 0 auto; vertical-align: middle; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
[data-console-icon] { display: inline-grid; place-items: center; flex-shrink: 0; }
.sidebar { color: var(--ink); background: #f0f6fb; border-right: 1px solid #e0eaf2; }
.sidebar .brand { padding: 0 6px 22px; gap: 16px; }
.brand-mark { border-radius: 13px; background: var(--teal); }
.brand-copy { white-space: nowrap; }
.brand-copy strong { font-size: 19px; letter-spacing: -.5px; }
.brand-copy small { display: block; color: var(--muted); font-size: 11px; margin-top: 3px; }
/* Retain the pageEyebrow hook for legacy routing, but no decorative subtitles. */
#pageEyebrow, .listing-detail-title .eyebrow, .listing-recommendation-hero .eyebrow { display: none; }
.sidebar nav { gap: 5px; }
.sidebar .nav-item, .sidebar .nav-item:not(.active) { position: relative; flex-direction: row; justify-content: flex-start; gap: 16px; padding: 10px 16px; min-height: 56px; color: var(--muted); font-size: 14px; font-weight: 600; border-radius: 14px; transition: background-color .16s, color .16s; }
.sidebar .nav-item > [data-console-icon] { width: 20px; flex: 0 0 20px; }
.sidebar .nav-item .nav-label { display: block; width: auto; min-width: 0; flex: 1; text-align: left; font-weight: 600; white-space: nowrap; font-size: 14px; line-height: 1.4; }
.nav-label small { display: block; font-weight: 400; color: var(--muted); font-size: 11px; margin-top: 3px; }
.sidebar .nav-item:hover { color: var(--teal-dark); background: #e6f0f8; }
.sidebar .nav-item.active { color: var(--teal); background: #dbeefa; box-shadow: none; }
.sidebar .nav-item.active::before { content: ''; position: absolute; left: 0; top: 17px; bottom: 17px; width: 3px; border-radius: 4px; background: var(--teal); }
.sidebar .nav-item b { position: static; margin: 0 0 0 auto; font-size: 10px; padding: 1px 5px; min-width: 18px; text-align: center; }
.sidebar .shop-switcher { position: relative; margin: 0 0 16px; padding: 10px 12px; border-color: var(--line); background: rgba(255,255,255,.7); border-radius: 12px; }
.sidebar .shop-switcher > span, .sidebar .shop-switcher small { display: block; color: var(--muted); font-size: 11px; font-weight: 400; }
.sidebar .shop-switcher select { font-size: 12px; min-width: 0; width: 100%; border-color: var(--line); padding: 8px; }
.shop-rail-icon { display: none; }
.sidebar-pin { display: flex; align-items: center; flex: 0 0 auto; gap: 16px; margin: 14px 0 0; padding: 10px 16px; width: 100%; min-height: 40px; border: 0; border-radius: 12px; background: transparent; color: var(--muted); cursor: pointer; text-align: left; font-size: 12px; }
.sidebar-pin:hover, .sidebar-pin[aria-pressed="true"] { background: #dbeefa; color: var(--teal); }
.sidebar-pin[aria-pressed="true"] .console-icon { transform: rotate(-35deg); }
.sidebar-pin .console-icon { width: 19px; height: 19px; transition: transform .2s; }
.pin-label { white-space: nowrap; }
.topbar { border: 0; min-height: 96px; height: auto; padding: 22px 0; margin-bottom: 12px; gap: 22px; }
.topbar h1 { font-size: 23px; line-height: 1.3; letter-spacing: -.6px; margin: 3px 0 0; }
.topbar .eyebrow { font-size: 11px; font-weight: 500; color: var(--muted); letter-spacing: .5px; }
.topbar > div:first-child { flex-shrink: 0; }
.top-actions { gap: 8px; }
.top-actions { min-width: 0; flex-wrap: wrap; justify-content: flex-end; }
.top-actions select { min-width: 132px; width: clamp(132px,20vw,300px); max-width: 100%; text-overflow: ellipsis; }
.top-actions .button { white-space: nowrap; }
.topbar h1 { white-space: nowrap; }
#sidebarPin { visibility: hidden; }
.sidebar[data-console-bound="true"] #sidebarPin { visibility: visible; }
.button, .top-actions select { border-radius: 11px; }
.button { min-height: 38px; }
.button.primary { background: var(--teal); box-shadow: 0 2px 4px rgba(36,127,190,.12); }
.button.primary:hover { background: var(--teal-dark); }
.button.ghost { background: #fff; }
.panel, .notice, .kpi, .channel-kpi, .after-sales-kpi, .rule-panel, .catalog-admin-panel, .listing-sku-card { border-radius: 18px; box-shadow: none; border-color: #e1e9f1; }
.panel h2 { font-size: 17px; letter-spacing: -.3px; }
.panel-head { margin-bottom: 20px; }
.kpi, .channel-kpi, .after-sales-kpi { position: relative; padding: 20px; }
.kpi.hero, .channel-kpi.hero, .after-sales-kpi.hero { background: #fff; color: var(--ink); border: 1px solid #c9e3f5; box-shadow: none; }
.kpi.hero strong, .channel-kpi.hero strong, .after-sales-kpi.hero strong { color: var(--teal-dark); }
.kpi.hero span, .kpi.hero small, .channel-kpi.hero span, .channel-kpi.hero small, .after-sales-kpi.hero span, .after-sales-kpi.hero small { color: var(--muted); }
.kpi > span:first-child, .channel-kpi > span:first-child, .after-sales-kpi > span:first-child { min-height: 30px; display: flex; align-items: center; gap: 9px; font-weight: 500; }
.kpi-symbol { width: 30px; height: 30px; display: inline-grid; place-items: center; background: var(--mint); color: var(--teal); border-radius: 10px; flex: 0 0 auto; }
.kpi-symbol .console-icon { width: 17px; height: 17px; }
.kpi strong { margin: 12px 0 7px; }
.kpi small { line-height: 1.6; }
.date-range-bar, .freight-summary-panel, .after-sales-intro, .channel-hero, .auto-export-range { border-radius: 16px; box-shadow: none; background: #fff; }
.date-range-bar { border-color: var(--line); }
.rules-intro, .anomaly-summary, .listing-intro { background: #edf5fc; border: 1px solid #d5e5f3; color: var(--ink); border-radius: 18px; }
.rules-intro p, .anomaly-summary p, .listing-intro p, .rules-intro .eyebrow, .anomaly-summary .eyebrow, .listing-intro .eyebrow { color: var(--muted); }
.listing-intro p:last-child, .anomaly-count span { color: var(--muted); }
.listing-intro .pill { color: var(--teal-dark); background: #fff; border: 1px solid #d5e5f3; }
.anomaly-count strong { color: #956218; }
.version-card { background: #fff; border: 1px solid var(--line); color: var(--ink); border-radius: 12px; }
.version-card span, .version-card small { color: var(--muted); }
.notice-icon, .range-icon, .upload-icon { color: var(--teal); background: var(--mint); border-radius: 13px; box-shadow: none; }
.notice-icon .console-icon, .upload-icon .console-icon { width: 25px; height: 25px; }
.upload-card { border-radius: 18px; background: #fff; border-color: #ccdae6; }
.upload-card:hover { border-color: var(--teal); background: #f5faff; }
.upload-card.ready { border-color: #609d88; background: #f3faf7; }
.step-banner { border-radius: 16px; }
.dashboard-attention { border-radius: 12px; }
.auth-screen { background: var(--canvas); }
.auth-card { border: 1px solid #dce7f0; border-radius: 22px; box-shadow: 0 12px 44px rgba(28,59,88,.06); }
dialog { border-radius: 18px; }
/* Never override table/row/column widths, sticky headers, tones or scrolling here. */
@media (min-width: 761px) {
  .app-shell { display: block; padding-left: var(--console-rail); }
  .app-shell.sidebar-pinned { padding-left: var(--console-sidebar); }
  #appMain { padding: 0 28px 44px; }
  .sidebar { position: fixed; top: 0; bottom: 0; left: 0; width: var(--console-rail); height: 100vh; height: 100dvh; padding: 20px 11px 14px; z-index: 95; overflow: hidden; scrollbar-width: none; transition: width .26s var(--console-ease), box-shadow .26s; }
  .sidebar::-webkit-scrollbar { width: 0; }
  .sidebar:hover, .sidebar.keyboard-expanded, .sidebar.pinned, .sidebar:has(#shopSelect:focus) { width: var(--console-sidebar); box-shadow: 12px 0 32px rgba(28,59,88,.08); }
  .sidebar .brand { width: 224px; flex-shrink: 0; }
  .sidebar nav { flex: 1 1 auto; min-height: 0; width: 224px; align-content: start; overflow-y: auto; overflow-x: hidden; scrollbar-width: thin; overscroll-behavior: contain; }
  .sidebar .brand-copy, .sidebar .nav-label, .sidebar .pin-label { opacity: 0; transition: opacity .16s ease; }
  .sidebar:is(:hover,.keyboard-expanded,.pinned,:has(#shopSelect:focus)) :is(.brand-copy,.nav-label,.pin-label) { opacity: 1; }
  .sidebar .nav-item { width: 224px; }
  .sidebar:not(:hover):not(.keyboard-expanded):not(.pinned):not(:has(#shopSelect:focus)) .nav-item { background: transparent; }
  .sidebar:not(:hover):not(.keyboard-expanded):not(.pinned):not(:has(#shopSelect:focus)) .nav-item.active { background: linear-gradient(to right,#dbeefa 54px,transparent 54px); }
  .sidebar .nav-item b { position: absolute; right: 10px; top: 17px; }
  .sidebar:not(:hover):not(.keyboard-expanded):not(.pinned):not(:has(#shopSelect:focus)) .nav-item b { left: 35px; right: auto; top: 2px; }
  .sidebar .shop-switcher { flex-shrink: 0; width: 224px; height: 88px; border-color: transparent; background: transparent; padding: 0 0 0 4px; }
  .sidebar .shop-switcher > span, .sidebar .shop-switcher select, .sidebar .shop-switcher small { width: 164px; margin-left: 54px; opacity: 0; transition: opacity .16s; }
  .sidebar .shop-switcher select { pointer-events: none; }
  .sidebar:is(:hover,.keyboard-expanded,.pinned,:has(#shopSelect:focus)) .shop-switcher > :is(span,select,small) { opacity: 1; pointer-events: auto; }
  .sidebar .shop-rail-icon { display: grid; position: absolute; left: 16px; top: 29px; color: var(--teal); }
  .sidebar-pin { width: 224px; }
}
@media (max-height: 800px) and (min-width: 761px) {
  .sidebar { padding-top: 14px; }
  .sidebar .brand { padding-bottom: 16px; }
  .sidebar .shop-switcher { height: 80px; margin-bottom: 10px; }
  .sidebar .nav-item { min-height: 48px; padding-top: 7px; padding-bottom: 7px; }
  .sidebar-pin { margin-top: 8px; }
}
@media (max-width: 1100px) and (min-width: 761px) {
  .topbar { align-items: flex-start; }
  .top-actions { max-width: 72%; }
  .sidebar .brand > div:last-child { font-size: 14px; }
}
@media (max-width: 760px) {
  .sidebar { background: #f0f6fb; padding-top: 18px; }
  .sidebar-pin { display: none; }
  .sidebar .nav-item .nav-label { flex: 1; font-size: 14px; }
  .mobile-nav-heading button { background: #fff; color: var(--ink); border-color: var(--line); }
  .topbar { padding: 18px 0; min-height: 78px; gap: 10px; }
  .topbar h1 { font-size: 21px; }
  .top-actions { max-width: none; }
  .kpi, .channel-kpi, .after-sales-kpi { padding: 15px; border-radius: 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .sidebar, .sidebar *, .button { transition: none !important; }
}

/* SOURCE: freight-editor.css */
#freightPlanEditor > label, #freightPlanEditor details { display:block; margin:16px 0; }
#freightPlanEditor .form-grid { margin:16px 0; }
#freightPlanEditor input[type=checkbox] { width:auto; margin-right:8px; }
#freightPlanEditor [hidden], #legacyFreightSteps[hidden] { display:none !important; }
#freightPlanEditor .two-col > section, #freightPlanEditor input, #freightPlanEditor label { min-width:0;max-width:100%; }
.freight-bands > div, .freight-packing > div { display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;margin:8px 0; }
.freight-rate-scroll { max-height:480px;overflow:auto;margin:16px 0;border:1px solid #d8e4ef;border-radius:8px; }
.freight-rate-scroll table { border-collapse:collapse; width:max-content; }
.freight-rate-scroll th, .freight-rate-scroll td { padding:6px;min-width:90px;border-bottom:1px solid #d8e4ef; }
.freight-rate-scroll input { width:85px;min-height:36px;padding:6px; }
.freight-rate-scroll thead th { position:sticky;top:0;z-index:2;background:#eef5fa; }
.freight-rate-scroll tbody th { position:sticky;left:0;background:#eef5fa;z-index:1; }
#freightPlanEditor textarea { width:100%;font-family:monospace;font-size:13px; }
#freightPlanEditor summary { cursor:pointer;padding:12px 0;color:#2377ac; }
@media(max-width:700px){#freightPlanEditor .form-grid { grid-template-columns:1fr; }#freightPlanEditor .panel-head{flex-wrap:wrap;gap:12px;}}

/* SOURCE: account-ui.css */
/* Account footer owns its layout independently from the retired catalog-status footer. */
.account-footer { margin-top: auto; padding-top: 12px; border-top: 1px solid var(--line); flex: 0 0 auto; }
.account-card { width: 100%; display: flex; align-items: center; gap: 12px; padding: 10px; border: 1px solid var(--line); border-radius: 16px; background: var(--paper); color: var(--ink); text-align: left; cursor: pointer; }
.account-card:hover, .account-card[aria-current="page"] { border-color: var(--teal); background: var(--mint); }
.account-avatar { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 50%; background: var(--mint); color: var(--teal-dark); overflow: hidden; display: grid; place-items: center; font-size: 20px; font-weight: 700; }
.account-avatar img { display: block; width: 100%; height: 100%; object-fit: cover; }
.account-avatar [hidden] { display: none !important; }
.account-card-copy { display: block; min-width: 0; flex: 1; }
.account-card-copy strong, .account-card-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-card-copy strong { font-size: 14px; }
.account-card-copy small { color: var(--muted); font-size: 11px; margin-top: 4px; }
.account-chevron .console-icon { width: 14px; height: 14px; }
.account-actions { display: grid; grid-template-columns: 1fr; gap: 5px; margin-top: 7px; }
.account-action { display: flex; align-items: center; gap: 10px; min-height: 32px; padding: 6px 10px; width: 100%; border: 1px solid var(--line); border-radius: 9px; background: var(--paper); color: var(--ink); cursor: pointer; text-align: left; }
.account-action .console-icon { width: 17px; height: 17px; }
.account-action-copy { white-space: nowrap; font-size: 11px; }
.account-action:hover { background: var(--mint); border-color: var(--teal); }
.app-version { font-size: 10px; color: var(--muted); margin-left: 5px; font-weight: 400; }
.account-card:focus-visible, .account-action:focus-visible, .appearance-switch button:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
.profile-view { max-width: 1080px; margin: 0 auto; }
.profile-view > .panel { margin-bottom: 18px; }
.profile-summary { display: flex; align-items: center; gap: 20px; }
.profile-summary > div { min-width: 0; overflow-wrap: anywhere; }
.profile-summary h2 { font-size: 25px; }
.profile-summary .button { margin-left: auto; flex-shrink: 0; }
.profile-avatar { width: 76px; height: 76px; flex-basis: 76px; font-size: 32px; }
.profile-facts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 24px 0; }
.profile-facts dt { color: var(--muted); font-size: 12px; margin-bottom: 8px; }
.profile-facts dd { margin: 0; font-size: 14px; overflow-wrap: anywhere; }
.profile-security .security-form { max-width: 600px; margin-top: 24px; }
.profile-security .history-dialog-actions { justify-content: flex-start; }
.topbar-tools { display: flex; align-items: center; justify-content: flex-end; gap: 14px; min-width: 0; flex-wrap: wrap; }
.topbar-tools .top-actions { max-width: 100%; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (min-width: 761px) {
  .account-footer { width: 100%; }
  .account-card { padding: 7px; min-height: 54px; }
  .account-avatar { width: 38px; height: 38px; flex-basis: 38px; }
  .account-card-copy, .account-chevron, .account-action-copy { opacity: 0; visibility: hidden; transition: opacity .16s; }
  .account-card-copy { min-width: 128px; }
  .account-action { overflow: hidden; flex-wrap: nowrap; min-height: 32px; }
  .sidebar:is(:hover,.keyboard-expanded,.pinned,:has(#shopSelect:focus)) :is(.account-card-copy,.account-chevron,.account-action-copy) { opacity: 1; visibility: visible; }
  .profile-avatar { width: 76px; height: 76px; flex-basis: 76px; }
}
@media (max-width: 760px) {
  .topbar { flex-wrap: wrap; }
  .topbar-tools { order: 3; }
  .mobile-menu-toggle { margin-left: auto; }
  .topbar-tools { width: 100%; justify-content: flex-start; }
  .profile-summary { flex-wrap: wrap; gap: 14px; }
  .profile-facts { grid-template-columns: 1fr; }
  .profile-summary .button { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) { .account-card-copy, .account-chevron, .account-action-copy { transition: none; } }
.redemption-form{max-width:660px;margin-top:24px}
.redemption-actions{display:flex;gap:12px;align-items:center}
.redemption-actions input{flex:1;min-width:0}
.redemption-actions button{flex-shrink:0}
@media(max-width:480px){.redemption-actions{align-items:stretch;flex-direction:column}}
/* Self-profile and login controls. */
.brand-mark-fixed, .brand-mark-fixed:hover { cursor: default; transform: none; outline: none; }
.login-options { display:flex; flex-wrap:wrap; gap:16px 24px; }
.auth-form .login-options label { display:flex; align-items:center; gap:8px; cursor:pointer; }
.auth-form .login-options input { width:17px; height:17px; padding:0; accent-color:var(--teal); }
.login-option-hint, .login-legal { font-size:12px; line-height:1.7; margin:0; color:var(--muted); }
.login-legal a { color:var(--teal-dark); text-decoration:underline; text-underline-offset:3px; }
.profile-edit-form { margin-top:22px; max-width:640px; }
.profile-edit-form fieldset { border:0; padding:0; margin:0; display:grid; gap:12px; min-width:0; }
.profile-edit-form legend { font-weight:700; margin-bottom:16px; }
.profile-edit-form input { min-width:0; width:100%; }
.profile-edit-form fieldset:disabled { opacity:.65; }
.profile-edit-preview, .profile-edit-actions { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.profile-edit-preview img { width:72px; height:72px; object-fit:cover; border-radius:50%; }
#profileStatus:empty, #profileEditStatus:empty, #benefitsStatus:empty { display:none; }
.auth-hint:empty { display:none; }
@media (prefers-reduced-motion:reduce) { .sidebar, .nav-item, .button { transition:none!important; } }

/* SOURCE: appearance.css */
/* Theme layer: colors only for business tables; never column geometry or profit calculation. */
:root { --surface-soft: #f0f6fb; --surface-hover: #e6f0f8; --theme-accent-fill: #247fbe; }
.appearance-switch { display: inline-flex; align-items: center; gap: 3px; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: var(--paper); box-shadow: 0 2px 5px #17324a08; flex: 0 0 auto; }
.appearance-switch button { display: grid; place-items: center; width: 33px; height: 31px; padding: 6px; background: transparent; border: 0; border-radius: 999px; color: var(--muted); cursor: pointer; }
.appearance-switch button .console-icon { width: 18px; height: 18px; }
.appearance-switch button:hover { background: var(--mint); color: var(--teal-dark); }
.appearance-switch button[aria-checked="true"] { background: var(--theme-accent-fill); color: white; }
html[data-theme="dark"] {
  /* JhinAgent original black/gold palette. Light blue/white tokens are unchanged. */
  --ink: #f3e8c8; --muted: #b1a585; --line: #3b3425; --canvas: #0b0b0b; --paper: #151515;
  --teal: #d7aa3b; --teal-dark: #efca63; --mint: #2a2212; --red: #e2747d; --green: #70c999;
  --orange: #e0ad45; --yellow: #e0ad45; --blue: #d7aa3b; --shadow: 0 12px 35px #0003;
  --surface-soft: #1d1b17; --surface-hover: #2a2110; --theme-accent-fill: #d7aa3b;
  --console-workspace: #0d0d0d; --sidebar-bg: #070707; --sidebar-soft: #2a2110;
  --line-strong: #55482e; --text-soft: #81785f; --info: #d7aa3b; --info-bg: #2a2212;
  --success-bg: #12271e; --warning-bg: #2d2313; --danger-bg: #2d171b;
}
html[data-theme="dark"] body { background: var(--canvas); color: var(--ink); }
html[data-theme="dark"] #appMain { background: var(--console-workspace); min-height: 100dvh; }
html[data-theme="dark"] :is(.sidebar,.mobile-nav-heading) { background: var(--sidebar-bg); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] .sidebar .brand-copy strong { color: #f2d87e; }
html[data-theme="dark"] .sidebar .shop-switcher { background: transparent; }
html[data-theme="dark"] .sidebar .nav-item:not(.active) { color: #bcaf90; }
html[data-theme="dark"] .sidebar .nav-item:hover { background: var(--surface-hover); }
html[data-theme="dark"] .sidebar .nav-item.active { background: var(--sidebar-soft); color: #f0d37b; }
html[data-theme="dark"] .sidebar:not(:hover):not(.keyboard-expanded):not(.pinned):not(:has(#shopSelect:focus)) .nav-item.active { background: linear-gradient(to right,var(--sidebar-soft) 54px,transparent 54px); }
html[data-theme="dark"] :is(.sidebar-pin:hover,.sidebar-pin[aria-pressed="true"]) { background: var(--mint); color: var(--teal); }
html[data-theme="dark"] :is(input,select,textarea,.button.ghost,.mobile-nav-heading button,dialog,.auth-card,.notice,.kpi.hero,.channel-kpi.hero,.after-sales-kpi.hero,.date-range-bar,.freight-summary-panel,.after-sales-intro,.channel-hero,.auto-export-range,.version-card,.upload-card,.detail-chip,.freight-total,.freight-metric,.rule-card,.catalog-admin-panel,.listing-sku-card) { background: var(--paper); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(.panel,.kpi,.channel-kpi,.after-sales-kpi,.rule-panel,.listing-sku-card,.auth-card) { border-color: var(--line); }
html[data-theme="dark"] .button.primary { background: var(--theme-accent-fill); color: #0b0b0b; box-shadow: 0 2px 4px #0003; }
html[data-theme="dark"] .button.primary:hover { background: var(--teal-dark); }
html[data-theme="dark"] .appearance-switch button[aria-checked="true"] { color: #0b0b0b; }
html[data-theme="dark"] :is(.rules-intro,.anomaly-summary,.listing-intro,.step-banner,.basis-banner,.upload-template-link,.notice-icon,.range-icon,.upload-icon,.trend-legend button,.pill) { background: var(--mint); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(.rules-intro p,.anomaly-summary p,.listing-intro p,label span,.date-cell,.changelog-date,.profile-facts dt) { color: var(--muted); }
html[data-theme="dark"] :is(.upload-card:hover,.upload-card.ready) { background: var(--surface-hover); }
html[data-theme="dark"] :is(.table-panel thead th,.result-table thead th,.result-frozen-header th,thead th) { background: var(--surface-soft); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(th,td) { border-color: var(--line); }
html[data-theme="dark"] .detail-row td { background: var(--surface-soft); }
html[data-theme="dark"] :is(.row-toggle,.trend-legend button:hover,.cost-track,.reconcile-bar) { background: var(--surface-hover); color: var(--teal); }
html[data-theme="dark"] :is(.dashboard-attention,.anomaly-count,.warning) { background: var(--warning-bg); color: var(--orange); border-color: var(--line-strong); }
html[data-theme="dark"] :is(.kpi.hero strong,.channel-kpi.hero strong,.after-sales-kpi.hero strong,.freight-total strong) { color: var(--teal-dark); }
html[data-theme="dark"] .anomaly-count strong { color: var(--orange); }
html[data-theme="dark"] :is(.dashboard-metric-popover,.dashboard-metric-popover header button,.anomaly-item,.anomaly-item.expandable.open,.empty-anomaly,.shop-binding,.catalog-suggestions,.catalog-suggestion,.listing-recommendation>article,.listing-compare-card,.listing-compare-toggle,.listing-expanded-detail .listing-detail-layout>section,.listing-kpi,.channel-kpi,.channel-kpi.subsidy,.channel-shop-row,.channel-shop-row.loss,.tutorial-head,.tutorial-note,.tutorial-fields,.tutorial-step,.tutorial-foot,.tutorial-tabs button,.mobile-menu-toggle) { background: var(--paper); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(.access-create-card,.access-overview,.test-result,.history-select-all,.history-dialog-actions,.changelog-head,.changelog-foot,.audit-overview,.fee-snapshot-status,.jst-detection i,.listing-compare-detail,.listing-component-detail,.listing-freight-grid>div,.listing-formulas>div,.tutorial-tabs,.tutorial-template-card,.tutorial-body,.ai-report-body,.ai-report-preview,.tutorial-dialog) { background: var(--surface-soft); color: var(--ink); border-color: var(--line); }
html[data-theme="dark"] :is(.basis-explanation,.overview-basis-switch,.perspective-picker,.channel-mode-switch,.channel-presets,.channel-mode-switch button,.channel-presets button,.dialog-close,.activity-pill,.catalog-combobox-toggle,.listing-add-component,.listing-add-sku,.listing-sku-number,.channel-shop-rank,.channel-shop-open,.upload-tutorial-button,.tutorial-close,.tutorial-fields li,.anomaly-order-list code) { background: var(--mint); color: var(--teal-dark); border-color: var(--line); }
html[data-theme="dark"] :is(.history-manage-item:hover,.catalog-suggestion:hover,.catalog-suggestion:focus,.listing-compare-toggle:hover,.listing-compare-toggle[aria-expanded="true"],.after-sales-table tbody tr:hover,.button.ghost:hover) { background: var(--surface-hover); }
html[data-theme="dark"] :is(.channel-mode-switch button.active,.channel-presets button.active,.channel-presets button:hover,.overview-basis-switch button.active,.perspective-picker button.active,.tutorial-tabs button.active) { background: var(--theme-accent-fill); color: #0b0b0b; }
html[data-theme="dark"] :is(.channel-mode-switch button,.channel-presets button,.overview-basis-switch button,.perspective-picker button) { color: var(--muted); }
html[data-theme="dark"] :is(.channel-mode-switch button.active,.channel-presets button.active,.channel-presets button:hover,.overview-basis-switch button.active,.perspective-picker button.active) { color: #0b0b0b; }
html[data-theme="dark"] :is(.changelog-content h3,.history-select-all span,.tutorial-rule-list b,.after-sales-table th,.freight-rate-scroll tbody th) { color: var(--ink); }
html[data-theme="dark"] :is(.changelog-content li,.changelog-date strong,.tutorial-note p,.tutorial-fields p,.after-sales-legend span,.channel-range label span,.listing-component-detail small,.catalog-suggestion small,.tutorial-rule-list li,.history-mode-chip) { color: var(--muted); }
html[data-theme="dark"] :is(.channel-ring::after,.channel-cost-ring::after,.after-sales-donut::after) { background: var(--paper); }
html[data-theme="dark"] :is(.channel-shop-bar,.after-sales-bar-track,.freight-rate-scroll tbody th,.tutorial-rule-list li) { background: var(--surface-soft); }
html[data-theme="dark"] .result-frozen-header, html[data-theme="dark"] .result-frozen-header .frozen-result-table th { background: var(--surface-soft); color: var(--ink); }
html[data-theme="dark"] .result-table .summary-body { background: var(--mint); }
html[data-theme="dark"] .result-table .summary-row td { color: var(--ink); }
html[data-theme="dark"] :is(.profit-row .amount-positive,.result-table .summary-row .amount-positive,.after-sales-table .amount-positive,.after-sales-kpi.positive strong) { color: var(--green); }
html[data-theme="dark"] :is(.profit-row .amount-negative,.result-table .summary-row .amount-negative,.after-sales-table .amount-negative,.after-sales-kpi.danger strong) { color: var(--red); }
html[data-theme="dark"] :is(.tutorial-warning,.fee-snapshot-status.warning) { background: var(--warning-bg); color: var(--orange); border-color: var(--line-strong); }
html[data-theme="dark"] :is(.fee-snapshot-status.warning span,.activity-pill.special) { color: var(--orange); }
html[data-theme="dark"] .subsidy-amount { color: #c1b4ff; }
html[data-theme="dark"] :is(input,select,textarea):focus { border-color: var(--teal); box-shadow: 0 0 0 3px #d7aa3b26; }
html[data-theme="dark"] :is(input,textarea)::placeholder { color: var(--text-soft); }
html[data-theme="dark"] .sidebar button:focus-visible { outline-color: var(--teal); }
html[data-theme="dark"] .appearance-switch { box-shadow: 0 2px 5px #0003; }
html[data-theme="dark"] :is(.account-card,.account-action):hover { background: var(--sidebar-soft); }
html[data-theme="dark"] :is(.upload-card.ready,.fee-snapshot-status.success) { background: var(--success-bg); border-color: var(--green); }
html[data-theme="dark"] :is(.delete-step,.channel-shop-row.loss,.anomaly-item.error) { background: var(--danger-bg); color: var(--red); }
html[data-theme="dark"] :is(.freight-rate-scroll,.freight-rate-scroll th,.freight-rate-scroll td,#sequenceIssueDialog) { border-color: var(--line); }
html[data-theme="dark"] #freightPlanEditor summary { color: var(--teal); }
html[data-theme="dark"] .upload-template-link:is(:hover,:focus-visible) { background: var(--surface-hover); color: var(--teal-dark); border-color: var(--teal); box-shadow: 0 0 0 3px #d7aa3b26; }
html[data-theme="dark"] dialog::backdrop { background: #0009; }
html[data-theme-burn] *, html[data-theme-burn] *::before, html[data-theme-burn] *::after { transition: none !important; }
::view-transition { pointer-events: none; }
::view-transition-group(root) { animation: none; background: #e4b35d; }
::view-transition-image-pair(root) { isolation: isolate; }
::view-transition-old(root), ::view-transition-new(root) { animation: none; mix-blend-mode: normal; opacity: 1; }
::view-transition-old(root) { z-index: 1; }
::view-transition-new(root) { z-index: 2; clip-path: inset(100% 0 0); }
@media (prefers-reduced-motion: reduce) { .appearance-switch * { transition: none !important; } }

/* SOURCE: collector-runtime.css */
.collection-jobs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px;margin-top:16px}
.collection-job{display:grid;align-content:start;gap:9px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--paper);min-width:0}
.collection-job-state{font-size:13px;line-height:1.6;overflow-wrap:anywhere;color:var(--muted)}
.collection-job progress{width:100%;height:9px;accent-color:var(--teal)}
.collection-job small,#collectionSyncHint{color:var(--muted);font-size:12px;line-height:1.6}
.collection-job button{justify-self:start}
.collection-steps{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0;margin:0;list-style:none;color:var(--muted);font-size:11px}
.collection-steps li{padding:5px 7px;border:1px solid var(--line);border-radius:7px}
.collection-steps .done{color:var(--green)}.collection-steps .current{color:var(--teal);border-color:var(--teal);font-weight:700}

/* SOURCE: onboarding.css */
#onboardingDialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:transparent;overflow:hidden;color:var(--ink)}
#onboardingDialog::backdrop{background:#0c25354a}
#onboardingSpot{position:fixed;border:2px solid var(--teal);border-radius:15px;box-shadow:0 0 0 9999px #0c253554;pointer-events:none}
#onboardingDialog>svg{position:fixed;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
#onboardingLine{stroke:var(--teal);stroke-width:2;stroke-dasharray:5 4}
#onboardingCard{position:fixed;max-height:calc(100dvh - 32px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper);box-shadow:var(--shadow);animation:onboarding-in .2s ease-out}
#onboardingCard h2{margin:10px 0;font-size:22px}#onboardingText{line-height:1.85;color:var(--muted);font-size:15px}
.onboarding-head,.onboarding-actions{display:flex;gap:12px;justify-content:space-between;align-items:center}.onboarding-actions{margin-top:20px}
#onboardingCount{font-size:12px;color:var(--muted)}
@keyframes onboarding-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){#onboardingCard{animation:none}}

/* SOURCE: result-columns.css */
/* Variable-column ledger, intentionally scoped away from other business tables. */
.ledger-title{display:flex;align-items:center;gap:12px}
.ledger-columns-button{padding:10px;display:grid;place-items:center;flex-shrink:0}
.ledger-column-dialog{width:min(860px,calc(100vw - 24px));max-height:85vh;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--paper);color:var(--ink)}
.ledger-column-dialog::backdrop{background:#10253966}
.ledger-column-dialog header,.ledger-column-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ledger-column-dialog h2{margin:0}.ledger-column-dialog p,.ledger-column-dialog footer span{font-size:12px;color:var(--muted)}
.ledger-presets{display:flex;gap:8px;flex-wrap:wrap;padding:16px 0}.ledger-presets input{flex:1;min-width:150px}
#resultColumnOptions{max-height:48vh;overflow:auto;padding:4px 4px 16px}
#resultColumnOptions fieldset{border:0;border-top:1px solid var(--line);padding:12px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
#resultColumnOptions legend{color:var(--teal-dark);font-weight:700;padding-right:12px}
#resultColumnOptions label{display:flex;align-items:center;gap:8px;padding:8px;border-radius:8px;font-size:13px;cursor:pointer}
#resultColumnOptions label:hover{background:var(--surface-soft)}
#resultColumnOptions label[hidden]{display:none}
#resultColumnOptions input{width:16px;height:16px;flex-shrink:0;accent-color:var(--teal)}
.ledger-column-dialog footer{padding-top:16px;border-top:1px solid var(--line)}
.ledger-column-dialog footer span{margin-right:auto}
.result-table [data-column-key]{box-sizing:border-box;min-width:0;overflow-wrap:anywhere}
.result-table .ledger-cell{padding:10px 8px;font-variant-numeric:tabular-nums}
.result-table .ledger-cell[data-column-key="product"]{justify-content:flex-start;text-align:left;white-space:normal;line-height:1.5}
.result-table .ledger-cell[data-column-key="product"] strong{display:block;white-space:normal}
.result-table :is([data-column-key="activity"],[data-column-key="activity_ids"]){text-align:center;justify-content:center!important}
.result-table .activity-tags .activity-pill{min-height:24px;box-sizing:border-box}
.result-table .activity-id-only{background:transparent;color:var(--muted);font-weight:500;font-size:10px}
.result-table [data-column-key="product_cost_total"],.result-table [data-column-key="promotion_cost"],.result-table [data-column-key="profit"]{border-left:1px solid var(--line)}
.result-table .detail-row>td{padding:0!important;background:var(--surface-soft)}
.ledger-spec-row{display:grid;grid-template-columns:var(--result-columns);border-bottom:1px solid var(--line)}
.ledger-spec-row .ledger-cell{display:flex;align-items:center;justify-content:flex-end;text-align:right;border-right:1px solid var(--line);font-size:11px;line-height:1.5;white-space:normal}
.ledger-spec-identity{display:flex;flex-direction:column;gap:4px}.ledger-spec-identity small,.ledger-missing{color:var(--muted);font-weight:400}
.table-scroll .result-table :is(th,td,.ledger-cell)[data-column-key="day"],.table-scroll .result-table :is(th,td,.ledger-cell)[data-column-key="product"]{position:sticky;z-index:1}
.table-scroll .result-table [data-column-key="day"]{left:0}
.table-scroll .result-table [data-column-key="product"]{left:var(--ledger-first-width,108px);border-right:1px solid var(--line)}
.table-scroll .result-table .summary-row :is([data-column-key="day"],[data-column-key="product"]),.table-scroll .result-table .ledger-spec-row :is([data-column-key="day"],[data-column-key="product"]){background:var(--surface-soft)}
.frozen-result-table :is([data-column-key="day"],[data-column-key="product"]){position:relative;z-index:2;border-right:1px solid var(--line)}
.result-table .summary-row [data-column-key="product"]{white-space:normal;text-align:left}
/* Every frozen cell needs an opaque base, but the same profit tint as its row. */
.table-scroll .result-table .profit-row>td[data-column-key]{background-color:var(--paper);background-image:linear-gradient(var(--row-tone,transparent),var(--row-tone,transparent))}
.table-scroll .result-table :is(.summary-row,.ledger-spec-row)>[data-column-key]{background:var(--surface-soft,var(--paper))}
.table-scroll .result-table :is(th,.profit-row>td,.summary-row>td,.ledger-spec-row>.ledger-cell)[data-column-key],.result-frozen-header .frozen-result-table th[data-column-key]{justify-content:center!important;align-items:center;text-align:center!important}
.table-scroll .result-table .ledger-spec-identity{align-items:center}
.table-scroll .result-table .detail-row>td{border-top:0;padding:0!important}
.ledger-scroll-rail{position:fixed;z-index:31;bottom:8px;height:22px;overflow-x:scroll;overflow-y:hidden;border:1px solid var(--line);border-radius:7px;background:var(--paper);box-shadow:0 2px 10px #10253922;scrollbar-color:var(--muted) var(--surface-soft);overscroll-behavior-x:contain}
.ledger-scroll-rail[hidden]{display:none!important}
.ledger-scroll-rail>div{height:1px}
.ledger-scroll-rail:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
@media(max-width:620px){#resultColumnOptions fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}.ledger-column-dialog{padding:16px}.ledger-column-dialog footer{flex-wrap:wrap}.ledger-column-dialog footer span{flex-basis:100%}}

/* SOURCE: history-manager.css */
/* Deletion phases reflect confirmed work, never a fabricated percentage. */
.history-delete-dialog { width: min(460px, calc(100vw - 32px)); box-sizing: border-box; padding: 28px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px #091c3430; }
.history-delete-dialog::backdrop { background: #10283f66; }
.history-delete-dialog h2 { margin: 8px 0 22px; font-size: 21px; line-height: 1.5; outline: none; }
.history-delete-steps { display: flex; gap: 12px; padding: 0; margin: 0 0 18px; list-style: none; }
.history-delete-steps li { flex: 1; padding: 11px 12px; border: 1px solid var(--line); border-radius: 12px; font-size: 14px; color: var(--muted); }
.history-delete-dialog[data-stage="deleting"] #historyDeleteStepOne,
.history-delete-dialog[data-stage="refreshing"] #historyDeleteStepTwo { background: var(--mint); border-color: var(--teal); color: var(--teal-dark); font-weight: 700; }
.history-delete-dialog:is([data-stage="refreshing"],[data-stage="refresh-error"]) #historyDeleteStepOne { color: var(--teal-dark); }
#historyDeleteMessage { margin: 0; min-height: 48px; color: var(--muted); line-height: 1.8; overflow-wrap: anywhere; }
.history-delete-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.history-delete-actions[hidden], #historyDeleteRetry[hidden] { display: none; }
@media (max-width: 480px) { .history-delete-dialog { padding: 22px; } .history-delete-steps { gap: 8px; } }

/* SOURCE: page-loading.css */
/* Only a waiting indicator, not a task-completion percentage. */
.page-loading { min-height: 340px; padding: 56px 24px; margin-bottom: 24px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); color: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; text-align: center; box-sizing: border-box; }
.page-loading[hidden], #pageLoadingRetry[hidden] { display: none; }
.page-loading h2 { font-size: 20px; margin: 0 0 10px; }
.page-loading p { color: var(--muted); margin: 0; line-height: 1.8; overflow-wrap: anywhere; }
.page-loading-spinner { width: 36px; height: 36px; border: 3px solid var(--line); border-top-color: var(--teal); border-radius: 50%; animation: page-loading-spin .9s linear infinite; }
.page-loading-skeleton { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; width: min(560px,100%); margin-top: 10px; }
.page-loading-skeleton i { height: 70px; border: 1px solid var(--line); border-radius: 12px; background: var(--mint); animation: page-loading-pulse 1.6s ease-in-out infinite alternate; }
#appMain[data-page-load="loading"] > .view, #appMain[data-page-load="error"] > .view { display: none !important; }
#appMain[data-page-load="error"] .page-loading-spinner, #appMain[data-page-load="error"] .page-loading-skeleton { display: none; }
@keyframes page-loading-spin { to { transform: rotate(360deg); } }
@keyframes page-loading-pulse { to { opacity: .4; } }
@media (prefers-reduced-motion: reduce) { .page-loading-spinner, .page-loading-skeleton i { animation: none; } }
@media (max-width: 480px) { .page-loading { padding: 40px 18px; min-height: 300px; } .page-loading-skeleton { gap: 8px; } }

/* SOURCE: operation-wait.css */
.operation-wait-dialog { width: min(480px,calc(100vw - 32px)); max-height: calc(100dvh - 32px); box-sizing: border-box; padding: 30px; border: 1px solid var(--line); border-radius: 20px; background: var(--paper); color: var(--ink); box-shadow: 0 24px 80px #091c3430; overflow: auto; }
.operation-wait-dialog::backdrop { background: #10283f77; }
.operation-wait-dialog h2 { margin: 14px 0 12px; font-size: 21px; line-height: 1.5; outline: none; }
#operationWaitTitle:focus { outline: none !important; }
.operation-wait-dialog p { color: var(--muted); line-height: 1.8; overflow-wrap: anywhere; }
.operation-wait-spinner { display: block; width: 32px; height: 32px; border: 3px solid var(--line); border-top-color: var(--teal); border-radius: 50%; animation: operation-wait-spin .9s linear infinite; }
.operation-wait-dialog[data-phase="error"] .operation-wait-spinner { display: none; }
.operation-wait-dialog [hidden] { display: none !important; }
#operationWaitCaution { padding: 12px; background: var(--mint); border-radius: 10px; font-size: 13px; }
.operation-wait-dialog footer { display: flex; justify-content: flex-end; }
@keyframes operation-wait-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .operation-wait-spinner { animation: none; } }
@media (max-width: 480px) { .operation-wait-dialog { padding: 24px; } }

/* SOURCE: report-import.css */
[data-report-drop] { transition: outline-color .15s ease, box-shadow .15s ease; }
[data-report-drop].file-drag-over { outline: 2px dashed var(--teal); outline-offset: -3px; box-shadow: inset 0 0 0 5px var(--mint); }
.report-drop-hint { display: block; color: var(--muted); font-size: 12px; line-height: 1.6; margin: 0 0 12px; overflow-wrap: anywhere; pointer-events: none; }
.upload-card > .report-drop-hint { padding-top: 24px; text-align: center; }
#jstReportsState, #jstReportDetection i { overflow-wrap: anywhere; }
.collector-version-notice { margin: 0 0 18px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); color: var(--ink); font-size: 13px; line-height: 1.7; overflow-wrap: anywhere; }
.collector-version-notice.ready { color: var(--teal); }
.collector-version-notice[hidden] { display: none; }
#installAutoCollector { white-space: normal; max-width: 210px; }
.top-actions .button.ghost, .fee-import-actions .button.ghost, .fee-import-actions .button.secondary { background: var(--paper); color: var(--ink); border: 1px solid var(--line); }
.top-actions { flex-wrap: wrap; }
@media (max-width: 700px) { .top-actions #installAutoCollector:not(.hidden) { display: inline-flex !important; max-width: 160px; } }
@media (prefers-reduced-motion: reduce) { [data-report-drop] { transition: none; } }

/* SOURCE: workflow-ui.css */
/* Workflow feedback inherits both existing color themes. */
.workflow-preparation{margin:18px 0;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--paper)}
.workflow-preparation h2{margin:0 0 6px;font-size:18px}.workflow-preparation p{color:var(--muted);margin:6px 0;font-size:13px}
#workflowChecklist{list-style:none;padding:0;margin:18px 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.workflow-check{display:flex;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px;min-width:0;background:var(--surface-soft)}
.workflow-check strong{font-size:13px}.workflow-check small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
.workflow-check-mark{display:grid;place-items:center;width:24px;height:24px;flex-shrink:0;border-radius:50%;background:var(--paper);color:var(--muted)}
.workflow-check-state{margin-left:auto;font-size:11px;white-space:nowrap;color:var(--muted)}
.is-ready .workflow-check-mark,.is-ready .workflow-check-state,.workflow-tag.is-ready{color:var(--teal)}
.is-mismatch .workflow-check-mark,.is-mismatch .workflow-check-state,.workflow-tag.is-mismatch,.workflow-tag.is-check{color:var(--orange)}
.workflow-files{width:100%;text-align:left}.workflow-file{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px;margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--paper)}
.workflow-file-body{min-width:0;flex:1 1 150px}.workflow-file strong{display:block;font-size:12px;overflow-wrap:anywhere}.workflow-file-detail{display:block;color:var(--muted);font-size:11px;line-height:1.6;margin-top:4px}
.workflow-tag{font-size:10px;white-space:nowrap;border:1px solid currentColor;border-radius:6px;padding:3px 6px}.workflow-file .button{font-size:11px;padding:6px 8px;min-height:30px}
.workflow-inline-confirm{display:flex;align-items:center;flex-wrap:wrap;gap:8px;flex-basis:100%;border-top:1px solid var(--line);padding-top:10px}.workflow-inline-confirm span{font-size:12px;flex:1 1 100%;color:var(--muted)}
.workflow-upload-feedback{font-size:12px;line-height:1.7;color:var(--teal);margin:10px 0 0;overflow-wrap:anywhere}.workflow-upload-feedback[data-phase=error]{color:var(--red)}
.upload-card[data-upload-phase=busy]{border-color:var(--teal)}.upload-card[data-upload-phase=mismatch]{border-color:var(--orange)}.upload-card[data-upload-phase=error]{border-color:var(--red)}
.upload-card[data-upload-phase=ready]{background:var(--surface-soft)}
html[data-theme="dark"] .upload-card[data-upload-phase=ready]{background:var(--surface-soft)}
#sequenceSteps.workflow-sequence{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin-top:18px}
#sequenceSteps.workflow-sequence li{display:flex;gap:8px;padding:13px 10px;border:1px solid var(--line);border-radius:12px;background:var(--surface-soft);font-size:12px;min-width:0}
.workflow-step-number{display:grid;place-items:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;flex-shrink:0;font-size:11px;color:var(--muted)}
#sequenceSteps.workflow-sequence strong{font-size:12px}#sequenceSteps.workflow-sequence small{display:block;color:var(--muted);font-size:11px;margin-top:5px;line-height:1.5}
#sequenceSteps.workflow-sequence .is-current,#workflowDailySteps .is-current{border-color:var(--teal)}
.is-done .workflow-step-number{color:var(--teal);border-color:var(--teal)}.is-current .workflow-step-number{background:var(--teal);color:var(--paper);border-color:var(--teal)}
#sequenceSteps.workflow-sequence .is-attention,#workflowDailySteps .is-attention{border-color:var(--orange)}
#workflowSequenceCount{display:inline-block;color:var(--teal);font-size:12px;font-weight:600;margin-top:8px}
.workflow-dock{position:fixed;z-index:40;bottom:20px;right:24px;width:min(430px,calc(100vw - 32px));background:var(--paper);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 36px #0002;overflow:hidden}
.workflow-dock[hidden],.workflow-dock [hidden],#workflowDaily[hidden]{display:none!important}
#workflowDockToggle{background:none;color:var(--ink);border:0;display:flex;align-items:center;gap:12px;width:100%;padding:16px;text-align:left;cursor:pointer}
#workflowDockToggle>span:nth-child(2){min-width:0;flex:1}#workflowDockTitle{display:block;font-size:13px}#workflowDockMeta{display:block;font-size:11px;color:var(--muted);margin-top:5px;line-height:1.5}#workflowDockChevron{font-size:11px;color:var(--muted);white-space:nowrap}
.workflow-dock-dot{width:9px;height:9px;border-radius:50%;background:var(--teal);flex-shrink:0}.workflow-dock[data-state=attention] .workflow-dock-dot,.workflow-dock[data-state=paused] .workflow-dock-dot{background:var(--orange)}
#workflowDockProgress{display:block;width:100%;height:3px;border:0;accent-color:var(--teal)}#workflowDockProgress::-webkit-progress-bar{background:var(--line)}#workflowDockProgress::-webkit-progress-value{background:var(--teal)}
#workflowDockDetails{display:grid;grid-template-rows:0fr;opacity:0;transform:translateY(5px);visibility:hidden;transition:grid-template-rows .26s cubic-bezier(.22,1,.36,1),opacity .18s ease,transform .26s cubic-bezier(.22,1,.36,1),visibility 0s linear .26s}
.workflow-dock[data-expanded="true"] #workflowDockDetails{grid-template-rows:1fr;opacity:1;transform:translateY(0);visibility:visible;transition-delay:0s}
.workflow-dock-reveal{min-height:0;overflow:hidden}.workflow-dock-content{padding:0 16px 16px}
#workflowDockMessage{font-size:12px;line-height:1.7;color:var(--muted);overflow-wrap:anywhere}.workflow-dock-actions{display:flex;gap:8px}.has-workflow-dock #appMain{padding-bottom:150px}
@media(prefers-reduced-motion:reduce){#workflowDockDetails{transition:none;transform:none}}
#workflowDaily{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-soft)}
#workflowDailySteps{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}#workflowDailySteps li{display:flex;align-items:center;gap:6px;flex:1 1 90px;border:1px solid var(--line);border-radius:9px;padding:10px 8px;font-size:12px}
#workflowDailyMessage{font-size:12px;line-height:1.7;color:var(--muted);margin:12px 0 4px}#workflowDailyElapsed{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
@media(max-width:1100px){#sequenceSteps.workflow-sequence{grid-template-columns:repeat(3,minmax(0,1fr))}#workflowChecklist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.workflow-preparation{padding:16px}#workflowChecklist{grid-template-columns:1fr}#sequenceSteps.workflow-sequence{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow-dock{right:16px;bottom:14px}#workflowDockToggle{padding:12px}}
