/* 3.0 展示层：同一组令牌覆盖所有业务页面，保留原有 DOM 和布局约束。 */
:root{
 --primary:#367fbd;--primary-600:#276ca5;--primary-50:#eff6fc;--primary-100:#e0eef9;--accent:#5c89b5;
 --bg:#f5f7fa;--surface:#fff;--surface-2:#f8fafc;--text:#24354a;--text-2:#596b80;--text-3:#7a8b9d;--line:#e5ebf1;--line-strong:#d1dce7;
 --nav-bg-1:#fff;--nav-bg-2:#fff;--nav-text:#65788e;--nav-text-active:#286ca6;
 --radius:14px;--radius-sm:10px;--brand-grad:linear-gradient(120deg,#367fbd,#609bc9);
 --shadow-sm:0 2px 8px rgba(36,60,86,.025);--shadow-md:0 8px 30px rgba(36,60,86,.07);--shadow-lg:0 24px 80px rgba(36,60,86,.15);--shadow-blue:0 4px 12px rgba(54,127,189,.14);
 --focus-ring:0 0 0 3px rgba(54,127,189,.12)
}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}
body::before,body::after{display:none}
.app-header{background:rgba(255,255,255,.96);border-bottom:1px solid var(--line);box-shadow:none;backdrop-filter:blur(16px)}
.brand-logo{background:transparent;box-shadow:none;border:none}.app-title{color:#29435d;letter-spacing:.3px}.app-subtitle{color:#8293a5;letter-spacing:2px}
.global-search{border-radius:11px;background:#f5f8fb;border-color:#e7edf3;box-shadow:none}.global-search:focus-within{box-shadow:var(--focus-ring);border-color:#94b9d8}
.user-chip{border-radius:11px;background:#f7f9fc;border:1px solid var(--line)}.user-avatar{background:#e9f2fa;color:#3c7eb4;box-shadow:none}.user-menu{border-radius:14px;box-shadow:var(--shadow-lg);border-color:var(--line);padding:7px}.user-menu-item{border-radius:9px;min-height:42px}
.list-title,.stats-title{font-size:21px;font-weight:650;letter-spacing:-.4px;color:#293e54}.list-head{margin-bottom:20px;gap:16px}.list-head-actions{gap:8px}.count-badge{border-radius:7px;background:#eaf2fa;color:#497eaa;font-size:12px;padding:3px 8px}
.card,.ui-panel{border-color:var(--line);box-shadow:var(--shadow-sm);border-radius:var(--radius)}
.card{margin-bottom:18px}.card-head{padding-top:19px;padding-bottom:17px;background:#fff;border-bottom:1px solid #edf1f5}.card-title{font-weight:650;font-size:15px;color:#30475e}.card-icon{border-radius:10px;box-shadow:none;background:#edf4fb;color:#4b80ab}.card-hint{font-size:12px;line-height:1.8;color:#7f90a1}
.ui-panel-head{background:#fff;border-bottom:1px solid #edf1f5;padding:17px 20px}.ui-panel-title{color:#344b62;font-size:14px;font-weight:650}.ui-panel-tag{border:1px solid #e4ebf2;background:#f7f9fc;color:#7b8ea1;border-radius:6px}
.ui-panel-body{padding:18px}.ui-panel-head svg{color:#719bbf}.ui-link-btn{color:#5085b0;font-weight:500}.ui-link-btn:hover{color:#256598}
.btn{border-radius:9px;font-size:13px;font-weight:550;letter-spacing:.1px;box-shadow:none;transition:background .16s,border-color .16s,box-shadow .16s,transform .12s}
.btn-primary{background:#367fbd;border:1px solid #367fbd;box-shadow:0 3px 8px #367fbd15}.btn-primary:hover{background:#2c71ac;border-color:#2c71ac;box-shadow:0 4px 12px #367fbd20}.btn-ghost{background:#fff;border-color:#dce5ed;color:#5d738a}.btn-ghost:hover{background:#f4f8fc;border-color:#b6ccde;color:#3676a9}.btn-danger{background:#fff5f4;color:#b95852;border:1px solid #f3d9d6}.btn:focus-visible{outline:2px solid #72a8d0;outline-offset:3px}.btn:disabled{box-shadow:none}
button .modern-icon{width:18px;height:18px;flex-shrink:0}
.ui-seg{background:#edf1f6;border:1px solid #e7ecf2;border-radius:10px;padding:4px;gap:3px;box-shadow:none}.ui-seg-btn{border-radius:7px;font-size:13px;color:#75879a;min-height:35px}.ui-seg-btn.active{background:#fff;color:#367aaf;box-shadow:0 1px 5px #31465c0d;font-weight:600}
.form-group label,.cu-field label{font-size:13px;color:#4f657b;font-weight:550}.form-group{margin-bottom:17px}.field-hint,.form-hint{font-size:12px;color:#7c8ea1;line-height:1.8}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]),select,textarea{border-color:#dce5ee;border-radius:9px;color:#31485f;background:#fff;box-shadow:none;font-size:14px}
input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):focus,select:focus,textarea:focus{border-color:#8bb5d5;box-shadow:var(--focus-ring);outline:none}
input::placeholder,textarea::placeholder{color:#a0adba}textarea{line-height:1.8;resize:vertical}input[type=checkbox],input[type=radio]{accent-color:#367fbd}
.filter-panel{padding:18px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-sm);margin-bottom:18px}.filter-label{color:#7e91a5;font-size:12px}.filter-select,.filter-input{background:#fff;border-radius:9px;min-height:40px}
.chip{border-radius:8px;border-color:#dfe8f0;box-shadow:none;background:#fff}.chip:has(input:checked){border-color:#a9cae4;background:#edf5fc;color:#3679ad}.chip:has(input:focus-visible){outline:2px solid #8bb5d5;outline-offset:2px}
.ui-item{border:1px solid #e6ecf2;border-radius:11px;background:#fff;box-shadow:none;padding:15px 16px;transition:border-color .16s,box-shadow .16s,background .16s}
.ui-item[role=button]:hover{border-color:#c7dae9;background:#fcfdff;box-shadow:0 4px 14px #31465c08}.ui-item-title{font-weight:600;color:#334b62}.ui-item-sub{color:#8494a5;line-height:1.8}.ui-badge,.status-badge{border-radius:6px;font-size:11px}
.modal-mask{background:rgba(31,50,72,.28);backdrop-filter:blur(5px)}.modal-sheet{border:1px solid #ffffffa6;box-shadow:0 24px 80px #21364e29;overflow:hidden}.modal-head{padding:19px 22px;font-weight:650;color:#30475f;border-color:#e9eef4;background:#fff}.modal-body{padding:22px}.modal-foot{padding:16px 22px 20px;background:#fbfcfe;border-top:1px solid #e9eef4;gap:10px}.modal-close{border-radius:9px;background:#f2f5f9;color:#7b8ea0;min-width:34px;min-height:34px}.modal-close:hover{background:#e9eff5;color:#476c8b}
.gs-results{border:1px solid #e2eaf2;border-radius:14px;box-shadow:0 18px 50px #2a46621a;padding:8px}.gs-item{padding:11px 12px;border-radius:9px}.gs-item.active,.gs-item[aria-selected=true]{background:#eaf3fb}
.toast{border-radius:12px;box-shadow:0 8px 30px #263e5826;letter-spacing:.2px}.ui-action-error{border-radius:10px}.ui-empty-title{font-size:14px;color:#6d8297}.ui-empty-sub{font-size:12px;color:#8d9eb0;line-height:1.8}.ui-empty-ico{background:#f0f5fa;color:#89a8c0;box-shadow:none}
.stepper{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px 14px;box-shadow:var(--shadow-sm)}.step-circle{box-shadow:none}.step.active .step-circle{background:#e7f1fa;color:#3c7daf;border:1px solid #aacce6}.step.done .step-circle{background:#eff7f3;color:#4b8b70}
.cal-nav{border-color:var(--line);border-radius:13px;box-shadow:none;background:#fff}.cal-nav-btn{border-radius:9px;border-color:#dfe8f0;color:#62839e}.cal-cell{border-radius:9px}.cal-cell.today{background:#edf5fc}.cal-event{border-radius:6px}
.login-page{background:radial-gradient(ellipse at 15% 15%,#e4f0fa 0,transparent 50%),radial-gradient(ellipse at 85% 80%,#edf3f8 0,transparent 45%),#f5f8fc}.login-card{border:1px solid #fff;box-shadow:0 24px 80px #35557514;border-radius:22px;background:#ffffffed;backdrop-filter:blur(16px)}.login-title{color:#304f6b}.login-subtitle{color:#7d91a5}.login-btn{background:var(--brand-grad);border-radius:10px;box-shadow:0 4px 14px #367fbd20}.login-logo::after{opacity:.12}
/* 首页保留信息分区、顺序和排列，只替换表面样式。 */
#viewHome .home-greeting{background:linear-gradient(115deg,#4d91c5 0%,#6aa4cf 70%,#80b4d6 100%);box-shadow:0 6px 20px #4984b218;border:1px solid #639ac524}
#viewHome .ui-panel:not(.home-fold) .ui-panel-head{background:#fff;border-bottom-color:#e8eef4}#viewHome .sys-cell{border:1px solid #e3ebf2;border-radius:11px;box-shadow:none;background:#fff}#viewHome .sys-cell:hover{border-color:#bdd4e6}#viewHome .sys-cell.is-bad{background:#fff8f6}#viewHome .marquee{border:1px solid #e2ebf3;border-radius:10px;background:#f7fafd;box-shadow:none}
#viewHome .home-handover-btn{border-color:#ffffff75;background:#ffffff20;box-shadow:inset 0 1px #ffffff15;color:#fff}#viewHome .home-handover-btn:hover{background:#ffffff35}
/* 统计与台账使用同一表面体系。 */
#viewStats .ui-hero{background:linear-gradient(110deg,#4b8cbd,#72a9cd);box-shadow:0 6px 24px #437ba219;border:1px solid #6099c333;border-radius:16px}
#viewStats .ui-stat{box-shadow:var(--shadow-sm);border-color:#e4ebf2;border-radius:13px}#viewStats .ui-stat-num{color:#365b78;font-size:34px}#viewStats .ui-panel{border-radius:14px}#viewStats .stats-insight{background:#f0f6fc;color:#4b7597;border:1px solid #dfebf5}
.duty-staff-row,.handover-item,.imp-rack{box-shadow:none;border-color:#e2eaf2}.handover-notice,.handover-counter{background:#f1f6fc;color:#557b9b;border-color:#dae8f4}.todo-timeline{color:#58748e}
/* Tom Select 保留原始 select 作为表单数据源。 */
.ts-wrapper{font-size:14px;min-width:0;width:100%;--ts-pr-clear-button:0}
.ts-wrapper.single .ts-control{min-height:44px;padding:11px 36px 10px 12px;border:1px solid #dce5ee;border-radius:9px;background:#fff!important;background-image:none!important;box-shadow:none!important;color:#31485f;display:flex;align-items:center;gap:4px}
.ts-wrapper.single .ts-control:after{border-top-color:#7e95a9;right:13px}.ts-control input{border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-height:0!important;font-size:14px!important;color:#435d73!important;border-radius:0!important;line-height:20px!important}.ts-wrapper.focus .ts-control{border-color:#8bb5d5;box-shadow:var(--focus-ring)!important}.ts-wrapper.disabled .ts-control{background:#f3f6f9!important;opacity:.65}.ts-wrapper.invalid .ts-control{border-color:#d87a73!important}.ts-dropdown{margin-top:6px;border:1px solid #dce7f0;border-radius:11px;box-shadow:0 12px 35px #2948641c;background:#fff;overflow:hidden;z-index:60;font-size:13px;color:#435d74}.ts-dropdown .option{padding:11px 13px}.ts-dropdown .active{background:#edf5fc;color:#286ba0}.ts-dropdown .selected{background:#f4f8fc;color:#367caf}.ts-dropdown .no-results{color:#8799aa;padding:15px}.filter-row .ts-wrapper{width:auto;min-width:145px;flex:1}.ts-hidden-accessible{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;border:0!important;clip:rect(0,0,0,0)!important;overflow:hidden!important}
/* 图表与提示组件 */
#viewStats .modern-chart-host{display:block!important;height:auto!important;padding:0!important;overflow:visible!important}.modern-chart{height:300px;width:100%;min-width:0}#dashSystemChart .modern-chart{height:350px}.modern-chart-data{margin-top:12px;font-size:12px;color:#71899e}.modern-chart-data summary{cursor:pointer;padding:9px 0}.modern-chart-data[open]{border-top:1px solid #e8eef4}.modern-chart-data .system-row{margin:12px 0}.modern-chart-data .monthly-col{display:inline-flex!important;width:7.5%;min-width:25px}.modern-chart-data .monthly-track{display:none!important}.tippy-box[data-theme~=platform]{background:#fff;color:#4f6c84;border:1px solid #d9e5ef;border-radius:9px;box-shadow:0 6px 22px #284a661a;font-size:12px;line-height:1.7}.tippy-box[data-theme~=platform]>.tippy-arrow{color:#fff}.tippy-box[data-theme~=platform] .tippy-content{padding:8px 12px}
@media(min-width:1024px){
 .bottom-nav{background:#fff;border-right:1px solid #e4ebf2;box-shadow:none;padding:18px 12px;gap:3px}.bottom-nav .nav-section-label{color:#9aabb9;opacity:1;font-size:10px;font-weight:600;letter-spacing:1.5px;padding:20px 14px 7px}.bottom-nav .nav-item{min-height:42px;font-size:13px;color:#6b7e91;border-radius:9px;gap:11px}.bottom-nav .nav-item svg{color:#8098ad;opacity:1;width:18px;height:18px}.bottom-nav .nav-item:hover{background:#f5f8fc;color:#4279a3}.bottom-nav .nav-item.active{background:#eaf3fb;color:#2f78b0;box-shadow:none;font-weight:600}.bottom-nav .nav-item.active svg{color:#3d87bc}.bottom-nav .nav-item.active::before{display:none}.header-inner{padding:0 28px}.app-main{padding-top:26px}.modal{align-items:center;padding:24px}.modal-sheet{border-radius:18px;max-height:90dvh}
}
@media(max-width:1023px){.bottom-nav{background:#ffffffed;border-top:1px solid #e4ebf2;box-shadow:0 -4px 20px #35557506;backdrop-filter:blur(18px)}.bottom-nav .nav-item{color:#8b9eb0}.bottom-nav .nav-item.active{background:#edf5fc;color:#3b82b7;box-shadow:none;border-radius:10px}.more-sheet{background:#f9fbfd;border:1px solid #e4ebf2;border-radius:18px 18px 0 0}.more-grid .nav-item{background:#fff;border:1px solid #e5edf4;border-radius:12px;color:#607e97}.nav-function-group h3{color:#8a9eaf;font-size:11px;letter-spacing:1px}.modal-sheet{border-radius:18px 18px 0 0}.modal-body{padding:18px}.list-title,.stats-title{font-size:19px}.ui-panel-head{padding:15px 16px}}
@media(max-width:600px){.filter-panel{padding:14px}.filter-row .ts-wrapper{min-width:120px}.modern-chart{height:270px}.card{margin-bottom:14px}.modal-foot{flex-wrap:wrap;padding:14px 18px 18px}.modal-head{padding:17px 18px}.modal-body{padding:16px}.ts-dropdown .option{min-height:44px;display:flex;align-items:center}.list-head{gap:12px;margin-bottom:16px}}
@media(prefers-reduced-motion:reduce){.view.active{animation:none}.ui-item,.btn{transition:none}}
@media print{.ts-wrapper{display:none!important}.ts-hidden-accessible{position:static!important;clip:auto!important;width:auto!important;height:auto!important}.modern-chart-data{display:block}.tippy-box{display:none!important}}
/* 弹出选项由 Popper 定位到弹窗/页面根节点，避免被卡片边缘裁切。 */
body>.ts-dropdown{z-index:90}.modal>.ts-dropdown{z-index:5}.ts-dropdown-content{max-height:min(240px,40dvh);overscroll-behavior:contain}.ts-dropdown[data-popper-placement]{margin-top:0}
