﻿:root{--bg:#f6f9ff;--card:#fff;--text:#1f2937;--muted:#667085;--primary:var(--primary);--primary-2:var(--primary-2);--primary-rgb:var(--primary-rgb);--success:#16a34a;--warning:#f59e0b;--danger:#ef4444;--line:#e5edff;--radius:18px;--shadow:0 18px 45px rgba(var(--primary-rgb),.10);--sidebar-bg:linear-gradient(165deg,#eef5ff 0%,#fff 42%,#dbe9ff 100%);--sidebar-tint:rgba(var(--primary-rgb),.10);--font:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:14px}a{color:var(--primary);text-decoration:none}h1,h2,h3,p{margin-top:0}h1{font-size:28px;letter-spacing:-.5px}h2{font-size:18px}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--sidebar-bg);border-right:1px solid var(--line);border-radius:var(--sidebar-radius);padding:18px 16px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:10px;align-items:center;margin-bottom:16px}.brand strong{display:block;font-size:20px}.brand span{display:block;color:var(--muted);font-size:12px}.brand-mark{width:42px;height:42px;background:var(--primary);border-radius:14px;position:relative;box-shadow:0 12px 28px rgba(var(--primary-rgb),.28)}.brand-mark:before{content:"";position:absolute;inset:8px;border-radius:10px;background:#fff}.brand-mark:after{content:"";position:absolute;width:24px;height:24px;right:-4px;bottom:-4px;border-radius:50%;background:var(--primary-2);mix-blend-mode:multiply}.sidebar nav{display:grid;gap:8px}.sidebar nav a{padding:12px 14px;border-radius:14px;color:#344054}.sidebar nav a:hover,.sidebar nav a.active{background:#fff;color:var(--primary);box-shadow:var(--shadow)}

.sidebar nav.nav-grouped{display:grid;gap:0!important;overflow-y:auto;flex:1;min-height:0}
.sidebar nav.nav-grouped .nav-item{display:block;padding:5px 12px!important;border-radius:8px;color:var(--sidebar-text);font-weight:600;font-size:13px;cursor:pointer;transition:.18s}
.sidebar nav.nav-grouped .nav-item:hover{background:var(--sidebar-active-bg);color:var(--primary)}
.sidebar nav.nav-grouped .nav-item.active{background:var(--sidebar-active-bg);color:var(--primary);box-shadow:0 4px 12px rgba(var(--primary-rgb),.10)}
.sidebar nav.nav-grouped .nav-section{border-radius:8px;overflow:hidden;transition:.18s}
.sidebar nav.nav-grouped .nav-section-title{display:flex;justify-content:space-between;align-items:center;padding:5px 12px!important;border-radius:8px;cursor:pointer;font-weight:600;font-size:13px;color:var(--sidebar-text-muted);transition:.18s;user-select:none}
.sidebar nav.nav-grouped .nav-section-title:hover{background:var(--sidebar-active-bg)}
.sidebar nav.nav-grouped .nav-arrow{transition:transform .22s ease;color:var(--primary);opacity:.6;flex-shrink:0}
.sidebar nav.nav-grouped .nav-section.expanded .nav-arrow{transform:rotate(180deg)}
.sidebar nav.nav-grouped .nav-sub{display:grid;gap:0!important;max-height:0;overflow:hidden;transition:max-height .28s ease,opacity .18s ease;opacity:0;padding:0 3px}
.sidebar nav.nav-grouped .nav-section.expanded .nav-sub{max-height:320px;opacity:1;padding:1px 3px 2px}
.sidebar nav.nav-grouped .nav-sub a{display:block;padding:4px 10px 4px 22px!important;border-radius:6px!important;color:var(--sidebar-text-muted);font-size:12px;transition:.16s;position:relative}
.sidebar nav.nav-grouped .nav-sub a:before{content:"";position:absolute;left:11px;top:50%;width:4px;height:4px;border-radius:50%;background:var(--sidebar-tint);transform:translateY(-50%);transition:.16s}
.sidebar nav.nav-grouped .nav-sub a:hover{background:var(--sidebar-active-bg);color:var(--primary)}
.sidebar nav.nav-grouped .nav-sub a:hover:before{background:var(--primary)}
.sidebar nav.nav-grouped .nav-sub a.active{background:var(--sidebar-active-bg);color:var(--primary);box-shadow:0 3px 10px rgba(var(--primary-rgb),.08);font-weight:600}
.sidebar nav.nav-grouped .nav-sub a.active:before{background:var(--primary)}.sidebar-user{margin-top:auto;background:var(--sidebar-user-bg);border:1px solid var(--line);border-radius:var(--card-radius);padding:14px;display:grid;gap:8px}.sidebar-user span{color:var(--sidebar-text-muted)}.main{margin-left:248px;padding:28px;min-height:100vh}.login-main{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 20% 20%,#dbeafe,transparent 30%),var(--bg)}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow)}.login-card.install{width:min(860px,100%)}.page-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:20px}.page-head p,.hint{color:var(--muted)}.card,.stat-card{background:var(--card);border:1px solid var(--line);border-radius:var(--card-radius);box-shadow:var(--shadow)}.card{padding:22px;margin-bottom:20px}.stats-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat-card{padding:18px;position:relative;overflow:hidden}.stat-card:after{content:"";position:absolute;right:-22px;top:-22px;width:78px;height:78px;border-radius:24px;background:linear-gradient(135deg,var(--primary-2),transparent);transform:rotate(18deg)}.stat-card span{display:block;color:var(--muted);margin-bottom:12px}.stat-card strong{font-size:28px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid.single{grid-template-columns:1fr}.form-grid .full,.full{grid-column:1/-1}label{display:grid;gap:8px;color:#344054}.form-control{width:100%;border:1px solid #d7e2f8;border-radius:var(--btn-radius);padding:11px 13px;background:#fff;color:var(--text);outline:none;transition:.2s;appearance:none}.form-control:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb),.12)}.form-control.small{max-width:180px}.btn{border:1px solid #d7e2f8;background:#fff;color:#344054;border-radius:var(--btn-radius);padding:11px 16px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;font:inherit}.btn.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.btn.success{background:var(--success);color:#fff;border-color:var(--success)}.btn.warning{background:var(--warning);color:#fff;border-color:var(--warning)}.btn.danger{background:var(--danger);color:#fff;border-color:var(--danger)}.btn.full{grid-column:1/-1}.toolbar,.batch-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px}.batch-bar{position:sticky;top:0;background:#f8fbff;border:1px solid var(--line);border-radius:16px;padding:12px;z-index:2}table{width:100%;border-collapse:separate;border-spacing:0}th,td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}thead th{color:#475467;background:#f8fbff}tbody tr:nth-child(even){background:#fbfdff}tbody tr:hover{background:#eef5ff}.progress{height:9px;border-radius:999px;background:#e8efff;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-2));border-radius:999px}.ring,.mini-ring{--value:0;width:170px;height:170px;border-radius:50%;background:conic-gradient(var(--primary) calc(var(--value)*1%),#e8efff 0);display:grid;place-items:center;margin:auto}.ring b,.mini-ring b{width:118px;height:118px;border-radius:50%;background:#fff;display:grid;place-items:center;font-size:26px}.mini-ring{width:94px;height:94px;background:conic-gradient(var(--ring,var(--primary)) calc(var(--value)*1%),#e8efff 0)}.mini-ring b{width:66px;height:66px;font-size:14px}.level-rings{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;text-align:center}.location-list{display:grid;gap:10px}.location-row{display:grid;grid-template-columns:100px 1fr 36px;gap:10px;align-items:center}.location-name{font-size:13px;color:#475467;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.link-btn{border:0;background:transparent;color:var(--primary);cursor:pointer}.bars{height:220px;display:grid;grid-template-columns:repeat(7,1fr);gap:14px;align-items:end}.bars div{height:100%;display:flex;flex-direction:column;justify-content:end;align-items:center;gap:8px}.bars span{width:42px;background:linear-gradient(180deg,var(--primary-2),var(--primary));border-radius:12px 12px 4px 4px;min-height:8px}.bars em{font-style:normal;color:var(--muted)}.dorm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.dorm-card{text-align:left;border:1px solid var(--line);background:#fff;border-radius:var(--card-radius);padding:16px;display:grid;gap:8px;cursor:pointer}.dorm-card:hover{border-color:var(--primary);box-shadow:var(--shadow)}.dorm-card b{font-size:22px}.dorm-card span,.dorm-card em{color:var(--muted);font-style:normal}.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px}.check-grid label{display:flex;gap:8px;align-items:center;background:#f8fbff;border:1px solid var(--line);border-radius:12px;padding:10px}.badge{padding:5px 10px;border-radius:999px;background:#eef5ff}.badge.严重{background:#fee2e2;color:#b91c1c}.badge.较重{background:#fef3c7;color:#b45309}.badge.一般{background:#dbeafe;color:var(--primary)}.badge.轻微{background:#dcfce7;color:#15803d}.toast{padding:12px 14px;border-radius:14px;margin-bottom:16px;background:#eff6ff;border:1px solid var(--line)}.toast.success{background:#ecfdf5}.toast.danger{background:#fef2f2}.toast.warning{background:#fffbeb}.modal{position:fixed;inset:0;background:rgba(15,23,42,.38);display:none;place-items:center;padding:24px;z-index:10}.modal.show{display:grid}.modal-box{width:min(720px,100%);max-height:85vh;overflow:auto;background:#fff;border-radius:24px;padding:24px;box-shadow:0 25px 80px rgba(15,23,42,.25)}.modal-box.wide{width:min(920px,100%)}.modal-close{float:right;border:0;background:#f1f5ff;border-radius:50%;width:34px;height:34px;cursor:pointer;font-size:20px}@media(max-width:1100px){.stats-grid{grid-template-columns:repeat(3,1fr)}.grid.two{grid-template-columns:1fr}.main{margin-left:0;padding:18px}.sidebar{position:static;width:auto}.level-rings{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid,.form-grid{grid-template-columns:1fr}.toolbar{align-items:stretch}.toolbar>*{width:100%}.login-card{padding:24px}}
.login-card label{font-weight:600}.login-card .login-select{height:46px;padding:11px 46px 11px 14px;border-color:#c3d4ff;background-color:#f6faff;background-image:linear-gradient(135deg,rgba(var(--primary-rgb),.10),rgba(96,165,250,.04)),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:0 0,calc(100% - 15px) center;background-size:auto,18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 18px rgba(var(--primary-rgb),.06);font-weight:500}.login-card .login-select:hover{border-color:#9bb8ff;background-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 24px rgba(var(--primary-rgb),.10)}.login-card .login-select:focus{border-color:var(--primary);background-color:#fff;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13),0 14px 30px rgba(var(--primary-rgb),.12)}.login-card .school-field{position:relative}.login-card .school-field:before{content:"";position:absolute;left:12px;bottom:13px;width:20px;height:20px;border-radius:7px;background:linear-gradient(135deg,var(--primary),var(--primary-2));box-shadow:0 6px 14px rgba(var(--primary-rgb),.22);pointer-events:none;z-index:1}.login-card .school-field:after{content:"";position:absolute;left:17px;bottom:18px;width:10px;height:8px;border:2px solid #fff;border-top:0;border-radius:0 0 3px 3px;pointer-events:none;z-index:2}.login-card .school-select{padding-left:42px}
.login-dropdown{position:relative;--ld-p:var(--primary);--ld-p2:var(--primary-2);--ld-border:#c3d4ff;--ld-border-h:#9bb8ff;--ld-bg:#f6faff;--ld-hover:#e8f1ff;--ld-shadow:rgba(var(--primary-rgb),.18)}.login-dropdown-trigger{width:100%;height:46px;border:1px solid var(--ld-border);border-radius:14px;padding:11px 46px 11px 14px;background-color:var(--ld-bg);background-image:linear-gradient(135deg,rgba(var(--primary-rgb),.10),rgba(96,165,250,.04)),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:0 0,calc(100% - 15px) center;background-size:auto,18px;color:var(--text);font:inherit;font-weight:500;text-align:left;cursor:pointer;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 18px rgba(var(--primary-rgb),.06);transition:.2s}.login-dropdown-trigger:hover{border-color:var(--ld-border-h);background-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 24px rgba(var(--primary-rgb),.10)}.login-dropdown.open .login-dropdown-trigger,.login-dropdown-trigger:focus{border-color:var(--ld-p);background-color:#fff;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13),0 14px 30px rgba(var(--primary-rgb),.12)}.login-dropdown-menu{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;display:grid;gap:6px;max-height:220px;overflow:auto;padding:8px;border:1px solid var(--ld-border);border-radius:16px;background:linear-gradient(180deg,#fff 0%,var(--ld-bg) 100%);box-shadow:0 18px 45px var(--ld-shadow),0 6px 16px rgba(15,23,42,.08);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top;transition:.16s}.login-dropdown.open .login-dropdown-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.login-dropdown-option{border:0;border-radius:12px;padding:11px 12px;background:transparent;color:#344054;font:inherit;text-align:left;cursor:pointer;transition:.16s}.login-dropdown-option:hover{background:var(--ld-hover);color:var(--ld-p)}.login-dropdown-option.active{background:linear-gradient(135deg,var(--ld-p),var(--ld-p2));color:#fff;box-shadow:0 8px 18px var(--ld-shadow)}.login-dropdown-option.placeholder{color:#667085}.login-dropdown-option.placeholder.active{background:var(--ld-hover);color:#475467;box-shadow:none}.school-dropdown .login-dropdown-trigger{padding-left:42px}.login-card .school-field:before{bottom:13px}.login-card .school-field:after{bottom:18px}
.theme-select-native{display:none!important;position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.theme-select{position:relative;width:100%;min-width:150px;--ts-p:var(--primary);--ts-p2:var(--primary-2);--ts-border:#c3d4ff;--ts-border-h:#9bb8ff;--ts-bg:#f6faff;--ts-hover:#e8f1ff;--ts-shadow:rgba(var(--primary-rgb),.18)}.theme-select.small{max-width:180px}.theme-select-trigger{width:100%;height:43px;border:1px solid var(--ts-border);border-radius:14px;padding:10px 42px 10px 13px;background-color:var(--ts-bg);background-image:linear-gradient(135deg,rgba(var(--primary-rgb),.09),rgba(96,165,250,.05)),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:0 0,calc(100% - 14px) center;background-size:auto,18px;color:var(--text);font:inherit;font-weight:500;text-align:left;cursor:pointer;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 18px rgba(var(--primary-rgb),.06);transition:.2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-select-trigger:hover{border-color:var(--ts-border-h);background-color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 24px rgba(var(--primary-rgb),.10)}.theme-select.open .theme-select-trigger,.theme-select-trigger:focus{border-color:var(--ts-p);background-color:#fff;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13),0 14px 30px rgba(var(--primary-rgb),.12)}.theme-select.disabled{opacity:.65}.theme-select.disabled .theme-select-trigger{cursor:not-allowed}.theme-select-menu{position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:30;display:grid;gap:6px;max-height:240px;overflow:auto;padding:8px;border:1px solid var(--ts-border);border-radius:16px;background:linear-gradient(180deg,#fff 0%,var(--ts-bg) 100%);box-shadow:0 18px 45px var(--ts-shadow),0 6px 16px rgba(15,23,42,.08);opacity:0;visibility:hidden;transform:translateY(-6px) scale(.98);transform-origin:top;transition:.16s}.theme-select.open .theme-select-menu{opacity:1;visibility:visible;transform:translateY(0) scale(1)}.theme-select-option{border:0;border-radius:12px;padding:10px 12px;background:transparent;color:#344054;font:inherit;text-align:left;cursor:pointer;transition:.16s}.theme-select-option:hover,.theme-select-option:focus{background:var(--ts-hover);color:var(--ts-p);outline:none}.theme-select-option.active{background:linear-gradient(135deg,var(--ts-p),var(--ts-p2));color:#fff;box-shadow:0 8px 18px var(--ts-shadow)}.theme-select-option.placeholder{color:#667085}.theme-select-option.placeholder.active{background:var(--ts-hover);color:#475467;box-shadow:none}.theme-select-option:disabled{cursor:not-allowed;opacity:.45}@media(max-width:640px){.theme-select{width:100%;max-width:none}}
.select-layer-active{position:relative!important;z-index:1000!important;overflow:visible!important}.select-layer-active.card,.select-layer-active.toolbar,.select-layer-active.batch-bar,.select-layer-active.modal-box,.select-layer-active.login-card{overflow:visible!important}.theme-select.open,.login-dropdown.open{z-index:1001}.theme-select.open .theme-select-menu,.login-dropdown.open .login-dropdown-menu{z-index:1002}
select.form-control{padding-right:42px;background-image:linear-gradient(180deg,#fff 0%,#fbfdff 100%),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat,no-repeat;background-position:0 0,calc(100% - 14px) center;background-size:auto,18px}.login-dropdown-menu.dropdown-portal{position:fixed!important;left:0;right:auto;top:0;width:auto;z-index:2147483647!important}.login-dropdown-menu.dropdown-portal.open{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
/* 全站页面视觉优化 */
:root{--surface:#ffffffcc;--surface-strong:#fff;--line-strong:var(--line);--soft-blue:var(--bg);--primary-deep:var(--primary);--focus:0 0 0 4px rgba(var(--primary-rgb),.13)}
body{background:radial-gradient(circle at 12% 8%,rgba(219,234,254,.72),transparent 28%),radial-gradient(circle at 88% 0%,rgba(191,219,254,.55),transparent 24%),linear-gradient(180deg,#f7fbff 0%,#f3f7ff 100%);line-height:1.55}
h1{line-height:1.18;color:#172033}h2{line-height:1.28;color:#243044}
.main{position:relative}.main:before{content:"";position:fixed;inset:0 0 auto 248px;height:190px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.08),rgba(121,167,255,.04));pointer-events:none;z-index:-1}
.page-head{position:relative;padding:22px 24px;border:1px solid rgba(207,224,255,.82);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(246,250,255,.86));box-shadow:0 18px 42px rgba(var(--primary-rgb),.08);overflow:hidden}
.page-head:after{content:"";position:absolute;right:-34px;top:-46px;width:150px;height:150px;border-radius:42px;background:linear-gradient(135deg,rgba(var(--primary-rgb),.16),rgba(121,167,255,.03));transform:rotate(16deg)}
.page-head h1{margin-bottom:7px}.page-head p{margin-bottom:0;max-width:760px}.page-head>*{position:relative;z-index:1}
.card,.stat-card{backdrop-filter:saturate(140%) blur(8px);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.card:hover,.stat-card:hover{border-color:var(--line-strong);box-shadow:0 22px 52px rgba(var(--primary-rgb),.12)}
.stat-card{min-height:116px;background:linear-gradient(180deg,#fff 0%,#f9fbff 100%)}.stat-card strong{letter-spacing:-.8px;color:#172033}.stat-card span{font-weight:600}
.toolbar,.batch-bar{padding:12px;border:1px solid rgba(213,226,248,.9);border-radius:18px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(248,251,255,.9));box-shadow:0 10px 26px rgba(var(--primary-rgb),.06)}
.toolbar{margin-bottom:18px}.batch-bar{top:12px;box-shadow:0 14px 34px rgba(var(--primary-rgb),.10);backdrop-filter:blur(10px)}
/* 校纪云品牌 Logo */
.brand-logo{width:46px;height:46px;border-radius:14px;object-fit:contain;padding:3px;display:block;box-shadow:0 12px 28px rgba(var(--primary-rgb),.20);background:#fff}
.login-logo{width:96px;height:96px;border-radius:24px;object-fit:contain;padding:6px;display:block;margin:0 auto 18px;box-shadow:0 18px 42px rgba(var(--primary-rgb),.18);background:#fff}
.login-card h1{text-align:center}.login-card>p{text-align:center;color:var(--muted);line-height:1.7}
.form-control{min-height:43px;border-color:#cfddf5;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.86)}
.form-control:hover{border-color:#adc4f6;background:#fff}.form-control:focus{box-shadow:var(--focus),inset 0 1px 0 rgba(255,255,255,.9)}
.btn{min-height:43px;font-weight:600;box-shadow:0 8px 18px rgba(15,23,42,.04);transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}
.btn:hover{transform:translateY(-1px);border-color:#adc4f6;box-shadow:0 12px 24px rgba(var(--primary-rgb),.10)}.btn:active{transform:translateY(0)}.btn:focus-visible,.link-btn:focus-visible{outline:none;box-shadow:var(--focus)}
.btn.primary{background:linear-gradient(135deg,var(--primary-deep),var(--primary-2));border-color:transparent;box-shadow:0 12px 26px rgba(var(--primary-rgb),.24)}
.btn.success,.btn.warning,.btn.danger{border-color:transparent}.link-btn{font-weight:600}
table{font-size:13.5px}thead th{position:relative;font-weight:700;background:linear-gradient(180deg,#f7fbff 0%,#eef5ff 100%);border-bottom-color:#d7e5ff}
th:first-child,td:first-child{padding-left:16px}th:last-child,td:last-child{padding-right:16px}tbody tr{transition:background .14s ease,box-shadow .14s ease}tbody tr:hover{background:#f0f7ff}
.badge{font-weight:700;border:1px solid rgba(255,255,255,.55);box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.dorm-card{position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.dorm-card:after{content:"";position:absolute;right:-18px;top:-18px;width:70px;height:70px;border-radius:24px;background:linear-gradient(135deg,rgba(96,165,250,.22),transparent);transform:rotate(18deg)}
.dorm-card:hover{transform:translateY(-2px);border-color:#9bb8ff;box-shadow:0 18px 38px rgba(var(--primary-rgb),.14)}.dorm-card>*{position:relative;z-index:1}
.check-grid label{min-height:44px;background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.check-grid label:hover{border-color:#adc4f6;box-shadow:0 10px 22px rgba(var(--primary-rgb),.08);transform:translateY(-1px)}
input[type="checkbox"]{accent-color:var(--primary)}input[type="file"]{cursor:pointer}
.check-inline{display:flex;align-items:center;gap:8px;min-height:43px}.evidence-thumb{width:64px;height:48px;object-fit:cover;border-radius:10px;border:1px solid var(--line);box-shadow:0 6px 14px rgba(var(--primary-rgb),.10)}
.progress{box-shadow:inset 0 1px 2px rgba(var(--primary-rgb),.08)}.progress i{background:linear-gradient(90deg,var(--primary-deep),var(--primary-2))}
.modal-box{border:1px solid rgba(229,237,255,.88);background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}.modal-close:hover{background:#e6efff;color:var(--primary)}
.toast{font-weight:600;box-shadow:0 10px 28px rgba(var(--primary-rgb),.08)}
@media(max-width:1100px){.main:before{inset:0;height:150px}.page-head{padding:20px}.toolbar,.batch-bar{align-items:stretch}.toolbar .theme-select,.batch-bar .theme-select{min-width:180px}}
@media(max-width:760px){.page-head{display:block}.page-head h1{font-size:24px}.card{padding:18px;overflow:auto}.toolbar,.batch-bar{display:grid;grid-template-columns:1fr;gap:10px}.toolbar>*,.batch-bar>*{width:100%;max-width:none}.btn{width:100%}table{min-width:720px}.dorm-grid{grid-template-columns:1fr}.check-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
select.form-control{padding-right:42px!important;background-image:linear-gradient(180deg,#fff 0%,#fbfdff 100%),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat,no-repeat!important;background-position:0 0,calc(100% - 14px) center!important;background-size:auto,18px!important}.login-dropdown-menu.dropdown-portal{position:fixed!important;left:0;right:auto;top:0;width:auto;z-index:2147483647!important}.login-dropdown-menu.dropdown-portal.open{opacity:1!important;visibility:visible!important;transform:translateY(0) scale(1)!important}
.inline-form{display:inline-flex;margin:0 0 0 8px}.compact-form{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:16px;background:#fbfdff}.danger-text{color:var(--danger)!important}.btn.small{min-height:32px;padding:6px 10px;border-radius:10px;font-size:13px}
select,select.form-control{appearance:none!important;-webkit-appearance:none!important;min-height:43px;border:1px solid #c3d4ff!important;border-radius:14px!important;padding:10px 42px 10px 13px!important;background-color:#f6faff!important;background-image:linear-gradient(135deg,rgba(var(--primary-rgb),.09),rgba(96,165,250,.05)),url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M5 7L9 11L13 7' stroke='%232563eb' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;background-repeat:no-repeat,no-repeat!important;background-position:0 0,calc(100% - 14px) center!important;background-size:auto,18px!important;color:var(--text)!important;font:inherit!important;font-weight:500!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 8px 18px rgba(var(--primary-rgb),.06)!important;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease!important}select:hover,select.form-control:hover{border-color:#9bb8ff!important;background-color:#fff!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 12px 24px rgba(var(--primary-rgb),.10)!important}select:focus,select.form-control:focus{border-color:var(--primary)!important;background-color:#fff!important;outline:none!important;box-shadow:0 0 0 4px rgba(var(--primary-rgb),.13),0 14px 30px rgba(var(--primary-rgb),.12)!important}select option{background:#fff;color:#1f2937}.theme-select-native{display:block!important;position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important}
.sidebar-theme{margin-top:8px;padding:10px 8px;border-top:1px solid var(--line)}.sidebar-theme-label{font-size:11px;color:var(--sidebar-text-muted);display:block;margin-bottom:8px;font-weight:600;letter-spacing:.5px}.theme-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px}.theme-pick{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:8px;cursor:pointer;transition:.18s;border:1px solid transparent;user-select:none}.theme-pick:hover{background:var(--sidebar-active-bg)}.theme-pick.active{background:var(--sidebar-active-bg);border-color:var(--primary)}.theme-pick-dot{width:14px;height:14px;border-radius:50%;flex-shrink:0;box-shadow:0 2px 6px rgba(0,0,0,.12)}.theme-pick-name{font-size:11px;color:var(--sidebar-text);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.theme-pick.active .theme-pick-name{color:var(--primary);font-weight:600}
/* Dark sidebar theme overrides */
body.theme-deep .sidebar,body.theme-violet .sidebar{border-right-color:transparent;box-shadow:4px 0 24px rgba(0,0,0,.18)}
body.theme-deep .brand span,body.theme-violet .brand span{color:var(--sidebar-text-muted)}
body.theme-deep .sidebar-theme,body.theme-violet .sidebar-theme{border-top-color:rgba(255,255,255,.08)}
body.theme-deep .sidebar-user,body.theme-violet .sidebar-user{border-color:rgba(255,255,255,.08)}
body.theme-deep .sidebar-user a,body.theme-violet .sidebar-user a{color:var(--primary-2)}
body.theme-deep .brand-logo,body.theme-violet .brand-logo{box-shadow:0 8px 20px rgba(0,0,0,.25)}
body.theme-deep .main:before,body.theme-violet .main:before{background:linear-gradient(135deg,rgba(var(--primary-rgb),.06),rgba(var(--primary-rgb),.02))}
