:root{--bg: #f4f4f2;--panel: #fcfcfb;--text: #0b0b0b;--text-2: #52514e;--muted: #68675f;--border: #e6e5e1;--grid: #ecebe7;--accent: #1f68c1;--accent-soft: #e6f0fc;--green: #127a2f;--green-bg: #e4f4e6;--red: #c02f2f;--red-bg: #fbeaea;--amber: #8a5a00;--amber-bg: #fdf2dc;--blue: #1c5cab;--blue-bg: #e6f0fc;--gray-bg: #efeeea;--series-1: #2a78d6;--series-2: #e35f2a;--series-3: #14966a;--series-4: #c08400;--series-5: #d35d8c;--series-6: #008300;--series-7: #6250d6;--series-8: #e34948;--series-other: #8a8983;--seq-1: #a3c6f3;--seq-2: #74a9ec;--seq-3: #4a8fe2;--seq-4: #2a78d6;--seq-5: #1c5cab;--seq-6: #104281;--radius: 12px;--shadow: 0 1px 2px rgba(20, 20, 18, .04), 0 1px 1px rgba(20, 20, 18, .03);color-scheme:light}:root[data-theme=dark]{--bg: #111110;--panel: #1a1a19;--text: #f0efec;--text-2: #c3c2b7;--muted: #8f8e88;--border: #2c2c2a;--grid: #262624;--accent: #3987e5;--accent-soft: #1b2a3f;--green: #4cc76a;--green-bg: #15291a;--red: #ef7070;--red-bg: #361818;--amber: #f2b84b;--amber-bg: #33270f;--blue: #86b6ef;--blue-bg: #1b2a3f;--gray-bg: #242422;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--series-other: #77766f;--seq-1: #104281;--seq-2: #1c5cab;--seq-3: #256abf;--seq-4: #3987e5;--seq-5: #6da7ec;--seq-6: #9ec5f4;--shadow: none;color-scheme:dark}@media(prefers-color-scheme:dark){:root[data-theme=auto]{--bg: #111110;--panel: #1a1a19;--text: #f0efec;--text-2: #c3c2b7;--muted: #8f8e88;--border: #2c2c2a;--grid: #262624;--accent: #3987e5;--accent-soft: #1b2a3f;--green: #4cc76a;--green-bg: #15291a;--red: #ef7070;--red-bg: #361818;--amber: #f2b84b;--amber-bg: #33270f;--blue: #86b6ef;--blue-bg: #1b2a3f;--gray-bg: #242422;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--series-other: #77766f;--seq-1: #104281;--seq-2: #1c5cab;--seq-3: #256abf;--seq-4: #3987e5;--seq-5: #6da7ec;--seq-6: #9ec5f4;--shadow: none;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 -apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:22px;margin:0}h2{font-size:17px;margin:0}h3{font-size:15px;margin:0}h4{margin:16px 0 6px;font-size:13px;color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}input,select{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:7px 10px;min-width:0}input:focus,select:focus{outline:2px solid var(--accent-soft);border-color:var(--accent)}.boot{padding:40px;color:var(--muted)}.shell{display:flex;min-height:100vh}.sidebar{width:210px;flex-shrink:0;background:var(--panel);border-right:1px solid var(--border);padding:16px 10px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:8px;font-weight:600;padding:4px 8px 16px}.theme-toggle{margin-left:auto;flex-shrink:0;white-space:nowrap;font-size:12px;font-weight:400;padding:2px 6px;border:1px solid var(--border);border-radius:6px}.theme-toggle:hover{border-color:var(--muted)}.sidebar .brand{white-space:nowrap;gap:6px;padding-left:4px;padding-right:4px}.brand.big{font-size:18px;justify-content:center;padding-bottom:8px}.logo{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--accent);color:#fff;font-size:14px}.sidebar nav{display:flex;flex-direction:column;gap:2px}.sidebar nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:var(--text)}.sidebar nav a:hover{background:var(--gray-bg);text-decoration:none}.sidebar nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-icon{width:18px;text-align:center;opacity:.8}.logout{margin-top:auto;text-align:left;padding:8px 10px}.main{flex:1;min-width:0;padding:24px 28px 48px;max-width:1280px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-header p{margin:4px 0 0}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.ad-date-filter{display:flex;flex-direction:column;align-items:flex-end;gap:10px;max-width:100%}.ad-date-filter .segmented{flex-wrap:wrap;max-width:100%}.ad-date-field{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:13px}.ad-custom-dates{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:10px}.ad-date-field input{max-width:100%}.store-bar{display:flex;align-items:center;gap:10px;margin-bottom:16px}.store-bar label{color:var(--muted)}.store-bar select{min-width:260px;max-width:100%}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:7px 14px;white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.danger{color:var(--red)}.btn.small{padding:4px 10px;font-size:13px}.btn.block{width:100%}.link{background:none;border:none;color:var(--muted);cursor:pointer;font:inherit}.link:hover{color:var(--text)}.muted{color:var(--muted)}.small{font-size:12px}.center{text-align:center}.num{text-align:right;font-variant-numeric:tabular-nums}.row{display:flex;align-items:center}.row.between{justify-content:space-between;gap:12px}.row.gap{gap:10px;flex-wrap:wrap}.error-box{background:var(--red-bg);color:var(--red);border-radius:8px;padding:8px 12px;margin:8px 0;word-break:break-word}.ok-box{background:var(--green-bg);color:var(--green);border-radius:8px;padding:8px 12px;margin:8px 0 16px}.ok-box p{margin:4px 0}.error-text{color:var(--red)}.badge{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;margin-right:4px;white-space:nowrap;background:var(--gray-bg);color:var(--muted)}.badge.green{background:var(--green-bg);color:var(--green)}.badge.red{background:var(--red-bg);color:var(--red)}.badge.amber{background:var(--amber-bg);color:var(--amber)}.badge.blue{background:var(--blue-bg);color:var(--blue)}.currency-section{margin-bottom:32px}.section-title{font-size:16px;margin:8px 0 12px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.kpi{display:flex;flex-direction:column;gap:6px;padding:16px 18px}.kpi-label{color:var(--text-2);font-size:13px}.kpi-value{font-size:26px;font-weight:650;letter-spacing:-.01em;font-variant-numeric:tabular-nums;line-height:1.15}.kpi.hero .kpi-value{font-size:30px}.kpi-foot{display:flex;align-items:center;gap:10px;font-size:12px}.kpi-foot em{font-style:normal;color:var(--muted)}.delta{display:inline-flex;align-items:center;gap:3px;font-size:12px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}.delta.up{color:var(--green)}.delta.down,.delta.up.invert{color:var(--red)}.delta.down.invert{color:var(--green)}.delta.neutral{color:var(--text-2)}.delta.flat,.delta.none{color:var(--muted);font-weight:500}.delta-label{color:var(--muted);font-weight:400}.segmented{display:inline-flex;background:var(--gray-bg);border-radius:9px;padding:3px;gap:2px}.segmented button{font:inherit;border:none;background:none;color:var(--text-2);padding:5px 12px;border-radius:7px;cursor:pointer;white-space:nowrap}.segmented button.on{background:var(--panel);color:var(--text);font-weight:600;box-shadow:0 1px 2px #00000014}.segmented.small button{padding:3px 10px;font-size:13px}.chart-card{margin-bottom:14px;padding:18px 18px 10px}.chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.chart-head p{margin:2px 0 0}.legend{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--text-2);margin-bottom:4px}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i,.dot-mark,.swatch{display:inline-block;width:10px;height:10px;border-radius:3px;flex-shrink:0}.trend{position:relative;width:100%}.trend svg{display:block;overflow:visible;touch-action:pan-y}.trend .grid{stroke:var(--grid);stroke-width:1}.trend .axis{fill:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.trend .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.trend .area{opacity:.1}.trend .line.partial{stroke-dasharray:4 4}.chart-controls{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.trend .crosshair{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}.trend .dot{stroke:var(--panel);stroke-width:2}.tooltip{position:absolute;pointer-events:none;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 20px #0000001f;padding:8px 10px;font-size:12px;min-width:160px;z-index:2}.tip-title{color:var(--text-2);margin-bottom:4px}.tip-row{display:flex;align-items:center;gap:6px;padding:1px 0}.tip-name{flex:1;color:var(--text-2);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tip-row b{font-variant-numeric:tabular-nums}.table-title{display:flex;align-items:baseline;gap:10px;padding:14px 16px 4px}.ranking td{padding-top:12px;padding-bottom:12px}.ranking .rank{color:var(--muted);width:28px;font-variant-numeric:tabular-nums}.store-name{display:flex;align-items:center;gap:8px;font-weight:600}.bar-cell{min-width:180px}.bar-cell b{font-variant-numeric:tabular-nums}.hbar{height:6px;background:var(--gray-bg);border-radius:3px;margin-top:6px;overflow:hidden}.hbar span{display:block;height:100%;border-radius:3px}.spark{display:block}.spark path{fill:none;stroke-width:1.5;stroke-linejoin:round}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{font:inherit;font-size:13px;cursor:pointer;border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:999px;padding:4px 12px}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.search{display:flex;gap:6px}.search input{width:260px}.table-card{padding:0;overflow-x:auto}table{width:100%;border-collapse:collapse}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);vertical-align:middle}th{font-size:12px;color:var(--muted);font-weight:500;white-space:nowrap;background:var(--panel)}tbody tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--gray-bg)}td.thumb{width:52px;padding-right:0}td.thumb img{width:40px;height:40px;object-fit:cover;border-radius:6px;display:block;background:var(--gray-bg)}.actions-cell{white-space:nowrap;text-align:right}.actions-cell .btn{margin-left:4px}.pager{display:flex;justify-content:center;align-items:center;gap:12px;margin-top:12px}.modal-backdrop{position:fixed;inset:0;background:#0a0e1673;display:grid;place-items:center;padding:16px;z-index:10}.modal{background:var(--panel);border-radius:12px;width:min(760px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;box-shadow:0 20px 50px #00000040}.modal header,.modal footer{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--border)}.modal footer{border-bottom:none;border-top:1px solid var(--border);justify-content:flex-end;gap:8px}.modal-body{padding:16px 18px;overflow-y:auto}.form{display:flex;flex-direction:column;gap:12px}.form label,.login-card label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:13px}.form label input,.form label select{color:var(--text);font-size:14px}input.price{width:100px;text-align:right}.variants th,.variants td,.lines td,.diff th,.diff td{padding:6px 8px}.sums{display:grid;grid-template-columns:1fr auto;gap:4px 24px;margin:12px 0 0 auto;max-width:280px}.sums dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}.help{color:var(--muted);font-size:13px;margin-top:12px}.help summary{cursor:pointer;color:var(--accent)}.help ol{padding-left:20px}.json{background:var(--gray-bg);padding:12px;border-radius:8px;overflow-x:auto;font-size:12px;margin:8px 0 0}.inline-form{display:flex;gap:8px;margin-bottom:16px}.inline-form input{flex:1;max-width:360px}code.copy{display:block;padding:8px;background:var(--panel);border-radius:6px;cursor:copy;word-break:break-all;color:var(--text)}.empty{text-align:center;padding:48px 16px;color:var(--muted)}.empty h3{color:var(--text);margin-bottom:8px}.empty .help{text-align:left;max-width:520px;margin:12px auto}.login{min-height:100vh;display:grid;place-items:center;padding:16px}.login-card{width:min(360px,100%);display:flex;flex-direction:column;gap:14px;padding:28px}@media(max-width:800px){.ad-date-filter{align-items:flex-start}.ad-custom-dates{justify-content:flex-start}.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;border-right:none;border-bottom:1px solid var(--border);padding:10px 16px}.sidebar nav{flex-direction:row;overflow-x:auto}.sidebar nav a{white-space:nowrap}.brand{padding-bottom:8px}.logout{display:none}.main{padding:16px}.kpis{grid-template-columns:repeat(2,1fr)}.kpi-value,.kpi.hero .kpi-value{font-size:20px}.ranking th:nth-child(6),.ranking td:nth-child(6),.ranking th:nth-child(8),.ranking td:nth-child(8){display:none}.search,.search input{width:100%}.store-bar select{min-width:0;flex:1}}.warn-box{background:var(--amber-bg);color:var(--amber);border-radius:8px;padding:8px 12px;margin:8px 0}.good-text{color:var(--green)}.tone-red{color:var(--red)}.tone-green{color:var(--green)}.tone-amber{color:var(--amber)}a.link-card{color:inherit;text-decoration:none;transition:border-color .15s}a.link-card:hover{border-color:var(--accent);text-decoration:none}.nav-group{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}.nav-title{font-size:11px;color:var(--muted);padding:6px 10px 2px;letter-spacing:.04em}.kpis.five{grid-template-columns:repeat(5,1fr)}.kpis.six{grid-template-columns:repeat(6,1fr)}.kol-panel{margin-bottom:14px}.funnel{display:grid;gap:8px;margin:6px 0 10px}.funnel-row{display:grid;grid-template-columns:64px 1fr 92px;align-items:center;gap:10px;font-size:13px}.funnel-track{height:14px;background:var(--surface-2, var(--border));border-radius:4px;overflow:hidden}.funnel-track span{display:block;height:100%;background:var(--series-1);border-radius:0 4px 4px 0;min-width:2px}.funnel-num{text-align:right;font-variant-numeric:tabular-nums}.recovery{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:6px 0 12px}.recovery>div{display:grid;gap:2px}.recovery b{font-size:22px;font-variant-numeric:tabular-nums}.kv.compact{margin:6px 0 0}.warn-text{color:var(--amber, #b26b00)}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tabs a{padding:8px 14px;color:var(--text-2);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.tabs a:hover{text-decoration:none;color:var(--text)}.tabs a.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.count{font-size:11px;border-radius:999px;padding:0 6px;background:var(--gray-bg);color:var(--text-2)}.count.red{background:var(--red-bg);color:var(--red)}.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}.column{background:var(--gray-bg);border-radius:var(--radius);padding:10px;display:flex;flex-direction:column;gap:8px;min-height:120px}.column-head{display:flex;justify-content:space-between;font-weight:600;font-size:13px;padding:2px 4px}.column-empty{color:var(--muted);text-align:center;padding:12px}.work-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px;cursor:pointer}.work-card:hover{border-color:var(--accent)}.work-card.overdue{border-left:3px solid var(--red)}.work-title{font-weight:600;line-height:1.35}.work-meta{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--text-2)}.work-card select{font-size:12px;padding:3px 6px}.source-tag{align-self:flex-start;font-size:11px;color:var(--blue);background:var(--blue-bg);border-radius:4px;padding:0 6px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.grid-2>.card{margin:0}.span-2{grid-column:span 2}.table-card{margin-bottom:14px}.form.two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form.two-col .full{grid-column:span 2}textarea{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:7px 10px}.map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.map-grid label{display:flex;flex-direction:column;gap:4px;color:var(--muted);font-size:13px}.kv{display:grid;grid-template-columns:100px 1fr;gap:8px 12px;margin:12px 0 0}.kv dt{color:var(--muted)}.kv dd{margin:0;word-break:break-all}.attention{margin-bottom:20px;border-left:4px solid var(--amber)}.attention.clear{border-left-color:var(--green)}.attention ul{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.attention li a{color:var(--text)}.attention li.red a{color:var(--red)}.section-title{display:flex;align-items:baseline;gap:10px}.section-title a{margin-left:auto;font-weight:400}.empty-inline{display:block;margin-bottom:14px;color:var(--text-2)}.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:12px;margin-bottom:20px}.team-card{display:flex;flex-direction:column;gap:12px;color:inherit}.team-card:hover{text-decoration:none;border-color:var(--accent)}.team-nums{display:grid;grid-template-columns:repeat(3,1fr)}.team-nums b{display:block;font-size:20px;font-variant-numeric:tabular-nums}.team-nums span{font-size:12px;color:var(--muted)}.team-extra{font-size:12px;color:var(--text-2);border-top:1px dashed var(--border);padding-top:8px}.stage-bar{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden;background:var(--gray-bg)}.stage-bar span{display:block;height:100%}.stage-legend{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:11px;color:var(--muted);margin-top:4px}@media(max-width:800px){.kpis.five,.kpis.six{grid-template-columns:repeat(2,1fr)}.grid-2{grid-template-columns:1fr}.span-2{grid-column:auto}.form.two-col{grid-template-columns:1fr}.form.two-col .full{grid-column:auto}.nav-group{display:contents}.nav-title{display:none}}.goals{margin-bottom:14px}.pace-cell{min-width:220px}.pace-bar{position:relative;height:10px;margin-top:6px;background:var(--border);border-radius:4px}.pace-fill{position:absolute;inset:0 auto 0 0;background:var(--series-1);border-radius:4px}.pace-mark{position:absolute;top:-3px;bottom:-3px;width:2px;margin-left:-1px;background:var(--text);border-radius:1px;box-shadow:0 0 0 2px var(--panel)}button.empty-inline{width:100%;text-align:left;font:inherit;cursor:pointer}.section-title .link{margin-left:auto}.goals-form{width:100%;margin-top:8px;border-collapse:collapse}.goals-form th{text-align:left;font-weight:500;color:var(--text-2);font-size:12px;padding:4px 6px}.goals-form td{padding:6px;vertical-align:top}.goals-form input{width:100%;min-width:0}.definitions{margin-top:14px;font-size:13px;color:var(--text-2)}.definitions summary{cursor:pointer;color:var(--text);font-weight:500}.definitions ul{margin:10px 0 0;padding-left:18px;display:grid;gap:6px;line-height:1.6}.card-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:10px}.card-head h3{margin:0}.kol-panel .kv{grid-template-columns:96px 1fr}.row.wrap{flex-wrap:wrap;gap:10px}.legend-item{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:transparent;color:var(--text-2);border-radius:999px;padding:2px 10px;font:inherit;font-size:12px;cursor:pointer}.chart-card .legend{margin:10px 0 4px;align-items:center}.title-cell{max-width:360px}.table-note{padding:8px 16px 12px;margin:0}.switch{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;color:var(--muted);white-space:nowrap}.switch input{width:16px;height:16px;accent-color:var(--accent, #2563eb);cursor:pointer}tr.dim td{opacity:.55}tr.dim td:first-child,tr.dim td.actions-cell{opacity:1}
