:root{--navy:#142b4a;--blue:#2f6fed;--teal:#08a7a1;--bg:#f4f7fb;--line:#dfe6ef;--text:#172033;--muted:#718096;--green:#16845b;--red:#cf3c4f;--amber:#d88810}*{box-sizing:border-box}body{margin:0;font-family:"Microsoft YaHei",system-ui,sans-serif;background:var(--bg);color:var(--text)}button,input,select{font:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:var(--navy);color:#fff;padding:22px 18px;display:flex;flex-direction:column}.brand{font-size:26px;font-weight:800;padding:0 12px 20px}.brand small{display:block;font-size:12px;font-weight:400;color:#aec0d8;margin-top:5px;letter-spacing:2px}nav{display:grid;gap:4px;overflow-y:auto}nav button{border:0;background:transparent;color:#c9d5e5;text-align:left;padding:9px 16px;border-radius:9px;cursor:pointer}nav button:hover,nav button.active{background:#274767;color:#fff;font-weight:700}.sidebar-foot{margin-top:auto;padding:12px;color:#aec0d8;font-size:13px;border-top:1px solid #31506e}main{margin-left:224px;min-height:100vh;padding:0 32px 40px}header{height:98px;display:flex;align-items:center;justify-content:space-between}h1{font-size:25px;margin:0 0 6px}header p{margin:0;color:var(--muted);font-size:14px}.header-actions{display:flex;gap:10px}input,select{border:1px solid var(--line);background:#fff;border-radius:8px;padding:10px 12px}.primary{border:0;background:var(--blue);color:#fff;border-radius:8px;padding:10px 16px;cursor:pointer;font-weight:700}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card,.panel{background:#fff;border:1px solid #e7ebf1;border-radius:14px;box-shadow:0 4px 16px rgba(29,51,84,.05)}.card{padding:20px}.card .label{color:var(--muted);font-size:13px}.card strong{display:block;font-size:28px;margin:12px 0 6px}.delta{font-size:12px;color:var(--green)}.delta.down{color:var(--red)}.grid{display:grid;grid-template-columns:1.4fr 1fr;gap:16px;margin-top:16px}.panel{padding:20px}.panel h2{font-size:16px;margin:0 0 18px}.chart{height:230px;display:flex;align-items:flex-end;gap:14px;padding:22px 8px 28px;border-bottom:1px solid var(--line);position:relative}.bar{flex:1;background:linear-gradient(#4386f5,#2f6fed);border-radius:6px 6px 0 0;min-width:18px;position:relative}.bar span{position:absolute;bottom:-24px;width:100%;text-align:center;font-size:11px;color:var(--muted)}.rank{display:grid;gap:13px}.rank-row{display:grid;grid-template-columns:52px 1fr 74px;gap:10px;align-items:center;font-size:13px}.track{height:9px;background:#edf1f6;border-radius:10px;overflow:hidden}.fill{height:100%;background:var(--teal);border-radius:10px}.rank-row b{text-align:right}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-head h2{margin:0}.toolbar{display:flex;gap:9px}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;font-size:13px}th{background:#f8fafc;color:#58657a;text-align:left;padding:12px 14px;white-space:nowrap}td{padding:13px 14px;border-top:1px solid #edf1f5;white-space:nowrap}.badge{display:inline-block;padding:4px 8px;border-radius:20px;background:#e8f7f1;color:var(--green);font-size:12px}.badge.warn{background:#fff4df;color:var(--amber)}.badge.danger{background:#fdebed;color:var(--red)}.summary-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:16px}.summary-strip div{background:#fff;padding:16px}.summary-strip span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}.summary-strip b{font-size:20px}.empty{padding:55px;text-align:center;color:var(--muted)}.modal{position:fixed;inset:0;background:rgba(10,22,40,.48);display:grid;place-items:center;z-index:10}.hidden{display:none}.modal-card{background:#fff;width:440px;border-radius:16px;padding:28px;position:relative}.modal-card h2{margin-top:0}.modal-card p,.hint{color:var(--muted);line-height:1.7;font-size:13px}.close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:26px;color:#8793a4;cursor:pointer}.upload{display:block;border:2px dashed #b8c7dd;border-radius:12px;text-align:center;padding:35px;cursor:pointer;color:var(--blue);font-weight:700;margin:20px 0}.upload input{display:none}@media(max-width:900px){.sidebar{width:76px;padding:22px 8px}.brand{font-size:18px;padding:0 8px 22px}.brand small,.sidebar-foot{display:none}nav button{font-size:0;padding:14px 8px}nav button:before{content:"•";font-size:22px}main{margin-left:76px;padding:0 16px 30px}.cards{grid-template-columns:repeat(2,1fr)}.grid{grid-template-columns:1fr}header{height:auto;padding:20px 0;align-items:flex-start}.header-actions{flex-direction:column}}
.wps-filter-choice>em{margin-left:auto;font-style:normal;color:#7a6a5f;font-variant-numeric:tabular-nums}
.flow-type-inherited{background:#f1e8ff!important;color:#6f32a8!important;font-weight:700}
.flow-type-upper{background:#e8f1ff!important;color:#285b91!important;font-weight:700}
.flow-type-new{background:#fff4d7!important;color:#8a5a00!important;font-weight:700}
/* 皮肤切换（明亮苹果玻璃 / 酒红玻璃）。放在 styles.css 里，两套主题都用同一份。 */
.skin-switch{display:flex;align-items:center;gap:4px;margin:0 0 8px;padding:4px;border:1px solid rgba(127,127,127,.16);border-radius:14px;background:rgba(127,127,127,.12)}
.skin-switch-label{flex:none;padding:0 4px 0 6px;font-size:11px;font-weight:700;opacity:.7}
.skin-switch button{flex:1;min-width:0;min-height:28px;padding:4px 8px;border:1px solid transparent;border-radius:10px;background:transparent;color:inherit;font:inherit;font-size:12px;font-weight:700;line-height:1.2;cursor:pointer;opacity:.72;transition:background .16s ease,color .16s ease,opacity .16s ease,box-shadow .16s ease}
.skin-switch button:hover{opacity:1;background:rgba(127,127,127,.16)}
.skin-switch button.active{opacity:1;border-color:rgba(255,255,255,.42);background:linear-gradient(135deg,#ff4167,#e0123f);color:#fff;box-shadow:0 2px 7px rgba(224,18,63,.32),inset 0 1px 0 rgba(255,255,255,.3)}
@media(max-width:900px){.skin-switch{display:none}}
