:root{--bg:#04070d;--bg-glow:radial-gradient(circle at 12% 8%,rgba(105,170,255,.1),transparent 55%), radial-gradient(circle at 88% 92%,rgba(217,70,239,.12),transparent 60%);--card:rgba(20,28,42,.65);--card2:rgba(30,42,58,.78);--glass:rgba(255,255,255,.025);--glass-strong:rgba(255,255,255,.05);--line:rgba(255,255,255,.08);--line-strong:rgba(255,255,255,.14);--txt:#eaf2fa;--mut:#8a9bb0;--mut2:#5a6a80;--acc:#3d9bff;--acc2:#67e8f9;--ok:#3dd68c;--warn:#ffb84d;--danger:#ff6b6b;--info:#57c7ff;--purple:#a78bfa;--pink:#ec4899;--gb-pri:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);--gb-text:linear-gradient(135deg,#67e8f9 0%,#a78bfa 100%);--gb-logo:linear-gradient(135deg,#67e8f9 0%,#a78bfa 50%,#ec4899 100%);--gb-hot:linear-gradient(135deg,#ff6b6b 0%,#ec4899 50%,#a855f7 100%);--hover-row:linear-gradient(90deg,rgba(236,72,153,.1) 0%,rgba(168,85,247,.1) 100%);--sidebar-bg:rgba(8,14,24,.82);--logo-txt:#04070d;--pill-bg:rgba(0,0,0,.4);--tier-bg:rgba(255,255,255,.06);--suggest-bg:rgba(0,0,0,.2);--modal-mask:rgba(0,0,0,.7);--modal-bg:rgba(20,28,42,.92);--scroll-thumb:rgba(255,255,255,.08);--scroll-thumb-hover:rgba(255,255,255,.16);--nav-active-bg:linear-gradient(90deg,rgba(103,232,249,.1) 0%,rgba(167,139,250,.1) 100%);--nav-active-border:rgba(103,232,249,.22);--nav-active-shadow:inset 0 0 18px rgba(103,232,249,.06)}html[data-theme=light]{--bg:#eef2f7;--bg-glow:radial-gradient(circle at 12% 8%,rgba(37,99,235,.08),transparent 55%), radial-gradient(circle at 88% 92%,rgba(217,70,239,.07),transparent 60%);--card:rgba(255,255,255,.82);--card2:rgba(245,247,250,.9);--glass:rgba(255,255,255,.5);--glass-strong:rgba(255,255,255,.75);--line:rgba(15,30,55,.1);--line-strong:rgba(15,30,55,.18);--txt:#1b2a3a;--mut:#5a6b80;--mut2:#8a9bb0;--acc:#2f7ce0;--acc2:#0e7490;--ok:#12a05c;--warn:#d97706;--danger:#dc2626;--info:#0284c7;--purple:#7c5cf0;--pink:#db2777;--gb-pri:linear-gradient(135deg,#2563eb 0%,#3b82f6 100%);--gb-text:linear-gradient(135deg,#0e7490 0%,#7c5cf0 100%);--gb-logo:linear-gradient(135deg,#2563eb 0%,#7c5cf0 50%,#db2777 100%);--gb-hot:linear-gradient(135deg,#dc2626 0%,#db2777 50%,#7c5cf0 100%);--hover-row:linear-gradient(90deg,rgba(37,99,235,.08) 0%,rgba(124,92,240,.08) 100%);--sidebar-bg:rgba(255,255,255,.88);--logo-txt:#fff;--pill-bg:rgba(15,30,55,.06);--tier-bg:rgba(15,30,55,.06);--suggest-bg:rgba(15,30,55,.05);--modal-mask:rgba(20,30,50,.45);--modal-bg:rgba(255,255,255,.96);--scroll-thumb:rgba(15,30,55,.18);--scroll-thumb-hover:rgba(15,30,55,.32);--nav-active-bg:linear-gradient(90deg,rgba(37,99,235,.1) 0%,rgba(124,92,240,.1) 100%);--nav-active-border:rgba(37,99,235,.22);--nav-active-shadow:inset 0 0 18px rgba(37,99,235,.06)}*{box-sizing:border-box;margin:0}html,body{height:100%}body{background:var(--bg);background-image:var(--bg-glow);background-attachment:fixed;color:var(--txt);font-family:Microsoft YaHei,system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.5;min-height:100vh}#appRoot{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.sidebar{position:fixed;left:0;top:0;width:232px;height:100vh;background:var(--sidebar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;z-index:50}.logo{display:flex;align-items:center;gap:8px;padding:4px 6px 22px}.logo-mark{width:34px;height:34px;border-radius:7px;object-fit:cover;box-shadow:0 3px 10px #e85d0459}.logo-title{font-size:12.5px;font-weight:600;letter-spacing:.3px;white-space:nowrap}.logo-sub{font-size:9.5px;color:var(--mut);letter-spacing:1.2px;margin-top:1px;white-space:nowrap}.nav{display:flex;flex-direction:column;gap:4px}.nav-item{font-size:13px;color:var(--mut);padding:10px 14px;border-radius:10px;cursor:pointer;display:flex;align-items:center;gap:10px;transition:background .2s,color .2s,border-color .2s;border:1px solid transparent}.nav-item:hover{background:var(--glass-strong);color:var(--txt)}.nav-item.active{background:var(--nav-active-bg);color:var(--acc2);border-color:var(--nav-active-border);box-shadow:var(--nav-active-shadow)}.nav-icon{font-size:14px}.main-area{grid-column:2;padding:18px 26px 32px;min-width:0}.brand-row{display:flex;justify-content:flex-end;margin-bottom:8px}.brand{font-size:10px;color:var(--mut);letter-spacing:2px}.page-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;flex-wrap:wrap}.page-title{font-size:24px;font-weight:700;background:var(--gb-text);-webkit-background-clip:text;background-clip:text;color:transparent;letter-spacing:1px;line-height:1.2}.page-pills{display:flex;gap:8px;flex-wrap:wrap}.pill-pill{font-size:11.5px;color:var(--mut);background:var(--pill-bg);border:1px solid var(--line);border-radius:18px;padding:5px 12px}.page-actions{margin-left:auto;display:flex;gap:10px}.btn-ghost{font-size:12.5px;padding:7px 16px;border-radius:8px;cursor:pointer;background:transparent;color:var(--txt);border:1px solid var(--line-strong);display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none;transition:background .2s}.btn-ghost:hover{background:var(--glass-strong)}.btn-pri{font-size:12.5px;padding:7px 18px;border-radius:8px;cursor:pointer;background:var(--gb-pri);color:#fff;font-weight:600;border:none;display:flex;align-items:center;gap:6px;-webkit-user-select:none;user-select:none;box-shadow:0 4px 14px #2563eb66;transition:transform .15s,box-shadow .15s}.btn-pri:hover{transform:translateY(-1px);box-shadow:0 6px 18px #2563eb8c}.view{display:none}.view.on{display:block}.gb-glass{background:var(--card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:14px;padding:14px 16px}.filter-card{margin-bottom:14px;padding:12px 14px 4px}.filter-card #side{display:grid;grid-template-columns:1fr 1fr;gap:6px 22px;align-items:center}.filter-row{display:flex;align-items:center;gap:10px;font-size:12px}.filter-row.sp-row{grid-column:1/-1;align-items:flex-start}.filter-row.sp-row .ft{margin-top:6px}.sp-box{display:flex;flex-direction:column;flex:1;min-width:0}.filter-row .ft{color:var(--txt);min-width:54px;letter-spacing:.5px;font-size:13px;font-weight:700}.filter-row .ft b{color:var(--txt);font-weight:600}.seg{display:flex;gap:6px;flex-wrap:wrap}.seg .s{font-size:12px;padding:5px 11px;border:1px solid var(--line);border-radius:18px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:transparent;transition:all .15s}.seg .s.on{background:var(--gb-pri);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 2px 10px #2563eb59}.seg .s:hover:not(.on){background:var(--glass-strong);color:var(--txt)}.sr-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-bottom:5px}.sr-row:last-child{margin-bottom:0}.sr-sales{font-size:12px;padding:5px 11px;border:1px solid var(--line);border-radius:18px;cursor:pointer;color:var(--txt);-webkit-user-select:none;user-select:none;background:transparent;transition:all .15s;font-weight:600;white-space:nowrap}.sr-sales.on{background:var(--gb-pri);color:#fff;border-color:transparent;box-shadow:0 2px 10px #2563eb59}.sr-sales:hover:not(.on){background:var(--glass-strong);color:var(--txt)}.sr-provs{display:flex;flex-wrap:wrap;gap:6px;flex:1;align-items:center}.sr-provs .s{font-size:11.5px;padding:4px 9px;border:1px solid var(--line);border-radius:14px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:transparent;transition:all .15s}.sr-provs .s.on{background:#57c7ff2e;color:var(--info);border-color:#57c7ff59;font-weight:600}.sr-provs .s:hover:not(.on){background:var(--glass-strong);color:var(--txt)}.fb-row{display:flex;align-items:flex-start;gap:10px;width:100%;margin-bottom:10px}.fb-row:last-child{margin-bottom:0}.fb-label{font-size:13px;font-weight:700;color:var(--txt);min-width:42px;margin-top:6px;white-space:nowrap}.fb-chips{flex:1;display:flex;flex-wrap:wrap;gap:6px;min-width:0;align-items:center}.fb-provs .s{font-size:11.5px;padding:4px 9px;border:1px solid var(--line);border-radius:14px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:transparent;transition:all .15s}.fb-provs .s.on{background:#57c7ff2e;color:var(--info);border-color:#57c7ff59;font-weight:600}.fb-provs .s:hover:not(.on){background:var(--glass-strong);color:var(--txt)}.table-card{padding:14px 16px 16px}.table-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.table-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px}.table-title:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--gb-text)}.table-hint{margin-left:auto;font-size:11px;color:var(--mut)}.search-input{background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:5px 11px;font-size:12px;width:200px;outline:none}.search-input:focus{border-color:var(--acc)}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;color:var(--mut);padding:11px 12px;border-bottom:1px solid var(--line);white-space:nowrap;font-weight:500;letter-spacing:.3px}th[data-ik]:hover{color:var(--txt)}th.sorton{color:var(--pink);font-weight:700}td{padding:11px 12px;border-bottom:1px solid var(--line);font-size:12.5px;vertical-align:middle}tbody tr{cursor:pointer;transition:background .15s}tbody tr:hover td{background:var(--hover-row)}tbody tr:last-child td{border-bottom:none}.pill{display:inline-block;font-size:11px;padding:3px 10px;border-radius:12px;font-weight:500;letter-spacing:.3px}.pl-act{background:#3dd68c26;color:var(--ok)}.pl-warn{background:#ffb84d29;color:var(--warn)}.pl-churn{background:#ff6b6b29;color:var(--danger)}.pl-info{background:#57c7ff26;color:var(--info)}.pl-line{background:#a78bfa26;color:var(--purple)}.pl-line2{background:#67e8f926;color:var(--acc2)}.tier{background:var(--tier-bg);color:var(--mut)}.sc{font-weight:600;color:var(--warn)}.kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:14px}@media (max-width:1280px){.kpis{grid-template-columns:repeat(3,1fr)}}.kpi{background:var(--card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:14px;padding:14px;cursor:pointer;transition:transform .15s,border-color .15s}.kpi:hover{transform:translateY(-2px);border-color:var(--acc)}.kpi .l{font-size:12px;color:var(--mut)}.kpi .n{font-size:24px;font-weight:700;margin-top:4px;line-height:1.2;background:var(--gb-text);-webkit-background-clip:text;background-clip:text;color:transparent}.kpi .n.warn-n{background:var(--warn);-webkit-background-clip:text;background-clip:text;color:transparent}.kpi .s{font-size:11px;color:var(--mut);margin-top:2px}.chart-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:14px}@media (max-width:1100px){.chart-row{grid-template-columns:1fr}}.chart-card{padding:14px 16px}.chart-card .ct{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.chart-card .ct .t{font-size:13px;font-weight:600}.chart-card .ct .hint{font-size:11px;color:var(--mut)}.line-chart{height:200px;width:100%;overflow:visible}.card-title{font-size:13px;font-weight:600;display:flex;align-items:center;gap:8px;margin-bottom:10px}.card-title:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--gb-text)}.tabbar{display:flex;gap:6px;margin-bottom:10px}.tab{font-size:12px;padding:5px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none}.tab.on{background:var(--gb-pri);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 2px 10px #2563eb59}.cc{display:none}.cc.on{display:block}.ov-wrap{margin-top:14px;padding:14px 16px}.ov-tabs{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.ov-tab{font-size:13px;padding:7px 16px;border:1px solid var(--line);border-radius:9px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:var(--card);transition:all .15s}.ov-tab:hover{background:var(--glass-strong);color:var(--txt)}.ov-tab.on{background:var(--gb-pri);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 2px 10px #2563eb59}.ov-sub{display:none}.ov-sub.on{display:block}.ov-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}.ov-title{font-size:15px;font-weight:600}.ov-note{font-size:12px;color:var(--mut);margin:4px 0 12px;line-height:1.6}.ln-seg{display:inline-flex;gap:0;border:1px solid var(--line);border-radius:18px;overflow:hidden}.ln-seg span{font-size:12px;padding:5px 14px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:var(--card)}.ln-seg span+span{border-left:1px solid var(--line)}.ln-seg span.on{background:var(--gb-pri);color:#fff;font-weight:600}.ov-block{margin-bottom:20px}.ov-block .bt{font-size:13px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.ov-block .bt:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--gb-text)}.ov-block .bt .cnt{font-size:11px;color:var(--mut);font-weight:400}.ov-table{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px}.ov-table th,.ov-table td{border:1px solid var(--line);padding:6px 10px;text-align:center}.ov-table th{background:var(--card2);font-weight:600;color:var(--txt)}.ov-table td.name,.ov-table td.tname{text-align:left;font-weight:600}.ov-table tr.total td{font-weight:700;background:var(--card2)}.ov-dn{color:var(--danger)}.ov-up{color:var(--ok)}.ov-pcbx{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.ov-pcbx label{font-size:12px;color:var(--txt);background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:4px 12px;cursor:pointer;-webkit-user-select:none;user-select:none}.ov-pcbx label.on{background:var(--gb-pri);color:#fff;border-color:transparent}.ov-toggle{cursor:pointer;color:var(--info);font-size:12px;-webkit-user-select:none;user-select:none}.ov-legend{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:12px}.ov-legend .lg{display:inline-flex;align-items:center;gap:5px}.prov-panel{display:flex;gap:14px;align-items:stretch;margin-top:8px;flex-wrap:wrap}.prov-panel .prov-chart{flex:1 1 auto;min-width:0}.prov-board{flex:0 0 470px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:12px 14px;overflow:auto;max-height:none}.prov-board-empty{color:var(--mut);font-size:12px;line-height:1.8;text-align:center;padding-top:24px}.prov-board-head{font-size:14px;font-weight:700;margin-bottom:2px;color:var(--txt)}.prov-board-sub{font-size:11px;color:var(--mut);margin-bottom:10px}.prov-board-main{display:flex;gap:18px;align-items:flex-start}.prov-col,.prov-cat{flex:1 1 0;min-width:0;white-space:nowrap}.prov-board-main .ov-table{border-collapse:collapse;width:100%}.prov-board-main .ov-table td,.prov-board-main .ov-table th{padding:6px 10px;font-size:12px}.ret-ctrl{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.ret-mode{font-size:13px;padding:6px 16px;border:1px solid var(--line);border-radius:9px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:var(--card)}.ret-mode:hover{background:var(--glass-strong);color:var(--txt)}.ret-mode.on{background:var(--gb-pri);color:#fff;border-color:transparent;font-weight:600}.ret-sales{display:flex;flex-wrap:wrap;gap:6px;margin-left:6px}.ret-sales .s{font-size:12px;padding:4px 12px;border:1px solid var(--line);border-radius:16px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none;background:var(--card2)}.ret-sales .s.on{background:var(--gb-pri);color:#fff;border-color:transparent}.rfm-row{display:flex;align-items:center;gap:14px;margin-bottom:10px;padding:6px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.rfm-name{flex:0 0 130px;font-size:12.5px;font-weight:600}.rfm-name .rfm-desc{display:block;font-size:10px;color:var(--mut);font-weight:400;margin-top:1px}.rfm-bounds{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rfm-num{width:64px;background:var(--card2);color:var(--txt);border:1px solid var(--line);border-radius:7px;padding:5px 8px;font-size:12px;text-align:center}.rfm-arrow{color:var(--mut);font-size:12px}.rfm-lbl{font-size:11px;color:var(--mut)}.rfm-summary{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:14px}.rfm-box{flex:1;min-width:120px;border:1px solid var(--line);border-radius:12px;padding:14px;text-align:center;background:var(--card)}.rfm-box b{display:block;font-size:26px;font-weight:700;margin-bottom:2px}.rfm-box.hi{border-color:#22c55e80;background:#22c55e14}.rfm-box.hi b{color:var(--ok)}.rfm-box.mid{border-color:#f59e0b80;background:#f59e0b14}.rfm-box.mid b{color:var(--warn)}.rfm-box.low{border-color:#ef444480;background:#ef444414}.rfm-box.low b{color:var(--danger)}.rfm-box.tot b{color:var(--txt)}.rfm-table th,.rfm-table td{padding:6px 10px;text-align:center}.rfm-r{color:var(--info)}.rfm-f{color:var(--pink)}.rfm-m{color:var(--gb-text)}.rfm-table .name{text-align:left;font-weight:600}.tier-高{color:var(--ok);font-weight:600}.tier-中{color:var(--warn);font-weight:600}.tier-低{color:var(--danger);font-weight:600}th.sorton{color:var(--gb-pri);cursor:pointer}.wt-row{display:flex;align-items:center;gap:10px;margin-bottom:8px;padding:6px 0;border-bottom:1px solid var(--line)}.wt-row .wt-name{flex:1;font-size:12.5px}.wt-row .wt-name .wt-desc{font-size:10px;color:var(--mut);display:block;margin-top:1px}.wt-row input[type=range]{width:120px;accent-color:var(--pink)}.wt-row .wt-val{width:48px;text-align:center;font-size:13px;font-weight:600;color:var(--pink)}.wt-row .wt-pct{font-size:11px;color:var(--mut)}.today-toolbar{display:flex;align-items:center;gap:18px;margin-bottom:14px;font-size:12px;color:var(--mut);background:var(--card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:12px;padding:10px 16px;flex-wrap:wrap}.toolbar-stat{font-size:13px;color:var(--mut)}.toolbar-stat b{color:var(--txt);font-weight:600;margin:0 4px}.toolbar-stat.primary b{background:var(--gb-text);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:15px}.toolbar-divider{width:1px;height:18px;background:var(--line)}.toggle{display:inline-flex;gap:6px}.toggle .sw{font-size:12px;padding:5px 11px;border:1px solid var(--line);border-radius:18px;cursor:pointer;color:var(--mut)}.toggle .sw.on{background:var(--gb-pri);color:#fff;border-color:transparent;font-weight:600}.chk{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.chk input{display:none}.chk span{font-size:12px;color:var(--mut)}.chk input:checked+span{color:var(--txt)}.today-filterbar{display:flex;flex-direction:column;gap:10px;flex:1 1 100%;margin:0 0 14px;padding:12px 14px;background:var(--card);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line);border-radius:12px}.tf-group{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tf-group .ft{font-size:13px;font-weight:700;color:var(--txt);min-width:40px}.tf-group .seg{max-width:none}.tf-clear{font-size:11.5px;color:var(--mut);cursor:pointer;-webkit-user-select:none;user-select:none;margin-left:2px}.tf-clear:hover{color:var(--txt)}.tf-summary{font-size:11.5px;color:var(--mut);margin-left:auto}.today-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}.today-card{position:relative;background:var(--card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:12px;padding:14px 16px;overflow:hidden;transition:border-color .15s,transform .15s}.today-card:hover{border-color:var(--line-strong);transform:translateY(-1px)}.today-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--accent,#3d9bff);border-radius:3px 0 0 3px}.today-card.t-danger:before{background:linear-gradient(180deg,#ff6b6b,#ec4899)}.today-card.t-warn:before{background:linear-gradient(180deg,#ffb84d,#f59e0b)}.today-card.t-info:before{background:linear-gradient(180deg,#3d9bff,#a855f7)}.today-card.t-ok:before{background:linear-gradient(180deg,#3dd68c,#10b981)}.today-head{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}.today-tag{font-size:10px;font-weight:700;padding:3px 8px;border-radius:6px;letter-spacing:.5px}.today-tag.t-danger{background:#ff6b6b26;color:var(--danger)}.today-tag.t-warn{background:#ffb84d29;color:var(--warn)}.today-tag.t-info{background:#57c7ff26;color:var(--info)}.today-tag.t-ok{background:#3dd68c26;color:var(--ok)}.today-cname{font-size:14px;font-weight:600;flex:1;line-height:1.2;min-width:0}.today-meta{font-size:11.5px;color:var(--mut);margin-bottom:4px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}.today-meta .m{display:inline-flex;gap:4px;align-items:baseline}.today-meta b{color:var(--txt);font-weight:600}.today-suggest{font-size:12px;color:var(--mut);line-height:1.55;margin:8px 0;padding:8px 10px;background:var(--suggest-bg);border-radius:6px}.today-suggest b{color:var(--txt)}.today-foot{display:flex;align-items:center;justify-content:space-between;margin-top:8px;gap:10px}.today-info{font-size:11.5px;color:var(--mut);display:flex;gap:8px;flex-wrap:wrap}.today-info b{color:var(--txt);font-weight:600}.today-btn{font-size:12px;font-weight:600;padding:7px 14px;border:none;border-radius:8px;color:#fff;background:var(--gb-pri);cursor:pointer;box-shadow:0 4px 12px #2563eb59;transition:transform .15s,box-shadow .15s;flex-shrink:0}.today-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px #2563eb8c}.today-result-count{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--mut);background:#57c7ff1a;padding:2px 8px;border-radius:10px;border:1px solid rgba(87,199,255,.2)}.today-result-count.has{background:#3dd68c1f;border-color:#3dd68c40;color:var(--ok)}.today-result-count b{font-weight:600;color:var(--txt)}.today-card,.today-card .today-btn,.today-card .today-result-count{cursor:pointer}.today-detail{display:none;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.today-card.expanded .today-detail{display:block}.today-detail-title{font-size:12px;font-weight:700;color:var(--txt);margin-bottom:8px}.today-line-section{margin-bottom:10px}.today-line-title{font-size:11.5px;font-weight:600;color:var(--acc);margin-bottom:6px;display:flex;gap:8px;align-items:center}.today-line-title .pill-line{background:#a78bfa26;color:var(--purple);font-size:10px;padding:2px 6px;border-radius:4px}.today-summary{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:10px;font-size:11.5px;color:var(--mut)}.today-summary b{color:var(--txt);font-weight:600;margin-left:3px}.today-months{display:flex;gap:6px;flex-wrap:wrap}.today-month{display:flex;flex-direction:column;align-items:center;gap:2px;background:var(--card2);border:1px solid var(--line);border-radius:6px;padding:5px 8px;min-width:52px}.today-month .mon{font-size:10px;color:var(--mut)}.today-month .qty{font-size:12px;font-weight:700;color:var(--txt)}.today-total-rr{font-size:11.5px;color:var(--mut);margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.today-total-rr b{color:var(--txt);font-weight:600;margin:0 4px}.today-followup-card{margin-top:14px}.result-history-item{padding:8px 10px;border-radius:8px;background:var(--card2);border:1px solid var(--line);margin-bottom:6px;font-size:12px}.result-history-item .rh-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px}.result-history-item .rh-status{font-size:11px;padding:2px 8px;border-radius:6px;background:#67e8f91f;color:var(--acc2);font-weight:600}.result-history-item .rh-date{font-size:11px;color:var(--mut)}.result-history-item .rh-note{color:var(--txt);line-height:1.5}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--modal-mask);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:none;align-items:flex-start;justify-content:center;z-index:100;padding:40px 16px;box-sizing:border-box}.modal.on{display:flex}.modal-box{background:var(--modal-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--line-strong);border-radius:16px;width:100%;max-width:1100px;max-height:calc(100vh - 80px);display:flex;flex-direction:column;box-shadow:0 12px 60px #0009}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--line)}.modal-title{font-size:15px;font-weight:600}.modal-close{font-size:22px;line-height:1;color:var(--mut);cursor:pointer}.modal-close:hover{color:var(--danger)}.modal-body{padding:16px 20px;overflow:auto}.drill-hero{position:relative;background:var(--card);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:14px;padding:18px 20px 16px;overflow:hidden;margin-bottom:14px}.drill-hero:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--gb-hot);border-radius:4px 0 0 4px}.drill-hero-row1{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.drill-cname{font-size:20px;font-weight:700;letter-spacing:.5px;flex:1;min-width:0}.drill-hero-row2{display:flex;gap:18px;flex-wrap:wrap;font-size:12px;color:var(--mut);margin-bottom:10px}.drill-hero-row2 .m{display:inline-flex;gap:4px;align-items:baseline}.drill-hero-row2 b{color:var(--txt);font-weight:600}.drill-hero-actions{display:flex;gap:8px;margin-top:4px}.drill-hero-actions .btn-pri{padding:8px 18px}.drill-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}@media (max-width:900px){.drill-grid{grid-template-columns:repeat(2,1fr)}}.drill-cell{background:var(--card2);border:1px solid var(--line);border-radius:10px;padding:10px 12px}.drill-cell .dt{font-size:11px;color:var(--mut)}.drill-cell .dn{font-size:18px;font-weight:700;margin-top:2px;color:var(--txt)}.drill-cell .ds{font-size:11px;color:var(--mut);margin-top:2px}.drill-section{margin-bottom:14px}.drill-section .ds-t{font-size:13px;font-weight:600;margin-bottom:8px;display:flex;align-items:center;gap:8px}.drill-section .ds-t:before{content:"";width:4px;height:14px;border-radius:2px;background:var(--gb-text)}.drill-table{width:100%;border-collapse:collapse;font-size:12px}.drill-table th{font-size:11px;padding:6px 10px;color:var(--mut);text-align:left;border-bottom:1px solid var(--line);background:transparent;position:static}.drill-table td{padding:6px 10px;border-bottom:1px solid var(--line);font-size:12px}.drill-side{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media (max-width:900px){.drill-side{grid-template-columns:1fr}}.drill-side .gb-glass{padding:12px 14px}#drillBox{margin-top:14px}.modal-body table{font-size:12px}.modal-body th{background:transparent;position:static}.empty{color:var(--mut);padding:40px 20px;text-align:center;font-size:13px}.linkbtn{font-size:12px;color:var(--info);cursor:pointer;background:none;border:0;padding:0;font-family:inherit;line-height:inherit}.linkbtn:hover{text-decoration:underline}.reset{font-size:12px;color:var(--info);cursor:pointer;margin-top:4px;display:inline-block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.map-hero{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding:2px 2px 10px}.map-title{font-size:19px;font-weight:700;color:var(--txt)}.map-sub{font-size:12px;color:var(--mut);flex:1;min-width:0}.map-tabs{display:flex;gap:8px;margin-bottom:10px}.map-tab{font-size:12px;padding:5px 14px;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--mut);-webkit-user-select:none;user-select:none}.map-tab.on{background:var(--acc);color:#fff;border-color:transparent;font-weight:600;box-shadow:0 2px 10px #e85d0459}.mapbox{height:calc(100vh - 230px);min-height:420px;border:1px solid var(--line);border-radius:12px;background:var(--card);padding:8px;overflow:hidden}#map{width:100%;height:100%}.attr-hero{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap;justify-content:space-between;margin-bottom:14px}.attr-title{font-size:19px;font-weight:700;color:var(--txt)}.attr-sub{font-size:12px;color:var(--mut);margin-top:3px}.attr-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:1100px){.attr-grid{grid-template-columns:1fr}}.attr-card{padding:14px 16px}.attr-hint{font-size:11.5px;color:var(--mut);margin:6px 0 10px}.attr-table{width:100%;border-collapse:collapse}.attr-table th{text-align:left;font-size:11px;color:var(--mut);padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap}.attr-table td{padding:6px 8px;font-size:12px;border-bottom:1px solid var(--line);vertical-align:top}.attr-table tr:last-child td{border-bottom:none}.attr-table .cname{font-weight:600;color:var(--txt)}.attr-table .prov-chip,.attr-chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:6px;background:var(--chip);color:var(--txt);white-space:nowrap}.attr-sales-sec{margin-bottom:12px}.attr-sales-sec .attr-sales-head{font-weight:600;color:var(--txt);font-size:13px;margin-bottom:6px;display:flex;align-items:center;gap:8px}.attr-sales-head .cnt{font-size:11px;color:var(--mut);font-weight:400}.attr-search{width:100%;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--txt);font-size:12px;margin-bottom:10px}.attr-uncls-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-bottom:1px solid var(--line);flex-wrap:wrap}.attr-uncls-row .uname{font-weight:600;min-width:120px}.attr-uncls-row .status{font-size:11px;color:var(--mut);margin-right:4px}.attr-uncls-row select{padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--txt);font-size:12px}.attr-uncls-row select.attr-sel-saved{border-color:var(--ok)}.attr-tag{font-size:10.5px;padding:1px 6px;border-radius:5px;background:#e85d0426;color:#ffb37a;white-space:nowrap}@media (max-width:900px){#appRoot{grid-template-columns:1fr}.sidebar{position:relative;width:100%;height:auto;border-right:none;border-bottom:1px solid var(--line)}.main-area{padding:14px 16px}.kpis{grid-template-columns:repeat(2,1fr)}.chart-row{grid-template-columns:1fr}}#loginOverlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:200}#loginOverlay .box{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:36px;width:360px;box-shadow:0 8px 32px #0006}#loginOverlay h2{font-size:20px;margin-bottom:4px;text-align:center}#loginOverlay .sub{font-size:12px;color:var(--mut);text-align:center;margin-bottom:22px}#loginOverlay .inp{width:100%;margin-bottom:12px;padding:10px 12px;font-size:14px}#loginOverlay .btn{width:100%;padding:10px;font-size:14px}#loginOverlay .btn.ghost{margin-top:0}#loginOverlay .btn.success{background:var(--ok);border-color:var(--ok);margin-bottom:12px}#loginErr{color:var(--danger);font-size:12px;margin-bottom:10px;min-height:16px;text-align:center}.login-divider{text-align:center;color:var(--mut);font-size:12px;margin:14px 0;position:relative}.login-divider:before,.login-divider:after{content:"";display:inline-block;width:70px;height:1px;background:var(--line);vertical-align:middle;margin:0 10px}.qr-wrap{display:flex;flex-direction:column;align-items:center;padding:8px 0}.qr-wrap canvas{border:1px solid var(--line);border-radius:6px;background:#fff;padding:6px}.qr-tip{margin:14px 0 8px;font-size:13px;color:var(--mut)}.qr-actions{display:flex;gap:12px;margin-top:6px}.qr-actions .btn{width:auto;padding:6px 16px;font-size:12px}#appLoading{color:var(--mut);text-align:center;padding:60px;font-size:14px}.kpi-group{margin-bottom:14px}.kpi-group-head{display:flex;align-items:baseline;gap:10px;margin:0 0 8px 2px}.kpi-group-title{font-size:14px;font-weight:700;color:var(--txt)}.kpi-group-sub{font-size:11px;color:var(--mut)}
