:root {
    --hud-bg: #020817;
    --hud-panel: rgba(5, 22, 48, .86);
    --hud-cyan: #42dcff;
    --hud-blue: #2f8fff;
    --hud-green: #66e59a;
    --hud-magenta: #d965ff;
    --hud-text: #eefaff;
    --hud-muted: #94adbd;
    --hud-corner: 22px;
    --hud-purple: #a57bff;
    --hud-amber: #f3c65b;
    --hud-danger: #ff7185;
    --hud-steel: #9db4c4;

    /* ---- 2026-09-10 全站 UI 刷新：护眼与清晰度令牌 ---- */
    --ui-bg-0: #030a18;
    --ui-bg-1: #051226;
    --ui-panel: rgba(6, 25, 52, .88);
    --ui-panel-2: rgba(9, 33, 66, .92);
    --ui-line: rgba(104, 220, 245, .2);
    --ui-line-strong: rgba(104, 220, 245, .38);
    --ui-text-1: #f2fbff;
    --ui-text-2: #cfe6f2;
    --ui-text-3: #a3c0d2;
    --ui-accent: #68e5f5;
    --ui-accent-soft: rgba(104, 229, 245, .12);
    --ui-gold: #f3c96f;
    --ui-green: #77e5ad;
    --ui-red: #ff8a9b;
    --ui-radius: 10px;
    --ui-font: "MiSans", "HarmonyOS Sans SC", "PingFang SC", "Microsoft YaHei UI", "Microsoft YaHei", "Noto Sans SC", "Segoe UI", sans-serif;
    --ui-shadow-1: 0 10px 30px rgba(0, 0, 0, .32);
    --ui-glow-1: 0 0 14px rgba(104, 229, 245, .18);
    --ui-speed: .22s;
}

html { overflow-y: scroll; }
*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: "Cascadia Mono", "JetBrains Mono", Consolas, "Microsoft YaHei UI", monospace !important;
    background-color: var(--hud-bg) !important;
}

h1, h2, h3, .brand-title, .brand-name, .topbar-title, .panel-title,
.stat-number, .value, .lead-copy, .core-message {
    text-shadow: 0 0 12px rgba(66, 220, 255, .14);
}

/* 字体色阶与立体高光。 */
.page-title h1, .panel-title, .card-header h3, .topbar-title {
    color: #e9fbff !important;
    background: linear-gradient(180deg, #fff 0%, #c8f4ff 52%, #71dfff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 0 12px rgba(66,220,255,.18);
}
.page-title p, .topbar-path, .brand-sub, .stat-sub, .info-item .label,
.member-table th, .dept-item .dept-name, .archive-tool-note {
    color: var(--hud-steel) !important;
}
.stat-label { color: #a8bdd2 !important; text-shadow: 0 0 8px rgba(90,180,255,.08); }
.info-item .value { color: #c9f7ff !important; text-shadow: 0 0 9px rgba(66,220,255,.12); }
.info-item:nth-child(2n) .value { color: #cdbdff !important; text-shadow: 0 0 9px rgba(165,123,255,.12); }
.member-table td { color: #9db3c9 !important; }
.member-table td:first-child, .member-table strong { color: #55e8ff !important; text-shadow: 0 0 10px rgba(66,220,255,.3); }
.member-table td:nth-child(3) { color: #80e9aa !important; }
.dept-item:nth-child(4n+1) .dept-name { color: #63ddff !important; }
.dept-item:nth-child(4n+2) .dept-name { color: #86e5ad !important; }
.dept-item:nth-child(4n+3) .dept-name { color: #b79aff !important; }
.dept-item:nth-child(4n) .dept-name { color: #f0c86a !important; }
.archive-page tbody td { color: #9eb4c9 !important; }
.archive-page tbody td:nth-child(1), .archive-page tbody td:nth-child(2) { color: #c7f7ff !important; }
.archive-page tbody td:nth-child(2) strong { color: #55e8ff !important; text-shadow: 0 0 10px rgba(66,220,255,.25); }
.archive-page tbody tr:hover td { color: #eafcff !important; }

/* 面板统一使用四角短线，不使用完整闭合边框。 */
.stat-card, .card, .table-wrap, .filter-bar, .tech-panel {
    border: 0 !important;
    position: relative;
    background-color: var(--hud-panel) !important;
    background-image:
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(145deg, rgba(8, 31, 67, .92), rgba(3, 14, 34, .94)) !important;
    background-size:
        var(--hud-corner) 1px, 1px var(--hud-corner),
        var(--hud-corner) 1px, 1px var(--hud-corner),
        var(--hud-corner) 1px, 1px var(--hud-corner),
        var(--hud-corner) 1px, 1px var(--hud-corner),
        100% 100% !important;
    background-position:
        left top, left top,
        right top, right top,
        left bottom, left bottom,
        right bottom, right bottom,
        center !important;
    background-repeat: no-repeat !important;
    box-shadow: inset 0 0 30px rgba(28, 122, 190, .045), 0 12px 34px rgba(0, 0, 0, .18) !important;
}

.stat-card, .card, .tech-panel {
    transform: translateZ(0);
}
.stat-card:hover, .card:hover {
    box-shadow: inset 0 1px rgba(255,255,255,.035), inset 0 0 38px rgba(42,137,210,.065), 0 18px 46px rgba(0,0,0,.25) !important;
}

.stat-card::before, .card::before, .table-wrap::before, .filter-bar::before {
    content: "";
    position: absolute;
    left: var(--hud-corner);
    right: var(--hud-corner);
    top: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(66, 220, 255, .2), transparent);
    pointer-events: none;
}

.stat-card::after {
    left: var(--hud-corner) !important;
    right: var(--hud-corner) !important;
    width: auto !important;
    background: linear-gradient(90deg, transparent, rgba(66, 220, 255, .28), transparent) !important;
    animation: none !important;
}

/* 统计卡标签与数字。 */
.stat-card .stat-icon {
    top: 15px !important;
    right: 16px !important;
    min-width: 42px;
    height: 22px;
    padding: 0 8px;
    display: grid;
    place-items: center;
    color: var(--hud-cyan) !important;
    opacity: .88 !important;
    border: 1px solid rgba(66, 220, 255, .48);
    background: rgba(3, 15, 32, .75);
    clip-path: polygon(0 0, 100% 0, 100% 72%, 88% 100%, 0 100%);
    letter-spacing: 1px;
}

.stat-card .stat-number {
    color: #f4fdff !important;
    -webkit-text-fill-color: #f4fdff !important;
    text-shadow: 0 0 8px rgba(255,255,255,.35), 0 0 22px rgba(66,220,255,.62) !important;
}
.stat-card .stat-number::after { content: ""; display: block; width: 42px; height: 1px; margin-top: 7px; background: linear-gradient(90deg,var(--hud-cyan),transparent); box-shadow: 0 0 8px var(--hud-cyan); }

.stat-card:nth-child(2) { --hud-cyan: #66e59a; }
.stat-card:nth-child(3) { --hud-cyan: #f2c451; }
.stat-card:nth-child(4) { --hud-cyan: #d965ff; }

/* 全息侧边栏与控制台菜单。 */
.sidebar {
    width: 248px !important;
    min-width: 248px;
    max-width: 248px;
    border-right: 0 !important;
    background-color: rgba(2, 10, 24, .97) !important;
    background-image:
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan)),
        linear-gradient(var(--hud-cyan), var(--hud-cyan));
    background-size: 30px 1px, 1px 30px, 30px 1px, 1px 30px, 30px 1px, 1px 30px, 30px 1px, 1px 30px;
    background-position: left 9px top 9px, left 9px top 9px, right 9px top 9px, right 9px top 9px, left 9px bottom 9px, left 9px bottom 9px, right 9px bottom 9px, right 9px bottom 9px;
    background-repeat: no-repeat;
    box-shadow: inset -1px 0 rgba(66, 220, 255, .16), 18px 0 46px rgba(0, 0, 0, .24) !important;
}

.system-brand {
    position: relative;
    border-bottom-color: rgba(66, 220, 255, .16) !important;
}

.system-brand::after {
    content: "";
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: -1px;
    height: 1px;
    background: linear-gradient(90deg, var(--hud-cyan), transparent);
    box-shadow: 0 0 8px rgba(66, 220, 255, .35);
}

.nav-link {
    position: relative;
    border-radius: 2px !important;
    background: linear-gradient(90deg, rgba(66, 220, 255, .025), transparent);
    clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 9px 100%, 0 calc(100% - 9px));
}

.nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 2px;
    height: 0;
    transform: translateY(-50%);
    background: var(--hud-cyan);
    box-shadow: 0 0 12px var(--hud-cyan);
    transition: height .2s ease;
}

.nav-link:hover::after { height: 42%; }
.nav-link.active::after { height: 72%; }
.nav-link.active {
    box-shadow: inset 0 0 24px rgba(66, 220, 255, .09), 0 0 13px rgba(66, 220, 255, .08) !important;
}
.nav-count { margin-left: auto; min-width: 20px; height: 18px; padding: 0 5px; display: grid; place-items: center; color: #041019; background: var(--hud-cyan); border-radius: 9px; font-size: 10px; box-shadow: 0 0 10px rgba(66,220,255,.45); }

/* 镂空线框按钮与标签。 */
.badge, .position-tag, .pagination a, .tab-item, .btn-reset,
.search-box button, .btn-login, .logout-link {
    color: var(--hud-cyan) !important;
    background: rgba(3, 15, 32, .58) !important;
    border: 1px solid rgba(66, 220, 255, .48) !important;
    border-radius: 3px !important;
    box-shadow: inset 0 0 12px rgba(66, 220, 255, .04) !important;
    transition: border-color .2s ease, box-shadow .2s ease, color .2s ease !important;
}

/* 所有操作按钮使用切角控制面板造型。 */
.badge, .position-tag, .pagination a, .tab-item, .btn-reset,
.search-box button, .btn-login, .archive-tool-link, .archive-import-button,
.archive-action-button, .archive-view-link, .logout-link {
    position: relative;
    clip-path: polygon(8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px), 0 8px);
    background-image: linear-gradient(180deg, rgba(26,93,143,.2), rgba(3,15,32,.64)) !important;
    text-shadow: 0 0 8px rgba(66,220,255,.18);
    overflow: hidden;
}
.badge::before, .position-tag::before, .tab-item::before,
.archive-tool-link::before, .archive-import-button::before,
.archive-action-button::before, .archive-view-link::before {
    content: ""; position: absolute; left: 8px; right: 8px; top: 0; height: 1px;
    background: linear-gradient(90deg,transparent,var(--hud-cyan),transparent); opacity: .55;
}
.badge:hover, .position-tag:hover, .pagination a:hover, .tab-item:hover,
.btn-reset:hover, .search-box button:hover, .btn-login:hover, .logout-link:hover,
.archive-tool-link:hover, .archive-import-button:hover, .archive-action-button:hover, .archive-view-link:hover {
    transform: translateY(-1px);
    background-image: linear-gradient(180deg, rgba(34,129,192,.3), rgba(5,25,49,.76)) !important;
}
.badge:active, .pagination a:active, .tab-item:active, .btn-reset:active,
.search-box button:active, .btn-login:active, .archive-tool-link:active,
.archive-import-button:active, .archive-action-button:active, .archive-view-link:active {
    transform: translateY(1px);
}
.archive-tool-link:nth-child(1) { color: #66dcff !important; }
.archive-import-button { color: #a98cff !important; border-color: rgba(165,123,255,.5) !important; }
.archive-tool-link:nth-last-of-type(1) { color: #7fe8a8 !important; border-color: rgba(102,229,154,.45) !important; }
.archive-action-button.danger { background-image: linear-gradient(180deg,rgba(123,31,52,.26),rgba(37,8,18,.7)) !important; }
.archive-action-button.restore { background-image: linear-gradient(180deg,rgba(26,112,66,.24),rgba(4,31,19,.7)) !important; }

.badge:hover, .position-tag:hover, .pagination a:hover, .tab-item:hover,
.btn-reset:hover, .search-box button:hover, .btn-login:hover, .logout-link:hover {
    color: #fff !important;
    border-color: var(--hud-cyan) !important;
    box-shadow: inset 0 0 16px rgba(66, 220, 255, .08), 0 0 13px rgba(66, 220, 255, .22) !important;
}

.tab-item.active, .pagination a.active {
    color: #fff !important;
    border-color: var(--hud-cyan) !important;
    box-shadow: inset 0 0 18px rgba(66, 220, 255, .1), 0 0 10px rgba(66, 220, 255, .16) !important;
}

/* 顶部状态栏。 */
.topbar {
    border-bottom: 0 !important;
    background: linear-gradient(90deg, rgba(2, 10, 24, .97), rgba(5, 25, 52, .94), rgba(2, 10, 24, .97)) !important;
}

.topbar::after {
    left: 4% !important;
    right: 4% !important;
    background: linear-gradient(90deg, transparent, var(--hud-blue), #fff, var(--hud-cyan), transparent) !important;
    box-shadow: 0 0 10px rgba(66, 220, 255, .42) !important;
}

.topbar-status strong { display: inline-flex; align-items: center; gap: 6px; }
.topbar-status strong::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--hud-green);
    box-shadow: 0 0 9px var(--hud-green);
    animation: hudStatus 2.2s ease-in-out infinite;
}

/* 顶部账号控制区 */
.topbar-right { display:flex; align-items:center; gap:22px; min-width:0; }
.topbar-account { min-width:350px; height:52px; display:flex; align-items:center; gap:10px; padding:5px 7px 5px 10px; position:relative; background:rgba(2,15,33,.64); border-left:1px solid rgba(66,220,255,.38); }
.topbar-account::before,.topbar-account::after { content:""; position:absolute; right:0; width:20px; height:1px; background:var(--hud-cyan); box-shadow:0 0 8px rgba(66,220,255,.38); }
.topbar-account::before { top:0; }.topbar-account::after { bottom:0; }
.account-avatar { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; position:relative; overflow:hidden; color:#dffaff; text-decoration:none; border:1px solid rgba(66,220,255,.65); border-radius:50%; background:radial-gradient(circle,rgba(66,220,255,.22),rgba(3,17,36,.92)); box-shadow:0 0 12px rgba(66,220,255,.2),inset 0 0 12px rgba(66,220,255,.1); }
.account-avatar::after { content:""; position:absolute; inset:-1px; border-radius:50%; border-top:1px solid #fff; animation:avatarScan 4s linear infinite; }
.account-avatar img { width:100%; height:100%; object-fit:cover; }
.account-avatar span { color:#dffaff; font-size:14px; font-weight:700; }
.account-copy { min-width:90px; flex:1; display:grid; gap:3px; }
.account-copy strong { color:#dff9ff; font-size:12px; font-weight:600; text-shadow:0 0 8px rgba(66,220,255,.2); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.account-copy span { color:#6f89a2; font-size:9px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.account-actions { display:flex; gap:6px; }
.account-actions a { min-width:58px; min-height:28px; display:inline-flex; align-items:center; justify-content:center; color:var(--hud-cyan); text-decoration:none; font-size:10px; border:1px solid rgba(66,220,255,.38); background:rgba(3,18,38,.76); clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px); transition:.2s ease; }
.account-actions a:hover,.account-actions .active { color:#fff; border-color:var(--hud-cyan); box-shadow:0 0 12px rgba(66,220,255,.25),inset 0 0 10px rgba(66,220,255,.08); }
.account-actions .account-logout { min-width:44px; color:#ff8e9c; border-color:rgba(255,113,133,.38); }
.account-actions .account-logout:hover { border-color:var(--hud-danger); box-shadow:0 0 12px rgba(255,113,133,.2); }
@keyframes avatarScan { to { transform:rotate(360deg); } }
@media (max-width:1100px) { .topbar-status { display:none !important; }.topbar-right { gap:0; } }
@media (max-width:768px) { .topbar-account { min-width:205px; height:48px; gap:7px; }.account-avatar { width:34px; height:34px; flex-basis:34px; }.account-copy span { display:none; }.account-copy { min-width:42px; }.profile-link { display:none !important; }.account-actions .account-logout { min-width:42px; }.topbar-title { font-size:12px !important; } }
@media (max-width:480px) { .topbar-account { min-width:145px; }.account-copy { display:none; } }

@keyframes hudStatus { 50% { opacity: .35; box-shadow: 0 0 3px var(--hud-green); } }

/* 登录页同样遵守统一HUD规范。 */
.login-page .brand-header { border-bottom: 0 !important; }
.login-page .brand-header::before, .login-page .brand-header::after { border-color: rgba(66, 220, 255, .48) !important; }
.login-page .tech-panel::before, .login-page .tech-panel::after { display: none; }
.login-page .btn-login {
    -webkit-text-fill-color: var(--hud-cyan);
    font-weight: 700;
    letter-spacing: 6px;
}
.login-page .form-group input {
    border: 0 !important;
    border-bottom: 1px solid rgba(66, 220, 255, .48) !important;
    border-radius: 0 !important;
}
.login-page .brand-name {
    background: linear-gradient(90deg,#fff 0%,#9eeeff 45%,#65d7ff 70%,#a88cff 100%);
    -webkit-background-clip: text; -webkit-text-fill-color: transparent;
    text-shadow: 0 0 18px rgba(66,220,255,.18);
}
.login-page .lead-copy { color: #d7efff !important; }
.login-page .support-copy { color: #91aac1 !important; }
.login-page .support-copy p:last-child { color: #bea9ff !important; }
.login-page .panel-kicker, .message-label { color: #58dfff !important; }
.login-page .btn-login { min-height: 54px; font-size: 14px; }

/* 档案库补齐与首页一致的空间背景和扫描层。 */
.archive-page {
    background:
        linear-gradient(rgba(66,220,255,.052) 1px, transparent 1px),
        linear-gradient(90deg,rgba(66,220,255,.052) 1px, transparent 1px),
        radial-gradient(circle at 82% 24%,rgba(31,122,205,.18),transparent 30%),
        linear-gradient(125deg,#020817 0%,#061a39 52%,#03234b 76%,#020817 100%) !important;
    background-size: 32px 32px,32px 32px,auto,auto !important;
}
.archive-page::after {
    content: ""; position: fixed; right: 4%; top: 15%; width: 390px; aspect-ratio: 1; border-radius: 50%; z-index: 0; pointer-events: none; opacity: .13;
    border: 1px solid var(--hud-cyan);
    background:
        linear-gradient(90deg,transparent 49.8%,var(--hud-cyan) 50%,transparent 50.2%),
        linear-gradient(transparent 49.8%,var(--hud-cyan) 50%,transparent 50.2%),
        repeating-radial-gradient(circle,transparent 0 48px,var(--hud-cyan) 49px 50px);
    animation: archiveRadar 24s linear infinite;
}
.archive-page .main-content::before {
    content: ""; position: fixed; left: 285px; right: 35px; top: 48%; height: 1px; z-index: 0; pointer-events: none;
    background: linear-gradient(90deg,transparent,rgba(66,220,255,.28),transparent);
    box-shadow: 0 0 11px rgba(66,220,255,.24);
}
.archive-page .table-wrap tbody tr { position: relative; transition: background .18s ease, box-shadow .18s ease; }
.archive-page .table-wrap tbody tr:hover { background: linear-gradient(90deg,rgba(66,220,255,.075),rgba(165,123,255,.035),transparent); box-shadow: inset 2px 0 var(--hud-cyan); }
.archive-page .filter-bar select, .archive-page .filter-bar input {
    color: #bcefff !important; border-color: rgba(66,220,255,.25) !important;
    background: linear-gradient(180deg,rgba(8,37,72,.8),rgba(2,15,34,.9)) !important;
}
.archive-page thead { background: linear-gradient(90deg,rgba(24,94,145,.14),rgba(7,28,57,.4),rgba(24,94,145,.14)); }
.archive-page th { color: #8fdff5 !important; text-shadow: 0 0 8px rgba(66,220,255,.12); }
@keyframes archiveRadar { to { transform: rotate(360deg); } }

/* 意见反馈模块。 */
.feedback-page {
    background:
        linear-gradient(rgba(66,220,255,.048) 1px,transparent 1px),
        linear-gradient(90deg,rgba(66,220,255,.048) 1px,transparent 1px),
        linear-gradient(125deg,#020817 0%,#061a39 52%,#03234b 76%,#020817 100%) !important;
    background-size: 32px 32px,32px 32px,auto !important;
}
.feedback-page .sidebar { position:fixed; inset:0 auto 0 0; width:248px; z-index:120; display:flex; flex-direction:column; padding:22px 16px; }
.feedback-page .system-brand { padding:0 8px 22px; }
.feedback-page .brand-mark { display:flex; align-items:center; gap:12px; }
.feedback-page .brand-logo-shell { width:50px; height:44px; padding:5px; display:grid; place-items:center; flex:0 0 auto; border:1px solid rgba(66,220,255,.42); border-radius:6px; background:rgba(10,17,26,.86); }
.feedback-page .brand-logo-shell img { width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 0 5px rgba(66,220,255,.22)); }
.feedback-page .brand-title { color:#eefaff; font-size:14px; font-weight:600; }
.feedback-page .brand-sub { margin-top:3px; font-size:9px; letter-spacing:1px; }
.feedback-page .system-live { display:flex; align-items:center; gap:7px; margin:14px 8px 22px; color:var(--hud-green); font-size:11px; }
.feedback-page .live-dot { width:7px; height:7px; border-radius:50%; background:var(--hud-green); box-shadow:0 0 10px var(--hud-green); }
.feedback-page .nav-label { padding:0 12px 8px; color:#596f86; font-size:9px; }
.feedback-page .main-nav { display:grid; gap:7px; }
.feedback-page .nav-link { min-height:46px; display:flex; align-items:center; gap:12px; padding:0 13px; color:#8da2b8; text-decoration:none; border:1px solid transparent; font-size:13px; }
.feedback-page .nav-index { color:var(--hud-cyan); font-size:10px; }
.feedback-page .sidebar-user { margin-top:auto; padding:15px 10px 0; border-top:1px solid rgba(255,255,255,.07); }
.feedback-page .user-line { color:#dff8ff; font-size:13px; }
.feedback-page .user-meta { color:#687f95; font-size:10px; margin-top:5px; }
.feedback-page .logout-link { display:inline-flex; margin-top:12px; padding:5px 9px; text-decoration:none; }
.feedback-page .topbar { position:fixed; top:0; left:248px; right:0; height:64px; z-index:110; display:flex; align-items:center; justify-content:space-between; padding:0 30px; backdrop-filter:blur(14px); }
.feedback-page .topbar-title { font-size:14px; letter-spacing:1px; }
.feedback-page .topbar-path { margin-top:4px; font-size:9px; }
.feedback-page .topbar-status { display:flex; gap:18px; color:#7f94aa; font-size:10px; }
.feedback-page .topbar-status strong { color:var(--hud-green); font-weight:500; }
.feedback-main { margin: 64px 0 0 248px; padding: 30px 34px 70px; position: relative; z-index: 1; }
.feedback-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; padding-left: 15px; border-left: 3px solid var(--hud-cyan); }
.feedback-header h1 { color: #eafdff; font-size: 22px; letter-spacing: 1px; }
.feedback-header p { margin-top: 6px; color: var(--hud-steel); font-size: 12px; }
.feedback-primary, .feedback-secondary {
    min-height: 38px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center;
    color: var(--hud-cyan); text-decoration: none; border: 1px solid rgba(66,220,255,.45); background: rgba(3,15,32,.68); cursor: pointer;
    clip-path: polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);
}
.feedback-primary:hover, .feedback-secondary:hover { color: #fff; border-color: var(--hud-cyan); box-shadow: 0 0 13px rgba(66,220,255,.2); }
.feedback-tabs { display: flex; gap: 8px; margin-bottom: 18px; }
.feedback-tabs a { min-height: 35px; padding: 0 15px; display: inline-flex; align-items: center; color: #8299b0; text-decoration: none; border-bottom: 1px solid rgba(66,220,255,.18); }
.feedback-tabs a.active { color: var(--hud-cyan); border-bottom-color: var(--hud-cyan); text-shadow: 0 0 8px rgba(66,220,255,.25); }
.feedback-layout { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 20px; }
.feedback-panel {
    padding: 20px; position: relative; background-color: rgba(5,22,48,.86);
    background-image: linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan));
    background-size: 22px 1px,1px 22px,22px 1px,1px 22px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat;
}
.feedback-list { display: grid; gap: 10px; }
.feedback-item { display: grid; grid-template-columns: 88px minmax(0,1fr) auto; gap: 14px; align-items: center; padding: 15px 14px; color: inherit; text-decoration: none; background: rgba(5,21,44,.65); border-left: 2px solid rgba(66,220,255,.3); transition: .2s ease; }
.feedback-item:hover { border-left-color: var(--hud-cyan); background: linear-gradient(90deg,rgba(66,220,255,.08),rgba(165,123,255,.025),transparent); transform: translateX(2px); }
.feedback-category { color: var(--hud-amber); font-size: 11px; }
.feedback-category.suggestion { color: var(--hud-green); }
.feedback-title { color: #dff9ff; font-size: 14px; }
.feedback-meta { margin-top: 5px; color: #71879d; font-size: 10px; }
.feedback-state { display: grid; justify-items: end; gap: 5px; color: #7890a7; font-size: 10px; }
.feedback-state .read { color: var(--hud-green); }
.feedback-state .unread { color: var(--hud-amber); }
.feedback-state .reply-unread { color: #d89aff; }
.feedback-empty { padding: 50px 20px; text-align: center; color: #61788e; }
.notification-list { display: grid; gap: 9px; }
.notification-item { padding: 11px; color:inherit; text-decoration:none; border-left: 1px solid rgba(66,220,255,.24); background: rgba(3,16,34,.56); }
.notification-item.unread { border-left-color: var(--hud-cyan); }
.notification-title { color: #bceeff; font-size: 12px; }
.notification-time { margin-top: 5px; color: #60758b; font-size: 9px; }
.feedback-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.feedback-field { display: grid; gap: 8px; }
.feedback-field.full { grid-column: 1 / -1; }
.feedback-field label { color: #91abc3; font-size: 12px; }
.feedback-field input, .feedback-field select, .feedback-field textarea { width: 100%; color: #dff8ff; background: rgba(2,14,31,.82); border: 0; border-bottom: 1px solid rgba(66,220,255,.38); outline: none; padding: 12px; }
.feedback-field textarea { min-height: 210px; resize: vertical; line-height: 1.8; }
.feedback-field input:focus, .feedback-field select:focus, .feedback-field textarea:focus { border-bottom-color: var(--hud-cyan); box-shadow: 0 8px 16px -14px var(--hud-cyan); }
.feedback-choice { display: flex; gap: 12px; }
.feedback-choice label { flex: 1; padding: 13px; cursor: pointer; border: 1px solid rgba(66,220,255,.18); background: rgba(3,17,36,.6); }
.feedback-choice input { width: auto; margin-right: 8px; }
.feedback-help { color: #637a91; font-size: 10px; line-height: 1.7; }
.feedback-detail-grid { display: grid; grid-template-columns: minmax(0,1fr) 300px; gap: 20px; }
.feedback-content { color: #b9cede; line-height: 1.9; white-space: pre-wrap; }
.feedback-identity { display: grid; gap: 9px; }
.feedback-identity div { padding: 10px; background: rgba(4,19,40,.6); }
.feedback-identity span { display: block; color: #637b92; font-size: 9px; margin-bottom: 4px; }
.anonymous-warning { color: var(--hud-amber); border-left: 2px solid var(--hud-amber); padding: 10px 12px; background: rgba(243,198,91,.06); font-size: 11px; }
.attachment-list { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.attachment-list a { color: #84dcff; padding: 7px 10px; text-decoration: none; border: 1px solid rgba(66,220,255,.22); font-size: 10px; }
.reply-timeline { display: grid; gap: 12px; margin-top: 15px; }
.reply-item { padding: 14px; border-left: 2px solid var(--hud-purple); background: rgba(17,13,48,.38); }
.reply-head { display: flex; justify-content: space-between; color: #9b88df; font-size: 10px; }
.reply-content { margin-top: 9px; color: #d3caff; line-height: 1.8; white-space: pre-wrap; }
.reply-read { margin-top: 8px; color: #6f849a; font-size: 9px; }
.reply-read.read { color: var(--hud-green); }
.feedback-actions { display: flex; gap: 9px; margin-top: 18px; flex-wrap: wrap; }
.feedback-danger { color: var(--hud-danger); border-color: rgba(255,113,133,.45); }
@media (max-width: 1050px) { .feedback-layout,.feedback-detail-grid { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .feedback-page .sidebar { position:fixed; inset:auto 0 0; width:auto; height:66px; padding:8px 8px; flex-direction:row; } .feedback-page .system-brand,.feedback-page .system-live,.feedback-page .nav-label,.feedback-page .sidebar-user { display:none; } .feedback-page .main-nav { width:100%; grid-template-columns:repeat(6,1fr); gap:4px; } .feedback-page .nav-link { justify-content:center; min-height:48px; padding:0 4px; font-size:10px; line-height:1.2; text-align:center; } .feedback-page .nav-index { display:none; } .feedback-page .topbar { left:0; padding:0 16px; } .feedback-page .topbar-status { display:none; } .feedback-main { margin-left:0; padding:16px 16px 88px; } .feedback-form-grid { grid-template-columns:1fr; } .feedback-field.full { grid-column:auto; } .feedback-item { grid-template-columns:72px minmax(0,1fr); } .feedback-state { grid-column:2; justify-items:start; } }

/* 班委数据总览 */
.overview-page::before { content:""; position:fixed; inset:64px 0 0 248px; pointer-events:none; opacity:.16; background:radial-gradient(circle at 78% 18%,rgba(66,220,255,.24),transparent 23%),linear-gradient(90deg,transparent 49.8%,rgba(66,220,255,.16) 50%,transparent 50.2%); }
.overview-main { max-width:1780px; }
.overview-filter { display:grid; grid-template-columns:minmax(240px,1.4fr) repeat(4,minmax(155px,1fr)) auto; gap:14px; align-items:end; margin-bottom:18px; padding:18px 20px; }
.overview-filter label { display:grid; gap:7px; }
.overview-filter label span { color:#91b4c9; font-size:12px; letter-spacing:.8px; }
.overview-filter input,.overview-filter select { min-height:46px; padding:10px 13px; color:#d9f8ff; font-size:14px; outline:none; border:1px solid rgba(66,220,255,.32); background:linear-gradient(180deg,rgba(8,37,72,.86),rgba(2,15,34,.96)); }
.overview-filter input:focus,.overview-filter select:focus { border-color:var(--hud-cyan); box-shadow:0 0 13px rgba(66,220,255,.14); }
.overview-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-bottom:12px; }
.overview-metrics>div { min-height:105px; padding:17px 16px; position:relative; overflow:hidden; background-color:rgba(5,22,48,.82); background-image:linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)); background-size:18px 1px,1px 18px,18px 1px,1px 18px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; }
.overview-metrics>div::after { content:""; position:absolute; right:-22px; bottom:-35px; width:85px; height:85px; border:1px solid rgba(66,220,255,.12); border-radius:50%; }
.overview-metrics span { display:block; color:#90b0c4; font-size:12px; }.overview-metrics small { display:block; color:#718ba2; font-size:10px; }
.overview-metrics strong { display:block; margin:12px 0 6px; color:#d7fbff; font-size:34px; line-height:1; text-shadow:0 0 16px rgba(66,220,255,.36); }
.overview-metrics strong.amber { color:var(--hud-amber); text-shadow:0 0 16px rgba(243,198,91,.28); }
.overview-metrics strong.green { color:var(--hud-green); text-shadow:0 0 16px rgba(102,229,154,.28); }
.overview-metrics>div.danger { background-color:rgba(69,15,35,.52); background-image:linear-gradient(var(--hud-danger),var(--hud-danger)),linear-gradient(var(--hud-danger),var(--hud-danger)),linear-gradient(var(--hud-danger),var(--hud-danger)),linear-gradient(var(--hud-danger),var(--hud-danger)); }
.overview-metrics>div.danger strong { color:#ff9aaa; text-shadow:0 0 17px rgba(255,113,133,.42); }
.overview-ranking-panel { margin-bottom:18px; padding:18px 0 0; overflow:hidden; }
.overview-section-title { display:flex; align-items:flex-end; justify-content:space-between; gap:16px; padding:0 18px 15px; }
.overview-section-title>div { display:flex; align-items:baseline; gap:11px; }
.overview-section-title>div>span { color:var(--hud-cyan); font-size:11px; letter-spacing:1.2px; }
.overview-section-title h2 { color:#e6fbff; font-size:20px; font-weight:600; }
.overview-section-title p { color:#89a5b8; font-size:12px; }
.overview-table-wrap { overflow:auto; border-top:1px solid rgba(66,220,255,.12); }
.overview-table { width:100%; min-width:1180px; border-collapse:collapse; }
.overview-table th { padding:15px 12px; color:#96e7f5; font-size:12px; font-weight:600; text-align:left; background:rgba(4,20,42,.9); border-bottom:1px solid rgba(66,220,255,.24); }
.overview-table td { padding:16px 12px; color:#b7cedc; font-size:13px; border-bottom:1px solid rgba(66,220,255,.09); }
.overview-table tbody tr { transition:.18s ease; }
.overview-table tbody tr:hover { background:linear-gradient(90deg,rgba(66,220,255,.07),rgba(164,123,255,.025),transparent); box-shadow:inset 2px 0 var(--hud-cyan); }
.rank-no { color:var(--hud-cyan); font-size:16px; text-shadow:0 0 9px rgba(66,220,255,.3); }
.class-code { color:#e2faff; font-size:15px; }
.score-value { color:#9df1ff; font-size:22px; text-shadow:0 0 12px rgba(66,220,255,.32); }
.role-score { display:grid; gap:5px; }.role-score strong { color:#d0f5fc; font-size:14px; }.role-score small { color:#7895aa; font-size:10px; white-space:nowrap; }
.missing-text { color:#7892a6; font-size:12px; }.missing-badge { display:inline-flex; padding:5px 8px; color:var(--hud-amber); border:1px solid rgba(243,198,91,.35); background:rgba(243,198,91,.06); font-size:11px; }
.shortfall { display:grid; gap:5px; }.shortfall strong { color:#ffacb6; font-size:13px; }.shortfall span { color:#92a8b8; font-size:10px; white-space:nowrap; }
.completion { min-width:105px; display:grid; grid-template-columns:minmax(60px,1fr) 42px; align-items:center; gap:8px; }.completion>div { height:5px; overflow:hidden; background:rgba(66,220,255,.09); }.completion i { display:block; height:100%; background:linear-gradient(90deg,#287fb1,var(--hud-cyan)); box-shadow:0 0 8px rgba(66,220,255,.35); }.completion span { color:#8fc9dc; font-size:11px; }
.overview-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:18px; }
.frequency-list,.warning-list { display:grid; gap:8px; }
.frequency-item { display:grid; grid-template-columns:minmax(0,1fr) 100px; gap:12px; align-items:center; padding:12px; border-left:2px solid rgba(66,220,255,.35); background:rgba(3,17,36,.58); }
.frequency-item>div { display:grid; gap:5px; }.frequency-item>div:last-child { justify-items:end; }.frequency-item strong { color:#d7f4fb; font-size:14px; }.frequency-item span,.frequency-item small { color:#829caf; font-size:11px; }.frequency-item b { color:var(--hud-amber); font-size:20px; }
.overview-alert-line { min-height:40px; margin:0 0 18px; padding:10px 14px; display:flex; align-items:center; gap:9px; color:#9bc1d1; font-size:12px; border-left:2px solid rgba(102,229,154,.65); background:rgba(5,26,45,.62); }
.overview-alert-line.danger { color:#ffc0c8; border-left-color:var(--hud-danger); background:rgba(74,15,35,.3); }
.overview-alert-line.safe .live-dot { background:var(--hud-green); box-shadow:0 0 9px var(--hud-green); }
.overview-alert-line.danger .live-dot { background:var(--hud-danger); box-shadow:0 0 9px var(--hud-danger); }
.overview-grid.single { grid-template-columns:1fr; }
.warning-panel { background-color:rgba(30,12,33,.72); }.warning-item { display:grid; grid-template-columns:54px minmax(0,1fr) 46px; gap:11px; align-items:start; padding:12px; border-left:2px solid var(--hud-danger); background:rgba(69,14,34,.28); }
.warning-item time { color:#ff8998; font-size:9px; }.warning-item>div { display:grid; gap:4px; }.warning-item strong { color:#ffd4d9; font-size:10px; }.warning-item span { color:#b67583; font-size:8px; }.warning-item p { color:#92717a; font-size:9px; line-height:1.5; }.warning-item>b { color:#ff8293; font-size:14px; text-align:right; }
.overview-empty { min-height:190px; display:grid; place-content:center; justify-items:center; gap:8px; text-align:center; }.overview-empty>span { color:#4c7589; font-size:9px; letter-spacing:2px; }.overview-empty strong { color:#85a5b7; font-size:12px; }.overview-empty p { color:#526b80; font-size:9px; }.overview-empty.safe>span,.overview-empty.safe strong { color:var(--hud-green); }
@media (max-width:1250px) { .overview-metrics { grid-template-columns:repeat(3,1fr); }.overview-filter { grid-template-columns:repeat(2,1fr); }.overview-filter button { justify-self:start; }.overview-grid { grid-template-columns:1fr; } }
@media (max-width:768px) { .overview-page::before { inset:64px 0 66px; }.overview-filter { grid-template-columns:1fr; }.overview-metrics { grid-template-columns:repeat(2,1fr); }.overview-section-title { align-items:flex-start; flex-direction:column; }.overview-metrics>div { min-height:90px; }.overview-metrics strong { font-size:22px; } }

.overview-visual-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.overview-chart-panel { min-height:360px; }
.ranking-bars { display:grid; gap:10px; padding:0 18px 12px; }
.ranking-bar-row { display:grid; grid-template-columns:62px minmax(0,1fr) 44px; gap:10px; align-items:center; }
.ranking-bar-row>span { color:#b5d4e2; font-size:12px; font-weight:600; }.ranking-bar-row>b { color:#bfefff; font-size:13px; text-align:right; }
.ranking-bar-row>div { height:12px; position:relative; background:rgba(66,220,255,.08); }
.ranking-bar-row i { display:block; height:100%; background:linear-gradient(90deg,#287fab,var(--hud-cyan)); box-shadow:0 0 9px rgba(66,220,255,.22); }
.ranking-bar-row em { position:absolute; top:-4px; bottom:-4px; width:1px; background:#fff; opacity:.8; box-shadow:0 0 7px #fff; }
.ranking-bar-row.focus i { background:linear-gradient(90deg,#a95e24,var(--hud-amber)); box-shadow:0 0 10px rgba(243,198,91,.32); }.ranking-bar-row.focus>b { color:var(--hud-amber); }
.trend-chart { height:270px; padding:4px 18px 12px; }.trend-chart svg { width:100%; height:225px; overflow:visible; }
.trend-chart line { stroke:rgba(66,220,255,.1); stroke-width:.5; }.trend-chart polyline { fill:none; stroke:var(--hud-cyan); stroke-width:2; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 4px rgba(66,220,255,.55)); }.trend-chart circle { fill:#dfffff; stroke:var(--hud-cyan); stroke-width:.7; vector-effect:non-scaling-stroke; }
.trend-labels { display:flex; justify-content:space-between; align-items:center; color:#7897aa; font-size:10px; }.trend-labels strong { color:#a7cfdd; font-size:11px; }
.overview-empty.compact { min-height:240px; }
.overview-table td.heat-low { background:rgba(243,198,91,.09); box-shadow:inset 0 -2px rgba(243,198,91,.42); }.overview-table td.heat-low .role-score strong { color:#ffd477; }
.overview-table td.heat-high { background:rgba(102,229,154,.075); box-shadow:inset 0 -2px rgba(102,229,154,.34); }.overview-table td.heat-high .role-score strong { color:#9df1bd; }
.overview-table td.heat-normal { background:rgba(66,220,255,.035); }
.overview-matrix-panel { margin:0 0 18px; padding:18px 0 0; overflow:hidden; }
.overview-matrix-panel .overview-section-title p { display:flex; align-items:center; gap:7px; }
.matrix-dot { width:8px; height:8px; display:inline-block; }.matrix-dot.complete { background:var(--hud-green); }.matrix-dot.partial { background:var(--hud-amber); }.matrix-dot.missing { background:#40576d; }
.matrix-wrap { overflow:auto; border-top:1px solid rgba(66,220,255,.12); }.matrix-table { min-width:1100px; width:100%; border-collapse:collapse; }
.matrix-table th { min-width:46px; padding:9px 5px; color:#79a6b9; font-size:9px; font-weight:500; text-align:center; border-bottom:1px solid rgba(66,220,255,.12); }.matrix-table th:first-child { min-width:74px; position:sticky; left:0; z-index:2; color:#c6eff8; background:#071b35; }
.matrix-table td { height:30px; padding:3px; text-align:center; border:1px solid rgba(66,220,255,.045); }.matrix-table td span { color:#d9f7ff; font-size:8px; opacity:.82; }
.matrix-table td.complete { background:rgba(102,229,154,.48); }.matrix-table td.partial { background:rgba(243,198,91,.42); }.matrix-table td.missing { background:rgba(52,75,96,.32); }
@media (max-width:1050px) { .overview-visual-grid { grid-template-columns:1fr; }.overview-chart-panel { min-height:320px; } }

/* 班委工作入口。 */
.shared-main-nav { gap:4px !important; }
.shared-main-nav .nav-link { min-height:40px !important; }

.committee-work-page {
    color-scheme:dark;
    color:#d8edf7;
    background-color:#050c17 !important;
    background-image:
        linear-gradient(rgba(72,205,238,.045) 1px,transparent 1px),
        linear-gradient(90deg,rgba(72,205,238,.045) 1px,transparent 1px),
        linear-gradient(135deg,#050c17 0%,#0a1a2d 56%,#07121f 100%) !important;
    background-size:32px 32px,32px 32px,auto !important;
}
.committee-work-page .topbar {
    background:rgba(5,14,26,.96);
    border-bottom:1px solid rgba(76,213,239,.22);
    box-shadow:0 8px 24px rgba(0,0,0,.24);
    backdrop-filter:blur(12px);
}
.committee-work-page .topbar-title { color:#f2fbff; font-size:16px; font-weight:800; letter-spacing:0; }
.committee-work-page .topbar-path { color:#7f9aad; letter-spacing:0; }
.committee-work-page .topbar-account { background:rgba(9,27,46,.88); border-left-color:rgba(76,213,239,.42); }
.committee-work-page .topbar-account::before,
.committee-work-page .topbar-account::after { background:#4cd5ef; box-shadow:0 0 9px rgba(76,213,239,.4); }
.committee-work-page .account-copy strong { color:#f2fbff; }
.committee-work-page .account-copy span { color:#91aabd; }
.committee-work-page .profile-link { color:#b7eaf4; border-color:rgba(76,213,239,.32); }
.committee-work-page .account-logout { color:#ff9ba6; border-color:rgba(255,112,130,.4); }
.committee-work-main { max-width:1480px; min-height:calc(100vh - 64px); margin-right:auto; padding:44px 48px 72px; }
.committee-work-heading { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:30px; padding-bottom:20px; border-bottom:2px solid rgba(76,213,239,.7); }
.committee-work-heading span { display:block; margin-bottom:8px; color:#65d8ee; font-size:13px; font-weight:800; letter-spacing:0; }
.committee-work-heading h1 { color:#f5fcff; font-size:32px; line-height:1.2; font-weight:900; letter-spacing:0; text-shadow:0 0 16px rgba(76,213,239,.18); }
.committee-work-heading p { color:#c1d8e4; font-size:16px; font-weight:700; }
.committee-role-grid { display:grid; grid-template-columns:repeat(3,minmax(220px,1fr)); gap:18px; }
.committee-role-entry {
    --role-color:#65e0a2;
    --role-soft:#102d27;
    min-height:210px;
    display:grid;
    grid-template-columns:auto 1fr auto;
    grid-template-rows:auto 1fr auto;
    gap:18px;
    align-items:center;
    padding:24px;
    color:#d8edf7;
    text-decoration:none;
    background-color:rgba(8,25,43,.94);
    background-image:linear-gradient(145deg,rgba(255,255,255,.025),transparent 56%);
    border:1px solid rgba(116,163,188,.3);
    border-top:5px solid var(--role-color);
    border-radius:6px;
    box-shadow:0 12px 28px rgba(0,0,0,.24),inset 0 0 24px rgba(76,213,239,.025);
    transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.committee-role-entry:hover,
.committee-role-entry:focus-visible { transform:translateY(-3px); border-color:var(--role-color); box-shadow:0 14px 32px rgba(0,0,0,.32),0 0 18px color-mix(in srgb,var(--role-color) 20%,transparent); outline:none; }
.committee-role-entry.disabled { cursor:not-allowed; opacity:.62; filter:saturate(.55); }
.committee-role-entry.disabled:hover { transform:none; border-color:rgba(139,179,199,.22); box-shadow:inset 0 0 24px rgba(76,213,239,.025); }
.committee-role-number { align-self:start; color:#9ab2c2; font-size:15px; font-weight:900; }
.committee-role-mark { width:58px; height:58px; display:grid; place-items:center; color:var(--role-color); background:var(--role-soft); border:1px solid color-mix(in srgb,var(--role-color) 42%,transparent); border-radius:6px; font-size:28px; font-weight:900; box-shadow:inset 0 0 18px color-mix(in srgb,var(--role-color) 8%,transparent); }
.committee-role-entry .committee-role-mark { grid-column:3; grid-row:1 / 3; justify-self:end; align-self:start; }
.committee-role-entry strong { grid-column:1 / 3; align-self:end; color:#f4fbff; font-size:25px; line-height:1.25; font-weight:900; letter-spacing:0; }
.committee-role-action { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; padding-top:16px; color:var(--role-color); border-top:1px solid rgba(139,179,199,.22); font-size:16px; font-weight:800; }
.committee-role-action b { font-size:23px; line-height:1; }
.committee-role-badge { grid-column:1 / 3; justify-self:start; align-self:end; display:inline-flex; width:max-content; margin-top:-8px; padding:5px 10px; color:#07141d; background:#ffd166; border:1px solid rgba(255,255,255,.5); border-radius:999px; font-size:12px; font-weight:900; box-shadow:0 0 14px rgba(255,209,102,.28); }
.role-secretary { --role-color:#67c7ff; --role-soft:#102b40; }
.role-discipline { --role-color:#ff8795; --role-soft:#381923; }
.role-study { --role-color:#9daeff; --role-soft:#1e2848; }
.role-life { --role-color:#ffd071; --role-soft:#362912; }
.role-safety { --role-color:#62ddd5; --role-soft:#102f31; }

.committee-role-main { padding-top:32px; }
.committee-back-link { display:inline-flex; align-items:center; gap:8px; margin-bottom:28px; color:#9fd7e6; font-size:15px; font-weight:800; text-decoration:none; }
.committee-back-link:hover { color:#fff; }
.committee-role-heading { --role-color:#65e0a2; --role-soft:#102d27; display:flex; align-items:center; gap:20px; margin-bottom:28px; }
.committee-role-heading>div>span { color:#71cfe2; font-size:13px; font-weight:800; }
.committee-role-heading h1 { margin-top:5px; color:#f5fcff; font-size:32px; font-weight:900; letter-spacing:0; }
.committee-role-tabs { display:flex; gap:0; overflow-x:auto; margin-bottom:36px; background:rgba(8,25,43,.9); border:1px solid rgba(106,160,186,.32); border-radius:6px; }
.committee-role-tabs a { min-width:128px; min-height:50px; display:flex; align-items:center; justify-content:center; padding:0 18px; color:#b8d0dd; font-size:15px; font-weight:800; text-decoration:none; border-right:1px solid rgba(106,160,186,.24); white-space:nowrap; }
.committee-role-tabs a:last-child { border-right:0; }
.committee-role-tabs a.active { color:#04131b; background:#64d9ee; box-shadow:0 0 18px rgba(100,217,238,.22); }
.committee-role-empty { min-height:330px; display:grid; place-content:center; justify-items:center; text-align:center; border-top:2px solid rgba(76,213,239,.72); border-bottom:1px solid rgba(106,160,186,.28); background:rgba(5,18,32,.38); }
.committee-role-empty span { color:#8eb4c6; font-size:14px; font-weight:800; }
.committee-role-empty strong { margin:14px 0 10px; color:#f1fbff; font-size:28px; font-weight:900; }
.committee-role-empty p { color:#b7d0dc; font-size:16px; font-weight:700; }

@media (max-width:1050px) {
    .committee-role-grid { grid-template-columns:repeat(2,minmax(220px,1fr)); }
}
@media (max-width:768px) {
    .feedback-page .shared-main-nav,
    .dashboard-page .shared-main-nav,
    .archive-page .shared-main-nav { display:flex !important; gap:5px !important; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:none; }
    .feedback-page .shared-main-nav::-webkit-scrollbar,
    .dashboard-page .shared-main-nav::-webkit-scrollbar,
    .archive-page .shared-main-nav::-webkit-scrollbar { display:none; }
    .feedback-page .shared-main-nav .nav-link,
    .dashboard-page .shared-main-nav .nav-link,
    .archive-page .shared-main-nav .nav-link { min-width:92px; flex:0 0 92px; }
    .committee-work-main { padding:26px 18px 94px; }
    .committee-work-heading { align-items:start; flex-direction:column; gap:8px; margin-bottom:20px; }
    .committee-work-heading h1,.committee-role-heading h1 { font-size:27px; }
    .committee-role-grid { grid-template-columns:1fr; gap:14px; }
    .committee-role-entry { min-height:170px; padding:20px; }
    .committee-role-entry strong { font-size:23px; }
    .committee-role-tabs { margin-bottom:24px; }
    .committee-role-tabs a { min-width:112px; min-height:48px; padding:0 12px; font-size:14px; }
    .committee-role-empty { min-height:280px; }
}

/* 数据总览高可读模式 */
.overview-page .feedback-header h1 { font-size:30px; color:#f0fcff; text-shadow:0 0 15px rgba(66,220,255,.24); }
.overview-page .feedback-header p { font-size:14px; color:#a7c4d5; }
.overview-page .feedback-primary,.overview-page .feedback-secondary { min-height:46px; padding:0 19px; font-size:14px; }
.overview-page .overview-filter label span { color:#b3d0df; font-size:14px; font-weight:600; }
.overview-page .overview-filter select { min-height:50px; color:#effcff !important; font-size:16px; font-weight:600; }
.overview-page .overview-metrics>div { min-height:122px; padding:21px 20px; }
.overview-page .overview-metrics span { color:#b3ccda; font-size:14px; font-weight:600; }
.overview-page .overview-metrics small { color:#89a5b7; font-size:12px; }
.overview-page .overview-metrics strong { margin:14px 0 8px; font-size:40px; }
.overview-page .overview-alert-line { min-height:46px; color:#c3dce8; font-size:14px; }
.overview-page .overview-section-title>div>span { font-size:13px; font-weight:700; }
.overview-page .overview-section-title h2 { font-size:24px; color:#f0fcff; }
.overview-page .overview-section-title p { color:#a1bbc9; font-size:14px; }
.overview-page .ranking-bar-row { grid-template-columns:76px minmax(0,1fr) 52px; gap:13px; }
.overview-page .ranking-bar-row>span { color:#d2e8f2; font-size:15px; }
.overview-page .ranking-bar-row>b { color:#dcf8ff; font-size:16px; }
.overview-page .ranking-bar-row>div { height:15px; }
.overview-page .trend-labels { color:#a4bdcb; font-size:13px; }.overview-page .trend-labels strong { color:#cde6ef; font-size:14px; }
.overview-page .overview-table { min-width:1540px; }
.overview-page .overview-table th { padding:17px 14px; color:#b5f0fa; font-size:14px; }
.overview-page .overview-table td { padding:18px 14px; color:#cee0e9; font-size:15px; }
.overview-page .rank-no { font-size:18px; }.overview-page .class-code { font-size:17px; }.overview-page .score-value { font-size:25px; }
.overview-page .role-score { min-width:155px; gap:6px; }
.overview-page .role-score strong { color:#edfbff; font-size:16px; }
.overview-page .role-score small { color:#a9c0cf; font-size:13px; }
.overview-page .role-score span { color:#8fb1c3; font-size:12px; line-height:1.55; white-space:nowrap; }
.overview-page .missing-text { color:#9ab1c0; font-size:13px; }
.overview-page .shortfall { min-width:190px; gap:7px; }.overview-page .shortfall strong { color:#ffb7c0; font-size:15px; }.overview-page .shortfall span { color:#b1c2cd; font-size:12px; }
.overview-page .frequency-item { min-height:74px; padding:16px 18px; }
.overview-page .frequency-item strong { color:#effcff; font-size:17px; }
.overview-page .frequency-item span,.overview-page .frequency-item small { color:#a6bdca; font-size:13px; }
.overview-page .frequency-item b { color:#ffd36d; font-size:22px; white-space:nowrap; }
.overview-detail-panel { margin:0 0 18px; padding:18px 0 0; overflow:hidden; }
.deduction-detail-table { min-width:1420px !important; }
.deduction-detail-table time { color:#b9d9e7; white-space:nowrap; }
.detail-position { display:inline-flex; min-width:54px; justify-content:center; padding:5px 9px; color:#8feeff; border:1px solid rgba(66,220,255,.3); background:rgba(66,220,255,.07); }
.detail-item { display:grid; gap:5px; min-width:220px; }.detail-item small { color:#83a8ba; font-size:12px; }.detail-item strong { color:#e8faff; font-size:15px; }
.deduction-value { color:#ffd06b; font-size:20px; text-shadow:0 0 12px rgba(243,198,91,.28); white-space:nowrap; }
.detail-reason { min-width:260px; max-width:430px; color:#d1e3eb; line-height:1.7; white-space:normal; }
.detail-link { display:inline-flex; min-height:34px; align-items:center; padding:0 11px; color:#8feeff; text-decoration:none; white-space:nowrap; border:1px solid rgba(66,220,255,.32); background:rgba(4,25,50,.7); }.detail-link:hover { color:#fff; border-color:var(--hud-cyan); box-shadow:0 0 12px rgba(66,220,255,.2); }
@media (max-width:768px) { .overview-page .feedback-header h1 { font-size:24px; }.overview-page .overview-metrics strong { font-size:31px; }.overview-page .overview-metrics span { font-size:12px; } }
.overview-switch { display:flex; gap:8px; margin:0 0 18px; }.overview-switch a { min-height:42px; padding:0 18px; display:inline-flex; align-items:center; color:#8ca9ba; font-size:14px; font-weight:600; text-decoration:none; border:1px solid rgba(66,220,255,.2); background:rgba(3,17,36,.62); }.overview-switch a.active { color:#e8fbff; border-color:var(--hud-cyan); background:rgba(66,220,255,.1); box-shadow:0 0 13px rgba(66,220,255,.14); }
.internal-filter { grid-template-columns:minmax(320px,1fr) auto; }.internal-metrics { grid-template-columns:repeat(6,1fr); }
.internal-department-panel { padding:18px 0 0; margin-bottom:18px; overflow:hidden; }.internal-table-wrap { overflow:auto; border-top:1px solid rgba(66,220,255,.14); }.internal-table { width:100%; min-width:1180px; border-collapse:collapse; }.internal-table th { padding:15px 13px; color:#9be7f4; font-size:13px; text-align:left; border-bottom:1px solid rgba(66,220,255,.22); background:rgba(3,18,39,.82); }.internal-table td { padding:16px 13px; color:#bed4df; font-size:14px; border-bottom:1px solid rgba(66,220,255,.08); }.internal-table td strong { color:#ebfbff; font-size:15px; }.internal-table td.good { color:var(--hud-green); }.internal-table td.warn { color:var(--hud-amber); }
.internal-progress { min-width:120px; display:grid; grid-template-columns:1fr 42px; align-items:center; gap:8px; }.internal-progress:before { content:""; grid-column:1; grid-row:1; height:6px; background:rgba(66,220,255,.1); }.internal-progress i { grid-column:1; grid-row:1; display:block; height:6px; background:linear-gradient(90deg,#2b83ad,var(--hud-green)); }.internal-progress span { color:#a9d8e5; font-size:11px; }
.internal-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:18px; }.internal-member-list,.internal-backlog-list { display:grid; gap:9px; }.internal-member-list>div { min-height:64px; padding:13px 15px; display:grid; grid-template-columns:minmax(0,1fr) 70px 120px; gap:12px; align-items:center; border-left:2px solid rgba(66,220,255,.42); background:rgba(3,17,36,.58); }.internal-member-list span { display:grid; gap:5px; }.internal-member-list strong { color:#e6faff; font-size:15px; }.internal-member-list small { color:#8ca8b9; font-size:11px; }.internal-member-list b { color:var(--hud-cyan); font-size:17px; }.internal-member-list em { color:#a5bbc8; font-size:12px; font-style:normal; }
.internal-backlog-list>div { min-height:64px; padding:13px 15px; display:grid; grid-template-columns:minmax(0,1fr) 45px; gap:7px 12px; align-items:center; border-left:2px solid var(--hud-amber); background:rgba(50,37,10,.2); }.internal-backlog-list strong { color:#f0faff; font-size:14px; }.internal-backlog-list b { color:var(--hud-amber); font-size:21px; text-align:right; }.internal-backlog-list span { color:#8da6b5; font-size:11px; }
@media (max-width:1200px) { .internal-metrics { grid-template-columns:repeat(3,1fr); }.internal-grid { grid-template-columns:1fr; } }
@media (max-width:768px) { .overview-switch { display:grid; grid-template-columns:1fr 1fr; }.overview-switch a { padding:0 8px; justify-content:center; font-size:12px; }.internal-filter { grid-template-columns:1fr; }.internal-metrics { grid-template-columns:repeat(2,1fr); } }

/* 深色主题可读性兜底，覆盖早期页面遗留的黑色文本和浅色系统控件。 */
.feedback-page { color-scheme:dark; color:#bcd6e7; }
.feedback-page .feedback-panel { color:#bcd6e7; }
.feedback-page .feedback-panel h1,
.feedback-page .feedback-panel h2,
.feedback-page .feedback-panel h3,
.feedback-page .feedback-panel h4 { color:#e4f9ff !important; text-shadow:0 0 11px rgba(66,220,255,.16); }
.feedback-page .panel-kicker,
.feedback-page .profile-section-code { color:#62dfff !important; text-shadow:0 0 9px rgba(66,220,255,.18); }
.feedback-page .feedback-identity>div { color:#d7edf7 !important; }
.feedback-page .feedback-identity>div>span { color:#7897ae !important; }
.feedback-page .feedback-content { color:#c5dce9 !important; }
.feedback-page .feedback-empty { color:#7893a8 !important; }
.feedback-page .feedback-empty strong { color:#a9c7d8 !important; }
.feedback-page .feedback-field label { color:#9bb9cb !important; }
.feedback-page input,
.feedback-page select,
.feedback-page textarea { color-scheme:dark; caret-color:var(--hud-cyan); }
.feedback-page select,
.overview-filter select { color:#d5f5ff !important; background-color:#061a36 !important; }
.feedback-page select option,
.feedback-page select optgroup,
.overview-filter select option { color:#d9f6ff !important; background:#071b35 !important; }
.feedback-page input[type="date"]::-webkit-calendar-picker-indicator { opacity:1; cursor:pointer; }
.feedback-page input::placeholder,
.feedback-page textarea::placeholder { color:#58758d !important; opacity:1; }
.notification-list + *, .notification-item { color:#bcd6e7; }
.feedback-page .reply-item { color:#d7d1ff; }
.feedback-page .reply-content { color:#d8d2ff !important; }

/* 公告栏 */
.announcement-list { display:grid; gap:10px; }
.announcement-item { display:grid; grid-template-columns:110px minmax(0,1fr) auto; gap:16px; align-items:center; padding:16px; color:inherit; text-decoration:none; border-left:2px solid var(--hud-amber); background:rgba(4,19,40,.66); transition:.2s ease; }
.announcement-item:hover { transform:translateX(2px); background:linear-gradient(90deg,rgba(66,220,255,.08),rgba(165,123,255,.03),transparent); }
.announcement-item.read { border-left-color:var(--hud-green); }
.announcement-item.withdrawn { border-left-color:#66798c; opacity:.68; }
.announcement-scope,.announcement-badge { color:var(--hud-cyan); font-size:11px; }
.announcement-badge { display:inline-flex; margin-bottom:18px; padding:6px 10px; border:1px solid rgba(66,220,255,.3); }
.announcement-confirmed { display:inline-flex; align-items:center; color:var(--hud-green); font-size:11px; }
.announcement-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }
.announcement-metrics>div { padding:17px; background:rgba(5,22,48,.82); border-top:1px solid rgba(66,220,255,.28); }
.announcement-metrics span { display:block; color:#71899f; font-size:10px; }
.announcement-metrics strong { display:block; margin-top:7px; color:#c9f7ff; font-size:23px; text-shadow:0 0 12px rgba(66,220,255,.25); }
.announcement-table { display:grid; }
.announcement-row { display:grid; grid-template-columns:1fr 1.2fr 1fr 1.5fr; gap:12px; padding:12px 10px; color:#a9c4d7; border-bottom:1px solid rgba(66,220,255,.09); font-size:11px; }
.announcement-row.head { color:var(--hud-cyan); border-bottom-color:rgba(66,220,255,.32); }
.status-read { color:var(--hud-green); }.status-unread { color:var(--hud-amber); }
@media (max-width:768px) { .announcement-item { grid-template-columns:82px minmax(0,1fr); }.announcement-item .feedback-state { grid-column:2; }.announcement-metrics { grid-template-columns:repeat(2,1fr); }.announcement-row { grid-template-columns:1fr 1fr; }.announcement-row span:nth-child(3),.announcement-row span:nth-child(4) { font-size:9px; } }

/* 档案状态管理。 */
.archive-heading-row { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.archive-view-switch { display: flex; gap: 8px; margin-bottom: 24px; }
.archive-view-link, .archive-action-button {
    min-height: 32px; padding: 0 12px; display: inline-flex; align-items: center; justify-content: center;
    color: var(--hud-muted); text-decoration: none; font: 11px "Cascadia Mono", Consolas, monospace;
    background: rgba(3,15,32,.62); border: 1px solid rgba(66,220,255,.25); border-radius: 3px; cursor: pointer;
}
.archive-view-link.active { color: var(--hud-cyan); border-color: var(--hud-cyan); box-shadow: 0 0 10px rgba(66,220,255,.14); }
.archive-flash { margin: 0 0 16px; padding: 11px 14px; border-left: 2px solid var(--hud-cyan); background: rgba(66,220,255,.07); color: #b9f3ff; font-size: 12px; }
.archive-flash.success { border-left-color: var(--hud-green); background: rgba(102,229,154,.07); color: #bfffd8; }
.archive-flash.danger { border-left-color: #ff6f7d; background: rgba(255,111,125,.07); color: #ffc3ca; }
.archive-operation { min-width: 225px; }
.archive-bulk-bar { display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:10px 14px; border-bottom:1px solid rgba(66,220,255,.12); background:rgba(3,17,36,.58); color:#9fb8c4; font-size:12px; }
.archive-bulk-bar label { display:inline-flex; align-items:center; gap:7px; color:#d7f6ff; cursor:pointer; }
.archive-bulk-bar input[type=checkbox], .archive-check-cell input[type=checkbox], .archive-request-check input[type=checkbox] { accent-color:var(--hud-cyan); width:15px; height:15px; }
.archive-bulk-bar span { color:#7fa4b6; font:11px "Cascadia Mono",Consolas,monospace; }
.archive-check-cell { width:54px; text-align:center !important; cursor:default !important; }
.archive-change-row { display:grid; grid-template-columns:minmax(0,1fr); gap:10px; align-items:stretch; width:100%; min-width:0; }
.archive-change-row.has-select { grid-template-columns:32px minmax(0,1fr); }
.archive-change-row.has-reject { grid-template-columns:minmax(0,1fr) 150px; }
.archive-change-row.has-select.has-reject { grid-template-columns:32px minmax(0,1fr) 150px; }
.archive-request-check { display:flex; align-items:center; justify-content:center; border:1px solid rgba(66,220,255,.14); background:rgba(3,17,36,.52); }
.archive-change-row .feedback-item { width:100%; min-width:0; box-sizing:border-box; }
.archive-inline-form { display: inline-flex; align-items: center; gap: 6px; vertical-align: middle; }
.archive-inline-form + .archive-inline-form { margin-left: 5px; }
.archive-status-select {
    height: 30px; min-width: 72px; padding: 0 7px; color: #dffaff; outline: none;
    background: rgba(2,13,29,.9); border: 1px solid rgba(66,220,255,.3); border-radius: 2px;
}
.archive-status-select option { background: #06152c; }
.archive-action-button { min-height: 30px; padding: 0 9px; }
.archive-action-button:hover { color: #fff; border-color: var(--hud-cyan); box-shadow: 0 0 10px rgba(66,220,255,.18); }
.archive-action-button.danger { color: #ff9aa5; border-color: rgba(255,111,125,.42); }
.archive-action-button.danger:hover { color: #fff; border-color: #ff6f7d; box-shadow: 0 0 10px rgba(255,111,125,.2); }
.archive-action-button.restore { color: #9ef2bd; border-color: rgba(102,229,154,.42); }
.archive-action-button.change { color:#8feeff; border-color:rgba(66,220,255,.42); text-decoration:none; }
.archive-change-pending { display:inline-flex; min-height:30px; align-items:center; padding:0 9px; color:#ffd477; font-size:11px; border:1px solid rgba(243,198,91,.35); background:rgba(243,198,91,.06); }
.archive-change-pending { text-decoration:none; cursor:pointer; }
.archive-change-pending.draft { color:#ffd477; border-color:rgba(243,198,91,.42); background:rgba(243,198,91,.08); }
.archive-change-pending.in_review { color:#8feeff; border-color:rgba(66,220,255,.42); background:rgba(66,220,255,.07); }
.archive-change-pending.rejected { color:#ff9aa5; border-color:rgba(255,111,125,.42); background:rgba(255,111,125,.07); }
.archive-change-pending:hover { color:#fff; border-color:currentColor; }
.archive-page .table-wrap { overflow-x:auto; }
.archive-page table { min-width:1260px; }
.archive-page .archive-operation { min-width:430px; white-space:nowrap; }
.archive-page .archive-operation .archive-inline-form { white-space:nowrap; }
.archive-change-context { display:inline-flex; align-items:center; min-height:40px; margin-left:auto; padding:0 12px; color:#9ed9e5; border:1px solid rgba(66,220,255,.22); background:rgba(66,220,255,.06); font-size:12px; }
.archive-change-notice { margin-bottom:18px; padding:15px 18px; display:grid; gap:7px; border-left:2px solid var(--hud-amber); background:rgba(243,198,91,.055); }.archive-change-notice strong { color:#ffd477; font-size:14px; }.archive-change-notice span { color:#b9c9d2; font-size:13px; line-height:1.7; }
.archive-change-form .feedback-field textarea { min-height:110px; }
.archive-flow-entry { margin-left:auto; margin-right:18px; }
.archive-flow-link { min-height:52px; padding:0 18px; display:flex; align-items:center; gap:11px; color:#eaffff; text-decoration:none; border:1px solid rgba(66,220,255,.72); border-left:3px solid var(--hud-cyan); background:linear-gradient(180deg,rgba(11,63,102,.9),rgba(3,25,52,.96)); box-shadow:inset 0 0 22px rgba(66,220,255,.08),0 0 16px rgba(66,220,255,.18); transition:.2s ease; }
.archive-flow-link span { color:#65e6ff; font-size:12px; font-weight:700; }
.archive-flow-link strong { color:#f1fdff; font-size:16px; font-weight:700; text-shadow:0 0 11px rgba(66,220,255,.35); }
.archive-flow-link i { margin-left:5px; padding:4px 7px; color:#071a2c; font-size:11px; font-style:normal; font-weight:700; background:#69e6ff; box-shadow:0 0 10px rgba(66,220,255,.38); }
.archive-flow-link:hover { transform:translateY(-2px); border-color:#b7f5ff; background:linear-gradient(180deg,rgba(15,82,128,.96),rgba(4,35,68,.98)); box-shadow:inset 0 0 24px rgba(66,220,255,.12),0 0 22px rgba(66,220,255,.3); }
.archive-change-item { grid-template-columns:160px minmax(0,1fr) 200px; }.archive-change-item > * { min-width:0; }.archive-change-item .feedback-kind { display:grid; gap:7px; align-content:center; min-width:0; }.archive-change-item .feedback-kind span { color:#86b4c5; font-size:11px; }.archive-change-item .feedback-kind strong { color:#e8fbff; font-size:14px; }.archive-change-item .feedback-summary { min-width:0; overflow:hidden; }.archive-change-item .feedback-summary h3 { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.archive-change-item .feedback-summary p { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.archive-change-item .feedback-state { min-width:0; justify-items:start; align-content:center; }.archive-change-item .feedback-state span { line-height:1.5; }.archive-change-status { color:#9fc7d7; }.archive-change-status.in_review { color:var(--hud-purple); }.archive-change-status.rejected { color:var(--hud-danger); }.archive-change-status.approved { color:var(--hud-green); }.archive-change-status.draft { color:var(--hud-amber); }
.archive-change-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }.archive-change-summary>div { display:grid; gap:7px; padding:12px; background:rgba(3,17,36,.5); }.archive-change-summary span { color:#7893a7; font-size:12px; }.archive-change-summary strong { color:#dff8ff; font-size:15px; }
.archive-change-diff { display:grid; gap:9px; margin-top:14px; }.archive-change-diff>div { display:grid; grid-template-columns:100px minmax(0,1fr) 30px minmax(0,1fr); gap:12px; align-items:center; padding:12px 14px; background:rgba(3,17,36,.55); }.archive-change-diff span { color:#8feeff; }.archive-change-diff del { color:#9caeb9; text-decoration:none; }.archive-change-diff i { color:#657f91; font-style:normal; }.archive-change-diff strong { color:#fff; }
.archive-change-action { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:18px; }.archive-change-action>div { display:grid; gap:6px; }.archive-change-action>div strong { color:#e9fbff; }.archive-change-action>div span { color:#8ea7b7; font-size:12px; }.archive-change-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }.archive-change-actions form { margin:0; }
.archive-draft-notice { border-left:2px solid var(--hud-amber); background:rgba(255,194,71,.06); }
@media(max-width:900px){.archive-change-item{grid-template-columns:140px minmax(0,1fr)}.archive-change-item .feedback-state{grid-column:2;justify-items:start;padding-top:8px}}
@media(max-width:768px){.archive-change-summary{grid-template-columns:1fr 1fr}.archive-change-diff>div{grid-template-columns:80px 1fr}.archive-change-diff i{display:none}.archive-change-item{grid-template-columns:1fr}.archive-change-item .feedback-state{grid-column:auto;padding-top:0}.archive-change-row.has-select,.archive-change-row.has-reject,.archive-change-row.has-select.has-reject{grid-template-columns:1fr}.archive-change-row.has-select .archive-request-check{min-height:36px}}
@media(max-width:900px){.archive-flow-entry{order:3;width:100%;margin:8px 0 0}.archive-flow-link{justify-content:center;width:100%}}
.archive-import-metrics { margin-bottom:18px; }.archive-import-preview { display:grid; gap:12px; margin-top:14px; }.archive-import-preview article { padding:15px; border-left:2px solid var(--hud-cyan); background:rgba(3,17,36,.58); }.archive-import-preview article header { display:flex; align-items:center; gap:12px; margin-bottom:12px; }.archive-import-preview article header span { padding:4px 8px; color:#8feeff; border:1px solid rgba(66,220,255,.35); }.archive-import-preview article header span.add { color:#9ef2bd;border-color:rgba(102,229,154,.4) }.archive-import-preview article header strong { color:#effcff; }.archive-import-preview article header small { margin-left:auto;color:#89a8ba }.archive-import-preview article>div { display:grid; gap:6px; }.archive-import-preview p { display:grid; grid-template-columns:90px minmax(0,1fr) 24px minmax(0,1fr); gap:10px; color:#a9bfcb; }.archive-import-preview p b { color:#80dff0; }.archive-import-preview p del { text-decoration:none; }.archive-import-preview p i { color:#638095;font-style:normal }.archive-import-preview p em { color:#fff;font-style:normal }
.archive-readonly { color: #5d7187; font-size: 11px; }
.archive-tools {
    display: flex; align-items: center; gap: 9px; flex-wrap: wrap;
    margin: 0 0 17px; padding: 12px 14px;
    background-image:
        linear-gradient(var(--hud-cyan),var(--hud-cyan)), linear-gradient(var(--hud-cyan),var(--hud-cyan)),
        linear-gradient(var(--hud-cyan),var(--hud-cyan)), linear-gradient(var(--hud-cyan),var(--hud-cyan));
    background-size: 20px 1px,1px 20px,20px 1px,1px 20px;
    background-position: left top,left top,right bottom,right bottom;
    background-repeat: no-repeat;
    background-color: rgba(4,18,39,.58);
}
.archive-tool-link, .archive-import-button {
    min-height: 34px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center;
    color: var(--hud-cyan); text-decoration: none; font-size: 11px; letter-spacing: .5px;
    border: 1px solid rgba(66,220,255,.38); background: rgba(3,15,32,.7); border-radius: 3px; cursor: pointer;
}
.archive-tool-link:hover, .archive-import-button:hover { color: #fff; border-color: var(--hud-cyan); box-shadow: 0 0 11px rgba(66,220,255,.18); }
.archive-import-form { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.archive-file-input {
    max-width: 260px; min-height: 34px; padding: 5px 8px; color: #8fa5bb; font-size: 11px;
    border: 1px solid rgba(66,220,255,.22); background: rgba(2,13,29,.72);
}
.archive-file-input::file-selector-button { margin-right: 9px; padding: 4px 8px; color: var(--hud-cyan); border: 1px solid rgba(66,220,255,.3); background: transparent; cursor: pointer; }
.archive-tool-note { margin-left: auto; color: #60758a; font-size: 10px; }

@media (max-width: 1000px) {
    .archive-heading-row { align-items: flex-start; flex-direction: column; }
    .archive-view-switch { margin-bottom: 10px; }
    .archive-tool-note { width: 100%; margin-left: 0; }
}

@media (max-width: 768px) {
    .sidebar { width: auto !important; min-width: 0; max-width: none; background-image: none; }
}

/* 个人中心 */
.profile-grid { display:grid; grid-template-columns:360px minmax(0,1fr); gap:20px; }
.profile-card { text-align:center; }
.profile-section-code { margin-bottom:22px; color:var(--hud-cyan); font-size:10px; letter-spacing:1px; text-align:left; }
.profile-avatar-large { width:132px; height:132px; margin:0 auto 17px; display:grid; place-items:center; position:relative; overflow:hidden; color:#dffaff; border:1px solid rgba(66,220,255,.7); border-radius:50%; background:radial-gradient(circle,rgba(66,220,255,.22),rgba(2,14,31,.94) 68%); box-shadow:0 0 28px rgba(66,220,255,.2),inset 0 0 28px rgba(66,220,255,.12); }
.profile-avatar-large::before,.profile-avatar-large::after { content:""; position:absolute; inset:7px; border:1px dashed rgba(66,220,255,.3); border-radius:50%; animation:avatarScan 12s linear infinite; }
.profile-avatar-large::after { inset:-10px; border-style:solid; border-color:var(--hud-cyan) transparent; animation-duration:7s; animation-direction:reverse; }
.profile-avatar-large img { width:100%; height:100%; object-fit:cover; position:relative; z-index:2; }
.profile-avatar-large span { position:relative; z-index:2; font-size:42px; font-weight:700; text-shadow:0 0 16px rgba(66,220,255,.5); }
.profile-card h2 { color:#e4fbff; font-size:20px; }.profile-card>p { margin:6px 0 20px; color:#718aa1; font-size:11px; }
.profile-card form { display:flex; justify-content:center; gap:8px; margin-top:10px; flex-wrap:wrap; }
.profile-file input { position:absolute; opacity:0; pointer-events:none; }
.profile-file span { min-height:38px; padding:0 14px; display:inline-flex; align-items:center; color:#8fa8bd; border:1px solid rgba(66,220,255,.24); cursor:pointer; }
.profile-file:hover span { color:var(--hud-cyan); border-color:var(--hud-cyan); }
.profile-card .feedback-help { margin-top:20px; text-align:left; }
.profile-password-form { max-width:620px; display:grid; gap:20px; }
.profile-password-form .feedback-primary { justify-self:start; }
@media (max-width:900px) { .profile-grid { grid-template-columns:1fr; }.profile-password-form { max-width:none; } }
.profile-header-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; }
.security-stats { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-bottom:18px; }
.security-stats article { min-height:110px; padding:20px 22px; display:flex; flex-direction:column; justify-content:center; position:relative; background:rgba(4,22,45,.76); border-top:1px solid rgba(66,220,255,.28); border-bottom:1px solid rgba(66,220,255,.1); }
.security-stats article::before,.security-stats article::after { content:""; position:absolute; width:18px; height:18px; }
.security-stats article::before { left:0; top:0; border-left:2px solid var(--hud-cyan); border-top:2px solid var(--hud-cyan); }
.security-stats article::after { right:0; bottom:0; border-right:2px solid var(--hud-cyan); border-bottom:2px solid var(--hud-cyan); }
.security-stats span { color:#8fb4c3; font-size:12px; }
.security-stats strong { margin-top:8px; color:#8bf1ff; font-size:30px; text-shadow:0 0 14px rgba(66,220,255,.42); }
.security-account-panel,.security-log-panel { margin-bottom:18px; overflow:hidden; }
.security-panel-head { padding:0 0 16px; display:flex; justify-content:space-between; gap:18px; align-items:flex-end; }
.security-panel-head p { margin-top:8px; color:#7896a7; font-size:12px; line-height:1.6; }
.security-search { display:flex; gap:9px; }
.security-search input { width:240px; min-height:40px; padding:0 12px; color:#e8faff; background:rgba(3,15,31,.88); border:1px solid rgba(66,220,255,.28); outline:none; }
.security-search input:focus { border-color:var(--hud-cyan); box-shadow:0 0 12px rgba(66,220,255,.16); }
.security-table-wrap { max-width:100%; overflow:auto; border-top:1px solid rgba(66,220,255,.15); }
.security-table { width:100%; min-width:1080px; border-collapse:collapse; }
.security-table th { padding:12px 11px; color:#9ed9e5; font-size:12px; text-align:left; white-space:nowrap; background:rgba(4,25,49,.82); border-bottom:1px solid rgba(66,220,255,.2); }
.security-table td { padding:12px 11px; color:#c9dce4; font-size:12px; border-bottom:1px solid rgba(66,220,255,.08); vertical-align:middle; }
.security-table tbody tr:hover td { background:rgba(66,220,255,.035); }
.security-table td>strong { display:block; color:#f0fbff; font-size:14px; }
.security-table td>span { display:block; margin-top:3px; color:#718e9f; font-size:11px; }
.security-status { display:inline-flex; margin:2px 5px 2px 0; padding:4px 7px; font-style:normal; font-size:11px; border:1px solid currentColor; }
.security-status.success { color:#69e59a; }.security-status.warning { color:#f4c451; }.security-status.danger { color:#ff7d70; }.security-status.muted { color:#7890a0; }
.security-actions { display:flex; flex-wrap:wrap; gap:6px; min-width:250px; }
.security-actions form { margin:0; }
.security-actions button { min-height:31px; padding:0 9px; color:#9beaff; font-size:11px; cursor:pointer; background:rgba(4,22,41,.72); border:1px solid rgba(66,220,255,.32); }
.security-actions button:hover { color:#fff; border-color:var(--hud-cyan); box-shadow:0 0 12px rgba(66,220,255,.2); }
.security-actions span { color:#7896a7; }
.security-log-table { min-width:980px; }
@media (max-width:900px) { .security-stats { grid-template-columns:1fr; }.security-panel-head { align-items:stretch; flex-direction:column; }.security-search input { width:100%; }.security-search { display:grid; grid-template-columns:1fr auto; } }

/* 数据汇报工作台 */
.report-stage-tag { padding:7px 11px; color:var(--hud-amber); font-size:10px; border:1px solid rgba(243,198,91,.34); background:rgba(243,198,91,.05); }
.report-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:20px; }
.report-metrics a { min-height:88px; padding:16px 18px; display:flex; align-items:flex-end; justify-content:space-between; color:inherit; text-decoration:none; position:relative; background-color:rgba(5,22,48,.8); background-image:linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)); background-size:18px 1px,1px 18px,18px 1px,1px 18px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; transition:.2s ease; }
.report-metrics a:hover { transform:translateY(-2px); background-color:rgba(8,34,68,.9); }
.report-metrics span { color:#7790a7; font-size:11px; }.report-metrics strong { color:#dffaff; font-size:28px; text-shadow:0 0 15px rgba(66,220,255,.35); }
.report-tabs { overflow-x:auto; }
.report-list { display:grid; gap:10px; }
.report-item { display:grid; grid-template-columns:155px minmax(240px,1fr) 125px 110px; gap:16px; align-items:center; padding:15px; color:inherit; text-decoration:none; border-left:2px solid rgba(66,220,255,.36); background:rgba(3,17,36,.58); transition:.2s ease; }
.report-item:hover { transform:translateX(2px); border-left-color:var(--hud-cyan); background:linear-gradient(90deg,rgba(66,220,255,.08),rgba(165,123,255,.025),transparent); }
.report-batch { display:grid; gap:5px; }.report-batch span { color:#617a91; font-size:9px; }.report-batch strong { color:#8fdff5; font-size:10px; font-weight:500; }
.report-data { display:grid; justify-items:end; gap:5px; color:#71899f; font-size:10px; }.report-data strong { color:var(--hud-amber); font-weight:500; }
.report-status { color:var(--hud-cyan); }.report-status.rejected { color:var(--hud-danger); }.report-status.finalized { color:var(--hud-green); }
.feedback-empty strong,.feedback-empty span { display:block; }.feedback-empty span { margin-top:8px; font-size:10px; }
@media (max-width:1000px) { .report-item { grid-template-columns:130px minmax(0,1fr) 100px; }.report-item .feedback-state { grid-column:2/4; justify-items:start; display:flex; gap:12px; }.report-metrics { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px) { .report-item { grid-template-columns:1fr; }.report-item .feedback-state { grid-column:auto; }.report-data { justify-items:start; }.report-metrics a { min-height:74px; padding:12px; }.report-metrics strong { font-size:22px; } }
.report-detail-grid { display:grid; grid-template-columns:minmax(0,1fr) 390px; gap:20px; }
.report-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-bottom:20px; }
.report-summary div { padding:12px; background:rgba(3,17,36,.62); border-bottom:1px solid rgba(66,220,255,.18); }
.report-summary span { display:block; color:#60788f; font-size:9px; }.report-summary strong { display:block; margin-top:5px; color:#c9f5ff; font-size:12px; }
.report-flow { display:grid; gap:8px; }.report-flow-step { display:grid; grid-template-columns:30px minmax(0,1fr) auto; gap:10px; align-items:center; padding:10px; border-left:2px solid #536b82; background:rgba(3,17,36,.58); }
.report-flow-step.pending { border-left-color:var(--hud-amber); }.report-flow-step.approved,.report-flow-step.auto_approved { border-left-color:var(--hud-green); }.report-flow-step.rejected { border-left-color:var(--hud-danger); }.report-flow-step.skipped { opacity:.58; }
.flow-index { color:var(--hud-cyan); font-size:9px; }.report-flow-step strong { color:#c5eaf3; font-size:11px; }.report-flow-step p { margin-top:4px; color:#647d94; font-size:9px; }.report-flow-step small { display:block; margin-top:4px; color:#899bad; font-size:8px; }.report-flow-step em { color:#7890a7; font-size:9px; font-style:normal; }
.report-review-panel,.report-history { margin-top:20px; }.report-review-actions { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.report-review-actions form { display:grid; gap:10px; }.report-review-actions textarea { min-height:90px; padding:11px; color:#dff8ff; resize:vertical; outline:none; border:1px solid rgba(66,220,255,.22); background:rgba(2,14,31,.82); }.report-review-actions button { justify-self:start; }.archive-list-reject { align-self:center; min-width:150px; }.archive-list-reject summary { cursor:pointer; list-style:none; padding:9px 12px; color:#ffb3bd; border:1px solid rgba(255,113,133,.45); background:rgba(55,17,29,.42); font-size:11px; }.archive-list-reject summary::-webkit-details-marker { display:none; }.archive-list-reject form { display:grid; gap:8px; margin-top:8px; }.archive-list-reject textarea { width:100%; min-height:58px; padding:9px; color:#dff8ff; resize:vertical; outline:none; border:1px solid rgba(255,113,133,.35); background:rgba(2,14,31,.82); }.archive-list-reject button { width:100%; min-height:36px !important; padding:7px 10px !important; }
.report-history-item { display:grid; grid-template-columns:150px 220px minmax(0,1fr); gap:14px; padding:11px 8px; border-bottom:1px solid rgba(66,220,255,.09); font-size:10px; }.report-history-item time { color:#60788f; }.report-history-item strong { color:#9edfec; }.report-history-item span { color:#8297aa; }
@media (max-width:1050px) { .report-detail-grid { grid-template-columns:1fr; } }
@media (max-width:700px) { .report-summary { grid-template-columns:repeat(2,1fr); }.report-review-actions { grid-template-columns:1fr; }.report-history-item { grid-template-columns:1fr; gap:5px; } }
.report-upload-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.report-download { justify-self:start; }
.report-row-list { display:grid; gap:12px; margin-top:20px; }.report-score-row { padding:14px; border-left:2px solid var(--hud-green); background:rgba(3,17,36,.58); }.report-score-row.warning { border-left-color:var(--hud-amber); }.report-score-row.error { border-left-color:var(--hud-danger); }
.report-score-row header { display:flex; align-items:center; justify-content:space-between; gap:12px; }.report-score-row header div { display:grid; gap:5px; }.report-score-row header strong { color:#d8f8ff; font-size:12px; }.report-score-row header span { color:#6f879d; font-size:9px; }.report-score-row header em { color:var(--hud-green); font-size:9px; font-style:normal; }.report-score-row.warning header em { color:var(--hud-amber); }.report-score-row.error header em { color:var(--hud-danger); }
.report-score-items { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:7px; margin-top:12px; }.report-score-items div { display:flex; justify-content:space-between; gap:8px; padding:8px; background:rgba(2,13,29,.7); }.report-score-items span { color:#7890a6; font-size:9px; }.report-score-items strong { color:#bcefff; font-size:10px; }
.report-score-row>p { margin-top:10px; color:#9ab0c1; font-size:10px; line-height:1.6; }.report-score-row ul { margin:9px 0 0; padding-left:18px; color:var(--hud-amber); font-size:9px; line-height:1.7; }.report-score-row.error ul { color:var(--hud-danger); }

/* 成绩总览 */
.score-sync-state { min-height:40px; padding:0 14px; display:flex; align-items:center; gap:9px; color:#a8cad8; font-size:13px; border-left:2px solid var(--hud-green); background:rgba(4,28,45,.62); }
.score-header-actions { display:flex; align-items:center; gap:12px; }.score-header-actions form { margin:0; }
.score-filter { grid-template-columns:minmax(210px,1.2fr) minmax(160px,.8fr) minmax(150px,.7fr) minmax(210px,1fr) auto; }
.score-filter input { min-height:50px; padding:10px 13px; color:#effcff; font-size:15px; outline:none; border:1px solid rgba(66,220,255,.32); background:linear-gradient(180deg,rgba(8,37,72,.86),rgba(2,15,34,.96)); }
.score-metrics,.score-detail-metrics { grid-template-columns:repeat(5,1fr); }
.score-overview-table { min-width:1480px !important; }
.score-person,.score-identity { display:grid; gap:5px; min-width:150px; }
.score-person strong { color:#effcff; font-size:17px; text-shadow:0 0 11px rgba(66,220,255,.24); }
.score-person span,.score-identity span { color:#8eaebe; font-size:12px; }
.score-identity strong { color:#72e6f7; font-size:14px; }
.score-value.skill { color:#9ef1bd; text-shadow:0 0 12px rgba(102,229,154,.3); }
.score-danger { color:#ff9cac !important; font-weight:700; text-shadow:0 0 10px rgba(255,113,133,.28); }
.score-warning { color:#ffd476; }.score-normal { color:#8fe4ad; }
.score-detail-link { min-height:34px; padding:0 12px; display:inline-flex; align-items:center; color:#a9f5ff; font-size:12px; text-decoration:none; border:1px solid rgba(66,220,255,.42); background:rgba(66,220,255,.055); transition:.18s ease; }
.score-detail-link:hover { color:#fff; border-color:var(--hud-cyan); box-shadow:0 0 14px rgba(66,220,255,.25),inset 0 0 10px rgba(66,220,255,.08); }
.score-detail-filter { grid-template-columns:minmax(260px,1fr) minmax(180px,.7fr) auto; }
.score-day-list { display:grid; gap:16px; }
.score-day-panel { padding:19px; }
.score-day-panel>header { display:flex; align-items:flex-end; justify-content:space-between; gap:15px; padding-bottom:14px; border-bottom:1px solid rgba(66,220,255,.13); }
.score-day-panel>header span { color:#67cfe0; font-size:11px; }.score-day-panel>header h2 { margin-top:5px; color:#effcff; font-size:21px; }.score-day-panel>header>b { color:#8ba9ba; font-size:12px; }
.score-day-records { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:11px; margin-top:15px; }
.score-day-records article { min-height:78px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:15px; background:rgba(2,17,37,.72); border-left:2px solid rgba(66,220,255,.55); }
.score-day-records article div { display:grid; gap:6px; }.score-day-records article span { color:#829fb0; font-size:11px; }.score-day-records article strong { color:#d8f5fb; font-size:15px; }.score-day-records article>b { color:#a9f7ff; font-size:29px; text-shadow:0 0 13px rgba(66,220,255,.34); }.score-day-records article>b.danger { color:#ff9cac; }
@media (max-width:1200px) { .score-metrics,.score-detail-metrics { grid-template-columns:repeat(3,1fr); }.score-filter { grid-template-columns:repeat(2,1fr); } }
@media (max-width:768px) { .score-metrics,.score-detail-metrics { grid-template-columns:repeat(2,1fr); }.score-filter,.score-detail-filter { grid-template-columns:1fr; }.score-header-actions { width:100%; align-items:stretch; flex-direction:column; }.score-sync-state { align-self:stretch; }.score-day-records { grid-template-columns:1fr; } }

/* 成绩日期矩阵 */
.score-matrix-main { max-width:none; padding-right:24px; }
.score-view-switch { display:flex; gap:8px; margin-bottom:16px; }
.score-view-switch a { min-width:150px; min-height:44px; padding:0 20px; display:inline-flex; align-items:center; justify-content:center; color:#91adbd; font-size:14px; font-weight:700; text-decoration:none; border:1px solid rgba(66,220,255,.22); background:rgba(3,17,36,.68); }
.score-view-switch a.active { color:#effeff; border-color:var(--hud-cyan); background:rgba(66,220,255,.11); box-shadow:0 0 15px rgba(66,220,255,.16),inset 3px 0 var(--hud-cyan); }
.score-matrix-filter { grid-template-columns:minmax(250px,1.2fr) minmax(220px,1fr) auto; }
.score-matrix-filter.committee { grid-template-columns:minmax(250px,1.2fr) minmax(190px,.9fr) minmax(190px,.9fr) auto; }
.score-matrix-metrics { grid-template-columns:repeat(5,1fr); }
.score-matrix-panel { padding:18px 0 0; overflow:hidden; }
.score-matrix-panel .overview-section-title p { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.score-legend { width:10px; height:10px; display:inline-block; margin-left:8px; border:1px solid currentColor; box-shadow:0 0 8px currentColor; }
.score-legend.excellent { color:#66e59a; background:rgba(102,229,154,.45); }.score-legend.warning { color:#f3c65b; background:rgba(243,198,91,.4); }.score-legend.danger { color:#ff7185; background:rgba(255,113,133,.4); }
.score-matrix-wrap { max-width:100%; overflow:auto; border-top:1px solid rgba(66,220,255,.16); scrollbar-color:rgba(66,220,255,.45) rgba(2,13,29,.8); }
.score-matrix-table { width:max-content; min-width:100%; border-collapse:separate; border-spacing:0; table-layout:fixed; }
.score-matrix-table th { height:44px; padding:8px 10px; position:relative; color:#b7edf5; font-size:12px; font-weight:700; text-align:center; white-space:nowrap; border-right:1px solid rgba(66,220,255,.1); border-bottom:1px solid rgba(66,220,255,.18); background:#061a35; }
.score-matrix-table td { height:50px; padding:8px 10px; color:#c9dce5; font-size:13px; text-align:center; white-space:nowrap; border-right:1px solid rgba(66,220,255,.065); border-bottom:1px solid rgba(66,220,255,.075); background:rgba(3,17,35,.78); }
.score-matrix-table tbody tr:hover td { box-shadow:inset 0 1px rgba(66,220,255,.12),inset 0 -1px rgba(66,220,255,.12); }
.score-matrix-table .sticky-name { width:178px; min-width:178px; position:sticky; left:0; z-index:5; text-align:left; background:#071c37; }
.score-matrix-table .sticky-meta { width:165px; min-width:165px; position:sticky; left:178px; z-index:5; text-align:left; background:#071c37; box-shadow:8px 0 16px rgba(0,0,0,.2); }
.score-matrix-table thead .sticky-name,.score-matrix-table thead .sticky-meta { z-index:8; color:#dffaff; }
.score-matrix-table .sticky-name a { display:grid; gap:4px; color:inherit; text-decoration:none; }.score-matrix-table .sticky-name strong,.score-matrix-table .sticky-meta strong { color:#effcff; font-size:14px; }.score-matrix-table .sticky-name span,.score-matrix-table .sticky-meta span { display:block; color:#82a6b8; font-size:11px; }
.score-date-head { width:124px; min-width:124px; }.score-date-head span { display:block; color:#c9f7ff; font-size:13px; }.score-date-head b { display:inline-block; margin-top:3px; padding:2px 7px; color:#ffd679; font-size:10px; border:1px solid rgba(243,198,91,.42); background:rgba(243,198,91,.08); }.score-date-head.important { background:#0a2340; }
.score-sub-head { width:62px; min-width:62px; color:#8fc8d5 !important; font-size:11px !important; }
.score-cell { width:62px; min-width:62px; font-size:15px !important; font-weight:800; }
.score-cell.excellent { color:#9af0b9 !important; background:rgba(50,135,88,.2); text-shadow:0 0 9px rgba(102,229,154,.36); }.score-cell.warning { color:#ffd46f !important; background:rgba(154,111,28,.19); text-shadow:0 0 9px rgba(243,198,91,.3); }.score-cell.danger { color:#ff9aaa !important; background:rgba(145,42,61,.2); text-shadow:0 0 9px rgba(255,113,133,.34); }.score-cell.empty { color:#526e80 !important; background:rgba(3,15,31,.64); font-weight:500; }
@media (max-width:1200px) { .score-matrix-metrics { grid-template-columns:repeat(3,1fr); }.score-matrix-filter,.score-matrix-filter.committee { grid-template-columns:repeat(2,1fr); } }
@media (max-width:768px) { .score-matrix-main { padding-right:12px; }.score-view-switch { display:grid; grid-template-columns:1fr 1fr; }.score-view-switch a { min-width:0; padding:0 8px; }.score-matrix-filter,.score-matrix-filter.committee { grid-template-columns:1fr; }.score-matrix-metrics { grid-template-columns:repeat(2,1fr); }.score-matrix-table .sticky-name { width:145px; min-width:145px; }.score-matrix-table .sticky-meta { width:135px; min-width:135px; left:145px; } }

/* 全局待办中心 */
.global-task-entry { min-height:42px; margin:10px 14px 5px; padding:0 13px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#b5d8e4; font-size:13px; font-weight:700; text-decoration:none; border-left:2px solid rgba(243,198,91,.65); background:linear-gradient(90deg,rgba(243,198,91,.11),rgba(4,24,48,.42)); transition:.18s ease; }
.global-task-entry::before { content:"TASK"; color:#f3c65b; font-size:9px; letter-spacing:1px; }.global-task-entry span { margin-right:auto; }.global-task-entry b { min-width:23px; height:23px; padding:0 6px; display:grid; place-items:center; color:#fff3cd; font-size:11px; border:1px solid rgba(243,198,91,.52); background:rgba(135,84,19,.45); box-shadow:0 0 10px rgba(243,198,91,.2); }
.global-task-entry:hover,.global-task-entry.active { color:#fff; border-left-color:var(--hud-cyan); background:linear-gradient(90deg,rgba(66,220,255,.14),rgba(4,24,48,.5)); box-shadow:inset 0 0 15px rgba(66,220,255,.045); }.global-task-entry.active::before { color:var(--hud-cyan); }
.task-main { max-width:1500px; }.task-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }.task-metrics>div { min-height:92px; padding:17px; background-color:rgba(5,22,48,.82); background-image:linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)); background-size:17px 1px,1px 17px,17px 1px,1px 17px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; }.task-metrics span { color:#9cb8c8; font-size:13px; }.task-metrics strong { display:block; margin-top:10px; color:#e4fbff; font-size:31px; text-shadow:0 0 13px rgba(66,220,255,.3); }
.task-list { padding:0; overflow:hidden; }.task-item { min-height:88px; padding:15px 18px; display:grid; grid-template-columns:105px minmax(0,1fr) 120px 88px; align-items:center; gap:16px; color:inherit; text-decoration:none; border-bottom:1px solid rgba(66,220,255,.09); border-left:3px solid var(--hud-cyan); background:rgba(3,18,38,.66); transition:.18s ease; }.task-item:hover { background:linear-gradient(90deg,rgba(66,220,255,.1),rgba(5,25,50,.68)); box-shadow:inset 0 0 20px rgba(66,220,255,.04); }.task-item.urgent { border-left-color:var(--hud-danger); }.task-item.notice { border-left-color:var(--hud-amber); }.task-category { color:#9eeeff; font-size:12px; font-weight:700; }.task-item.urgent .task-category { color:#ff9aaa; }.task-item.notice .task-category { color:#ffd576; }.task-item>div { display:grid; gap:7px; }.task-item>div strong { color:#effcff; font-size:16px; }.task-item>div p { color:#96afbd; font-size:13px; }.task-item time { color:#89a6b6; font-size:12px; }.task-item>b { color:#a9f3ff; font-size:12px; text-align:right; }
@media (max-width:768px) { .global-task-entry { margin:7px 8px 4px; }.task-metrics { grid-template-columns:repeat(2,1fr); }.task-item { grid-template-columns:80px minmax(0,1fr); }.task-item time,.task-item>b { grid-column:2; text-align:left; } }
.report-delete-panel { min-height:74px; margin-bottom:16px; padding:15px 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-left:2px solid var(--hud-danger); background:linear-gradient(90deg,rgba(108,27,46,.25),rgba(4,21,43,.7)); }.report-delete-panel>div { display:grid; gap:6px; }.report-delete-panel strong { color:#ffc1ca; font-size:15px; }.report-delete-panel span { color:#aebfca; font-size:12px; }.report-delete-panel form { margin:0; }
@media (max-width:768px) { .report-delete-panel { align-items:stretch; flex-direction:column; }.report-delete-panel button { width:100%; } }

/* 工作汇报 */
.work-report-main { max-width:1580px; }.work-report-create { display:flex; gap:10px; }.work-report-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-bottom:18px; }.work-report-metrics>div { min-height:100px; padding:18px; background-color:rgba(5,22,48,.84); background-image:linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)),linear-gradient(var(--hud-cyan),var(--hud-cyan)); background-size:18px 1px,1px 18px,18px 1px,1px 18px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; }.work-report-metrics span { color:#9eb9c8; font-size:13px; }.work-report-metrics strong { display:block; margin:10px 0 5px; color:#e7fcff; font-size:31px; text-shadow:0 0 14px rgba(66,220,255,.32); }.work-report-metrics small { color:#718ea1; font-size:10px; }
.work-report-list { padding:0; overflow:hidden; }.work-report-item { min-height:86px; padding:15px 18px; display:grid; grid-template-columns:150px minmax(0,1fr) 150px; align-items:center; gap:16px; color:inherit; text-decoration:none; border-bottom:1px solid rgba(66,220,255,.09); border-left:3px solid rgba(66,220,255,.6); background:rgba(3,18,38,.68); transition:.18s ease; }.work-report-item:hover { background:linear-gradient(90deg,rgba(66,220,255,.09),rgba(4,23,47,.7)); }.work-report-item.finalized { border-left-color:var(--hud-green); }.work-report-item.presidium_review { border-left-color:var(--hud-amber); }.work-report-item time { color:#9bb8c8; font-size:13px; }.work-report-item>div { display:grid; gap:7px; }.work-report-item>div strong { color:#effcff; font-size:16px; }.work-report-item>div span { color:#8faaba; font-size:12px; }.work-report-item em { color:#8fe9f8; font-size:12px; font-style:normal; text-align:right; }
.work-template-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; padding:1px; margin-bottom:16px; background:rgba(66,220,255,.12); }.work-template-meta>div { min-height:75px; padding:15px; display:grid; gap:8px; background:#071a34; }.work-template-meta span { color:#8facbd; font-size:12px; }.work-template-meta strong { color:#e9fbff; font-size:15px; }
.work-report-form { display:grid; gap:16px; }.work-template-group { padding:0 18px 18px; overflow:hidden; }.work-template-group>header { min-height:64px; margin:0 -18px 17px; padding:13px 18px; display:flex; align-items:center; gap:13px; border-bottom:1px solid rgba(66,220,255,.18); background:linear-gradient(90deg,rgba(66,220,255,.11),transparent); }.work-template-group>header>span { width:35px; height:35px; display:grid; place-items:center; color:#8ff2ff; font-size:11px; border:1px solid rgba(66,220,255,.42); }.work-template-group>header div { display:grid; gap:4px; }.work-template-group>header strong { color:#f0fcff; font-size:18px; }.work-template-group>header p { color:#819dad; font-size:11px; }.work-template-group label { display:grid; gap:8px; margin-top:13px; }.work-template-group label>span { color:#b1d1de; font-size:13px; font-weight:700; }.work-template-group textarea { width:100%; min-height:130px; padding:14px 15px; resize:vertical; color:#e9faff; font-size:15px; line-height:1.75; outline:none; border:1px solid rgba(66,220,255,.28); background:rgba(2,16,34,.82); }.work-template-group textarea:focus { border-color:var(--hud-cyan); box-shadow:0 0 14px rgba(66,220,255,.13); }.work-form-actions { position:sticky; bottom:12px; z-index:20; padding:12px; display:flex; justify-content:flex-end; gap:10px; border:1px solid rgba(66,220,255,.16); background:rgba(4,20,41,.94); backdrop-filter:blur(12px); }
.work-report-command { display:grid; grid-template-columns:repeat(4,1fr) auto; gap:10px; margin-bottom:16px; }.work-report-command>div { min-height:70px; padding:13px; display:grid; gap:7px; background:rgba(5,23,47,.8); border-top:1px solid rgba(66,220,255,.22); }.work-report-command span { color:#87a6b8; font-size:11px; }.work-report-command strong { color:#e8fbff; font-size:15px; }.work-report-command>a { align-self:stretch; }
.work-final-report { padding:18px; margin-bottom:16px; }.work-final-report article { padding:16px 0; border-bottom:1px solid rgba(66,220,255,.09); }.work-final-report article:last-child { border-bottom:0; }.work-final-report h3 { margin-bottom:9px; color:#8fe9f8; font-size:14px; }.work-final-report p,.work-contributions article p { color:#d2e3ea; font-size:14px; line-height:1.8; white-space:pre-wrap; }
.work-contributions { padding:18px; margin-bottom:16px; }.work-contributions details { margin-top:12px; border:1px solid rgba(66,220,255,.16); background:rgba(2,16,34,.58); }.work-contributions summary { min-height:50px; padding:12px 14px; display:flex; align-items:center; justify-content:space-between; cursor:pointer; }.work-contributions summary strong { color:#e9fbff; }.work-contributions summary span { color:#8fc6d2; font-size:12px; }.work-contributions details>article { padding:13px 15px; border-top:1px solid rgba(66,220,255,.07); }.work-contributions h4 { margin-bottom:7px; color:#8eb3c4; font-size:12px; }
.work-single-action { min-height:78px; padding:15px 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:16px; border-left:2px solid var(--hud-green); }.work-single-action>div { display:grid; gap:6px; }.work-single-action strong { color:#eafff1; }.work-single-action span { color:#94acba; font-size:12px; }
.work-review-actions { padding:17px; display:grid; grid-template-columns:1fr 1fr; gap:15px; margin-bottom:16px; }.work-review-actions form { display:grid; gap:10px; }.work-review-actions strong { color:#ecfbff; font-size:15px; }.work-review-actions span { color:#91abba; font-size:12px; }.work-review-actions textarea,.work-review-actions select { width:100%; min-height:45px; padding:11px; color:#e8f9ff; border:1px solid rgba(66,220,255,.25); background:#061a35; }.work-review-actions textarea { min-height:90px; resize:vertical; }
.work-flow-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:16px; }.work-flow-grid>.feedback-panel { padding:17px; }.work-flow-line { min-height:47px; padding:10px 0; display:flex; align-items:center; justify-content:space-between; gap:10px; border-bottom:1px solid rgba(66,220,255,.08); }.work-flow-line strong { color:#dceff5; font-size:12px; }.work-flow-line span { color:#8fe2ef; font-size:11px; }
@media (max-width:1100px) { .work-report-command { grid-template-columns:repeat(2,1fr); }.work-flow-grid { grid-template-columns:1fr; }.work-review-actions { grid-template-columns:1fr; } }
@media (max-width:768px) { .work-report-metrics,.work-template-meta { grid-template-columns:repeat(2,1fr); }.work-report-item { grid-template-columns:1fr; }.work-report-item em { text-align:left; }.work-report-command { grid-template-columns:1fr 1fr; }.work-form-actions { display:grid; grid-template-columns:1fr 1fr; }.work-single-action { align-items:stretch; flex-direction:column; } }
.work-contribution-reject { padding:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; border-top:1px solid rgba(255,113,133,.18); }.work-contribution-reject textarea { min-height:70px; padding:11px; resize:vertical; color:#f4fbff; border:1px solid rgba(255,113,133,.3); background:#06172f; }
.work-department-grid { display:grid; gap:18px; }
.work-department-panel { overflow:hidden; border:1px solid rgba(66,220,255,.2); background:rgba(4,18,36,.8); box-shadow:0 10px 28px rgba(0,0,0,.2); }
.work-department-panel>header { min-height:90px; padding:18px 20px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-top:4px solid var(--hud-cyan); border-bottom:1px solid rgba(66,220,255,.14); background:linear-gradient(90deg,rgba(66,220,255,.09),transparent 60%); }
.work-department-panel>header>div:first-child span { color:#58d9ef; font-size:12px; font-weight:800; }
.work-department-panel>header h2 { margin-top:7px; color:#f2fcff; font-size:24px; font-weight:900; letter-spacing:0; }
.work-department-summary { display:flex; align-items:baseline; gap:7px; color:#91adbd; font-size:13px; }
.work-department-summary strong { color:#f2fcff; font-size:28px; }
.work-department-reports .work-report-item:last-child { border-bottom:0; }
.work-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:18px; margin-bottom:16px; padding-bottom:14px; border-bottom:1px solid rgba(66,220,255,.2); }
.work-section-heading span { color:#58d9ef; font-size:11px; font-weight:800; }
.work-section-heading h2 { margin-top:5px; color:#f3fcff; font-size:22px; font-weight:900; letter-spacing:0; }
.work-section-heading p { color:#9eb8c7; font-size:13px; }
.work-contribution-entry { margin-top:14px; overflow:hidden; border:1px solid rgba(112,163,188,.25); background:rgba(2,15,29,.7); }
.work-contribution-entry>header { min-height:64px; padding:14px 16px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-left:4px solid #6f8fa4; border-bottom:1px solid rgba(112,163,188,.18); background:rgba(9,31,52,.78); }
.work-contribution-entry>header>div { display:grid; gap:5px; }.work-contribution-entry>header strong { color:#f4fcff; font-size:17px; }.work-contribution-entry>header span { color:#9cb5c4; font-size:12px; }
.work-contribution-entry>header em { min-width:72px; padding:7px 10px; color:#b5cedb; font-size:12px; font-style:normal; font-weight:800; text-align:center; border:1px solid rgba(112,163,188,.28); }
.work-contribution-entry.status-submitted>header { border-left-color:var(--hud-amber); }.work-contribution-entry.status-submitted>header em { color:#ffd779; border-color:rgba(243,198,91,.42); }
.work-contribution-entry.status-confirmed>header { border-left-color:var(--hud-green); }.work-contribution-entry.status-confirmed>header em { color:#91efb6; border-color:rgba(102,229,154,.42); }
.work-contribution-entry.status-rejected>header { border-left-color:var(--hud-danger); }.work-contribution-entry.status-rejected>header em { color:#ff9caa; border-color:rgba(255,113,133,.45); }
.work-contribution-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
.work-contribution-fields>div { min-height:120px; padding:15px 16px; border-right:1px solid rgba(112,163,188,.11); border-bottom:1px solid rgba(112,163,188,.11); }
.work-contribution-fields h3 { margin-bottom:8px; color:#83dbea; font-size:13px; font-weight:800; }
.work-contribution-fields p { color:#d5e7ee; font-size:14px; font-weight:600; line-height:1.75; white-space:pre-wrap; }
.work-contribution-entry>footer { padding:14px 16px; display:grid; gap:12px; border-top:1px solid rgba(112,163,188,.13); background:rgba(7,24,40,.78); }
.work-review-meta { display:grid; gap:5px; }.work-review-meta strong { color:#eaf8fc; font-size:14px; }.work-review-meta span { color:#92adbb; font-size:12px; }
.work-contribution-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; flex-wrap:wrap; }.work-contribution-actions form { display:flex; }
.work-contribution-entry .work-contribution-reject { padding:12px 0 0; }
@media (max-width:768px) { .work-department-panel>header,.work-section-heading { align-items:flex-start; flex-direction:column; }.work-contribution-fields { grid-template-columns:1fr; }.work-contribution-entry>header { align-items:flex-start; }.work-contribution-actions { justify-content:stretch; }.work-contribution-actions>a,.work-contribution-actions form,.work-contribution-actions button { width:100%; }.work-contribution-entry .work-contribution-reject { grid-template-columns:1fr; } }
.task-metrics { grid-template-columns:repeat(5,1fr); }
@media (max-width:700px) { .report-upload-form { grid-template-columns:1fr; }.report-upload-form .full { grid-column:auto; } }
.report-upstream-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-top:14px; padding:12px; border-left:2px solid var(--hud-danger); background:rgba(255,113,133,.04); }.report-upstream-form textarea { min-height:56px; padding:10px; color:#dff8ff; resize:vertical; outline:none; border:1px solid rgba(255,113,133,.28); background:rgba(2,14,31,.82); }
.report-coverage-panel { margin-bottom:18px; }.report-coverage-summary { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }.report-coverage-summary strong { color:var(--hud-cyan); font-size:28px; }.report-coverage-summary span { color:#9ab7c9; font-size:12px; }.report-coverage-summary em { margin-left:auto; padding:7px 10px; font-size:11px; font-style:normal; }.report-coverage-summary em.complete { color:var(--hud-green); border:1px solid rgba(102,229,154,.36); }.report-coverage-summary em.pending { color:var(--hud-danger); border:1px solid rgba(255,113,133,.4); }.report-missing-classes { display:flex; align-items:center; gap:7px; flex-wrap:wrap; margin-top:14px; }.report-missing-classes span { color:#8aa5b8; font-size:11px; }.report-missing-classes b { padding:5px 8px; color:#ffc0c8; font-size:11px; border:1px solid rgba(255,113,133,.28); background:rgba(255,113,133,.05); }
@media (max-width:600px) { .report-upstream-form { grid-template-columns:1fr; } }
.template-create-form { display:grid; grid-template-columns:1fr 1fr 1.5fr 120px auto; gap:9px; }.template-create-form input,.template-create-form select,.template-item-form input,.template-item-form select,.template-item-row input,.template-item-row select { min-height:36px; padding:7px 9px; color:#dff8ff; outline:none; border:1px solid rgba(66,220,255,.22); background:rgba(2,14,31,.82); }
.template-admin-list { margin-top:20px; }.template-admin-item { display:grid; grid-template-columns:minmax(220px,1fr) 80px 80px 100px 90px; gap:14px; align-items:center; padding:14px; color:inherit; text-decoration:none; border-left:2px solid rgba(66,220,255,.28); background:rgba(3,17,36,.58); }.template-admin-item:hover { border-left-color:var(--hud-cyan); background:rgba(66,220,255,.055); }.template-admin-item>div { display:grid; gap:4px; }.template-admin-item span { color:#6f879d; font-size:9px; }.template-admin-item strong { color:#caeff7; font-size:11px; }.template-admin-item em,.template-state-panel strong { color:#879bad; font-size:10px; font-style:normal; }.template-admin-item em.active,.template-state-panel strong.active { color:var(--hud-green); }.template-admin-item em.draft,.template-state-panel strong.draft { color:var(--hud-amber); }
.template-state-panel { min-height:58px; margin-bottom:18px; padding:10px 15px; display:flex; align-items:center; gap:16px; border-left:2px solid var(--hud-cyan); background:rgba(3,17,36,.58); }.template-state-panel>span { color:#71899f; font-size:10px; }.template-state-panel>div { margin-left:auto; }
.template-item-form { display:grid; grid-template-columns:1fr 1.4fr 100px 100px 80px 1.7fr auto; gap:8px; }.template-item-form .wide,.template-item-row .wide { min-width:0; }
.template-item-list { display:grid; gap:8px; }.template-item-row { display:grid; grid-template-columns:1fr 1.3fr 90px 90px 70px 1.6fr 62px 58px; gap:7px; align-items:center; padding:9px; background:rgba(3,17,36,.52); }.template-item-row input:disabled,.template-item-row select:disabled { opacity:.75; border-color:rgba(66,220,255,.08); }.template-active { display:flex; align-items:center; gap:5px; color:#86a0b6; font-size:9px; }.template-active input { min-height:auto; }
@media (max-width:1100px) { .template-create-form { grid-template-columns:1fr 1fr; }.template-item-form,.template-item-row { grid-template-columns:1fr 1fr; }.template-item-form .wide,.template-item-row .wide { grid-column:1/-1; }.template-admin-item { grid-template-columns:1fr repeat(3,70px) 80px; } }
@media (max-width:700px) { .template-create-form,.template-item-form,.template-item-row { grid-template-columns:1fr; }.template-item-form .wide,.template-item-row .wide { grid-column:auto; }.template-admin-item { grid-template-columns:1fr 1fr; }.template-admin-item>div:first-child { grid-column:1/-1; } }
.template-review-action { margin-bottom:18px; }.template-review-action>p { margin-bottom:14px; color:#7890a6; font-size:10px; line-height:1.7; }
.template-diff-panel,.template-flow-panel,.template-action-log { margin-bottom:18px; }.template-diff-base { margin-bottom:10px; color:#71899f; font-size:10px; }.template-diff-list { display:grid; gap:8px; }.template-diff-item { display:grid; grid-template-columns:180px minmax(0,1fr); gap:14px; padding:10px 12px; border-left:2px solid var(--hud-purple); background:rgba(3,17,36,.56); }.template-diff-item.added { border-left-color:var(--hud-green); }.template-diff-item.removed { border-left-color:var(--hud-danger); }.template-diff-item strong { color:#c8edf5; font-size:10px; }.template-diff-item span { color:#8299ad; font-size:10px; line-height:1.6; }
.template-admin-item em.in_review,.template-state-panel strong.in_review { color:var(--hud-purple); }.template-admin-item em.rejected,.template-state-panel strong.rejected { color:var(--hud-danger); }
@media (max-width:600px) { .template-diff-item { grid-template-columns:1fr; gap:5px; } }

/* 学院违纪总览 */
.discipline-page { --discipline-cyan:#42dcff; --discipline-green:#66e59a; --discipline-amber:#f3c65b; --discipline-purple:#c393ff; --discipline-red:#ff7185; }
.discipline-page,.discipline-page button,.discipline-page input,.discipline-page select { font-family:"JetBrains Mono","Cascadia Mono","Microsoft YaHei",monospace; letter-spacing:0; }
.discipline-main { max-width:1680px; padding-right:22px; }
.discipline-heading { align-items:flex-end; }.discipline-heading h1 { font-size:27px; color:#f0fcff; text-shadow:0 0 16px rgba(66,220,255,.28); }.discipline-heading p { color:#90b5c5; font-size:13px; }.discipline-heading-actions { display:flex; gap:10px; }
.discipline-status-dot { width:7px; height:7px; display:inline-block; margin-right:6px; border-radius:50%; background:var(--discipline-green); box-shadow:0 0 10px rgba(102,229,154,.65); animation:livePulse 1.8s infinite; }
.discipline-command-bar { min-height:62px; margin-bottom:18px; padding:9px 12px; display:flex; align-items:center; gap:14px; border-top:1px solid rgba(66,220,255,.24); border-bottom:1px solid rgba(66,220,255,.1); background:linear-gradient(90deg,rgba(5,27,54,.82),rgba(3,18,38,.65)); box-shadow:inset 0 0 24px rgba(66,220,255,.025); }
.discipline-view-switch { height:40px; display:grid; grid-template-columns:repeat(3,1fr); border:1px solid rgba(66,220,255,.24); }.discipline-view-switch button { min-width:126px; padding:0 16px; color:#8eaebb; font-size:13px; font-weight:700; border:0; border-right:1px solid rgba(66,220,255,.12); background:rgba(2,15,32,.7); cursor:pointer; }.discipline-view-switch button:last-child { border-right:0; }.discipline-view-switch button.active { color:#e9fcff; background:linear-gradient(180deg,rgba(66,220,255,.18),rgba(66,220,255,.06)); box-shadow:inset 0 -2px var(--discipline-cyan),0 0 14px rgba(66,220,255,.08); }
.discipline-period-control { display:none; align-items:center; gap:9px; }.discipline-period-control.visible { display:flex; }.discipline-period-control span { color:#89a7b8; font-size:12px; }.discipline-period-control select,.discipline-detail-filter select,.discipline-detail-filter input { min-height:38px; padding:8px 10px; color:#e2f8ff; font-size:13px; outline:none; border:1px solid rgba(66,220,255,.23); border-radius:0; background:#071b35; color-scheme:dark; }.discipline-period-control select option,.discipline-detail-filter select option { color:#e5f8ff; background:#071b35; }
.discipline-period-banner { min-height:76px; margin-bottom:16px; padding:14px 18px; display:flex; align-items:center; justify-content:space-between; gap:18px; border-left:2px solid var(--discipline-cyan); background:linear-gradient(90deg,rgba(66,220,255,.1),rgba(4,20,42,.72) 58%,rgba(4,20,42,.38)); box-shadow:inset 0 0 24px rgba(66,220,255,.035); }.discipline-period-banner>div { display:grid; gap:4px; }.discipline-period-banner span { color:#76a9ba; font-size:10px; }.discipline-period-banner strong { color:#effcff; font-size:18px; text-shadow:0 0 10px rgba(66,220,255,.24); }.discipline-period-banner small { color:#86a5b5; font-size:12px; }.discipline-period-banner>b { padding:7px 10px; border:1px solid currentColor; font-size:11px; font-weight:700; }.discipline-period-banner>b.current { color:var(--discipline-green); box-shadow:0 0 10px rgba(102,229,154,.12); }.discipline-period-banner>b.history { color:var(--discipline-amber); }
.discipline-live-state { margin-left:auto; display:flex; align-items:center; gap:8px; color:#8aa7b6; font-size:12px; }.discipline-live-state strong { color:#b7f3fb; }.discipline-live-state strong.error { color:#ff9aaa; }
.discipline-view { display:none; min-width:0; max-width:100%; }.discipline-view.active { display:block; }
.discipline-metrics { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-bottom:18px; }.discipline-metric { min-height:110px; padding:18px; position:relative; background-color:rgba(5,23,47,.86); background-image:linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor),linear-gradient(currentColor,currentColor); background-size:19px 1px,1px 19px,19px 1px,1px 19px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; box-shadow:inset 0 0 24px rgba(66,220,255,.025); }.discipline-metric::after { content:""; position:absolute; left:18px; right:18px; bottom:13px; height:1px; opacity:.2; background:currentColor; }.discipline-metric.cyan { color:var(--discipline-cyan); }.discipline-metric.green { color:var(--discipline-green); }.discipline-metric.amber { color:var(--discipline-amber); }.discipline-metric.purple { color:var(--discipline-purple); }.discipline-metric span { display:block; color:#a5c2cf; font-size:13px; font-weight:700; }.discipline-metric strong { display:block; margin:10px 0 6px; color:currentColor; font-size:31px; line-height:1; text-shadow:0 0 13px currentColor; }.discipline-metric small { color:#7896a7; font-size:11px; }
.discipline-panel { min-width:0; max-width:100%; margin-bottom:18px; padding:18px; border-radius:0; background-color:rgba(4,21,44,.76); background-image:linear-gradient(var(--discipline-cyan),var(--discipline-cyan)),linear-gradient(var(--discipline-cyan),var(--discipline-cyan)),linear-gradient(var(--discipline-cyan),var(--discipline-cyan)),linear-gradient(var(--discipline-cyan),var(--discipline-cyan)); background-size:21px 1px,1px 21px,21px 1px,1px 21px; background-position:left top,left top,right bottom,right bottom; background-repeat:no-repeat; border-color:rgba(66,220,255,.08); }.discipline-panel-head { min-height:44px; margin-bottom:15px; display:flex; align-items:flex-start; justify-content:space-between; gap:14px; border-bottom:1px solid rgba(66,220,255,.12); }.discipline-panel-head>div { display:grid; gap:4px; padding-bottom:11px; }.discipline-panel-head span { color:#6fa7b7; font-size:10px; font-weight:700; }.discipline-panel-head h2 { color:#effcff; font-size:17px; font-weight:700; }.discipline-panel-head>strong { color:#8bdfee; font-size:12px; }
.discipline-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.discipline-grid-wide { grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr); }.discipline-grid-thirds { grid-template-columns:repeat(3,1fr); }.discipline-span-two { grid-column:span 2; }
.discipline-trend-panel { min-width:0; padding-bottom:12px; }.discipline-legend { display:flex; align-items:center; gap:7px; color:#85a5b5; font-size:11px; }.discipline-legend i { width:18px; height:3px; display:inline-block; margin-left:7px; }.discipline-legend i.line { background:var(--discipline-cyan); box-shadow:0 0 7px rgba(66,220,255,.5); }.discipline-legend i.closure { background:#6d8292; }.discipline-canvas-wrap { width:100%; min-width:0; min-height:280px; overflow-x:auto; }.discipline-canvas-wrap canvas { display:block; }
.discipline-stage-legend { display:flex; align-items:center; gap:14px; color:#91adba; font-size:11px; }.discipline-stage-legend span { display:inline-flex; align-items:center; gap:6px; }.discipline-stage-legend span::before { content:""; width:13px; height:4px; background:currentColor; box-shadow:0 0 7px currentColor; }.discipline-stage-legend .major { color:#42dcff; }.discipline-stage-legend .advanced { color:#66e59a; }.discipline-stage-legend .practice { color:#f3c65b; }.discipline-stage-trend-grid { display:grid; grid-template-columns:1fr; gap:18px; }.discipline-stage-trend-grid>div { min-width:0; padding:0 0 16px; border-bottom:1px solid rgba(66,220,255,.11); }.discipline-stage-trend-grid>div:last-child { padding-bottom:0; border-bottom:0; }.discipline-stage-trend-grid>div>strong { display:block; margin-bottom:8px; color:#dff8ff; font-size:12px; }.discipline-canvas-wrap.compact { min-height:220px; overflow-x:hidden; }.discipline-category-chart { min-height:300px; }.discipline-advisor-legend,.discipline-combo-legend { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px 12px; }.discipline-advisor-legend span,.discipline-combo-legend span { display:inline-flex; align-items:center; gap:6px; color:#8faebb; font-size:10px; }.discipline-advisor-legend span::before,.discipline-combo-legend span::before { content:""; width:13px; height:4px; background:var(--legend-color); box-shadow:0 0 7px var(--legend-color); }.discipline-combo-legend .daily { --legend-color:#66e59a; }.discipline-combo-legend .cumulative { --legend-color:#42dcff; }
.discipline-stage-live { display:flex !important; grid-auto-flow:unset !important; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:8px; padding-bottom:10px !important; }.discipline-stage-live>span { min-width:112px; min-height:38px; padding:6px 10px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:#9db8c5; font-size:12px; font-weight:700; border-left:2px solid currentColor; background:rgba(3,17,36,.72); }.discipline-stage-live>span strong { color:currentColor; font-size:18px; line-height:1; text-shadow:0 0 10px currentColor; }.discipline-stage-live .major { color:#42dcff; }.discipline-stage-live .advanced { color:#66e59a; }.discipline-stage-live .practice { color:#f3c65b; }
.discipline-period-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:8px; }.discipline-period-grid button { min-height:91px; padding:13px; display:grid; align-content:center; gap:7px; text-align:left; color:#6d8797; border:1px solid rgba(91,123,143,.14); border-radius:0; background:rgba(2,15,31,.62); cursor:pointer; }.discipline-period-grid button.has-data { color:var(--discipline-cyan); border-color:rgba(66,220,255,.24); background:linear-gradient(145deg,rgba(66,220,255,.08),rgba(3,17,35,.72)); }.discipline-period-grid button:hover { border-color:var(--discipline-cyan); box-shadow:inset 0 0 18px rgba(66,220,255,.05),0 0 11px rgba(66,220,255,.08); }.discipline-period-grid span { color:#9ab9c7; font-size:11px; }.discipline-period-grid strong { color:currentColor; font-size:20px; }.discipline-period-grid small { color:#718d9d; font-size:10px; }
.discipline-table-wrap { max-width:100%; overflow:auto; scrollbar-color:rgba(66,220,255,.45) rgba(2,13,29,.8); }.discipline-table { width:100%; min-width:680px; border-collapse:collapse; table-layout:auto; }.discipline-table th { height:40px; padding:8px 11px; color:#95c1ce; font-size:11px; font-weight:700; text-align:left; white-space:nowrap; border-bottom:1px solid rgba(66,220,255,.2); background:rgba(5,28,54,.78); }.discipline-table td { min-height:46px; padding:10px 11px; color:#d0e2e9; font-size:12px; line-height:1.5; border-bottom:1px solid rgba(66,220,255,.07); }.discipline-table tbody tr:hover td { background:rgba(66,220,255,.035); }.discipline-table td strong { color:#effcff; font-size:13px; }.discipline-table td>span,.discipline-table td small { display:block; margin-top:3px; color:#7694a5; font-size:10px; }.discipline-table time { color:#a7d5df; white-space:nowrap; }
.discipline-monthly-rules { display:grid; gap:7px; }.discipline-monthly-rules>div { min-height:52px; padding:9px 10px; display:grid; grid-template-columns:65px minmax(0,1fr) 42px; align-items:center; gap:10px; border-left:2px solid rgba(195,147,255,.55); background:rgba(3,17,36,.62); }.discipline-monthly-rules span { color:#9d7fc4; font-size:10px; }.discipline-monthly-rules strong { color:#dceef3; font-size:11px; line-height:1.5; }.discipline-monthly-rules b { color:#d2b4ff; font-size:11px; text-align:right; }
.discipline-bar-list { display:grid; gap:9px; }.discipline-bar-row { min-height:52px; display:grid; grid-template-columns:28px minmax(0,1fr); gap:10px; align-items:center; }.discipline-bar-row>b { color:#54798b; font-size:11px; }.discipline-bar-row>div { min-width:0; position:relative; padding:7px 8px 9px; overflow:hidden; border-left:1px solid rgba(66,220,255,.24); background:rgba(3,17,35,.64); }.discipline-bar-row strong { position:relative; z-index:2; display:block; color:#dceef3; font-size:12px; line-height:1.45; }.discipline-bar-row span { position:relative; z-index:2; display:block; margin-top:4px; color:#7797a7; font-size:10px; }.discipline-bar-row i { position:absolute; left:0; bottom:0; height:2px; background:linear-gradient(90deg,var(--discipline-cyan),var(--discipline-purple)); box-shadow:0 0 7px rgba(66,220,255,.35); }
.discipline-rule-highlight { min-height:76px; }.discipline-rule-highlight>div { min-height:68px; padding:9px 12px 10px; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:18px; }.discipline-rule-highlight>div>strong { font-size:14px; color:#e9faff; }.discipline-rule-stats { margin:0 !important; display:flex !important; align-items:center; justify-content:flex-end; gap:14px; white-space:nowrap; }.discipline-rule-stats>b { color:#42dcff; font-size:24px; line-height:1; text-shadow:0 0 11px rgba(66,220,255,.7); }.discipline-rule-stats>b small { margin-left:3px; color:#9eeeff; font-size:12px; }.discipline-rule-stats>em { color:#f3c65b; font-size:13px; font-style:normal; font-weight:700; text-shadow:0 0 8px rgba(243,198,91,.24); }.discipline-rule-stats>small { color:#9db8c5; font-size:12px; }
.discipline-maintenance-head { align-items:center; }.discipline-maintenance-actions { display:flex !important; grid-auto-flow:unset !important; flex-wrap:wrap; align-items:center; justify-content:flex-end; gap:9px !important; padding-bottom:10px !important; }.discipline-maintenance-actions a,.discipline-maintenance-actions button { min-height:38px; padding:0 14px; display:inline-flex; align-items:center; justify-content:center; text-decoration:none; white-space:nowrap; }.discipline-maintenance-actions button:disabled { opacity:.45; cursor:not-allowed; }.discipline-maintenance-table { min-width:1040px; }.discipline-maintenance-table td { vertical-align:middle; }.discipline-maintenance-table td:first-child small { display:block; }.maintenance-stage { display:inline-flex !important; width:max-content; padding:4px 8px; color:#42dcff !important; font-size:12px !important; font-weight:700; border:1px solid currentColor; background:rgba(66,220,255,.06); }.maintenance-stage.advanced { color:#66e59a !important; }.maintenance-stage.practice { color:#f3c65b !important; }.maintenance-advisor-edit { min-width:190px; display:grid; grid-template-columns:minmax(110px,1fr) 56px; gap:6px; }.maintenance-advisor-edit input { width:100%; min-height:34px; padding:6px 8px; color:#e5faff; font-size:13px; outline:none; border:1px solid rgba(66,220,255,.22); background:#071b35; }.maintenance-advisor-edit button { color:#9eefff; font-size:12px; border:1px solid rgba(66,220,255,.3); background:rgba(5,34,63,.9); cursor:pointer; }.maintenance-population { min-width:122px; display:flex; align-items:center; justify-content:space-between; gap:10px; }.maintenance-population>strong { color:#42dcff !important; font-size:23px !important; text-shadow:0 0 10px rgba(66,220,255,.55); }.maintenance-population>span { display:flex !important; gap:5px; margin:0 !important; }.maintenance-population button { width:34px; height:32px; color:#c9f8ff; font-size:20px; line-height:1; border:1px solid rgba(66,220,255,.3); background:#061a34; cursor:pointer; }.maintenance-population button:hover,.maintenance-advisor-edit button:hover { border-color:#42dcff; box-shadow:0 0 10px rgba(66,220,255,.2); }.maintenance-editable,.maintenance-locked { display:inline-flex !important; width:max-content; margin:0 !important; padding:4px 8px; color:#66e59a !important; font-size:11px !important; border:1px solid currentColor; }.maintenance-locked { color:#f3c65b !important; }.discipline-maintenance-history { min-width:900px; }.discipline-maintenance-history td:nth-child(4) { color:#b8eaf2; }.discipline-maintenance-history td:nth-child(5) { min-width:220px; }.discipline-class-dialog { width:min(760px,calc(100vw - 32px)); }
.discipline-copy-title { display:none; }.discipline-capture-mode { display:block !important; padding:24px; background:#020d1d; }.discipline-capture-mode .discipline-copy-title { min-height:100px; margin-bottom:18px; padding:18px 20px; display:block; border-left:3px solid #42dcff; border-bottom:1px solid rgba(66,220,255,.22); background:linear-gradient(90deg,rgba(66,220,255,.12),rgba(3,17,36,.86)); }.discipline-copy-title span { color:#66e59a; font-size:12px; font-weight:700; }.discipline-copy-title h2 { margin:7px 0 6px; color:#42dcff; font-size:27px; text-shadow:0 0 14px rgba(66,220,255,.45); }.discipline-copy-title p { color:#b6dce8; font-size:14px; }.discipline-capture-mode .discipline-repeat-panel { grid-column:1/-1; }.discipline-capture-mode * { animation:none !important; }.discipline-capture-dialog { width:min(1240px,calc(100vw - 32px)); }.discipline-capture-state { min-height:42px; margin-bottom:12px; padding:11px 13px; color:#b8eaf2; font-size:13px; border-left:2px solid #42dcff; background:rgba(66,220,255,.06); }.discipline-capture-preview { max-height:62vh; overflow:auto; border:1px solid rgba(66,220,255,.18); background:#020d1d; }.discipline-capture-preview img { width:100%; height:auto; display:block; }.discipline-capture-actions { padding-top:14px; display:flex; justify-content:flex-end; gap:10px; }.discipline-capture-actions button { min-width:120px; min-height:40px; }
.discipline-import-history-table { min-width:1120px; }.discipline-import-history-table td:nth-child(2) { min-width:220px; }.discipline-import-history-table td:nth-child(8) { min-width:120px; }.import-status { display:inline-flex !important; width:max-content; margin:0 !important; padding:4px 8px; color:#66e59a !important; font-size:11px !important; font-weight:700; border:1px solid currentColor; }.import-status.failed { color:#ff7185 !important; }.import-status.processing { color:#f3c65b !important; }.import-status.rolled_back { color:#9fa8ff !important; }.discipline-rollback-button { min-height:34px; padding:0 11px; color:#ff9aaa; font-size:12px; border:1px solid rgba(255,113,133,.42); background:rgba(52,14,29,.58); cursor:pointer; }.discipline-rollback-button:hover { border-color:#ff7185; box-shadow:0 0 10px rgba(255,113,133,.2); }.discipline-rollback-button:disabled { opacity:.5; cursor:wait; }.discipline-no-action { color:#607f90 !important; }
.import-error-message { max-width:340px; margin-top:7px !important; color:#ff9aaa !important; line-height:1.55; white-space:normal; }
.discipline-today-panel { --discipline-cyan:#66e59a; }.discipline-today-table-wrap { max-height:520px; }.discipline-today-table { min-width:1320px; }.discipline-today-table td:nth-child(6) { min-width:320px; }.discipline-today-table td:nth-child(8) { min-width:130px; }.status-chip.saved { color:#f3c65b; background:rgba(243,198,91,.07); }.today-counted,.today-uncounted { display:inline-flex !important; width:max-content; margin:0 !important; padding:4px 8px; color:#66e59a !important; font-size:11px !important; font-weight:700; border:1px solid currentColor; }.today-uncounted { color:#f3c65b !important; }.discipline-advisor-population-table { width:100%; min-width:620px; table-layout:fixed; }.discipline-advisor-population-table th:first-child,.discipline-advisor-population-table td:first-child { width:72%; }.discipline-advisor-population-table td { height:62px; }.discipline-advisor-population-table td:first-child>strong { color:#dff8ff; font-size:14px; }.advisor-population-value { color:#42dcff !important; font-size:23px !important; text-shadow:0 0 10px rgba(66,220,255,.5); }.self-managed-population-row td { background:rgba(243,198,91,.045); border-bottom-color:rgba(243,198,91,.18); }.self-managed-population-row td:first-child>strong,.self-managed-population-row .advisor-population-value { color:#f3c65b !important; text-shadow:0 0 10px rgba(243,198,91,.34); }
.discipline-category-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:9px; }.discipline-category { min-height:83px; padding:13px; position:relative; display:grid; grid-template-columns:1fr auto; align-items:start; overflow:hidden; background:rgba(3,17,35,.68); }.discipline-category span { color:#a9c3cf; font-size:12px; }.discipline-category strong { color:var(--category-color,var(--discipline-cyan)); font-size:25px; text-shadow:0 0 11px currentColor; }.discipline-category small { align-self:end; color:#718d9c; font-size:10px; }.discipline-category i { position:absolute; left:0; bottom:0; height:3px; background:var(--category-color,var(--discipline-cyan)); opacity:.8; }.discipline-category.tone-1 { --category-color:var(--discipline-amber); }.discipline-category.tone-2 { --category-color:var(--discipline-green); }.discipline-category.tone-3 { --category-color:var(--discipline-purple); }.discipline-category.tone-4 { --category-color:var(--discipline-red); }
.discipline-stage-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }.discipline-stage-cards>div { min-height:112px; padding:16px; position:relative; overflow:hidden; background:rgba(3,17,36,.68); border-top:1px solid var(--stage-color,var(--discipline-cyan)); }.discipline-stage-cards .tone-1 { --stage-color:var(--discipline-purple); }.discipline-stage-cards .tone-2 { --stage-color:var(--discipline-green); }.discipline-stage-cards span { color:#9dbac8; font-size:12px; }.discipline-stage-cards strong { display:block; margin:11px 0 7px; color:var(--stage-color,var(--discipline-cyan)); font-size:27px; text-shadow:0 0 12px currentColor; }.discipline-stage-cards small { color:#7894a4; font-size:10px; }.discipline-stage-cards i { position:absolute; left:0; bottom:0; height:3px; background:var(--stage-color,var(--discipline-cyan)); }
.discipline-self-metric { min-height:112px; display:grid; align-content:center; gap:8px; padding:14px; border-left:2px solid var(--discipline-amber); background:linear-gradient(90deg,rgba(243,198,91,.08),rgba(3,17,36,.62)); }.discipline-self-metric strong { color:var(--discipline-amber); font-size:30px; text-shadow:0 0 12px rgba(243,198,91,.34); }.discipline-self-metric span { color:#d5c69e; font-size:12px; }.discipline-self-metric small { color:#806f50; font-size:10px; }
.discipline-self-report-panel { --discipline-cyan:#ffb66f; background-color:rgba(35,20,22,.48); }.discipline-self-report-panel .discipline-panel-head>strong { color:#ffbd82; }.discipline-self-report-layout { display:grid; grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr); gap:18px; margin-bottom:16px; }.discipline-self-report-summary { min-height:126px; padding:14px 16px; display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; align-content:center; border-left:2px solid #ffb66f; background:linear-gradient(90deg,rgba(255,161,105,.08),rgba(16,19,33,.35)); }.discipline-self-report-summary>div { display:grid; gap:5px; }.discipline-self-report-summary span { color:#c89f85; font-size:11px; }.discipline-self-report-summary strong { color:#ffd0a8; font-size:28px; text-shadow:0 0 10px rgba(255,182,111,.22); }.discipline-self-report-summary>small { grid-column:1/-1; color:#987866; font-size:10px; line-height:1.5; }.discipline-self-report-table { min-width:860px; }.discipline-self-report-table td:nth-child(4) { min-width:300px; }.discipline-self-report-table td:nth-child(2) small { display:block; }
.discipline-advisor-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }.discipline-advisor-grid>div { min-height:95px; padding:14px; display:grid; align-content:center; gap:7px; border-top:1px solid rgba(66,220,255,.28); background:rgba(3,17,36,.65); }.discipline-advisor-grid span { color:#a1bfcc; font-size:12px; }.discipline-advisor-grid strong { color:#8ceafa; font-size:24px; }.discipline-advisor-grid small { color:#7692a2; font-size:10px; }
.rate-value { color:#8ceafa; font-size:13px; font-style:normal; font-weight:700; }.self-tag { margin-left:7px; padding:2px 5px; color:#f6d474; font-size:9px; border:1px solid rgba(243,198,91,.34); font-weight:500; }
.discipline-person-list { display:grid; gap:7px; }.discipline-person-list>div { min-height:58px; padding:9px 11px; display:grid; grid-template-columns:28px minmax(0,1fr) 45px; gap:10px; align-items:center; border-left:2px solid rgba(255,113,133,.45); background:rgba(3,17,36,.62); }.discipline-person-list>div>b { color:#6e8797; font-size:10px; }.discipline-person-list>div>span { display:grid; gap:4px; }.discipline-person-list strong { color:#e6f5f9; font-size:12px; }.discipline-person-list small { color:#758f9f; font-size:10px; }.discipline-person-list em { color:#ff9aaa; font-size:12px; font-style:normal; text-align:right; }
.discipline-detail-filter { display:grid; grid-template-columns:repeat(4,minmax(120px,1fr)) minmax(150px,1.2fr) 150px auto; gap:8px; margin-bottom:14px; }.discipline-detail-filter button { min-height:38px; }.discipline-detail-table { min-width:1280px; }.discipline-detail-table td:nth-child(5) { min-width:260px; }.discipline-detail-table td:nth-child(2) small { display:block; }.detail-rule { max-width:340px; color:#dcebf0; line-height:1.55; }.status-chip { display:inline-block !important; width:max-content; padding:3px 7px; border:1px solid currentColor; }.status-chip.approved { color:#78e5a4; background:rgba(102,229,154,.06); }.status-chip.pending { color:#ffd576; background:rgba(243,198,91,.06); }
.discipline-pagination { min-height:48px; display:flex; align-items:flex-end; justify-content:center; gap:12px; }.discipline-pagination button { min-width:80px; height:34px; color:#9edce7; border:1px solid rgba(66,220,255,.24); background:#061a34; cursor:pointer; }.discipline-pagination button:disabled { opacity:.35; cursor:not-allowed; }.discipline-pagination span { color:#7d9aa9; font-size:11px; }
.discipline-empty { min-height:72px; display:grid; place-items:center; color:#718e9d; font-size:12px; }
.discipline-dialog { width:min(1100px,calc(100vw - 32px)); max-height:88vh; padding:18px; color:#dceff5; border:1px solid rgba(66,220,255,.34); border-radius:0; background:#06172f; box-shadow:0 0 40px rgba(0,0,0,.65),inset 0 0 30px rgba(66,220,255,.025); }.discipline-dialog::backdrop { background:rgba(1,8,18,.78); backdrop-filter:blur(4px); }.discipline-dialog-head { min-height:54px; margin-bottom:15px; display:flex; align-items:flex-start; justify-content:space-between; border-bottom:1px solid rgba(66,220,255,.16); }.discipline-dialog-head div { display:grid; gap:3px; }.discipline-dialog-head span { color:#7da8b7; font-size:10px; }.discipline-dialog-head h2 { color:#effcff; font-size:18px; }.discipline-dialog-head button { width:34px; height:34px; color:#a8dce5; font-size:22px; border:1px solid rgba(66,220,255,.22); background:#071b35; cursor:pointer; }.discipline-import-form { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; margin-bottom:12px; }.discipline-import-form label { min-height:52px; padding:8px 10px; display:flex; align-items:center; gap:12px; border-left:2px solid var(--discipline-cyan); background:rgba(3,17,36,.66); }.discipline-import-form label span { color:#9cb9c6; font-size:11px; }.discipline-import-form input { color:#ccebf1; font-size:12px; }.discipline-import-result { min-height:42px; margin-bottom:14px; padding:11px; color:#86a5b3; font-size:12px; border:1px solid rgba(66,220,255,.1); }.discipline-import-result.success { color:#8cf0b4; border-color:rgba(102,229,154,.32); }.discipline-import-result.error { color:#ff9aaa; border-color:rgba(255,113,133,.35); }
@media (max-width:1250px) { .discipline-period-grid { grid-template-columns:repeat(4,1fr); }.discipline-advisor-grid { grid-template-columns:repeat(3,1fr); }.discipline-detail-filter { grid-template-columns:repeat(3,1fr); }.discipline-grid-wide { grid-template-columns:1fr; } }
@media (max-width:900px) { .discipline-main { padding-right:12px; }.discipline-metrics { grid-template-columns:repeat(2,1fr); }.discipline-grid,.discipline-grid-thirds,.discipline-self-report-layout { grid-template-columns:1fr; }.discipline-span-two { grid-column:auto; }.discipline-stage-cards { grid-template-columns:1fr 1fr 1fr; }.discipline-period-grid { grid-template-columns:repeat(3,1fr); }.discipline-detail-filter { grid-template-columns:1fr 1fr; }.discipline-stage-head { flex-wrap:wrap; }.discipline-stage-live { width:100%; justify-content:flex-start; }.discipline-rule-highlight>div { grid-template-columns:1fr; row-gap:8px; }.discipline-rule-stats { justify-content:flex-start; flex-wrap:wrap; } }
@media (max-width:768px) { .discipline-page .main-nav { grid-template-columns:repeat(9,minmax(74px,1fr)); overflow-x:auto; overflow-y:hidden; scrollbar-width:none; }.discipline-page .main-nav::-webkit-scrollbar { display:none; }.discipline-main { width:auto; max-width:none; min-width:0; margin-right:12px; overflow-x:hidden; } }
@media (max-width:620px) { .discipline-heading { align-items:stretch; }.discipline-heading-actions button { width:100%; }.discipline-command-bar { width:100%; max-width:100%; min-width:0; align-items:stretch; flex-direction:column; overflow:hidden; }.discipline-view-switch { width:100%; min-width:0; }.discipline-view-switch button { min-width:0; padding:0 8px; }.discipline-period-control.visible { display:grid; min-width:0; gap:6px; }.discipline-period-control select { width:100%; min-width:0; }.discipline-live-state { margin-left:0; }.discipline-period-banner { align-items:flex-start; flex-direction:column; }.discipline-period-banner strong { font-size:15px; }.discipline-metrics { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8px; }.discipline-metric { min-width:0; min-height:100px; padding:14px; overflow:hidden; }.discipline-metric strong { font-size:25px; }.discipline-metric small { overflow-wrap:anywhere; }.discipline-panel { padding:13px; }.discipline-period-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.discipline-stage-cards,.discipline-advisor-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.discipline-category-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.discipline-self-report-summary { grid-template-columns:1fr 1fr; }.discipline-detail-filter { grid-template-columns:1fr; }.discipline-import-form { grid-template-columns:1fr; }.discipline-dialog { width:calc(100vw - 16px); padding:12px; }.discipline-canvas-wrap canvas { min-width:640px; } }

/* ===== Global clarity visual system: readable techno surface ===== */
:root {
    --clarity-bg: #160a2e;
    --clarity-bg-deep: #0a0518;
    --clarity-surface: #1c0f3a;
    --clarity-surface-raised: #271550;
    --clarity-line: #4a2f7d;
    --clarity-line-bright: #ff3df0;
    --clarity-cyan: #4ce0f2;
    --clarity-blue: #8b5cff;
    --clarity-green: #c8ff4d;
    --clarity-amber: #ffb648;
    --clarity-red: #ff6b7e;
    --clarity-text: #f3edff;
    --clarity-text-soft: #cfc3ea;
    --clarity-text-muted: #8d81ad;
}

html { background: var(--clarity-bg-deep) !important; }
body,
body.dashboard-page,
body.feedback-page {
    color: var(--clarity-text) !important;
    background:
        linear-gradient(rgba(82, 214, 235, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(82, 214, 235, .045) 1px, transparent 1px),
        radial-gradient(circle at 88% 12%, rgba(42, 130, 170, .22), transparent 30%),
        linear-gradient(135deg, var(--clarity-bg-deep), var(--clarity-bg) 52%, #0a1b2c) !important;
    background-size: 36px 36px, 36px 36px, auto, auto !important;
    font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif !important;
    letter-spacing: 0 !important;
}

body::before {
    opacity: .7 !important;
    background-image: linear-gradient(rgba(104,229,245,.04) 1px, transparent 1px), linear-gradient(90deg, rgba(104,229,245,.04) 1px, transparent 1px) !important;
    background-size: 36px 36px !important;
}
body::after {
    content: "";
    position: fixed;
    z-index: 0;
    top: 104px;
    right: -120px;
    width: 510px;
    height: 510px;
    pointer-events: none;
    opacity: .18;
    border: 1px solid rgba(104,229,245,.65);
    border-radius: 50%;
    background:
        repeating-radial-gradient(circle at center, transparent 0 45px, rgba(104,229,245,.45) 46px 47px, transparent 48px 72px),
        linear-gradient(90deg, transparent 49.8%, rgba(104,229,245,.65) 50%, transparent 50.2%),
        linear-gradient(0deg, transparent 49.8%, rgba(104,229,245,.65) 50%, transparent 50.2%);
    box-shadow: 0 0 0 22px rgba(104,229,245,.025), 0 0 0 46px rgba(104,229,245,.018);
}

.bg-orb, .dashboard-tech::after, .scan-line { display: none !important; }
.dashboard-tech { z-index: 0 !important; opacity: .55; }
.dashboard-tech::before { opacity: .6 !important; }

h1, h2, h3, h4, .brand-title, .brand-name, .topbar-title, .panel-title,
.stat-number, .value, .lead-copy, .core-message {
    text-shadow: none !important;
    letter-spacing: 0 !important;
}
.page-title h1, .panel-title, .card-header h3, .topbar-title,
.feedback-header h1, .overview-section-title h2, .discipline-panel-head h2 {
    color: var(--clarity-text) !important;
    background: none !important;
    -webkit-background-clip: initial !important;
    -webkit-text-fill-color: currentColor !important;
}

/* Navigation */
.sidebar,
.feedback-page .sidebar {
    width: 260px !important;
    min-width: 260px !important;
    padding: 24px 17px !important;
    background: rgba(5, 16, 27, .97) !important;
    border-right: 1px solid rgba(104,229,245,.25) !important;
    box-shadow: 14px 0 34px rgba(0,0,0,.22), inset -1px 0 rgba(104,229,245,.08) !important;
}
.system-brand { padding-bottom: 21px !important; border-bottom: 1px solid rgba(104,229,245,.22) !important; }
.brand-title { color: var(--clarity-text) !important; font-size: 17px !important; font-weight: 800 !important; }
.brand-sub { color: var(--clarity-cyan) !important; opacity: .8; font-size: 10px !important; }
.system-live { color: var(--clarity-green) !important; font-size: 13px !important; font-weight: 700 !important; }
.nav-label { color: var(--clarity-text-muted) !important; font-size: 12px !important; font-weight: 800 !important; }
.main-nav { gap: 7px !important; }
.nav-link {
    min-height: 44px !important;
    padding: 0 12px !important;
    color: var(--clarity-text-soft) !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    border: 1px solid transparent !important;
    border-radius: 3px !important;
    background: rgba(12,32,50,.56) !important;
    clip-path: none !important;
}
.nav-link:hover { color: var(--clarity-text) !important; border-color: rgba(104,229,245,.38) !important; background: rgba(27,70,91,.48) !important; }
.nav-link.active { color: #071721 !important; border-color: var(--clarity-line-bright) !important; background: var(--clarity-cyan) !important; box-shadow: 0 0 18px rgba(104,229,245,.18) !important; }
.nav-link.active::after { display: none !important; }
.nav-index { color: inherit !important; opacity: .72; font-size: 11px !important; }
.nav-count { color: #08202b !important; background: var(--clarity-amber) !important; box-shadow: none !important; }
.global-task-entry { min-height: 42px !important; color: var(--clarity-cyan) !important; border-color: rgba(104,229,245,.32) !important; background: rgba(18,51,70,.6) !important; }

/* Top bar and page frame */
.topbar,
.feedback-page .topbar {
    left: 260px !important;
    height: 74px !important;
    padding: 0 34px !important;
    background: rgba(7,21,34,.92) !important;
    border-bottom: 1px solid rgba(104,229,245,.22) !important;
    box-shadow: 0 8px 28px rgba(0,0,0,.16) !important;
    backdrop-filter: blur(12px);
}
.topbar::after { background: linear-gradient(90deg, transparent, var(--clarity-cyan), transparent) !important; opacity: .65; }
.topbar-title { color: var(--clarity-text) !important; font-size: 17px !important; font-weight: 800 !important; }
.topbar-path { color: var(--clarity-text-muted) !important; font-size: 11px !important; }
.topbar-status { color: var(--clarity-text-muted) !important; font-size: 12px !important; }
.topbar-status strong { color: var(--clarity-cyan) !important; font-weight: 800 !important; }
.topbar-account { min-width: 360px !important; height: 56px !important; background: rgba(15,43,64,.74) !important; border-left: 2px solid var(--clarity-line-bright) !important; }
.account-avatar { border-color: var(--clarity-line-bright) !important; background: rgba(24,78,98,.7) !important; }
.account-copy strong { color: var(--clarity-text) !important; font-size: 14px !important; }
.account-copy span { color: var(--clarity-text-soft) !important; font-size: 12px !important; }
.profile-link, .account-logout { font-size: 12px !important; font-weight: 700 !important; }
.feedback-main,
.main-content { margin-left: 260px !important; margin-top: 74px !important; padding: 34px 40px 74px !important; max-width: none !important; }
.feedback-header, .page-title { border-bottom-color: rgba(104,229,245,.3) !important; }
.feedback-header h1, .page-title h1 { color: var(--clarity-text) !important; font-size: 29px !important; font-weight: 900 !important; }
.feedback-header p, .page-title p { color: var(--clarity-text-soft) !important; font-size: 14px !important; font-weight: 600 !important; }

/* Shared surfaces, forms and controls */
.feedback-panel, .card, .stat-card, .table-wrap, .filter-bar, .tech-panel,
.work-department-panel, .report-item, .feedback-item {
    border: 1px solid rgba(104,229,245,.26) !important;
    border-radius: 4px !important;
    background: rgba(12,32,50,.88) !important;
    box-shadow: inset 0 1px rgba(255,255,255,.025), 0 14px 28px rgba(0,0,0,.16) !important;
}
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before, .filter-bar::before {
    left: 0 !important; right: 0 !important; top: 0 !important; height: 2px !important;
    background: linear-gradient(90deg, var(--clarity-cyan), rgba(104,229,245,.1) 48%, transparent) !important;
    opacity: .82;
}
.feedback-panel:hover, .card:hover, .stat-card:hover { border-color: rgba(104,229,245,.48) !important; box-shadow: inset 0 1px rgba(255,255,255,.05), 0 16px 32px rgba(0,0,0,.22) !important; }
.feedback-primary, .feedback-secondary, button, .btn-reset, .btn-login, select, input, textarea {
    font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif !important;
}
.feedback-primary, .feedback-secondary, .btn-login, .btn-reset {
    min-height: 40px !important;
    padding: 0 16px !important;
    border-radius: 3px !important;
    font-size: 13px !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
}
.feedback-primary, .btn-login { color: #071923 !important; border: 1px solid var(--clarity-cyan) !important; background: var(--clarity-cyan) !important; box-shadow: 0 5px 16px rgba(104,229,245,.15) !important; }
.feedback-primary:hover, .btn-login:hover { color: #fff !important; background: #2aaec6 !important; }
.feedback-secondary, .btn-reset { color: var(--clarity-cyan) !important; border: 1px solid rgba(104,229,245,.45) !important; background: rgba(15,48,67,.8) !important; }
.feedback-secondary:hover, .btn-reset:hover { color: #fff !important; border-color: var(--clarity-cyan) !important; background: rgba(33,88,108,.82) !important; }
.feedback-field label, .overview-filter label span, .form-group label { color: var(--clarity-text-soft) !important; font-size: 13px !important; font-weight: 700 !important; }
input, select, textarea, .feedback-field input, .feedback-field select, .feedback-field textarea, .overview-filter select {
    color: var(--clarity-text) !important;
    border: 1px solid rgba(104,229,245,.34) !important;
    border-radius: 3px !important;
    background: #081b2b !important;
    font-size: 14px !important;
}
input:focus, select:focus, textarea:focus { border-color: var(--clarity-cyan) !important; box-shadow: 0 0 0 2px rgba(104,229,245,.12) !important; outline: none !important; }
.panel-kicker, .profile-section-code { color: var(--clarity-cyan) !important; font-size: 11px !important; font-weight: 800 !important; }
.feedback-help, .feedback-meta, .archive-tool-note { color: var(--clarity-text-muted) !important; font-size: 12px !important; }

/* Tables: high contrast and larger scan rhythm */
table { font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif !important; }
.feedback-panel table th, .member-table th, .discipline-table th, .score-matrix-table th,
.archive-page table th, .report-table th {
    color: #e2f6fa !important;
    background: #16364d !important;
    border-bottom: 1px solid rgba(104,229,245,.48) !important;
    font-size: 14px !important;
    font-weight: 900 !important;
    line-height: 1.45 !important;
}
.feedback-panel table td, .member-table td, .discipline-table td, .score-matrix-table td,
.archive-page table td, .report-table td {
    color: var(--clarity-text-soft) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    line-height: 1.55 !important;
    border-bottom: 1px solid rgba(104,229,245,.16) !important;
}
.feedback-panel table tbody tr:nth-child(even) td, .member-table tbody tr:nth-child(even) td,
.discipline-table tbody tr:nth-child(even) td { background: rgba(20,58,78,.34) !important; }
.feedback-panel table tbody tr:hover td, .member-table tbody tr:hover td,
.discipline-table tbody tr:hover td { color: #fff !important; background: rgba(49,124,145,.28) !important; }
.discipline-table td strong, .member-table strong, .score-matrix-table td strong { color: #ffffff !important; font-size: 15px !important; font-weight: 900 !important; text-shadow: none !important; }
.discipline-table td small, .discipline-table td > span, .member-table td small { color: var(--clarity-text-muted) !important; font-size: 12px !important; }
.discipline-board-table th { color: #092031 !important; background: #cce7ed !important; border-color: #8cbac4 !important; font-size: 16px !important; }
.discipline-board-table td { color: #142d3d !important; background: #f8fbfc !important; border-color: #c0d2d8 !important; font-size: 16px !important; }
.discipline-board-table tbody tr:nth-child(even) td { background: #eaf4f6 !important; }
.discipline-board-table td strong { color: #092031 !important; }
.discipline-board-table .board-new-value { color: #b52f45 !important; }
.discipline-board-table .board-rate-value { color: #086b67 !important; }

/* Metrics and section titles */
.overview-metrics > div, .work-report-metrics > div, .discipline-metric, .report-metrics > a {
    min-height: 122px !important;
    padding: 20px !important;
    border: 1px solid rgba(104,229,245,.28) !important;
    background: rgba(14,43,64,.9) !important;
}
.overview-metrics span, .work-report-metrics span, .discipline-metric span, .report-metrics span { color: var(--clarity-text-soft) !important; font-size: 14px !important; font-weight: 800 !important; }
.overview-metrics strong, .work-report-metrics strong, .discipline-metric strong, .report-metrics strong { color: var(--clarity-cyan) !important; font-size: 39px !important; font-weight: 900 !important; text-shadow: none !important; }
.overview-metrics small, .work-report-metrics small, .discipline-metric small, .report-metrics small { color: var(--clarity-text-muted) !important; font-size: 12px !important; }
.overview-section-title, .discipline-panel-head { border-bottom-color: rgba(104,229,245,.28) !important; }
.overview-section-title h2, .discipline-panel-head h2 { color: var(--clarity-text) !important; font-size: 20px !important; font-weight: 900 !important; }
.overview-section-title span, .discipline-panel-head span { color: var(--clarity-cyan) !important; font-size: 12px !important; font-weight: 800 !important; }
.discipline-panel { background: rgba(12,32,50,.9) !important; border: 1px solid rgba(104,229,245,.28) !important; }
.discipline-panel-head > strong, .discipline-legend, .discipline-stage-legend { color: var(--clarity-text-soft) !important; font-size: 13px !important; font-weight: 700 !important; }

/* Work report and committee work */
.committee-work-heading h1, .committee-role-heading h1, .work-report-heading h1 { color: var(--clarity-text) !important; font-size: 32px !important; font-weight: 900 !important; }
.committee-work-heading span, .committee-role-heading span { color: var(--clarity-cyan) !important; font-weight: 800 !important; }
.committee-role-entry { border-color: rgba(104,229,245,.3) !important; background: rgba(12,37,57,.88) !important; }
.committee-role-entry:hover { border-color: var(--clarity-cyan) !important; background: rgba(25,76,95,.8) !important; }
.committee-role-entry strong { color: #f4fbfd !important; font-size: 20px !important; font-weight: 900 !important; }
.committee-role-action, .committee-role-number { color: var(--clarity-text-soft) !important; font-weight: 700 !important; }
.work-department-panel { background: rgba(12,37,57,.9) !important; }
.work-department-panel > header { border-bottom-color: rgba(104,229,245,.3) !important; }
.work-department-panel > header h2 { color: var(--clarity-text) !important; font-size: 20px !important; font-weight: 900 !important; }
.work-report-item { border-color: rgba(104,229,245,.18) !important; border-left: 3px solid var(--clarity-line-bright) !important; background: rgba(16,51,70,.7) !important; }
.work-report-item > div strong, .feedback-title { color: var(--clarity-text) !important; font-size: 16px !important; font-weight: 800 !important; }
.work-report-item > div span, .work-report-item time { color: var(--clarity-text-soft) !important; font-size: 13px !important; }

/* Login follows the same system without making the form hard to read. */
.login-page { background: var(--clarity-bg-deep) !important; }
.login-page .tech-panel { background: rgba(12,32,50,.96) !important; border-color: rgba(104,229,245,.42) !important; }
.login-page .panel-title, .login-page .lead-copy, .login-page .core-message { color: var(--clarity-text) !important; }
.login-page .support-copy, .login-page .security-line { color: var(--clarity-text-soft) !important; }

@media (max-width: 1100px) {
    .topbar-status { display: none !important; }
    .feedback-main, .main-content { padding-left: 28px !important; padding-right: 28px !important; }
}
@media (max-width: 768px) {
    body::after { top: 78px; right: -210px; width: 390px; height: 390px; opacity: .12; }
    .sidebar, .feedback-page .sidebar { width: 100% !important; min-width: 0 !important; height: 72px !important; padding: 8px 10px !important; }
    .feedback-page .system-brand, .feedback-page .system-live, .feedback-page .nav-label, .global-task-entry { display: none !important; }
    .feedback-page .main-nav { grid-template-columns: repeat(6, minmax(90px, 1fr)) !important; overflow-x: auto; }
    .nav-link { min-height: 54px !important; padding: 0 8px !important; font-size: 12px !important; }
    .nav-index { display: none !important; }
    .topbar, .feedback-page .topbar { left: 0 !important; height: 66px !important; padding: 0 16px !important; }
    .topbar-account { min-width: 230px !important; height: 50px !important; }
    .feedback-main, .main-content { margin-left: 0 !important; margin-top: 66px !important; padding: 22px 16px 100px !important; }
    .feedback-header { align-items: flex-start !important; gap: 14px !important; flex-direction: column !important; }
    .feedback-header h1, .page-title h1 { font-size: 25px !important; }
    .overview-metrics, .work-report-metrics, .discipline-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    .overview-metrics > div, .work-report-metrics > div, .discipline-metric { min-height: 104px !important; padding: 15px !important; }
    .overview-metrics strong, .work-report-metrics strong, .discipline-metric strong { font-size: 30px !important; }
}
@media (max-width: 480px) {
    .topbar-account { min-width: 150px !important; }
    .account-copy { display: none !important; }
    .overview-metrics, .work-report-metrics, .discipline-metrics { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
    .overview-metrics span, .work-report-metrics span, .discipline-metric span { font-size: 12px !important; }
    .overview-metrics strong, .work-report-metrics strong, .discipline-metric strong { font-size: 26px !important; }
}

.discipline-data-board { padding:16px !important; overflow:hidden; background:#edf2f6 !important; background-image:none !important; }
.discipline-board-scroll { max-width:100%; overflow-x:auto; border:1px solid #b9c6d2; background:#fff; scrollbar-color:#8da5b6 #e5ebf0; }
.discipline-board-canvas { min-width:1380px; padding:24px; color:#172033; font-family:"Microsoft YaHei UI","Microsoft YaHei",Arial,sans-serif !important; background:#fff; }
.discipline-board-title { padding:16px 4px; margin-bottom:18px; border-left:0; border-bottom:2px solid #17324d; background:#fff; }
.discipline-board-title span { color:#315065; font-size:14px; font-weight:800; }
.discipline-board-title h2 { margin:8px 0 7px; color:#0c2438; font-size:32px; font-weight:800; text-shadow:none; }
.discipline-board-title p { color:#4e5f70; font-size:16px; font-weight:600; }
.discipline-board-layout { display:block; }
.discipline-board-column { display:grid; gap:16px; align-content:start; min-width:0; }
.discipline-board-secondary { grid-template-columns:minmax(0,1fr) minmax(0,1fr); margin-top:18px; }
.discipline-board-section { min-width:0; overflow:hidden; border:1px solid #b9c6d2; background:#fff; box-shadow:none; }
.discipline-board-section-head { min-height:64px; padding:13px 18px; display:flex; align-items:center; justify-content:space-between; gap:16px; border-bottom:1px solid #aebdca; background:#edf2f6; }
.discipline-board-section-head h3 { color:#102a43; font-size:21px; font-weight:800; text-shadow:none; }
.discipline-board-section-head span { color:#526273; font-size:14px; font-weight:600; white-space:nowrap; }
.discipline-board-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.discipline-board-table th { height:56px; padding:10px 11px; color:#172f43; font-size:16px; line-height:1.35; font-weight:800; text-align:center; white-space:normal; border-right:1px solid #b8c5cf; border-bottom:1px solid #aebdca; background:#dfe7ed; }
.discipline-board-table td { height:56px; padding:10px 11px; color:#1f2f3d; font-size:16px; line-height:1.4; font-weight:700; text-align:center; border-right:1px solid #ccd6de; border-bottom:1px solid #ccd6de; }
.discipline-board-table th:last-child,.discipline-board-table td:last-child { border-right:0; }
.discipline-board-table tbody tr:nth-child(even) td:not(.board-stage-cell) { background:#f8fafb; }
.discipline-board-table tbody tr:hover td:not(.board-stage-cell) { color:#172033; background:#eef7fa; }
.discipline-board-table td strong { color:#0e2435; font-size:17px; font-weight:800; }
.discipline-board-table td small { display:block; margin-top:4px; color:#556575; font-size:13px; font-weight:600; }
.discipline-board-class-table { min-width:1280px; }
.discipline-board-class-table th:nth-child(1) { width:8%; }.discipline-board-class-table th:nth-child(2) { width:17%; }.discipline-board-class-table th:nth-child(3) { width:15%; }.discipline-board-class-table th:nth-child(4) { width:13%; }.discipline-board-class-table th:nth-child(5) { width:7%; }.discipline-board-class-table th:nth-child(6) { width:8%; }.discipline-board-class-table th:nth-child(7) { width:11%; }.discipline-board-class-table th:nth-child(8) { width:11%; }.discipline-board-class-table th:nth-child(9) { width:10%; }
.board-stage-cell { color:#172033 !important; font-size:20px !important; font-weight:800 !important; vertical-align:middle; text-shadow:none; }
.board-stage-cell.major { color:#172033 !important; background:#ddecf3; }.board-stage-cell.advanced { color:#172033 !important; background:#e0eee5; }.board-stage-cell.practice { color:#172033 !important; background:#f4ead1; }
.discipline-board-table tfoot th,.discipline-board-table tfoot td { color:#132f46; font-weight:800; background:#dfe9ef; border-top:2px solid #8aa1b2; }
.discipline-board-table .board-new-value { color:#b92f44; font-size:17px; font-weight:800; text-shadow:none; }.discipline-board-table .board-rate-value { color:#135f5b; font-size:17px; font-weight:800; text-shadow:none; }
.discipline-board-advisor-table { min-width:900px; }.discipline-board-advisor-table th:first-child { width:40%; }.discipline-board-advisor-table td:first-child { padding-left:18px; text-align:left; }.discipline-board-advisor-table .board-self-managed-row td { background:#fffaf0; }.discipline-board-advisor-table .board-self-managed-row strong { color:#805d0b; }
.discipline-board-category-table { min-width:0; }.discipline-board-category-table th:first-child { width:43%; }.discipline-board-category-table td:first-child { padding-left:16px; text-align:left; }
.discipline-board-stage-table { min-width:0; }.discipline-board-stage-table th:first-child { width:18%; }
.discipline-board-stage-table td,.discipline-board-stage-table td strong,.discipline-board-stage-table .board-rate-value { color:#172033 !important; }
.discipline-board-capture-mode { min-width:1480px !important; padding:24px !important; background:#fff !important; }
.maintenance-person-edit { min-width:190px; display:grid; grid-template-columns:minmax(110px,1fr) 56px; gap:6px; }
.maintenance-person-edit input { width:100%; min-height:34px; padding:6px 8px; color:#e5faff; font-size:13px; outline:none; border:1px solid rgba(66,220,255,.22); background:#071b35; }
.maintenance-person-edit button { color:#9eefff; font-size:12px; border:1px solid rgba(66,220,255,.3); background:rgba(5,34,63,.9); cursor:pointer; }
.maintenance-person-edit button:hover { border-color:#42dcff; box-shadow:0 0 10px rgba(66,220,255,.2); }
.discipline-maintenance-table { min-width:1260px; }

/* Keep the period board in the same readable dark system as the rest of the product. */
.discipline-data-board {
    padding: 16px !important;
    background: #071522 !important;
    border-color: rgba(104,229,245,.34) !important;
}
.discipline-board-scroll { border-color: rgba(104,229,245,.3) !important; background: #0b2133 !important; }
.discipline-board-canvas,
.discipline-board-capture-mode {
    color: var(--clarity-text) !important;
    background: #0b2133 !important;
}
.discipline-board-title { border-bottom: 2px solid var(--clarity-cyan) !important; background: transparent !important; }
.discipline-board-title span { color: var(--clarity-cyan) !important; }
.discipline-board-title h2 { color: var(--clarity-text) !important; font-size: 30px !important; }
.discipline-board-title p { color: var(--clarity-text-soft) !important; }
.discipline-board-section { border-color: rgba(104,229,245,.3) !important; background: #0d293d !important; }
.discipline-board-section-head { border-bottom-color: rgba(104,229,245,.34) !important; background: #163b52 !important; }
.discipline-board-section-head h3 { color: #f1fbfd !important; font-size: 19px !important; }
.discipline-board-section-head span { color: #c0dce5 !important; font-size: 13px !important; }
.discipline-board-table th {
    color: #061923 !important;
    background: #bce8ee !important;
    border-color: #70b8c3 !important;
    font-size: 15px !important;
}
.discipline-board-table td {
    color: #e5f2f5 !important;
    background: #102f43 !important;
    border-color: rgba(151,204,214,.23) !important;
    font-size: 15px !important;
}
.discipline-board-table tbody tr:nth-child(even) td { background: #12384d !important; }
.discipline-board-table tbody tr:hover td { color: #fff !important; background: #1a5265 !important; }
.discipline-board-table td strong { color: #fff !important; }
.discipline-board-table td small { color: #b4d0da !important; }
.discipline-board-table tfoot th, .discipline-board-table tfoot td { color: #f4fcfd !important; background: #1d4b5d !important; border-color: #65c6d3 !important; }
.board-stage-cell, .discipline-board-stage-table td, .discipline-board-stage-table td strong, .discipline-board-stage-table .board-rate-value { color: #f3fbfd !important; }
.board-stage-cell.major { background: #1b5261 !important; }
.board-stage-cell.advanced { background: #1d5745 !important; }
.board-stage-cell.practice { background: #5b4c29 !important; }
.discipline-board-table .board-new-value { color: #ff9da7 !important; }
.discipline-board-table .board-rate-value { color: #8ff0c0 !important; }

/* ===== Local clarity motion layer ===== */
@keyframes clarity-ring-spin { to { transform: rotate(360deg); } }
@keyframes clarity-flow { from { background-position: -260px 0; } to { background-position: 260px 0; } }
@keyframes clarity-panel-pulse { 0%, 100% { opacity: .72; } 50% { opacity: 1; } }
@keyframes clarity-active-pulse { 0%, 100% { box-shadow: 0 0 10px rgba(104,229,245,.16); } 50% { box-shadow: 0 0 22px rgba(104,229,245,.34); } }

body::after {
    animation: clarity-ring-spin 38s linear infinite;
    transform-origin: center;
}
.dashboard-tech::before { animation: radarTurn 30s linear infinite !important; }
.dashboard-tech::after {
    display: block !important;
    opacity: .28 !important;
    animation: clarity-panel-pulse 5s ease-in-out infinite;
}
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before, .filter-bar::before {
    background: linear-gradient(90deg, transparent, var(--clarity-cyan), transparent) !important;
    background-size: 260px 100% !important;
    animation: clarity-flow 8s linear infinite;
}
.topbar::after {
    background: linear-gradient(90deg, transparent, var(--clarity-cyan), transparent) !important;
    background-size: 360px 100% !important;
    animation: clarity-flow 10s linear infinite;
}
.stat-card::after {
    animation: clarity-flow 7s linear infinite !important;
}
.nav-link.active { animation: clarity-active-pulse 4s ease-in-out infinite; }
.system-live .live-dot, .discipline-status-dot { animation: clarity-panel-pulse 2.6s ease-in-out infinite !important; }

@media (prefers-reduced-motion: reduce) {
    body::after, .dashboard-tech::before, .dashboard-tech::after,
    .feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
    .filter-bar::before, .topbar::after, .stat-card::after, .nav-link.active,
    .system-live .live-dot, .discipline-status-dot { animation: none !important; }
}

/* ===== Reference HUD surface: spectrum borders, corner geometry and particles ===== */
@keyframes clarity-spectrum-flow {
    from { background-position: 0 0, 0% 0; }
    to { background-position: 0 0, 100% 0; }
}
@keyframes clarity-particle-drift {
    from { background-position: 0 0, 0 0, 0 0, 0 0; }
    to { background-position: 80px 42px, -70px 56px, 36px 36px, 0 0; }
}
@keyframes clarity-title-breathe {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(104,229,245,.22)); opacity: .92; }
    50% { filter: drop-shadow(0 0 18px rgba(104,229,245,.58)); opacity: 1; }
}
@keyframes clarity-corner-glint {
    0%, 100% { opacity: .45; }
    50% { opacity: 1; }
}

body,
body.feedback-page,
body.dashboard-page {
    background:
        radial-gradient(circle at 14% 21%, rgba(104,229,245,.82) 0 1px, transparent 2px),
        radial-gradient(circle at 67% 18%, rgba(178,112,255,.72) 0 1px, transparent 2px),
        radial-gradient(circle at 83% 71%, rgba(104,229,245,.7) 0 1px, transparent 2px),
        radial-gradient(circle at 38% 84%, rgba(116,221,168,.52) 0 1px, transparent 2px),
        linear-gradient(rgba(82,214,235,.045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(82,214,235,.045) 1px, transparent 1px),
        radial-gradient(circle at 88% 12%, rgba(42,130,170,.22), transparent 30%),
        linear-gradient(135deg, var(--clarity-bg-deep), var(--clarity-bg) 52%, #0a1b2c) !important;
    background-size: 240px 180px, 310px 250px, 280px 220px, 360px 300px, 36px 36px, 36px 36px, auto, auto !important;
    animation: clarity-particle-drift 26s linear infinite;
}
body::before {
    opacity: .82 !important;
    background-image:
        linear-gradient(rgba(104,229,245,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(104,229,245,.03) 1px, transparent 1px),
        linear-gradient(135deg, transparent 0 49.7%, rgba(104,229,245,.07) 50%, transparent 50.3%) !important;
    background-size: 36px 36px, 36px 36px, 170px 170px !important;
}

.feedback-panel, .card, .stat-card, .table-wrap, .filter-bar, .tech-panel,
.work-department-panel, .committee-role-entry, .discipline-data-board {
    border: 1px solid transparent !important;
    background-color: transparent !important;
    background-image:
        linear-gradient(rgba(12,32,50,.94), rgba(8,24,39,.94)),
        linear-gradient(110deg, #51e7f3 0%, #67aafa 28%, #b06aff 58%, #4ce2f0 79%, #63e69f 100%) !important;
    background-origin: border-box !important;
    background-clip: padding-box, border-box !important;
    background-size: 100% 100%, 260% 100% !important;
    background-position: 0 0, 0% 0 !important;
    animation: clarity-spectrum-flow 11s linear infinite !important;
}
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after, .committee-role-entry::after {
    content: "";
    position: absolute;
    inset: 5px;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, var(--clarity-cyan), var(--clarity-cyan)) left top / 34px 1px no-repeat,
        linear-gradient(90deg, var(--clarity-cyan), var(--clarity-cyan)) right bottom / 34px 1px no-repeat,
        linear-gradient(0deg, var(--clarity-cyan), var(--clarity-cyan)) left top / 1px 34px no-repeat,
        linear-gradient(0deg, var(--clarity-cyan), var(--clarity-cyan)) right bottom / 1px 34px no-repeat;
    opacity: .6;
    animation: clarity-corner-glint 4.6s ease-in-out infinite;
}
.feedback-panel > *, .card > *, .stat-card > *, .table-wrap > *, .filter-bar > *,
.tech-panel > *, .work-department-panel > *, .committee-role-entry > * { position: relative; z-index: 1; }

.page-title h1, .feedback-header h1, .topbar-title,
.committee-work-heading h1, .committee-role-heading h1, .work-report-heading h1,
.discipline-heading h1 {
    color: transparent !important;
    background: linear-gradient(180deg, #ffffff 0%, #d9fbff 42%, #55e3f1 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    animation: clarity-title-breathe 4.8s ease-in-out infinite;
}
.page-title h1::after, .feedback-header h1::after { content: ""; }
.stat-card .stat-number, .overview-metrics strong, .discipline-metric strong, .work-report-metrics strong {
    text-shadow: 0 0 8px rgba(104,229,245,.44), 0 0 22px rgba(104,229,245,.28) !important;
}
.system-brand {
    position: relative;
    border: 1px solid rgba(104,229,245,.22) !important;
    border-bottom-color: rgba(104,229,245,.42) !important;
    background: linear-gradient(135deg, rgba(25,69,91,.32), transparent 52%) !important;
}
.system-brand::before {
    content: "";
    position: absolute;
    inset: 5px;
    pointer-events: none;
    border-left: 1px solid rgba(104,229,245,.42);
    border-top: 1px solid rgba(178,112,255,.42);
    opacity: .72;
}
.brand-logo-shell { box-shadow: 0 0 0 1px rgba(104,229,245,.4), 0 0 22px rgba(104,229,245,.24) !important; }
.nav-link.active { border-color: transparent !important; background-image: linear-gradient(#1b5264, #123648), linear-gradient(90deg, #62edfb, #bc72ff, #62edfb) !important; background-origin: border-box !important; background-clip: padding-box, border-box !important; background-size: 100% 100%, 240% 100% !important; animation: clarity-spectrum-flow 6s linear infinite, clarity-active-pulse 4s ease-in-out infinite !important; }

@media (prefers-reduced-motion: reduce) {
    body, .feedback-panel, .card, .stat-card, .table-wrap, .filter-bar, .tech-panel,
    .work-department-panel, .committee-role-entry, .page-title h1, .feedback-header h1,
    .topbar-title, .committee-work-heading h1, .committee-role-heading h1,
    .work-report-heading h1, .discipline-heading h1, .feedback-panel::after,
    .card::after, .stat-card::after, .table-wrap::after, .filter-bar::after,
    .tech-panel::after, .work-department-panel::after, .committee-role-entry::after,
    .nav-link.active { animation: none !important; }
}

/* ===== HUD frame construction: segmented corners and travelling energy points ===== */
@keyframes hud-energy-sweep {
    from { background-position: -340px 0; }
    to { background-position: 340px 0; }
}
@keyframes hud-frame-shimmer {
    0%, 100% { opacity: .42; }
    50% { opacity: .9; }
}

.feedback-panel:not(.discipline-data-board), .card, .stat-card, .table-wrap,
.filter-bar, .tech-panel, .work-department-panel, .committee-role-entry {
    border-radius: 0 !important;
    clip-path: polygon(0 14px, 14px 0, calc(100% - 14px) 0, 100% 14px, 100% calc(100% - 14px), calc(100% - 14px) 100%, 14px 100%, 0 calc(100% - 14px)) !important;
    outline: 1px dashed rgba(78,193,224,.24);
    outline-offset: 5px;
}
.stat-card, .committee-role-entry { clip-path: polygon(0 10px, 10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px)) !important; }

.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
.filter-bar::before, .tech-panel::before, .work-department-panel::before,
.committee-role-entry::before {
    left: 14px !important;
    right: 14px !important;
    top: 0 !important;
    height: 2px !important;
    z-index: 2 !important;
    background: linear-gradient(90deg,
        transparent 0 16%,
        rgba(104,229,245,.25) 20%,
        #ffffff 27%,
        #64f0ff 33%,
        rgba(177,106,255,.82) 43%,
        rgba(104,229,245,.2) 52%,
        transparent 66%);
    /* background 不加 !important：关键帧 hud-energy-sweep 需要Drive background-position */
    background-size: 340px 100% !important;
    animation: hud-energy-sweep 7.5s linear infinite !important;
    box-shadow: 0 0 12px rgba(104,229,245,.65), 0 0 26px rgba(104,229,245,.22) !important;
}
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after {
    inset: 6px !important;
    z-index: 2 !important;
    background:
        linear-gradient(135deg, transparent 0 49%, rgba(104,229,245,.55) 50% 53%, transparent 54%) left top / 34px 34px no-repeat,
        linear-gradient(315deg, transparent 0 49%, rgba(104,229,245,.55) 50% 53%, transparent 54%) right top / 34px 34px no-repeat,
        linear-gradient(45deg, transparent 0 49%, rgba(104,229,245,.55) 50% 53%, transparent 54%) left bottom / 34px 34px no-repeat,
        linear-gradient(225deg, transparent 0 49%, rgba(104,229,245,.55) 50% 53%, transparent 54%) right bottom / 34px 34px no-repeat,
        repeating-linear-gradient(135deg, rgba(104,229,245,.18) 0 2px, transparent 2px 7px) right 13px top 16px / 46px 22px no-repeat,
        linear-gradient(90deg, transparent, rgba(104,229,245,.46), transparent) center bottom / 150px 1px no-repeat;
    /* background 不加 !important：后续扫描线层与关键帧需要接管 position */
    opacity: .72 !important;
    animation: hud-frame-shimmer 4.8s ease-in-out infinite !important;
}
.feedback-panel > *, .card > *, .stat-card > *, .table-wrap > *, .filter-bar > *,
.tech-panel > *, .work-department-panel > *, .committee-role-entry > * { z-index: 3 !important; }

/* Login is the strongest frame variant from the reference screen. */
.login-page .tech-panel {
    border-width: 1px !important;
    box-shadow: 0 0 0 1px rgba(72,208,238,.18), 0 0 34px rgba(72,208,238,.18), inset 0 0 38px rgba(25,130,167,.12) !important;
}
.login-page .tech-panel::before, .login-page .tech-panel::after { display: block !important; }
.login-page .tech-panel::before { left: 28px !important; right: 28px !important; }
.login-page .tech-panel::after {
    inset: 12px !important;
    background:
        linear-gradient(135deg, transparent 0 48%, #67e9f8 49% 52%, transparent 53%) left top / 52px 52px no-repeat,
        linear-gradient(315deg, transparent 0 48%, #67e9f8 49% 52%, transparent 53%) right top / 52px 52px no-repeat,
        linear-gradient(45deg, transparent 0 48%, #67e9f8 49% 52%, transparent 53%) left bottom / 52px 52px no-repeat,
        linear-gradient(225deg, transparent 0 48%, #67e9f8 49% 52%, transparent 53%) right bottom / 52px 52px no-repeat,
        repeating-linear-gradient(135deg, rgba(104,229,245,.22) 0 2px, transparent 2px 8px) left 16px center / 38px 70px no-repeat,
        repeating-linear-gradient(135deg, rgba(104,229,245,.22) 0 2px, transparent 2px 8px) right 16px center / 38px 70px no-repeat !important;
    opacity: .88 !important;
}

/* Header frame and brand rail. */
.topbar { border-bottom-color: rgba(79,205,232,.4) !important; }
.topbar::before {
    content: "";
    position: absolute;
    left: 34px;
    right: 34px;
    bottom: 5px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(104,229,245,.65) 18%, rgba(177,106,255,.75) 50%, rgba(104,229,245,.65) 82%, transparent);
    opacity: .7;
}
.system-brand::after {
    left: 10px !important;
    right: 10px !important;
    bottom: -1px !important;
    background: linear-gradient(90deg, transparent, #5be7f5 20%, #b270ff 52%, #5be7f5 80%, transparent) !important;
    background-size: 220px 100% !important;
    animation: hud-energy-sweep 9s linear infinite !important;
}

/* Student union work starts as a clean department launcher. */
.student-union-work-main { max-width: 1480px; min-height: calc(100vh - 74px); }
.student-union-work-heading { margin-bottom: 28px; }
.student-union-department-grid { grid-template-columns: repeat(3, minmax(220px, 1fr)); }
.student-union-department-card { min-height: 210px; cursor: default; }
.student-union-department-card .committee-role-mark { color: rgba(104,229,245,.42) !important; font-size: 18px; }
.student-union-department-card .committee-role-action { color: var(--clarity-text-muted) !important; }
.student-union-department-card:nth-child(3n+2) { --role-color: #74dda8; }
.student-union-department-card:nth-child(3n) { --role-color: #f2c76b; }
@media (max-width: 1100px) { .student-union-department-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); } }
@media (max-width: 640px) { .student-union-department-grid { grid-template-columns: 1fr; } }

/* ===== Action controls: large, high-contrast HUD buttons ===== */
.feedback-primary, .feedback-secondary, .btn-login, .btn-reset,
.archive-tool-link, .archive-import-button, .archive-action-button,
.archive-view-link, .search-box button, .discipline-heading-actions button,
.discipline-maintenance-actions a, .discipline-maintenance-actions button,
.discipline-detail-filter button, .discipline-import-form button,
.work-form-actions button, .work-form-actions a, .work-review-actions button,
.work-single-action button, .feedback-actions button {
    min-height: 52px !important;
    padding: 0 24px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid transparent !important;
    border-radius: 0 !important;
    clip-path: polygon(0 8px, 8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px)) !important;
    font-size: 16px !important;
    line-height: 1.2;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    white-space: nowrap;
    text-decoration: none;
    transition: color .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, transform .2s ease !important;
}
.feedback-primary, .btn-login {
    color: #06202b !important;
    background: linear-gradient(135deg, #57c9f2 0%, #62e1e7 55%, #62e4c1 100%) !important;
    border-color: #6beef5 !important;
    box-shadow: 0 0 14px rgba(94,226,235,.28), inset 0 1px rgba(255,255,255,.42) !important;
}
.feedback-primary:hover, .btn-login:hover {
    color: #ffffff !important;
    background: linear-gradient(135deg, #33aee1 0%, #34cbd8 55%, #40c99f 100%) !important;
    box-shadow: 0 0 22px rgba(94,226,235,.52), inset 0 1px rgba(255,255,255,.5) !important;
    transform: translateY(-2px);
}
.feedback-secondary, .btn-reset {
    color: #69e6f4 !important;
    background: linear-gradient(180deg, rgba(20,63,86,.94), rgba(8,29,48,.96)) !important;
    border-color: rgba(76,201,230,.7) !important;
    box-shadow: inset 0 0 16px rgba(78,205,235,.08), 0 0 10px rgba(78,205,235,.12) !important;
}
.feedback-secondary:hover, .btn-reset:hover {
    color: #ffffff !important;
    border-color: #6beef5 !important;
    box-shadow: inset 0 0 20px rgba(78,205,235,.18), 0 0 18px rgba(78,205,235,.32) !important;
    transform: translateY(-2px);
}
.archive-import-button, .archive-import-button:hover {
    color: #d5b4ff !important;
    border-color: #a974ff !important;
    background: linear-gradient(135deg, rgba(101,53,166,.88), rgba(48,29,94,.94)) !important;
    box-shadow: 0 0 15px rgba(174,108,255,.24), inset 0 1px rgba(255,255,255,.22) !important;
}
.archive-tool-link, .archive-view-link {
    color: #73e7f5 !important;
    border-color: rgba(78,205,235,.66) !important;
    background: linear-gradient(180deg, rgba(18,62,84,.92), rgba(8,28,46,.96)) !important;
}
.archive-tool-link:nth-last-of-type(1), .archive-action-button.restore {
    color: #8af1b3 !important;
    border-color: rgba(116,221,168,.72) !important;
    background: linear-gradient(135deg, rgba(20,96,83,.84), rgba(8,47,47,.94)) !important;
}
.archive-action-button.danger, .feedback-danger {
    color: #ffabb4 !important;
    border-color: rgba(255,135,149,.72) !important;
    background: linear-gradient(135deg, rgba(120,38,63,.88), rgba(58,17,36,.95)) !important;
}
.archive-action-button.change { color: #73e7f5 !important; }
.feedback-primary:active, .feedback-secondary:active, .archive-tool-link:active,
.archive-import-button:active, .archive-action-button:active, .archive-view-link:active {
    transform: translateY(1px) !important;
}

/* Sidebar typography and hit areas. */
.feedback-page .nav-label, .dashboard-page .nav-label { font-size: 14px !important; font-weight: 900 !important; }
.feedback-page .nav-link, .dashboard-page .nav-link, .archive-page .nav-link {
    min-height: 52px !important;
    padding: 0 14px !important;
    gap: 14px !important;
    font-size: 16px !important;
    line-height: 1.2 !important;
    font-weight: 900 !important;
}
.feedback-page .nav-index, .dashboard-page .nav-index, .archive-page .nav-index {
    min-width: 24px;
    font-size: 12px !important;
    font-weight: 900 !important;
}
.nav-count { min-width: 25px !important; height: 23px !important; font-size: 12px !important; font-weight: 900 !important; }
.global-task-entry { min-height: 50px !important; margin: 12px 10px 7px !important; padding: 0 15px !important; font-size: 15px !important; font-weight: 900 !important; }
.global-task-entry::before { font-size: 10px !important; font-weight: 900 !important; }
.global-task-entry b { min-width: 26px !important; height: 26px !important; font-size: 12px !important; }

@media (max-width: 768px) {
    .feedback-page .nav-link, .dashboard-page .nav-link, .archive-page .nav-link {
        min-height: 56px !important;
        padding: 0 10px !important;
        font-size: 13px !important;
    }
    .feedback-primary, .feedback-secondary, .btn-login, .btn-reset,
    .archive-tool-link, .archive-import-button, .archive-action-button,
    .archive-view-link { min-height: 48px !important; padding: 0 16px !important; font-size: 14px !important; }
}

/* Large segmented selectors used as functional view switches. */
.feedback-tabs a, .score-view-switch a, .tab-item, .discipline-view-switch button {
    min-height: 50px !important;
    padding: 0 24px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    color: #a8c5d2 !important;
    border: 1px solid rgba(71,178,211,.45) !important;
    border-radius: 0 !important;
    background: linear-gradient(180deg, rgba(15,51,73,.9), rgba(6,25,43,.96)) !important;
    font-size: 16px !important;
    font-weight: 900 !important;
    text-decoration: none;
}
.feedback-tabs a.active, .score-view-switch a.active, .tab-item.active,
.discipline-view-switch button.active {
    color: #f4feff !important;
    border-color: #62e5f1 !important;
    background: linear-gradient(135deg, rgba(25,89,111,.96), rgba(13,52,72,.98)) !important;
    box-shadow: inset 4px 0 #62e5f1, 0 0 18px rgba(98,229,241,.22) !important;
}
.feedback-tabs a:hover, .score-view-switch a:hover, .tab-item:hover,
.discipline-view-switch button:hover { color: #ffffff !important; border-color: #62e5f1 !important; }
@media (max-width: 768px) {
    .feedback-tabs a, .score-view-switch a, .tab-item, .discipline-view-switch button {
        min-height: 48px !important;
        padding: 0 14px !important;
        font-size: 14px !important;
    }
}

/* ===== Active identity switcher ===== */
.identity-switcher {
    position: fixed;
    top: 10px;
    right: 412px;
    z-index: 145;
    width: 220px;
    font-family: "Microsoft YaHei UI", "Microsoft YaHei", "Segoe UI", Arial, sans-serif;
}
.identity-switch-trigger {
    width: 100%;
    min-height: 54px;
    padding: 7px 12px 7px 14px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    color: #eafcff;
    text-align: left;
    border: 1px solid rgba(104,229,245,.55);
    border-radius: 0;
    clip-path: polygon(0 7px, 7px 0, calc(100% - 7px) 0, 100% 7px, 100% calc(100% - 7px), calc(100% - 7px) 100%, 7px 100%, 0 calc(100% - 7px));
    background: linear-gradient(135deg, rgba(24,71,93,.96), rgba(7,28,46,.98));
    box-shadow: inset 3px 0 #64e5f2, 0 0 16px rgba(100,229,242,.16);
    cursor: pointer;
}
.identity-switcher.single .identity-switch-trigger { cursor: default; opacity: .92; }
.identity-switch-copy { min-width: 0; display: grid; gap: 1px; }
.identity-switch-copy small { color: #83b6c6; font-size: 9px; font-weight: 800; }
.identity-switch-copy strong { color: #f4fdff; font-size: 14px; line-height: 1.2; font-weight: 900; }
.identity-switch-copy em { overflow: hidden; color: #9fc1ce; font-size: 10px; line-height: 1.2; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.identity-switch-arrow { color: #65e5f2; font-size: 20px; font-weight: 900; transition: transform .2s ease; }
.identity-switch-trigger[aria-expanded="true"] .identity-switch-arrow { transform: rotate(180deg); }
.identity-switch-menu {
    position: absolute;
    top: calc(100% + 7px);
    right: 0;
    width: 270px;
    padding: 8px;
    border: 1px solid rgba(104,229,245,.5);
    background: rgba(5,22,37,.98);
    box-shadow: 0 18px 40px rgba(0,0,0,.48), inset 0 0 26px rgba(75,196,225,.06);
    clip-path: polygon(0 9px, 9px 0, calc(100% - 9px) 0, 100% 9px, 100% calc(100% - 9px), calc(100% - 9px) 100%, 9px 100%, 0 calc(100% - 9px));
}
.identity-switch-menu[hidden] { display: none !important; }
.identity-switch-menu-title { padding: 7px 9px 9px; color: #7fa9b8; font-size: 11px; font-weight: 800; border-bottom: 1px solid rgba(104,229,245,.14); }
.identity-switch-menu form { margin: 0; }
.identity-option {
    width: 100%;
    min-height: 58px;
    padding: 9px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    color: #bed7e0;
    text-align: left;
    border: 1px solid transparent;
    background: transparent;
    cursor: pointer;
}
.identity-option:hover { color: #fff; border-color: rgba(104,229,245,.38); background: rgba(34,92,111,.32); }
.identity-option.active { color: #fff; border-color: rgba(104,229,245,.62); background: linear-gradient(90deg, rgba(53,144,162,.34), rgba(17,53,72,.4)); }
.identity-option > span { min-width: 0; display: grid; gap: 4px; }
.identity-option strong { font-size: 14px; font-weight: 900; }
.identity-option small { overflow: hidden; color: #8fadb9; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.identity-option > b { padding: 3px 6px; color: #05222c; font-size: 10px; background: #6ce7ef; }

@media (max-width: 1100px) {
    .identity-switcher { right: 250px; width: 178px; }
    .identity-switch-copy em { display: none; }
}
@media (max-width: 768px) {
    .identity-switcher { top: 8px; right: 166px; width: 132px; }
    .identity-switch-trigger { min-height: 48px; padding: 6px 9px; }
    .identity-switch-copy small, .identity-switch-copy em { display: none; }
    .identity-switch-copy strong { font-size: 12px; }
    .identity-switch-menu { width: 238px; right: 0; }
}
@media (max-width: 480px) {
    .identity-switcher { right: 112px; width: 118px; }
    .identity-switch-arrow { font-size: 16px; }
}

/* ===== Culture group launcher ===== */
.student-union-department-card.available { cursor: pointer; }
.student-union-department-card.available .committee-role-action { color: #79e9f4 !important; }
.culture-work-main { max-width: 1480px; min-height: calc(100vh - 74px); }
.culture-work-heading { margin-top: 18px; }
.culture-work-section { margin-top: 30px; }
.culture-work-section-heading { display:flex; align-items:baseline; gap:12px; margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid rgba(104,229,245,.28); }
.culture-work-section-heading span { color:#68e5f5; font-size:12px; font-weight:900; }
.culture-work-section-heading h2 { color:#f3fbff; font-size:19px; line-height:1.3; }
.culture-work-grid { grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 16px; }
.culture-work-entry { min-height: 172px; padding:22px; cursor: default; }
.culture-work-entry strong { font-size: 25px !important; }
.culture-work-entry .committee-role-mark {
    width: 76px;
    height: 60px;
    min-width: 76px;
    padding: 0 7px;
    overflow: hidden;
    font-size: 25px;
    line-height: 1;
    letter-spacing: 0;
    white-space: nowrap;
}
.culture-work-entry .committee-role-mark.mark-lead { font-size: 22px; }
.culture-work-entry .committee-role-mark.mark-class { font-size: 17px; }
.culture-work-entry .committee-role-mark.mark-data { font-size: 23px; }
.culture-work-entry:nth-child(1) { --role-color: #68e5f5; }
.culture-work-entry:nth-child(2) { --role-color: #b487ff; }
.culture-work-entry:nth-child(3) { --role-color: #74dda8; }
.culture-work-entry:nth-child(4) { --role-color: #f2c76b; }
.culture-work-entry .committee-role-action { color: var(--clarity-text-muted) !important; }
@media (max-width: 1100px) {
    .culture-work-grid { grid-template-columns: repeat(2, minmax(240px, 1fr)); }
}
@media (max-width: 768px) {
    .culture-work-grid { grid-template-columns: 1fr; gap: 14px; }
    .culture-work-entry { min-height: 175px; }
    .culture-work-entry .committee-role-mark { width: 68px; min-width: 68px; height: 54px; }
    .culture-work-entry .committee-role-mark.mark-class { font-size: 15px; }
}

/* ===== Culture member scoring ===== */
.culture-work-entry[href] { cursor: pointer; }
.culture-work-entry[href] .committee-role-action { color: #79e9f4 !important; }
.culture-score-main, .culture-settings-main { max-width: 1680px; min-height: calc(100vh - 74px); }
.culture-score-heading { align-items: center; }
.culture-score-heading-meta { display: grid; justify-items: end; gap: 5px; }
.culture-score-heading-meta strong { color: #fff; font-size: 25px; font-weight: 900; }
.culture-score-heading-meta span { color: #9cb8c4; font-size: 13px; font-weight: 700; }
.culture-score-toolbar { margin: 18px 0 14px; padding: 18px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.culture-score-filter { display: flex; align-items: end; gap: 12px; }
.culture-score-filter label, .culture-setting-item label, .culture-template-list label { display: grid; gap: 7px; color: #a9c3cd; font-size: 13px; font-weight: 800; }
.culture-score-filter input, .culture-score-filter select, .culture-setting-item input, .culture-setting-item select, .culture-setting-item textarea, .culture-setting-add input, .culture-setting-add select, .culture-template-list input {
    min-height: 45px; padding: 9px 11px; color: #f4fdff; font-size: 15px; font-weight: 800; border: 1px solid rgba(104,229,245,.35); background: rgba(3,20,35,.92); outline: none;
}
.culture-score-period { display: grid; gap: 4px; }
.culture-score-period span, .culture-score-period small { color: #91aeb9; font-size: 12px; font-weight: 700; }
.culture-score-period strong { color: #fff; font-size: 17px; font-weight: 900; }
.culture-score-notice { margin-bottom: 14px; padding: 13px 16px; display: flex; gap: 18px; color: #bdd3dc; border-left: 4px solid #68e5f5; background: rgba(25,66,82,.62); }
.culture-score-notice strong { flex: 0 0 auto; color: #fff; }
.culture-score-form { border: 1px solid rgba(104,229,245,.3); background: rgba(5,23,38,.86); box-shadow: 0 18px 45px rgba(0,0,0,.28); }
.culture-score-table-wrap { overflow: auto; max-height: calc(100vh - 365px); }
.culture-score-table { width: 100%; min-width: 1180px; border-collapse: separate; border-spacing: 0; }
.culture-score-table th, .culture-score-table td { min-width: 138px; padding: 11px 10px; text-align: center; border-right: 1px solid rgba(104,229,245,.12); border-bottom: 1px solid rgba(104,229,245,.14); background: rgba(6,27,43,.92); }
.culture-score-table thead th { position: sticky; top: 0; z-index: 5; height: 76px; color: #f4fdff; font-size: 15px; font-weight: 900; background: #10364c; }
.culture-score-table thead th span, .culture-score-table thead th small { display: block; }
.culture-score-table thead th small { margin-top: 6px; color: #7de9f3; font-size: 12px; }
.culture-score-table tbody th, .culture-score-table tbody td { color: #deedf2; font-size: 15px; font-weight: 800; }
.culture-score-table .culture-score-fixed { min-width: 112px; position: sticky; left: 0; z-index: 4; background: #0e3044; }
.culture-score-table td.culture-score-fixed { left: 112px; z-index: 3; }
.culture-score-table thead th.culture-score-fixed { z-index: 8; }
.culture-score-cell { display: table-cell; }
.culture-score-input { width: 84px; min-height: 44px; padding: 8px; color: #fff; font-size: 17px; font-weight: 900; text-align: center; border: 1px solid rgba(104,229,245,.4); background: rgba(3,18,31,.95); outline: none; }
.culture-score-input:focus { border-color: #68e5f5; box-shadow: 0 0 0 2px rgba(104,229,245,.13); }
.culture-score-input:disabled { color: #708d98; border-color: rgba(112,141,152,.18); background: rgba(2,14,24,.5); }
.culture-score-trigger { width: 100%; min-width: 120px; min-height: 62px; padding: 9px 10px; display: grid; align-content: center; gap: 5px; color: #fff; border: 1px solid rgba(104,229,245,.35); background: rgba(7,38,54,.88); cursor: pointer; }
.culture-score-trigger:hover { border-color: #68e5f5; background: rgba(20,66,82,.92); box-shadow: inset 0 0 18px rgba(104,229,245,.07); }
.culture-score-trigger:disabled { color: #78929c; border-color: rgba(120,146,156,.18); background: rgba(5,20,30,.5); cursor: not-allowed; }
.culture-score-trigger strong { color: #7ce4ae; font-size: 18px; font-weight: 900; }
.culture-score-trigger span { color: #9fc1cc; font-size: 12px; font-weight: 800; }
.culture-score-trigger[data-deduction]:not([data-deduction="0"]):not([data-deduction="0.0"]):not([data-deduction="0.00"]) strong { color: #f3c96f; }
.culture-detail-drawer { position: fixed; inset: 0 0 0 auto; width: min(570px, 94vw); max-width: none; height: 100vh; max-height: none; margin: 0; padding: 0; color: #edfaff; border: 0; border-left: 1px solid rgba(104,229,245,.65); background: #071d2b; box-shadow: -24px 0 60px rgba(0,0,0,.55); overflow: hidden; }
.culture-detail-drawer[open] { display: grid; grid-template-rows: auto 1fr auto; animation: cultureDrawerIn .22s ease-out; }
.culture-detail-drawer::backdrop { background: rgba(0,10,18,.72); backdrop-filter: blur(3px); }
@keyframes cultureDrawerIn { from { transform: translateX(45px); opacity: .35; } to { transform: translateX(0); opacity: 1; } }
.culture-detail-header { padding: 24px 24px 20px; display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(104,229,245,.2); background: linear-gradient(100deg, rgba(46,128,148,.25), rgba(8,29,43,.95)); }
.culture-detail-header span { color: #72e2ee; font-size: 13px; font-weight: 900; }
.culture-detail-header h2 { margin-top: 7px; color: #fff; font-size: 25px; font-weight: 900; }
.culture-detail-header p { margin-top: 9px; color: #a9c2cc; font-size: 13px; line-height: 1.65; }
.culture-detail-close { width: 42px; height: 42px; flex: 0 0 42px; color: #dffbff; font-size: 30px; line-height: 1; border: 1px solid rgba(104,229,245,.35); background: rgba(4,23,35,.85); cursor: pointer; }
.culture-detail-rules { padding: 18px 22px 28px; overflow-y: auto; }
.culture-detail-rule { min-height: 92px; padding: 15px 0; display: grid; grid-template-columns: minmax(0,1fr) 92px 70px; align-items: center; gap: 12px; border-bottom: 1px solid rgba(104,229,245,.14); }
.culture-detail-rule > span:first-child { min-width: 0; display: grid; gap: 6px; }
.culture-detail-rule strong { color: #f5fdff; font-size: 17px; font-weight: 900; }
.culture-detail-rule small { color: #9eb8c2; font-size: 12px; line-height: 1.55; }
.culture-rule-control { height: 45px; display: flex; align-items: center; border: 1px solid rgba(104,229,245,.38); background: rgba(3,17,28,.95); }
.culture-rule-control input { width: 59px; height: 43px; padding: 7px; color: #fff; font-size: 18px; font-weight: 900; text-align: center; border: 0; background: transparent; outline: 0; }
.culture-rule-control em { color: #83aab7; font-size: 12px; font-style: normal; }
.culture-rule-result { color: #f2c66c; font-size: 15px; text-align: right; }
.culture-option-tip { margin: 0 0 6px; color: #9eb8c2; font-size: 12.5px; line-height: 1.6; }
.culture-option-rule .culture-rule-control { justify-content: center; gap: 6px; }
.culture-option-rule .culture-rule-control input[type="checkbox"] { width: 22px; height: 22px; accent-color: #68e5f5; cursor: pointer; }
.culture-option-rule .culture-rule-control em { color: #f2c66c; font-weight: 800; }
.culture-option-rule { cursor: pointer; }
.duty-status-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.culture-detail-footer { padding: 16px 22px; display: grid; grid-template-columns: 1fr 1fr auto; align-items: center; gap: 16px; border-top: 1px solid rgba(104,229,245,.25); background: #0c2c3d; }
.culture-detail-footer > div { display: grid; gap: 3px; }
.culture-detail-footer span { color: #9eb6c0; font-size: 12px; font-weight: 800; }
.culture-detail-footer strong { color: #f3c96f; font-size: 24px; font-weight: 900; }
.culture-detail-footer .culture-detail-score { color: #78e4ac; }
.culture-involved { margin-bottom: 7px; display: flex; align-items: center; justify-content: center; gap: 6px; color: #8edee8; font-size: 12px; }
.culture-involved input { width: 18px; height: 18px; accent-color: #68e5f5; }
.culture-score-total { color: #f3c96f !important; font-size: 19px !important; }
.culture-score-final { color: #7ce4ae !important; font-size: 21px !important; }
.culture-score-remark { width: 180px; min-height: 44px; padding: 8px; color: #fff; border: 1px solid rgba(104,229,245,.25); background: rgba(3,18,31,.9); }
.culture-score-actions { min-height: 76px; padding: 14px 18px; display: flex; align-items: center; justify-content: space-between; gap: 16px; color: #a9c1cb; font-weight: 800; }
.culture-score-history { margin-top: 18px; padding: 20px; }
.culture-score-history h2, .culture-settings-section-title h2 { margin-top: 5px; color: #fff; font-size: 22px; }
.culture-score-history > div:first-child > span, .culture-settings-section-title > div > span { color: #66ddea; font-size: 11px; font-weight: 900; }
.culture-period-score-grid { margin-top: 15px; display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 10px; }
.culture-period-score-grid div { padding: 13px; display: flex; align-items: center; justify-content: space-between; border: 1px solid rgba(104,229,245,.18); background: rgba(12,45,61,.68); }
.culture-period-score-grid span { color: #b9d0d8; font-weight: 700; }
.culture-period-score-grid strong { color: #77e5ad; font-size: 20px; }
.culture-template-list, .culture-settings-summary { margin: 18px 0; padding: 18px; }
.culture-settings-section-title { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.culture-settings-section-title form { display: flex; align-items: end; gap: 10px; }
.culture-template-tabs { margin-top: 15px; display: flex; flex-wrap: wrap; gap: 9px; }
.culture-template-tabs a { padding: 10px 13px; color: #abc3cc; font-weight: 800; border: 1px solid rgba(104,229,245,.2); background: rgba(4,25,40,.7); }
.culture-template-tabs a.active { color: #fff; border-color: #68e5f5; background: rgba(44,118,137,.46); }
.culture-settings-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.culture-settings-summary > div { display: grid; gap: 5px; }
.culture-settings-back-button { flex: 0 0 auto; white-space: nowrap; }
.culture-settings-summary-actions { display: flex !important; gap: 9px; align-items: center; }
.culture-settings-summary span { color: #92aeb9; font-size: 12px; font-weight: 800; }
.culture-settings-summary strong { color: #fff; font-size: 18px; }
.culture-settings-summary strong.good { color: #77e5ad; }
.culture-settings-summary strong.warn { color: #f4c970; }
.culture-setting-item { margin-top: 12px; padding: 16px; display: grid; grid-template-columns: 120px minmax(180px,1fr) 110px 130px 120px minmax(320px,2fr) 120px auto; align-items: end; gap: 10px; }
.culture-setting-item label.wide { min-width: 0; }
.culture-setting-item label.wide textarea { width: 100%; min-height: 118px; line-height: 1.65; resize: vertical; box-sizing: border-box; }
.culture-rule-readonly { width: 100%; min-height: 72px; padding: 13px 14px; display: block; color: #f4fdff; font-size: 15px; font-weight: 800; line-height: 1.75; overflow-wrap: anywhere; border: 1px solid rgba(104,229,245,.28); background: rgba(3,20,35,.72); box-sizing: border-box; }
.culture-setting-add { margin-top: 14px; padding: 16px; display: grid; grid-template-columns: minmax(190px,1fr) 110px 120px minmax(280px,2fr) 90px auto; gap: 10px; }
@media (max-width: 1100px) {
    .culture-score-toolbar, .culture-settings-summary, .culture-settings-section-title { align-items: stretch; flex-direction: column; }
    .culture-score-filter { flex-wrap: wrap; }
    .culture-period-score-grid { grid-template-columns: repeat(2, minmax(160px,1fr)); }
    .culture-setting-item, .culture-setting-add { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .culture-setting-item label.wide { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .culture-score-filter, .culture-score-notice { align-items: stretch; flex-direction: column; }
    .culture-score-filter label, .culture-score-filter button { width: 100%; }
    .culture-period-score-grid, .culture-setting-item, .culture-setting-add { grid-template-columns: 1fr; }
    .culture-setting-item label.wide { grid-column: auto; }
    .culture-setting-item { padding: 14px 12px; }
    .culture-rule-readonly { min-height: 0; }
    .culture-detail-drawer { width: 100vw; }
    .culture-detail-header { padding: 18px 16px; }
    .culture-detail-rules { padding: 10px 16px 24px; }
    .culture-detail-rule { grid-template-columns: minmax(0,1fr) 84px; }
    .culture-detail-rule .culture-rule-result { grid-column: 2; }
    .culture-detail-footer { padding: 12px 16px; grid-template-columns: 1fr 1fr; }
    .culture-detail-footer button { grid-column: 1 / -1; width: 100%; }
}

/* ===== Discipline department dashboard preview ===== */
.discipline-board-main { max-width: 1720px; min-height: calc(100vh - 74px); }
.discipline-board-heading { align-items: end; }
.discipline-board-period { display: grid; justify-items: end; gap: 4px; }
.discipline-board-period span, .discipline-board-period small { color: #91aeb9; font-size: 12px; font-weight: 800; }
.discipline-board-period strong { color: #f5fdff; font-size: 18px; font-weight: 900; }
.discipline-board-toolbar { margin: 18px 0; padding: 12px 16px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.discipline-board-tabs { display: flex; gap: 8px; }
.discipline-board-tabs a { padding: 12px 18px; color: #9dbac4; font-size: 15px; font-weight: 900; border: 1px solid rgba(104,229,245,.2); background: rgba(4,25,40,.72); }
.discipline-board-tabs a.active { color: #fff; border-color: #68e5f5; background: rgba(44,118,137,.55); box-shadow: inset 0 0 18px rgba(104,229,245,.1); }
.discipline-board-filter { display: flex; align-items: end; gap: 10px; }
.discipline-board-filter label { display: grid; gap: 5px; color: #9dbac4; font-size: 12px; font-weight: 800; }
.discipline-board-filter input { min-height: 42px; padding: 8px 10px; color: #fff; border: 1px solid rgba(104,229,245,.3); background: rgba(3,20,35,.92); }
.discipline-board-kpis { display: grid; grid-template-columns: repeat(5,minmax(150px,1fr)); gap: 12px; }
.discipline-member-kpis { grid-template-columns: repeat(4,minmax(170px,1fr)); }
.discipline-kpi { min-height: 118px; padding: 17px 18px; display: grid; align-content: center; gap: 5px; border-top: 2px solid #68e5f5; }
.discipline-kpi.warning { border-top-color: #f3c96f; }
.discipline-kpi.danger { border-top-color: #ff7587; }
.discipline-kpi span { color: #8daab5; font-size: 12px; font-weight: 900; }
.discipline-kpi strong { color: #f4fdff; font-size: 32px; font-weight: 900; line-height: 1; }
.discipline-kpi strong small { margin-left: 4px; color: #86a4af; font-size: 16px; }
.discipline-kpi p { margin: 0; color: #87a6b2; font-size: 12px; }
.discipline-board-grid { display: grid; gap: 14px; margin-top: 14px; }
.discipline-board-grid-main { grid-template-columns: minmax(0,1.25fr) minmax(360px,.75fr); }
.discipline-board-grid-detail { grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); }
.discipline-member-grid { grid-template-columns: minmax(0,1.35fr) minmax(330px,.65fr); }
.discipline-board-panel { min-width: 0; padding: 18px; }
.discipline-panel-title { margin-bottom: 14px; display: flex; align-items: end; justify-content: space-between; gap: 14px; }
.discipline-panel-title > div { display: grid; gap: 4px; }
.discipline-panel-title span { color: #66ddea; font-size: 11px; font-weight: 900; }
.discipline-panel-title h2 { margin: 0; color: #fff; font-size: 21px; }
.discipline-panel-title p { margin: 0; color: #8eabb5; font-size: 12px; }
.discipline-panel-title button { padding: 8px 12px; color: #78e8f2; border: 1px solid rgba(104,229,245,.3); background: rgba(5,31,45,.8); cursor: pointer; }
.discipline-table-wrap { overflow: auto; max-height: 540px; }
.discipline-board-table { width: 100%; border-collapse: separate; border-spacing: 0; }
.discipline-board-table th, .discipline-board-table td { padding: 11px 9px; color: #c7dce2; font-size: 13px; text-align: left; border-bottom: 1px solid rgba(104,229,245,.13); }
.discipline-board-table thead th { position: sticky; top: 0; z-index: 1; color: #9ed7df; font-size: 12px; font-weight: 900; background: #10364c; }
.discipline-board-table tbody tr { background: rgba(4,26,41,.4); }
.discipline-board-table tbody tr:hover, .discipline-board-table tbody tr.selected { background: rgba(37,108,124,.32); box-shadow: inset 3px 0 #68e5f5; }
.discipline-class-row { cursor: pointer; }
.discipline-class-row:focus { outline: 2px solid #68e5f5; outline-offset: -2px; }
.discipline-board-table strong { color: #f1fbff; }
.discipline-rank { color: #f3c96f; font-size: 16px; }
.discipline-score { color: #77e5ad; font-size: 18px; }
.discipline-score.low { color: #ffb6a1; }
.discipline-missing-member { color: #f3c96f; }
.discipline-state { padding: 4px 7px; font-size: 11px; font-style: normal; font-weight: 900; border: 1px solid currentColor; }
.discipline-state.good { color: #77e5ad; }
.discipline-state.warning { color: #f3c96f; }
.discipline-state.danger { color: #ff8292; }
.discipline-state.pending { color: #91aeb9; }
.discipline-frequency-list, .discipline-category-list, .discipline-readiness-list { display: grid; gap: 12px; }
.discipline-frequency-item { padding: 10px 0; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 4px 12px; border-bottom: 1px solid rgba(104,229,245,.12); }
.discipline-frequency-item > div:first-child { display: grid; gap: 3px; }
.discipline-frequency-item strong { color: #f2fbff; font-size: 14px; }
.discipline-frequency-item span, .discipline-frequency-item small { color: #8caab5; font-size: 11px; }
.discipline-frequency-item > b { color: #f3c96f; font-size: 16px; }
.discipline-frequency-item .discipline-bar { grid-column: 1 / -1; }
.discipline-bar { height: 7px; overflow: hidden; background: rgba(127,164,175,.16); }
.discipline-bar i { height: 100%; display: block; background: linear-gradient(90deg,#4fcedd,#b487ff); }
.discipline-category-list > div { display: grid; grid-template-columns: minmax(0,1fr) 100px auto; align-items: center; gap: 10px; }
.discipline-category-list span { display: grid; gap: 3px; }
.discipline-category-list strong { color: #f2fbff; font-size: 13px; }
.discipline-category-list small { color: #8caab5; font-size: 11px; }
.discipline-category-list b { color: #f3c96f; font-size: 14px; }
.discipline-detail-wrap { max-height: 560px; }
.discipline-detail-table { min-width: 880px; }
.discipline-detail-table td { white-space: nowrap; }
.discipline-deduction { color: #ffb07e; }
.discipline-addition { color: #77e5ad; }
.discipline-readiness-list > div { padding: 13px 0; display: flex; justify-content: space-between; gap: 12px; color: #c7dce2; border-bottom: 1px solid rgba(104,229,245,.12); }
.discipline-readiness-list b { color: #77e5ad; font-size: 12px; }
.discipline-readiness-list .pending b { color: #f3c96f; }
.discipline-pie-section { margin-top: 22px; display: grid; gap: 14px; }
.discipline-pie-panel { min-width: 0; padding: 18px; overflow: hidden; }
.discipline-pie-content { display: grid; grid-template-columns: minmax(260px,360px) minmax(0,1fr); align-items: center; gap: 30px; padding: 12px 10px 4px; }
.discipline-pie-visual { width: min(280px,100%); aspect-ratio: 1; margin: 0 auto; display: grid; place-items: center; border-radius: 50%; background: var(--pie-gradient); box-shadow: 0 0 28px rgba(104,229,245,.16); }
.discipline-pie-hole { width: 52%; aspect-ratio: 1; display: grid; place-content: center; gap: 3px; text-align: center; border-radius: 50%; background: #092337; box-shadow: inset 0 0 18px rgba(104,229,245,.16), 0 0 0 1px rgba(104,229,245,.2); }
.discipline-pie-hole strong { color: #f5fdff; font-size: 30px; line-height: 1; }
.discipline-pie-hole span { color: #8eabb5; font-size: 11px; font-weight: 800; }
.discipline-pie-legend { display: grid; gap: 10px; }
.discipline-pie-legend-item { min-height: 52px; padding: 10px 12px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 12px; border: 1px solid rgba(104,229,245,.13); background: rgba(4,26,41,.42); }
.discipline-pie-legend-item > span { min-width: 0; display: flex; align-items: center; gap: 9px; }
.discipline-pie-legend-item i { width: 11px; height: 11px; flex: 0 0 11px; display: inline-block; border-radius: 50%; background: var(--pie-color); box-shadow: 0 0 8px var(--pie-color); }
.discipline-pie-legend-item strong { overflow-wrap: anywhere; color: #f2fbff; font-size: 13px; }
.discipline-pie-legend-item b { color: #f3c96f; font-size: 17px; }
.discipline-pie-legend-item small { color: #8caab5; font-size: 11px; white-space: nowrap; }
.discipline-matrix-section { margin-top: 22px; }
.discipline-matrix-heading { margin-bottom: 12px; display: flex; align-items: end; justify-content: space-between; gap: 18px; }
.discipline-matrix-heading > div { display: grid; gap: 4px; }
.discipline-matrix-heading span { color: #66ddea; font-size: 11px; font-weight: 900; }
.discipline-matrix-heading h2 { margin: 0; color: #fff; font-size: 23px; }
.discipline-matrix-heading p { margin: 0; color: #91aeb9; font-size: 13px; font-weight: 700; }
.discipline-matrix-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 14px; }
.discipline-matrix-panel { min-width: 0; padding: 18px; overflow: hidden; }
.discipline-matrix-panel.featured { grid-column: auto; }
.discipline-matrix-scroll { overflow-x: auto; overflow-y: hidden; padding-bottom: 5px; scrollbar-color: rgba(104,229,245,.45) rgba(127,164,175,.12); }
.discipline-matrix-chart { height: 342px; display: grid; grid-template-columns: 58px minmax(0,1fr); color: #d9eef3; }
.discipline-matrix-y-axis { position: relative; height: 292px; margin-top: 8px; color: #91b1bd; font-size: 11px; font-weight: 800; border-right: 1px solid rgba(104,229,245,.3); }
.discipline-matrix-y-axis span { position: absolute; right: 9px; transform: translateY(-50%); }
.discipline-matrix-y-axis span:nth-child(1) { top: 18px; }
.discipline-matrix-y-axis span:nth-child(2) { top: 142px; }
.discipline-matrix-y-axis span:nth-child(3) { bottom: 3px; transform: none; }
.discipline-matrix-y-axis b { position: absolute; left: 4px; bottom: -31px; color: #6dddea; font-size: 10px; white-space: nowrap; }
.discipline-matrix-plot { position: relative; min-width: 0; height: 342px; padding: 8px 14px 42px; }
.discipline-matrix-gridline { position: absolute; left: 0; right: 10px; height: 1px; background: rgba(137,190,201,.14); }
.discipline-matrix-gridline.top { top: 26px; }
.discipline-matrix-gridline.middle { top: 150px; border-top: 1px dashed rgba(137,190,201,.18); background: transparent; }
.discipline-matrix-gridline.baseline { top: 274px; background: rgba(104,229,245,.34); box-shadow: 0 0 8px rgba(104,229,245,.1); }
.discipline-matrix-bars { position: relative; z-index: 1; height: 292px; display: flex; align-items: stretch; gap: 8px; }
.discipline-matrix-column { min-width: 54px; flex: 1 0 54px; display: grid; grid-template-rows: 266px 26px; justify-items: center; }
.discipline-matrix-bar-area { position: relative; width: 100%; height: 248px; margin-top: 18px; display: flex; align-items: end; justify-content: center; }
.discipline-matrix-bar-area i { width: 30px; height: var(--bar-height); min-height: 2px; display: block; border: 1px solid rgba(104,229,245,.75); background: linear-gradient(180deg,rgba(104,229,245,.92),rgba(45,126,148,.52)); box-shadow: inset 0 0 14px rgba(255,255,255,.08),0 0 13px rgba(104,229,245,.18); transition: filter .18s ease,transform .18s ease; }
.discipline-matrix-bar-area span { position: absolute; left: 50%; bottom: min(calc(var(--bar-height) + 5px),calc(100% - 17px)); transform: translateX(-50%); color: #f5fdff; font-size: 12px; font-weight: 900; white-space: nowrap; text-shadow: 0 0 8px rgba(104,229,245,.35); }
.discipline-matrix-column strong { max-width: 62px; align-self: end; color: #bcd3da; font-size: 11px; line-height: 1.15; text-align: center; overflow-wrap: anywhere; }
.discipline-matrix-column:hover .discipline-matrix-bar-area i { filter: brightness(1.25); transform: translateY(-2px); }
.discipline-matrix-column:hover strong { color: #fff; }
.discipline-matrix-x-label { position: absolute; right: 14px; bottom: 0; color: #6dddea; font-size: 10px; font-weight: 800; }
.discipline-matrix-phone .discipline-matrix-bar-area i { border-color: rgba(182,137,255,.82); background: linear-gradient(180deg,rgba(182,137,255,.9),rgba(97,63,151,.5)); box-shadow: 0 0 13px rgba(182,137,255,.18); }
.discipline-matrix-attendance .discipline-matrix-bar-area i { border-color: rgba(104,229,245,.8); }
.discipline-matrix-order .discipline-matrix-bar-area i { border-color: rgba(243,201,111,.85); background: linear-gradient(180deg,rgba(243,201,111,.92),rgba(148,104,47,.5)); box-shadow: 0 0 13px rgba(243,201,111,.17); }
.discipline-matrix-violation .discipline-matrix-bar-area i { border-color: rgba(255,117,135,.86); background: linear-gradient(180deg,rgba(255,117,135,.92),rgba(151,55,75,.5)); box-shadow: 0 0 13px rgba(255,117,135,.18); }
@media (max-width: 1100px) {
    .discipline-board-kpis, .discipline-member-kpis { grid-template-columns: repeat(3,minmax(150px,1fr)); }
    .discipline-board-grid-main, .discipline-board-grid-detail, .discipline-member-grid { grid-template-columns: 1fr; }
    .discipline-matrix-grid { grid-template-columns: 1fr; }
    .discipline-matrix-panel.featured { grid-column: auto; }
}
@media (max-width: 680px) {
    .discipline-board-toolbar, .discipline-board-heading { align-items: stretch; flex-direction: column; }
    .discipline-board-filter { align-items: stretch; flex-direction: column; }
    .discipline-board-filter button { width: 100%; }
    .discipline-board-period { justify-items: start; }
    .discipline-board-tabs a { flex: 1; padding: 11px 8px; text-align: center; }
    .discipline-board-kpis, .discipline-member-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .discipline-kpi { min-height: 100px; padding: 13px; }
    .discipline-kpi strong { font-size: 25px; }
    .discipline-board-panel { padding: 13px 10px; }
    .discipline-panel-title { align-items: start; flex-direction: column; }
    .discipline-matrix-heading { align-items: start; flex-direction: column; }
    .discipline-pie-panel { padding: 14px 10px; }
    .discipline-pie-content { grid-template-columns: 1fr; gap: 18px; }
    .discipline-pie-visual { width: min(250px,100%); }
    .discipline-pie-legend-item { grid-template-columns: minmax(0,1fr) auto; }
    .discipline-pie-legend-item small { grid-column: 1 / -1; margin-left: 20px; }
    .discipline-matrix-panel { padding: 14px 10px; }
}

/* ===== Attendance roster ===== */
.attendance-main { max-width: 1540px; min-height: calc(100vh - 74px); }
.attendance-heading { margin-bottom: 18px; padding-bottom: 17px; display: flex; align-items: end; justify-content: space-between; gap: 22px; border-bottom: 1px solid rgba(104,229,245,.2); }
.attendance-heading > div:first-child { min-width: 0; }
.attendance-heading > div:first-child > span, .attendance-roster-heading > div > span, .attendance-section-title span, .attendance-duty-copy > span { color: #68e5f5; font-size: 11px; font-weight: 900; }
.attendance-heading h1 { margin: 5px 0 6px; color: #f4fdff; font-size: 29px; font-weight: 900; letter-spacing: 0; }
.attendance-heading p, .attendance-roster-heading p { margin: 0; color: #91adb8; font-size: 13px; line-height: 1.6; }
.attendance-heading-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.attendance-toolbar { margin-bottom: 14px; padding: 14px 16px; display: flex; align-items: end; gap: 11px; border: 1px solid rgba(104,229,245,.16); background: rgba(5,23,38,.75); }
.attendance-toolbar label { min-width: 170px; display: grid; gap: 6px; color: #9dbac4; font-size: 12px; font-weight: 800; }
.attendance-toolbar input, .attendance-toolbar select, .attendance-form input, .attendance-form textarea, .attendance-cancel input, .attendance-roster-heading input { min-height: 43px; padding: 9px 11px; color: #effcff; font: inherit; border: 1px solid rgba(104,229,245,.3); background: rgba(3,20,35,.94); outline: none; box-sizing: border-box; }
.attendance-toolbar input:focus, .attendance-toolbar select:focus, .attendance-form input:focus, .attendance-form textarea:focus, .attendance-cancel input:focus, .attendance-roster-heading input:focus { border-color: #68e5f5; box-shadow: 0 0 0 2px rgba(104,229,245,.1); }
.attendance-shift-list, .attendance-my-list { display: grid; border: 1px solid rgba(104,229,245,.2); background: rgba(4,20,34,.72); }
.attendance-shift-row { min-height: 96px; padding: 13px 17px; display: grid; grid-template-columns: 88px 48px minmax(0,1fr) 100px 86px; align-items: center; gap: 15px; color: inherit; text-decoration: none; border-left: 3px solid #68e5f5; border-bottom: 1px solid rgba(104,229,245,.12); background: rgba(5,25,40,.72); transition: background .18s ease, border-color .18s ease; }
.attendance-shift-row:hover { background: rgba(24,65,78,.62); }
.attendance-shift-row.status-draft { border-left-color: #f3c96f; }
.attendance-shift-row.status-cancelled { opacity: .65; border-left-color: #7d929a; }
.attendance-shift-row time { display: grid; gap: 3px; }
.attendance-shift-row time strong { color: #f5fdff; font-size: 18px; }
.attendance-shift-row time span, .attendance-row-copy span, .attendance-row-meta span { color: #88a6b2; font-size: 11px; }
.attendance-period { width: 42px; height: 42px; display: grid; place-items: center; color: #071923; font-size: 18px; font-weight: 900; background: #68e5f5; }
.attendance-period.period-noon { background: #f3c96f; }
.attendance-period.period-evening { color: #fff; background: #9c83d7; }
.attendance-row-copy { min-width: 0; display: grid; gap: 7px; }
.attendance-row-copy strong { color: #f0fbff; font-size: 16px; overflow-wrap: anywhere; }
.attendance-row-meta { display: grid; justify-items: center; gap: 4px; }
.attendance-row-meta strong { color: #78e4ae; font-size: 23px; }
.attendance-shift-row em { color: #8ee8f2; font-size: 12px; font-style: normal; font-weight: 900; text-align: right; }
.attendance-shift-row.status-draft em { color: #f3c96f; }
.attendance-shift-row.status-cancelled em { color: #9cadb4; }
.attendance-empty { min-height: 190px; padding: 30px; display: grid; place-content: center; justify-items: center; gap: 8px; text-align: center; }
.attendance-empty strong { color: #eefcff; font-size: 18px; }
.attendance-empty p { margin: 0; color: #88a6b2; font-size: 13px; }
.attendance-form { display: grid; gap: 16px; }
.attendance-form-fields { padding: 18px; display: grid; grid-template-columns: repeat(4,minmax(150px,1fr)); gap: 13px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.78); }
.attendance-form-fields > label { min-width: 0; display: grid; align-content: start; gap: 7px; }
.attendance-form-fields > label > span, .attendance-form-fields legend { color: #a8c4ce; font-size: 12px; font-weight: 900; }
.attendance-form-fields label.wide { grid-column: span 2; }
.attendance-form-fields textarea { width: 100%; min-height: 104px; resize: vertical; line-height: 1.65; }
.attendance-form-fields fieldset { min-width: 0; padding: 0; border: 0; }
.attendance-form-fields legend { margin-bottom: 7px; }
.attendance-form-fields legend small { margin-left: 7px; color: #68e5f5; font-size: 11px; font-weight: 800; }
.attendance-period-options { height: 43px; display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.attendance-period-options label { position: relative; }
.attendance-period-options input { position: absolute; opacity: 0; pointer-events: none; }
.attendance-period-options span { height: 43px; display: grid; place-items: center; color: #9ebbc5; font-weight: 900; border: 1px solid rgba(104,229,245,.24); background: rgba(3,20,35,.94); cursor: pointer; }
.attendance-period-options input:checked + span { color: #071923; border-color: #68e5f5; background: #68e5f5; }
.attendance-roster-section, .attendance-members-section, .attendance-actions-log { border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.attendance-roster-heading, .attendance-section-title { min-height: 82px; padding: 15px 17px; display: flex; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid rgba(104,229,245,.16); }
.attendance-roster-heading h2, .attendance-section-title h2 { margin: 4px 0; color: #f4fdff; font-size: 21px; letter-spacing: 0; }
.attendance-roster-heading > div:last-child { display: flex; align-items: center; gap: 13px; }
.attendance-roster-heading input[type="search"] { width: 250px; }
.attendance-check-all { display: flex; align-items: center; gap: 7px; color: #b4cdd5; font-size: 12px; font-weight: 800; }
.attendance-check-all input, .attendance-roster-table input[type="checkbox"] { width: 19px; height: 19px; min-height: 0; padding: 0; accent-color: #68e5f5; }
.attendance-roster-table-wrap { max-height: 520px; overflow: auto; }
.attendance-roster-table { width: 100%; border-collapse: collapse; }
.attendance-roster-table th, .attendance-roster-table td { padding: 11px 13px; color: #c9dce3; font-size: 13px; text-align: left; border-bottom: 1px solid rgba(104,229,245,.12); }
.attendance-roster-table th { position: sticky; top: 0; z-index: 1; color: #a6d9e0; font-size: 11px; font-weight: 900; background: #10364c; }
.attendance-roster-table tbody tr:hover { background: rgba(34,92,105,.27); }
.attendance-roster-table td strong { color: #f2fbff; }
.attendance-account { font-size: 11px; font-weight: 900; }
.attendance-account.good { color: #77e5ad; }
.attendance-account.warning { color: #f3c96f; }
.attendance-selected-count { min-height: 50px; padding: 12px 17px; display: flex; align-items: center; justify-content: flex-end; gap: 7px; color: #9eb8c2; font-size: 13px; }
.attendance-selected-count strong { color: #77e5ad; font-size: 22px; }
.attendance-form-actions { position: sticky; bottom: 12px; z-index: 5; padding: 12px; display: flex; justify-content: flex-end; gap: 10px; border: 1px solid rgba(104,229,245,.2); background: rgba(4,20,35,.95); }
.attendance-detail-strip { margin-bottom: 14px; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; border: 1px solid rgba(104,229,245,.2); background: rgba(104,229,245,.14); }
.attendance-detail-strip > div { min-height: 88px; padding: 15px; display: grid; align-content: center; gap: 7px; background: #082238; }
.attendance-detail-strip span { color: #8faab5; font-size: 11px; font-weight: 800; }
.attendance-detail-strip strong { color: #f1fbff; font-size: 16px; }
.attendance-detail-strip .status-published { color: #77e5ad; }
.attendance-detail-strip .status-draft { color: #f3c96f; }
.attendance-detail-strip .status-cancelled { color: #9cadb4; }
.attendance-detail-body { margin-bottom: 14px; padding: 18px; display: grid; grid-template-columns: minmax(0,1fr) 330px; gap: 18px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.attendance-duty-copy h2 { margin: 7px 0 17px; color: #f4fdff; font-size: 22px; line-height: 1.5; }
.attendance-duty-copy dl { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.attendance-duty-copy dl div { padding-top: 10px; border-top: 1px solid rgba(104,229,245,.15); }
.attendance-duty-copy dt { color: #86a4af; font-size: 11px; }
.attendance-duty-copy dd { margin: 6px 0 0; color: #d7e8ed; font-size: 13px; line-height: 1.6; }
.attendance-command, .attendance-cancel { padding: 15px; display: grid; align-content: center; gap: 9px; border-left: 3px solid #f3c96f; background: rgba(91,65,20,.18); }
.attendance-command strong { color: #ffe0a0; }
.attendance-command span { color: #aebcc1; font-size: 12px; line-height: 1.5; }
.attendance-cancel { grid-column: 2; border-left-color: #ff7587; background: rgba(105,35,53,.15); }
.attendance-members-section { margin-bottom: 14px; }
.attendance-section-title > strong { color: #77e5ad; font-size: 20px; }
.attendance-actions-log { padding-bottom: 7px; }
.attendance-actions-log > div:not(.attendance-section-title) { min-height: 58px; margin: 0 17px; display: grid; grid-template-columns: minmax(0,1fr) 180px 150px; align-items: center; gap: 14px; border-bottom: 1px solid rgba(104,229,245,.11); }
.attendance-actions-log > div strong { color: #e9f8fc; font-size: 13px; }
.attendance-actions-log > div span, .attendance-actions-log > div time { color: #8eaab5; font-size: 11px; }
.attendance-tabs { margin-bottom: 14px; display: flex; gap: 8px; }
.attendance-tabs a { min-width: 110px; min-height: 42px; padding: 0 16px; display: grid; place-items: center; color: #9db8c2; font-size: 13px; font-weight: 900; border: 1px solid rgba(104,229,245,.22); background: rgba(5,23,38,.75); }
.attendance-tabs a.active { color: #071923; border-color: #68e5f5; background: #68e5f5; }
.attendance-my-item { min-height: 96px; padding: 13px 17px; display: grid; grid-template-columns: 70px 48px minmax(0,1fr) 90px; align-items: center; gap: 16px; color: inherit; border-left: 3px solid #f3c96f; border-bottom: 1px solid rgba(104,229,245,.12); background: rgba(5,25,40,.72); }
.attendance-my-item:hover { background: rgba(24,65,78,.62); }
.attendance-my-item time { display: grid; gap: 3px; }
.attendance-my-item time strong { color: #fff; font-size: 25px; }
.attendance-my-item time span { color: #88a6b2; font-size: 10px; }
.attendance-my-item > div { min-width: 0; display: grid; gap: 7px; }
.attendance-my-item > div strong { color: #effcff; font-size: 15px; overflow-wrap: anywhere; }
.attendance-my-item > div p { margin: 0; color: #91adb8; font-size: 12px; }
.attendance-my-item em { color: #77e5ad; font-size: 11px; font-style: normal; font-weight: 900; text-align: right; }
.attendance-detail-strip .status-verified { color: #68e5f5; }
.attendance-verification-metrics { margin-bottom: 14px; display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.attendance-verification-metrics > div { min-height: 112px; padding: 17px 19px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-content: center; gap: 5px 16px; border: 1px solid rgba(104,229,245,.2); border-left: 3px solid #68e5f5; background: linear-gradient(135deg,rgba(8,39,59,.94),rgba(5,24,39,.8)); }
.attendance-verification-metrics span { color: #a8c4ce; font-size: 12px; font-weight: 900; }
.attendance-verification-metrics strong { grid-row: span 2; color: #68e5f5; font-size: 34px; line-height: 1; }
.attendance-verification-metrics p { margin: 0; color: #78949f; font-size: 11px; }
.attendance-verification-metrics > div:nth-child(2) { border-left-color: #77e5ad; }
.attendance-verification-metrics > div:nth-child(2) strong { color: #77e5ad; }
.attendance-verification-metrics > div:nth-child(3) { border-left-color: #f3c96f; }
.attendance-verification-metrics > div:nth-child(3) strong { color: #f3c96f; }
.attendance-verification-list { display: grid; border: 1px solid rgba(104,229,245,.2); background: rgba(4,20,34,.72); }
.attendance-verification-row { min-height: 94px; padding: 13px 17px; display: grid; grid-template-columns: 95px minmax(0,1fr) 112px 150px; align-items: center; gap: 16px; color: inherit; text-decoration: none; border-left: 3px solid #ff9f6e; border-bottom: 1px solid rgba(104,229,245,.12); background: rgba(5,25,40,.72); transition: background .18s ease,border-color .18s ease; }
.attendance-verification-row:hover { background: rgba(24,65,78,.62); }
.attendance-verification-row.verified { border-left-color: #77e5ad; }
.attendance-verification-row.upcoming { border-left-color: #f3c96f; }
.attendance-verification-row time { display: grid; gap: 4px; }
.attendance-verification-row time strong { color: #f5fdff; font-size: 18px; }
.attendance-verification-row time span, .attendance-verification-row small { color: #86a3ae; font-size: 11px; }
.attendance-verification-row > div { min-width: 0; display: grid; gap: 7px; }
.attendance-verification-row > div strong { color: #f0fbff; font-size: 15px; overflow-wrap: anywhere; }
.attendance-verification-row > div p { margin: 0; color: #8faab5; font-size: 12px; }
.attendance-verification-row small { text-align: right; }
.attendance-verification-result, .attendance-result { width: max-content; padding: 5px 9px; color: #cde6ed; font-size: 11px; font-weight: 900; border: 1px solid rgba(142,173,184,.3); background: rgba(105,131,140,.12); }
.attendance-verification-result.pending { color: #ffbd94; border-color: rgba(255,159,110,.42); background: rgba(128,57,30,.18); }
.result-present, .result-strict { color: #77e5ad !important; border-color: rgba(119,229,173,.42) !important; background: rgba(27,108,73,.2) !important; }
.result-late, .result-leave, .result-replacement { color: #f3c96f !important; border-color: rgba(243,201,111,.42) !important; background: rgba(116,83,25,.2) !important; }
.result-absent, .result-not_strict { color: #ff8b9a !important; border-color: rgba(255,117,135,.44) !important; background: rgba(123,36,55,.2) !important; }
.attendance-verification-brief { margin-bottom: 14px; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; border: 1px solid rgba(104,229,245,.2); background: rgba(104,229,245,.14); }
.attendance-verification-brief > div { min-height: 84px; padding: 14px 16px; display: grid; align-content: center; gap: 7px; background: #082238; }
.attendance-verification-brief span { color: #8faab5; font-size: 11px; font-weight: 800; }
.attendance-verification-brief strong { color: #f1fbff; font-size: 15px; }
.attendance-verification-notice { margin-bottom: 14px; padding: 14px 17px; display: grid; gap: 5px; border: 1px solid rgba(243,201,111,.35); border-left: 3px solid #f3c96f; background: rgba(91,65,20,.18); }
.attendance-verification-notice strong { color: #ffe0a0; font-size: 14px; }
.attendance-verification-notice span { color: #aebcc1; font-size: 12px; }
.attendance-verification-notice.complete { border-color: rgba(119,229,173,.3); border-left-color: #77e5ad; background: rgba(27,108,73,.14); }
.attendance-verification-notice.complete strong { color: #9ff0c5; }
.attendance-verification-form { display: grid; gap: 14px; }
.attendance-person-check-title { gap: 16px; }
.attendance-bulk-results { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.attendance-bulk-results > span, .attendance-bulk-results small { color: #8faab5; font-size: 11px; font-weight: 800; }
.attendance-bulk-results button { min-height: 34px; padding: 7px 11px; color: #d9edf2; font: inherit; font-size: 11px; font-weight: 900; border: 1px solid rgba(104,229,245,.32); background: rgba(5,30,46,.9); cursor: pointer; }
.attendance-bulk-results button:hover, .attendance-bulk-results button:focus-visible { color: #071923; border-color: #68e5f5; background: #68e5f5; outline: none; }
.attendance-bulk-results button.active { color: #071923; border-color: #77e5ad; background: #77e5ad; }
.attendance-bulk-results small { min-width: 92px; text-align: right; }
.attendance-verification-table-wrap { overflow-x: auto; }
.attendance-verification-table { width: 100%; min-width: 780px; border-collapse: collapse; }
.attendance-verification-table th, .attendance-verification-table td { padding: 12px 14px; color: #c9dce3; font-size: 13px; text-align: left; border-bottom: 1px solid rgba(104,229,245,.12); vertical-align: middle; }
.attendance-verification-table th { color: #a6d9e0; font-size: 11px; font-weight: 900; background: #10364c; }
.attendance-verification-table tbody tr:hover { background: rgba(34,92,105,.27); }
.attendance-verification-table td { min-width: 150px; }
.attendance-verification-table td:first-child, .attendance-verification-table td:nth-child(2) { min-width: 120px; }
.attendance-verification-table td strong, .attendance-verification-table td span { display: block; }
.attendance-verification-table td strong { color: #f2fbff; }
.attendance-verification-table td span { margin-top: 4px; color: #829da8; font-size: 11px; }
.attendance-verification-table select, .attendance-verification-table input, .attendance-overall-check textarea { width: 100%; min-height: 42px; padding: 9px 11px; color: #effcff; font: inherit; border: 1px solid rgba(104,229,245,.3); background: rgba(3,20,35,.94); outline: none; box-sizing: border-box; }
.attendance-verification-table select:focus, .attendance-verification-table input:focus, .attendance-overall-check textarea:focus { border-color: #68e5f5; box-shadow: 0 0 0 2px rgba(104,229,245,.1); }
.attendance-overall-check { padding: 18px; display: grid; grid-template-columns: minmax(240px,.8fr) minmax(280px,1fr) minmax(300px,1.25fr); align-items: start; gap: 20px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.attendance-overall-check > div:first-child > span { color: #68e5f5; font-size: 11px; font-weight: 900; }
.attendance-overall-check h2 { margin: 5px 0 7px; color: #f4fdff; font-size: 20px; }
.attendance-overall-check p { margin: 0; color: #8faab5; font-size: 12px; line-height: 1.65; }
.attendance-overall-options { display: grid; grid-template-columns: repeat(2,1fr); gap: 8px; }
.attendance-overall-options label { position: relative; }
.attendance-overall-options input { position: absolute; opacity: 0; pointer-events: none; }
.attendance-overall-options span { min-height: 48px; display: grid; place-items: center; color: #a7c1cb; font-size: 13px; font-weight: 900; border: 1px solid rgba(104,229,245,.24); background: rgba(3,20,35,.94); cursor: pointer; }
.attendance-overall-options input:checked + span { color: #071923; border-color: #68e5f5; background: #68e5f5; }
.attendance-overall-options input:disabled + span { cursor: default; opacity: .78; }
.attendance-issue { display: grid; gap: 7px; color: #a8c4ce; font-size: 12px; font-weight: 900; }
.attendance-issue textarea { min-height: 86px; resize: vertical; line-height: 1.55; }
.attendance-issue p { min-height: 48px; padding: 12px; color: #d7e8ed; border-left: 2px solid rgba(104,229,245,.35); background: rgba(3,20,35,.65); }
.attendance-public-verification { margin-bottom: 14px; display: grid; grid-template-columns: 1.25fr 1fr; gap: 1px; border: 1px solid rgba(104,229,245,.2); background: rgba(104,229,245,.14); }
.attendance-public-verification > div { min-height: 106px; padding: 16px 18px; display: grid; align-content: center; justify-items: start; gap: 8px; background: #082238; }
.attendance-public-verification > div > span { color: #8faab5; font-size: 11px; font-weight: 900; }
.attendance-public-verification > div > strong { width: max-content; padding: 5px 9px; font-size: 13px; border: 1px solid rgba(104,229,245,.3); }
.attendance-public-verification > div:nth-child(2) > strong { padding: 0; color: #e9f8fc; border: 0; }
.attendance-public-verification p { margin: 0; color: #8eaab5; font-size: 12px; }
.task-metrics { grid-template-columns: repeat(6,1fr); }
@media (max-width: 1100px) {
    .attendance-heading { align-items: flex-start; flex-direction: column; }
    .attendance-heading-actions { justify-content: flex-start; }
    .attendance-form-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .attendance-detail-body { grid-template-columns: 1fr; }
    .attendance-cancel { grid-column: auto; }
    .attendance-overall-check { grid-template-columns: 1fr 1fr; }
    .attendance-issue { grid-column: 1 / -1; }
    .task-metrics { grid-template-columns: repeat(3,1fr); }
}
@media (max-width: 700px) {
    .attendance-toolbar, .attendance-roster-heading, .attendance-heading-actions { align-items: stretch; flex-direction: column; }
    .attendance-toolbar label, .attendance-toolbar button, .attendance-heading-actions a { width: 100%; }
    .attendance-shift-row { grid-template-columns: 64px 42px minmax(0,1fr); gap: 10px; }
    .attendance-row-meta, .attendance-shift-row em { grid-column: 3; justify-items: start; text-align: left; }
    .attendance-form-fields { grid-template-columns: 1fr; padding: 14px 12px; }
    .attendance-form-fields label.wide { grid-column: auto; }
    .attendance-roster-heading > div:last-child { width: 100%; align-items: stretch; flex-direction: column; }
    .attendance-roster-heading input[type="search"] { width: 100%; }
    .attendance-detail-strip { grid-template-columns: repeat(2,1fr); }
    .attendance-duty-copy dl { grid-template-columns: 1fr; }
    .attendance-actions-log > div:not(.attendance-section-title) { grid-template-columns: 1fr; gap: 5px; padding: 11px 0; }
    .attendance-my-item { grid-template-columns: 55px 42px minmax(0,1fr); gap: 10px; }
    .attendance-my-item em { grid-column: 3; text-align: left; }
    .attendance-form-actions { display: grid; grid-template-columns: 1fr; }
    .attendance-verification-metrics { grid-template-columns: 1fr; }
    .attendance-verification-row { grid-template-columns: 72px minmax(0,1fr); gap: 10px; }
    .attendance-verification-row .attendance-verification-result, .attendance-verification-row small { grid-column: 2; text-align: left; }
    .attendance-verification-brief { grid-template-columns: repeat(2,1fr); }
    .attendance-person-check-title { align-items: flex-start; flex-wrap: wrap; }
    .attendance-bulk-results { order: 3; width: 100%; margin-left: 0; justify-content: flex-start; }
    .attendance-bulk-results small { margin-left: auto; }
    .attendance-overall-check { grid-template-columns: 1fr; padding: 14px 12px; }
    .attendance-issue { grid-column: auto; }
    .attendance-public-verification { grid-template-columns: 1fr; }
    .task-metrics { grid-template-columns: repeat(2,1fr); }
}

/* ===== Attendance department dashboard ===== */
.attendance-dashboard-main { max-width: 1640px; }
.attendance-dashboard-main .attendance-empty { min-height: 130px; padding: 24px; border: 1px solid rgba(104,229,245,.16); margin-top: 0; }
.attendance-dashboard-heading { margin-bottom: 10px; padding-bottom: 13px; }
.attendance-dashboard-period { margin-bottom: 14px; display: flex; align-items: center; gap: 12px; }
.attendance-dashboard-period a { width: 38px; height: 38px; display: grid; place-items: center; color: #aac4ce; font-size: 21px; font-weight: 900; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.75); text-decoration: none; }
.attendance-dashboard-period a:hover { color: #68e5f5; border-color: #68e5f5; }
.attendance-dashboard-period form { display: flex; align-items: end; gap: 8px; margin: 0; }
.attendance-dashboard-period label { display: grid; gap: 5px; color: #9dbac4; font-size: 12px; font-weight: 800; }
.attendance-dashboard-period input[type="month"] { min-height: 38px; padding: 7px 10px; color: #effcff; font: inherit; border: 1px solid rgba(104,229,245,.3); background: rgba(3,20,35,.94); outline: none; }
.attendance-dashboard-period button { min-height: 38px; padding: 0 16px; }
.attendance-dashboard-kpis { margin-bottom: 14px; display: grid; grid-template-columns: repeat(6,1fr); gap: 10px; }
.attendance-dashboard-kpis > article { min-height: 120px; padding: 16px 18px; display: grid; align-content: center; gap: 6px; border: 1px solid rgba(104,229,245,.2); border-left: 3px solid #68e5f5; background: linear-gradient(135deg,rgba(8,39,59,.94),rgba(5,24,39,.8)); }
.attendance-dashboard-kpis > article:nth-child(2) { border-left-color: #77e5ad; }
.attendance-dashboard-kpis > article:nth-child(3) { border-left-color: #9c83d7; }
.attendance-dashboard-kpis > article:nth-child(4) { border-left-color: #f3c96f; }
.attendance-dashboard-kpis > article:nth-child(5) { border-left-color: #68e5f5; }
.attendance-dashboard-kpis > article.warning { border-left-color: #ff8b9a; }
.attendance-dashboard-kpis span { color: #a8c4ce; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.attendance-dashboard-kpis strong { color: #68e5f5; font-size: 32px; line-height: 1; }
.attendance-dashboard-kpis strong small { font-size: 18px; color: #7eaab4; font-weight: 400; }
.attendance-dashboard-kpis p { margin: 0; color: #78949f; font-size: 11px; }
.attendance-dashboard-kpis .warning strong { color: #ff8b9a; }
.attendance-dashboard-summary { margin-bottom: 14px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.attendance-dashboard-panel { border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.attendance-dashboard-panel-title { min-height: 78px; padding: 14px 17px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid rgba(104,229,245,.14); }
.attendance-dashboard-panel-title span { color: #68e5f5; font-size: 11px; font-weight: 900; }
.attendance-dashboard-panel-title h2 { margin: 4px 0; color: #f4fdff; font-size: 20px; }
.attendance-dashboard-panel-title > strong { color: #77e5ad; font-size: 18px; }
.attendance-dashboard-panel-title p { margin: 0; color: #8faab5; font-size: 12px; }
.attendance-dashboard-bars { padding: 16px 18px; display: grid; gap: 12px; }
.attendance-dashboard-bar { display: grid; gap: 5px; }
.attendance-dashboard-bar > div { display: flex; justify-content: space-between; gap: 8px; }
.attendance-dashboard-bar strong { color: #e9f6fb; font-size: 13px; }
.attendance-dashboard-bar span { color: #89a6b1; font-size: 11px; }
.attendance-dashboard-bar i { height: 20px; display: block; background: rgba(104,229,245,.12); border-radius: 2px; overflow: hidden; }
.attendance-dashboard-bar i b { display: block; height: 100%; width: var(--bar-width,0%); background: #68e5f5; border-radius: 2px; transition: width .55s ease; }
.attendance-dashboard-bar.result-late i b { background: #f3c96f; }
.attendance-dashboard-bar.result-absent i b { background: #ff8b9a; }
.attendance-dashboard-bar.result-leave i b { background: #f3c96f; opacity: .6; }
.attendance-dashboard-bar.result-replacement i b { background: #9c83d7; }
.period-bars .period-morning i b { background: #68e5f5; }
.period-bars .period-noon i b { background: #f3c96f; }
.period-bars .period-evening i b { background: #9c83d7; }
.attendance-dashboard-verification-split { padding: 14px 17px; display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; border-top: 1px solid rgba(104,229,245,.1); }
.attendance-dashboard-verification-split div { display: grid; gap: 5px; text-align: center; }
.attendance-dashboard-verification-split span { color: #8faab5; font-size: 11px; font-weight: 800; }
.attendance-dashboard-verification-split strong { color: #f4fdff; font-size: 28px; }
.attendance-dashboard-table-wrap { max-height: 520px; overflow: auto; }
.attendance-dashboard-table { width: 100%; min-width: 820px; border-collapse: collapse; }
.attendance-dashboard-table th, .attendance-dashboard-table td { padding: 10px 12px; color: #c9dce3; font-size: 12px; text-align: center; border-bottom: 1px solid rgba(104,229,245,.1); }
.attendance-dashboard-table th { position: sticky; top: 0; z-index: 1; color: #a6d9e0; font-size: 10px; font-weight: 900; background: #10364c; }
.attendance-dashboard-table tbody tr:hover { background: rgba(34,92,105,.27); }
.attendance-dashboard-table td strong { color: #e9f6fb; }
.attendance-dashboard-table td.good { color: #77e5ad; font-weight: 700; }
.attendance-dashboard-table td.warn { color: #f3c96f; font-weight: 700; }
.attendance-dashboard-table td.bad { color: #ff8b9a; font-weight: 700; }
.attendance-rate { display: inline-flex; align-items: center; gap: 7px; min-width: 90px; }
.attendance-rate i { width: 60px; height: 14px; display: inline-block; background: rgba(104,229,245,.12); border-radius: 2px; overflow: hidden; vertical-align: middle; }
.attendance-rate i b { display: inline-block; height: 100%; width: var(--bar-width,0%); background: #77e5ad; border-radius: 2px; }
.attendance-rate em { font-style: normal; color: #b2cdd5; font-size: 11px; font-weight: 700; }
.attendance-member-stat-table td { font-size: 11px; }
.attendance-member-stat-table td:first-child { text-align: left; }
.attendance-member-stat-table td:first-child small { display: block; margin-top: 2px; color: #7d99a4; font-size: 10px; }
.attendance-dashboard-shift-list { display: grid; }
.attendance-dashboard-shift-list a { min-height: 88px; padding: 12px 16px; display: grid; grid-template-columns: 78px minmax(0,1fr) 100px 120px; align-items: center; gap: 14px; color: inherit; text-decoration: none; border-bottom: 1px solid rgba(104,229,245,.1); background: rgba(5,25,40,.72); transition: background .18s ease; }
.attendance-dashboard-shift-list a:hover { background: rgba(24,65,78,.62); }
.attendance-dashboard-shift-list a:last-child { border-bottom: 0; }
.attendance-dashboard-shift-list time { display: grid; gap: 3px; }
.attendance-dashboard-shift-list time strong { color: #f5fdff; font-size: 17px; }
.attendance-dashboard-shift-list time span { color: #88a6b2; font-size: 10px; }
.attendance-dashboard-shift-list > a > div { min-width: 0; display: grid; gap: 6px; }
.attendance-dashboard-shift-list > a > div strong { color: #f0fbff; font-size: 14px; overflow-wrap: anywhere; }
.attendance-dashboard-shift-list > a > div p, .attendance-dashboard-shift-list > a > div small { margin: 0; color: #8faab5; font-size: 11px; }
.attendance-shift-people { display: grid; gap: 3px; text-align: right; }
.attendance-shift-people b { color: #77e5ad; font-size: 14px; }
.attendance-shift-people em { color: #ff8b9a; font-size: 11px; font-style: normal; font-weight: 700; }
.attendance-dashboard-note { margin-top: 10px; color: #6a8792; font-size: 11px; line-height: 1.7; text-align: right; }
@media (max-width: 1100px) {
.attendance-dashboard-kpis { grid-template-columns: repeat(3,1fr); }
.attendance-dashboard-summary { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
.attendance-dashboard-kpis { grid-template-columns: repeat(2,1fr); }
.attendance-dashboard-kpis > article { min-height: 100px; }
.attendance-dashboard-kpis strong { font-size: 26px; }
.attendance-dashboard-summary { grid-template-columns: 1fr; }
.attendance-dashboard-verification-split { grid-template-columns: repeat(2,1fr); }
.attendance-dashboard-shift-list a { grid-template-columns: 60px minmax(0,1fr); gap: 10px; }
.attendance-dashboard-shift-list a .attendance-verification-result { grid-column: 2; width: 100%; text-align: center; }
.attendance-dashboard-shift-list a .attendance-shift-people { grid-column: 1 / -1; display: flex; gap: 12px; text-align: left; }
}

/* ===== 赛博脉冲 CYBER PULSE：品红×青霓虹最终覆写层 ===== */
@keyframes cyber-title-breathe {
    0%, 100% { filter: drop-shadow(0 0 8px rgba(255,61,240,.22)); opacity: .92; }
    50% { filter: drop-shadow(0 0 18px rgba(255,61,240,.58)); opacity: 1; }
}

/* 背景：暗紫星云 + 双色粒子漂移网格 */
body, body.feedback-page, body.dashboard-page {
    background:
        radial-gradient(circle at 14% 21%, rgba(255,61,240,.8) 0 1px, transparent 2px),
        radial-gradient(circle at 67% 18%, rgba(0,240,255,.72) 0 1px, transparent 2px),
        radial-gradient(circle at 83% 71%, rgba(255,61,240,.7) 0 1px, transparent 2px),
        radial-gradient(circle at 38% 84%, rgba(139,92,255,.55) 0 1px, transparent 2px),
        linear-gradient(rgba(255,61,240,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,240,255,.032) 1px, transparent 1px),
        radial-gradient(circle at 88% 10%, rgba(255,61,240,.14), transparent 36%),
        radial-gradient(circle at 4% 98%, rgba(0,240,255,.08), transparent 32%),
        linear-gradient(135deg, #0a0518, #160a2e 52%, #1d0b40) !important;
    background-size: 240px 180px, 310px 250px, 280px 220px, 360px 300px, 40px 40px, 40px 40px, auto, auto, auto !important;
    animation: clarity-particle-drift 26s linear infinite;
}
body::before {
    background-image:
        linear-gradient(rgba(255,61,240,.028) 1px, transparent 1px),
        linear-gradient(90deg, rgba(0,240,255,.026) 1px, transparent 1px),
        linear-gradient(135deg, transparent 0 49.7%, rgba(255,61,240,.055) 50%, transparent 50.3%) !important;
    background-size: 40px 40px, 40px 40px, 170px 170px !important;
}
body::after {
    opacity: .14;
    border-color: rgba(255,61,240,.5);
    background:
        repeating-radial-gradient(circle at center, transparent 0 45px, rgba(255,61,240,.4) 46px 47px, transparent 48px 72px),
        linear-gradient(90deg, transparent 49.8%, rgba(0,240,255,.55) 50%, transparent 50.2%),
        linear-gradient(0deg, transparent 49.8%, rgba(0,240,255,.55) 50%, transparent 50.2%);
    box-shadow: 0 0 0 22px rgba(255,61,240,.02), 0 0 0 46px rgba(255,61,240,.015);
}

/* 面板：紫黑底 + 品红→紫→青流动光谱边框 */
.feedback-panel, .card, .stat-card, .table-wrap, .filter-bar, .tech-panel,
.work-department-panel, .committee-role-entry, .discipline-data-board {
    outline-color: rgba(255,61,240,.2) !important;
    background-image:
        linear-gradient(rgba(22,12,48,.94), rgba(13,7,32,.94)),
        linear-gradient(110deg, #ff3df0 0%, #8b5cff 30%, #00f0ff 56%, #ff3df0 80%, #a94dff 100%) !important;
}
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
.filter-bar::before, .tech-panel::before, .work-department-panel::before,
.committee-role-entry::before {
    background: linear-gradient(90deg,
        transparent 0 16%,
        rgba(255,61,240,.25) 20%,
        #ffffff 27%,
        #00f0ff 33%,
        rgba(139,92,255,.85) 43%,
        rgba(255,61,240,.2) 52%,
        transparent 66%) !important;
    box-shadow: 0 0 12px rgba(255,61,240,.65), 0 0 26px rgba(255,61,240,.22) !important;
}
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after {
    background:
        linear-gradient(45deg, transparent 0 49%, rgba(0,240,255,.38) 50% 53%, transparent 54%) left bottom / 26px 26px no-repeat,
        linear-gradient(225deg, transparent 0 49%, rgba(0,240,255,.38) 50% 53%, transparent 54%) right bottom / 26px 26px no-repeat,
        repeating-linear-gradient(135deg, rgba(0,240,255,.18) 0 2px, transparent 2px 7px) right 13px top 16px / 46px 22px no-repeat,
        linear-gradient(90deg, transparent, rgba(255,61,240,.46), transparent) center bottom / 150px 1px no-repeat !important;
}
.feedback-panel:hover, .card:hover, .stat-card:hover { border-color: rgba(255,61,240,.5) !important; }

/* 标题：白→粉渐变呼吸 */
.page-title h1, .feedback-header h1, .topbar-title,
.committee-work-heading h1, .committee-role-heading h1, .work-report-heading h1,
.discipline-heading h1 {
    background: linear-gradient(180deg, #ffffff 0%, #ffd9fb 42%, #ff3df0 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    animation: cyber-title-breathe 4.8s ease-in-out infinite !important;
}
.stat-card .stat-number, .overview-metrics strong, .discipline-metric strong, .work-report-metrics strong {
    text-shadow: 0 0 8px rgba(255,61,240,.5), 0 0 22px rgba(255,61,240,.3) !important;
}

/* 侧边导航：紫黑底 + 品红激活态 */
.sidebar, .feedback-page .sidebar {
    background: rgba(12,6,28,.97) !important;
    border-right-color: rgba(255,61,240,.28) !important;
    box-shadow: 14px 0 34px rgba(0,0,0,.3), inset -1px 0 rgba(255,61,240,.12) !important;
}
.system-brand { border-bottom-color: rgba(255,61,240,.3) !important; background: linear-gradient(135deg, rgba(255,61,240,.14), transparent 52%) !important; }
.system-brand::after { background: linear-gradient(90deg, #ff3df0, transparent); box-shadow: 0 0 8px rgba(255,61,240,.4); }
.nav-link { background: rgba(28,15,56,.56) !important; }
.nav-link:hover { border-color: rgba(255,61,240,.45) !important; background: rgba(255,61,240,.14) !important; }
.nav-link.active {
    color: #0a0518 !important;
    border-color: #ff3df0 !important;
    background: linear-gradient(90deg, #ff3df0, #b446ff) !important;
    box-shadow: 0 0 22px rgba(255,61,240,.32) !important;
}
.global-task-entry { color: #4ce0f2 !important; border-color: rgba(76,224,242,.35) !important; }

/* 顶栏 */
.topbar {
    background: linear-gradient(90deg, rgba(12,6,28,.97), rgba(32,14,62,.95), rgba(12,6,28,.97)) !important;
    border-bottom-color: rgba(255,61,240,.4) !important;
}
.feedback-header, .page-title { border-bottom-color: rgba(255,61,240,.3) !important; }

/* 主按钮：品红→紫→青渐变；次按钮：青色线框 */
.feedback-primary, .btn-login {
    color: #0a0518 !important;
    border: 1px solid #ff3df0 !important;
    background: linear-gradient(90deg, #ff3df0, #a94dff 52%, #00d5f0) !important;
    background-size: 210% 100% !important;
    box-shadow: 0 6px 20px rgba(255,61,240,.3) !important;
}
.feedback-primary:hover, .btn-login:hover {
    color: #0a0518 !important;
    background-position: 100% 0 !important;
    box-shadow: 0 6px 26px rgba(0,213,240,.35) !important;
}
.feedback-secondary, .btn-reset {
    color: #4ce0f2 !important;
    border-color: rgba(76,224,242,.45) !important;
    background: rgba(24,10,52,.8) !important;
}
.feedback-secondary:hover, .btn-reset:hover {
    color: #fff !important;
    border-color: #4ce0f2 !important;
    background: rgba(76,224,242,.18) !important;
}

/* 表单控件 */
input, select, textarea, .feedback-field input, .feedback-field select, .feedback-field textarea, .overview-filter select {
    background: #170d33 !important;
    border-color: rgba(139,92,255,.65) !important;
}
input:focus, select:focus, textarea:focus {
    border-color: #00d5f0 !important;
    box-shadow: 0 0 0 2px rgba(255,61,240,.18), 0 0 16px rgba(0,213,240,.14) !important;
}

/* 表格：紫底高对比 */
.feedback-panel table th, .member-table th, .discipline-table th, .score-matrix-table th,
.archive-page table th, .report-table th {
    background: #2a1552 !important;
    border-bottom-color: rgba(255,61,240,.45) !important;
}
.feedback-panel table td, .member-table td, .discipline-table td, .score-matrix-table td,
.archive-page table td, .report-table td { border-bottom-color: rgba(255,61,240,.14) !important; }
.feedback-panel table tbody tr:nth-child(even) td, .member-table tbody tr:nth-child(even) td,
.discipline-table tbody tr:nth-child(even) td { background: rgba(38,20,72,.34) !important; }
.feedback-panel table tbody tr:hover td, .member-table tbody tr:hover td,
.discipline-table tbody tr:hover td { background: rgba(255,61,240,.16) !important; }

/* 登录页：最强霓虹框架 + 寄语核心句渐变焦点 */
.login-page .tech-panel {
    background: rgba(22,12,48,.95) !important;
    border-color: rgba(255,61,240,.45) !important;
    box-shadow: 0 0 0 1px rgba(255,61,240,.16), 0 0 40px rgba(255,61,240,.18), inset 0 0 42px rgba(139,92,255,.1) !important;
}
.login-page .tech-panel::before, .login-page .tech-panel::after { display: none !important; }
.login-page .lead-copy { color: #cfc3ea !important; }
.login-page .core-message {
    color: transparent !important;
    background: linear-gradient(90deg, #ff3df0, #ffffff 55%, #00f0ff) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}
.login-page .support-copy, .login-page .security-line { color: #8d81ad !important; }

/* 违纪总览数据板：统一紫黑 */
.discipline-data-board { background: #0a0518 !important; border-color: rgba(255,61,240,.34) !important; }
.discipline-board-scroll { background: #150b30 !important; border-color: rgba(255,61,240,.3) !important; }
.discipline-board-canvas, .discipline-board-capture-mode { background: #150b30 !important; }
.discipline-board-title { border-bottom-color: #ff3df0 !important; }
.discipline-board-section { border-color: rgba(255,61,240,.3) !important; background: #1a0e3a !important; }
.discipline-board-section-head { background: #2a1552 !important; border-bottom-color: rgba(255,61,240,.34) !important; }
.discipline-board-table th { color: #f3edff !important; background: #3d2470 !important; border-color: #553199 !important; }
.discipline-board-table td { background: #180d36 !important; border-color: rgba(139,92,255,.25) !important; }
.discipline-board-table tbody tr:nth-child(even) td { background: #1f1142 !important; }
.discipline-board-table tbody tr:hover td { background: #341a66 !important; }
.discipline-board-table tfoot th, .discipline-board-table tfoot td { background: #2a1552 !important; border-color: #553199 !important; }



/* Committee life cleaning confirmation */
.life-cleaning-command { margin-bottom: 16px; padding: 20px; display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: center; gap: 24px; border: 1px solid rgba(104,229,245,.25); background: rgba(7,29,46,.88); }
.life-cleaning-command > div:first-child > span { color: #68e5f5; font-size: 11px; font-weight: 900; }
.life-cleaning-command h2 { margin: 5px 0 7px; color: #f3fcff; font-size: 23px; }
.life-cleaning-command p { margin: 0; color: #93acb8; font-size: 13px; }
.life-cleaning-date { min-width: 170px; display: grid; gap: 7px; }
.life-cleaning-date span, .life-cleaning-class-filter label { color: #8faab5; font-size: 11px; font-weight: 800; }
.life-cleaning-date strong { color: #f1fbff; font-size: 16px; }
.life-cleaning-class-filter { min-width: 160px; display: grid; gap: 7px; }
.life-cleaning-class-filter select { min-height: 40px; padding: 8px 11px; color: #effcff; border: 1px solid rgba(104,229,245,.32); background: #071d30; font: inherit; outline: none; }
.life-cleaning-summary { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; border: 1px solid rgba(104,229,245,.22); background: rgba(104,229,245,.14); }
.life-cleaning-summary > div { min-height: 86px; padding: 15px 17px; display: grid; align-content: center; gap: 7px; background: #082238; }
.life-cleaning-summary span { color: #8faab5; font-size: 11px; font-weight: 800; }
.life-cleaning-summary strong { color: #f3fcff; font-size: 18px; }
.life-cleaning-period-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.life-cleaning-period { min-height: 300px; padding: 19px; display: grid; grid-template-rows: auto 1fr auto; gap: 18px; border: 1px solid rgba(104,229,245,.25); background: linear-gradient(145deg,rgba(8,34,53,.96),rgba(5,21,37,.96)); }
.life-cleaning-period.completed { border-color: rgba(119,229,173,.5); background: linear-gradient(145deg,rgba(12,55,48,.92),rgba(5,28,33,.96)); }
.life-cleaning-period header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding-bottom: 14px; border-bottom: 1px solid rgba(104,229,245,.15); }
.life-cleaning-period header span { width: 40px; height: 40px; display: grid; place-items: center; color: #68e5f5; border: 1px solid rgba(104,229,245,.4); background: rgba(15,69,83,.28); font-size: 12px; font-weight: 900; }
.life-cleaning-period header strong { color: #f4fdff; font-size: 19px; }
.life-cleaning-period header small { color: #829ca7; font-size: 11px; }
.life-cleaning-state { align-content: center; display: grid; gap: 8px; }
.life-cleaning-state b { color: #8ff0bd; font-size: 25px; }
.life-cleaning-state p { margin: 0; color: #bad1d8; font-size: 13px; }
.life-cleaning-state small { color: #7896a1; font-size: 11px; }
.life-cleaning-state.pending b { color: #f1ca79; }
.life-cleaning-period form button { width: 100%; min-height: 48px; color: #061820; border: 1px solid #68e5f5; background: #68e5f5; font: inherit; font-size: 15px; font-weight: 900; cursor: pointer; }
.life-cleaning-period form button:hover, .life-cleaning-period form button:focus-visible { background: #8ceefa; box-shadow: 0 0 18px rgba(104,229,245,.22); outline: none; }
@media (max-width: 980px) {
    .life-cleaning-command { grid-template-columns: 1fr 1fr; }
    .life-cleaning-command > div:first-child { grid-column: 1 / -1; }
    .life-cleaning-summary { grid-template-columns: repeat(2,1fr); }
    .life-cleaning-period-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .life-cleaning-command { grid-template-columns: 1fr; padding: 16px; }
    .life-cleaning-command > div:first-child { grid-column: auto; }
    .life-cleaning-summary { grid-template-columns: 1fr 1fr; }
    .life-cleaning-period { min-height: 260px; }
}


/* Life department hygiene review */
.life-review-main { max-width: 1500px; }
.life-review-toolbar { margin-bottom: 16px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 16px; align-items: stretch; }
.life-review-toolbar form { padding: 16px; display: flex; gap: 12px; align-items: end; flex-wrap: wrap; border: 1px solid rgba(104,229,245,.22); background: rgba(7,29,46,.88); }
.life-review-toolbar label { display: grid; gap: 7px; color: #8faab5; font-size: 11px; font-weight: 800; }
.life-review-toolbar input, .life-review-toolbar select { min-height: 40px; min-width: 150px; padding: 8px 10px; color: #effcff; border: 1px solid rgba(104,229,245,.32); background: #071d30; font: inherit; outline: none; }
.life-review-toolbar button, .life-review-actions button { min-height: 40px; padding: 0 16px; color: #061820; border: 1px solid #68e5f5; background: #68e5f5; font: inherit; font-size: 13px; font-weight: 900; cursor: pointer; }
.life-review-counts { display: grid; grid-template-columns: repeat(4,96px); gap: 1px; border: 1px solid rgba(104,229,245,.22); background: rgba(104,229,245,.16); }
.life-review-counts div { padding: 12px; display: grid; align-content: center; gap: 5px; background: #082238; }
.life-review-counts span { color: #8faab5; font-size: 11px; font-weight: 800; }
.life-review-counts strong { color: #f3fcff; font-size: 22px; }
.life-review-list { display: grid; gap: 13px; }
.life-review-card { padding: 16px; display: grid; gap: 14px; border: 1px solid rgba(104,229,245,.2); background: linear-gradient(145deg,rgba(8,34,53,.96),rgba(5,21,37,.96)); }
.life-review-card.status-qualified { border-color: rgba(119,229,173,.42); }
.life-review-card.status-unqualified { border-color: rgba(255,112,130,.5); }
.life-review-card header { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.life-review-card header span { display: inline-grid; place-items: center; min-width: 42px; min-height: 30px; margin-bottom: 7px; color: #68e5f5; border: 1px solid rgba(104,229,245,.35); background: rgba(15,69,83,.28); font-size: 12px; font-weight: 900; }
.life-review-card header strong { display: block; color: #f4fdff; font-size: 22px; }
.life-review-card header small { display: block; margin-top: 5px; color: #8faab5; font-size: 12px; }
.life-review-card header b { min-width: 104px; padding: 8px 10px; color: #f1ca79; text-align: center; border: 1px solid rgba(241,202,121,.35); background: rgba(91,65,20,.18); }
.life-review-card.status-qualified header b { color: #8ff0bd; border-color: rgba(119,229,173,.42); background: rgba(27,108,73,.14); }
.life-review-card.status-unqualified header b { color: #ff9ba6; border-color: rgba(255,112,130,.45); background: rgba(92,26,40,.18); }
.life-review-result { padding: 12px; display: grid; grid-template-columns: 80px minmax(0,1fr) 120px; gap: 12px; align-items: center; color: #b9d0d8; background: rgba(3,18,32,.6); }
.life-review-result span { color: #8faab5; font-size: 11px; font-weight: 800; }
.life-review-result strong { color: #f3fcff; }
.life-review-result time { color: #8faab5; text-align: right; }
.life-review-result p { grid-column: 1 / -1; margin: 0; color: #ffb7c0; }
.life-review-actions { display: grid; grid-template-columns: 130px minmax(0,1fr); gap: 10px; }
.life-review-actions form { display: flex; gap: 8px; }
.life-review-actions .qualified { width: 100%; border-color: #77e5ad; background: #77e5ad; }
.life-review-actions .unqualified-form input { flex: 1; min-height: 40px; padding: 8px 10px; color: #effcff; border: 1px solid rgba(255,112,130,.42); background: rgba(32,8,27,.82); font: inherit; outline: none; }
.life-review-actions .unqualified { border-color: #ff7082; background: #ff7082; }
@media (max-width: 980px) {
    .life-review-toolbar { grid-template-columns: 1fr; }
    .life-review-counts { grid-template-columns: repeat(4,1fr); }
    .life-review-actions { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
    .life-review-counts { grid-template-columns: repeat(2,1fr); }
    .life-review-card header { align-items: flex-start; flex-direction: column; }
    .life-review-result { grid-template-columns: 1fr; }
    .life-review-result time { text-align: left; }
    .life-review-actions .unqualified-form { flex-direction: column; }
}
.life-review-section-head { margin: 0 0 13px; display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.life-review-section-head span { color: #68e5f5; font-size: 10px; font-weight: 900; letter-spacing: 2px; }
.life-review-section-head h2 { margin: 4px 0 0; color: #f4fdff; font-size: 20px; }
.life-review-section-head p { margin: 0; color: #8faab5; font-size: 12px; font-weight: 800; }
.life-stats-section, .life-issue-section { margin-bottom: 16px; padding: 16px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.78); }
.life-stats-table-wrap { overflow: auto; border: 1px solid rgba(104,229,245,.16); }
.life-stats-table { width: 100%; min-width: 720px; border-collapse: collapse; }
.life-stats-table th, .life-stats-table td { padding: 12px 14px; color: #c9dce3; font-size: 13px; text-align: left; border-bottom: 1px solid rgba(104,229,245,.12); }
.life-stats-table th { color: #a6d9e0; font-size: 11px; font-weight: 900; background: #10364c; }
.life-stats-table td strong { color: #f4fdff; }
.life-stats-table .good { color: #77e5ad; font-weight: 900; }
.life-stats-table .bad { color: #ff9ba6; font-weight: 900; }
.life-issue-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; }
.life-issue-card { padding: 14px; display: grid; gap: 7px; border: 1px solid rgba(255,112,130,.26); background: rgba(45,14,28,.52); }
.life-issue-card strong { color: #ffe3e7; font-size: 14px; line-height: 1.45; }
.life-issue-card span { color: #ff9ba6; font-size: 12px; font-weight: 900; }
.life-issue-card small { color: #9fb7bf; font-size: 11px; }
@media (max-width: 900px) {
    .life-review-section-head { align-items: flex-start; flex-direction: column; }
}

/* Discipline late-list and manuscript feedback */
.discipline-late-main { max-width: 1500px; }
.discipline-late-section-title { margin-bottom: 13px; }
.discipline-late-section-title span { color: #68e5f5; font-size: 10px; font-weight: 900; letter-spacing: 2px; }
.discipline-late-section-title h2 { margin: 4px 0; color: #f4fdff; font-size: 20px; }
.discipline-late-section-title p { margin: 0; color: #8faab5; font-size: 12px; }
.discipline-late-create, .discipline-late-filter, .discipline-late-records, .discipline-late-stats, .discipline-late-name-list, .discipline-late-feedback-view, .discipline-late-verify { margin-bottom: 16px; padding: 17px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.discipline-late-create form { display: grid; grid-template-columns: 170px 130px 180px minmax(260px,1fr); gap: 12px; align-items: end; }
.discipline-late-create label, .discipline-late-filter label, .discipline-committee-feedback label { display: grid; gap: 7px; color: #93adb7; font-size: 11px; font-weight: 900; }
.discipline-late-create input, .discipline-late-create select, .discipline-late-create textarea, .discipline-late-filter input, .discipline-late-filter select, .discipline-committee-feedback input, .discipline-committee-feedback textarea, .discipline-late-verify textarea, .discipline-late-class-filter select { min-height: 41px; padding: 9px 11px; color: #effcff; border: 1px solid rgba(104,229,245,.3); background: #071d30; font: inherit; outline: none; }
.discipline-late-create textarea, .discipline-committee-feedback textarea, .discipline-late-verify textarea { resize: vertical; }
.discipline-late-create .student-names { grid-column: 4; grid-row: 1 / span 2; }
.discipline-late-create-actions { grid-column: 1 / 4; display: flex; gap: 10px; flex-wrap: wrap; }
.discipline-late-create button, .discipline-late-filter button, .discipline-committee-feedback button, .discipline-late-verify button { min-height: 41px; padding: 0 16px; color: #061820; border: 1px solid #68e5f5; background: #68e5f5; font: inherit; font-weight: 900; cursor: pointer; }
.discipline-late-create button.secondary { color: #d7eef3; background: rgba(14,58,77,.8); }
.discipline-late-create button.danger, .discipline-late-verify button.danger { color: #fff; border-color: #ff7082; background: #b53f55; }
.discipline-late-filter { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; }
.discipline-late-filter form { display: flex; gap: 10px; align-items: end; flex-wrap: wrap; }
.discipline-late-counts { display: grid; grid-template-columns: repeat(5,90px); gap: 1px; border: 1px solid rgba(104,229,245,.2); background: rgba(104,229,245,.12); }
.discipline-late-counts div { padding: 10px; display: grid; align-content: center; background: #082238; }
.discipline-late-counts span { color: #91abb5; font-size: 10px; font-weight: 900; }
.discipline-late-counts strong { color: #f4fdff; font-size: 23px; }
.discipline-late-record-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; }
.discipline-late-record { padding: 14px; color: inherit; text-decoration: none; border: 1px solid rgba(104,229,245,.2); background: linear-gradient(145deg,rgba(8,34,53,.96),rgba(5,21,37,.96)); }
.discipline-late-record header { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; align-items: center; }
.discipline-late-record header>span { min-height: 30px; display: grid; place-items: center; color: #68e5f5; border: 1px solid rgba(104,229,245,.35); }
.discipline-late-record header strong { color: #f4fdff; font-size: 18px; }
.discipline-late-record header b { color: #f1ca79; font-size: 11px; }
.discipline-late-record p, .discipline-late-record small { margin: 9px 0 0; color: #94afb8; }
.discipline-late-record.status-verified { border-color: rgba(119,229,173,.42); }
.discipline-late-record.status-returned { border-color: rgba(255,112,130,.5); }
.discipline-late-table-wrap { overflow: auto; border: 1px solid rgba(104,229,245,.16); }
.discipline-late-table-wrap table { width: 100%; min-width: 780px; border-collapse: collapse; }
.discipline-late-table-wrap th, .discipline-late-table-wrap td { padding: 12px 14px; color: #c9dce3; text-align: left; border-bottom: 1px solid rgba(104,229,245,.12); }
.discipline-late-table-wrap th { color: #a6d9e0; font-size: 11px; background: #10364c; }
.discipline-late-table-wrap td strong { color: #f4fdff; }
.discipline-late-table-wrap td.total { color: #ffca72; font-size: 18px; font-weight: 900; }
.discipline-late-detail-head { margin-bottom: 16px; padding: 18px; display: flex; justify-content: space-between; align-items: center; border: 1px solid rgba(104,229,245,.22); background: rgba(6,27,44,.9); }
.discipline-late-detail-head span { color: #68e5f5; font-size: 11px; font-weight: 900; }
.discipline-late-detail-head h1 { margin: 5px 0; color: #f4fdff; }
.discipline-late-detail-head p { margin: 0; color: #91abb5; }
.discipline-late-detail-head>b { padding: 9px 13px; color: #f1ca79; border: 1px solid rgba(241,202,121,.35); }
.discipline-late-detail-head>b.status-verified { color: #77e5ad; border-color: rgba(119,229,173,.4); }
.discipline-late-detail-head>b.status-returned { color: #ff9ba6; border-color: rgba(255,112,130,.45); }
.discipline-late-name-list>div:last-child { display: flex; gap: 9px; flex-wrap: wrap; }
.discipline-late-name-list>div:last-child>span { padding: 9px 11px; display: inline-flex; gap: 8px; align-items: center; color: #effcff; border: 1px solid rgba(104,229,245,.28); background: rgba(9,45,63,.65); }
.discipline-late-name-list small { color: #91abb5; }
.discipline-late-name-list .manuscript-submitted { border-color: rgba(119,229,173,.42); }
.discipline-late-name-list .manuscript-missing { border-color: rgba(255,112,130,.5); }
.discipline-late-flow { margin-bottom: 16px; display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; border: 1px solid rgba(104,229,245,.2); background: rgba(104,229,245,.12); }
.discipline-late-flow>div { padding: 14px; display: grid; gap: 6px; background: #082238; }
.discipline-late-flow span, .discipline-late-flow small { color: #91abb5; font-size: 11px; }
.discipline-late-flow strong { color: #f4fdff; }
.discipline-late-feedback-view h2 { color: #f4fdff; }
.discipline-late-feedback-view p { color: #bcd1d8; }
.discipline-late-verify form { display: grid; gap: 10px; }
.discipline-late-verify form>div { display: flex; gap: 10px; }
.discipline-late-class-filter { margin-bottom: 14px; display: flex; align-items: center; gap: 10px; color: #9fb7bf; font-weight: 900; }
.discipline-committee-layout { display: grid; grid-template-columns: 280px minmax(0,1fr); gap: 14px; }
.discipline-committee-record-list, .discipline-committee-detail { padding: 15px; border: 1px solid rgba(104,229,245,.2); background: rgba(5,23,38,.8); }
.discipline-committee-record-list>a { margin-top: 8px; padding: 11px; display: grid; gap: 5px; color: #bcd1d8; text-decoration: none; border: 1px solid rgba(104,229,245,.16); }
.discipline-committee-record-list>a.active { border-color: #68e5f5; background: rgba(27,78,92,.28); }
.discipline-committee-record-list>a span, .discipline-committee-record-list>a small { color: #91abb5; font-size: 11px; }
.discipline-committee-record-list>a strong { color: #f4fdff; }
.discipline-committee-feedback { margin-top: 15px; display: grid; gap: 12px; }
.discipline-committee-feedback fieldset { padding: 13px; display: flex; gap: 20px; border: 1px solid rgba(104,229,245,.22); }
.discipline-committee-feedback legend { color: #9fb7bf; font-size: 11px; font-weight: 900; }
.discipline-committee-feedback fieldset label { display: flex; align-items: center; gap: 7px; color: #eaf8fb; }
.discipline-committee-feedback input[type="radio"] { width: 18px; min-height: 18px; padding: 0; accent-color: #68e5f5; }
.task-metrics { grid-template-columns: repeat(auto-fit,minmax(135px,1fr)); }
@media (max-width: 1000px) {
    .discipline-late-create form { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .discipline-late-create .student-names { grid-column: 1 / -1; grid-row: auto; }
    .discipline-late-create-actions { grid-column: 1 / -1; }
    .discipline-late-filter { grid-template-columns: 1fr; }
    .discipline-late-counts { grid-template-columns: repeat(5,1fr); }
    .discipline-committee-layout { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .discipline-late-create form { grid-template-columns: 1fr; }
    .discipline-late-counts { grid-template-columns: repeat(2,1fr); }
    .discipline-late-flow { grid-template-columns: repeat(2,1fr); }
    .discipline-late-detail-head { align-items: flex-start; flex-direction: column; gap: 12px; }
}
.identity-switch-menu { max-height: 70vh; overflow-y: auto; }

body:has(.identity-switcher) .topbar-status { display: none !important; }
body:has(.identity-switcher) .identity-switcher {
    right: 388px;
    width: 220px;
}
body:has(.identity-switcher) .identity-switch-trigger { min-height: 54px; }
@media (max-width: 1100px) {
    body:has(.identity-switcher) .identity-switcher { right: 250px; width: 178px; }
}
@media (max-width: 768px) {
    body:has(.identity-switcher) .identity-switcher { right: 166px; width: 132px; }
}
@media (max-width: 480px) {
    body:has(.identity-switcher) .identity-switcher { right: 112px; width: 118px; }
}

/* 督导处班长数据核验 */
.monitor-review-main{display:grid;gap:18px}.monitor-review-heading{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;border-bottom:1px solid rgba(104,229,245,.28);padding-bottom:18px}.monitor-review-heading h1{margin:5px 0 6px;color:#f4fbff;font-size:30px}.monitor-review-heading>div>span{color:#68e5f5;font-size:12px;letter-spacing:.14em}.monitor-review-heading p{margin:0;color:#a9c4d1}.monitor-review-actions{display:flex;align-items:flex-end;gap:12px}.monitor-review-actions form{display:flex;align-items:flex-end;gap:8px}.monitor-review-actions label{display:grid;gap:5px;color:#a9c4d1;font-size:12px}.monitor-review-actions input{min-height:42px}.monitor-review-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}.monitor-review-metrics article{padding:16px 17px;border:1px solid rgba(104,229,245,.22);background:rgba(8,27,47,.86)}.monitor-review-metrics span{display:block;color:#9db8c6;font-size:12px}.monitor-review-metrics strong{display:block;margin-top:6px;color:#f7fcff;font-size:27px}.monitor-review-metrics .warning strong{color:#ffd166}.monitor-review-metrics .success strong{color:#66e0a3}.monitor-review-metrics .danger strong{color:#ff7d8c}.monitor-review-metrics .muted strong{color:#9aafba}.monitor-review-panel{padding:0!important;overflow:hidden}.monitor-review-panel-title{display:flex;justify-content:space-between;gap:20px;padding:17px 19px;border-bottom:1px solid rgba(104,229,245,.18)}.monitor-review-panel-title strong,.monitor-review-panel-title span{display:block}.monitor-review-panel-title span{margin-top:4px;color:#91aebb;font-size:12px}.monitor-review-panel-title>div:last-child{display:flex;gap:14px;align-items:center}.monitor-review-table-wrap{overflow:auto}.monitor-review-table{width:100%;min-width:1180px;border-collapse:collapse}.monitor-review-table th{padding:12px 13px;text-align:left;color:#a6dce6;font-size:12px;background:rgba(4,22,40,.92);border-bottom:1px solid rgba(104,229,245,.2)}.monitor-review-table td{padding:13px;color:#d5e4ea;font-size:13px;border-bottom:1px solid rgba(104,229,245,.1);vertical-align:middle}.monitor-review-table tr:hover td{background:rgba(104,229,245,.035)}.monitor-review-table td strong{color:#f4fbff}.monitor-review-table td small{display:block;margin-top:4px;color:#829daa;font-size:11px}.monitor-review-table td em{display:inline-block;margin:2px 4px 2px 0;padding:3px 7px;border:1px solid rgba(255,125,140,.45);color:#ff9eaa;font-size:11px;font-style:normal}.monitor-review-status{display:inline-flex;padding:5px 9px;border:1px solid rgba(104,229,245,.32);color:#9cdde7;font-size:12px}.monitor-review-status.approved{border-color:rgba(102,224,163,.45);color:#66e0a3}.monitor-review-status.issue{border-color:rgba(255,125,140,.5);color:#ff8e9b}.monitor-review-status.missing{border-color:rgba(154,175,186,.35);color:#9aafba}.monitor-review-status.pending{border-color:rgba(255,209,102,.48);color:#ffd166}.monitor-unassigned{color:#ff8e9b}.monitor-no-action{color:#7f98a4;font-size:12px}.feedback-secondary.compact{min-height:34px;padding:0 10px;font-size:12px}.monitor-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.monitor-detail-grid article{padding:17px}.monitor-detail-grid span,.monitor-detail-grid small{display:block;color:#8eabb9;font-size:12px}.monitor-detail-grid strong{display:block;margin:7px 0;color:#f4fbff;font-size:20px}.monitor-detail-columns{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,.75fr);gap:16px}.monitor-report-content,.monitor-review-form-panel,.monitor-history-panel{padding:18px}.monitor-section-title{display:flex;justify-content:space-between;gap:15px;align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(104,229,245,.17)}.monitor-section-title strong{color:#f3fbff;font-size:16px}.monitor-section-title span{color:#88a7b5;font-size:12px}.monitor-report-content pre{min-height:290px;margin:15px 0;padding:16px;white-space:pre-wrap;word-break:break-word;color:#d8e8ee;background:rgba(3,17,31,.82);border:1px solid rgba(104,229,245,.15);font:13px/1.75 Consolas,'Microsoft YaHei',sans-serif}.monitor-data-summary{display:flex;flex-wrap:wrap;gap:10px}.monitor-data-summary span,.monitor-data-summary em{padding:7px 10px;border:1px solid rgba(104,229,245,.2);color:#b9d0d9;font-style:normal}.monitor-data-summary strong{color:#fff}.monitor-review-form-panel form{display:grid;gap:12px;margin-top:14px}.monitor-review-choice{display:flex;gap:12px;align-items:flex-start;padding:13px;border:1px solid rgba(104,229,245,.18);cursor:pointer}.monitor-review-choice input{margin-top:3px}.monitor-review-choice span,.monitor-review-choice strong,.monitor-review-choice small{display:block}.monitor-review-choice strong{color:#f2fbff}.monitor-review-choice small{margin-top:4px;color:#829daa}.monitor-issue-field{display:grid;gap:7px;color:#a9c2cd;font-size:12px}.monitor-issue-field textarea{min-height:135px;resize:vertical}.monitor-readonly-review{margin-top:14px;padding:18px;border:1px solid rgba(104,229,245,.17);background:rgba(3,17,31,.72)}.monitor-readonly-review strong{color:#f4fbff;font-size:20px}.monitor-readonly-review p{color:#b1c8d2;line-height:1.7}.monitor-history-panel{overflow:hidden}.monitor-history-panel .monitor-review-table-wrap{margin:12px -18px -18px}.monitor-history-panel .monitor-review-table{min-width:900px}@media(max-width:1180px){.monitor-review-metrics{grid-template-columns:repeat(3,1fr)}.monitor-detail-columns{grid-template-columns:1fr}.monitor-review-heading{align-items:stretch;flex-direction:column}.monitor-review-actions{flex-wrap:wrap}}@media(max-width:720px){.monitor-review-metrics{grid-template-columns:repeat(2,1fr)}.monitor-review-actions,.monitor-review-actions form{width:100%;align-items:stretch;flex-direction:column}.monitor-detail-grid{grid-template-columns:1fr}}

/* Platform duty feedback */
.duty-feedback-main{display:grid;gap:18px}.duty-feedback-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.duty-feedback-metrics .metric-card{min-width:0}.duty-feedback-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.duty-feedback-toolbar form{display:flex;align-items:end;gap:10px}.duty-feedback-toolbar label,.duty-feedback-entry-form label{display:grid;gap:7px}.duty-feedback-toolbar span,.duty-feedback-entry-form label>span{font-size:12px;color:var(--muted-color,#8492a6)}.duty-feedback-panel-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.duty-feedback-panel-title span{display:block;font-size:11px;letter-spacing:.16em;color:var(--accent-color,#4fc3f7)}.duty-feedback-panel-title h2{margin:4px 0 0}.duty-feedback-entry-form{display:grid;gap:14px}.duty-feedback-entry-form textarea{width:100%;resize:vertical;min-height:210px}.duty-feedback-form-note{display:flex;flex-wrap:wrap;gap:8px 16px;padding:12px 14px;border:1px solid rgba(79,195,247,.2);background:rgba(79,195,247,.06)}.duty-feedback-form-note span{color:var(--muted-color,#8492a6)}.duty-feedback-table-wrap{overflow:auto}.duty-feedback-table-wrap table{width:100%;min-width:980px;border-collapse:collapse}.duty-feedback-table-wrap th,.duty-feedback-table-wrap td{padding:12px 10px;border-bottom:1px solid rgba(148,163,184,.16);vertical-align:top;text-align:left}.duty-feedback-table-wrap td small{display:block;margin-top:5px;color:var(--muted-color,#8492a6)}.duty-status{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;font-size:12px;white-space:nowrap}.duty-status.pending{color:#f8c555;background:rgba(248,197,85,.12);border:1px solid rgba(248,197,85,.28)}.duty-status.approved{color:#5ee3a1;background:rgba(94,227,161,.12);border:1px solid rgba(94,227,161,.28)}.duty-status.rejected{color:#ff8585;background:rgba(255,133,133,.12);border:1px solid rgba(255,133,133,.28)}.duty-status.missing{color:#ffbd66;background:rgba(255,189,102,.12);border:1px solid rgba(255,189,102,.28)}.duty-confirm-form{display:grid;gap:8px;min-width:170px}.duty-confirm-form input{min-width:0}.duty-issue{max-width:180px;color:#ff9c9c!important}.duty-muted{color:var(--muted-color,#8492a6)}.duty-row-rejected{background:rgba(255,90,90,.035)}.duty-row-missing{background:rgba(255,189,102,.045)}.duty-row-exception{background:rgba(255,90,90,.06)}.duty-repeat-alert{background:rgba(255,90,90,.06)}.feedback-primary.compact,.feedback-secondary.compact{padding:7px 10px;font-size:12px}.duty-roster-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.duty-roster-actions form{display:flex;align-items:center;gap:8px}.duty-roster-add-form input{width:120px}.duty-roster-note{margin:12px 0 0;color:var(--muted-color,#8492a6);font-size:13px}.discipline-duty-feedback-entry{margin-bottom:16px}.discipline-duty-feedback-entry .feedback-primary{display:flex;align-items:center;justify-content:space-between;gap:14px;text-decoration:none}.discipline-duty-feedback-entry .feedback-primary strong{font-size:12px;font-weight:500;opacity:.78}
@media (max-width:1100px){.duty-feedback-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.duty-feedback-metrics{grid-template-columns:1fr}.duty-feedback-toolbar,.duty-feedback-panel-title{align-items:stretch;flex-direction:column}.duty-feedback-toolbar form{align-items:stretch;flex-direction:column}.discipline-duty-feedback-entry .feedback-primary{align-items:flex-start;flex-direction:column}}

.task-groups{display:grid;gap:14px}.task-group{padding:0;overflow:hidden}.task-group-heading{min-height:82px;padding:15px 18px;display:grid;grid-template-columns:42px minmax(0,1fr) auto;align-items:center;gap:14px;cursor:pointer;list-style:none;background:linear-gradient(90deg,rgba(9,36,67,.88),rgba(4,21,43,.76));border-left:3px solid var(--hud-cyan)}.task-group-heading::-webkit-details-marker{display:none}.task-group[open] .task-group-heading{border-bottom:1px solid rgba(66,220,255,.15);box-shadow:inset 0 -12px 24px rgba(66,220,255,.035)}.task-group-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(66,220,255,.38);color:#a9f3ff;font-size:12px;font-weight:800}.task-group-copy{display:grid;gap:6px}.task-group-copy strong{color:#effcff;font-size:17px}.task-group-copy small{color:#91adbc;font-size:12px}.task-group-count{min-width:34px;padding:7px 10px;text-align:center;color:#061725;background:var(--hud-cyan);font-size:14px;border-radius:999px}.task-group .task-list{border:0}.task-group .task-item:last-child{border-bottom:0}@media(max-width:768px){.task-group-heading{grid-template-columns:34px minmax(0,1fr) auto;padding:13px}.task-group-copy strong{font-size:15px}.task-group-copy small{line-height:1.5}.task-item{grid-template-columns:80px minmax(0,1fr)}}
.task-category small{display:block;margin-top:5px;color:#7996a5;font-size:10px;font-weight:500;white-space:normal}

/* 2026-08-11 简洁科技风：强化按钮和数据，清理装饰特效。 */
:root {
    --clarity-bg:#0b0f18;
    --clarity-surface:#141a26;
    --clarity-surface-2:#1a2231;
    --clarity-line:#303a4e;
    --clarity-line-strong:#46536b;
    --clarity-primary:#3b82f6;
    --clarity-primary-hover:#2563eb;
    --clarity-text:#e7edf7;
    --clarity-muted:#a5b1c5;
    --clarity-faint:#748198;
}

html,body,button,input,select,textarea,label,p,td,th,h1,h2,h3,h4,h5,h6,
.btn,.tab,.nav-link,.panel-title,.page-title,.brand,.topbar,.sidebar,.card,.stat-card {
    font-family:"Microsoft YaHei UI","PingFang SC","Hiragino Sans GB",system-ui,-apple-system,"Segoe UI",sans-serif !important;
}
code,pre,kbd,samp,.stat-number,.value-num,.mono {
    font-family:"JetBrains Mono","Cascadia Mono",Consolas,"Microsoft YaHei UI",monospace !important;
}

body,body.feedback-page,body.dashboard-page,body.archive-page,body.overview-page,
body.discipline-page,body.attendance-page,body.culture-page,body.report-page,
body.score-page,body.profile-page,body.task-page,body.security-page,
body.work-report-page,body.committee-page,body.login-page {
    color:var(--clarity-text) !important;
    background:var(--clarity-bg) !important;
    background-image:none !important;
}

body::before,body::after,.dashboard-tech::before,.dashboard-tech::after,
.scan-line,.tech-background,.hud-radar,.circuit-rail,.data-stream,.color-index,
.brand-header::before,.brand-header::after,.brand-name::before,.brand-name::after {
    display:none !important;
    content:none !important;
}

h1,h2,h3,h4,.page-title h1,.feedback-header h1,.panel-title,.topbar-title,
.brand-title,.brand-name,.committee-work-heading h1,.committee-role-heading h1,
.work-report-heading h1,.discipline-heading h1,.overview-heading h1 {
    color:#f8fafc !important;
    background:none !important;
    background-image:none !important;
    -webkit-text-fill-color:currentColor !important;
    text-shadow:none !important;
    filter:none !important;
    letter-spacing:0 !important;
}

p,small,.topbar-path,.brand-sub,.page-title p,.feedback-header p,.stat-label,
.stat-sub,.panel-kicker,.support-copy,.security-line,.archive-tool-note {
    color:var(--clarity-muted) !important;
    text-shadow:none !important;
}

.stat-card,.card,.table-wrap,.filter-bar,.tech-panel,.feedback-panel,
.overview-card,.report-item,.dept-item,.announcement-item,.committee-role-entry,
.work-department-panel,.discipline-data-board,.discipline-board-section,
.feedback-header,.page-title,.monitor-review-metrics article,.monitor-review-panel,
.monitor-report-content,.monitor-review-form-panel,.monitor-history-panel {
    color:var(--clarity-text) !important;
    background:var(--clarity-surface) !important;
    background-image:none !important;
    border:1px solid var(--clarity-line) !important;
    border-radius:10px !important;
    box-shadow:none !important;
    clip-path:none !important;
    text-shadow:none !important;
}

.stat-card:hover,.card:hover,.tech-panel:hover,.feedback-panel:hover,
.committee-role-entry:hover,.report-item:hover,.dept-item:hover {
    transform:none !important;
    background:var(--clarity-surface-2) !important;
    border-color:var(--clarity-line-strong) !important;
    box-shadow:none !important;
}

.stat-card::before,.stat-card::after,.card::before,.card::after,
.table-wrap::before,.table-wrap::after,.filter-bar::before,.filter-bar::after,
.tech-panel::before,.tech-panel::after,.feedback-panel::before,.feedback-panel::after,
.committee-role-entry::before,.committee-role-entry::after,
.work-department-panel::before,.work-department-panel::after {
    display:none !important;
    content:none !important;
}

.sidebar,.feedback-page .sidebar,.topbar,.feedback-page .topbar {
    background:#10151f !important;
    background-image:none !important;
    box-shadow:none !important;
}
.sidebar,.feedback-page .sidebar { border-right:1px solid var(--clarity-line) !important; }
.topbar,.feedback-page .topbar { border-bottom:1px solid var(--clarity-line) !important; }
.system-brand { background:transparent !important; border-bottom:1px solid var(--clarity-line) !important; box-shadow:none !important; }

.nav-link {
    min-height:44px !important;
    color:#cbd5e1 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:7px !important;
    box-shadow:none !important;
    text-shadow:none !important;
}
.nav-link:hover { color:#fff !important; background:rgba(255,255,255,.055) !important; }
.nav-link.active {
    color:#fff !important;
    background:rgba(59,130,246,.18) !important;
    box-shadow:inset 3px 0 0 var(--clarity-primary) !important;
}
.nav-link::before,.nav-link::after { display:none !important; content:none !important; }

button,input[type="button"],input[type="submit"],.btn,.btn-login,
.feedback-primary,.feedback-secondary,.archive-import-button,.archive-action-button,
.archive-tool-link,.archive-view-link,.search-box button,.pagination a,.tab-item,.logout-link {
    min-height:40px !important;
    padding:9px 15px !important;
    color:var(--clarity-text) !important;
    background:transparent !important;
    background-image:none !important;
    border:1px solid var(--clarity-line-strong) !important;
    border-radius:7px !important;
    box-shadow:none !important;
    clip-path:none !important;
    text-shadow:none !important;
    text-transform:none !important;
    letter-spacing:0 !important;
    font-weight:600 !important;
}

.btn-login,.feedback-primary,.archive-import-button,.btn-primary,
button[type="submit"] {
    color:#fff !important;
    background:var(--clarity-primary) !important;
    border-color:var(--clarity-primary) !important;
}
.btn-login:hover,.feedback-primary:hover,.archive-import-button:hover,.btn-primary:hover,
button[type="submit"]:hover {
    color:#fff !important;
    background:var(--clarity-primary-hover) !important;
    border-color:var(--clarity-primary-hover) !important;
}
.feedback-secondary:hover,.btn-reset:hover,.archive-tool-link:hover,
.archive-view-link:hover,.search-box button:hover,.pagination a:hover,
.tab-item:hover,.logout-link:hover {
    color:#fff !important;
    background:rgba(255,255,255,.07) !important;
    border-color:#64748b !important;
}

input,select,textarea {
    min-height:40px !important;
    padding:8px 12px !important;
    color:var(--clarity-text) !important;
    background:#0d131e !important;
    border:1px solid var(--clarity-line-strong) !important;
    border-radius:7px !important;
    box-shadow:none !important;
}
textarea { min-height:120px !important; }
input::placeholder,textarea::placeholder { color:var(--clarity-faint) !important; }
input:focus,select:focus,textarea:focus {
    outline:none !important;
    border-color:#60a5fa !important;
    box-shadow:0 0 0 3px rgba(59,130,246,.18) !important;
}

table { color:var(--clarity-text) !important; }
table th {
    padding:12px 14px !important;
    color:#c3cede !important;
    background:#1b2433 !important;
    border-color:var(--clarity-line) !important;
    font-size:13px !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    text-shadow:none !important;
}
table td {
    padding:13px 14px !important;
    color:#dbe4f0 !important;
    border-color:rgba(48,58,78,.72) !important;
    font-size:13px !important;
    line-height:1.55 !important;
    text-shadow:none !important;
}
table tbody tr:nth-child(even) td { background:rgba(255,255,255,.018) !important; }
table tbody tr:hover td { background:rgba(59,130,246,.09) !important; }

.login-page .shell { width:min(1080px,calc(100% - 32px)) !important; padding:28px 0 !important; }
.login-page .brand-header {
    min-height:74px !important;
    justify-content:flex-start !important;
    border-bottom:1px solid var(--clarity-line) !important;
}
.login-page .brand-emblem {
    width:58px !important;
    height:52px !important;
    background:var(--clarity-surface) !important;
    border:1px solid var(--clarity-line) !important;
    box-shadow:none !important;
}
.login-page .brand-emblem img { filter:none !important; }
.login-page .brand-name { font-size:clamp(24px,3vw,34px) !important; animation:none !important; }
.login-page .brand-name span { color:#f8fafc !important; background:none !important; -webkit-text-fill-color:currentColor !important; }
.login-page .brand-code { color:var(--clarity-faint) !important; letter-spacing:1px !important; }
.login-page .workspace {
    grid-template-columns:minmax(360px,.9fr) minmax(420px,1.1fr) !important;
    gap:20px !important;
    padding-top:24px !important;
}
.login-page .tech-panel { min-height:470px !important; padding:30px !important; overflow:visible !important; }
.login-page .panel-kicker { color:#93c5fd !important; letter-spacing:.08em !important; }
.login-page .form-group label { color:#c1cad8 !important; letter-spacing:0 !important; }
.login-page .form-group input { height:48px !important; }
.login-page .btn-login { width:100% !important; height:48px !important; }
.login-page .lead-copy { color:#f8fafc !important; font-size:clamp(22px,2.2vw,30px) !important; }
.login-page .core-message { color:#cbd5e1 !important; border-left:3px solid var(--clarity-primary) !important; }
.login-page .footer { color:var(--clarity-faint) !important; }

*,*::before,*::after {
    animation:none !important;
    animation-duration:0s !important;
    transition-duration:.12s !important;
}

@media (max-width:900px) {
    .login-page .workspace { grid-template-columns:1fr !important; }
    .login-page .message-panel { min-height:300px !important; }
}

/* 2026-08-11 科技识别增强：静态网格、数据线、深海军蓝面板。 */
:root {
    --tech-bg:#050b14;
    --tech-surface:#0a1624;
    --tech-surface-2:#0e1d2d;
    --tech-surface-3:#11263a;
    --tech-line:rgba(61,214,245,.26);
    --tech-line-strong:rgba(61,214,245,.52);
    --tech-cyan:#3dd6f5;
    --tech-cyan-soft:#9aeafb;
    --tech-blue:#3b82f6;
    --tech-green:#34d399;
    --tech-amber:#fbbf24;
    --tech-red:#fb7185;
}

body,body.feedback-page,body.dashboard-page,body.archive-page,body.overview-page,
body.discipline-page,body.attendance-page,body.culture-page,body.report-page,
body.score-page,body.profile-page,body.task-page,body.security-page,
body.work-report-page,body.committee-page,body.login-page {
    background-color:var(--tech-bg) !important;
    background-image:
        linear-gradient(rgba(61,214,245,.028) 1px,transparent 1px),
        linear-gradient(90deg,rgba(61,214,245,.028) 1px,transparent 1px),
        radial-gradient(circle at 78% -10%,rgba(29,151,199,.14),transparent 34%) !important;
    background-size:32px 32px,32px 32px,auto !important;
    background-attachment:fixed !important;
}

.stat-card,.card,.table-wrap,.filter-bar,.tech-panel,.feedback-panel,
.overview-card,.report-item,.dept-item,.announcement-item,.committee-role-entry,
.work-department-panel,.discipline-data-board,.discipline-board-section,
.feedback-header,.page-title,.monitor-review-metrics article,.monitor-review-panel,
.monitor-report-content,.monitor-review-form-panel,.monitor-history-panel {
    background:linear-gradient(180deg,rgba(14,31,48,.98),rgba(8,20,33,.98)) !important;
    border-color:var(--tech-line) !important;
    border-radius:6px !important;
    box-shadow:inset 0 2px 0 rgba(61,214,245,.34),0 10px 28px rgba(0,0,0,.2) !important;
}

.stat-card:hover,.card:hover,.tech-panel:hover,.feedback-panel:hover,
.committee-role-entry:hover,.report-item:hover,.dept-item:hover {
    background:linear-gradient(180deg,rgba(17,38,58,.99),rgba(10,25,40,.99)) !important;
    border-color:var(--tech-line-strong) !important;
    box-shadow:inset 0 2px 0 rgba(61,214,245,.48),0 10px 28px rgba(0,0,0,.2) !important;
}

.sidebar,.feedback-page .sidebar {
    background:#07111d !important;
    border-right-color:rgba(61,214,245,.3) !important;
}
.topbar,.feedback-page .topbar {
    background:rgba(7,17,29,.97) !important;
    border-bottom-color:rgba(61,214,245,.28) !important;
    box-shadow:inset 0 -1px 0 rgba(61,214,245,.08) !important;
}
.system-brand { border-bottom-color:rgba(61,214,245,.24) !important; }
.brand-sub,.topbar-path,.nav-label,.panel-kicker {
    color:#74cfe4 !important;
    letter-spacing:.09em !important;
}
.nav-link { border-left:3px solid transparent !important; }
.nav-link:hover { background:rgba(61,214,245,.06) !important; }
.nav-link.active {
    color:#effcff !important;
    background:linear-gradient(90deg,rgba(61,214,245,.18),rgba(61,214,245,.045)) !important;
    border-left-color:var(--tech-cyan) !important;
    box-shadow:none !important;
}

.stat-number,.info-item .value,.overview-metrics strong,.discipline-metric strong,
.work-report-metrics strong,.score-metric strong,.task-metric strong,.metric strong,
.monitor-review-metrics strong {
    color:var(--tech-cyan-soft) !important;
    font-family:"JetBrains Mono","Cascadia Mono",Consolas,"Microsoft YaHei UI",monospace !important;
    font-variant-numeric:tabular-nums !important;
    text-shadow:none !important;
}
.danger strong,.metric.danger strong,.stat-card.danger .stat-number { color:var(--tech-red) !important; }
.success strong,.metric.success strong,.stat-card.success .stat-number { color:var(--tech-green) !important; }
.warning strong,.metric.warning strong,.stat-card.warning .stat-number { color:var(--tech-amber) !important; }

.btn-login,.feedback-primary,.archive-import-button,.btn-primary,
button[type="submit"] {
    color:#03131a !important;
    background:var(--tech-cyan) !important;
    border-color:var(--tech-cyan) !important;
    box-shadow:inset 0 -2px 0 rgba(0,0,0,.16) !important;
}
.btn-login:hover,.feedback-primary:hover,.archive-import-button:hover,.btn-primary:hover,
button[type="submit"]:hover {
    color:#021016 !important;
    background:#72e5fa !important;
    border-color:#72e5fa !important;
}
.feedback-secondary,.btn-reset,.archive-tool-link,.archive-view-link,
.search-box button,.pagination a,.tab-item,.logout-link {
    color:#b9eff8 !important;
    background:#0b1a29 !important;
    border-color:rgba(61,214,245,.42) !important;
}

input,select,textarea {
    color:#e8f8fc !important;
    background:#06101c !important;
    border-color:rgba(80,151,177,.48) !important;
}
input:focus,select:focus,textarea:focus {
    border-color:var(--tech-cyan) !important;
    box-shadow:0 0 0 3px rgba(61,214,245,.13) !important;
}

table th {
    color:#a9dce7 !important;
    background:#0d2133 !important;
    border-bottom-color:rgba(61,214,245,.34) !important;
}
table td { border-bottom-color:rgba(57,103,124,.34) !important; }
table tbody tr:nth-child(even) td { background:rgba(61,214,245,.018) !important; }
table tbody tr:hover td { background:rgba(61,214,245,.075) !important; }

.badge,.position-tag,.tag,.status-pill,.state-tag,.role-tag {
    color:#aeeeff !important;
    background:rgba(61,214,245,.09) !important;
    border-color:rgba(61,214,245,.3) !important;
}

.login-page .brand-emblem {
    background:#091827 !important;
    border-color:rgba(61,214,245,.42) !important;
    box-shadow:inset 0 2px 0 rgba(61,214,245,.3) !important;
}
.login-page .tech-panel,
.login-page .login-panel,
.login-page .message-panel {
    background:linear-gradient(180deg,rgba(12,29,46,.98),rgba(6,17,29,.98)) !important;
    border:1px solid rgba(61,214,245,.34) !important;
    border-radius:6px !important;
    box-shadow:inset 0 2px 0 rgba(61,214,245,.48),0 18px 46px rgba(0,0,0,.26) !important;
}
.login-page .message-panel { box-shadow:inset 0 2px 0 rgba(59,130,246,.55),0 18px 46px rgba(0,0,0,.26) !important; }
.login-page .panel-title { color:#f3fbff !important; }
.login-page .form-group input {
    background:#06111d !important;
    border:1px solid rgba(77,157,184,.48) !important;
    border-radius:4px !important;
}
.login-page .security-line { border-top-color:rgba(61,214,245,.2) !important; }
.login-page .security-line strong { color:var(--tech-green) !important; }
.login-page .core-message { border-left-color:var(--tech-cyan) !important; }
.login-page {
    --pink:var(--tech-cyan) !important;
    --cyan:var(--tech-cyan) !important;
    --violet:var(--tech-blue) !important;
    --line:rgba(61,214,245,.3) !important;
    --panel:rgba(8,22,36,.96) !important;
}
.login-page .tech-panel,
.login-page .login-panel,
.login-page .message-panel {
    outline:0 !important;
    filter:none !important;
}
.login-page .tech-panel::before,
.login-page .tech-panel::after,
.login-page .message-panel::before,
.login-page .message-panel::after,
.login-page .core-message::after {
    display:none !important;
    content:none !important;
    border:0 !important;
    box-shadow:none !important;
}

.feedback-page .nav-link.leave-nav-link,

/* ============================================================
   2026-09-10 全站 UI 刷新层（REFRESH LAYER）
   目标：文字清晰、护眼、科技感统一。本层规则后置生效。
   ============================================================ */

/* ---------- 1. 字体与正文清晰度 ---------- */
body {
    font-family: var(--ui-font) !important;
    font-size: 15px;
    line-height: 1.65;
    letter-spacing: .2px;
    color: var(--ui-text-1);
    background:
        radial-gradient(1100px 520px at 88% -8%, rgba(47, 143, 255, .07), transparent 60%),
        radial-gradient(900px 480px at -6% 108%, rgba(104, 229, 245, .06), transparent 60%),
        var(--ui-bg-0) !important;
    -webkit-font-smoothing: antialiased;
}

p, td, th, li, label, dd, dt { text-shadow: none !important; }
td, th, li, p { line-height: 1.6; }

h1, h2, h3 {
    font-family: var(--ui-font) !important;
    letter-spacing: .5px;
    text-shadow: 0 0 18px rgba(104, 229, 245, .12) !important;
}

/* 数字统一等宽数字对齐（科技感且易读） */
.stat-number, .value, .culture-cell-score, .culture-detail-score,
.culture-score-total, .culture-score-final, td[class*="total"],
strong b, .duty-feedback-metrics strong {
    font-variant-numeric: tabular-nums;
}

::-webkit-scrollbar { width: 9px; height: 9px; }
::-webkit-scrollbar-track { background: rgba(5, 18, 38, .6); }
::-webkit-scrollbar-thumb { background: rgba(104, 220, 245, .26); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: rgba(104, 220, 245, .42); }

:focus-visible { outline: 2px solid rgba(104, 229, 245, .65); outline-offset: 2px; }

/* ---------- 2. 侧栏与主菜单 ---------- */
.sidebar {
    background: linear-gradient(180deg, rgba(4, 16, 34, .96), rgba(3, 10, 24, .97)) !important;
    border-right: 1px solid var(--ui-line) !important;
}
.system-brand .brand-title { color: var(--ui-text-1) !important; letter-spacing: 1px; }
.system-brand .brand-sub { color: var(--ui-text-3) !important; letter-spacing: 2px; }
.system-live { color: var(--ui-green) !important; }

.nav-label {
    color: var(--ui-text-3) !important;
    font-size: 11px !important;
    letter-spacing: 2.5px;
    opacity: .85;
}
.main-nav .nav-link {
    color: var(--ui-text-2) !important;
    border-left: 2px solid transparent !important;
    border-radius: 0 8px 8px 0 !important;
    transition: background var(--ui-speed) ease, color var(--ui-speed) ease, border-color var(--ui-speed) ease;
}
.main-nav .nav-link span {
    text-shadow: none !important;
}
.main-nav .nav-link:hover {
    background: var(--ui-accent-soft) !important;
    color: var(--ui-text-1) !important;
    border-left-color: rgba(104, 229, 245, .55) !important;
}
.main-nav .nav-link.active {
    background: linear-gradient(90deg, rgba(104, 229, 245, .16), rgba(104, 229, 245, .03)) !important;
    color: #fff !important;
    border-left-color: var(--ui-accent) !important;
}
.global-task-entry {
    color: var(--ui-text-2) !important;
    border: 1px solid var(--ui-line) !important;
    border-radius: 8px !important;
    background: rgba(8, 28, 56, .6) !important;
    transition: border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease;
}
.global-task-entry:hover { border-color: var(--ui-line-strong) !important; box-shadow: var(--ui-glow-1); }
.global-task-entry b { background: var(--ui-accent) !important; color: #04121f !important; }

/* ---------- 3. 顶栏 ---------- */
.topbar {
    background: linear-gradient(180deg, rgba(5, 20, 42, .95), rgba(3, 12, 28, .92)) !important;
    border-bottom: 1px solid var(--ui-line) !important;
}
.topbar-title { color: var(--ui-text-1) !important; letter-spacing: 1px; }
.topbar-path { color: var(--ui-text-3) !important; letter-spacing: 1.5px; }
.account-copy strong { color: var(--ui-text-1) !important; }
.account-copy span { color: var(--ui-text-3) !important; }
.account-actions a { color: var(--ui-text-3) !important; transition: color var(--ui-speed) ease; }
.account-actions a:hover { color: var(--ui-accent) !important; }

/* ---------- 4. 面板与卡片 ---------- */
.tech-panel, .card, .stat-card, .table-wrap, .filter-bar {
    border-radius: var(--ui-radius) !important;
    box-shadow: inset 0 0 0 1px rgba(104, 220, 245, .1), 0 14px 34px rgba(0, 0, 0, .28) !important;
    transition: box-shadow var(--ui-speed) ease;
}
.tech-panel:hover, .card:hover { box-shadow: inset 0 0 0 1px rgba(104, 220, 245, .18), 0 16px 40px rgba(0, 0, 0, .34) !important; }
.qq-panel-title h2, .data-panel-title h3, .duty-feedback-panel-title h2,
.culture-detail-header h2, .overview-empty strong {
    color: var(--ui-text-1) !important;
}
.qq-panel-title span, .data-panel-title span, .duty-feedback-panel-title span {
    color: var(--ui-accent) !important;
    letter-spacing: 2px;
}
.feedback-empty, .overview-empty p { color: var(--ui-text-3) !important; }
.overview-empty strong { color: var(--ui-text-2) !important; }

/* ---------- 5. 按钮 ---------- */
.feedback-primary, .btn-login, button.feedback-primary {
    background: linear-gradient(135deg, #17b8dd, #0e8fd0) !important;
    color: #04121f !important;
    font-weight: 800 !important;
    font-family: var(--ui-font) !important;
    letter-spacing: 2px;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: 0 4px 16px rgba(23, 184, 221, .32) !important;
    transition: transform var(--ui-speed) ease, box-shadow var(--ui-speed) ease, filter var(--ui-speed) ease !important;
}
.feedback-primary:hover, .btn-login:hover {
    filter: brightness(1.12);
    transform: translateY(-1px);
    box-shadow: 0 6px 22px rgba(23, 184, 221, .45) !important;
}
.feedback-primary:active { transform: translateY(0); filter: brightness(.96); }
.feedback-secondary {
    background: rgba(104, 229, 245, .08) !important;
    color: var(--ui-accent) !important;
    font-family: var(--ui-font) !important;
    border: 1px solid rgba(104, 229, 245, .42) !important;
    border-radius: 8px !important;
    letter-spacing: 1px;
    transition: background var(--ui-speed) ease, box-shadow var(--ui-speed) ease, color var(--ui-speed) ease !important;
}
.feedback-secondary:hover {
    background: rgba(104, 229, 245, .16) !important;
    color: #eafcff !important;
    box-shadow: var(--ui-glow-1) !important;
}
.feedback-primary.compact, .feedback-secondary.compact { border-radius: 7px !important; }

/* ---------- 6. 表格 ---------- */
table { border-collapse: collapse; }
table thead th {
    color: var(--ui-text-3) !important;
    font-family: var(--ui-font) !important;
    font-weight: 700 !important;
    font-size: 13px !important;
    letter-spacing: 1px;
    background: rgba(9, 33, 66, .55) !important;
}
table tbody td, table tbody th {
    color: var(--ui-text-2) !important;
    font-family: var(--ui-font) !important;
    border-color: rgba(104, 220, 245, .12) !important;
}
table tbody tr { transition: background var(--ui-speed) ease; }
table tbody tr:hover td, table tbody tr:hover th {
    background: rgba(104, 229, 245, .05) !important;
    color: var(--ui-text-1) !important;
}
.member-table td, .archive-page tbody td { color: var(--ui-text-2) !important; text-shadow: none !important; }
.culture-score-table tbody th, .culture-score-table tbody td { font-family: var(--ui-font) !important; }

/* 状态徽章：统一观感、提高可读性 */
.duty-status, .status-chip {
    font-family: var(--ui-font) !important;
    font-weight: 700 !important;
    letter-spacing: 1px;
    border-radius: 999px !important;
    padding: 2px 10px !important;
}

/* ---------- 7. 表单控件 ---------- */
input[type="text"], input[type="password"], input[type="date"],
input[type="number"], input[type="file"], select, textarea {
    font-family: var(--ui-font) !important;
    color: var(--ui-text-1) !important;
    background: rgba(4, 16, 34, .85) !important;
    border: 1px solid rgba(104, 220, 245, .3) !important;
    border-radius: 8px !important;
    transition: border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease !important;
}
input:focus, select:focus, textarea:focus {
    border-color: rgba(104, 229, 245, .75) !important;
    box-shadow: 0 0 0 3px rgba(104, 229, 245, .14) !important;
    outline: none !important;
}
input::placeholder, textarea::placeholder { color: rgba(163, 192, 210, .55) !important; }
label { color: var(--ui-text-2) !important; }

/* ---------- 8. 提示与徽标 ---------- */
.archive-flash {
    border-radius: 8px !important;
    font-family: var(--ui-font) !important;
}
.archive-flash.success { border-color: rgba(119, 229, 173, .4) !important; color: var(--ui-green) !important; }
.archive-flash.danger, .archive-flash.error { border-color: rgba(255, 138, 155, .4) !important; color: var(--ui-red) !important; }
.archive-flash.info { border-color: var(--ui-line-strong) !important; color: var(--ui-text-2) !important; }

/* ---------- 9. 大数字与指标卡（该突出的突出） ---------- */
.duty-feedback-metrics article, .culture-period-score-grid > div {
    border-radius: var(--ui-radius) !important;
    background: linear-gradient(160deg, rgba(10, 36, 72, .85), rgba(4, 16, 34, .9)) !important;
    border: 1px solid var(--ui-line) !important;
}
.duty-feedback-metrics strong {
    font-size: 30px !important;
    font-weight: 900 !important;
    color: var(--ui-accent) !important;
    text-shadow: 0 0 18px rgba(104, 229, 245, .28) !important;
}
.duty-feedback-metrics span { color: var(--ui-text-3) !important; }
.culture-period-score-grid strong {
    color: var(--ui-accent) !important;
    text-shadow: 0 0 16px rgba(104, 229, 245, .24) !important;
}

/* ---------- 10. 弹窗抽屉 ---------- */
.culture-detail-drawer {
    border: 1px solid var(--ui-line-strong) !important;
    border-radius: 12px !important;
    background: linear-gradient(165deg, rgba(8, 30, 60, .98), rgba(3, 12, 28, .99)) !important;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .5), var(--ui-glow-1) !important;
}
.culture-detail-header p { color: var(--ui-text-3) !important; line-height: 1.7; }
.culture-option-tip { color: var(--ui-text-3) !important; }

/* ---------- 11. 链接 ---------- */
a { color: var(--ui-accent); text-decoration: none; }
a:hover { color: #a5efff; }
.committee-back-link { color: var(--ui-text-3) !important; }
.committee-back-link:hover { color: var(--ui-accent) !important; }

/* ---------- 12. 打印与降级 ---------- */
@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
.feedback-page .nav-link.leave-nav-link,
.dashboard-page .nav-link.leave-nav-link,
.archive-page .nav-link.leave-nav-link {
    color:#66e6ff !important;
    text-shadow:0 0 6px rgba(61,214,245,.78),0 0 14px rgba(61,214,245,.38);
}
.feedback-page .nav-link.leave-nav-link .nav-index,
.dashboard-page .nav-link.leave-nav-link .nav-index,
.archive-page .nav-link.leave-nav-link .nav-index {
    color:#8cf1ff !important;
    text-shadow:0 0 7px rgba(61,214,245,.82);
}

/* ---------- 13. 登录页最终覆盖（压制历代旧规则） ---------- */
body.login-page { font-family: var(--ui-font) !important; }
.login-page .core-message {
    color: transparent !important;
    background: linear-gradient(90deg, #68e5f5, #ffffff 58%, #2f8fff) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    border-left: 3px solid #68e5f5 !important;
    filter: drop-shadow(0 0 16px rgba(104, 229, 245, .28)) !important;
}
.login-page .core-message::after { background: #fff !important; box-shadow: 0 0 14px #68e5f5 !important; }
.login-page .btn-login {
    color: #04121f !important;
    -webkit-text-fill-color: #04121f !important;
    background: linear-gradient(135deg, #22c8ee, #1288cf) !important;
    font-weight: 800 !important;
}
.login-page .btn-login:hover {
    color: #04121f !important;
    -webkit-text-fill-color: #04121f !important;
    filter: brightness(1.1) !important;
    background: linear-gradient(135deg, #22c8ee, #1288cf) !important;
}
.login-page .lead-copy { color: #cfe6f2 !important; }
.login-page .support-copy { color: #a3c0d2 !important; }
.login-page .support-copy p:last-child { color: #a3c0d2 !important; }
.login-page .brand-name { color: #f2fbff !important; }
.login-page .brand-name span {
    color: transparent !important;
    background: linear-gradient(90deg, #68e5f5, #2f8fff) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}
.login-page .panel-kicker, .login-page .message-label { color: #68e5f5 !important; }
.login-page .security-line { color: #a3c0d2 !important; }
.login-page .security-line strong { color: #77e5ad !important; }
.login-page .form-group label { color: #a3c0d2 !important; }
.login-page .alert-danger { color: #ff8a9b !important; }
.login-page .footer { color: rgba(163, 192, 210, .45) !important; }

.monitor-work-columns { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 18px; align-items: start; }
.monitor-work-metrics article.warning { border-color: rgba(243, 201, 107, .45) !important; }
.monitor-work-metrics article.warning strong { color: #f3c96f !important; text-shadow: 0 0 16px rgba(243, 201, 107, .25) !important; }

.secretary-score-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; padding:18px 0; }
.secretary-score-grid article { padding:18px; border:1px solid rgba(104,220,245,.18); border-radius:10px; background:rgba(7,28,55,.72); }
.secretary-score-grid span, .secretary-score-grid small { display:block; color:var(--ui-text-3); }
.secretary-score-grid strong { display:block; margin:10px 0 4px; color:var(--ui-accent); font-size:24px; }

/* ===================== ADMIN PANEL (2026-09-10 统一管理面板) ===================== */
.admin-panel-main { display:flex; flex-direction:column; gap:26px; padding-bottom:48px; }
.admin-panel-block { display:flex; flex-direction:column; gap:14px; }
.admin-panel-block-head { display:flex; flex-direction:column; gap:4px; }
.admin-panel-block-head span { color:var(--ui-text-3); font-size:12px; letter-spacing:2px; }
.admin-panel-block-head h2 { margin:0; color:var(--ui-text-1); font-size:20px; }
.admin-panel-block-head p { margin:0; color:var(--ui-text-3); font-size:13px; }
.admin-backlog-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.admin-backlog-card { display:flex; flex-direction:column; gap:6px; padding:18px; text-decoration:none; transition:transform var(--ui-speed) ease, border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease; }
.admin-backlog-card:hover { transform:translateY(-2px); border-color:var(--ui-line-strong) !important; box-shadow:var(--ui-glow-1); }
.admin-backlog-card span { color:var(--ui-text-2); font-size:14px; }
.admin-backlog-card strong { color:var(--ui-text-1); font-size:34px; line-height:1.1; font-variant-numeric:tabular-nums; }
.admin-backlog-card small { color:var(--ui-text-3); font-size:12px; }
.admin-backlog-card em { margin-top:auto; color:var(--ui-accent); font-size:12px; font-style:normal; }
.admin-backlog-card.has-danger strong { color:var(--ui-red); text-shadow:0 0 16px rgba(255,138,155,.28); }
.admin-backlog-card:not(.has-danger) strong { color:var(--ui-green); }
.admin-alert-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:14px; }
.admin-alert-card { display:flex; flex-direction:column; gap:6px; padding:18px; text-decoration:none; transition:transform var(--ui-speed) ease, border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease; }
.admin-alert-card:hover { transform:translateY(-2px); border-color:var(--ui-line-strong) !important; box-shadow:var(--ui-glow-1); }
.admin-alert-card span { color:var(--ui-text-2); font-size:14px; }
.admin-alert-card strong { color:var(--ui-text-1); font-size:28px; font-variant-numeric:tabular-nums; }
.admin-alert-card small { color:var(--ui-text-3); font-size:12px; line-height:1.6; }
.admin-alert-card.has-danger { border-color:rgba(255,138,155,.4) !important; }
.admin-alert-card.has-danger strong { color:var(--ui-red); }
.admin-trend { padding:18px; display:flex; flex-direction:column; gap:14px; }
.admin-trend-head { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.admin-trend-head span { color:var(--ui-text-2); font-size:14px; }
.admin-trend-bars { display:flex; align-items:flex-end; gap:14px; height:120px; }
.admin-trend-bar { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; gap:4px; height:100%; }
.admin-trend-bar i { display:block; width:100%; max-width:38px; min-height:2px; border-radius:6px 6px 2px 2px; background:linear-gradient(180deg,var(--ui-accent),rgba(104,229,245,.25)); box-shadow:0 0 10px rgba(104,229,245,.28); transition:height var(--ui-speed) ease; }
.admin-trend-bar.is-empty i { background:rgba(163,192,210,.18); box-shadow:none; }
.admin-trend-bar b { color:var(--ui-text-1); font-size:13px; font-variant-numeric:tabular-nums; }
.admin-trend-bar small { color:var(--ui-text-3); font-size:11px; }
.admin-panel-foot { color:var(--ui-text-3); font-size:12px; padding:6px 2px; }

/* ===================== ADMIN PANEL SCI-FI LAYER v2 (2026-09-10 强化科技感) ===================== */
/* 作用域：仅 .admin-panel-page，不影响其他页面。 */
body.admin-panel-page {
    background-image:
        radial-gradient(1100px 520px at 78% -10%, rgba(104, 229, 245, .10), transparent 62%),
        radial-gradient(900px 480px at 8% 108%, rgba(60, 140, 255, .08), transparent 60%),
        linear-gradient(rgba(104, 220, 245, .045) 1px, transparent 1px),
        linear-gradient(90deg, rgba(104, 220, 245, .045) 1px, transparent 1px) !important;
    background-size: auto, auto, 44px 44px, 44px 44px !important;
    background-attachment: fixed !important;
}
body.admin-panel-page::after {
    content: "";
    position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background: repeating-linear-gradient(0deg, rgba(8, 20, 40, .16) 0 1px, transparent 1px 4px);
    mix-blend-mode: overlay; opacity: .35;
}
/* 仅提升主内容层叠以露出网格底层；侧栏/顶栏保持原 fixed 定位，严禁覆盖。 */
.admin-panel-page main.feedback-main { position: relative; z-index: 1; }

/* HUD 页头：角标 + 辉光标题 + 扫描分隔线 */
.admin-panel-page .data-overview-heading {
    position: relative; padding: 18px 22px 16px;
    border: 1px solid var(--ui-line); border-radius: var(--ui-radius);
    background: linear-gradient(120deg, rgba(9, 33, 66, .72), rgba(6, 25, 52, .38) 58%, rgba(9, 33, 66, .55));
    box-shadow: var(--ui-shadow-1), inset 0 0 26px rgba(104, 229, 245, .05);
    overflow: hidden;
}
.admin-panel-page .data-overview-heading::before,
.admin-panel-page .data-overview-heading::after {
    content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none;
    border-color: var(--ui-accent); border-style: solid; opacity: .9;
}
.admin-panel-page .data-overview-heading::before { top: 8px; left: 8px; border-width: 2px 0 0 2px; }
.admin-panel-page .data-overview-heading::after { bottom: 8px; right: 8px; border-width: 0 2px 2px 0; }
.admin-panel-page .data-overview-heading > div::after {
    content: ""; display: block; margin-top: 12px; height: 2px; width: 100%;
    background: linear-gradient(90deg, var(--ui-accent), rgba(104, 229, 245, .06) 70%);
    box-shadow: 0 0 10px rgba(104, 229, 245, .5);
}
.admin-panel-page .data-overview-heading span { color: var(--ui-accent) !important; text-shadow: 0 0 12px rgba(104, 229, 245, .55); }
.admin-panel-page .data-overview-heading h1 {
    background: linear-gradient(92deg, #f2fbff 20%, #7deaff 65%, #49c9de);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 14px rgba(104, 229, 245, .28));
}

/* 区块标题：科技前缀条 + 呼吸下划线 */
.admin-panel-page .admin-panel-block-head { position: relative; padding-left: 14px; }
.admin-panel-page .admin-panel-block-head::before {
    content: ""; position: absolute; left: 0; top: 4px; bottom: 4px; width: 3px;
    border-radius: 2px; background: linear-gradient(180deg, var(--ui-accent), rgba(104, 229, 245, .12));
    box-shadow: 0 0 10px rgba(104, 229, 245, .55);
}
.admin-panel-page .admin-panel-block-head h2 { letter-spacing: 1px; text-shadow: 0 0 16px rgba(104, 229, 245, .22); }
.admin-panel-page .admin-panel-block-head span { font-family: Consolas, monospace; letter-spacing: 3px; }

/* HUD 卡片：四角括标 + 悬停光扫（2026-09-11 v5.2：管理卡统一改走全局 HUD 框架与扫描线，
   此处仅保留定位上下文；专属伪元素装饰已删除，避免与全局框架双重背景冲突） */
.admin-panel-page .data-overview-kpis article,
.admin-panel-page .data-slot-card,
.admin-panel-page .admin-backlog-card,
.admin-panel-page .admin-alert-card,
.admin-panel-page .admin-trend { position: relative; overflow: hidden; }

/* 数字：渐变辉光大数字 */
.admin-panel-page .data-overview-kpis article strong,
.admin-panel-page .data-slot-card strong {
    background: linear-gradient(180deg, #eafcff, #6fe3f7);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 12px rgba(104, 229, 245, .35));
    letter-spacing: .5px;
}
.admin-panel-page .data-overview-kpis article .data-good { text-shadow: none; }
.admin-panel-page .data-slot-card.has-danger::before { border-color: rgba(255, 138, 155, .85); }

/* 积压卡：风险呼吸灯 + 数值辉光 */
.admin-panel-page .admin-backlog-card { border-left: 2px solid rgba(119, 229, 173, .5) !important; }
.admin-panel-page .admin-backlog-card.has-danger { border-left-color: rgba(255, 138, 155, .85) !important; }
.admin-panel-page .admin-backlog-card.has-danger strong {
    background: linear-gradient(180deg, #ffe9ec, #ff8a9b);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0 12px rgba(255, 138, 155, .45));
    text-shadow: none;
}
.admin-panel-page .admin-backlog-card em { font-family: Consolas, monospace; letter-spacing: 1px; }
.admin-panel-page .admin-backlog-card.has-danger::marker { content: none; }

/* 重点异常卡：告警角灯闪烁 */
.admin-panel-page .admin-alert-card.has-danger::after { opacity: 0; }
.admin-panel-page .admin-alert-card.has-danger span { color: var(--ui-red); }
@keyframes adminAlertBlink {
    0%, 100% { box-shadow: 0 0 0 0 rgba(255, 138, 155, .38), var(--ui-shadow-1); }
    50% { box-shadow: 0 0 18px 2px rgba(255, 138, 155, .16), var(--ui-shadow-1); }
}
.admin-panel-page .admin-alert-card.has-danger { animation: adminAlertBlink 2.4s ease-in-out infinite; }

/* 趋势柱：渐变辉光 + 最新日呼吸 */
.admin-panel-page .admin-trend-bar i {
    background: linear-gradient(180deg, #9df1ff, rgba(104, 229, 245, .18));
    box-shadow: 0 0 14px rgba(104, 229, 245, .4), inset 0 0 6px rgba(255, 255, 255, .18);
}
@keyframes adminBarBreath {
    0%, 100% { filter: brightness(1); }
    50% { filter: brightness(1.35); }
}
.admin-panel-page .admin-trend-bar:last-child i { animation: adminBarBreath 2.2s ease-in-out infinite; }

/* 机器人在线徽章：雷达环 */
.admin-panel-page .data-overview-runtime {
    position: relative; border: 1px solid rgba(119, 229, 173, .4); border-radius: 999px;
    padding: 8px 18px; background: rgba(10, 34, 50, .6);
}
.admin-panel-page .data-overview-runtime.is-online { animation: adminAlertBlink 2.8s ease-in-out infinite; }
.admin-panel-page .data-overview-runtime .live-dot { box-shadow: 0 0 10px rgba(119, 229, 173, .9); }

/* 待办积压区呼吸点 */
.admin-panel-page .admin-live-dot {
    display: inline-block; width: 8px; height: 8px; margin-left: 8px; border-radius: 50%;
    background: var(--ui-accent); box-shadow: 0 0 8px rgba(104, 229, 245, .8);
    animation: adminBarBreath 1.8s ease-in-out infinite;
}

/* 入场动效（尊重减弱动态偏好） */
@keyframes adminFadeUp {
    from { opacity: 0; transform: translateY(14px); }
    to { opacity: 1; transform: translateY(0); }
}
.admin-panel-page .admin-panel-block, .admin-panel-page .data-overview-heading {
    animation: adminFadeUp .5s ease both;
}
.admin-panel-page .admin-panel-block:nth-of-type(2) { animation-delay: .08s; }
.admin-panel-page .admin-panel-block:nth-of-type(3) { animation-delay: .16s; }
.admin-panel-page .admin-panel-block:nth-of-type(4) { animation-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
    .admin-panel-page * { animation: none !important; transition: none !important; }
}

/* 页脚签名 */
.admin-panel-page .admin-panel-foot { font-family: Consolas, monospace; letter-spacing: 1px; opacity: .75; }

/* ===================== ADMIN PANEL HOLO LAYER v3 (2026-09-10 悬浮全息+流光) ===================== */
/* 作用域：仅 .admin-panel-page。不改动布局骨架的 position。 */

@property --admin-beam { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes adminBeamSpin { to { --admin-beam: 360deg; } }
@keyframes adminFlowLine { from { background-position: 220% 0; } to { background-position: -220% 0; } }
@keyframes adminStreakSweep { from { transform: translateX(-130vw) skewX(-16deg); } to { transform: translateX(130vw) skewX(-16deg); } }
@keyframes adminHoloFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }

/* 背景能量光束：一道斜向流光缓慢掠过全屏 */
body.admin-panel-page::before {
    content: ""; position: fixed; top: -12%; bottom: -12%; left: 0; width: 22vw;
    z-index: 0; pointer-events: none;
    background: linear-gradient(90deg, transparent, rgba(120, 232, 255, .075) 45%, rgba(160, 245, 255, .12) 50%, rgba(120, 232, 255, .075) 55%, transparent);
    animation: adminStreakSweep 12s linear infinite;
}

/* 玻璃拟态底座：KPI 与场次卡（不跑流光，保持安静） */
.admin-panel-page .data-overview-kpis article,
.admin-panel-page .data-slot-card {
    background: linear-gradient(165deg, rgba(16, 48, 92, .62), rgba(7, 24, 48, .5)) !important;
    backdrop-filter: blur(7px);
    box-shadow: 0 14px 34px rgba(0, 0, 0, .38), inset 0 1px 0 rgba(190, 244, 255, .18) !important;
}

/* 流光边框：页头 / 积压卡 / 告警卡 / 趋势面板 */
.admin-panel-page .data-overview-heading {
    background:
        repeating-radial-gradient(circle at 92% 135%, rgba(104, 229, 245, .055) 0 1px, transparent 1px 26px) padding-box,
        linear-gradient(165deg, rgba(16, 48, 92, .68), rgba(7, 24, 48, .55)) padding-box,
        conic-gradient(from var(--admin-beam), rgba(104, 220, 245, .06) 0deg, rgba(104, 220, 245, .06) 296deg, rgba(146, 240, 255, .85) 342deg, #ffffff 352deg, rgba(104, 220, 245, .06) 360deg) border-box !important;
    animation: adminFadeUp .5s ease both, adminBeamSpin 7s linear infinite, adminHoloFloat 8s ease-in-out 1.2s infinite;
    border: 1px solid rgba(104, 220, 245, .2);
}
.admin-panel-page .admin-backlog-card,
.admin-panel-page .admin-alert-card,
.admin-panel-page .admin-trend {
    border: 1px solid rgba(104, 220, 245, .16) !important;
    background:
        linear-gradient(165deg, rgba(16, 48, 92, .6), rgba(7, 24, 48, .48)) padding-box,
        conic-gradient(from var(--admin-beam), rgba(104, 220, 245, .05) 0deg, rgba(104, 220, 245, .05) 306deg, rgba(146, 240, 255, .7) 346deg, rgba(255, 255, 255, .85) 354deg, rgba(104, 220, 245, .05) 360deg) border-box !important;
    backdrop-filter: blur(6px);
    animation: adminBeamSpin 9s linear infinite;
}
.admin-panel-page .admin-backlog-card { border-left: 2px solid rgba(119, 229, 173, .55) !important; }
.admin-panel-page .admin-backlog-card.has-danger { border-left-color: rgba(255, 138, 155, .9) !important; }
.admin-panel-page .admin-alert-card.has-danger {
    background:
        linear-gradient(165deg, rgba(84, 26, 44, .5), rgba(30, 12, 24, .46)) padding-box,
        conic-gradient(from var(--admin-beam), rgba(255, 138, 155, .06) 0deg, rgba(255, 138, 155, .06) 306deg, rgba(255, 170, 185, .75) 346deg, #ffd7dd 354deg, rgba(255, 138, 155, .06) 360deg) border-box !important;
    border-color: rgba(255, 138, 155, .3) !important;
}

/* 标题下的流动光线 */
.admin-panel-page .admin-panel-block-head h2 { position: relative; padding-bottom: 9px; }
.admin-panel-page .admin-panel-block-head h2::after {
    content: ""; position: absolute; left: 0; bottom: 0; height: 2px; width: 150px; border-radius: 2px;
    background: linear-gradient(90deg, transparent, #9df1ff 45%, #ffffff 55%, transparent);
    background-size: 220% 100%;
    animation: adminFlowLine 3s linear infinite;
    filter: drop-shadow(0 0 7px rgba(104, 229, 245, .85));
}

/* —— 文字层级提亮：醒目且舒适 —— */
.admin-panel-page .data-overview-heading h1 { font-weight: 800; letter-spacing: 2px; }
.admin-panel-page .data-overview-heading p { color: #d7ecf8 !important; text-shadow: 0 1px 3px rgba(0, 0, 0, .45); }
.admin-panel-page .data-overview-heading span { font-weight: 600; }
.admin-panel-page .admin-panel-block-head h2 { color: #ffffff; font-weight: 700; text-shadow: 0 0 18px rgba(104, 229, 245, .35), 0 1px 2px rgba(0, 0, 0, .5); }
.admin-panel-page .admin-panel-block-head span { color: #8ee9f8 !important; font-weight: 600; text-shadow: 0 0 10px rgba(104, 229, 245, .5); }
.admin-panel-page .admin-panel-block-head p { color: #c6dfee !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .4); }

.admin-panel-page .data-overview-kpis article span,
.admin-panel-page .data-slot-card span {
    color: #f2fbff !important; font-weight: 600; letter-spacing: .5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}
.admin-panel-page .data-slot-card p { color: #d5e9f5 !important; }
.admin-panel-page .data-overview-kpis small,
.admin-panel-page .data-slot-card small { color: #b7d2e4 !important; }
.admin-panel-page .data-overview-kpis article strong,
.admin-panel-page .data-slot-card strong {
    background: linear-gradient(180deg, #ffffff, #8ceaff) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    filter: drop-shadow(0 0 14px rgba(104, 229, 245, .5)) !important;
}
.admin-panel-page .data-slot-card strong { font-size: 26px; }

.admin-panel-page .admin-backlog-card span,
.admin-panel-page .admin-alert-card span {
    color: #f2fbff !important; font-weight: 600; letter-spacing: .5px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .45);
}
.admin-panel-page .admin-alert-card.has-danger span { color: #ffc4cd !important; text-shadow: 0 0 12px rgba(255, 138, 155, .4); }
.admin-panel-page .admin-backlog-card small,
.admin-panel-page .admin-alert-card small { color: #bcd6e8 !important; line-height: 1.6; }
.admin-panel-page .admin-backlog-card strong { font-size: 38px; }
.admin-panel-page .admin-backlog-card:not(.has-danger) strong {
    background: linear-gradient(180deg, #f4fffb, #8df5c4) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    filter: drop-shadow(0 0 12px rgba(119, 229, 173, .45)) !important;
}
.admin-panel-page .admin-alert-card strong { color: #ffffff; text-shadow: 0 0 14px rgba(146, 240, 255, .45); }
.admin-panel-page .admin-alert-card.has-danger strong { text-shadow: 0 0 16px rgba(255, 138, 155, .55); }

.admin-panel-page .admin-trend-head span { color: #eaf7ff !important; font-weight: 600; }
.admin-panel-page .admin-trend-bar b { color: #ffffff; text-shadow: 0 0 9px rgba(104, 229, 245, .75); }
.admin-panel-page .admin-trend-bar small { color: #c6dfee; }
.admin-panel-page .admin-panel-foot { color: #a8c6da; }

/* ===================== GLOBAL HOLO FRAME v4 (2026-09-11 全站流光扫描) ===================== */
/* 全站生效；登录页保留自身最强边框变体。不改动布局骨架的 position。 */

/* —— 全屏扫描光束：细亮线周期性自上而下扫过整页 —— */
html::before {
    content: ""; position: fixed; inset: 0; z-index: 9999; pointer-events: none;
    background: linear-gradient(180deg,
        transparent 0 42%,
        rgba(146, 240, 255, .045) 46%,
        rgba(220, 252, 255, .15) 49.6% 50.4%,
        rgba(146, 240, 255, .045) 54%,
        transparent 58%) no-repeat;
    background-size: 100% 30%;
    background-position: 0 -32%;
    animation: holo-page-scan 11s linear infinite;
}
@keyframes holo-page-scan {
    0%, 58% { background-position: 0 -32%; }
    94%, 100% { background-position: 0 132%; }
}

/* —— 卡片边框与线条全面提亮 —— */
.feedback-panel:not(.discipline-data-board), .card, .stat-card, .table-wrap,
.filter-bar, .tech-panel, .work-department-panel, .committee-role-entry {
    border-color: rgba(126, 232, 252, .52) !important;
    box-shadow:
        0 0 0 1px rgba(104, 229, 245, .14),
        0 14px 34px rgba(2, 10, 24, .42),
        inset 0 0 26px rgba(104, 229, 245, .05) !important;
    outline: 1px dashed rgba(120, 228, 252, .42) !important;
    outline-offset: 5px;
}
.sidebar { border-right-color: rgba(104, 229, 245, .42) !important; box-shadow: inset -1px 0 0 rgba(104, 229, 245, .22), 10px 0 34px rgba(3, 10, 24, .5) !important; }
.topbar { border-bottom: 1px solid rgba(104, 229, 245, .38) !important; box-shadow: 0 10px 30px rgba(2, 8, 20, .5), 0 1px 0 rgba(104, 229, 245, .2) !important; }
.main-nav .nav-link { border: 1px solid transparent; transition: border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease, background var(--ui-speed) ease; }
.main-nav .nav-link:hover { border-color: rgba(104, 229, 245, .45) !important; box-shadow: inset 0 0 20px rgba(104, 229, 245, .12), 0 0 16px rgba(104, 229, 245, .16); }
.main-nav .nav-link.active { border-color: rgba(146, 240, 255, .6) !important; }

/* 顶部流光线：更亮更快（线条感） */
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
.filter-bar::before, .tech-panel::before, .work-department-panel::before,
.committee-role-entry::before {
    background: linear-gradient(90deg,
        transparent 0 13%,
        rgba(146, 240, 255, .42) 19%,
        #ffffff 26%,
        #8ceaff 33%,
        rgba(177, 106, 255, .92) 43%,
        rgba(146, 240, 255, .32) 52%,
        transparent 65%) !important;
    opacity: 1 !important;
    animation: hud-energy-sweep 5.2s linear infinite !important;
    box-shadow: 0 0 14px rgba(146, 240, 255, .85), 0 0 34px rgba(104, 229, 245, .32) !important;
}

/* 四角刻线与底部光线：提亮 + 辉光（2026-09-11 v5.2：移除 7 层扫描背景——
   其大尺寸斜向渐变曾被拉伸为横穿整卡的斜线遮挡文字；::after 回归基线小尺寸刻线，
   卡内扫描动效仅保留在管理面板的专用扫描条上） */
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after {
    opacity: .8 !important;
    filter: drop-shadow(0 0 5px rgba(104, 229, 245, .45));
}

/* 表格行：悬停亮线 */
.data-table tbody tr, table tbody tr { transition: background var(--ui-speed) ease, box-shadow var(--ui-speed) ease; }
.data-table tbody tr:hover, table tbody tr:hover { box-shadow: inset 2px 0 0 rgba(146, 240, 255, .75), inset 0 0 22px rgba(104, 229, 245, .06); }

/* 动效偏好保护扩展 */
@media (prefers-reduced-motion: reduce) {
    html::before { animation: none !important; }
    .feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
    .filter-bar::before, .tech-panel::before, .work-department-panel::before,
    .committee-role-entry::before,
    .feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
    .filter-bar::after, .tech-panel::after, .work-department-panel::after,
    .committee-role-entry::after { animation: none !important; }
}

/* ===================== ADMIN PANEL v4 TUNE（流光光点 + 卡内扫描） ===================== */
/* 应用户反馈：v3 的宽光楔改为窄光点沿边框奔跑 + 卡内真实扫描线。 */
@keyframes adminCardScan {
    0%, 50% { background-position: 0 0, 0 0, -45% 0, 0 0; }
    86%, 100% { background-position: 0 0, 0 0, 148% 0, 0 0; }
}
.admin-panel-page .data-overview-heading {
    background:
        repeating-radial-gradient(circle at 92% 135%, rgba(104, 229, 245, .05) 0 1px, transparent 1px 26px) padding-box,
        linear-gradient(165deg, rgba(16, 48, 92, .68), rgba(7, 24, 48, .55)) padding-box,
        linear-gradient(90deg, transparent 0 38%, rgba(146, 240, 255, .12) 45%, rgba(226, 253, 255, .85) 49.6% 50.4%, rgba(146, 240, 255, .12) 55%, transparent 62%) no-repeat padding-box,
        conic-gradient(from var(--admin-beam), rgba(104, 220, 245, .05) 0deg, rgba(104, 220, 245, .05) 336deg, rgba(146, 240, 255, .95) 350deg, #ffffff 355deg, rgba(104, 220, 245, .05) 360deg) border-box !important;
    background-size: auto, auto, 40% 100%, auto !important;
    background-repeat: no-repeat !important;
    animation: adminFadeUp .5s ease both, adminBeamSpin 6.5s linear infinite, adminCardScan 6.5s cubic-bezier(.45, 0, .55, 1) infinite, adminHoloFloat 8s ease-in-out 1.2s infinite;
}
.admin-panel-page .admin-backlog-card,
.admin-panel-page .admin-alert-card,
.admin-panel-page .admin-trend {
    border: 1px solid rgba(126, 232, 252, .5) !important;
    background:
        linear-gradient(165deg, rgba(16, 48, 92, .6), rgba(7, 24, 48, .48)) padding-box,
        linear-gradient(90deg, transparent 0 38%, rgba(146, 240, 255, .11) 45%, rgba(226, 253, 255, .8) 49.6% 50.4%, rgba(146, 240, 255, .11) 55%, transparent 62%) no-repeat padding-box,
        conic-gradient(from var(--admin-beam), rgba(104, 220, 245, .05) 0deg, rgba(104, 220, 245, .05) 338deg, rgba(146, 240, 255, .9) 351deg, #ffffff 356deg, rgba(104, 220, 245, .05) 360deg) border-box !important;
    background-size: auto, 40% 100%, auto !important;
    background-repeat: no-repeat !important;
    animation: adminBeamSpin 7s linear infinite, adminCardScan 7s cubic-bezier(.45, 0, .55, 1) infinite;
}
.admin-panel-page .admin-backlog-card { border-left: 2px solid rgba(119, 229, 173, .6) !important; }
.admin-panel-page .admin-backlog-card.has-danger { border-left-color: rgba(255, 138, 155, .95) !important; }
.admin-panel-page .admin-alert-card.has-danger {
    border-color: rgba(255, 138, 155, .38) !important;
    background:
        linear-gradient(165deg, rgba(84, 26, 44, .48), rgba(30, 12, 24, .44)) padding-box,
        linear-gradient(90deg, transparent 0 38%, rgba(255, 170, 185, .12) 45%, rgba(255, 226, 231, .85) 49.6% 50.4%, rgba(255, 170, 185, .12) 55%, transparent 62%) no-repeat padding-box,
        conic-gradient(from var(--admin-beam), rgba(255, 138, 155, .05) 0deg, rgba(255, 138, 155, .05) 338deg, rgba(255, 180, 195, .95) 351deg, #ffe9ed 356deg, rgba(255, 138, 155, .05) 360deg) border-box !important;
}

/* ===================== GLOBAL STATIC MODE v5 (2026-09-11 静态光效) ===================== */
/* 应用户要求：装饰动效全部停用，光效保留为静态形态（亮边框/刻线/辉光/玻璃质感不变）。 */

/* 停用全部装饰动画（含早期 clarity-* 系列、HUD 流光扫描、登录页变体） */
.feedback-panel, .card, .stat-card, .table-wrap, .filter-bar, .tech-panel,
.work-department-panel, .committee-role-entry,
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
.filter-bar::before, .tech-panel::before, .work-department-panel::before,
.committee-role-entry::before,
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after,
.nav-link.active, .system-brand, .system-live .live-dot, .discipline-status-dot,
.page-title h1, .feedback-header h1, .topbar-title, .committee-work-heading h1,
.committee-role-heading h1, .work-report-heading h1, .discipline-heading h1,
body::before, body::after,
.login-page .tech-panel::before, .login-page .tech-panel::after,
.stat-card .stat-number, .overview-metrics strong, .discipline-metric strong,
.work-report-metrics strong {
    animation: none !important;
}

/* 移除全屏扫描光束与背景掠过光束 */
html::before { content: none !important; }
body.admin-panel-page::before { content: none !important; }

/* 卡片顶部：静态能量线（整条常态显示，不再跑动） */
.feedback-panel::before, .card::before, .stat-card::before, .table-wrap::before,
.filter-bar::before, .tech-panel::before, .work-department-panel::before,
.committee-role-entry::before {
    background: linear-gradient(90deg,
        transparent 0 6%,
        rgba(146, 240, 255, .5) 16%,
        #ffffff 30%,
        #8ceaff 42%,
        rgba(177, 106, 255, .66) 55%,
        rgba(146, 240, 255, .38) 70%,
        transparent 94%) !important;
    background-size: 100% 100% !important;
    background-position: 0 0 !important;
    opacity: .95 !important;
    box-shadow: 0 0 12px rgba(146, 240, 255, .7), 0 0 30px rgba(104, 229, 245, .28) !important;
}

/* 卡片四角刻线：静态定格（移除内部扫描层） */
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after {
    opacity: .8 !important;
    filter: drop-shadow(0 0 5px rgba(104, 229, 245, .45));
    background:
        linear-gradient(135deg, transparent 0 48%, rgba(150, 242, 255, .85) 50% 53%, transparent 55%) left top / 34px 34px no-repeat,
        linear-gradient(315deg, transparent 0 48%, rgba(150, 242, 255, .85) 50% 53%, transparent 55%) right top / 34px 34px no-repeat,
        linear-gradient(45deg, transparent 0 48%, rgba(150, 242, 255, .85) 50% 53%, transparent 55%) left bottom / 34px 34px no-repeat,
        linear-gradient(225deg, transparent 0 48%, rgba(150, 242, 255, .85) 50% 53%, transparent 55%) right bottom / 34px 34px no-repeat,
        repeating-linear-gradient(135deg, rgba(104, 229, 245, .26) 0 2px, transparent 2px 7px) right 13px top 16px / 46px 22px no-repeat,
        linear-gradient(90deg, transparent, rgba(150, 242, 255, .65), transparent) center bottom / 170px 1px no-repeat !important;
}

/* —— 管理面板：静态化 —— */
.admin-panel-page .data-overview-heading {
    background:
        repeating-radial-gradient(circle at 92% 135%, rgba(104, 229, 245, .05) 0 1px, transparent 1px 26px) padding-box,
        linear-gradient(165deg, rgba(16, 48, 92, .68), rgba(7, 24, 48, .55)) padding-box !important;
    background-size: auto, auto !important;
    animation: adminFadeUp .5s ease both !important;
    border-color: rgba(126, 232, 252, .55) !important;
}
.admin-panel-page .admin-backlog-card,
.admin-panel-page .admin-alert-card,
.admin-panel-page .admin-trend {
    border: 1px solid rgba(126, 232, 252, .5) !important;
    background: linear-gradient(165deg, rgba(16, 48, 92, .6), rgba(7, 24, 48, .48)) !important;
    animation: none !important;
}
.admin-panel-page .admin-backlog-card { border-left: 2px solid rgba(119, 229, 173, .6) !important; }
.admin-panel-page .admin-backlog-card.has-danger { border-left-color: rgba(255, 138, 155, .95) !important; }
.admin-panel-page .admin-alert-card.has-danger {
    border-color: rgba(255, 138, 155, .42) !important;
    background: linear-gradient(165deg, rgba(84, 26, 44, .46), rgba(30, 12, 24, .42)) !important;
    box-shadow: 0 0 22px rgba(255, 138, 155, .12), inset 0 1px 0 rgba(255, 200, 210, .18) !important;
}
.admin-panel-page .admin-panel-block-head h2::after {
    animation: none !important;
    background-position: 40% 0 !important;
}
.admin-panel-page .admin-live-dot,
.admin-panel-page .admin-trend-bar:last-child i,
.admin-panel-page .data-overview-runtime.is-online { animation: none !important; }
.admin-panel-page .admin-backlog-card.has-danger strong {
    background: linear-gradient(180deg, #ffe9ec, #ff8a9b) !important;
    -webkit-background-clip: text !important; background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 0 12px rgba(255, 138, 155, .45)) !important;
}

/* ===================== HOLO v5 DYNAMIC FIX (2026-09-11 动效修正) ===================== */
/* 针对反馈"特效看起来是静态的"：
   1) 移除管理卡片上的宽 conic 光楔（视觉上像静态贴片）；
   2) 每张管理卡片改为【真扫描条】——细亮竖向光条快速横扫整卡，扫完停顿；
   3) 卡片顶边加【流光光点】沿边缘跑动；
   4) 面板大标题加文字流光扫过；
   5) 全站卡片扫描线收窄变锐（去掉宽软光带感），全屏扫描光束略微增强。 */

/* —— 管理卡片：纯玻璃底座 + 明亮边框，去掉 conic 光楔 —— */
.admin-panel-page .admin-backlog-card,
.admin-panel-page .admin-alert-card,
.admin-panel-page .admin-trend {
    background: linear-gradient(165deg, rgba(16, 48, 92, .6), rgba(7, 24, 48, .48)) padding-box !important;
    border: 1px solid rgba(126, 232, 252, .55) !important;
    animation: none !important;
}
.admin-panel-page .admin-backlog-card { border-left: 2px solid rgba(119, 229, 173, .6) !important; }
.admin-panel-page .admin-backlog-card.has-danger { border-left-color: rgba(255, 138, 155, .95) !important; }
.admin-panel-page .admin-alert-card.has-danger {
    background: linear-gradient(165deg, rgba(84, 26, 44, .48), rgba(30, 12, 24, .44)) padding-box !important;
    border-color: rgba(255, 138, 155, .4) !important;
}

/* 顶边流光与卡内扫描条（v5.2 移除）：管理卡片统一走全局 HUD 框架动效
   （::before 顶部流光 hud-energy-sweep、::after 四角刻线 + holo-card-scan 扫描线），
   避免与全局装饰在同一伪元素上双重背景冲突。 */

/* 面板页头：去 conic 光楔，保留雷达环 + 悬浮；标题渐变提亮 */
.admin-panel-page .data-overview-heading {
    background:
        repeating-radial-gradient(circle at 92% 135%, rgba(104, 229, 245, .05) 0 1px, transparent 1px 26px) padding-box,
        linear-gradient(165deg, rgba(16, 48, 92, .68), rgba(7, 24, 48, .55)) padding-box !important;
    background-size: auto, auto !important;
    background-repeat: no-repeat !important;
    border: 1px solid rgba(126, 232, 252, .55) !important;
    animation: adminFadeUp .5s ease both, adminHoloFloat 8s ease-in-out 1.2s infinite !important;
}
.admin-panel-page .data-overview-heading h1 {
    background: linear-gradient(100deg, #f2fbff 32%, #9df1ff 44%, #ffffff 50%, #9df1ff 56%, #f2fbff 68%) !important;
    background-size: 250% 100% !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 0 14px rgba(104, 229, 245, .32)) !important;
}

/* 全站卡片扫描线（v5.2 移除）：基于 background-position 的方案存在
   "!important 简写钉死位置 / 多层尺寸错配拉伸为全卡斜线"两类问题，已整体撤除。
   卡内扫描动效仅保留在管理面板的专用扫描条（见文件末尾 v5.2 段）。 */

/* 全屏扫描光束：略微增强存在感 */
html::before {
    background: linear-gradient(180deg,
        transparent 0 42%,
        rgba(146, 240, 255, .06) 46%,
        rgba(226, 252, 255, .22) 49.6% 50.4%,
        rgba(146, 240, 255, .06) 54%,
        transparent 58%) no-repeat;
    animation: holo-page-scan 9.5s linear infinite;
}

/* ===================== HOLO v5.1 CASCADE FIX (2026-09-11 装饰恢复层) ===================== */
/* 根因：2026-08-11"简洁科技风"层（本文件 ~3008-3400 行）用 !important 全局禁用了
   卡片装饰伪元素（display:none/content:none）与标题渐变（background-image:none/
   animation:none），导致之后追加的扫描线、角标、流光、标题渐变全部不渲染。
   本段位于文件最末尾，用更晚的 !important 重新启用；登录页维持简洁形态。 */

/* 1) 恢复全站卡片 HUD 装饰（四角刻线 + 顶部流光 + 卡内扫描线） */
body:not(.login-page) .feedback-panel::before,
body:not(.login-page) .feedback-panel::after,
body:not(.login-page) .card::before,
body:not(.login-page) .card::after,
body:not(.login-page) .stat-card::before,
body:not(.login-page) .stat-card::after,
body:not(.login-page) .table-wrap::before,
body:not(.login-page) .table-wrap::after,
body:not(.login-page) .filter-bar::before,
body:not(.login-page) .filter-bar::after,
body:not(.login-page) .tech-panel::before,
body:not(.login-page) .tech-panel::after,
body:not(.login-page) .work-department-panel::before,
body:not(.login-page) .work-department-panel::after,
body:not(.login-page) .committee-role-entry::before,
body:not(.login-page) .committee-role-entry::after {
    display: block !important;
    content: "" !important;
}

/* 2) 管理面板大标题：恢复渐变（压过简洁层的重置） */
.admin-panel-page .data-overview-heading h1 {
    background: linear-gradient(100deg, #f2fbff 32%, #9df1ff 44%, #ffffff 50%, #9df1ff 56%, #f2fbff 68%) !important;
    background-size: 250% 100% !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 0 14px rgba(104, 229, 245, .32)) !important;
}

/* 3) 管理面板告警卡呼吸灯：恢复（v5 曾用 animation:none!important 误杀） */
.admin-panel-page .admin-alert-card.has-danger {
    animation: adminAlertBlink 2.4s ease-in-out infinite !important;
}

/* 4) 管理面板背景能量光束：恢复（简洁层禁用了 body::before） */
body.admin-panel-page::before {
    display: block !important;
    content: "" !important;
}

/* 5) 近 7 天趋势柱呼吸：恢复 */
.admin-panel-page .admin-trend-bar:last-child i {
    animation: adminBarBreath 2.2s ease-in-out infinite !important;
}

/* ===================== ADMIN PANEL v5.2 SCAN BAR (2026-09-11) ===================== */
/* 管理面板卡内专用扫描条：窄光条以 transform 横扫（transform 不受背景层 ！important 钉死影响），
   位于内容层（z-index 3）之下，快速掠过不遮字；几何与动画用 ！important 压过基线 inset/shimmer。 */
.admin-panel-page .admin-backlog-card::after,
.admin-panel-page .admin-alert-card::after,
.admin-panel-page .admin-trend::after {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    top: 6px !important;
    bottom: 6px !important;
    left: 6px !important;
    right: auto !important;
    width: 64px !important;
    z-index: 2 !important;
    pointer-events: none;
    background: linear-gradient(90deg,
        transparent,
        rgba(146, 240, 255, .05) 30%,
        rgba(210, 250, 255, .3) 46%,
        rgba(245, 253, 255, .75) 50%,
        rgba(210, 250, 255, .3) 54%,
        rgba(146, 240, 255, .05) 70%,
        transparent) !important;
    transform: translateX(-90px) skewX(-14deg);
    filter: drop-shadow(0 0 8px rgba(146, 240, 255, .5));
    animation: adminScanBar 4.6s cubic-bezier(.55, .08, .45, .92) infinite !important;
}
.admin-panel-page .admin-alert-card.has-danger::after {
    background: linear-gradient(90deg,
        transparent,
        rgba(255, 170, 185, .06) 30%,
        rgba(255, 210, 220, .36) 46%,
        rgba(255, 242, 246, .82) 50%,
        rgba(255, 210, 220, .36) 54%,
        rgba(255, 170, 185, .06) 70%,
        transparent) !important;
    filter: drop-shadow(0 0 8px rgba(255, 138, 155, .55));
}
@keyframes adminScanBar {
    0%, 40% { transform: translateX(-90px) skewX(-14deg); }
    88%, 100% { transform: translateX(1250px) skewX(-14deg); }
}

/* ===================== HOLO v6 FINAL (2026-09-11) ===================== */
/* 本段位于文件最末尾，为全站最终裁决层。原则：装饰永不遮字。 */

/* —— 1) 取消四角斜杠刻线：:after 背景全部清空（含旧 6 层斜向渐变） —— */
.feedback-panel::after, .card::after, .stat-card::after, .table-wrap::after,
.filter-bar::after, .tech-panel::after, .work-department-panel::after,
.committee-role-entry::after {
    background: none !important;
    background-size: auto !important;
    background-position: 0 0 !important;
}

/* —— 2) 全站卡片扫描条：管理面板同款设计推广（窄光条 transform 横扫，内容层之下不遮字）
      v6.1 修正：光条只作用于卡片型元素；feedback-panel/card 等大容器不加速光条 —— */
body:not(.login-page) .stat-card::after,
body:not(.login-page) .tech-panel::after,
body:not(.login-page) .work-department-panel::after,
body:not(.login-page) .committee-role-entry::after {
    display: block !important;
    content: "" !important;
    position: absolute !important;
    top: 5px !important;
    bottom: 5px !important;
    left: 5px !important;
    right: auto !important;
    width: 52px !important;
    z-index: 1 !important;
    pointer-events: none;
    background: linear-gradient(90deg,
        transparent,
        rgba(146, 240, 255, .04) 30%,
        rgba(210, 250, 255, .26) 46%,
        rgba(245, 253, 255, .68) 50%,
        rgba(210, 250, 255, .26) 54%,
        rgba(146, 240, 255, .04) 70%,
        transparent) !important;
    transform: translateX(-80px) skewX(-14deg);
    filter: drop-shadow(0 0 7px rgba(146, 240, 255, .4));
    animation: holoGlobalScan 5.2s cubic-bezier(.55, .08, .45, .92) infinite !important;
}
@keyframes holoGlobalScan {
    0%, 42% { transform: translateX(-80px) skewX(-14deg); }
    90%, 100% { transform: translateX(1600px) skewX(-14deg); }
}

/* v6.1 容器约束：卡片必须是定位元素并裁切溢出——光条不出卡、不横切页面。
   （根因：无 position 的卡片里，absolute 光条以整页为包含块，扫成了贯穿全页的光柱） */
body:not(.login-page) .stat-card,
body:not(.login-page) .tech-panel,
body:not(.login-page) .work-department-panel,
body:not(.login-page) .committee-role-entry {
    position: relative !important;
    overflow: hidden !important;
}

/* 管理面板告警卡：红色扫描变体（覆盖全局青色条） */
.admin-panel-page .admin-alert-card.has-danger::after {
    background: linear-gradient(90deg,
        transparent,
        rgba(255, 170, 185, .05) 30%,
        rgba(255, 210, 220, .34) 46%,
        rgba(255, 242, 246, .8) 50%,
        rgba(255, 210, 220, .34) 54%,
        rgba(255, 170, 185, .05) 70%,
        transparent) !important;
    filter: drop-shadow(0 0 7px rgba(255, 138, 155, .5));
}

/* —— 3) 左侧菜单栏：科技感重设计 —— */
body:not(.login-page) .sidebar {
    background:
        radial-gradient(130% 55% at 0% 0%, rgba(104, 229, 245, .08), transparent 55%),
        linear-gradient(180deg, #071426 0%, #050e1e 100%) !important;
    border-right: 1px solid rgba(104, 229, 245, .35) !important;
    box-shadow: inset -1px 0 0 rgba(104, 229, 245, .16), 14px 0 44px rgba(2, 8, 20, .55) !important;
}
.sidebar .system-brand {
    background: linear-gradient(135deg, rgba(104, 229, 245, .12), transparent 60%) !important;
    border-bottom: 1px solid rgba(104, 229, 245, .32) !important;
}
.sidebar .brand-title { text-shadow: 0 0 14px rgba(104, 229, 245, .5) !important; letter-spacing: 1px !important; }
.sidebar .system-live { text-shadow: 0 0 10px rgba(119, 229, 173, .55) !important; }
.sidebar .global-task-entry {
    border: 1px solid rgba(104, 229, 245, .38) !important;
    box-shadow: 0 0 18px rgba(104, 229, 245, .14), inset 0 0 14px rgba(104, 229, 245, .06) !important;
}
.sidebar .nav-label { color: rgba(146, 240, 255, .65) !important; letter-spacing: 3px !important; }
body:not(.login-page) .main-nav .nav-link {
    border: 0 !important;
    border-left: 2px solid transparent !important;
    transition: background .25s ease, border-color .25s ease, box-shadow .25s ease !important;
}
body:not(.login-page) .main-nav .nav-link:hover {
    color: #ffffff !important;
    background: linear-gradient(90deg, rgba(104, 229, 245, .16), rgba(104, 229, 245, .03)) !important;
    border-left-color: rgba(146, 240, 255, .85) !important;
    box-shadow: inset 0 0 20px rgba(104, 229, 245, .08) !important;
}
body:not(.login-page) .main-nav .nav-link.active {
    color: #ffffff !important;
    background: linear-gradient(90deg, rgba(104, 229, 245, .22), rgba(104, 229, 245, .04)) !important;
    border-left-color: #8ceaff !important;
    box-shadow: inset 0 0 24px rgba(104, 229, 245, .12), 0 0 20px rgba(104, 229, 245, .14) !important;
}
body:not(.login-page) .main-nav .nav-link.active span:last-child { text-shadow: 0 0 10px rgba(146, 240, 255, .55) !important; }
body:not(.login-page) .main-nav .nav-link .nav-index { font-family: Consolas, monospace !important; color: rgba(146, 240, 255, .85) !important; }

/* —— 4) 登录页：动态科技场景重设计 —— */
body.login-page {
    background:
        radial-gradient(1000px 620px at 74% 22%, rgba(104, 229, 245, .10), transparent 62%),
        linear-gradient(rgba(104, 229, 245, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(104, 229, 245, .05) 1px, transparent 1px),
        #040b18 !important;
    background-size: auto, 46px 46px, 46px 46px, auto !important;
}
/* 雷达扫描：绕登录卡缓慢旋转的光锥 */
body.login-page::before {
    display: block !important;
    content: "" !important;
    position: fixed; inset: -22%; z-index: 0; pointer-events: none;
    background: conic-gradient(from 0deg at 50% 46%, transparent 0deg, rgba(104, 229, 245, .07) 22deg, transparent 56deg);
    animation: loginRadar 10s linear infinite;
}
@keyframes loginRadar { to { transform: rotate(360deg); } }
/* 悬浮光点：缓慢漂移的粒子 */
body.login-page::after {
    display: block !important;
    content: "" !important;
    position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background:
        radial-gradient(circle at 16% 28%, rgba(146, 240, 255, .55) 0 1.5px, transparent 3px),
        radial-gradient(circle at 84% 22%, rgba(178, 112, 255, .5) 0 1.5px, transparent 3px),
        radial-gradient(circle at 70% 80%, rgba(119, 229, 173, .45) 0 1.5px, transparent 3px),
        radial-gradient(circle at 28% 76%, rgba(146, 240, 255, .4) 0 1.5px, transparent 3px),
        radial-gradient(circle at 55% 12%, rgba(146, 240, 255, .35) 0 1px, transparent 3px);
    animation: loginDrift 16s ease-in-out infinite alternate;
}
@keyframes loginDrift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-26px, -20px, 0); } }
/* 登录内容浮于动效层之上 */
body.login-page > * { position: relative; z-index: 1 !important; }
/* 登录卡：边框呼吸 + 角标框架恢复 */
.login-page .tech-panel {
    position: relative; z-index: 1 !important;
    box-shadow: 0 0 0 1px rgba(104, 229, 245, .24), 0 0 52px rgba(72, 208, 238, .16), inset 0 0 46px rgba(25, 130, 167, .13) !important;
    animation: loginCardBreath 6.5s ease-in-out infinite !important;
}
@keyframes loginCardBreath {
    0%, 100% { box-shadow: 0 0 0 1px rgba(104, 229, 245, .22), 0 0 44px rgba(72, 208, 238, .14), inset 0 0 44px rgba(25, 130, 167, .12); }
    50% { box-shadow: 0 0 0 1px rgba(104, 229, 245, .42), 0 0 70px rgba(72, 208, 238, .24), inset 0 0 56px rgba(25, 130, 167, .18); }
}
.login-page .tech-panel::before,
.login-page .tech-panel::after { display: block !important; content: "" !important; opacity: .95 !important; }
.login-page .brand-name {
    background: linear-gradient(92deg, #f2fbff 25%, #8ceaff 50%, #f2fbff 75%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 0 16px rgba(104, 229, 245, .35)) !important;
}

/* —— 5) 动效偏好保护：新增动画全部纳入 —— */
@media (prefers-reduced-motion: reduce) {
    html::before,
    body.login-page::before, body.login-page::after,
    body:not(.login-page) .feedback-panel::after,
    body:not(.login-page) .card::after,
    body:not(.login-page) .stat-card::after,
    body:not(.login-page) .tech-panel::after,
    body:not(.login-page) .work-department-panel::after,
    body:not(.login-page) .committee-role-entry::after { animation: none !important; }
}

/* ===================== ADMIN PANEL QQ MANAGEMENT ===================== */
.admin-qq-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.admin-qq-link { display:grid; grid-template-columns:46px 1fr auto; align-items:center; gap:14px; min-height:86px; padding:16px 18px; text-decoration:none; }
.admin-qq-link-mark { display:grid; place-items:center; width:40px; height:40px; border:1px solid rgba(104,229,245,.58); color:#9df1ff; background:rgba(104,229,245,.08); font-size:17px; font-weight:700; box-shadow:0 0 16px rgba(104,229,245,.14); }
.admin-qq-link span:nth-child(2) { min-width:0; }
.admin-qq-link strong, .admin-qq-link small { display:block; }
.admin-qq-link strong { color:#f2fbff; font-size:15px; }
.admin-qq-link small { margin-top:5px; color:#b7d2e4; font-size:12px; line-height:1.5; }
.admin-qq-link em { color:#8ceaff; font-size:12px; font-style:normal; white-space:nowrap; }
.admin-qq-link:hover { border-color:rgba(146,240,255,.76) !important; box-shadow:0 0 24px rgba(104,229,245,.18), inset 0 0 20px rgba(104,229,245,.08) !important; }
.admin-qq-empty { padding:18px; color:#b7d2e4; }
@media (max-width:1100px) { .admin-qq-links { grid-template-columns:1fr; } }

/* ===================== YIFA ATTRIBUTION ===================== */
.yifa-attr-entry-bar { margin: 0 0 14px; }
.yifa-attribution-card { margin-bottom: 18px; }
.yifa-attr-head { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-bottom: 10px; }
.yifa-attr-head strong { color: #f2fbff; font-size: 15px; }
.yifa-attr-head small { display: block; color: #b7d2e4; margin-top: 3px; }
.yifa-attr-head time { color: #8ceaff; font-family: Consolas, monospace; }
.yifa-attr-entries { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin-bottom: 14px; }
.yifa-attr-class { border: 1px solid rgba(104, 229, 245, .25); padding: 10px 12px; }
.yifa-attr-class span { color: #8ceaff; font-size: 13px; }
.yifa-attr-class p { margin: 6px 0 0; color: #e7f5fc; font-size: 13px; line-height: 1.6; }
.yifa-attr-none { color: #b7d2e4; }
.yifa-attr-form { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.yifa-attr-form label { color: #cfe6f2; font-size: 13px; display: flex; align-items: center; gap: 8px; }
.yifa-attr-form input[type="date"] { background: rgba(8, 24, 46, .9); border: 1px solid rgba(104, 229, 245, .4); color: #f2fbff; padding: 8px 10px; }

/* ===================== ARCHIVE CHANGE FILTER BAR ===================== */
.archive-filter-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px; padding:12px 14px; background:rgba(10,28,52,.55); border:1px solid rgba(104,229,245,.22); }
.archive-filter-input, .archive-filter-select { background:rgba(8,24,46,.9); border:1px solid rgba(104,229,245,.4); color:#f2fbff; padding:8px 12px; min-width:180px; }
.archive-filter-select { min-width:130px; }
.archive-filter-bar .feedback-primary, .archive-filter-bar .feedback-secondary { min-height:0; padding:8px 16px; }


/* ===================== ADMIN COLLECTION OVERVIEW (2026-09-12 采集总览改版) ===================== */
/* 今日/本周/本月 区间切换 */
.admin-range-tabs { display:inline-flex; overflow:hidden; border:1px solid var(--ui-line); border-radius:var(--ui-radius); background:rgba(7,26,50,.72); }
.admin-range-tabs a { min-width:96px; padding:10px 22px; color:var(--ui-text-2); font-size:14px; font-weight:600; text-align:center; text-decoration:none; border-right:1px solid var(--ui-line); transition:background var(--ui-speed) ease, color var(--ui-speed) ease, box-shadow var(--ui-speed) ease; }
.admin-range-tabs a:last-child { border-right:0; }
.admin-range-tabs a:hover { color:#ffffff; background:rgba(104,229,245,.09); }
.admin-range-tabs a.active { color:#04131f; background:linear-gradient(180deg,#9df1ff,#5fd7ef); box-shadow:0 0 16px rgba(104,229,245,.35); text-shadow:none; }
/* 状态分布卡：复用重点异常卡语言，密度略高 */
.admin-status-grid { grid-template-columns:repeat(auto-fit,minmax(206px,1fr)); }
/* 本月趋势：日期密集时收窄 */
.admin-trend-bars.admin-trend-dense { gap:5px; }
.admin-trend-bars.admin-trend-dense .admin-trend-bar i { max-width:16px; }
.admin-trend-bars.admin-trend-dense .admin-trend-bar b { font-size:10px; }
.admin-trend-bars.admin-trend-dense .admin-trend-bar small { font-size:9px; letter-spacing:0; }

/* ===================== WORK ENTRY CARDS v7 (2026-09-12 工作页卡片统一管理面板风格) ===================== */
/* 作用域：学生会工作 / 班委工作两页的入口卡片。视觉语言对齐管理面板：
   辉光悬停上浮、左侧岗位色条、标题辉光、等宽"进入 →"、告警徽章；
   不改布局骨架，共享 HUD 框架的顶部流光/卡内扫描条/切角保持不变。 */
body.work-report-page .committee-role-entry,
body.committee-work-page .committee-role-entry {
    background: linear-gradient(150deg, rgba(13,40,74,.66), rgba(7,22,44,.9)) !important;
    border: 1px solid rgba(104,229,245,.3) !important;
    border-left: 2px solid var(--role-color, rgba(104,229,245,.7)) !important;
    border-radius: 12px !important;
    box-shadow: var(--ui-shadow-1), inset 0 0 26px rgba(104,229,245,.05) !important;
    transition: transform var(--ui-speed) ease, border-color var(--ui-speed) ease, box-shadow var(--ui-speed) ease !important;
}
body.work-report-page .committee-role-entry:hover,
body.work-report-page .committee-role-entry:focus-visible,
body.committee-work-page .committee-role-entry:hover,
body.committee-work-page .committee-role-entry:focus-visible {
    transform: translateY(-2px) !important;
    border-color: var(--ui-line-strong) !important;
    border-left-color: var(--role-color, rgba(104,229,245,.7)) !important;
    box-shadow: var(--ui-glow-1) !important;
}
body.work-report-page .committee-role-entry .committee-role-number,
body.committee-work-page .committee-role-entry .committee-role-number {
    color: var(--ui-text-3) !important;
    font-family: Consolas, "JetBrains Mono", monospace !important;
    letter-spacing: 1px;
}
body.work-report-page .committee-role-entry strong,
body.committee-work-page .committee-role-entry strong {
    color: #f7fdff !important;
    text-shadow: 0 0 14px rgba(104,229,245,.3) !important;
    letter-spacing: 1px;
}
body.work-report-page .committee-role-entry .committee-role-action,
body.committee-work-page .committee-role-entry .committee-role-action {
    color: var(--ui-accent) !important;
    font-family: Consolas, "JetBrains Mono", monospace !important;
    letter-spacing: 2px;
    border-top: 1px solid rgba(104,229,245,.16) !important;
}
body.work-report-page .committee-role-entry .committee-role-action b,
body.committee-work-page .committee-role-entry .committee-role-action b { color: inherit; }
body.work-report-page .committee-role-entry .committee-role-badge,
body.committee-work-page .committee-role-entry .committee-role-badge {
    color: #ffb9c4 !important;
    background: rgba(255,113,133,.12) !important;
    border: 1px solid rgba(255,113,133,.42) !important;
    box-shadow: 0 0 14px rgba(255,113,133,.25) !important;
}
body.work-report-page .committee-role-entry.disabled,
body.committee-work-page .committee-role-entry.disabled {
    border-left-color: rgba(139,179,199,.3) !important;
    box-shadow: none !important;
    background: rgba(10,24,40,.8) !important;
}
body.work-report-page .committee-role-entry.disabled:hover,
body.committee-work-page .committee-role-entry.disabled:hover { transform: none !important; box-shadow: none !important; }
/* 页头对齐管理面板区块标题：发光前缀条 + 渐变辉光标题 */
body.work-report-page .committee-work-heading,
body.committee-work-page .committee-work-heading { position: relative; padding-left: 14px; }
body.work-report-page .committee-work-heading::before,
body.committee-work-page .committee-work-heading::before {
    content: ""; position: absolute; left: 0; top: 8px; bottom: 30px; width: 3px;
    border-radius: 2px;
    background: linear-gradient(180deg, var(--ui-accent), rgba(104,229,245,.12));
    box-shadow: 0 0 10px rgba(104,229,245,.55);
}
body.work-report-page .committee-work-heading h1,
body.committee-work-page .committee-work-heading h1 {
    background: linear-gradient(92deg, #f2fbff 20%, #7deaff 65%, #49c9de) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    filter: drop-shadow(0 0 14px rgba(104,229,245,.28)) !important;
}
body.work-report-page .committee-work-heading span,
body.committee-work-page .committee-work-heading span {
    font-family: Consolas, monospace !important;
    letter-spacing: 3px !important;
    color: var(--ui-accent) !important;
    text-shadow: 0 0 12px rgba(104,229,245,.55) !important;
}


/* ===================== UX POLISH LAYER (2026-09-12 桌面交互细节，线下待验收) ===================== */
/* 键盘可达性：统一的 focus-visible 光圈（鼠标点击不触发） */
body:not(.login-page) a:focus-visible,
body:not(.login-page) button:focus-visible,
body:not(.login-page) .nav-link:focus-visible,
body:not(.login-page) .committee-role-entry:focus-visible,
.login-page a:focus-visible,
.login-page button:focus-visible {
    outline: 2px solid rgba(146, 240, 255, .85) !important;
    outline-offset: 2px !important;
    border-radius: 4px;
}
body:not(.login-page) input:focus-visible,
body:not(.login-page) select:focus-visible,
body:not(.login-page) textarea:focus-visible {
    outline: 2px solid rgba(104, 229, 245, .7) !important;
    outline-offset: 0 !important;
}
/* 按压反馈：按钮与卡片链接按下轻微缩放 */
button:active, .btn:active, .feedback-primary:active, .feedback-secondary:active,
.admin-backlog-card:active, .admin-alert-card:active, .admin-qq-link:active,
.committee-role-entry:active { transform: scale(.985); transition-duration: .06s; }
/* 文本选中色与主题一致 */
::selection { background: rgba(104, 229, 245, .32); color: #f5fdff; }
/* 深色表单的浏览器自动填充修正（登录/筛选表单发白问题） */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus,
textarea:-webkit-autofill, select:-webkit-autofill {
    -webkit-box-shadow: 0 0 0 1000px #071b35 inset !important;
    -webkit-text-fill-color: #e8f9ff !important;
    caret-color: #e8f9ff;
    transition: background-color 999999s ease-in-out 0s;
}
/* 长表格的滚动提示：可横向滚动的容器两侧渐隐边缘 */
.table-wrap, .discipline-table-wrap, .overflow-x-auto { scrollbar-width: thin; scrollbar-color: rgba(104,229,245,.4) transparent; }

/* ===================== MOBILE ADAPT LAYER (2026-09-12 移动端适配，线下待验收) ===================== */
/* 设计目标：手机 App 壳（PWA standalone）内直接可用。桌面端（>880px）零影响。 */
.mobile-menu-btn { display: none; }
@media (max-width: 880px) {
    /* —— 汉堡按钮（固定左上，z 高于顶栏） —— */
    .mobile-menu-btn {
        display: inline-flex; flex-direction: column; justify-content: center; gap: 4px;
        position: fixed; left: 12px; top: 12px; z-index: 1200;
        width: 42px; height: 42px; padding: 0 10px;
        border: 1px solid rgba(104, 229, 245, .4); border-radius: 9px;
        background: rgba(7, 22, 44, .9); cursor: pointer;
        box-shadow: 0 0 14px rgba(104, 229, 245, .18);
    }
    .mobile-menu-btn i {
        display: block; width: 100%; height: 2px; border-radius: 2px;
        background: rgba(178, 240, 255, .92);
        box-shadow: 0 0 6px rgba(104, 229, 245, .5);
        transition: transform .22s ease, opacity .22s ease;
    }
    body.mobile-nav-open .mobile-menu-btn i:nth-child(1) { transform: translateY(6px) rotate(45deg); }
    body.mobile-nav-open .mobile-menu-btn i:nth-child(2) { opacity: 0; }
    body.mobile-nav-open .mobile-menu-btn i:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
    /* —— 侧栏抽屉化（覆盖 485 行旧 768px 底条规则：完整重建竖排抽屉） —— */
    body:not(.login-page) .sidebar,
    body.feedback-page:not(.login-page) .sidebar {
        position: fixed !important;
        inset: 0 auto 0 0 !important;
        width: min(78vw, 300px) !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 100vh !important;
        flex-direction: column !important;
        padding: 18px 14px !important;
        transform: translateX(-104%);
        transition: transform .26s ease;
        overflow-y: auto;
        z-index: 1100 !important;
        box-shadow: 18px 0 44px rgba(2, 8, 20, .6) !important;
    }
    body.mobile-nav-open .sidebar { transform: none !important; }
    /* 旧 768px 规则隐藏了品牌区并横排了导航——在抽屉里全部恢复竖排 */
    body.feedback-page:not(.login-page) .system-brand { display: block !important; padding: 0 8px 18px !important; }
    body.feedback-page:not(.login-page) .system-live { display: flex !important; }
    body.feedback-page:not(.login-page) .nav-label { display: block !important; }
    body.feedback-page:not(.login-page) .main-nav {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 7px !important;
        width: auto !important;
    }
    body.feedback-page:not(.login-page) .nav-link {
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        min-height: 46px !important;
        padding: 0 13px !important;
        font-size: 13px !important;
        line-height: 1.3 !important;
        text-align: left !important;
        gap: 12px !important;
    }
    body.feedback-page:not(.login-page) .nav-index { display: inline !important; }
    /* —— 主区全宽 + 顶栏收窄 —— */
    body:not(.login-page) main { margin-left: 0 !important; padding-left: 16px !important; padding-right: 16px !important; max-width: 100vw !important; }
    body:not(.login-page) .topbar { padding-left: 66px !important; }
    .topbar-path, .topbar-status { display: none !important; }
    .topbar-title { font-size: 16px !important; }
    .account-copy { display: none !important; }
    .account-actions { display: none !important; }
    /* —— 网格布局自适应收拢 —— */
    .committee-role-grid, .admin-backlog-grid, .admin-alert-grid, .admin-status-grid,
    .data-overview-kpis, .data-slot-grid, .admin-qq-links,
    .work-department-grid, .dashboard-grid, .task-metrics,
    .monitor-review-metrics, .discipline-metrics, .attendance-dashboard-kpis {
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
    }
    .committee-role-grid, .work-department-grid, .admin-qq-links { grid-template-columns: 1fr !important; }
    .discipline-grid, .discipline-grid-thirds, .discipline-grid-wide { grid-template-columns: 1fr !important; }
    /* —— 长表格横向滚动不破版 —— */
    .table-wrap, .data-table-wrap, .discipline-table-wrap,
    .overview-table, .deduction-detail-table, .discipline-today-table,
    .leave-table, .archive-table, .attendance-dashboard-table, .discipline-table {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }
    /* —— 区块留白收拢 —— */
    main { padding-top: 66px !important; padding-bottom: 40px !important; }
    .admin-panel-main, .committee-work-main { padding-top: 74px !important; }
    .feedback-main, .committee-work-main, .discipline-main, .overview-main { max-width: 100vw !important; }
    /* —— 登录页单列 —— */
    .login-page .login-shell, .login-page .login-grid, .login-page main { grid-template-columns: 1fr !important; max-width: 100vw !important; padding: 0 18px !important; }
    /* —— 卡片内边距收拢、大数字缩放 —— */
    .tech-panel, .feedback-panel, .card, .stat-card { padding: 14px !important; }
    .stat-card strong, .admin-backlog-card strong, .admin-alert-card strong { font-size: 24px !important; }
    /* —— 弹窗/抽屉适配 —— */
    .discipline-dialog, .modal, .drawer { width: calc(100vw - 24px) !important; max-width: calc(100vw - 24px) !important; }
    /* —— 筛选栏纵向堆叠 —— */
    .filter-bar, .archive-filter-bar, .discipline-detail-filter, .overview-filter {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }
    body.mobile-nav-open::after {
        content: "" !important; display: block !important;
        position: fixed; inset: 0; z-index: 1050;
        background: rgba(2, 8, 20, .55);
        backdrop-filter: blur(1px);
        pointer-events: none;
    }
}
@media (max-width: 420px) {
    .committee-role-grid, .admin-backlog-grid, .admin-alert-grid, .admin-status-grid,
    .data-overview-kpis, .data-slot-grid { grid-template-columns: 1fr !important; }
}

/* ==================== DATE PICKER VISIBILITY (2026-09-17 d1) ====================
   原生日历按钮在深色主题下太暗（值日生核对等页"查看日期"控件的日历图标）——
   全站提亮为亮白色并声明 color-scheme:dark，让原生日历弹层也按深色渲染。 */
input[type="date"],
input[type="datetime-local"] { color-scheme: dark; }
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
    opacity: 1;
    cursor: pointer;
    background: rgba(126, 232, 252, .25);
    border: 1px solid rgba(126, 232, 252, .6);
    border-radius: 5px;
    padding: 3px 4px;
}
input[type="date"]:hover::-webkit-calendar-picker-indicator,
input[type="datetime-local"]:hover::-webkit-calendar-picker-indicator {
    background: rgba(126, 232, 252, .45);
    border-color: rgba(126, 232, 252, .95);
}

/* ==================== FLASH BANNER (2026-09-20) ====================
   flash 提示此前为无样式裸 div（深色页面上几乎不可见，用户反馈"没有任何提示"
   实为提示不可见）——全站补齐横幅样式：成功绿/警告黄/错误红三态。 */
.flash {
    margin: 0 auto 18px;
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .5px;
    line-height: 1.7;
    border: 1px solid rgba(126, 232, 252, .45);
    background: rgba(10, 34, 64, .92);
    color: #d8f6ff !important;
    box-shadow: 0 0 14px rgba(126, 232, 252, .15);
}
.flash.success {
    border-color: rgba(80, 250, 170, .55);
    background: rgba(8, 46, 32, .92);
    color: #baffdd !important;
}
.flash.warning {
    border-color: rgba(255, 200, 87, .6);
    background: rgba(50, 38, 8, .92);
    color: #ffe9b3 !important;
}
.flash.danger {
    border-color: rgba(255, 107, 107, .6);
    background: rgba(58, 12, 12, .92);
    color: #ffc9c9 !important;
}
