:root {
  --ink: #14211c;
  --muted: #738077;
  --paper: #f2f0e8;
  --card: #fbfaf5;
  --line: #d8d8cd;
  --green: #0b654a;
  --green-2: #19a974;
  --lime: #c8f04a;
  --red: #df4b3f;
  --amber: #e5a928;
  --blue: #3276c7;
  --navy: #12251e;
  --shadow: 0 14px 40px rgba(24, 43, 35, .08);
}

* { box-sizing: border-box; }
html, body { margin: 0; min-height: 100%; color: var(--ink); background: var(--paper); }
body { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; overflow-x: hidden; }
button, input, select { font: inherit; }
button { color: inherit; }
.noise { position: fixed; inset: 0; opacity: .035; pointer-events: none; z-index: 99; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); }

#app { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: 224px; padding: 28px 18px 22px; background: var(--navy); color: #f7f5ea; z-index: 20; display: flex; flex-direction: column; }
.brand-lockup { display: flex; gap: 12px; align-items: center; padding: 0 10px 31px; }
.brand-lockup strong { display: block; font-family: Georgia, "Songti SC", serif; letter-spacing: .16em; font-size: 19px; }
.brand-lockup small { color: #99aaa0; font-size: 11px; letter-spacing: .18em; }
.brand-mark { width: 32px; height: 32px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; transform: skewY(-14deg); }
.brand-mark span { border-radius: 1px; background: var(--lime); }
.brand-mark span:nth-child(2) { opacity: .65; transform: translateY(4px); }
.brand-mark span:nth-child(3) { opacity: .3; transform: translateY(8px); }

#nav { display: grid; gap: 6px; }
.nav-item { width: 100%; border: 0; background: transparent; color: #9bac9f; border-radius: 4px; padding: 12px 12px; display: flex; align-items: center; gap: 11px; cursor: pointer; text-align: left; transition: .2s ease; position: relative; }
.nav-item:hover { color: white; background: rgba(255,255,255,.05); }
.nav-item.active { color: white; background: rgba(200,240,74,.1); }
.nav-item.active::before { content: ""; position: absolute; left: -18px; width: 3px; height: 20px; background: var(--lime); }
.nav-icon { width: 20px; text-align: center; font-size: 16px; color: var(--lime); }
.nav-label { font-size: 13px; letter-spacing: .03em; }
.nav-badge { margin-left: auto; padding: 2px 6px; font-size: 10px; background: var(--red); color: white; border-radius: 8px; }

.side-status { margin-top: auto; padding: 16px; border: 1px solid rgba(255,255,255,.1); background: rgba(255,255,255,.035); border-radius: 5px; }
.pulse { color: #c2ccc5; font-size: 11px; margin-bottom: 13px; }
.pulse i { display: inline-block; width: 7px; height: 7px; background: var(--lime); border-radius: 50%; box-shadow: 0 0 0 4px rgba(200,240,74,.1); margin-right: 7px; }
.side-status strong { display: block; font: 24px Georgia, serif; }
.side-status span, .side-status small { font-size: 10px; color: #8da096; }
.meter { height: 3px; background: rgba(255,255,255,.12); margin: 12px 0 7px; }
.meter b { display: block; height: 100%; background: var(--lime); }
.sidebar-foot { margin-top: 17px; padding: 0 10px; color: #667c71; font: 9px/1.7 monospace; letter-spacing: .08em; }

.shell { min-height: 100vh; margin-left: 224px; padding: 0 34px 50px; max-width: 1700px; }
.topbar { height: 112px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); }
.eyebrow { font: 9px/1.2 monospace; color: var(--green); letter-spacing: .14em; margin-bottom: 9px; }
h1 { margin: 0; font: 500 29px/1.1 Georgia, "Songti SC", serif; letter-spacing: -.02em; }
.top-actions { display: flex; align-items: center; gap: 10px; }
.date-control { display: flex; align-items: center; gap: 12px; padding: 9px 12px; min-width: 155px; border: 1px solid var(--line); background: rgba(255,255,255,.45); border-radius: 3px; cursor: pointer; }
.date-control span { font-size: 10px; color: var(--muted); }
.date-control strong { font-size: 12px; margin-left: auto; }
.date-control i { font-style: normal; color: var(--muted); }
.icon-button { width: 38px; height: 38px; border: 1px solid var(--line); background: transparent; border-radius: 3px; cursor: pointer; position: relative; }
.icon-button b { position: absolute; right: -5px; top: -5px; width: 17px; height: 17px; display: grid; place-items: center; background: var(--red); color: white; border-radius: 50%; font-size: 9px; }
.avatar { width: 38px; height: 38px; background: var(--ink); color: var(--lime); border-radius: 3px; display: grid; place-items: center; font: 11px Georgia, serif; }

.filter-rail { min-height: 68px; display: flex; align-items: center; gap: 8px; }
.segmented { padding: 3px; background: #e6e5dc; border-radius: 4px; display: flex; }
.segmented button { border: 0; background: transparent; color: var(--muted); font-size: 11px; padding: 8px 12px; border-radius: 3px; cursor: pointer; }
.segmented button.active { background: var(--card); color: var(--ink); box-shadow: 0 2px 6px rgba(0,0,0,.07); }
.filter-spacer { flex: 1; }
.filter-chip, .filter-more { height: 33px; background: transparent; border: 1px solid var(--line); border-radius: 3px; padding: 0 11px; font-size: 11px; cursor: pointer; }
.filter-chip:hover, .filter-more:hover { border-color: var(--green); }
.filter-chip i { font-style: normal; color: var(--muted); margin-left: 7px; }
.filter-more { width: 33px; padding: 0; color: var(--green); font-size: 18px; }
.filter-menu { position: fixed; z-index: 120; width: 290px; max-height: 420px; overflow: auto; padding: 7px; background: var(--card); border: 1px solid #bfc4b9; box-shadow: 0 18px 50px rgba(20,33,28,.18); opacity: 0; pointer-events: none; transform: translateY(-5px); transition: .16s ease; }
.filter-menu.open { opacity: 1; pointer-events: auto; transform: none; }
.filter-menu-head { padding: 9px 10px 8px; color: var(--muted); font: 9px monospace; letter-spacing: .1em; border-bottom: 1px solid var(--line); }
.filter-menu button { width: 100%; border: 0; background: transparent; padding: 10px 9px; display: grid; grid-template-columns: 18px 1fr; text-align: left; cursor: pointer; font-size: 11px; }
.filter-menu button:hover { background: #eef1e2; }.filter-menu button.selected { color: var(--green); font-weight: 600; }
.filter-menu button i { font-style: normal; color: var(--green); }.filter-menu button small { grid-column: 2; color: var(--muted); font-size: 8px; margin-top: 4px; font-weight: 400; }
.context-line { height: 31px; display: flex; align-items: center; gap: 6px; margin: -2px 0 11px; color: var(--muted); font-size: 9px; }
.context-line b,.context-line span { padding: 4px 7px; border: 1px solid var(--line); background: rgba(255,255,255,.3); font-weight: 400; }.context-line b { color: var(--green); border-color: #aebdb4; }

.view { animation: reveal .42s ease both; }
@keyframes reveal { from { opacity: 0; transform: translateY(7px); } to { opacity: 1; transform: none; } }
.grid { display: grid; gap: 13px; }
.kpi-grid { grid-template-columns: repeat(4, 1fr); }
.main-grid { grid-template-columns: minmax(0, 1.65fr) minmax(290px, .85fr); margin-top: 13px; }
.bottom-grid { grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); margin-top: 13px; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: 4px; box-shadow: 0 1px 0 rgba(255,255,255,.8); }
.kpi { min-height: 128px; padding: 17px 18px 15px; position: relative; overflow: hidden; }
.kpi::after { content:""; position:absolute; width:76px; height:76px; border:1px solid var(--line); border-radius:50%; right:-38px; top:-38px; }
.kpi-head { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); }
.kpi-icon { color: var(--green); font-size: 15px; }
.kpi-value { margin-top: 16px; font: 31px/1 Georgia, "Songti SC", serif; letter-spacing: -.03em; }
.kpi-value small { font: 12px sans-serif; margin-left: 3px; }
.kpi-foot { display: flex; align-items: center; margin-top: 10px; font-size: 10px; color: var(--muted); }
.delta { color: var(--green); margin-right: 7px; }.delta.bad { color: var(--red); }
.spark { position: absolute; right: 15px; bottom: 14px; opacity: .85; }
.overview-main { grid-template-columns: minmax(0, 1.35fr) minmax(340px, .75fr); }
.executive-card { min-height: 270px; }.executive-body { padding: 8px 22px 23px; display: grid; grid-template-columns: 148px 1fr; align-items: center; gap: 28px; }
.score-ring { width: 138px; height: 138px; border-radius: 50%; background: conic-gradient(var(--green) var(--score), #e2e4da 0); display: grid; place-items: center; position: relative; }
.score-ring::before { content:""; position:absolute; inset:10px; border-radius:50%; background:var(--card); }
.score-ring>div { z-index:1; text-align:center; }.score-ring strong { display:block; font:37px Georgia,serif; }.score-ring span{font-size:9px;color:var(--muted)}
.judgement h3 { margin:0 0 9px; font:500 19px/1.45 Georgia,"Songti SC",serif; }.judgement p{margin:0;color:var(--muted);font-size:10px;line-height:1.75;max-width:570px}
.signal-row { display:flex; flex-wrap:wrap; gap:7px; margin-top:16px; }.signal-row span{font-size:9px;padding:7px 8px;background:#eeeee7}.signal-row i{font-style:normal;margin-right:3px}.signal-row .up{color:var(--green)}.signal-row .down{color:var(--red)}
.decision-list { padding: 3px 13px 15px; display:grid; gap:8px; }.decision-list button{border:1px solid var(--line);background:rgba(255,255,255,.35);padding:12px;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:8px;text-align:left;cursor:pointer;transition:.15s}.decision-list button:hover{border-color:var(--green);transform:translateX(-2px)}
.decision-list button>b{font:15px Georgia,serif;color:#a4aca6}.decision-list span strong{display:block;font-size:10px;margin-bottom:4px}.decision-list span small{display:block;font-size:8px;color:var(--muted);line-height:1.5}.decision-list em{font-style:normal;font-size:8px;background:#f7d8d3;color:#a63730;padding:4px 5px}.decision-list em.mid{background:#f5e9c8;color:#855d12}.decision-list em.low{background:#dcece3;color:#176347}
.risk-breakdown { padding: 2px 18px 10px; }.risk-row{display:grid;grid-template-columns:90px 1fr 35px 70px;gap:8px;align-items:center;margin:13px 0;font-size:9px}.risk-row>div{height:7px;background:#e5e6de}.risk-row>div b{display:block;height:100%;background:var(--green)}.risk-row strong{font:12px Georgia,serif;text-align:right}.risk-row small{color:var(--muted)}
.insight-strip{margin:5px 18px 17px;padding:11px;background:var(--navy);color:#c6d0ca;font-size:9px;line-height:1.6}.insight-strip b{color:var(--lime);margin-right:8px}

.card-head { padding: 18px 19px 10px; display: flex; align-items: flex-start; justify-content: space-between; }
.card-title { font: 500 16px Georgia, "Songti SC", serif; }
.card-subtitle { color: var(--muted); font-size: 10px; margin-top: 4px; }
.card-action { border: 0; background: transparent; color: var(--green); font-size: 11px; cursor: pointer; }
.trend-wrap { padding: 0 12px 12px; }
.legend { display:flex; flex-wrap:wrap; gap:16px; padding: 0 8px 9px; }
.legend button { border:0; background:transparent; font-size:10px; color:var(--muted); cursor:pointer; padding:0; }
.legend button.off { opacity:.32; text-decoration:line-through; }
.legend i { display:inline-block; width:14px; height:2px; margin-right:6px; vertical-align:middle; }
.trend-chart { width:100%; height:260px; display:block; }
.chart-label { font: 9px sans-serif; fill: #819087; }
.chart-grid { stroke: #dedfd6; stroke-width: 1; stroke-dasharray: 2 4; }
.threshold-line { stroke: var(--red); stroke-width: 1; stroke-dasharray: 5 4; opacity: .65; }
.threshold-key { font-size:9px;color:var(--red);margin-left:auto; }
.chart-point { cursor:pointer; transition:.15s; }.chart-point:hover { r:5; }
.chart-tip { position:fixed; z-index:100; pointer-events:none; background:var(--ink); color:#fff; padding:8px 10px; border-radius:3px; font-size:10px; box-shadow:var(--shadow); opacity:0; transform:translateY(3px); transition:.12s; }
.chart-tip .tip-kicker{font:8px monospace;letter-spacing:.12em;color:var(--lime);margin-bottom:5px}.chart-tip .tip-price{font:20px Georgia,serif;color:var(--lime);margin:5px 0}.chart-tip small{display:block;color:#a9bab0;margin-top:5px;max-width:220px;line-height:1.5}

.alert-stack { padding: 2px 13px 14px; display: grid; gap: 7px; }
.alert-item { border: 1px solid var(--line); padding: 11px; display:grid; grid-template-columns: 6px 1fr auto; gap:10px; cursor:pointer; transition:.18s; background:rgba(255,255,255,.35); }
.alert-item:hover { transform:translateX(-3px); border-color:#b9bcb1; box-shadow: 3px 3px 0 var(--lime); }
.alert-bar { width:5px; height:100%; min-height:43px; background:var(--red); }.alert-bar.amber{background:var(--amber)}.alert-bar.blue{background:var(--blue)}
.alert-name { font-size:11px; font-weight:600; margin-bottom:4px; }
.alert-meta { color:var(--muted); font-size:9px; line-height:1.55; }
.alert-price { text-align:right; font:17px Georgia,serif; }.alert-price small { display:block; color:var(--red); font:9px sans-serif; margin-top:4px; }
.strategy-note { margin: 0 13px 14px; padding: 13px; background: var(--navy); color:white; position:relative; overflow:hidden; }
.strategy-note::after { content:"↗"; position:absolute; right:8px; bottom:-14px; font:58px Georgia,serif; color:rgba(200,240,74,.14); }
.strategy-note b { color:var(--lime); font:12px Georgia,serif; }.strategy-note p { margin:6px 0 0; color:#b8c5bd; font-size:10px; line-height:1.65; }

.matrix { padding: 3px 18px 18px; }
.matrix-row { display:grid; grid-template-columns: 77px repeat(4, 1fr); align-items:center; min-height:34px; gap:5px; }
.matrix-label { font-size:10px; color:var(--muted); }
.heat-cell { height:25px; display:grid; place-items:center; font-size:9px; border-radius:2px; cursor:pointer; transition:.15s; }
.heat-cell:hover { outline:2px solid var(--ink); transform:scale(1.04); }
.risk-5{background:#dc5147;color:white}.risk-4{background:#e88c52;color:white}.risk-3{background:#f0c86e}.risk-2{background:#dce59b}.risk-1{background:#c3decb}.risk-0{background:#e7e8df;color:#8d968f}
.matrix-head { font-size:9px; text-align:center; color:var(--muted); }
.matrix-scale { display:flex; align-items:center; justify-content:flex-end; gap:5px; font-size:9px; color:var(--muted); margin-top:10px; }.matrix-scale i{width:18px;height:5px;display:block;}

.brand-rank { padding: 0 18px 18px; }
.rank-row { display:grid; grid-template-columns: 75px 1fr 45px; align-items:center; gap:10px; margin:13px 0; }
.rank-name { font-size:10px; }.rank-track { height:7px; background:#e6e6dd; }.rank-track b { display:block; height:100%; background:var(--green); }.rank-row:nth-child(2) b{background:#3b80c5}.rank-row:nth-child(3) b{background:#e0aa2e}.rank-row:nth-child(4) b{background:#a0a99f}
.rank-value { font:13px Georgia,serif; text-align:right; }

.section-intro { display:flex; justify-content:space-between; align-items:flex-end; padding: 4px 0 15px; }
.section-intro h2 { margin:0; font:500 21px Georgia,"Songti SC",serif; }.section-intro p{margin:5px 0 0;color:var(--muted);font-size:11px;}.section-kicker{color:var(--green);font:9px monospace;letter-spacing:.12em;}
.primary-button { border:0; background:var(--ink); color:white; padding:10px 14px; border-radius:3px; font-size:11px; cursor:pointer; box-shadow:3px 3px 0 var(--lime); }.primary-button:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--lime)}
.trend-detail-grid { grid-template-columns: minmax(0,1.55fr) 300px; }
.compare-dock{margin-bottom:13px;padding:14px 16px;position:relative;display:grid;grid-template-columns:190px 1fr;gap:14px;align-items:center;z-index:4}.compare-copy strong{display:block;font:15px Georgia,"Songti SC",serif;margin:4px 0}.compare-copy span{font-size:9px;color:var(--muted)}.compare-chips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.compare-chips>div{display:flex;align-items:center;gap:6px;padding:7px 7px 7px 9px;border:1px solid var(--line);background:#fff;font-size:9px}.compare-chips>div>i{width:7px;height:7px;border-radius:50%;background:var(--sku-color)}.compare-chips>div button{border:0;background:transparent;color:#97a098;cursor:pointer;font-size:15px;line-height:1;padding:0 1px}.compare-chips>div button:hover{color:var(--red)}.add-compare{height:32px;padding:0 10px;border:1px dashed var(--green);background:#edf3dc;color:var(--green);font-size:9px;cursor:pointer}.add-compare:disabled{opacity:.35;cursor:not-allowed}
.sku-picker{position:absolute;right:16px;top:65px;width:min(610px,calc(100vw - 310px));max-height:420px;overflow:auto;background:var(--card);border:1px solid #aeb7ad;box-shadow:0 20px 55px rgba(20,33,28,.2);padding:8px;display:grid;grid-template-columns:1fr 1fr;gap:4px;opacity:0;pointer-events:none;transform:translateY(-5px);transition:.18s}.sku-picker.open{opacity:1;pointer-events:auto;transform:none}.sku-picker-head{grid-column:1/-1;padding:8px 9px 11px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.sku-picker-head b{font:13px Georgia,"Songti SC",serif}.sku-picker-head span{font-size:8px;color:var(--muted)}.sku-picker>button{border:0;background:transparent;padding:9px;display:grid;grid-template-columns:8px 1fr auto;gap:8px;align-items:center;text-align:left;cursor:pointer}.sku-picker>button:hover:not(:disabled){background:#edf3dc}.sku-picker>button:disabled{opacity:.42;cursor:default}.sku-picker>button>i{width:7px;height:28px}.sku-picker>button span b{display:block;font-size:9px}.sku-picker>button span small{display:block;font-size:7px;color:var(--muted);margin-top:3px}.sku-picker>button em{font-style:normal;color:var(--green);font-size:8px}
.sku-trend-section{margin-top:0}.sku-chart-legend{display:flex;gap:7px;flex-wrap:wrap;padding:0 8px 8px}.sku-chart-legend span{font-size:8px;color:var(--muted);padding:5px 7px;background:#efefe8}.sku-chart-legend i{display:inline-block;width:13px;height:2px;margin-right:5px;vertical-align:middle}.sku-line{stroke-dasharray:1200;stroke-dashoffset:1200;animation:draw-line .95s ease forwards;animation-delay:var(--delay)}@keyframes draw-line{to{stroke-dashoffset:0}}.sku-point{animation:point-in .35s ease both;transform-box:fill-box;transform-origin:center}@keyframes point-in{from{opacity:0;transform:scale(0)}to{opacity:1;transform:scale(1)}}.sku-insight .mini-fact{grid-template-columns:55px 1fr}
.distribution-card{margin-top:13px;overflow:hidden}.distribution-actions{display:flex;align-items:center;gap:16px}.distribution-actions label{color:var(--muted);font-size:8px}.distribution-actions label>span{display:block;margin-bottom:4px}.distribution-actions label>div{height:31px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;padding:0 8px}.distribution-actions input{width:36px;border:0;background:transparent;outline:none;font:15px Georgia,serif;color:var(--ink)}.distribution-actions label b{font-size:8px;color:var(--muted)}.distribution-summary{display:flex;align-items:center;gap:8px;text-align:right}.distribution-summary b{font:27px Georgia,serif;color:var(--green)}.distribution-summary span{font-size:8px;color:var(--muted);line-height:1.4}.distribution-wrap{padding:0 17px 2px;overflow-x:auto}.distribution-chart{width:100%;min-width:840px;display:block}.distribution-grid{stroke:#dedfd6;stroke-width:1;stroke-dasharray:2 5}.distribution-axis,.distribution-axis-title{fill:#809087;font:9px sans-serif}.distribution-brand{fill:var(--green);font:8px monospace}.distribution-name{fill:var(--ink);font:10px "PingFang SC",sans-serif}.distribution-range{stroke-width:2;opacity:.35}.price-band{cursor:pointer;transform-box:fill-box;transform-origin:center;animation:band-in .45s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--delay)}.price-band circle{opacity:.82;stroke:#fbfaf5;stroke-width:2;transition:.16s}.price-band text{fill:#fff;font:bold 8px Georgia,serif;pointer-events:none}.price-band:hover circle{opacity:1;stroke:var(--ink);stroke-width:2.5;filter:drop-shadow(0 5px 6px rgba(0,0,0,.18))}.price-band:hover{transform:scale(1.12)}@keyframes band-in{from{opacity:0;transform:scale(.45)}to{opacity:1;transform:scale(1)}}.distribution-foot{padding:9px 18px 13px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted);font-size:8px}.distribution-foot span{display:flex;align-items:center;gap:5px}.bubble-sample{display:inline-block;border-radius:50%;background:var(--green);opacity:.65}.bubble-sample.small{width:8px;height:8px}.bubble-sample.large{width:15px;height:15px;margin-left:-2px}
.city-matrix-card{margin-top:13px;overflow:hidden}.city-matrix-head{padding:16px 18px 13px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.city-controls{display:flex;align-items:flex-end;gap:9px}.city-controls label{display:block;color:var(--muted);font-size:8px}.city-controls label>span{display:block;margin-bottom:5px}.city-controls label>div{height:32px;border:1px solid var(--line);background:#fff;display:flex;align-items:center;padding:0 8px}.city-controls input[type=number]{width:36px;border:0;background:transparent;color:var(--ink);font:15px Georgia,serif;outline:none}.city-controls label b{font-size:8px;color:var(--muted)}.threshold-control>div{width:185px;gap:8px}.threshold-control input{width:125px;accent-color:var(--green)}.threshold-control output{min-width:30px;font:bold 10px Georgia,serif;color:var(--green)}.city-rule-strip{margin:0 18px 13px;padding:9px 11px;background:var(--navy);color:#dbe6df;display:flex;align-items:center;gap:9px;font-size:8px}.city-rule-strip b{color:var(--lime);white-space:nowrap}.city-rule-strip span{flex:1;line-height:1.5}.city-rule-strip em{font-style:normal;color:#8eaaa0;white-space:nowrap}.city-price-wrap{overflow-x:auto;padding:0 16px 14px}.city-price-table{min-width:calc(190px + var(--city-cols) * 126px);border-top:1px solid var(--line);border-left:1px solid var(--line)}.city-price-row{display:grid;grid-template-columns:190px repeat(var(--city-cols),minmax(126px,1fr))}.city-price-row>div{min-height:79px;padding:10px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.city-price-row.head>div{min-height:auto;background:#e7e8df;color:var(--muted);font-size:8px;text-align:center;padding:8px}.city-price-row.head>div:first-child{text-align:left}.city-price-row.head .spread-head{background:#e3dfd7}.city-sku{position:relative;padding-left:17px!important}.city-sku i{position:absolute;left:8px;top:10px;bottom:10px;width:3px}.city-sku b{display:block;font-size:9px;line-height:1.45}.city-sku small{display:block;color:var(--muted);font-size:7px;margin-top:5px}.city-price-cell{background:rgba(255,255,255,.22);display:flex;flex-direction:column;justify-content:center;transition:.16s}.city-price-cell.active{background:#f0f4e4;cursor:help}.city-price-cell.active:hover{background:#e4eec8;box-shadow:inset 0 0 0 1px #aabf70}.city-price-cell.spread.active{background:#f0ece4}.city-price-cell.spread.active:hover{background:#e8dfd1;box-shadow:inset 0 0 0 1px #bca88d}.city-price-cell strong{font:14px Georgia,serif;color:var(--green)}.city-price-cell.spread strong{color:#8b6744}.city-price-cell span{font-size:7.5px;line-height:1.45;margin:4px 0;color:#415149}.city-price-cell small{font-size:7px;color:var(--muted)}.city-price-cell em{font-style:normal;color:#bbc0b9;text-align:center}.city-matrix-note{padding:10px 17px;border-top:1px solid var(--line);color:var(--muted);font-size:8px;background:#f2f1ea}.chart-tip .city-list{max-width:300px;line-height:1.7;margin-top:7px;color:#dce7df}.chart-tip .city-rule{color:#a9bab0;margin-top:5px;font-size:8px}
.sku-summary-grid{grid-template-columns:repeat(3,1fr);margin-top:13px}.sku-summary{padding:15px 17px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;position:relative}.sku-summary>i{position:absolute;left:0;top:0;bottom:0;width:4px}.sku-summary>span{grid-column:1/-1;font:8px monospace;color:var(--green);letter-spacing:.1em}.sku-summary h3{grid-column:1/-1;margin:0;font:14px Georgia,"Songti SC",serif}.sku-summary>div b{display:block;font:13px Georgia,serif}.sku-summary>div small{display:block;color:var(--muted);font-size:7px;margin-top:4px}
.narrative-card { padding-bottom:15px; }.narrative-lead{margin:3px 16px 13px;padding:14px;background:var(--navy);color:#fff}.narrative-lead>b{font:10px monospace;color:var(--lime)}.narrative-lead strong{display:block;font:15px Georgia,"Songti SC",serif;margin:8px 0}.narrative-lead p{font-size:9px;color:#afbeb5;line-height:1.6;margin:0}
.mini-fact { margin:0 16px;padding:10px 0;border-top:1px solid var(--line);display:grid;grid-template-columns:72px 1fr;align-items:center}.mini-fact span{font-size:9px;color:var(--muted)}.mini-fact b{font:13px Georgia,serif}.mini-fact small{grid-column:2;color:var(--muted);font-size:8px;margin-top:2px}
.range-bars{padding:7px 20px 19px}.range-row{display:grid;grid-template-columns:80px 1fr 65px;gap:10px;align-items:center;margin:18px 0;font-size:9px}.range-row>div{height:8px;background:#e5e6de;position:relative}.range-row i{position:absolute;top:1px;height:6px;background:#92b7a4}.range-row b{position:absolute;top:-3px;width:2px;height:14px;background:var(--ink)}.range-row em{font-style:normal;text-align:right;color:var(--muted)}.timeline.compact{margin:7px 22px 13px}.sku-table-card{margin-top:13px}.empty-state{text-align:center!important;padding:40px!important;color:var(--muted)}

.table-card { overflow:hidden; }
.data-toolbar { padding:14px 16px; display:flex; align-items:center; border-bottom:1px solid var(--line); gap:8px; }
.search { flex:1; min-width:180px; border:1px solid var(--line); background:#fff; padding:9px 11px; font-size:11px; outline:none; }.search:focus{border-color:var(--green)}
.mini-select { border:1px solid var(--line); background:transparent; padding:8px; font-size:10px; }
.data-table { width:100%; border-collapse:collapse; }
.data-table th { text-align:left; padding:11px 13px; background:#e8e7df; color:#6f7b73; font-size:9px; font-weight:500; letter-spacing:.04em; }
.data-table td { padding:12px 13px; border-top:1px solid #e7e6de; font-size:10px; vertical-align:middle; }
.data-table tbody tr { cursor:pointer; transition:.13s; }.data-table tbody tr:hover{background:#f1f5df}
.price { font:14px Georgia,serif; }.muted{color:var(--muted)}
.tag { display:inline-flex; align-items:center; padding:3px 6px; border-radius:2px; background:#e8ece8; color:#526259; font-size:9px; }.tag.danger{background:#fbe0dc;color:#b73931}.tag.ok{background:#deeee6;color:#176347}.tag.warn{background:#f7e9c8;color:#90620a}
.brand-dot { width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px; }
.pagination { padding:12px 15px;display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
.workbench-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:11px}.workbench-summary span{padding:10px 12px;border:1px solid var(--line);background:rgba(255,255,255,.3);font-size:9px;color:var(--muted)}.workbench-summary b{font:18px Georgia,serif;color:var(--ink);margin-right:5px}.table-scroll{overflow:auto}
.monitor-compare{margin-bottom:11px}.anomaly-rule-card{margin-bottom:11px;padding:16px 18px}.rule-title{display:flex;justify-content:space-between;align-items:center}.rule-title h3{font:18px Georgia,"Songti SC",serif;margin:4px 0 0}.rule-title button{border:1px solid var(--green);background:#edf3dc;color:var(--green);padding:8px 11px;font-size:9px;cursor:pointer}.rule-controls{display:grid;grid-template-columns:1.25fr .7fr 1fr 1fr;gap:9px;margin-top:14px}.rule-controls>label>span{display:block;color:var(--muted);font-size:8px;margin-bottom:5px}.rule-controls>label>div,.rule-controls select,.switch{height:36px;border:1px solid var(--line);background:#fff;width:100%;display:flex;align-items:center}.rule-controls>label>div{padding:0 9px;gap:8px}.rule-controls output{font:bold 12px Georgia,serif;color:var(--green);min-width:30px}.rule-controls .number-control input{width:45px;border:0;outline:0;font:15px Georgia,serif}.rule-controls .number-control b{font-size:8px;color:var(--muted)}.rule-controls select{padding:0 9px;font-size:9px;color:var(--ink)}.switch{padding:0 8px;gap:8px;cursor:pointer;text-align:left}.switch i{width:27px;height:14px;background:#cfd5cf;border-radius:9px;position:relative;transition:.2s}.switch i::after{content:"";position:absolute;width:10px;height:10px;left:2px;top:2px;border-radius:50%;background:#fff;transition:.2s}.switch.on i{background:var(--green)}.switch.on i::after{left:15px}.switch b{font-size:9px}.rule-sentence{display:flex;gap:9px;margin-top:12px;padding:9px 11px;background:var(--navy);color:#cbd8d0;font-size:8px;line-height:1.5}.rule-sentence b{color:var(--lime);white-space:nowrap}.anomaly-analysis-grid{grid-template-columns:.9fr 1.1fr;margin-bottom:11px}.anomaly-compare-card,.anomaly-city-card{overflow:hidden}.anomaly-average{text-align:right}.anomaly-average b{display:block;font:24px Georgia,serif;color:var(--green)}.anomaly-average span{font-size:8px;color:var(--muted)}.anomaly-bars{padding:2px 18px 12px}.anomaly-bar-row{display:grid;grid-template-columns:160px 1fr 42px;gap:10px;align-items:center;margin:14px 0}.anomaly-bar-row>div:first-child{position:relative;padding-left:11px}.anomaly-bar-row>div:first-child>i{position:absolute;left:0;top:1px;width:3px;height:27px}.anomaly-bar-row b{display:block;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.anomaly-bar-row small{display:block;color:var(--muted);font-size:7px;margin-top:4px}.anomaly-track{height:10px;background:#e6e7df;position:relative;overflow:visible}.anomaly-track span{display:block;height:100%;animation:grow-bar .55s ease both;animation-delay:var(--delay);transform-origin:left}@keyframes grow-bar{from{transform:scaleX(0)}}.anomaly-track>i{position:absolute;top:-3px;width:1px;height:16px;background:var(--ink)}.anomaly-bar-row>strong{font:15px Georgia,serif;text-align:right}.anomaly-legend{border-top:1px solid var(--line);padding:9px 18px;display:flex;gap:16px;color:var(--muted);font-size:8px}.anomaly-legend i{display:inline-block;width:14px;height:5px;background:var(--green);margin-right:5px}.anomaly-legend i.avg{width:1px;height:10px;background:var(--ink);vertical-align:middle}.anomaly-city-wrap{overflow:auto;padding:0 16px 14px}.anomaly-city-grid{min-width:620px;display:grid;grid-template-columns:105px repeat(var(--sku-count),minmax(115px,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.anomaly-city-grid>div{min-height:46px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.anomaly-city-grid .head{min-height:auto;background:#e7e8df;color:var(--muted);font-size:8px}.anomaly-city-grid .head i{display:inline-block;width:6px;height:6px;border-radius:50%;margin-right:5px}.anomaly-city-grid .head small{display:block;margin:3px 0 0 11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.city-name b{font-size:9px}.city-name small{display:block;font-size:7px;color:var(--muted);margin-top:4px}.anomaly-city-cell{text-align:center}.anomaly-city-cell b{display:block;font:14px Georgia,serif}.anomaly-city-cell span{font-size:7px}.anomaly-city-cell.low{background:#e5f0e7;color:#176347}.anomaly-city-cell.mid{background:#f7e9c8;color:#90620a}.anomaly-city-cell.high{background:#f5d9d4;color:#ae352e}.anomaly-table-head{padding-bottom:8px}

.strategy-grid { grid-template-columns: 1fr 1fr; }
.lab-panel { padding:20px; }
.lab-panel.dark { background:var(--navy); color:white; border-color:var(--navy); }
.lab-title { font:500 18px Georgia,"Songti SC",serif;margin-bottom:5px}.lab-desc{font-size:10px;color:var(--muted);line-height:1.6;margin-bottom:18px}.dark .lab-desc{color:#9eb0a6}
.control-group { margin:16px 0; }.control-label{display:flex;justify-content:space-between;font-size:10px;margin-bottom:8px}.control-label b{font:14px Georgia,serif;color:var(--green)}
input[type="range"] { width:100%; accent-color:var(--green); }
.position-map { height:238px; position:relative; border-left:1px solid #6a7a70;border-bottom:1px solid #6a7a70;margin:15px 10px 25px 32px;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:25% 25%;}
.axis-y,.axis-x{position:absolute;font-size:9px;color:#7f9287;letter-spacing:.08em}.axis-y{transform:rotate(-90deg);left:-56px;top:105px}.axis-x{bottom:-23px;left:42%}
.bubble { position:absolute;border-radius:50%;display:grid;place-items:center;text-align:center;font-size:9px;line-height:1.2;border:1px solid rgba(255,255,255,.3);cursor:pointer;transition:.3s ease;box-shadow:0 7px 20px rgba(0,0,0,.2)}.bubble:hover{transform:scale(1.12)}
.bubble.wusu{width:72px;height:72px;background:#d64638;left:31%;top:32%;}.bubble.bud{width:62px;height:62px;background:#3a6fbb;left:58%;top:25%;}.bubble.snow{width:67px;height:67px;background:#d8ba45;color:#18221d;left:20%;top:61%;}.bubble.tsing{width:57px;height:57px;background:#158b61;left:66%;top:62%;}.bubble.target{width:78px;height:78px;border:2px dashed var(--lime);background:rgba(200,240,74,.12);color:var(--lime);left:43%;top:45%;}
.result-card { padding:14px 0;border-top:1px solid rgba(255,255,255,.12);display:grid;grid-template-columns:1fr auto;gap:10px}.result-card span{color:#9baca2;font-size:10px}.result-card strong{font:17px Georgia,serif;color:var(--lime)}
.recommendation { margin-top:15px;padding:14px;background:rgba(200,240,74,.09);border-left:3px solid var(--lime);font-size:10px;line-height:1.7;color:#d8e0db}.recommendation b{color:var(--lime)}
.footnote{margin:4px 0 0}.competition-panel{padding:17px 18px}.competition-head{display:flex;justify-content:space-between;align-items:flex-start}.competition-delta{display:flex;gap:5px}.competition-delta span{min-width:73px;padding:7px 8px;background:rgba(255,255,255,.06);font-size:8px;color:#9aada2}.competition-delta b{display:block;font:17px Georgia,serif;margin-bottom:2px}.competition-delta .gain b{color:var(--lime)}.competition-delta .loss b{color:#ef7c70}
.competition-map{height:300px;margin-top:-7px;position:relative;isolation:isolate}.competition-map svg{width:100%;height:100%;overflow:visible;display:block}.map-surface{fill:rgba(3,15,10,.24);stroke:rgba(255,255,255,.055)}.comp-grid{stroke:rgba(255,255,255,.07);stroke-dasharray:1 7}.comp-axis,.zone-label,.map-axis-title{fill:#72887d;font:8px monospace;letter-spacing:.04em}.map-axis-title{font-size:7px;letter-spacing:.1em}.price-zone{fill:url(#strategy-zone);stroke:rgba(200,240,74,.13);stroke-dasharray:3 4}.zone-label{fill:#b7d86b;font-size:7px}.current-price-line{stroke:rgba(200,240,74,.28);stroke-width:1;stroke-dasharray:2 5}.relation-line{fill:none;stroke:#829289;stroke-width:var(--strength);opacity:.38;stroke-linecap:round;transition:opacity .2s,stroke-width .2s,filter .2s;stroke-dasharray:560;stroke-dashoffset:560;animation:relation-in .65s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:var(--delay)}.relation-line.gain{stroke:var(--lime)}.relation-line.loss{stroke:#ef7468}.competition-svg.has-focus .relation-line,.competition-svg.has-focus .comp-node{opacity:.12}.competition-svg.has-focus .relation-line.focused{opacity:1;stroke-width:calc(var(--strength) + 1.8px);filter:drop-shadow(0 0 4px currentColor)}.competition-svg.has-focus .comp-node.focused{opacity:1}.comp-node{cursor:pointer;opacity:.88;transition:opacity .18s;animation:node-in .4s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--delay)}.comp-node .node-halo{fill:var(--node-color);opacity:.08;transition:r .18s,opacity .18s}.comp-node .node-core{fill:var(--node-color);stroke:rgba(255,255,255,.75);stroke-width:1.3;filter:drop-shadow(0 5px 7px rgba(0,0,0,.28));transition:r .18s,stroke-width .18s}.comp-node:hover .node-halo,.comp-node.focused .node-halo{r:23;opacity:.23}.comp-node:hover .node-core,.comp-node.focused .node-core{r:13;stroke-width:2}.comp-node text{pointer-events:none}.node-initial{fill:white;font:bold 8px Georgia,serif}.node-label{fill:#f4f6f2;font:7px "PingFang SC",sans-serif;paint-order:stroke;stroke:#12251e;stroke-width:3px;stroke-linejoin:round}.comp-node .node-price{fill:#9eb1a6;font:6.5px monospace;paint-order:stroke;stroke:#12251e;stroke-width:3px}.target-node{filter:url(#target-glow);pointer-events:none}.target-glow{fill:rgba(200,240,74,.08);stroke:rgba(200,240,74,.32);stroke-width:1;stroke-dasharray:4 3;animation:target-breathe 2.4s ease-in-out infinite}.target-core{fill:#102019;stroke:var(--lime);stroke-width:1.8}.target-kicker{fill:#a9bcaf;font:6.5px "PingFang SC",sans-serif}.target-price{fill:var(--lime);font:bold 13px Georgia,serif}.competition-inspector{position:absolute;z-index:3;width:210px;padding:9px 11px;background:rgba(8,24,17,.96);border:1px solid rgba(255,255,255,.13);box-shadow:0 10px 30px rgba(0,0,0,.32);opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .15s,transform .15s}.competition-inspector.show{opacity:1;transform:none}.competition-inspector::before{content:"";position:absolute;left:-1px;top:-1px;bottom:-1px;width:3px;background:#85978d}.competition-inspector.gain::before{background:var(--lime)}.competition-inspector.loss::before{background:#ef7468}.competition-inspector>span{display:block;color:#91a69a;font:7px monospace;letter-spacing:.09em}.competition-inspector>b{display:block;margin:4px 0;color:white;font:13px Georgia,"Songti SC",serif}.competition-inspector.gain>b{color:var(--lime)}.competition-inspector.loss>b{color:#ff8b80}.competition-inspector>div{display:flex;gap:6px}.competition-inspector em{font-style:normal;font-size:7px;color:#d5dfd9;background:rgba(255,255,255,.06);padding:3px 5px}.competition-inspector small{display:block;margin-top:5px;color:#8fa197;font-size:7px}.competition-legend{display:flex;align-items:center;gap:12px;margin:-3px 5px 0;color:#8ea198;font-size:7px}.competition-legend span::before{content:"";display:inline-block;width:13px;height:2px;margin-right:5px;vertical-align:middle;background:#829289}.competition-legend .gain::before{background:var(--lime)}.competition-legend .loss::before{background:#ef7468}.competition-legend small{margin-left:auto;color:#6f8479}@keyframes relation-in{to{stroke-dashoffset:0}}@keyframes node-in{from{opacity:0;transform:translate(var(--tx,0),var(--ty,0)) scale(.45)}}@keyframes target-breathe{50%{stroke-opacity:.45;transform:scale(1.08);transform-origin:center}}
.impact-brief{margin-top:13px;overflow:hidden}.impact-brief-head{display:grid;grid-template-columns:155px 1fr 275px;gap:18px;align-items:center;padding:16px 18px;background:#f2f1e9;border-bottom:1px solid var(--line)}.movement-mark{height:70px;padding:10px 12px;background:var(--navy);color:#fff;display:grid;grid-template-columns:36px 1fr;align-items:center}.movement-mark>b{grid-row:1/3;font:31px Georgia,serif;color:var(--lime)}.movement-mark span{font-size:9px;color:#aec0b5}.movement-mark strong{font:18px Georgia,serif}.movement-mark.right>b{color:#73b9ec}.movement-mark.neutral>b{color:#a8b5ad}.movement-copy h3{font:17px Georgia,"Songti SC",serif;margin:5px 0}.movement-copy p{font-size:9px;line-height:1.6;color:var(--muted);margin:0}.movement-totals{display:grid;grid-template-columns:1fr 1fr;gap:7px}.movement-totals>div{padding:10px;border-left:3px solid var(--green);background:#e6eddf}.movement-totals>div.loss{border-color:#df5d52;background:#f3e4df}.movement-totals b{display:block;font:22px Georgia,serif;color:var(--green)}.movement-totals .loss b{color:#bd4037}.movement-totals span,.movement-totals small{display:block;font-size:8px}.movement-totals small{color:var(--muted);margin-top:3px}.impact-columns{display:grid;grid-template-columns:1fr 1fr}.impact-column{padding:14px 18px 8px}.impact-column+.impact-column{border-left:1px solid var(--line)}.impact-column-title{display:flex;justify-content:space-between;align-items:end;padding-bottom:9px;border-bottom:1px solid var(--line)}.impact-column-title b{font:15px Georgia,"Songti SC",serif}.impact-column.gain .impact-column-title b{color:var(--green)}.impact-column.loss .impact-column-title b{color:#b6433a}.impact-column-title span{font-size:8px;color:var(--muted)}.impact-item{display:grid;grid-template-columns:4px minmax(135px,1fr) 105px 145px;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line);animation:impact-in .35s ease both;animation-delay:var(--delay)}@keyframes impact-in{from{opacity:0;transform:translateY(4px)}}.impact-item>i{height:31px;background:var(--impact-color)}.impact-product b{display:block;font-size:9px}.impact-product small,.impact-overlap span,.impact-change span{display:block;color:var(--muted);font-size:7px;margin-top:4px}.impact-overlap b{font:12px Georgia,serif}.impact-change{text-align:right}.impact-change strong{font:19px Georgia,serif;color:var(--green)}.impact-change.loss strong{color:#c4483f}.impact-change strong small{font:8px sans-serif;margin-left:2px}.impact-empty{padding:20px 0;color:var(--muted);font-size:9px}.impact-method{padding:9px 18px;background:#efeee7;color:var(--muted);font-size:8px;border-top:1px solid var(--line)}
.comp-axis,.zone-label,.map-axis-title{font-size:9px}.map-axis-title{font-size:8px}.node-label{font-size:9px}.comp-node .node-price{font-size:8px}.target-kicker{font-size:8px}.target-price{font-size:15px}@keyframes node-in{from{opacity:0}}
.strategy-results{grid-template-columns:1fr 1fr 1fr;margin-top:13px}.relation-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.relation-number{padding:10px;border-left:2px solid #73877c;background:rgba(255,255,255,.04)}.relation-number strong{display:block;font:29px Georgia,serif;color:#fff}.relation-number span{display:block;font-size:9px;margin-top:3px}.relation-number small{font-size:7px;color:#82968b}.relation-number.gain{border-color:var(--lime)}.relation-number.gain strong{color:var(--lime)}.relation-number.loss{border-color:#ef7c70}.relation-number.loss strong{color:#ef7c70}
.benchmark-card{margin:13px 0;padding:0;overflow:hidden}.benchmark-card.loading{min-height:120px;padding:24px;display:grid;align-items:center}.benchmark-card.loading h3{font:18px Georgia,"Songti SC",serif;margin:5px 0}.benchmark-card.loading p{font-size:9px;color:var(--muted);margin:0}.benchmark-head{padding:16px 18px 13px;display:flex;justify-content:space-between;align-items:flex-start;border-bottom:1px solid var(--line)}.benchmark-head h3{font:19px Georgia,"Songti SC",serif;margin:5px 0}.benchmark-head p{font-size:9px;color:var(--muted);margin:0}.database-pill{display:grid;grid-template-columns:8px auto;gap:2px 7px;align-items:center;padding:8px 10px;background:#e7efdf;border:1px solid #cedbc2;color:var(--green)}.database-pill i{grid-row:1/3;width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(11,101,74,.09)}.database-pill span{font-size:8px}.database-pill b{font:10px Georgia,serif}.benchmark-national{display:grid;grid-template-columns:1.15fr 1fr 1fr;background:var(--navy);color:white}.benchmark-national>div{padding:14px 18px;border-right:1px solid rgba(255,255,255,.09)}.benchmark-national span,.benchmark-national small{display:block;font-size:8px;color:#91a69a}.benchmark-national strong{display:block;margin:5px 0 3px;font:28px Georgia,serif;color:var(--lime)}.benchmark-national>div:nth-child(2) strong{color:#fff}.benchmark-national>div:nth-child(3) strong{color:#ef8b80}.channel-benchmarks{display:grid;grid-template-columns:repeat(3,1fr)}.channel-benchmark{padding:14px 18px;border-right:1px solid var(--line);position:relative;transition:.18s}.channel-benchmark:last-child{border-right:0}.channel-benchmark.active{background:#eff4df;box-shadow:inset 0 3px 0 var(--lime)}.channel-benchmark>div:first-child{display:flex;justify-content:space-between;align-items:center}.channel-benchmark b{font-size:10px}.channel-benchmark span{font-size:7px;color:var(--muted)}.channel-benchmark>strong{display:block;font:23px Georgia,serif;margin:9px 0 7px}.benchmark-track{height:4px;background:#e4e5dc}.benchmark-track i{display:block;height:100%;background:var(--green);animation:grow-bar .55s ease both}.channel-benchmark small{display:block;margin-top:7px;color:var(--muted);font-size:7px}.channel-benchmark em{font-style:normal;color:var(--ink);font-weight:600}.benchmark-foot{padding:8px 18px;background:#efeee7;display:flex;justify-content:space-between;color:var(--muted);font-size:7px;border-top:1px solid var(--line)}
.competitor-list{display:grid;gap:5px;margin-top:12px}.competitor-list>div{display:grid;grid-template-columns:22px 1fr;gap:7px;padding:7px;border-bottom:1px solid var(--line)}.competitor-list>div>b{font:14px Georgia,serif;color:var(--green)}.competitor-list strong{display:block;font-size:9px}.competitor-list small{color:var(--muted);font-size:8px}.recommendation-panel .recommendation{background:#edf3dc;color:#3d4d43;border-color:var(--green)}.recommendation-panel .recommendation b{color:var(--green)}.danger-text{color:var(--red)!important}.evidence-trace-title{font-size:14px;margin-top:22px}

.evidence-layout { grid-template-columns: 1.1fr .9fr; }
.evidence-shot { min-height:350px;padding:20px;position:relative;overflow:hidden;background:#e7e4da;}
.phone { width:210px;height:360px;border:7px solid #1d2b25;border-radius:24px;background:white;margin:10px auto;box-shadow:0 20px 35px rgba(0,0,0,.18);overflow:hidden;position:relative}.phone-top{height:26px;background:#1d2b25;color:white;text-align:center;font-size:8px;padding-top:6px}.product-mock{height:138px;background:linear-gradient(145deg,#d53931,#941f1f);color:#ffd44e;display:grid;place-items:center;font:24px Georgia,serif;letter-spacing:.12em}.shop-line{padding:12px;font-size:8px;color:#69736d}.mock-price{padding:0 12px;font:28px Georgia,serif;color:#d43b32}.mock-price small{font:9px sans-serif}.coupon{margin:10px 12px;padding:7px;background:#fff0df;color:#b9471f;font-size:8px}.evidence-stamp{position:absolute;right:24px;top:30px;border:2px solid var(--red);color:var(--red);padding:8px;transform:rotate(8deg);font:12px Georgia,serif}
.evidence-info{padding:20px}.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:15px 0}.info-item{padding:12px;border:1px solid var(--line)}.info-item span{display:block;color:var(--muted);font-size:9px;margin-bottom:5px}.info-item strong{font-size:11px}.timeline{margin-top:15px;border-left:1px solid var(--line);padding-left:17px}.timeline-item{position:relative;margin:0 0 16px;font-size:10px}.timeline-item::before{content:"";position:absolute;left:-21px;top:3px;width:7px;height:7px;background:var(--green);border:2px solid var(--card);border-radius:50%}.timeline-item small{display:block;color:var(--muted);margin-top:4px}

.toast { position:fixed; right:24px; bottom:24px; background:var(--ink); color:#fff; padding:12px 16px; font-size:11px; z-index:200; box-shadow:4px 4px 0 var(--lime); opacity:0; transform:translateY(15px); transition:.25s; pointer-events:none; }.toast.show{opacity:1;transform:none}
.drawer-backdrop { position:fixed;inset:0;background:rgba(14,28,22,.35);z-index:49;opacity:0;pointer-events:none;transition:.2s;backdrop-filter:blur(2px)}.drawer-backdrop.open{opacity:1;pointer-events:auto}
.drawer { position:fixed;right:0;top:0;bottom:0;width:min(480px,92vw);background:var(--card);z-index:50;transform:translateX(102%);transition:.3s cubic-bezier(.2,.8,.2,1);box-shadow:-20px 0 50px rgba(0,0,0,.15);overflow-y:auto}.drawer.open{transform:none}.drawer-head{padding:26px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.drawer-close{border:0;background:transparent;font-size:22px;cursor:pointer}.drawer-body{padding:24px}.drawer-hero{padding:18px;background:var(--navy);color:white;margin-bottom:18px}.drawer-hero strong{display:block;font:26px Georgia,serif;color:var(--lime);margin:9px 0}.drawer-hero span{font-size:10px;color:#a6b5ac}.reason-list{display:grid;gap:9px}.reason{padding:12px;border:1px solid var(--line);font-size:10px;line-height:1.6}.reason b{display:block;margin-bottom:3px}.drawer-actions{display:flex;gap:8px;margin-top:20px}.drawer-actions button{flex:1;padding:10px;border:1px solid var(--ink);background:transparent;font-size:10px;cursor:pointer}.drawer-actions button:first-child{background:var(--ink);color:white}

@media (max-width: 1100px) {
  .sidebar{width:74px;padding-left:10px;padding-right:10px}.brand-lockup{padding-left:9px}.brand-lockup>div:last-child,.nav-label,.nav-badge,.side-status,.sidebar-foot{display:none}.nav-item{justify-content:center}.nav-item.active::before{left:-10px}.shell{margin-left:74px}.filter-chip:nth-of-type(2){display:none}.kpi-grid{grid-template-columns:repeat(2,1fr)}.trend-detail-grid{grid-template-columns:1fr}.strategy-results{grid-template-columns:1fr 1fr}.recommendation-panel{grid-column:1/-1}.sku-summary-grid{grid-template-columns:1fr 1fr}.compare-dock{grid-template-columns:160px 1fr}.rule-controls{grid-template-columns:1fr 1fr}.anomaly-analysis-grid{grid-template-columns:1fr}.impact-brief-head{grid-template-columns:145px 1fr}.movement-totals{grid-column:1/-1;grid-template-columns:1fr 1fr}.impact-item{grid-template-columns:4px minmax(110px,1fr) 90px 125px}
}
@media (max-width: 760px) {
  .sidebar{position:fixed;inset:auto 0 0 0;width:100%;height:62px;flex-direction:row;padding:6px 10px;z-index:80}.brand-lockup{display:none}#nav{display:flex;width:100%;justify-content:space-around}.nav-item{width:auto;flex:1;padding:8px}.nav-item.active::before{left:25%;bottom:-6px;width:50%;height:3px}.shell{margin-left:0;padding:0 14px 80px}.topbar{height:88px}.top-actions .date-control{display:none}.filter-rail{overflow-x:auto}.filter-spacer,.filter-chip,.filter-more{display:none}.segmented{min-width:max-content}.kpi-grid,.main-grid,.bottom-grid,.strategy-grid,.strategy-results,.evidence-layout,.sku-summary-grid{grid-template-columns:1fr}.main-grid{margin-top:11px}.topbar h1{font-size:24px}.data-table th:nth-child(3),.data-table td:nth-child(3),.data-table th:nth-child(5),.data-table td:nth-child(5){display:none}.section-intro{align-items:flex-start;gap:10px}.primary-button{white-space:nowrap}.trend-chart{height:220px}.executive-body{grid-template-columns:1fr}.score-ring{margin:auto}.risk-row{grid-template-columns:76px 1fr 32px}.risk-row small{display:none}.workbench-summary{grid-template-columns:1fr 1fr}.context-line{overflow:auto;white-space:nowrap}.competition-head{display:block}.competition-delta{margin-bottom:10px}.competition-map{height:250px}.relation-summary{grid-template-columns:1fr}.recommendation-panel{grid-column:auto}.filter-menu{width:calc(100vw - 28px);left:14px!important}.compare-dock{grid-template-columns:1fr}.sku-picker{right:7px;left:7px;top:116px;width:auto;grid-template-columns:1fr}.distribution-head{display:block}.distribution-actions{justify-content:space-between;margin-top:12px}.distribution-foot{display:grid;gap:6px}.distribution-chart{min-width:780px}.compare-chips>div{max-width:100%}.compare-chips>div span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.city-matrix-head{display:block}.city-controls{margin-top:12px;align-items:flex-end}.threshold-control>div{width:170px}.threshold-control input{width:110px}.city-rule-strip{align-items:flex-start;flex-wrap:wrap}.city-rule-strip span{flex-basis:calc(100% - 75px)}.city-rule-strip em{margin-left:75px}.city-price-wrap{padding-left:10px;padding-right:10px}.rule-controls{grid-template-columns:1fr}.rule-sentence{display:block}.rule-sentence b{display:block;margin-bottom:4px}.anomaly-bar-row{grid-template-columns:125px 1fr 38px}.anomaly-legend{display:grid;gap:6px}.anomaly-city-wrap{padding-left:10px;padding-right:10px}.impact-brief-head{grid-template-columns:1fr}.movement-totals{grid-template-columns:1fr 1fr}.impact-columns{grid-template-columns:1fr}.impact-column+.impact-column{border-left:0;border-top:1px solid var(--line)}.impact-item{grid-template-columns:4px 1fr 86px}.impact-change{grid-column:2/-1;display:flex;align-items:end;justify-content:space-between;text-align:left}.impact-change span{margin-bottom:2px}.impact-column-title span{display:none}
}
@media (max-width:760px){.signal-row{display:grid}}
@media (max-width:760px){.benchmark-head{display:block}.database-pill{margin-top:12px;width:max-content}.benchmark-national,.channel-benchmarks{grid-template-columns:1fr}.benchmark-national>div,.channel-benchmark{border-right:0;border-bottom:1px solid rgba(255,255,255,.09)}.channel-benchmark{border-bottom-color:var(--line)}.benchmark-foot{display:grid;gap:4px}.competition-legend{flex-wrap:wrap}.competition-legend small{width:100%;margin-left:0}}
