*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #4f46e5;--color-primary-dark: #3730a3;--color-primary-light: #e0e7ff;--color-success: #059669;--color-success-light: #d1fae5;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-danger: #dc2626;--color-danger-light: #fee2e2;--color-teal: #0d9488;--color-teal-light: #ccfbf1;--color-bg: #f5f3ff;--color-surface: #ffffff;--color-text: #1e1b4b;--color-text-secondary: #6b7280;--color-border: rgba(79, 70, 229, .12);--color-overlay: rgba(0, 0, 0, .45);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--shadow-sm: 0 1px 4px rgba(79, 70, 229, .08);--shadow-md: 0 4px 12px rgba(79, 70, 229, .12);--shadow-lg: 0 8px 32px rgba(79, 70, 229, .18);--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--touch-target: 44px;--header-height: 64px;--sidebar-width: 268px;--nav-height: 76px}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#4f46e540;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#4f46e573}html{font-size:16px;-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}button:focus-visible{outline-offset:2px}@media(prefers-contrast:high){:root{--color-text: #000000;--color-text-secondary: #1a1a1a;--color-border: #000000}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.exam-container{min-height:100dvh;display:flex;flex-direction:column;background:var(--color-bg)}.exam-layout{display:flex;flex:1;position:relative}.exam-main{flex:1;padding:16px;padding-bottom:calc(var(--nav-height) + 24px);max-width:800px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:20px}.exam-sidebar{display:none}.header{position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;height:var(--header-height);padding:0 16px;background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.header__left{display:flex;align-items:center;gap:12px}.header__menu-btn{display:flex;align-items:center;justify-content:center;width:var(--touch-target);height:var(--touch-target);border:none;background:transparent;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm);transition:background .15s}.header__menu-btn:hover{background:var(--color-primary-light)}.header__title{font-size:.95rem;font-weight:600;color:var(--color-text);white-space:nowrap}.header__right{display:flex;align-items:center;gap:8px}.timer{display:flex;align-items:center;gap:6px;padding:6px 12px;border-radius:20px;background:var(--color-primary-light);color:var(--color-primary);font-size:.9rem;font-weight:600;font-variant-numeric:tabular-nums;min-width:60px;justify-content:center}.timer__icon{flex-shrink:0}.timer--warning{background:var(--color-warning-light);color:#e37400}.timer--critical{background:var(--color-danger-light);color:var(--color-danger);animation:pulse 1s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.question-area{background:var(--color-surface);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.question-area__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px;flex-wrap:wrap}.question-area__badge{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;padding:4px 10px;border-radius:4px;background:var(--color-primary-light);color:var(--color-primary)}.question-area__marks{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.question-area__text{font-size:1.05rem;line-height:1.7;color:var(--color-text)}.question-area__image{margin-top:16px;text-align:center}.question-area__image img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.options{display:flex;flex-direction:column;gap:10px}.option-btn{display:flex;align-items:center;gap:12px;width:100%;min-height:var(--touch-target);padding:14px 16px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;font-size:1rem;text-align:left;color:var(--color-text);transition:all .15s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.option-btn:hover,.option-btn--selected{border-color:var(--color-primary);background:var(--color-primary-light)}.option-btn__indicator{font-size:1.2rem;color:var(--color-primary);flex-shrink:0;width:20px;text-align:center}.option-btn__label{font-weight:600;color:var(--color-text-secondary);flex-shrink:0;min-width:16px}.option-btn__text{flex:1}.option-btn--tf{justify-content:center;gap:8px;font-weight:500}.options--tf{display:grid;grid-template-columns:1fr 1fr;gap:12px}.fill-blank{display:flex;flex-direction:column;gap:8px}.fill-blank__label{font-size:.9rem;font-weight:500;color:var(--color-text-secondary)}.fill-blank__input{width:100%;min-height:var(--touch-target);padding:10px 14px;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;font-family:var(--font-family);color:var(--color-text);background:var(--color-surface);transition:border-color .15s}.fill-blank__input:focus{border-color:var(--color-primary);outline:none}.text-input{display:flex;flex-direction:column;gap:8px}.text-input__label{font-size:.9rem;font-weight:500;color:var(--color-text-secondary)}.text-input__area{width:100%;padding:12px 14px;border:2px solid var(--color-border);border-radius:var(--radius-md);font-size:1rem;font-family:var(--font-family);color:var(--color-text);background:var(--color-surface);resize:vertical;min-height:80px;transition:border-color .15s;line-height:1.6}.text-input__area--long{min-height:160px}.text-input__area:focus{border-color:var(--color-primary);outline:none}.options--match{overflow-x:auto;-webkit-overflow-scrolling:touch}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;min-width:280px}.match-grid__header-left,.match-grid__header-right{font-size:.8rem;font-weight:600;color:var(--color-text-secondary);padding:8px 12px;text-transform:uppercase;letter-spacing:.03em}.match-row{display:contents}.match-row__left{padding:10px 12px;background:var(--color-primary-light);border-radius:var(--radius-sm) 0 0 var(--radius-sm);font-weight:500;display:flex;align-items:center;min-height:var(--touch-target)}.match-row__right{padding:6px 8px}.match-row__select{width:100%;min-height:var(--touch-target);padding:8px 10px;border:2px solid var(--color-border);border-radius:var(--radius-sm);font-size:.95rem;font-family:var(--font-family);background:var(--color-surface);color:var(--color-text);cursor:pointer}.match-row__select:focus{border-color:var(--color-primary);outline:none}.nav-controls{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 16px;padding-bottom:max(10px,env(safe-area-inset-bottom));background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -2px 10px #00000014}.nav-controls__primary{display:flex;gap:8px}.nav-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-height:var(--touch-target);min-width:var(--touch-target);padding:10px 18px;border:2px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;white-space:nowrap}.nav-btn:hover:not(:disabled){border-color:var(--color-primary);background:var(--color-primary-light);color:var(--color-primary)}.nav-btn:disabled{opacity:.4;cursor:not-allowed}.nav-btn--submit{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.nav-btn--submit:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark);color:#fff!important}.navigator-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:var(--color-overlay);animation:fadeIn .2s}.question-navigator{position:fixed;bottom:0;left:0;right:0;z-index:201;background:var(--color-surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom));max-height:70dvh;overflow-y:auto;box-shadow:0 -4px 20px #0003;animation:slideUp .25s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.question-navigator__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.question-navigator__title{font-size:1.05rem;font-weight:600}.question-navigator__close{display:flex;align-items:center;justify-content:center;width:var(--touch-target);height:var(--touch-target);border:none;background:transparent;color:var(--color-text);cursor:pointer;border-radius:var(--radius-sm)}.question-navigator__close:hover{background:var(--color-primary-light)}.question-navigator__grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:16px}.nav-item{display:flex;align-items:center;justify-content:center;min-height:var(--touch-target);border:2px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.nav-item:hover{border-color:var(--color-primary)}.nav-item--answered{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.nav-item--current,.nav-item--current.nav-item--answered{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.question-navigator__footer{border-top:1px solid var(--color-border);padding-top:12px}.question-navigator__legend{display:flex;gap:16px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--color-text-secondary)}.legend-dot{width:12px;height:12px;border-radius:3px;border:1px solid var(--color-border)}.legend-dot--answered{background:var(--color-success-light);border-color:var(--color-success)}.legend-dot--unanswered{background:var(--color-surface)}.legend-dot--current{background:var(--color-primary);border-color:var(--color-primary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:var(--color-overlay);animation:fadeIn .15s}.confirm-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:301;background:var(--color-surface);border-radius:var(--radius-lg);padding:28px 24px 20px;width:calc(100% - 32px);max-width:400px;box-shadow:var(--shadow-lg);animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:translate(-50%,-50%) scale(.9);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}.confirm-modal__content{text-align:center}.confirm-modal__icon{margin-bottom:12px}.confirm-modal__title{font-size:1.15rem;font-weight:600;margin-bottom:8px}.confirm-modal__desc{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:20px}.confirm-modal__warning{color:var(--color-danger);font-weight:500}.confirm-modal__actions{display:flex;gap:12px;justify-content:center}.confirm-btn{flex:1;min-height:var(--touch-target);padding:10px 20px;border-radius:var(--radius-md);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.confirm-btn--cancel{border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text)}.confirm-btn--cancel:hover{border-color:var(--color-text-secondary)}.confirm-btn--submit{border:2px solid var(--color-danger);background:var(--color-danger);color:#fff}.confirm-btn--submit:hover{background:#d33426;border-color:#d33426}.connection-status{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--color-warning-light);color:#960;border-radius:var(--radius-md);font-size:.85rem;font-weight:500;animation:slideDown .3s}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.auto-save-indicator{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--color-text-secondary);padding:4px 0}.math-inline{display:inline;white-space:nowrap}.math-block{display:block;text-align:center;padding:8px 0;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.math-block::-webkit-scrollbar{height:4px}.math-block::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.katex{font-size:1.1em!important}.katex-display{margin:.5em 0!important;overflow-x:auto;overflow-y:hidden;padding:4px 0;-webkit-overflow-scrolling:touch}@media(max-width:480px){.katex{font-size:1em!important}}.results-container{max-width:800px;margin:0 auto;padding:24px 16px}.results-header{text-align:center;margin-bottom:32px}.results-header h1{font-size:1.6rem;color:var(--color-primary);margin-bottom:8px}.results-header p{font-size:1rem;color:var(--color-text-secondary)}.results-list{display:flex;flex-direction:column;gap:16px}.result-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px}.result-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.result-card__number{font-weight:600;font-size:.9rem}.result-card__marks{font-size:.8rem;color:var(--color-text-secondary)}.result-card__text{font-size:1rem;line-height:1.6;margin-bottom:12px}.result-card__answer{padding:10px 14px;background:var(--color-bg);border-radius:var(--radius-sm);font-size:.9rem}.result-card__label{font-weight:600;color:var(--color-text-secondary)}.result-card__value--empty{color:var(--color-danger);font-style:italic}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.progress-bar{padding:8px 0}.progress-bar__label{font-size:.75rem;color:var(--color-text-secondary);margin-bottom:4px;font-weight:500}.progress-bar__track{width:100%;height:6px;background:var(--color-border);border-radius:3px;overflow:hidden}.progress-bar__fill{height:100%;background:var(--color-primary);border-radius:3px;transition:width .3s ease}.keyboard-hint{display:none}@media(min-width:768px){.exam-main{padding:24px;padding-bottom:calc(var(--nav-height) + 24px)}.nav-controls{padding:12px 24px;padding-bottom:max(12px,env(safe-area-inset-bottom))}.nav-controls__primary{gap:12px}.nav-btn{padding:12px 24px;font-size:.95rem}.question-area{padding:24px}.question-area__text{font-size:1.1rem}.question-navigator__grid{grid-template-columns:repeat(6,1fr)}.question-navigator{max-height:50dvh}.options--tf{grid-template-columns:1fr 1fr;max-width:400px}.match-grid{min-width:400px}.exam-sidebar{display:flex;flex-direction:column;width:180px;min-width:180px;padding:16px 12px;border-right:1px solid var(--color-border);background:var(--color-surface);min-height:calc(100dvh - var(--header-height));position:sticky;top:var(--header-height);height:calc(100dvh - var(--header-height));overflow-y:auto}.exam-sidebar__header{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.exam-sidebar__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.sidebar-q{display:flex;align-items:center;justify-content:center;min-height:34px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s;touch-action:manipulation}.sidebar-q:hover{border-color:var(--color-primary)}.sidebar-q--answered{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.sidebar-q--current{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.sidebar-q--current.sidebar-q--answered{background:var(--color-primary);color:#fff}.exam-main{max-width:none;margin:0}}@media(min-width:1024px){.exam-layout{max-width:1200px;margin:0 auto;width:100%}.exam-main{padding:24px 32px;padding-bottom:calc(var(--nav-height) + 24px);margin:0;max-width:none}.header__menu-btn{display:none}.exam-sidebar{display:flex;flex-direction:column;width:var(--sidebar-width);min-width:var(--sidebar-width);padding:20px 16px;border-right:1px solid var(--color-border);background:var(--color-surface);min-height:calc(100dvh - var(--header-height));position:sticky;top:var(--header-height);height:calc(100dvh - var(--header-height));overflow-y:auto}.exam-sidebar__header{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.exam-sidebar__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.sidebar-q{display:flex;align-items:center;justify-content:center;min-height:38px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-surface);font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s;touch-action:manipulation}.sidebar-q:hover{border-color:var(--color-primary)}.sidebar-q--answered{background:var(--color-success-light);border-color:var(--color-success);color:var(--color-success)}.sidebar-q--current{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.sidebar-q--current.sidebar-q--answered{background:var(--color-primary);color:#fff}.nav-controls{position:static;border-top:1px solid var(--color-border);box-shadow:none;margin-top:auto;padding:16px 0 0}.auto-save-indicator:last-child{display:none}.question-navigator{max-height:60dvh;max-width:500px;left:auto;right:20px;bottom:20px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:scaleIn .2s ease-out}.question-navigator__grid{grid-template-columns:repeat(5,1fr)}.question-area{padding:28px}.question-area__text{font-size:1.15rem}.options--tf{max-width:300px}.keyboard-hint{display:block;margin-top:auto;padding-top:12px;border-top:1px solid var(--color-border);font-size:.7rem;color:var(--color-text-secondary);line-height:1.6}}@media(min-width:1400px){.exam-layout{max-width:1400px}.exam-main{padding:32px 48px 24px}.exam-sidebar{width:260px;min-width:260px;padding:24px 20px}.exam-sidebar__grid{grid-template-columns:repeat(5,1fr)}}@media(max-width:768px)and (orientation:landscape){.question-navigator{max-height:80dvh}.question-navigator__grid{grid-template-columns:repeat(7,1fr)}.header__title{font-size:.85rem}}@media print{.header,.nav-controls,.question-navigator-overlay,.question-navigator,.timer{display:none!important}.exam-container{background:#fff}.question-area{box-shadow:none;border:1px solid #ccc;break-inside:avoid}}@media(prefers-color-scheme:dark){:root{--color-bg: #1a1a2e;--color-surface: #16213e;--color-text: #e0e0e0;--color-text-secondary: #a0a0b0;--color-border: #2a2a4a;--color-primary-light: #1a2a4a;--color-success-light: #1a3a2a;--color-warning-light: #3a2a1a;--color-danger-light: #3a1a1a;--color-overlay: rgba(0, 0, 0, .7);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--shadow-md: 0 2px 8px rgba(0, 0, 0, .4);--shadow-lg: 0 4px 20px rgba(0, 0, 0, .5)}.option-btn:hover{background:var(--color-primary-light)}.nav-btn:hover:not(:disabled){background:var(--color-primary-light)}.fill-blank__input,.text-input__area,.match-row__select{background:#0f1a30;color:var(--color-text)}.match-row__left{background:#1a2a4a}.result-card__answer{background:#0f1a30}.confirm-modal{background:#16213e}.connection-status{color:#fc0}}@supports (padding: max(0px)){.nav-controls{padding-bottom:max(10px,env(safe-area-inset-bottom))}.question-navigator{padding-bottom:max(20px,env(safe-area-inset-bottom))}}.option-btn,.nav-btn,.nav-item,.sidebar-q{user-select:none;-webkit-user-select:none}
