.login-page{--login-accent: #ea4544;--login-accent-deep: #b92a29;--login-ink: #1f1a1a;--login-muted: #7a6f6e;--login-line: #ece4e3;--login-surface: #fffcfb;--login-pad-y: 48px;--login-pad-x: 64px;--login-form-width: 380px;min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(480px,.85fr);background:var(--login-surface);color:var(--login-ink)}.login-brand-panel{position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;padding:var(--login-pad-y) var(--login-pad-x);color:#fff;background:radial-gradient(110% 70% at 0% 0%,rgba(255,255,255,.14) 0%,transparent 55%),linear-gradient(165deg,#ef5553 0%,var(--login-accent) 40%,var(--login-accent-deep) 100%)}.login-brand-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:radial-gradient(rgba(255,255,255,.13) 1px,transparent 1px);background-size:22px 22px;-webkit-mask-image:linear-gradient(180deg,transparent 10%,#000 75%);mask-image:linear-gradient(180deg,transparent 10%,#000 75%)}.login-brand-panel>*{position:relative;z-index:1}.login-brand-logo{width:148px;height:auto;filter:brightness(0) invert(1)}.login-brand-content{align-self:center;max-width:720px}.login-brand-title{margin:0 0 20px;font-size:clamp(2.4rem,4.2vw,4rem);line-height:1.04;font-weight:700;letter-spacing:-.035em}.login-brand-copy{margin:0;max-width:40ch;font-size:17px;line-height:1.6;color:#ffffffd1}.login-brand-points{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;max-width:640px}.login-brand-points li{display:grid;gap:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.28);font-size:13.5px;line-height:1.45;color:#ffffffe6}.login-brand-points span{font-variant-numeric:tabular-nums;font-size:12px;font-weight:600;letter-spacing:.08em;color:#ffffff8c}.login-brand-panel>.login-brand-watermark{position:absolute;z-index:0;right:-220px;bottom:-250px;height:820px;width:auto;opacity:.045;filter:brightness(0) invert(1);pointer-events:none}.login-form-panel{display:grid;grid-template-rows:auto 1fr auto;justify-items:center;padding:var(--login-pad-y) var(--login-pad-x);border-left:1px solid var(--login-line)}.login-form-top,.login-form-bottom{width:100%;max-width:var(--login-form-width)}.login-form-top{display:flex;align-items:center;justify-content:flex-end;gap:16px;min-height:32px}.login-mobile-logo{display:none;width:128px;height:auto;margin-right:auto}.login-form-help,.login-form-bottom{font-size:13px;color:var(--login-muted)}.login-form-body{align-self:center;width:100%;max-width:var(--login-form-width);margin:32px 0}.login-eyebrow{margin:0 0 12px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--login-accent)}.login-title{margin:0 0 8px;font-size:34px;line-height:1.15;font-weight:700;letter-spacing:-.03em;color:var(--login-ink)}.login-subtitle{margin:0 0 32px;font-size:15px;color:var(--login-muted)}.login-alert{margin-bottom:20px;border-radius:10px}.login-form .ant-form-item{margin-bottom:20px}.login-form .ant-form-item-label>label{font-size:14px;font-weight:500;color:var(--login-ink)}.login-form .ant-input-affix-wrapper{height:50px;padding-inline:14px;border-radius:10px;border-color:var(--login-line);background:#fff;font-size:16px;transition:border-color .15s,box-shadow .15s}.login-form .ant-input-affix-wrapper:hover{border-color:#dccfcd}.login-form .ant-input-affix-wrapper-focused{border-color:var(--login-accent);box-shadow:0 0 0 3px #ea45441f}.login-form .ant-input-prefix{margin-inline-end:10px;color:#b3a7a6}.login-submit.ant-btn,.login-sso.ant-btn{height:50px;border-radius:10px;font-size:16px;font-weight:600}.login-submit.ant-btn{margin-top:4px;box-shadow:0 10px 22px -12px #b92a29b3;transition:transform .15s,box-shadow .15s}.login-submit.ant-btn:active{transform:translateY(1px)}.login-sso.ant-btn{display:flex;align-items:center;justify-content:center;gap:10px;border-color:var(--login-line);background:#fff;color:var(--login-ink)}.login-sso.ant-btn:hover{border-color:#dccfcd!important;background:#fff8f7!important;color:var(--login-ink)!important}.login-divider{display:flex;align-items:center;gap:14px;margin:24px 0;font-size:12px;color:var(--login-muted)}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--login-line)}.login-note{margin:28px 0 0;font-size:13px;line-height:1.55;color:var(--login-muted)}@keyframes login-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.login-brand-content,.login-brand-points,.login-form-body>*{animation:login-rise .6s cubic-bezier(.2,.7,.2,1) both}.login-brand-points{animation-delay:.15s}.login-form-body>:nth-child(2){animation-delay:.05s}.login-form-body>:nth-child(3){animation-delay:.1s}.login-form-body>:nth-child(n+4){animation-delay:.15s}@media(prefers-reduced-motion:reduce){.login-brand-content,.login-brand-points,.login-form-body>*{animation:none}}@media(max-height:860px){.login-page{--login-pad-y: 28px}.login-form-body{margin:16px 0}.login-subtitle{margin-bottom:24px}.login-form .ant-form-item{margin-bottom:16px}.login-divider{margin:18px 0}.login-note{margin-top:18px}}@media(max-width:1199px){.login-page{--login-pad-x: 48px}.login-brand-points{grid-template-columns:1fr;gap:12px;max-width:360px}}@media(max-width:991px){.login-page{--login-pad-y: 24px;--login-pad-x: 24px;grid-template-columns:1fr}.login-brand-panel{display:none}.login-form-panel{border-left:0}.login-mobile-logo{display:block}.login-form-help{display:none}}@media(max-width:575px){.login-page{--login-pad-x: 20px}.login-title{font-size:28px}}:root{--primary-hue: 359;--primary-sat: 79%;--primary-light: 59%;--color-primary: hsl(var(--primary-hue), var(--primary-sat), var(--primary-light));--color-primary-dark: hsl(var(--primary-hue), var(--primary-sat), 45%);--color-primary-light: hsl(var(--primary-hue), var(--primary-sat), 75%);--color-primary-subtle: hsl(var(--primary-hue), var(--primary-sat), 95%);--color-bg: 0 0% 100%;--color-surface: 210 20% 98%;--color-surface-hover: 210 20% 95%;--color-border: 220 13% 91%;--color-text: 222 47% 11%;--color-text-muted: 215 16% 47%;--color-text-subtle: 215 16% 70%;--color-success: 142 76% 36%;--color-warning: 38 92% 50%;--color-error: 345 80% 50%;--color-info: 217 91% 60%;--font-sans: "Be Vietnam Pro", system-ui, -apple-system, sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--font-weight-regular: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--space-0_5: .125rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-primary: 0 4px 14px 0 hsl(var(--primary-hue) var(--primary-sat) var(--primary-light) / .39);--glass-bg: rgba(255, 255, 255, .7);--glass-border: rgba(255, 255, 255, .5);--glass-backdrop: blur(10px);--transition-all: all .2s cubic-bezier(.4, 0, .2, 1)}.dark{--color-bg: 222 47% 11%;--color-surface: 217 33% 17%;--color-surface-hover: 217 33% 20%;--color-border: 217 33% 25%;--color-text: 210 40% 98%;--color-text-muted: 215 20% 65%;--color-text-subtle: 215 20% 45%;--color-primary-subtle: hsl(var(--primary-hue), var(--primary-sat), 20%);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .5);--glass-bg: rgba(30, 41, 59, .7);--glass-border: rgba(255, 255, 255, .1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:hsl(var(--color-bg));color:hsl(var(--color-text));line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}::selection{background:hsl(var(--primary-hue) var(--primary-sat) 90%);color:hsl(var(--color-text))}h1,h2,h3,h4,.ant-typography h1,.ant-typography h2,.ant-typography h3,.ant-modal-title{text-wrap:balance;letter-spacing:-.01em}.ant-table,.ant-statistic-content,.ant-badge-count,.ant-pagination{font-variant-numeric:tabular-nums}:where(a,button,[role=button],[tabindex]):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.ant-btn:not(:disabled):active{transform:translateY(1px)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-button{display:none}::-webkit-scrollbar-thumb{background-color:#d6d1cd;border:2px solid transparent;border-radius:8px;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:#bdb6b0}@supports selector(::-webkit-scrollbar){.ant-table-body,.ant-table-content,.ant-table-header{scrollbar-width:auto;scrollbar-color:auto}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:#d6d1cd transparent}}.ant-card-hoverable{transition:box-shadow .2s ease,transform .2s ease,border-color .2s ease}.ant-card-hoverable:hover{transform:translateY(-2px)}.ant-table-thead>tr>th{font-size:13px;font-weight:600!important}.app-sider-brand{height:52px;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #efece9;overflow:hidden}.app-brand-mark{width:28px;height:28px;object-fit:contain;flex-shrink:0}.app-brand-name{font-size:17px;font-weight:700;letter-spacing:-.02em;color:hsl(var(--color-text));white-space:nowrap}.app-brand-name span{color:var(--color-primary)}.app-sider-menu.ant-menu{padding-top:8px;border-inline-end:0!important}.app-sider-user{display:none}@media(max-width:1199px){.app-sider-user{display:flex;align-items:center;gap:10px;position:absolute;left:0;right:0;bottom:calc(60px + env(safe-area-inset-bottom));padding:10px 12px 10px 16px;border-top:1px solid #efece9;background:#fff}.ant-layout-sider-collapsed .app-sider-user{display:none}.app-sider-menu.ant-menu{padding-bottom:132px}}.app-header.ant-layout-header{backdrop-filter:saturate(180%) blur(10px);-webkit-backdrop-filter:saturate(180%) blur(10px);border-bottom:1px solid #ebe8e6;line-height:normal}.admin-layout-content{margin:0;padding:24px;background:#fff;min-height:280px;min-width:0;overflow-x:clip}.text-h1{font-size:var(--text-4xl);font-weight:var(--font-weight-bold);letter-spacing:-.02em}.text-h2{font-size:var(--text-3xl);font-weight:var(--font-weight-bold);letter-spacing:-.01em}.text-h3{font-size:var(--text-2xl);font-weight:var(--font-weight-semibold)}.text-lg{font-size:var(--text-lg)}.text-sm{font-size:var(--text-sm)}.text-muted{color:hsl(var(--color-text-muted))}.text-primary{color:var(--color-primary)}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-4)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.grid{display:grid}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border-radius:var(--radius-md);font-weight:var(--font-weight-medium);transition:var(--transition-all);border:1px solid transparent;cursor:pointer;white-space:nowrap}.btn-primary{background-color:var(--color-primary);color:#fff;box-shadow:var(--shadow-primary)}.btn-primary:hover{background-color:var(--color-primary-dark);transform:translateY(-1px)}.btn-outline{background-color:transparent;border-color:hsl(var(--color-border));color:hsl(var(--color-text))}.btn-outline:hover{background-color:hsl(var(--color-surface-hover));border-color:hsl(var(--color-text-muted))}.card{background-color:hsl(var(--color-surface));border:1px solid hsl(var(--color-border));border-radius:var(--radius-lg);padding:var(--space-6);transition:var(--transition-all)}.card:hover{box-shadow:var(--shadow-lg);border-color:var(--color-primary-subtle)}.glass-panel{background:var(--glass-bg);backdrop-filter:var(--glass-backdrop);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--glass-border)}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .4s ease-out forwards}@media(max-width:1199px){.app-header{display:none!important}}.mobile-footer-nav{display:none;position:fixed!important;bottom:0!important;left:0;right:0;background:#fff;border-top:1px solid #f0f0f0;padding:8px 16px;justify-content:space-around;align-items:center;z-index:1000;padding-bottom:env(safe-area-inset-bottom,16px);box-shadow:0 -2px 8px #0000000d}@media(max-width:1199px){.mobile-footer-nav{display:flex}.admin-layout-content{margin:0 0 60px!important;padding:10px!important}.admin-layout-content>div{border-radius:0!important;margin:0!important}.mobile-sidebar-toggle{display:flex!important}.responsive-title{font-size:1.25rem!important}.full-width-mobile-input,.full-width-mobile-input .ant-input-search,.full-width-mobile-btn{width:100%!important;max-width:100%!important}.mobile-50-50-group{width:100%;display:flex!important;gap:16px;margin-top:8px}.mobile-50-50-group>.ant-btn{flex:1;width:50%;margin-right:0!important;justify-content:center}.responsive-padding-left{padding-left:0!important}.responsive-card-padding{padding:12px!important}.mobile-flex-grow{flex:1 1 auto;text-align:center;justify-content:center}.ant-picker-calendar .ant-picker-cell-inner{font-size:11px!important}}.mobile-sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100vh;background-color:#00000080;z-index:99;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .3s}@media(max-width:1199px){.mobile-sidebar-overlay.active{display:block;opacity:1}}.mobile-footer-nav a.mobile-nav-item,.mobile-footer-nav .mobile-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#8c8c8c;font-size:10px;gap:4px;cursor:pointer;text-decoration:none}.mobile-footer-nav .mobile-nav-item.active{color:#ea4544}.mobile-footer-nav .anticon{font-size:20px}.exam-page{box-sizing:border-box;width:100%;min-width:0;min-height:100vh;min-height:100dvh;background:#f0f2f5;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.exam-passcode-page,.exam-result-page{display:flex;justify-content:center;align-items:center}.exam-passcode-card{width:100%;max-width:400px;text-align:center}.exam-passcode-input input{min-height:46px;text-align:center}.exam-passcode-button,.exam-toolbar-button{min-height:48px}.exam-result-container{width:100%;max-width:800px;margin:30px auto;min-width:0}.exam-submitted-card{margin-top:24px}.exam-doing-container{width:100%;max-width:1000px;margin:0 auto;min-width:0}.exam-toolbar{position:sticky;top:env(safe-area-inset-top);z-index:100;margin-bottom:20px}.exam-toolbar-heading,.exam-toolbar-controls,.exam-toolbar-actions,.exam-question-heading,.exam-question-heading .ant-space-item,.exam-answer-lines,.exam-answer-lines .ant-space-item{min-width:0;max-width:100%}.exam-toolbar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.exam-toolbar-timer .ant-statistic-title{margin-bottom:0;font-size:12px}.exam-toolbar-timer .ant-statistic-content{font-size:20px;line-height:1.2}.exam-question-card .ant-card-head-title,.exam-submitted-card .ant-card-head-title{white-space:normal;overflow:visible;text-overflow:clip}.exam-toolbar-title{margin:0!important;overflow-wrap:anywhere}.exam-rich-content,.exam-answer,.exam-answer-line{min-width:0;max-width:100%;overflow-wrap:anywhere;word-break:break-word}.exam-answer-line{white-space:pre-wrap}.exam-rich-content img,.exam-rich-content video{display:block;max-width:100%;height:auto}.exam-rich-content table,.exam-rich-content pre{display:block;max-width:100%;overflow-x:auto}.exam-rich-content [style]{background-color:transparent!important;color:inherit!important}.exam-rich-content a{overflow-wrap:anywhere}.exam-choice{width:100%;min-width:0;min-height:44px;padding-block:10px;align-items:flex-start;white-space:normal;overflow-wrap:anywhere}.exam-choice>span:last-child{min-width:0;overflow-wrap:anywhere}.exam-submit-footer{margin-top:24px;text-align:center}.exam-submit-button{width:200px;min-height:50px}@media(max-width:767px){.exam-page{padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.exam-passcode-page{align-items:flex-start;padding-top:max(24px,env(safe-area-inset-top))}.exam-toolbar-heading,.exam-toolbar-controls,.exam-toolbar-actions{width:100%}.exam-toolbar-controls{flex:0 0 100%;max-width:100%}.exam-question-card .ant-card-body{padding:16px}}@media(max-width:575px){.exam-toolbar .ant-card-body,.exam-question-card .ant-card-head,.exam-question-card .ant-card-body,.exam-submitted-card .ant-card-head,.exam-submitted-card .ant-card-body,.exam-passcode-card .ant-card-body{padding:12px}.exam-toolbar-timer{flex:0 0 100%}.exam-toolbar-button{flex:1 1 120px;width:auto}.exam-submit-button{width:100%}}
