*{box-sizing:border-box}
:root{
  --bg:#f5f7fb;--panel:#fff;--text:#1f2937;--muted:#6b7280;--line:#e5e7eb;
  --blue:#2563eb;--blue-soft:#eff6ff;--green:#059669;--green-soft:#ecfdf5;
  --orange:#f97316;--orange-soft:#fff7ed;--purple:#7c3aed;--purple-soft:#f5f3ff;
  --red:#dc2626;--red-soft:#fef2f2;--slate:#334155;--slate-soft:#f8fafc;
}
body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
.topbar{height:58px;background:linear-gradient(90deg,#0f172a,#1e3a8a);color:#fff;display:flex;align-items:center;padding:0 20px;gap:18px;position:sticky;top:0;z-index:20;box-shadow:0 2px 10px rgba(15,23,42,.18)}
.brand{font-weight:800;letter-spacing:.3px;font-size:16px}.topbar a{color:#dbeafe;text-decoration:none;margin-right:12px;font-size:14px}.topbar a:hover{color:#fff}.layout{display:flex}.sidebar{width:248px;background:#fff;border-right:1px solid var(--line);min-height:calc(100vh - 58px);padding:14px 12px;overflow:auto;position:sticky;top:58px;align-self:flex-start;max-height:calc(100vh - 58px)}
.sidebar-section{margin:0 0 12px;border-bottom:1px solid #f1f5f9;padding-bottom:10px}.sidebar-section:last-child{border-bottom:0}.sidebar-title{font-size:13px;font-weight:800;margin:10px 4px 8px;padding:6px 9px;border-radius:9px;letter-spacing:.2px;display:flex;align-items:center}.sidebar-title:before{content:"";width:4px;height:14px;border-radius:99px;margin-right:7px;background:currentColor}.section-home .sidebar-title{color:#1d4ed8;background:#eff6ff}.section-register .sidebar-title{color:#047857;background:#ecfdf5}.section-mine .sidebar-title{color:#7c3aed;background:#f5f3ff}.section-rules-view .sidebar-title{color:#b45309;background:#fffbeb}.section-supervisor .sidebar-title{color:#0369a1;background:#f0f9ff}.section-manage-view .sidebar-title{color:#334155;background:#f8fafc}.section-stat .sidebar-title{color:#be123c;background:#fff1f2}.section-settings .sidebar-title{color:#4338ca;background:#eef2ff}.section-system .sidebar-title{color:#52525b;background:#f4f4f5}
.sidebar a{display:block;padding:8px 11px;border-radius:9px;text-decoration:none;color:#334155;font-size:14px;margin:2px 0;border:1px solid transparent;transition:background .15s,color .15s,border-color .15s,transform .05s}.sidebar a:hover{background:#f8fafc;border-color:#e2e8f0;color:#0f172a}.sidebar a.active{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd;font-weight:700}.sidebar a:active{transform:translateY(1px)}
.main{flex:1;padding:22px;overflow:auto;min-width:0}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:17px;margin-bottom:16px;box-shadow:0 1px 4px rgba(15,23,42,.04)}h1{font-size:23px;margin:0 0 16px;font-weight:800;color:#0f172a}h2{font-size:18px;margin:0 0 12px;font-weight:800;color:#111827}.muted{color:var(--muted);font-size:13px}.grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px}.metric{background:linear-gradient(180deg,#fff,#f8fafc);border:1px solid var(--line);border-radius:12px;padding:14px}.metric .num{font-size:24px;font-weight:800;margin-top:6px;color:#1d4ed8}table{width:100%;border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid var(--line);padding:8px 9px;text-align:left;font-size:13px;vertical-align:top}th{background:#f8fafc;color:#334155;white-space:nowrap;font-weight:800}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:11px;background:#fff}input,select,textarea{width:100%;padding:8px 9px;border:1px solid #cbd5e1;border-radius:9px;background:#fff;font-family:inherit;font-size:13px}input:focus,select:focus,textarea:focus{outline:2px solid #bfdbfe;border-color:#60a5fa}textarea{min-height:70px}.btn{display:inline-block;border:0;background:var(--blue);color:#fff;padding:8px 13px;border-radius:9px;text-decoration:none;cursor:pointer;font-size:14px;font-weight:600}.btn:hover{filter:brightness(.96)}.btn.secondary{background:#64748b}.btn.ghost{background:#fff;color:var(--blue);border:1px solid #93c5fd}.btn.danger{background:var(--red)}.btn.small{padding:5px 8px;font-size:12px}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:12px 0}.flash{padding:10px 12px;border-radius:9px;margin-bottom:12px}.flash.success{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}.flash.danger{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.flash.warning{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.pill{display:inline-block;padding:2px 7px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:12px;font-weight:700}.pill.gray{background:#f3f4f6;color:#374151}.pill.red{background:#fee2e2;color:#991b1b}.pill.green{background:#d1fae5;color:#065f46}.form-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:12px}.form-grid .wide{grid-column:span 2}.form-grid .full{grid-column:1/-1}.login-box{max-width:420px;margin:80px auto}.notice{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;border-radius:11px;padding:12px;margin-bottom:14px}.nowrap{white-space:nowrap}.right{text-align:right}.page-loading{display:none;position:fixed;right:22px;bottom:22px;background:#0f172a;color:#fff;padding:10px 14px;border-radius:999px;box-shadow:0 8px 24px rgba(15,23,42,.25);z-index:99;font-size:13px}.page-loading.show{display:block}
@media(max-width:900px){.layout{display:block}.sidebar{width:auto;min-height:0;position:static;max-height:none}.grid,.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
/* v11 登录页优化 */
.login-page{min-height:100vh;display:grid;grid-template-columns:1.05fr 440px;align-items:center;gap:44px;padding:56px 8vw;background:linear-gradient(135deg,#e0f2fe 0%,#eef2ff 45%,#f8fafc 100%);position:relative;overflow:hidden}
.login-page:before{content:"";position:absolute;right:-120px;top:-120px;width:360px;height:360px;background:rgba(37,99,235,.12);border-radius:50%}.login-page:after{content:"";position:absolute;left:-120px;bottom:-160px;width:420px;height:420px;background:rgba(5,150,105,.10);border-radius:50%}.login-hero,.login-card{position:relative;z-index:1}.login-hero h1{font-size:42px;line-height:1.15;margin:14px 0 14px;color:#0f172a;letter-spacing:.5px}.login-badge{display:inline-block;background:#dbeafe;color:#1d4ed8;border:1px solid #bfdbfe;border-radius:999px;padding:7px 13px;font-weight:800}.login-subtitle{font-size:18px;color:#475569;margin:0 0 22px}.login-tags{display:flex;gap:10px;flex-wrap:wrap}.login-tags span{background:#fff;border:1px solid #e2e8f0;border-radius:999px;padding:8px 13px;color:#334155;font-weight:700;box-shadow:0 1px 8px rgba(15,23,42,.04)}.login-card{max-width:440px;margin:0;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.9);box-shadow:0 20px 50px rgba(15,23,42,.14);padding:28px}.login-card h2{font-size:26px;margin-bottom:6px}.login-form{display:grid;gap:10px;margin-top:18px}.login-form label{font-weight:800;color:#334155}.login-form input{height:44px;font-size:15px}.login-btn{height:45px;margin-top:8px;font-size:15px;width:100%}.login-note{margin-top:16px;background:#f8fafc;border:1px solid #e2e8f0;color:#64748b;border-radius:12px;padding:11px;line-height:1.6;font-size:13px}
@media(max-width:900px){.login-page{grid-template-columns:1fr;padding:34px 18px;gap:20px}.login-hero h1{font-size:30px}.login-card{max-width:none;width:100%}}
.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;}
.card-head h2{margin:0;}
/* V1 看板与移动端优化 */
.two-col{grid-template-columns:repeat(2,minmax(260px,1fr));}
.mini-bars{display:grid;gap:8px;margin:10px 0 16px;}
.bar-row{display:grid;grid-template-columns:180px 1fr 80px;align-items:center;gap:10px;font-size:13px;}
.bar-row b{display:block;height:12px;min-width:0;border-radius:999px;background:linear-gradient(90deg,#60a5fa,#2563eb);}
.bar-row em{font-style:normal;text-align:right;color:#475569;font-weight:700;}
.modal-mask{position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:80;display:flex;align-items:center;justify-content:center;padding:20px;}
.modal-card{background:#fff;border-radius:16px;box-shadow:0 22px 70px rgba(15,23,42,.25);max-width:980px;width:100%;max-height:86vh;overflow:auto;padding:18px;border:1px solid #e5e7eb;}
.password-wrap{position:relative;display:flex;align-items:center;}
.password-wrap input{padding-right:58px;}
.show-pass{position:absolute;right:6px;border:0;background:#eef2ff;color:#1d4ed8;border-radius:8px;padding:6px 9px;cursor:pointer;font-weight:700;}
.check-line{display:flex!important;align-items:center;gap:8px;font-weight:700!important;color:#334155;}
.check-line input{width:auto;height:auto;}
@media(max-width:760px){
  .main{padding:14px}.topbar{padding:0 12px}.sidebar{padding:10px}.card{padding:13px}.grid,.two-col{grid-template-columns:1fr}.metric .num{font-size:22px}
  .table-wrap{border:0;overflow:visible;background:transparent}
  .table-wrap table,.table-wrap thead,.table-wrap tbody,.table-wrap tr,.table-wrap th,.table-wrap td{display:block;width:100%}
  .table-wrap thead{display:none}.table-wrap tr{background:#fff;border:1px solid var(--line);border-radius:12px;margin:0 0 10px;padding:8px;box-shadow:0 1px 4px rgba(15,23,42,.04)}
  .table-wrap td{border-bottom:1px solid #f1f5f9;padding:7px 8px}.table-wrap td:last-child{border-bottom:0}
  .bar-row{grid-template-columns:1fr}.bar-row em{text-align:left}.bar-row b{width:100%!important}
  .login-page{min-height:100vh;grid-template-columns:1fr;padding:28px 16px}.login-hero h1{font-size:28px;text-align:center}.login-card{padding:20px}
}

/* V2 UI/体验优化 */
:root{
  --navy:#0f172a;--primary:#3158e7;--primary-dark:#1d4ed8;--soft-blue:#edf5ff;
  --soft-cyan:#ecfeff;--soft-violet:#f5f3ff;--soft-amber:#fffbeb;--soft-rose:#fff1f2;
  --shadow-sm:0 2px 8px rgba(15,23,42,.06);--shadow-md:0 14px 38px rgba(15,23,42,.10);
}
body{background:linear-gradient(180deg,#f7f9fd 0%,#f2f6fb 100%);color:#172033;font-size:14px;}
.topbar{height:56px;background:linear-gradient(90deg,#111827,#1e3a8a 70%,#2746a5);box-shadow:0 8px 22px rgba(15,23,42,.18);}
.brand{font-size:17px;letter-spacing:.6px}.topbar-role{color:#dbeafe;font-size:13px}.topbar-spacer{flex:1}.topbar-user{padding:7px 10px;border-radius:9px;background:rgba(255,255,255,.08)}.topbar-user:hover{background:rgba(255,255,255,.14)}
.topbar-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:999px;background:rgba(255,255,255,.08);margin-right:8px;text-decoration:none}.topbar-bell:hover{background:rgba(255,255,255,.16)}.bell-icon{font-size:17px}.bell-badge{position:absolute;right:1px;top:1px;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:800;line-height:17px;text-align:center;border:2px solid #1e3a8a}
.sidebar{width:250px;background:rgba(255,255,255,.94);box-shadow:inset -1px 0 0 #e5e7eb;padding:12px 11px}.sidebar-section{border-bottom:0;margin-bottom:8px;padding-bottom:4px}.sidebar-title{position:relative;cursor:pointer;user-select:none;justify-content:flex-start;padding:8px 10px}.collapse-arrow{margin-left:auto;font-size:11px;color:currentColor;opacity:.75;transition:transform .18s}.sidebar-section.collapsed .collapse-arrow{transform:rotate(-90deg)}.sidebar-section.collapsed .nav-link{display:none}.sidebar a{padding:9px 12px 9px 20px;border-radius:10px;margin:3px 0;position:relative}.sidebar a.active{background:#eaf2ff;border-color:#93c5fd;color:#1d4ed8;box-shadow:0 2px 8px rgba(37,99,235,.10)}.sidebar a.active:before{content:"";position:absolute;left:7px;top:9px;bottom:9px;width:4px;border-radius:999px;background:#3158e7}.sidebar a:hover{background:#f6f8fc;}
.main{padding:24px 26px}.card{border:1px solid #e3e8f1;border-radius:18px;box-shadow:var(--shadow-sm);padding:18px;background:rgba(255,255,255,.96)}.card:hover{box-shadow:0 6px 18px rgba(15,23,42,.06)}h1{font-size:24px;margin-bottom:14px}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin:2px 0 18px}.page-title h1{margin:0}.page-subtitle{color:#64748b;margin-top:6px;font-size:13px}.actions{background:#fff;border:1px solid #e6ebf3;border-radius:14px;padding:10px;box-shadow:0 1px 4px rgba(15,23,42,.03)}.actions .btn{margin:0}.btn{border-radius:10px;padding:8px 14px;background:linear-gradient(180deg,#3b63f2,#2f54dd);box-shadow:0 3px 9px rgba(37,99,235,.18)}.btn.ghost{box-shadow:none;background:#fff;color:#3158e7;border-color:#a8c4ff}.btn.secondary{background:#64748b}.btn.danger{background:#dc2626}.btn.small{border-radius:8px;padding:5px 8px}.grid{gap:14px}.metric{position:relative;overflow:hidden;border-radius:16px;padding:16px;border-color:#e6ebf3;background:linear-gradient(180deg,#fff,#f8fbff);box-shadow:0 2px 8px rgba(15,23,42,.04)}.metric:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#3158e7}.metric .num{font-size:26px;color:#3158e7}.metric.blue:before{background:#3158e7}.metric.blue .num{color:#3158e7}.metric.green:before{background:#059669}.metric.green .num{color:#059669}.metric.orange:before{background:#f97316}.metric.orange .num{color:#ea580c}.metric.purple:before{background:#7c3aed}.metric.purple .num{color:#7c3aed}.metric.red:before{background:#dc2626}.metric.red .num{color:#dc2626}.metric.slate:before{background:#475569}.metric.slate .num{color:#475569}.section-card{position:relative}.section-card:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:18px 18px 0 0;background:#3158e7}.section-card.blue:before{background:#3158e7}.section-card.green:before{background:#059669}.section-card.orange:before{background:#f97316}.section-card.purple:before{background:#7c3aed}.section-card.red:before{background:#dc2626}.section-card.cyan:before{background:#0891b2}.section-card.slate:before{background:#475569}
.table-wrap{border-radius:14px;border-color:#e6ebf3;box-shadow:0 1px 4px rgba(15,23,42,.03)}th{position:sticky;top:0;z-index:1;background:#f4f7fb;color:#243044}td,th{padding:10px 11px}tbody tr:hover{background:#f8fbff}.pill{padding:3px 9px;border-radius:999px}.pill.blue{background:#dbeafe;color:#1d4ed8}.pill.orange{background:#ffedd5;color:#c2410c}.pill.purple{background:#ede9fe;color:#6d28d9}.pill.red{background:#fee2e2;color:#b91c1c}.pill.green{background:#dcfce7;color:#15803d}.pill.slate{background:#e2e8f0;color:#334155}.empty-state{padding:34px 20px;text-align:center;color:#64748b;background:#f8fafc;border:1px dashed #cbd5e1;border-radius:14px}.empty-state strong{display:block;color:#334155;margin-bottom:4px}.mini-bars{background:#f8fafc;border:1px solid #e6ebf3;border-radius:14px;padding:12px}.bar-row{grid-template-columns:minmax(160px,220px) 1fr 78px}.bar-row b{height:13px;background:linear-gradient(90deg,#93c5fd,#3158e7);box-shadow:0 2px 6px rgba(49,88,231,.14)}
.login-page{grid-template-columns:minmax(360px,1fr) 420px;background:radial-gradient(circle at 92% -10%,rgba(49,88,231,.13) 0,rgba(49,88,231,.13) 16%,transparent 17%),radial-gradient(circle at 3% 100%,rgba(6,182,212,.12) 0,rgba(6,182,212,.12) 14%,transparent 15%),linear-gradient(135deg,#eaf6ff 0%,#eef3ff 52%,#f9fbff 100%);}
.login-hero h1{font-size:44px;letter-spacing:.8px;text-shadow:0 1px 0 rgba(255,255,255,.8)}.login-card{max-width:420px;border-radius:20px;padding:30px;box-shadow:0 26px 70px rgba(15,23,42,.14);border:1px solid rgba(226,232,240,.9)}.login-card h2{font-size:26px}.login-form{gap:9px}.login-form input{height:46px;border-radius:11px}.login-options{display:flex;align-items:center;gap:18px;margin:2px 0 6px}.check-line{display:inline-flex!important;width:auto!important;font-size:13px;font-weight:700!important;gap:6px;white-space:nowrap}.check-line input{width:15px!important;height:15px!important;margin:0;accent-color:#3158e7}.show-pass{right:8px;width:34px;height:30px;padding:0;border-radius:9px;font-size:15px;background:#f1f5f9;color:#1d4ed8}.password-wrap input{padding-right:50px}.login-btn{height:46px;border-radius:11px}.login-note{display:none!important}
@media(max-width:980px){.login-page{grid-template-columns:1fr;gap:20px}.login-hero h1{text-align:center;font-size:34px}.login-card{margin:0 auto;width:min(100%,420px)}}
@media(max-width:760px){.topbar{height:54px}.brand{font-size:16px}.topbar-role{display:none}.topbar-bell{width:34px;height:34px}.layout{display:block}.sidebar{width:100%;position:static;max-height:none;border-bottom:1px solid #e5e7eb}.sidebar-section.collapsed .nav-link{display:none}.main{padding:14px}.page-title{display:block}.actions{display:flex}.login-options{gap:12px;justify-content:space-between}.login-page{padding:26px 16px}.login-hero h1{font-size:29px}.login-card{padding:22px}.card{border-radius:15px}.metric{border-radius:14px}}

/* V2.1 confirmed refinements */
.section-points .sidebar-title{color:#a16207;background:#fef9c3}.section-register .sidebar-title{color:#047857;background:#ecfdf5}.menu-subgroup{font-size:12px;color:#64748b;font-weight:800;padding:8px 12px 3px;margin-top:4px;border-top:1px dashed #e2e8f0}.menu-subgroup:first-of-type{border-top:0}
.entry-form{background:#fff;border:1px solid #e6ebf3;border-radius:14px;padding:14px;box-shadow:0 1px 4px rgba(15,23,42,.03);margin-bottom:16px}.entry-page .table-wrap{box-shadow:none}.danger-light{color:#b91c1c!important;border-color:#fecaca!important;background:#fff!important}.suggest-hint{font-size:12px;line-height:1.4;margin-top:5px;color:#64748b}.suggest-hint.ok{color:#166534}.suggest-hint.warn{color:#b45309}
.exchange-hero{display:flex;justify-content:space-between;gap:18px;align-items:center;background:linear-gradient(135deg,#edf5ff,#fff7ed);border:1px solid #dbeafe;border-radius:20px;padding:22px;margin-bottom:14px;box-shadow:0 8px 24px rgba(15,23,42,.07)}.exchange-score{font-size:46px;font-weight:900;color:#3158e7;letter-spacing:.5px}.exchange-stats{display:grid;grid-template-columns:repeat(3,120px);gap:10px}.exchange-stats div{background:rgba(255,255,255,.75);border:1px solid #e6ebf3;border-radius:14px;padding:12px;text-align:center}.exchange-stats span{display:block;color:#64748b;font-size:12px}.exchange-stats b{display:block;font-size:20px;color:#0f172a;margin-top:4px}.prize-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.prize-card{background:#fff;border:1px solid #e6ebf3;border-radius:18px;padding:18px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden}.prize-card:before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:linear-gradient(90deg,#3158e7,#f59e0b)}.prize-card.disabled{opacity:.72}.gift-icon{font-size:26px;margin-bottom:8px}.prize-card h2{margin-bottom:6px}.cost{font-size:28px;font-weight:900;color:#f97316;margin:10px 0}.cost span{font-size:13px;color:#64748b}.prize-card form{display:grid;gap:8px;margin-top:12px}.prize-card button:disabled{cursor:not-allowed;filter:grayscale(.2)}
@media(max-width:760px){.exchange-hero{display:block}.exchange-stats{grid-template-columns:1fr;margin-top:12px}.exchange-score{font-size:38px}.prize-grid{grid-template-columns:1fr}}


/* 批量优化：左侧目录折叠、紧凑化、排名条修正 */
.sidebar-section.collapsed .nav-link{
  display:none !important;
}

.sidebar-section{
  margin-bottom:6px !important;
  padding-bottom:2px !important;
  border-bottom:0 !important;
}

.sidebar-title{
  margin:6px 0 4px !important;
  padding:8px 10px !important;
  min-height:34px;
}

.sidebar a.nav-link{
  padding:7px 10px 7px 22px !important;
  margin:1px 0 !important;
  font-size:13px !important;
  border-bottom:0 !important;
  box-shadow:none;
}

.sidebar a.nav-link.active{
  font-weight:800 !important;
}

.mini-bars{
  padding:12px !important;
}

.bar-row{
  min-height:22px;
}

.bar-row b{
  min-width:0 !important;
}

.bar-row b[style*="width:0"]{
  box-shadow:none !important;
}
/* PHP兼容：旧视图 tag 样式映射 */
.tag{display:inline-block;padding:3px 8px;border-radius:999px;font-size:12px;font-weight:700;background:#eef2ff;color:#3730a3}.tag.green{background:#d1fae5;color:#065f46}.tag.red{background:#fee2e2;color:#991b1b}.tag.orange{background:#ffedd5;color:#c2410c}.tag.blue{background:#dbeafe;color:#1d4ed8}.section-line{position:relative}.section-line:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:18px 18px 0 0;background:#3158e7}.section-green,.section-red{position:relative}.section-green:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:18px 18px 0 0;background:#059669}.section-red:before{content:"";position:absolute;left:0;right:0;top:0;height:5px;border-radius:18px 18px 0 0;background:#dc2626}.label{color:#64748b;font-size:13px}.rankbar{height:14px;background:#eef2ff;border-radius:999px;overflow:hidden}.rankbar span{display:block;height:100%;background:linear-gradient(90deg,#93c5fd,#3158e7);border-radius:999px}.danger-light{color:#b91c1c!important;border-color:#fecaca!important;background:#fff!important}.entry-form{background:#fff;border:1px solid #e6ebf3;border-radius:14px;padding:14px;box-shadow:0 1px 4px rgba(15,23,42,.03);margin-bottom:16px}.suggest-hint{font-size:12px;line-height:1.4;margin-top:5px;color:#64748b}.suggest-hint.ok{color:#166534}.suggest-hint.warn{color:#b45309}.autosave-status.ok{color:#07823f;font-weight:700}.autosave-status.bad,.autosave-status.err{color:#cf1322;font-weight:700}.autosave-status.warn{color:#ad6800;font-weight:700}.row-saved,.saved-row{opacity:.72;background:#f6ffed}.hint-danger{margin-top:6px;padding:7px 9px;border:1px solid #ff4d4f;background:#fff1f0;color:#cf1322;border-radius:8px;font-size:12px}.hint-ok{margin-top:6px;color:#087d44;font-size:12px}
.sub{color:#64748b;margin-top:0;margin-bottom:16px;font-size:13px}.content{flex:1;padding:28px;min-width:0}.wrap{display:flex}.user-info{display:flex;gap:14px;align-items:center}.user-info a{color:#fff}.table{width:100%;border-collapse:collapse;min-width:780px}.primary{background:var(--blue);color:#fff}.secondary{background:#64748b!important;color:#fff!important}
/* V8 正式修正版 */
.topbar-bell{position:relative}.notify-badge{position:absolute;right:-3px;top:-5px;min-width:18px;height:18px;line-height:18px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:900;text-align:center;padding:0 4px;border:2px solid #2946a7}.unread-row{background:#fff7ed}.notice.danger{border-color:#fecaca;background:#fff1f2;color:#b91c1c}.form-grid textarea{min-height:84px;resize:vertical}.honor-form input[readonly]{background:#f8fafc;color:#334155}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.topbar-bell .bell-icon{display:inline-block;line-height:1}
/* V9 正式修正版：规则结构、员工端隐藏贡献值、顶部布局防遮挡 */
.topbar{width:100%;min-width:0;overflow:visible}.brand{flex:0 0 auto;white-space:nowrap}.topbar-role{flex:0 1 auto;min-width:0;white-space:nowrap}.layout{width:100%;min-width:0}.sidebar{flex:0 0 248px}.main{min-width:0}.deduction-form input[readonly],.honor-form input[readonly]{background:#f8fafc;color:#334155}.danger-light{background:#fff!important;color:#b91c1c!important;border:1px solid #fecaca!important}

.inline-upload{display:inline-flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-upload input[type=file]{max-width:260px}.nowrap{white-space:nowrap}pre{background:#0f172a;color:#e2e8f0;padding:14px;border-radius:12px;overflow:auto}
