color palette from <https://github.com/vuejs/theme> :root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{width:100%;height:100vh;font-weight:400}.loginPage{height:100%;display:grid;place-items:center;padding:var(--spacing-lg)}.loginPage .cardWrap{width:100%;max-width:420px;background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-xl)}.loginPage .cardWrap .login-title{margin:0 0 var(--spacing-lg);text-align:center}.loginPage .cardWrap .login-title .actions{margin-top:var(--spacing-md)}.top{align-items:center;font-size:var(--font-size-base)}.top p{font-weight:700}.block{width:100%;height:35px;background:#aab8c242;color:#333333be;align-items:center;font-weight:500;font-size:var(--font-size-sm);padding:0 var(--spacing-md);margin:var(--spacing-sm) 0}.management-list{font-weight:600;margin:10px 5px}.management-list strong{color:var(--color-danger);font-size:var(--font-size-3xl)}.class-list{margin:10px 5px;font-weight:700;color:var(--color-danger)}.classType{width:60px;font-size:11.5px;transition:all .3s cubic-bezier(.4,0,.2,1);background:#7a8788;color:#f5f5f5}:root :where(.n-input .n-input__state-border){transition:none!important}:root :where(.n-base-selection){--n-border-hover: var(--n-border) !important;--n-border-focus: var(--n-border) !important;--n-border-active: var(--n-border) !important;--n-box-shadow-active: var(--n-border) !important;--n-box-shadow-focus: var(--n-border) !important}.n-date-picker .n-date-picker,.n-date-picker .n-base-selection,.n-date-picker .n-base-selection__input{width:100%!important}.n-data-table{white-space:nowrap}:deep(.n-data-table a:hover){background:transparent}.function-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:16px}@media (min-width: 1025px){.function-bar .n-select{width:200px}.function-bar .n-input{max-width:200px}}@media (min-width: 769px) and (max-width: 1024px){.function-bar .n-select,.function-bar .n-input{width:calc(50% - 6px);min-width:200px}.function-bar .n-date-picker{width:100%;min-width:400px}.function-bar .n-date-picker :deep(.n-date-picker){width:100%!important}.function-bar .n-date-picker :deep(.n-base-selection){width:100%!important}}@media (max-width: 768px){.function-bar{flex-direction:column;align-items:stretch;gap:8px}.function-bar .n-select,.function-bar .n-input,.function-bar .n-button,.function-bar .n-date-picker{width:100%;max-width:100%}.function-bar .n-date-picker :deep(.n-date-picker){width:100%}.function-bar .n-date-picker :deep(.n-base-selection){width:100%}}.custom-modal-form{max-height:60vh;overflow-y:auto;padding-right:8px}:root{--color-primary: #1976d2;--color-primary-hover: #7c8caf;--color-secondary: #6b7280;--color-success: #498370;--color-danger: #c43535;--color-warning: #f59e0b;--color-bg-primary: #ffffff;--color-bg-secondary: #f9fafb;--color-bg-tertiary: #f3f4f6;--color-border: #e5e7eb;--color-border-hover: #d1d5db;--color-text-primary: #333;--color-text-secondary: #6b7280;--color-text-muted: #9ca3af;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--line-height-loose: 2;--border-radius-sm: 4px;--border-radius-md: 6px;--border-radius-lg: 8px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--header-height: 70px;--sidebar-width: 200px;--footer-height: 40px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:var(--color-text-primary)}.flex{display:flex}.flex-center{display:flex;justify-content:center;align-items:center}.flex-between{display:flex;justify-content:space-between}.grid{display:grid;place-items:center}.text-center{text-align:center}.pointer{cursor:pointer}.mb-0{margin-bottom:0}.mb-1{margin-bottom:var(--spacing-xs)}.mb-2{margin-bottom:var(--spacing-sm)}.mb-3{margin-bottom:var(--spacing-md)}.mb-4{margin-bottom:var(--spacing-lg)}.mt-0{margin-top:0}.mt-1{margin-top:var(--spacing-xs)}.mt-2{margin-top:var(--spacing-sm)}.mt-3{margin-top:var(--spacing-md)}.mt-4{margin-top:var(--spacing-lg)}.p-0{padding:0}.p-1{padding:var(--spacing-xs)}.p-2{padding:var(--spacing-sm)}.p-3{padding:var(--spacing-md)}.p-4{padding:var(--spacing-lg)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.text-5xl{font-size:var(--font-size-5xl)}.text-6xl{font-size:var(--font-size-6xl)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.leading-tight{line-height:var(--line-height-tight)}.leading-normal{line-height:var(--line-height-normal)}.leading-relaxed{line-height:var(--line-height-relaxed)}.leading-loose{line-height:var(--line-height-loose)}:root :where(.n-input,.n-select){--n-box-shadow-active: none;--n-box-shadow-focus: none;--n-border-hover: var(--n-border);--n-border-active: var(--n-border);--n-border-focus: var(--n-border)}@font-face{font-family:v-sans;font-weight:400;src:url(/assets/LatoLatin-Regular-Dmlz1U0B.woff2)}@font-face{font-family:v-sans;font-weight:600;src:url(/assets/LatoLatin-Semibold-Dbk81p2D.woff2)}@font-face{font-family:v-mono;font-weight:400;src:url(/assets/FiraCode-Regular-CRwVj4V2.woff2)}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.frontendLayout[data-v-54cefe08]{min-height:100vh;display:flex;flex-direction:column}.frontendLayout__header[data-v-54cefe08]{justify-content:space-between;background:#f0f8ff;box-shadow:0 2px 8px #00000014;height:var(--header-height);padding:0 var(--spacing-lg)}.frontendLayout__header .logo img[data-v-54cefe08]{height:32px;width:auto}.frontendLayout__nav[data-v-54cefe08]{gap:5px}.frontendLayout__nav .nav-icon[data-v-54cefe08]{display:none;width:24px;height:24px;object-fit:contain}.frontendLayout__main[data-v-54cefe08]{flex:1;padding:20px}.frontendLayout__main--login[data-v-54cefe08]{padding:0}.frontendLayout__footer[data-v-54cefe08]{background:#f0f8ff;height:var(--footer-height);font-weight:var(--font-weight-light);color:#111827;gap:8px}.frontendLayout__footer a.footer-link[data-v-54cefe08]{color:inherit;text-decoration:none;cursor:pointer}.frontendLayout__footer a.footer-link[data-v-54cefe08]:hover{text-decoration:underline}.frontendLayout__footer .separator[data-v-54cefe08]{color:#9ca3af}@media (max-width: 768px){.frontendLayout__header[data-v-54cefe08]{padding:var(--spacing-md)}.frontendLayout .logo img[data-v-54cefe08]{height:28px}.frontendLayout__main[data-v-54cefe08]{padding:var(--spacing-md)}.frontendLayout__main--login[data-v-54cefe08]{padding:0}}.frontendLayout__footer[data-v-54cefe08]{gap:4px;font-size:13px}.frontendLayout__footer .separator[data-v-54cefe08]{margin:0 2px}@media (max-width: 480px){.frontendLayout__header[data-v-54cefe08]{padding:var(--spacing-sm)}.frontendLayout__header h1[data-v-54cefe08]{font-size:var(--font-size-2xl)}.frontendLayout__header .logo img[data-v-54cefe08]{height:22.5px}.frontendLayout__nav[data-v-54cefe08]{gap:0}.frontendLayout__nav .nav-button[data-v-54cefe08]{padding:5px}.frontendLayout__nav .nav-button .nav-text[data-v-54cefe08]{display:none}.frontendLayout__nav .nav-button .nav-icon[data-v-54cefe08]{display:block;margin:0 2px 0 5px}.frontendLayout__main[data-v-54cefe08]{padding:var(--spacing-sm)}.frontendLayout__main--login[data-v-54cefe08]{padding:0}.frontendLayout__footer[data-v-54cefe08]{font-size:12px}}.msg-alert-card[data-v-38f32e7c]{min-width:300px;max-width:500px;margin:0 auto}.msg-alert-content[data-v-38f32e7c]{padding:16px 0;font-size:14px;line-height:1.6;min-height:60px;display:flex;align-items:center}
