:root{color:#1d2129;font-synthesis:none;background:#f0f2f5;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#app{width:100%;min-width:320px;min-height:100%;margin:0}body{overflow:hidden}.app-layout{width:100%;height:100vh;display:flex}.app-sidebar{z-index:20;background:#fff;border-right:1px solid #e3e6eb;flex-direction:column;flex:0 0 240px;width:240px;transition:width .2s,flex-basis .2s,transform .2s;display:flex;position:relative}.app-sidebar.collapsed{flex-basis:64px;width:64px}.sidebar-logo{color:#0052d9;white-space:nowrap;border-bottom:1px solid #e3e6eb;align-items:center;gap:10px;height:64px;padding:0 20px;font-size:15px;font-weight:600;display:flex;overflow:hidden}.sidebar-menu{flex:1;padding-top:8px;overflow:auto}.sidebar-menu .t-menu{border-right:0!important;width:100%!important}.app-main{flex-direction:column;flex:1;min-width:0;display:flex}.app-header{background:#fff;border-bottom:1px solid #e3e6eb;flex:0 0 64px;justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex}.header-start,.header-tools,.header-user{align-items:center;gap:16px;display:flex}.breadcrumb{color:#86909c;font-size:14px}.breadcrumb b{color:#c9cdd4;margin:0 8px}.header-user{cursor:pointer;border-left:1px solid #e3e6eb;padding-left:16px;font-size:14px}.app-content{background:#f0f2f5;flex:1;padding:24px;overflow:auto}.page-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.page-header h1{color:#1d2129;margin:0;font-size:24px;line-height:1.4}.page-header p{color:#86909c;margin:6px 0 0;font-size:13px}.page-actions{align-items:center;gap:10px;display:flex}.content-card{border:1px solid #e3e6eb;margin-bottom:16px}.content-card>.t-card__body{overflow:auto}.filter-toolbar{border-bottom:1px solid #e3e6eb;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:16px;display:flex}.filter-toolbar>.t-input,.filter-toolbar>.t-select,.filter-toolbar>.t-date-range-picker{width:230px}.toolbar-spacer{flex:1}.pagination{color:#86909c;justify-content:space-between;align-items:center;margin-top:16px;font-size:13px;display:flex}.state-box{justify-content:center;align-items:center;min-height:260px;display:flex}.state-alert{margin:24px 0}.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:16px;display:grid}.stat-card{min-height:116px}.stat-card.card-0:before{background:#0052d9}.stat-card.card-1:before{background:#00a870}.stat-card.card-2:before{background:#ff7d00}.stat-card.card-3:before{background:#722ed1}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px;display:grid}.form-span{grid-column:1/-1}.two-column,.storage-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.search-hero{gap:12px;max-width:760px;margin:20px auto 32px;display:flex}.result-summary,.tab-toolbar{justify-content:space-between;align-items:center;margin:18px 0;font-weight:600;display:flex}.report-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;display:grid}.chart-bars{border-bottom:1px solid #e3e6eb;align-items:flex-end;gap:22px;height:240px;padding:20px 10px 0;display:flex}.bar-item{color:#86909c;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;height:100%;font-size:12px;display:flex}.bar{background:#0052d9;border-radius:3px 3px 0 0;width:30px;min-height:12px}.formula-box{background:#f2f7ff;border-radius:6px;align-items:center;gap:16px;margin-bottom:20px;padding:18px;display:flex}.formula-box p{color:#4e5969;margin:6px 0 0}.role-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:18px 0;display:grid}.role-card{border:1px solid #e3e6eb;border-radius:6px;padding:16px}.role-card>div{justify-content:space-between;align-items:center;display:flex}.role-card p{color:#86909c;font-size:13px}.employee-layout{grid-template-columns:260px minmax(0,1fr);gap:16px;display:grid}.department-panel{align-self:start}.department-list{flex-direction:column;gap:4px;margin-top:14px;display:flex}.department-list button{color:#4e5969;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:space-between;padding:10px 12px;display:flex}.department-list button.active,.department-list button:hover{color:#0052d9;background:#f2f7ff}.employee-table{min-width:0}.emp-name,.file-name{align-items:center;gap:10px;display:flex}.process-card{margin-bottom:16px}.upload-control{align-items:center;gap:10px;display:flex}.file-grid{grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;display:grid}.file-card{background:#fff;border:1px solid #e3e6eb;border-radius:6px;overflow:hidden}.file-preview{color:#0052d9;background:#f4f8ff;place-items:center;height:130px;display:grid}.file-card>div:last-child{padding:14px}.file-card b{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.file-card p{color:#86909c;font-size:12px}.mobile-toggle,.mobile-mask{display:none}.page-enter-active,.page-leave-active{transition:opacity .15s}.page-enter-from,.page-leave-to{opacity:0}.t-table{min-width:760px}@media (width<=1100px){.stat-grid,.report-grid,.role-grid{grid-template-columns:repeat(2,1fr)}.file-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=768px){.desktop-toggle{display:none}.mobile-toggle{display:inline-flex}.app-sidebar{position:fixed;inset:0 auto 0 0;transform:translate(-100%);flex-basis:240px!important;width:240px!important}.app-sidebar.mobile-open{transform:translate(0)}.mobile-mask{z-index:19;background:#0006;display:block;position:fixed;inset:0}.header-tools>button,.header-tools>.t-badge,.breadcrumb{display:none}.app-header{padding:0 14px}.app-content{padding:16px}.page-header{flex-wrap:wrap;align-items:flex-start;gap:12px}.page-actions{flex-wrap:wrap;width:100%}.stat-grid,.two-column,.storage-grid,.report-grid,.role-grid,.employee-layout{grid-template-columns:1fr}.department-panel{display:none}.form-grid{grid-template-columns:1fr}.form-span{grid-column:auto}.filter-toolbar{flex-direction:column;align-items:stretch}.filter-toolbar>*{width:100%!important}.toolbar-spacer{display:none}.search-hero{flex-direction:column}.file-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.stat-grid,.file-grid{grid-template-columns:1fr}.app-content{padding:12px}.page-header h1{font-size:21px}}.login-page{background:#f5f7fa;width:100%;height:100vh;min-height:620px;display:flex;overflow:hidden}.login-hero{color:#fff;background:linear-gradient(140deg,#00275e 0%,#0043b0 46%,#1769f0 100%);flex-direction:column;flex:0 0 56%;min-width:560px;display:flex;position:relative;overflow:hidden}.hero-grid{pointer-events:none;background-image:linear-gradient(#ffffff0e 1px,#0000 1px),linear-gradient(90deg,#ffffff0e 1px,#0000 1px);background-size:46px 46px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(120% 90% at 78% 12%,#000 0%,#0000 72%);mask-image:radial-gradient(120% 90% at 78% 12%,#000 0%,#0000 72%)}.hero-inner{z-index:1;flex-direction:column;flex:1;justify-content:center;width:100%;max-width:632px;margin:0 auto;padding:32px 56px;display:flex;position:relative}.hero-inner h1{color:#fff;margin:0;font-size:38px;font-weight:800;line-height:1.2}.hero-sub{color:#ffffffb8;margin:12px 0 0;font-size:15px}.hero-stats{gap:42px;margin-top:28px;display:flex}.hero-stats div{flex-direction:column;display:flex}.hero-stats b{font-size:26px;font-weight:800}.hero-stats small{margin-left:2px;font-size:14px}.hero-stats span{color:#fff9;margin-top:6px;font-size:12.5px}.glass-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1f;border:1px solid #ffffff38;border-radius:14px;justify-content:space-between;align-items:flex-end;gap:20px;max-width:430px;margin-top:24px;padding:18px 20px 20px;display:flex}.glass-card span{color:#ffffffb3;font-size:12.5px;display:block}.glass-card strong{margin-top:8px;font-size:30px;display:block}.glass-card em{color:#d6ffe6;background:#ffffff29;border-radius:999px;align-items:center;gap:4px;margin-top:10px;padding:3px 9px;font-size:12px;font-style:normal;display:inline-flex}.gc-bars{align-items:flex-end;gap:7px;height:62px;display:flex}.gc-bars i{background:#ffffff4d;border-radius:3px 3px 0 0;width:9px;display:block}.gc-bars i.on{background:#ffffffeb}.hero-feats{grid-template-columns:1fr 1fr;gap:14px 24px;max-width:520px;margin:26px 0 0;padding:0;list-style:none;display:grid}.hero-feats li{align-items:center;gap:12px;display:flex}.hero-feats li>i{background:#ffffff24;border:1px solid #fff3;border-radius:9px;flex:none;place-items:center;width:34px;height:34px;font-style:normal;display:grid}.hero-feats li span{color:#ffffff94;flex-direction:column;font-size:12px;display:flex}.hero-feats li b{color:#fff;font-size:13.5px;font-weight:600}.login-hero footer{z-index:1;color:#ffffff85;border-top:1px solid #ffffff21;flex:none;justify-content:space-between;align-items:center;padding:14px 56px 22px;font-size:12px;display:flex;position:relative}.login-side{flex:1;justify-content:center;align-items:center;padding:32px;display:flex;position:relative}.login-side:before{content:"";background:#e8effc;border-radius:50%;width:340px;height:340px;position:absolute;top:-120px;right:-120px}.login-card{z-index:1;background:#fff;border-radius:16px;width:400px;padding:44px 40px 40px;position:relative;box-shadow:0 18px 48px #14285017}.login-title{color:#0052d9;font-size:26px;font-weight:800}.login-tip{color:#8a8f99;margin-top:10px;font-size:13px}.login-error{margin-top:18px}.login-field{margin-top:24px}.login-card .t-input{border-radius:8px;height:46px}.login-row{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.login-btn{border-radius:8px;width:100%;height:46px;margin-top:26px;font-size:16px}.login-secure{color:#a3a8b0;border-top:1px solid #f0f1f3;justify-content:center;align-items:center;gap:6px;margin-top:22px;padding-top:18px;font-size:12px;display:flex}.pwd-toggle{cursor:pointer}@media (height<=800px){.hero-inner{padding:24px 48px}.hero-inner h1{font-size:34px}.hero-stats{margin-top:22px}.glass-card,.hero-feats{margin-top:20px}.login-hero footer{padding:12px 48px 18px}}@media (width<=660px){.login-hero{display:none}.login-side{padding:20px}.login-card{width:min(100%,400px);padding:36px 28px 32px}}
