:root{--ink:#1e293b;--muted:#718096;--line:#e5eaf2;--brand:#5c72cf;--brand-dark:#4057b7;--surface:#fff;--canvas:#f6f8fb;--green:#13a878;--orange:#f1983c}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font:14px "Microsoft YaHei","PingFang SC",Arial,sans-serif}.app-header{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 42px;gap:44px;position:relative;z-index:4}.brand{display:flex;align-items:center;gap:10px;color:#202d45;font-weight:700;font-size:18px;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:29px;height:29px;border-radius:8px;color:#fff;background:linear-gradient(135deg,#8494ea,#4b61c5);font-family:Georgia}.top-nav{height:100%;display:flex;align-items:center;gap:6px}.top-nav-item{border:0;background:transparent;color:#53617a;height:72px;padding:0 16px;font:inherit;cursor:pointer;position:relative;white-space:nowrap}.top-nav-item:hover,.top-nav-item.active{color:var(--brand-dark);font-weight:700}.top-nav-item.active:after{content:"";position:absolute;height:3px;left:15px;right:15px;bottom:0;background:var(--brand);border-radius:3px 3px 0 0}.has-menu span{font-size:16px;margin-left:3px}.nav-menu{height:100%;display:flex;align-items:center;position:relative}.nav-dropdown{display:none;position:absolute;top:61px;left:5px;width:132px;padding:7px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 11px 28px #20335220}.nav-menu.open .nav-dropdown{display:grid}.nav-dropdown button{border:0;background:#fff;color:#44516a;text-align:left;padding:10px 11px;border-radius:6px;font:inherit;cursor:pointer}.nav-dropdown button:hover{background:#edf1ff;color:var(--brand-dark)}.header-actions{margin-left:auto;display:flex;align-items:center;gap:18px}.workspace-state{font-size:12px;color:#6c7890;white-space:nowrap}.workspace-state i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#28b987;margin-right:6px}.user-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;color:#4260c2;background:#e9edff;font-weight:700}.page-heading{background:#fff;border-bottom:1px solid var(--line);min-height:101px;padding:20px 50px;display:flex;align-items:center;justify-content:space-between}.page-heading p{margin:0 0 6px;color:var(--muted);font-size:12px}.page-heading h1{margin:0;font-size:24px;letter-spacing:-.3px}.header-button,.secondary{height:34px;border:1px solid #d8dfeb;border-radius:7px;background:#fff;padding:0 12px;color:#4d5d77;font:inherit;cursor:pointer}#app{max-width:1600px;margin:auto;padding:28px 50px 46px}.date-nav{background:#fff;border:1px solid #e6ebed;border-radius:12px;box-shadow:0 4px 13px #26344c08;padding:26px 32px;display:flex;align-items:center;gap:17px;flex-wrap:wrap}.quick-ranges{display:flex;gap:11px}.range-button{height:56px;min-width:124px;padding:0 17px;border:1px solid #d9e0ea;background:#fff;color:#202d43;border-radius:10px;font-size:18px;font-weight:700;cursor:pointer}.range-button.active,.range-button:hover{color:#fff;background:var(--brand);border-color:var(--brand)}.custom-date-label{font-size:17px;font-weight:700;color:#9aa5b5;margin-left:2px}.date-input{width:181px;height:56px;border:1px solid #d9e0ea;border-radius:10px;padding:0 13px;color:#1c2b44;background:#fff;font:700 16px "Microsoft YaHei",sans-serif}.to-label{font-size:16px;color:#98a4b5;font-weight:700}.page-filter{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:10px;padding:13px 16px;margin-top:16px;flex-wrap:wrap}.page-filter label{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:center}.page-filter select{height:32px;border:1px solid #dce3f0;border-radius:6px;background:#fff;padding:0 10px;color:#36445d;font:inherit}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:22px}.card,.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:0 3px 12px #1a31530a}.metric{padding:19px}.metric-label{color:var(--muted);font-size:13px}.metric-row{display:flex;align-items:end;justify-content:space-between;margin-top:12px}.metric strong{font-size:25px;letter-spacing:-.6px}.trend{font-size:12px;border-radius:99px;padding:4px 7px;background:#e9f8f2;color:#07865c}.trend.down{background:#fff1f0;color:#dc4f62}.section-head{display:flex;justify-content:space-between;align-items:center;margin:29px 0 13px}.section-head h2{font-size:16px;margin:0}.section-head span{font-size:12px;color:var(--muted)}.grid-two{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.panel{padding:20px}.panel h3{margin:0;font-size:15px}.panel-sub{color:var(--muted);font-size:12px;margin:6px 0 18px}.rank-list{display:grid;gap:15px}.rank{display:grid;grid-template-columns:22px 1fr auto;gap:9px;align-items:center}.rank-index{color:#8390a7}.rank-name{font-size:13px}.rank-bar{height:7px;border-radius:20px;background:#edf1f7;margin-top:7px;overflow:hidden}.rank-bar i{display:block;height:100%;background:linear-gradient(90deg,#8194ed,#5268c7);border-radius:20px}.rank-value{font-weight:600;font-size:13px}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:12px;font-weight:500;color:#8490a6;background:#f8faff;padding:11px 10px}td{padding:12px 10px;border-bottom:1px solid var(--line);font-size:13px}.badge{font-size:11px;padding:3px 7px;border-radius:99px;background:#e9f8f2;color:#07865c}.badge.orange{background:#fff4e6;color:#cc7a1e}.badge.blue{background:#edf1ff;color:#3159d2}.split-title{display:flex;justify-content:space-between;align-items:center}.cta{border:0;border-radius:7px;background:var(--brand);color:#fff;padding:9px 14px;font:inherit;cursor:pointer}.empty{padding:37px;text-align:center;color:var(--muted);border:1px dashed #cdd7e8;border-radius:9px;background:#fbfcff}.file-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.file{border:1px solid var(--line);padding:15px;border-radius:9px}.file strong{display:block;font-size:13px;margin-bottom:6px}.file p{font-size:12px;color:var(--muted);margin:0;line-height:1.6}.toast{opacity:0;pointer-events:none;position:fixed;right:30px;bottom:26px;background:#17213b;color:#fff;padding:12px 16px;border-radius:8px;transition:.25s;box-shadow:0 8px 24px #0003}.toast.show{opacity:1}@media(max-width:1020px){.app-header{padding:0 24px;gap:18px}.top-nav-item{padding:0 9px}.workspace-state{display:none}.page-heading,#app{padding-left:26px;padding-right:26px}.kpis{grid-template-columns:repeat(2,1fr)}.grid-two{grid-template-columns:1fr}.date-nav{padding:18px}.range-button{min-width:100px}}@media(max-width:720px){.app-header{height:auto;min-height:70px;flex-wrap:wrap;padding:12px 18px;gap:5px}.top-nav{order:3;width:100%;height:42px;overflow:auto}.top-nav-item{height:42px;padding:0 11px}.nav-menu{height:42px}.nav-dropdown{top:40px}.page-heading{padding:18px}.header-button{display:none}#app{padding:20px 18px}.kpis,.file-grid{grid-template-columns:1fr}.date-nav{display:block}.quick-ranges{display:grid;grid-template-columns:repeat(2,1fr);margin-bottom:15px}.range-button{width:100%;height:45px}.custom-date-label{display:block;margin:10px 0}.date-input{width:calc(50% - 15px);height:45px}.to-label{margin:0 6px}}
body.login-active .app-header,body.login-active main{display:none}.login-gate{position:fixed;inset:0;z-index:100;background:linear-gradient(135deg,#f4f7ff,#eef2fa);display:grid;place-items:center;padding:22px}.login-card{width:min(390px,100%);padding:34px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 18px 50px #273a6820;display:grid;gap:13px}.login-card .brand-mark{margin:0 auto;width:42px;height:42px;font-size:23px}.login-card h1{text-align:center;margin:0;font-size:22px}.login-card p{text-align:center;margin:0;color:var(--muted)}.login-card label{display:grid;gap:6px;color:#53617a;font-size:12px}.login-card input{height:40px;border:1px solid #dce3f0;border-radius:7px;padding:0 11px;font:inherit;color:#26354d}.login-card .cta{margin-top:5px;height:42px}.login-error{min-height:18px;color:#cc4d62!important;font-size:12px}.user-menu{position:relative}.user-avatar{border:0;cursor:pointer}.user-dropdown{display:none;position:absolute;right:0;top:42px;width:154px;padding:11px;background:#fff;border:1px solid var(--line);border-radius:9px;box-shadow:0 11px 28px #20335220}.user-menu.open .user-dropdown{display:grid;gap:4px}.user-dropdown strong{font-size:13px;color:#26354d}.user-dropdown span{font-size:11px;color:var(--muted);margin-bottom:5px}.user-dropdown button{border:0;background:#f7f9fd;color:#465673;border-radius:6px;padding:8px;text-align:left;cursor:pointer;font:inherit}
.login-gate[hidden]{display:none!important}
.page-actions{display:flex;align-items:center;gap:9px}.page-update{color:#77849a;font-size:12px;white-space:nowrap}.page-update:before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#28b987;vertical-align:1px}@media(max-width:720px){.page-update{display:none!important}}
#data-fullscreen-overlay{position:fixed;inset:0;z-index:500;background:#fff;padding:16px 22px;overflow:auto}#data-fullscreen-overlay:fullscreen{width:100%;height:100%;padding:16px 22px}#data-fullscreen-overlay:not(:fullscreen){display:none}#data-fullscreen-overlay.fallback-open{display:block}.data-fullscreen-head{min-height:38px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.data-fullscreen-head div{display:flex;align-items:baseline;gap:13px;min-width:0}.data-fullscreen-head strong{font-size:16px;color:#1f2b3f;white-space:nowrap}.data-fullscreen-head span{font-size:13px;color:#7b8794;white-space:nowrap}.data-fullscreen-head button{height:38px;flex:0 0 auto;border:1px solid #d8dfeb;border-radius:9px;background:#fff;padding:0 13px;color:#334155;font:600 13px "Microsoft YaHei",sans-serif;cursor:pointer}.data-fullscreen-table{width:100%;max-height:calc(100vh - 80px);overflow:auto;border:1px solid #d9e2eb;border-radius:10px}.data-fullscreen-table .org-table{min-width:100%;font-size:12px}.data-fullscreen-table .org-table thead th{position:sticky;top:0;z-index:2;padding:4px 6px;font-size:12px;line-height:1.15}.data-fullscreen-table .org-table td{padding:2px 6px;font-size:12px;line-height:1.1;vertical-align:middle}.data-fullscreen-table .org-table tbody tr{height:19px}
@media(max-width:720px){#data-fullscreen-overlay,#data-fullscreen-overlay:fullscreen{padding:10px}.data-fullscreen-head{margin-bottom:8px}.data-fullscreen-head span{display:none}.data-fullscreen-table{max-height:calc(100vh - 64px)}.data-fullscreen-head button{height:34px;padding:0 10px}}

/* 全屏长表采用紧凑列：数值列按内容宽度排列，不再平均拉伸填满整屏。 */
.data-fullscreen-table .org-table { width:max-content; min-width:0; table-layout:fixed; }
.data-fullscreen-table .org-table .serial-header,
.data-fullscreen-table .org-table .serial-cell { width:36px; min-width:36px; }
.data-fullscreen-table .org-table .org-header,
.data-fullscreen-table .org-table .org-cell { width:92px; min-width:92px; }
.data-fullscreen-table .org-table .year-header,
.data-fullscreen-table .org-table .year-cell { width:54px; min-width:54px; }
.data-fullscreen-table .channel-small-table .channel-serial-col { width:36px !important; }
.data-fullscreen-table .channel-small-table .channel-org-col { width:92px !important; }
.data-fullscreen-table .channel-small-table .channel-year-col { width:54px !important; }
.data-fullscreen-table .channel-small-table .channel-data-col { width:42px !important; }
.data-fullscreen-table .channel-small-table th { white-space:normal; overflow-wrap:anywhere; word-break:break-all; }
.data-fullscreen-table .channel-small-table td { min-width:0; padding-left:3px; padding-right:3px; white-space:nowrap; }
.data-fullscreen-table .org-table td { padding-top:3px; padding-bottom:3px; }
.data-fullscreen-table .org-table tbody tr { height:22px; }
.data-fullscreen-split { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; width:100%; max-width:2400px; margin:0 auto; }
.data-fullscreen-split.compact { max-width:1600px; }
.data-fullscreen-split .data-fullscreen-table { min-width:0; }
.data-fullscreen-split .org-table { width:100%; min-width:100%; }
.data-fullscreen-summary { grid-column:1; margin-top:0; }
@media(min-width:1201px){.data-fullscreen-split .data-fullscreen-table{overflow-x:hidden;overflow-y:auto}.data-fullscreen-split .channel-small-table th{font-size:11px}.data-fullscreen-split .channel-small-table td{font-size:12px}}
@media(max-width:1200px){.data-fullscreen-split{grid-template-columns:1fr}.data-fullscreen-summary{margin-top:10px}}
