:root{
  --navy:#00205b;
  --blue:#234185;
  --red:#e03c31;
  --ink:#0b1f45;
  --muted:#71809a;
  --line:#dfe6f0;
  --paper:#f4f7fb;
  --green:#0aa66f;
  --orange:#d99416;
}

html,body{min-height:100%;background-color:var(--paper)}
body{
  color:var(--ink);
  background-image:radial-gradient(rgba(0,32,91,.045) 1px,transparent 1px);
  background-size:24px 24px;
  font-feature-settings:"tnum","cv02","cv03","cv04";
  -webkit-font-smoothing:antialiased;
}
button,input,select,textarea{transition:border-color .18s,box-shadow .18s,background-color .18s,color .18s,transform .18s}
button:not(:disabled):active{transform:translateY(1px)}

/* 登录页：沿用现有表单，仅替换品牌视觉 */
.login-page{background:linear-gradient(132deg,#eef3fa 0 54%,#fff 54%)}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(145deg,#00133a,#00205b 60%,#15306b);color:#fff}
.login-brand:after{content:"";position:absolute;width:520px;height:520px;border-radius:50%;right:-210px;bottom:-230px;background:radial-gradient(circle,rgba(125,149,195,.32),transparent 68%)}
.login-brand .brand-content{position:relative;z-index:1}
.login-brand img{filter:brightness(0) invert(1);width:176px;height:54px}
.login-brand span{border-left-color:rgba(255,255,255,.22)}
.login-brand small{color:#aebddb}
.brand-features b{background:rgba(255,255,255,.07)!important;border-color:rgba(255,255,255,.12)!important;color:#d9e4f6!important}
.login-card{border-color:#e1e8f2;border-radius:22px;box-shadow:0 24px 70px rgba(0,32,91,.12)}
.login-card button,.primary{background:var(--navy);box-shadow:0 7px 18px rgba(0,32,91,.16)}
.login-card button:hover,.primary:hover{background:#082e72;box-shadow:0 10px 24px rgba(0,32,91,.22)}

/* 深色品牌侧栏 */
.sidebar{
  width:256px;
  padding:0 15px 15px;
  background:radial-gradient(120% 75% at 85% 12%,rgba(52,78,132,.62),rgba(1,17,48,.98) 66%,#010d25 100%);
  border-right:1px solid rgba(255,255,255,.08);
  box-shadow:18px 0 48px rgba(0,18,53,.08);
}
.logo{min-height:137px;margin:0 -15px 18px;padding:24px 30px;border-bottom:1px solid rgba(255,255,255,.09);gap:11px;display:flex;align-items:flex-start}
.logo img{width:184px;height:64px;object-fit:contain;object-position:left top;filter:none}
.logo span{font-size:17px;border-left-color:rgba(255,255,255,.22);padding-left:11px;white-space:nowrap}
.sidebar nav{gap:8px}
.sidebar nav button{
  min-height:52px;padding:11px 15px;border:1px solid transparent;border-radius:12px;
  color:#bac6da;font-size:14px;letter-spacing:.01em;
}
.sidebar nav button i{
  width:30px;height:30px;display:grid;place-items:center;border-radius:9px;
  background:rgba(255,255,255,.045);font-size:17px;color:#aebed8;
}
.sidebar nav button:hover{background:rgba(255,255,255,.055);border-color:rgba(255,255,255,.06);color:#fff}
.sidebar nav button.active{
  background:linear-gradient(90deg,rgba(35,65,133,.98),rgba(69,98,158,.74));
  border-color:rgba(255,255,255,.17);color:#fff;
  box-shadow:0 8px 23px rgba(224,60,49,.13),inset 0 1px rgba(255,255,255,.12);
}
.sidebar nav button.active i{background:rgba(224,60,49,.22);color:#fff}
.sidebar nav button.active:after{content:"";width:8px;height:8px;margin-left:auto;border-radius:50%;background:var(--red);box-shadow:0 0 8px var(--red)}
.sidebar nav button:has(.badge).active:after{display:none}
.badge{background:var(--red);box-shadow:0 2px 8px rgba(224,60,49,.4);min-width:21px;text-align:center}
.sidebar-close{color:#98a9c5!important;border-color:rgba(255,255,255,.1)!important;background:rgba(255,255,255,.035)!important}
.sidebar-foot{margin-top:auto;padding:15px;border:1px solid rgba(255,255,255,.1);border-radius:15px;background:rgba(0,0,0,.25);box-shadow:inset 0 1px rgba(255,255,255,.04)}
.online-dot{background:#32d29a;box-shadow:0 0 0 4px rgba(50,210,154,.13),0 0 10px rgba(50,210,154,.35);flex:0 0 auto}
.capacity-state i{width:100%!important;background:rgba(255,255,255,.1)!important}

/* 顶部导航与内容画布 */
main{margin-left:256px}
header{height:82px;padding:0 32px;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-color:#e4eaf3;box-shadow:0 1px 0 rgba(0,32,91,.02)}
header span{color:#94a1b5}
header h2{font-size:21px;color:var(--navy);letter-spacing:-.02em}
.admin{gap:12px}
.admin>span{width:42px;height:42px;border-radius:12px;background:linear-gradient(145deg,#00205b,#234185);color:#fff;box-shadow:0 6px 14px rgba(0,32,91,.2)}
.admin b{color:#152443}
.admin button{padding:8px 10px;border-radius:8px}
.admin button:hover{color:var(--red);background:#fff1f0}
.page{padding:38px 40px 50px;max-width:1520px}

/* 数据概览 */
.welcome{
  min-height:228px;padding:38px 42px;border-radius:28px;
  background-color:#00205b;
  background-image:linear-gradient(125deg,rgba(0,19,58,.98),rgba(0,32,91,.94) 58%,rgba(18,55,125,.94)),linear-gradient(rgba(255,255,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.08) 1px,transparent 1px);
  background-size:auto,50px 50px,50px 50px;
  border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 42px rgba(0,32,91,.2);
}
.welcome:after{display:none!important;content:none!important}
.welcome span{display:inline-block;padding:6px 12px;border-radius:18px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);color:#e0e9f7;font-weight:700}
.welcome h1{font-size:36px;letter-spacing:-.025em;margin:14px 0 16px}
.welcome p{font-size:15px;color:#d2def0}
.welcome p b{display:inline-grid;place-items:center;min-width:30px;padding:3px 7px;margin:0 4px;border:1px solid rgba(255,255,255,.22);border-radius:7px;background:rgba(255,255,255,.1)}
.welcome .primary{background:var(--red);color:#fff;border:1px solid rgba(255,255,255,.26);padding:17px 26px;box-shadow:0 12px 28px rgba(224,60,49,.38)}
.welcome .primary:hover{background:#c82e24}
.metrics{gap:20px;margin:28px 0}
.metric{position:relative;min-height:150px;padding:25px 26px;border-color:#dde5f0;border-radius:20px;box-shadow:0 8px 24px rgba(0,32,91,.055);overflow:hidden}
.metric:after{display:none!important;content:none!important}
.metric>*{position:relative;z-index:1}
.metric span,.metric b,.metric small{display:block}
.metric span,.metric small{color:#74839b}
.metric b{font-size:32px;color:#001f5b;margin-top:10px}
.metric i{width:48px;height:48px;border-radius:14px;background:#edf3ff;color:#234bd3;border:1px solid #d9e4fb}
.metric:last-child{border-color:#f0c3bf;background:linear-gradient(140deg,#fff,#fff9f8)}
.metric:last-child b,.metric:last-child i{color:var(--red)}
.metric:last-child i{background:#fff1f0;border-color:#f7c8c4}
.dashboard-grid{gap:24px;grid-template-columns:1.05fr .95fr}
.panel,.table-wrap{border-color:#dfe6f0;border-radius:20px;box-shadow:0 8px 28px rgba(0,32,91,.045)}
.panel-head{padding:24px 28px;background:linear-gradient(180deg,#fff,#fdfefe)}
.panel-head h3{font-size:17px;color:#09265f}
.project-row,.review-row{padding:19px 27px}
.link,.table-link{color:var(--navy);font-weight:750}
.link:hover,.table-link:hover{color:var(--red)}

/* 列表、表格、筛选与状态 */
.toolbar{margin-bottom:24px;align-items:center}
.toolbar h1{font-size:28px;color:var(--navy);letter-spacing:-.025em}
.toolbar p{font-size:13px;color:#8190a7}
.filters{gap:12px;margin-bottom:18px}
.filters input,.filters select,.login-card input,.dialog-body textarea{
  min-height:44px;border-color:#dce4ef;border-radius:11px;background:#fff;color:#172743;
}
.filters input:focus,.filters select:focus,.login-card input:focus,.dialog-body textarea:focus{border-color:#6d88bb;box-shadow:0 0 0 3px rgba(0,32,91,.07)}
.table-wrap{overflow:auto;background:#fff}
table{min-width:760px}
th{height:48px;padding:14px 20px;background:#f7f9fc;color:#687891;font-size:11px;font-weight:800;letter-spacing:.035em;text-transform:none}
td{padding:17px 20px;color:#1c2b47;border-color:#edf1f6}
tbody tr:hover{background:#f9fbfe}
.status{padding:6px 10px;border:1px solid transparent}
.status-active{background:#edf3fc;color:#234185;border-color:#dbe5f5}
.status-submitted,.status-pending{background:#fff6e5;color:#b97800;border-color:#f7e1b4}
.status-completed,.status-approved{background:#eaf8f2;color:#07865b;border-color:#cfefe2}
.status-rework{background:#fff0ef;color:#c43229;border-color:#f3cfcc}
.progress div{background:#e4eaf3}.progress i{background:linear-gradient(90deg,#00205b,#315ca8)}
.primary,.secondary,.danger{min-height:42px;border-radius:10px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;text-align:center;line-height:1.2}
.login-card button,.toolbar button,.dialog-actions button,.batch-actions button,.filter-tabs button{align-items:center;justify-content:center;text-align:center;line-height:1.2}
.secondary{border-color:#d8e0eb;color:#283957;box-shadow:0 2px 6px rgba(0,32,91,.035)}
.secondary:hover{border-color:#9bacc5;background:#f7f9fc}
.danger{border-color:#f0b8b4;color:#c82e24;background:#fffafa}
.danger:hover{background:#fff0ef;border-color:#e98f88}
.filter-tabs{gap:8px}
.filter-tabs button{border:1px solid #e0e6ee;background:#f1f4f8;color:#66758c}
.filter-tabs button.active{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:0 5px 12px rgba(0,32,91,.15)}

/* 员工卡片与弹窗 */
.worker-grid{gap:20px}
.worker-card{padding:23px;border-color:#dfe6f0;border-radius:18px;box-shadow:0 7px 24px rgba(0,32,91,.045)}
.worker-card:hover{border-color:#c8d5e7;box-shadow:0 12px 30px rgba(0,32,91,.075)}
.avatar{background:#edf2fc;color:var(--navy);border:1px solid #dce5f4}
.worker-meta div{background:#f7f9fc;border:1px solid #eef1f6}
dialog{border:1px solid rgba(255,255,255,.4);border-radius:22px;box-shadow:0 34px 100px rgba(0,17,48,.35)}
dialog::backdrop{background:rgba(1,13,37,.66);backdrop-filter:blur(3px)}
.dialog-close{background:#f0f3f7;color:#53627a}
.dialog-meta{background:#f5f8fc;border:1px solid #e6ebf3}
.toast{background:#061b42;border:1px solid rgba(255,255,255,.12);box-shadow:0 16px 42px rgba(0,14,40,.28)}

@media(max-width:1100px){
  .sidebar{width:232px}.logo{padding-left:22px;padding-right:22px}.logo img{width:176px;height:62px}
  main{margin-left:232px}.page{padding:28px}.metrics{gap:13px}.metric{padding:19px}
}
@media(max-width:760px){
  .sidebar{width:256px}.logo{min-height:105px}.page{padding:20px 16px 34px}
  header{height:70px;padding:0 15px}.welcome{min-height:190px;padding:25px 22px;border-radius:20px}.welcome h1{font-size:27px}
  .metrics{grid-template-columns:1fr 1fr;gap:11px}.metric{min-height:132px;padding:17px}.metric b{font-size:27px}
  .dashboard-grid{gap:16px}.toolbar h1{font-size:24px}.panel,.table-wrap{border-radius:16px}
}
@media(max-width:480px){
  .metrics{grid-template-columns:1fr}.metric{min-height:116px}.welcome p{line-height:1.8}
}
