.login-scope{--color-primary:#0D9488;--color-primary-hover:#0F766E;--color-primary-active:#115E59;--color-primary-light:#CCFBF1;--color-primary-lighter:#F0FDFA;--color-primary-dark:#134E4A;--color-accent:#F97316;--color-accent-hover:#EA580C;--color-accent-light:#FFEDD5;--color-bg:#FFFFFF;--color-surface:#FAFAF9;--color-surface-alt:#F5F5F4;--color-surface-hover:#F5F5F4;--color-surface-selected:#F0FDFA;--color-border:#E7E5E4;--color-border-strong:#D6D3D1;--color-text-primary:#1C1917;--color-text-secondary:#57534E;--color-text-tertiary:#78716C;--color-text-disabled:#A8A29E;--color-text-inverse:#FFFFFF;--color-success:#10B981;--color-success-light:#D1FAE5;--color-success-dark:#065F46;--color-warning:#F59E0B;--color-warning-light:#FEF3C7;--color-warning-dark:#92400E;--color-danger:#EF4444;--color-danger-light:#FEE2E2;--color-danger-dark:#991B1B;--color-info:#3B82F6;--color-info-light:#DBEAFE;--color-info-dark:#1E40AF;--color-sidebar-bg:#1C1917;--color-sidebar-surface:#292524;--color-sidebar-border:#44403C;--color-sidebar-text:#E7E5E4;--color-sidebar-text-muted:#A8A29E;--color-sidebar-text-disabled:#78716C;--color-sidebar-active-bg:#0D9488;--color-sidebar-active-text:#FFFFFF;--color-sidebar-hover-bg:rgba(255,255,255,0.06);--color-sidebar-group-label:#78716C;--color-topbar-bg:#FFFFFF;--color-topbar-border:#E7E5E4;--font-body:'Noto Sans SC',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;--font-heading:'Noto Sans SC',-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif;--font-numeric:'Inter','Noto Sans SC',system-ui,sans-serif;--font-mono:'JetBrains Mono','Fira Code','SF Mono',Consolas,monospace;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--space-3xs:2px;--space-2xs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:20px;--space-xl:24px;--space-2xl:32px;--space-3xl:48px;--shadow-none:none;--shadow-xs:0 1px 2px rgba(28,25,23,0.04);--shadow-sm:0 1px 3px rgba(28,25,23,0.06),0 1px 2px rgba(28,25,23,0.04);--shadow-md:0 4px 8px rgba(28,25,23,0.06),0 2px 4px rgba(28,25,23,0.04);--shadow-lg:0 8px 24px rgba(28,25,23,0.08),0 4px 8px rgba(28,25,23,0.04);--shadow-xl:0 16px 48px rgba(28,25,23,0.10),0 8px 16px rgba(28,25,23,0.06);--shadow-2xl:0 24px 64px rgba(28,25,23,0.14);--sidebar-width:240px;--sidebar-width-collapsed:64px;--topbar-height:56px;--content-max-width:1440px;--content-padding:24px;--drawer-width:480px;--z-base:0;--z-sticky-table:1;--z-topbar:150;--z-sidebar:200;--z-dropdown:300;--z-drawer:310;--z-modal:400;--z-command:500;--z-toast:600}.login-scope *{margin:0;padding:0;box-sizing:border-box}.login-scope{height:100%;font-family:var(--font-body);font-size:13px;line-height:1.5;color:var(--color-text-primary);background:var(--color-surface);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.login-scope::-webkit-scrollbar{width:6px;height:6px}.login-scope::-webkit-scrollbar-track{background:transparent}.login-scope::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:3px}.login-scope::-webkit-scrollbar-thumb:hover{background:var(--color-text-tertiary)}.login-scope .numeric{font-family:var(--font-numeric);font-variant-numeric:tabular-nums;font-feature-settings:'tnum' 1,'lnum' 1}.login-scope .btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--color-primary);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:7px 16px;font-size:13px;font-weight:600;line-height:1.4;cursor:pointer;transition:all 0.12s ease;white-space:nowrap;font-family:var(--font-body)}.login-scope .btn-primary:hover{background:var(--color-primary-hover);box-shadow:0 2px 8px rgba(13,148,136,0.2)}.login-scope .btn-primary:active{background:var(--color-primary-active);transform:translateY(1px)}.login-scope .btn-secondary{display:inline-flex;align-items:center;gap:6px;background:var(--color-bg);color:var(--color-text-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);padding:7px 16px;font-size:13px;font-weight:500;line-height:1.4;cursor:pointer;transition:all 0.12s ease;white-space:nowrap;font-family:var(--font-body)}.login-scope .btn-secondary:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-lighter)}.login-scope .btn-ghost{display:inline-flex;align-items:center;gap:6px;background:transparent;color:var(--color-text-secondary);border:none;border-radius:var(--radius-md);padding:7px 12px;font-size:13px;font-weight:500;cursor:pointer;transition:all 0.12s ease;font-family:var(--font-body)}.login-scope .btn-ghost:hover{background:var(--color-surface);color:var(--color-text-primary)}.login-scope .btn-danger{display:inline-flex;align-items:center;gap:6px;background:var(--color-danger);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.12s ease;font-family:var(--font-body)}.login-scope .btn-danger:hover{background:#DC2626;box-shadow:0 2px 8px rgba(239,68,68,0.2)}.login-scope .btn-accent{display:inline-flex;align-items:center;gap:6px;background:var(--color-accent);color:var(--color-text-inverse);border:none;border-radius:var(--radius-md);padding:7px 16px;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.12s ease;font-family:var(--font-body)}.login-scope .btn-accent:hover{background:var(--color-accent-hover);box-shadow:0 2px 8px rgba(249,115,22,0.25)}.login-scope .btn-icon{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;background:transparent;color:var(--color-text-tertiary);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all 0.12s ease}.login-scope .btn-icon:hover{background:var(--color-surface);color:var(--color-text-primary)}.login-scope .btn-icon.danger:hover{color:var(--color-danger);background:var(--color-danger-light)}.login-scope .btn-xs{padding:4px 10px;font-size:12px}.login-scope .btn-sm{padding:5px 12px;font-size:12px}.login-scope .btn-group{display:inline-flex;gap:8px;align-items:center}.login-scope .btn:disabled{opacity:0.55;cursor:not-allowed;box-shadow:none}.login-scope .btn-block{width:100%;justify-content:center}.login-scope .panel{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.login-scope .panel-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--color-border)}.login-scope .panel-title{font-size:15px;font-weight:600;color:var(--color-text-primary)}.login-scope .panel-subtitle{font-size:12px;color:var(--color-text-tertiary);margin-top:2px}.login-scope .panel-actions{display:flex;gap:8px}.login-scope .panel-body{padding:0}.login-scope .panel-body.padded{padding:20px}.login-scope .panel-footer{padding:12px 20px;border-top:1px solid var(--color-border);background:var(--color-surface)}.login-scope .status-badge{display:inline-flex;align-items:center;gap:6px;padding:2px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:500;line-height:1.4;white-space:nowrap}.login-scope .status-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.login-scope .status-success{background:#D1FAE5;color:#065F46}.login-scope .status-warning{background:#FEF3C7;color:#92400E}.login-scope .status-danger{background:#FEE2E2;color:#991B1B}.login-scope .status-info{background:#DBEAFE;color:#1E40AF}.login-scope .status-neutral{background:#F5F5F4;color:#44403C}.login-scope .status-primary{background:#CCFBF1;color:#115E59}.login-scope .school-badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:12px;font-weight:500;white-space:nowrap}.login-scope .school-badge-zhigao{background:#EDE9FE;color:#5B21B6}.login-scope .school-badge-zhongzhuan{background:#DBEAFE;color:#1E40AF}.login-scope .school-badge-jigong{background:#FFEDD5;color:#9A3412}.login-scope .school-badge-dazhuan{background:#CFFAFE;color:#155E75}.login-scope .school-badge-benke{background:#CCFBF1;color:#115E59}.login-scope .school-badge-fudu{background:#FCE7F3;color:#9D174D}.school-badge-peixun{background:#FEF3C7;color:#92400E}.login-scope .filter-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:16px}.login-scope .filter-input{height:40px;padding:0 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-primary);min-width:200px;transition:all 0.12s ease;font-family:var(--font-body);width:100%}.login-scope .filter-input::placeholder{color:var(--color-text-tertiary)}.login-scope .filter-input:focus{outline:none;border-color:var(--color-primary);background:var(--color-bg);box-shadow:0 0 0 2px rgba(13,148,136,0.08)}.login-scope .filter-input.with-icon{padding-left:36px}.login-scope .filter-input.with-right-icon{padding-right:40px}.login-scope .filter-input.is-error{border-color:var(--color-danger)}.login-scope .filter-input-wrapper{position:relative}.login-scope .filter-input-wrapper .filter-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--color-text-tertiary);pointer-events:none}.login-scope .filter-input-wrapper .filter-icon-right{left:auto;right:10px;cursor:pointer;pointer-events:auto;color:var(--color-text-tertiary)}.login-scope .filter-input-wrapper .filter-icon-right:hover{color:var(--color-primary)}.login-scope .filter-select{height:40px;padding:0 32px 0 12px;appearance:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-primary);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2378716C' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:14px;font-family:var(--font-body);width:100%}.login-scope .filter-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(13,148,136,0.08)}.login-scope .filter-clear{font-size:12px;color:var(--color-text-tertiary);cursor:pointer;margin-left:auto;transition:color 0.12s}.login-scope .filter-clear:hover{color:var(--color-danger)}.login-scope .filter-divider{width:1px;height:20px;background:var(--color-border)}.login-scope .tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:var(--space-lg)}.login-scope .tab{padding:10px 16px;font-size:14px;font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;cursor:pointer;transition:all 0.12s ease;white-space:nowrap;display:flex;align-items:center;gap:6px;margin-bottom:-1px;background:none;font-family:var(--font-body)}.login-scope .tab:hover{color:var(--color-text-primary)}.login-scope .tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.login-scope .tab-count{padding:1px 7px;border-radius:var(--radius-full);font-size:11px;font-weight:600;font-family:var(--font-numeric);font-variant-numeric:tabular-nums;background:var(--color-surface-alt);color:var(--color-text-tertiary)}.login-scope .tab.active .tab-count{background:var(--color-primary-light);color:var(--color-primary-dark)}.login-scope .avatar-teal{background:#CCFBF1;color:#115E59}.login-scope .avatar-blue{background:#DBEAFE;color:#1E40AF}.login-scope .avatar-purple{background:#EDE9FE;color:#5B21B6}.login-scope .avatar-orange{background:#FFEDD5;color:#9A3412}.login-scope .avatar-pink{background:#FCE7F3;color:#9D174D}.login-scope .avatar-cyan{background:#CFFAFE;color:#155E75}.login-scope .text-secondary{color:var(--color-text-secondary)}.login-scope .text-tertiary{color:var(--color-text-tertiary)}.login-scope .text-success{color:var(--color-success)}.login-scope .text-danger{color:var(--color-danger)}.login-scope .text-primary{color:var(--color-primary)}.login-scope .mt-0{margin-top:0}.login-scope .mb-0{margin-bottom:0}.login-scope .mb-2{margin-bottom:8px}.login-scope .mb-3{margin-bottom:12px}.login-scope .mb-4{margin-bottom:16px}.login-scope .mb-6{margin-bottom:24px}.login-scope .flex{display:flex}.login-scope .items-center{align-items:center}.login-scope .justify-between{justify-content:space-between}.login-scope .gap-2{gap:8px}.login-scope .gap-3{gap:12px}.login-scope .gap-4{gap:16px}.login-scope .info-card{display:flex;align-items:center;gap:12px}.login-scope .info-card-avatar{width:40px;height:40px;border-radius:var(--radius-md);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:600}.login-scope .info-card-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.login-scope .info-card-meta{font-size:12px;color:var(--color-text-tertiary)}.login-scope .tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-sm);font-size:11px;font-weight:500;background:var(--color-surface-alt);color:var(--color-text-secondary)}.login-scope .tag-primary{background:var(--color-primary-light);color:var(--color-primary-dark)}.login-scope .tag-accent{background:var(--color-accent-light);color:var(--color-accent-hover)}.login-scope .site-logo{display:inline-flex;align-items:center;gap:var(--space-xs);font-weight:600;color:var(--color-text-primary);font-size:15px;text-decoration:none}.login-scope .site-logo .logo-mark{width:28px;height:28px;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-inverse);display:inline-flex;align-items:center;justify-content:center}.login-scope .site-nav{display:flex;align-items:center;gap:var(--space-xs)}.login-scope .site-nav-link{padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-md);font-size:14px;color:var(--color-text-secondary);text-decoration:none;transition:all .12s ease}.login-scope .site-nav-link:hover{background:var(--color-surface);color:var(--color-primary)}.login-scope .site-nav-link.active{color:var(--color-primary);font-weight:600}.login-scope .site-actions{margin-left:auto;display:flex;align-items:center;gap:var(--space-sm)}.login-scope .site-actions .btn-ghost{color:var(--color-text-secondary)}.login-scope .site-hamburger{display:none}.login-scope .footer-brand .site-logo{margin-bottom:var(--space-sm)}.login-scope .footer-col-title{font-size:14px;font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-sm)}.login-scope .footer-link{display:block;font-size:13px;color:var(--color-text-secondary);text-decoration:none;padding:4px 0}.login-scope .footer-link:hover{color:var(--color-primary)}.login-scope .footer-bottom{max-width:var(--content-max-width);margin:var(--space-2xl) auto 0;padding:var(--space-lg) var(--space-xl) 0;border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:var(--space-md);font-size:12px;color:var(--color-text-tertiary)}.login-scope .alert{display:block;width:100%;box-sizing:border-box;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-md);border:1px solid transparent;font-size:13px;line-height:1.5;margin-bottom:var(--space-md)}.login-scope .alert-success{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success-dark)}.login-scope .alert-error{background:var(--color-danger-light);border-color:var(--color-danger);color:var(--color-danger-dark)}.login-scope .alert-warning{background:var(--color-warning-light);border-color:var(--color-warning);color:var(--color-warning-dark)}.login-scope .alert-info{background:var(--color-info-light);border-color:var(--color-info);color:var(--color-info-dark)}.login-scope .alert .alert-icon{margin-right:var(--space-xs);vertical-align:-2px}.login-scope .checkbox{display:inline-flex;align-items:center;gap:var(--space-xs);cursor:pointer;font-size:13px;color:var(--color-text-secondary)}.login-scope .checkbox input{width:16px;height:16px;margin:0;accent-color:var(--color-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);cursor:pointer}.login-scope .checkbox input:focus-visible{outline:none;box-shadow:0 0 0 2px rgba(13,148,136,0.08)}.login-scope .login-split{display:grid;grid-template-columns:1fr 1fr;min-height:calc(100vh - var(--topbar-height))}.login-scope .login-brand{position:relative;background:linear-gradient(150deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);color:var(--color-text-inverse);padding:var(--space-3xl);display:flex;flex-direction:column;justify-content:center;overflow:hidden}.login-scope .login-brand::after{content:"";position:absolute;right:-80px;top:-80px;width:320px;height:320px;border-radius:50%;background:rgba(255,255,255,0.06)}.login-scope .login-brand::before{content:"";position:absolute;left:-60px;bottom:-100px;width:260px;height:260px;border-radius:50%;background:rgba(255,255,255,0.05)}.login-scope .login-brand-inner{position:relative;z-index:1;max-width:420px}.login-scope .login-brand .brand-logo{display:inline-flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-2xl)}.login-scope .login-brand .brand-logo .logo-mark{width:44px;height:44px;border-radius:var(--radius-md);background:rgba(255,255,255,0.16);color:#fff;display:inline-flex;align-items:center;justify-content:center}.login-scope .login-brand .brand-logo .brand-name{font-size:22px;font-weight:700;color:#fff;letter-spacing:-0.01em}.login-scope .login-brand .brand-slogan{font-size:28px;font-weight:700;line-height:1.3;letter-spacing:-0.02em}.login-scope .login-brand .brand-sub{font-size:14px;line-height:1.7;color:rgba(255,255,255,0.82);margin-top:var(--space-md)}.login-scope .login-brand-features{margin-top:var(--space-2xl);display:flex;flex-direction:column;gap:var(--space-md)}.login-scope .login-feature{display:flex;align-items:center;gap:var(--space-sm)}.login-scope .login-feature .feature-icon{width:36px;height:36px;border-radius:var(--radius-md);background:rgba(255,255,255,0.14);color:#fff;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.login-scope .login-feature .feature-text{font-size:14px;color:rgba(255,255,255,0.92)}.login-scope .login-brand-stats{margin-top:var(--space-2xl);display:flex;gap:var(--space-2xl);padding-top:var(--space-xl);border-top:1px solid rgba(255,255,255,0.16)}.login-scope .login-stat .v{font-family:var(--font-numeric);font-size:22px;font-weight:700;color:#fff}.login-scope .login-stat .k{font-size:12px;color:rgba(255,255,255,0.78);margin-top:2px}.login-scope .login-card-wrap{display:flex;align-items:center;justify-content:center;padding:var(--space-3xl);background:var(--color-bg)}.login-scope .login-card{width:100%;max-width:400px}.login-scope .login-card-head{margin-bottom:var(--space-xl)}.login-scope .login-card-head .title{font-size:20px;font-weight:600;color:var(--color-text-primary);letter-spacing:-0.01em}.login-scope .login-card-head .subtitle{font-size:13px;color:var(--color-text-tertiary);margin-top:4px}.login-scope .login-form{display:flex;flex-direction:column;gap:var(--space-md)}.login-scope .field{display:flex;flex-direction:column;gap:var(--space-2xs)}.login-scope .field-label{font-size:13px;font-weight:500;color:var(--color-text-secondary)}.login-scope .login-form-options{display:flex;align-items:center;justify-content:space-between}.login-scope .login-links{display:flex;flex-wrap:wrap;gap:var(--space-sm) var(--space-lg);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.login-scope .login-link{font-size:13px;color:var(--color-text-secondary);text-decoration:none;transition:color .12s}.login-scope .login-link:hover{color:var(--color-primary)}.login-scope .hidden{display:none !important}@media (max-width:768px){.login-scope .site-nav{display:none}.login-scope .site-hamburger{display:inline-flex}.login-scope .login-split{grid-template-columns:1fr;min-height:auto}.login-scope .login-brand{padding:var(--space-xl);flex-direction:row;align-items:center}.login-scope .login-brand::after,.login-scope .login-brand::before{display:none}.login-scope .login-brand-inner{max-width:100%;width:100%;display:flex;align-items:center;gap:var(--space-sm)}.login-scope .login-brand .brand-logo{margin-bottom:0}.login-scope .login-brand .brand-slogan,.login-scope .login-brand .brand-sub,.login-scope .login-brand-features,.login-scope .login-brand-stats{display:none}.login-scope .login-card-wrap{padding:var(--space-2xl) var(--space-md)}.login-scope .footer-bottom{flex-direction:column;gap:var(--space-xs)}}.login-scope .btn-lg{padding:9px 20px;font-size:14px}.login-scope .login-sms-row{display:flex;gap:var(--space-sm);align-items:center}.login-scope .login-sms-row .filter-input{flex:1;min-width:0}