*{font-family:Noto Sans SC,sans-serif}body{background:var(--ww-bg-gray-2);color:var(--ww-text-primary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-in{animation:.35s ease-out forwards fadeInUp}.sidebar-transition{will-change:width, transform;transition:width .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s}.sidebar-text{opacity:1;max-width:150px;transition:opacity .18s,max-width .24s cubic-bezier(.2,.8,.2,1),transform .2s;transform:translate(0)}.nav-item,.nav-group-header{transition:background-color .18s,color .18s,padding .24s cubic-bezier(.2,.8,.2,1),gap .24s cubic-bezier(.2,.8,.2,1)}.nav-group-children{opacity:1;max-height:240px;transition:max-height .24s cubic-bezier(.2,.8,.2,1),opacity .18s,transform .2s,margin .24s,padding .24s;overflow:hidden;transform:translateY(0)}.nav-group-children.hidden{opacity:0;pointer-events:none;max-height:0;transform:translateY(-4px);margin-top:0!important;display:block!important}.sidebar-close-btn{display:none!important}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}.overflow-x-auto{scrollbar-width:thin;scrollbar-color:#cbd5e1 #f8fafc}.overflow-x-auto::-webkit-scrollbar{width:8px;height:8px}.overflow-x-auto::-webkit-scrollbar-track{background:#f8fafc;border-radius:999px}.overflow-x-auto::-webkit-scrollbar-thumb{background:#cbd5e1;border:2px solid #f8fafc;border-radius:999px}.overflow-x-auto::-webkit-scrollbar-thumb:hover{background:#94a3b8}:root{--ww-accent-blue:#267ef0;--ww-accent-blue-hover:#4b95f3;--ww-accent-blue-active:#1f68c5;--ww-accent-blue-soft:#dcebfd;--ww-chrome-jade:#1ebd43;--ww-chrome-jade-soft:#dbf5e2;--ww-text-primary:#10141a;--ww-text-secondary:#0b121a99;--ww-text-muted:#0a111a80;--ww-border-light:#060f1a12;--ww-border:#060f1a1a;--ww-bg-white:#fff;--ww-bg-gray-1:#eff0f1;--ww-bg-gray-2:#f6f6f7;--ww-bg-gray-3:#fafafb;--toolbar-control-h:36px;--toolbar-button-min-w:84px;--toolbar-icon-button-w:36px;--toolbar-input-w:150px;--ui-field-h:36px;--ui-field-radius:10px;--ui-field-bg:#fff;--ui-field-border:var(--ww-border);--ui-field-text:var(--ww-text-primary);--ui-field-muted:var(--ww-text-muted);--ui-field-focus:var(--ww-accent-blue)}.toolbar-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-control{height:var(--toolbar-control-h);min-height:var(--toolbar-control-h);box-sizing:border-box;border-radius:10px;font-size:13px;line-height:1}.toolbar-button{min-width:var(--toolbar-button-min-w);white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.toolbar-icon-button{width:var(--toolbar-icon-button-w);min-width:var(--toolbar-icon-button-w);flex:0 0 var(--toolbar-icon-button-w);vertical-align:middle;justify-content:center;align-items:center;gap:0;padding:0;display:inline-flex}.toolbar-icon-button>svg,.toolbar-icon-button>i{flex-shrink:0;margin:auto;display:block}.toolbar-input{width:var(--toolbar-input-w);padding:0 12px}.filter-toolbar,.member-filter-toolbar{grid-template-columns:repeat(auto-fit,minmax(132px,1fr));align-items:center;gap:8px;display:grid}.filter-toolbar>input,.filter-toolbar>select,.filter-toolbar>button,.member-filter-toolbar>input,.member-filter-toolbar>select{width:100%!important;min-width:0!important;max-width:none!important}.filter-toolbar .filter-row-full{grid-column:1/-1}.filter-toolbar .filter-row-full>select,.member-filter-toolbar .filter-row-full>select{flex:132px;width:100%;min-width:0}.filter-toolbar .filter-meta{white-space:nowrap;justify-self:start}.login-page{background:radial-gradient(circle at 52% 24%,#267ef02e,#0000 26rem),radial-gradient(circle at 38% 68%,#1ebd431a,#0000 22rem),linear-gradient(#f8fbff 0%,#f3f6fa 100%);position:relative;overflow:hidden}.login-page:before{content:"";filter:blur(28px);pointer-events:none;background:#ffffff8a;border-radius:999px;position:absolute;inset:12%}.ww-login-panel{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:relative;overflow:hidden;background:#ffffffe6!important;border:1px solid #267ef024!important;border-radius:28px!important;box-shadow:0 24px 70px #142d5629,inset 0 1px #ffffffe6!important}.ww-login-panel:before{content:"";background:linear-gradient(90deg, var(--ww-accent-blue), #45b7ff 48%, var(--ww-chrome-jade));height:7px;position:absolute;inset:0 0 auto}.ww-login-grid{grid-template-columns:minmax(0,.9fr) minmax(380px,1fr);align-items:stretch;gap:28px;display:grid}.ww-login-brand{background:radial-gradient(circle at 20% 20%,#ffffffdb,#0000 12rem),linear-gradient(145deg,#267ef01f,#1ebd431a);border:1px solid #267ef01a;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;min-height:430px;padding:42px 34px;display:flex}.ww-login-brand h1{color:#12304f;letter-spacing:.02em;margin-top:18px}.ww-login-brand p{color:#12304f7a}.ww-login-actions{flex-direction:column;justify-content:center;gap:16px;display:flex}.ww-login-account-card,.ww-login-wecom-card{background:#ffffffe6;border:1px solid #267ef01a;border-radius:24px;box-shadow:0 14px 34px #12304f14}.ww-login-account-card{padding:22px}.ww-login-wecom-card{padding:18px 22px 22px}.ww-login-section-title{color:#12304f;letter-spacing:.01em;margin-bottom:16px;font-size:16px;font-weight:700}.ww-login-form{background:0 0;border:0;border-radius:0;padding:0}.ww-login-form label{font-size:13px;color:#12304fc7!important}.ww-login-form input{color:#12304f;background:#fff;min-height:46px;box-shadow:inset 0 1px #ffffffe6;border-color:#267ef024!important}.ww-login-form button[type=submit]{border-radius:14px;height:46px;box-shadow:0 12px 24px #267ef038;background:linear-gradient(135deg, var(--ww-accent-blue), #4b95f3)!important;margin:10px 0 0!important}.ww-login-divider{color:#12304f75;align-items:center;gap:12px;margin:0 0 14px;font-size:12px;display:flex}.ww-login-divider:before,.ww-login-divider:after{content:"";background:linear-gradient(90deg,#0000,#267ef033);flex:1;height:1px}.ww-login-divider:after{background:linear-gradient(90deg,#267ef033,#0000)}.ww-login-button{height:46px;color:var(--ww-accent-blue);background:#fff;border:1px solid #267ef02e;border-radius:14px;justify-content:center;align-items:center;gap:8px;font-size:15px;font-weight:500;line-height:20px;transition:background-color .18s,border-color .18s,box-shadow .18s,transform .18s;display:inline-flex;box-shadow:0 10px 24px #12304f14}.ww-login-button:hover{border-color:var(--ww-accent-blue-hover);background:#f7faff;transform:translateY(-1px);box-shadow:0 14px 30px #267ef029}.ww-login-button:active{transform:translateY(0)}.ww-login-button__icon{justify-content:center;align-items:center;display:inline-flex}@media (width<=860px){.ww-login-panel{padding:18px!important}.ww-login-grid{grid-template-columns:1fr;gap:16px}.ww-login-brand{min-height:auto;padding:28px 20px}.ww-login-actions{gap:12px}.ww-login-account-card,.ww-login-wecom-card{border-radius:20px;padding:18px}}@media (width>=768px){#headerActions button.mobile-keep-label{display:none!important}}@media (width>=1024px){.users-filter-toolbar{grid-template-columns:minmax(150px,1.05fr) minmax(128px,.8fr) minmax(140px,.85fr) minmax(210px,2.35fr)}.users-filter-toolbar .users-sort-controls{flex-wrap:nowrap;grid-column:auto}.users-filter-toolbar .users-sort-controls>select{flex:1 1 0}}.toolbar-date-picker{flex:none;align-items:center;display:inline-flex;position:relative}.toolbar-date-trigger{min-width:110px;padding:0 10px}.toolbar-date-input-ghost{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;inset:0}.table-first-header,.table-first-cell,.table-action-header,.table-action-cell{background-clip:padding-box;position:sticky}.table-first-header,.table-first-cell{left:0}.table-action-header,.table-action-cell{right:0}.table-first-header{z-index:16;background:#f9fafb;box-shadow:12px 0 14px -14px #0f172a38,1px 0 #e5e7eb}.table-first-cell{z-index:11;background:#fff;box-shadow:12px 0 14px -14px #0f172a2e,1px 0 #f1f5f9}.table-action-header{z-index:15;background:#f9fafb;box-shadow:-12px 0 14px -14px #0f172a38,-1px 0 #e5e7eb}.table-action-cell{z-index:10;background:#fff;box-shadow:-12px 0 14px -14px #0f172a2e,-1px 0 #f1f5f9}tbody tr:hover .table-first-cell,tbody tr:hover .table-action-cell{background:#f9fafb}.review-mode-group{height:var(--toolbar-control-h);min-height:var(--toolbar-control-h);background:#fff;border:1px solid #dbe3ee;border-radius:10px;flex:none;align-items:stretch;display:inline-flex;overflow:hidden}.review-mode-button{min-width:var(--toolbar-button-min-w);white-space:nowrap;color:#475569;border:0;border-radius:0;justify-content:center;align-items:center;gap:6px;height:100%;padding:0 12px;display:inline-flex}.review-mode-button+.review-mode-button{border-left:1px solid #e5edf5}.review-mode-button.is-active{color:#15803d;background:#f0fdf4;box-shadow:inset 0 0 0 1px #22c55e29}.review-mode-button:not(.is-active):hover{color:#334155;background:#f8fafc}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]),select,textarea{box-sizing:border-box;letter-spacing:0;transition:border-color .16s,box-shadow .16s,background-color .16s;border-color:var(--ui-field-border)!important;border-radius:var(--ui-field-radius)!important;background-color:var(--ui-field-bg)!important;color:var(--ui-field-text)!important}input:not([type=checkbox]):not([type=radio]):not([type=color]):not([type=file]):focus,select:focus,textarea:focus{border-color:var(--ui-field-focus)!important;background-color:#fff!important;outline:none!important;box-shadow:0 0 0 3px #22c55e1f!important}input[type=date],input[type=time],select:not([multiple]){min-height:var(--ui-field-h);height:var(--ui-field-h)}select:not([multiple]){appearance:none;cursor:pointer;background-image:linear-gradient(90deg,#dbe3eef5,#dbe3eef5),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 20 20' fill='none' stroke='%2364748b' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m5 7 5 5 5-5'/%3E%3C/svg%3E");background-position:calc(100% - 34px),calc(100% - 14px);background-repeat:no-repeat;background-size:1px 18px,16px 16px;background-origin:border-box;background-clip:padding-box,border-box;font-weight:500;line-height:1.15;box-shadow:0 1px 2px #0f172a0a,inset 0 1px #ffffffe6;padding-left:14px!important;padding-right:42px!important}select:not([multiple]):hover{box-shadow:0 2px 8px #0f172a0f,inset 0 1px #ffffffeb;background-color:#fff!important;border-color:#c0cad8!important}select:not([multiple]):focus-visible{box-shadow:0 0 0 3px #38bdf81f,0 2px 8px #0f172a0f!important}select:not([multiple]):disabled{cursor:not-allowed;opacity:.82;color:var(--ui-field-muted)!important;box-shadow:none!important;background-color:#f8fafc!important}select[multiple]{cursor:default;height:auto;min-height:96px;background-image:none!important;padding:10px 12px!important}select option{color:#0f172a}input[type=date],input[type=time]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;padding-right:10px}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;background-color:#f1f5f9;border-radius:8px;width:24px;height:24px;margin-left:6px;padding:3px}input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.85;background-color:#f1f5f9;border-radius:8px;width:24px;height:24px;margin-left:6px;padding:3px}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1;background-color:#e2e8f0}input[type=time]::-webkit-calendar-picker-indicator:hover{opacity:1;background-color:#e2e8f0}input::placeholder,textarea::placeholder{color:var(--ui-field-muted)!important}.fixed.inset-0[class*=bg-black]{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.fixed.inset-0 .bg-white.rounded-2xl,.fixed.inset-0 .bg-white.rounded-xl{border:1px solid #e2e8f0e6;box-shadow:0 20px 48px #0f172a29}.ui-surface{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0f172a0f}.ui-card{background:#fff;border-radius:10px;box-shadow:0 1px 3px #0f172a0f}.ui-soft-button{color:#047857;background:#ecfdf5;border:1px solid #d1fae5}.ui-soft-button:hover{background:#dcfce7}#scheduleContainer{isolation:isolate;position:relative}#scheduleContainer:before{content:"";z-index:75;pointer-events:none;background:#fff;height:16px;margin-bottom:-16px;display:block;position:sticky;top:0}#scheduleContainer thead th{background-clip:border-box;z-index:110!important;background:#fff!important}#scheduleContainer thead th:before{content:"";z-index:-1;pointer-events:none;background:#fff;position:absolute;inset:-18px 0 0}#scheduleContainer tbody{z-index:0;position:relative}#scheduleContainer tbody td>*{z-index:1;position:relative}@media print{body.schedule-printing{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fff!important;margin:0!important}body.schedule-printing *{visibility:hidden!important}body.schedule-printing #app-page,body.schedule-printing #app,body.schedule-printing #mainContent,body.schedule-printing #contentArea{width:100%!important;height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}body.schedule-printing header,body.schedule-printing aside,body.schedule-printing #sidebarOverlay,body.schedule-printing #loading-screen,body.schedule-printing #login-page{display:none!important}body.schedule-printing #contentArea>:not(:has(#scheduleContainer)){display:none!important}body.schedule-printing #contentArea>:has(#scheduleContainer){width:100%!important;box-shadow:none!important;background:#fff!important;border:0!important;margin:0!important;padding:0!important;display:block!important}body.schedule-printing #scheduleContainer,body.schedule-printing #scheduleContainer *{visibility:visible!important}body.schedule-printing #scheduleContainer{isolation:auto!important;background:#fff!important;width:100%!important;max-width:none!important;height:auto!important;max-height:none!important;margin:0 auto!important;padding:0!important;position:static!important;inset:auto!important;overflow:visible!important;transform:none!important}body.schedule-printing #scheduleContainer:before{content:attr(data-print-title);color:#111827;text-align:center;margin:0 0 1mm;font-size:10px;font-weight:700;line-height:1.05;display:block}body.schedule-printing #scheduleContainer>div{width:100%!important}body.schedule-printing #scheduleContainer table{break-inside:avoid-page;page-break-inside:avoid;table-layout:fixed!important;border-collapse:collapse!important;width:100%!important;font-size:var(--schedule-print-font-size,9px)!important;line-height:1!important}body.schedule-printing #scheduleContainer col:first-child{width:7mm!important}body.schedule-printing #scheduleContainer th,body.schedule-printing #scheduleContainer td{box-sizing:border-box!important;padding:var(--schedule-print-cell-padding,.6mm)!important;box-shadow:none!important;vertical-align:middle!important;background-clip:padding-box!important;border:.3pt solid #d1d5db!important;position:static!important;overflow:hidden!important}body.schedule-printing #scheduleContainer td{height:var(--schedule-print-row-height,auto)!important;max-height:var(--schedule-print-row-height,none)!important}body.schedule-printing #scheduleContainer thead,body.schedule-printing #scheduleContainer tbody{display:table-row-group!important}body.schedule-printing #scheduleContainer thead tr{height:var(--schedule-print-header-height,18px)!important}body.schedule-printing #scheduleContainer tbody tr{break-inside:avoid;page-break-inside:avoid;height:var(--schedule-print-row-height,auto)!important}body.schedule-printing #scheduleContainer th:before{display:none!important}body.schedule-printing #scheduleContainer th{font-size:calc(var(--schedule-print-font-size,9px) + .2px)!important;white-space:nowrap!important;height:var(--schedule-print-header-height,18px)!important;vertical-align:middle!important;background:#f8fafc!important;font-weight:700!important;line-height:1!important}body.schedule-printing #scheduleContainer thead th>div{white-space:nowrap!important;flex-wrap:nowrap!important;justify-content:center!important;align-items:center!important;gap:.4mm!important;line-height:1!important;display:flex!important}body.schedule-printing #scheduleContainer thead th>div>span{white-space:nowrap!important}body.schedule-printing #scheduleContainer td:first-child,body.schedule-printing #scheduleContainer th:first-child{text-align:center!important;width:7mm!important;min-width:7mm!important;max-width:7mm!important}body.schedule-printing #scheduleContainer [data-course-key]{break-inside:avoid;page-break-inside:avoid;min-height:0!important;padding:var(--schedule-print-card-padding,.6mm)!important;box-shadow:none!important;border:.3pt solid #0f172a1f!important;border-radius:.8mm!important;margin:0 0 .25mm!important}body.schedule-printing #scheduleContainer [data-course-key] .grid{flex-wrap:nowrap!important;align-items:center!important;gap:.8mm!important;margin:0!important;display:flex!important}body.schedule-printing #scheduleContainer [data-course-key] span,body.schedule-printing #scheduleContainer [data-course-key] div{font-size:var(--schedule-print-card-font-size,7.1px)!important;line-height:1!important}body.schedule-printing #scheduleContainer [data-course-key]>:not(.print-course-summary):not(.absolute){display:none!important}body.schedule-printing #scheduleContainer [data-course-key] .print-course-summary{white-space:nowrap!important;align-items:center!important;gap:.6mm!important;min-width:0!important;display:flex!important}body.schedule-printing #scheduleContainer [data-course-key] .print-course-summary span{text-overflow:ellipsis!important;white-space:nowrap!important;min-width:0!important;overflow:hidden!important}body.schedule-printing #scheduleContainer [data-course-key] .print-course-summary span:first-child{flex:auto!important;font-weight:700!important}body.schedule-printing #scheduleContainer [data-course-key] .print-course-summary span:not(:first-child){flex:none!important}body.schedule-printing #scheduleContainer [data-course-key] .grid>span{white-space:nowrap!important;text-overflow:ellipsis!important;overflow:hidden!important}body.schedule-printing #scheduleContainer [data-course-key] .grid>span:first-child{flex:auto!important;min-width:0!important}body.schedule-printing #scheduleContainer [data-course-key] .grid>span:not(:first-child){flex:none!important}body.schedule-printing #scheduleContainer [data-course-key] .flex{gap:.25mm!important}body.schedule-printing #scheduleContainer [data-course-key] .absolute{display:none!important}body.schedule-printing #scheduleContainer [data-course-key] .text-\[11px\],body.schedule-printing #scheduleContainer [data-course-key] .text-\[10px\],body.schedule-printing #scheduleContainer [data-course-key] .text-xs{font-size:7px!important}body.schedule-printing #scheduleContainer [data-course-key] .flex.flex-wrap.gap-1,body.schedule-printing #toastContainer,body.schedule-printing .fixed{display:none!important}}button{letter-spacing:0}#toastContainer{z-index:9999;pointer-events:none;flex-direction:column;gap:8px;width:min(360px,100vw - 32px);display:flex;position:fixed;top:16px;right:16px}.toast{color:#334155;opacity:0;pointer-events:auto;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:8px;min-height:40px;padding:10px 12px;font-size:13px;line-height:1.4;animation:.18s forwards toastIn;display:flex;transform:translateY(-6px);box-shadow:0 14px 34px #0f172a24}.toast-success{color:#047857;background:#ecfdf5;border-color:#bbf7d0}.toast-error{color:#dc2626;background:#fef2f2;border-color:#fecaca}.toast-warning{color:#b45309;background:#fffbeb;border-color:#fde68a}.toast-info{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}@keyframes toastIn{to{opacity:1;transform:translateY(0)}}:is(button:not(.hidden):has(>svg:only-child),button:not(.hidden):has(>i[data-lucide]:only-child)){justify-content:center;align-items:center;display:inline-flex}:is(button:not(.hidden)[class*=rounded-lg]:has(>svg:only-child),button:not(.hidden)[class*=rounded-lg]:has(>i[data-lucide]:only-child)){min-width:32px;min-height:32px}:is(button:has(>svg:only-child)>svg,button:has(>i[data-lucide]:only-child)>i){flex-shrink:0;margin:auto;display:block}button[class*=bg-green-500][class*=text-white]{box-shadow:0 6px 14px #267ef02e;background:var(--ww-accent-blue)!important;color:#fff!important;border:1px solid var(--ww-accent-blue)!important}button[class*=bg-green-500][class*=text-white]:hover{background:var(--ww-accent-blue-hover)!important;border-color:var(--ww-accent-blue-hover)!important}button[class*=bg-blue-500][class*=text-white]{box-shadow:0 6px 14px #2563eb2e;color:#fff!important;background:#2563eb!important;border:1px solid #2563eb!important}button[class*=bg-blue-500][class*=text-white]:hover{background:#1d4ed8!important;border-color:#1d4ed8!important}button[class*=bg-indigo-500][class*=text-white]{box-shadow:0 6px 14px #4f46e52e;color:#fff!important;background:#4f46e5!important;border:1px solid #4f46e5!important}button[class*=bg-indigo-500][class*=text-white]:hover{background:#4338ca!important;border-color:#4338ca!important}button[class*=bg-purple-500][class*=text-white]{box-shadow:0 6px 14px #7c3aed2e;color:#fff!important;background:#7c3aed!important;border:1px solid #7c3aed!important}button[class*=bg-purple-500][class*=text-white]:hover{background:#6d28d9!important;border-color:#6d28d9!important}button[class*=bg-amber-500][class*=text-white]{box-shadow:0 6px 14px #d977062e;color:#fff!important;background:#d97706!important;border:1px solid #d97706!important}button[class*=bg-amber-500][class*=text-white]:hover{background:#b45309!important;border-color:#b45309!important}button[class*=bg-teal-500][class*=text-white]{box-shadow:0 6px 14px #0f766e2e;color:#fff!important;background:#0f766e!important;border:1px solid #0f766e!important}button[class*=bg-teal-500][class*=text-white]:hover{background:#0d9488!important;border-color:#0d9488!important}button[class*=bg-red-500][class*=text-white]{box-shadow:0 6px 14px #dc26262e;color:#fff!important;background:#dc2626!important;border:1px solid #dc2626!important}button[class*=bg-red-500][class*=text-white]:hover{background:#b91c1c!important;border-color:#b91c1c!important}button[class*=bg-gray-800][class*=text-white],button[class*=bg-gray-900][class*=text-white]{color:#334155!important;background:#f8fafc!important;border:1px solid #e2e8f0!important}button[class*=bg-gray-800][class*=text-white]:hover,button[class*=bg-gray-900][class*=text-white]:hover{background:#f1f5f9!important}button[class~=bg-green-50]{background:#dcfce7!important;border-color:#bbf7d0!important}button[class~=bg-green-50]:hover{background:#bbf7d0!important}button[class~=bg-blue-50]{background:#dbeafe!important;border-color:#bfdbfe!important}button[class~=bg-blue-50]:hover{background:#bfdbfe!important}button[class~=bg-indigo-50]{background:#e0e7ff!important;border-color:#c7d2fe!important}button[class~=bg-indigo-50]:hover{background:#c7d2fe!important}button[class~=bg-purple-50]{background:#ede9fe!important;border-color:#ddd6fe!important}button[class~=bg-purple-50]:hover{background:#ddd6fe!important}button[class~=bg-amber-50]{background:#fef3c7!important;border-color:#fde68a!important}button[class~=bg-amber-50]:hover{background:#fde68a!important}button[class~=bg-teal-50]{background:#ccfbf1!important;border-color:#99f6e4!important}button[class~=bg-teal-50]:hover{background:#99f6e4!important}button[class~=bg-red-50]{background:#fee2e2!important;border-color:#fecaca!important}button[class~=bg-red-50]:hover{background:#fecaca!important}button[class~=bg-slate-50]{background:#e2e8f0!important;border-color:#cbd5e1!important}button[class~=bg-slate-50]:hover{background:#cbd5e1!important}button[class~=bg-gray-50],button[class~=bg-gray-100]{background:#e5e7eb!important;border-color:#d1d5db!important}button[class~=bg-gray-50]:hover,button[class~=bg-gray-100]:hover{background:#d1d5db!important}@media (width<=640px){html,body,#app,main{max-width:100%;overflow-x:hidden}:root{--toolbar-control-h:30px;--toolbar-button-min-w:auto;--toolbar-icon-button-w:30px;--toolbar-input-w:108px;--ui-field-h:30px;--ui-field-radius:8px}header{padding:8px 6px!important}header>.flex{gap:4px}header>.flex>div:first-child{flex:none;gap:4px;min-width:0}header>.flex>div:last-child{flex:auto;justify-content:flex-end;gap:4px;min-width:0;overflow:hidden}#pageTitle{white-space:nowrap;font-size:15px;line-height:1.2}#menuToggle{border-radius:10px!important;width:34px!important;height:34px!important}#headerActions{scrollbar-width:none;flex:auto;justify-content:center;min-width:0;overflow:auto hidden;gap:4px!important}#headerActions::-webkit-scrollbar{display:none}#headerActions>*{flex:none}.toolbar-row{gap:6px}.toolbar-control{border-radius:8px;font-size:12px}.toolbar-button{gap:4px;min-width:auto;padding:0 8px}.toolbar-date-trigger{min-width:88px;padding:0 8px}.member-detail-toolbar{flex-wrap:nowrap;align-items:center;gap:6px;display:flex}.member-detail-toolbar .member-detail-search-box{flex:auto;grid-column:auto;min-width:0}.member-detail-toolbar .member-detail-search-box input{width:100%}.member-detail-toolbar .toolbar-button{flex:0 0 30px;width:30px;gap:0!important;min-width:30px!important;padding:0!important}.review-mode-button{gap:4px;min-width:auto;padding:0 8px}.toolbar-button>span,.review-mode-button>span,#headerActions button>span{max-width:none}.toolbar-button>i[data-lucide]+span,.toolbar-button>svg+span,.review-mode-button>i[data-lucide]+span,.review-mode-button>svg+span,#headerActions button>i[data-lucide]+span,#headerActions button>svg+span,button.mobile-icon-only>i[data-lucide]+span,button.mobile-icon-only>svg+span{display:none!important}#headerActions .toolbar-date-trigger>i[data-lucide]+span,#headerActions .toolbar-date-trigger>svg+span,#headerActions button.mobile-keep-label>i[data-lucide]+span,#headerActions button.mobile-keep-label>svg+span{display:inline!important}.toolbar-button,.review-mode-button,#headerActions button,button.mobile-icon-only{min-width:30px;justify-content:center!important;gap:0!important;padding-left:0!important;padding-right:0!important}#headerActions button.mobile-keep-label{justify-content:center!important;gap:6px!important;width:auto!important;min-width:0!important;padding-left:10px!important;padding-right:10px!important}.toolbar-button>svg,.toolbar-button>i,.review-mode-button>svg,.review-mode-button>i,.toolbar-icon-button>svg,.toolbar-icon-button>i{width:14px!important;height:14px!important}#headerActions .toolbar-date-trigger{gap:4px!important;min-width:88px!important;padding:0 8px!important}.member-detail-actions .toolbar-button{width:100%;gap:4px!important;min-width:0!important;padding:0 6px!important}.member-detail-actions .toolbar-button span{text-overflow:clip;white-space:nowrap;font-size:11px;overflow:hidden;max-width:none!important;display:inline!important}.toolbar-input{width:var(--toolbar-input-w);max-width:38vw;padding-left:8px!important;padding-right:8px!important}.filter-toolbar,.member-filter-toolbar{grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:6px}#syncBtn,#toolbarTodoBtn{gap:0;width:30px;min-width:30px;padding:0!important}#syncBtn span,#toolbarTodoBtn>span:not(#toolbarTodoBadge){display:none}#weekRangeButton{min-width:92px!important;padding:0 7px!important}#weekRangeButton span{text-overflow:ellipsis;white-space:nowrap;max-width:76px;overflow:hidden}#userSideActions,#userMenuContainer{flex:none}#userMenuContainer{margin-left:0!important}#userMenuBtn{padding:0!important}#userAvatar{width:30px!important;height:30px!important}#contentArea{padding:8px!important}.animate-in.space-y-6,.animate-in.space-y-4{row-gap:10px!important}section.bg-white.rounded-xl,div.bg-white.rounded-xl.shadow-sm{border-radius:10px!important}section.bg-white.rounded-xl.shadow-sm,div.bg-white.rounded-xl.shadow-sm{padding:10px!important}#memberStats,#contractStats{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important}#memberStats button,#contractStats button,.mobile-stat-card{min-height:48px;border-radius:10px!important;padding:7px 8px!important}#memberStats button>div:first-child,#contractStats button>div:first-child,.mobile-stat-card>div:first-child{line-height:1.2;margin-bottom:2px!important;font-size:11px!important}#memberStats button>div:last-child,#contractStats button>div:last-child,.mobile-stat-card>div:last-child{line-height:1.15;font-size:17px!important}.h-24{height:70px!important}.h-24 .w-8.h-8,.h-24 .w-9.h-9{width:26px!important;height:26px!important;margin-bottom:4px!important}.h-24 span.block{font-size:12px!important}.grid.grid-cols-2{gap:8px}.member-detail-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important}.overflow-x-auto>table{min-width:840px}.overflow-x-auto>table th,.overflow-x-auto>table td{white-space:nowrap}.overflow-x-auto>table.text-sm{min-width:760px}.overflow-x-auto{scrollbar-width:none;-ms-overflow-style:none}.overflow-x-auto::-webkit-scrollbar{display:none}.review-student-pager{scrollbar-width:none;-ms-overflow-style:none}.review-student-pager::-webkit-scrollbar{display:none}}.sidebar.collapsed{box-shadow:0 18px 36px #0f172a14;width:64px!important}.sidebar.collapsed .sidebar-text{opacity:0;white-space:nowrap;pointer-events:none;max-width:0;overflow:hidden;transform:translate(-6px)}.sidebar.collapsed .sidebar-logo{justify-content:center;padding:12px 0!important}.sidebar.collapsed .nav-item{justify-content:center;gap:0!important;padding-left:0!important;padding-right:0!important}.sidebar.collapsed .nav-group-header{justify-content:center;padding-left:0!important;padding-right:0!important}.sidebar.collapsed .nav-group-header>div{gap:0!important}.sidebar.collapsed .nav-group-children{pointer-events:none;transform:translateY(-4px);opacity:0!important;border:0!important;max-height:0!important;margin:0!important;padding:0!important}.sidebar.collapsed .sidebar-nav,.sidebar.collapsed .sidebar-bottom{padding:8px!important}.sidebar.collapsed .sidebar-bottom .user-info-text{display:none}.collapse-btn{transition:transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .18s,background-color .18s}.sidebar.collapsed .collapse-btn{transform:rotate(180deg)}.sidebar-flyout{z-index:60;transform-origin:0 0;background:#fffffffa;border:1px solid #e5e7eb;border-radius:12px;width:148px;padding:6px;animation:.16s cubic-bezier(.2,.8,.2,1) forwards sidebarFlyoutIn;position:fixed;box-shadow:0 16px 36px #0f172a24}.sidebar-flyout .nav-item{border-radius:8px;justify-content:flex-start;align-items:center;gap:0;min-height:34px;display:flex;padding:8px 10px!important}@keyframes sidebarFlyoutIn{0%{opacity:0;transform:translate(-6px)scale(.98)}to{opacity:1;transform:translate(0)scale(1)}}#userMenuContainer:hover #userMenuDropdown,#userMenuDropdown.show{display:block!important}#userMenuDropdown{display:none}@media (width>=1024px){.main-content{margin-left:220px;transition:margin-left .28s cubic-bezier(.2,.8,.2,1)}.main-content.expanded{margin-left:64px}.sidebar{transform:translate(0)!important}.lg\:hidden{display:none!important}}@media (width<=1023px){#sidebarCollapseBtn,#sidebarCloseBtn{display:none!important}}html,body,#vue-root{min-height:100%}body{margin:0}#vue-root,.teacher-portal-vue-shell{min-height:100vh}.member-list-table tbody tr.member-list-row:hover>td{background-color:#f0fdf4b8}.member-list-table tbody tr.member-list-row:hover .table-first-cell,.member-list-table tbody tr.member-list-row:hover .table-action-cell{background-color:#f0fdf4}#userMenuBtn[aria-expanded=true]{background-color:#f0fdf4;box-shadow:0 0 0 1px #22c55e2e}#userMenuDropdown.show{display:block!important}.app-modal-panel{width:var(--app-modal-width);height:var(--app-modal-height);flex-direction:column;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);display:flex;overflow:hidden}.app-modal-panel--65{--app-modal-width:65vw;--app-modal-height:65vh}.app-modal-panel--85{--app-modal-width:85vw;--app-modal-height:85vh}@media (width<=640px){.app-modal-panel{width:calc(100vw - 16px);height:calc(100vh - 16px)}}
