:root{color:#102033;background:#fff;--blue-900: #123d77;--blue-800: #0b58ad;--blue-700: #0f67c8;--blue-100: #e8f1fb;--blue-50: #f7fbff;--text-muted: #42617f;--line-soft: #d9e6f3;--surface-card: #f8fbff;--surface-card-strong: #eef6ff;--radius-md: 12px;--radius-lg: 18px;--shadow-soft: 0 14px 34px rgba(18, 61, 119, .1);--shadow-button: 0 10px 24px rgba(15, 103, 200, .2);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{min-width:320px;min-height:100%;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}body{min-width:320px;min-height:100%;margin:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;background:#fff}#root{min-height:100dvh;overflow-x:hidden;overflow-y:visible}button,select,input{font:inherit}.app-page{display:flex;width:100%;min-height:100dvh;align-items:stretch;justify-content:center;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:max(clamp(14px,2.2vh,32px),env(safe-area-inset-top,0px)) max(clamp(16px,3vw,72px),env(safe-area-inset-right,0px)) max(clamp(10px,1.6vh,22px),env(safe-area-inset-bottom,0px)) max(clamp(16px,3vw,72px),env(safe-area-inset-left,0px));background:#fff}.app-layout{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto;width:min(100%,760px);min-height:calc(100dvh - clamp(42px,5.8vh,92px));gap:clamp(12px,1.8vh,24px);align-content:stretch;text-align:center}.page-container{border-radius:var(--radius-lg)}.app-layout__header,.app-layout__main,.app-layout__actions{min-width:0}.app-layout__main{display:grid;min-height:0;align-content:center}.app-layout__actions{display:grid;width:100%}.page-panel{width:min(100%,760px);text-align:center}.page-panel--settings{width:min(100%,900px)}.title-group{margin-bottom:0}.title-group h1{margin:0;color:var(--blue-900);font-size:clamp(42px,5vw,76px);font-weight:800;line-height:1.05}.title-group p{margin:16px 0 0;color:var(--text-muted);font-size:clamp(22px,2.3vw,34px);font-weight:500}.title-group--practice{margin-bottom:clamp(14px,2vh,24px)}.button-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:clamp(16px,2.4vh,28px)}.button-grid--practice{grid-template-columns:repeat(2,minmax(220px,1fr))}.large-button{min-height:clamp(74px,10vh,112px);border:0;border-radius:var(--radius-md);cursor:pointer;font-size:clamp(22px,2.1vw,32px);font-weight:700;letter-spacing:0;box-shadow:var(--shadow-button);transition:background-color .16s ease,box-shadow .16s ease,transform .16s ease}.large-button--primary{background:var(--blue-700);color:#fff}.large-button--primary:hover{background:var(--blue-800);box-shadow:0 14px 28px #0f67c847;transform:translateY(-1px)}.large-button--secondary{min-width:180px;min-height:clamp(58px,7vh,76px);background:var(--blue-100);color:var(--blue-900);font-size:clamp(19px,1.5vw,24px);box-shadow:none}.large-button--danger{background:#c2410c;color:#fff;box-shadow:0 10px 24px #c2410c33}.large-button--secondary:hover{background:#d6e8f8;transform:translateY(-1px)}.large-button--secondary:focus-visible{outline-color:#123d7738}.large-button:focus-visible{outline:4px solid rgba(15,103,200,.24);outline-offset:4px}.large-button:disabled{cursor:default;opacity:.68;transform:none}.settings-panel{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:clamp(10px,1.4vh,18px) clamp(16px,2vw,24px);width:min(100%,820px);margin:0 auto;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(14px,2vw,22px);text-align:left}.settings-field{display:grid;gap:8px;color:var(--blue-900);font-size:clamp(18px,1.5vw,22px);font-weight:700}.settings-field select{width:100%;min-height:clamp(46px,6vh,62px);border:2px solid #c8d9ec;border-radius:var(--radius-md);background:#fff;color:#102033;cursor:pointer;font-size:clamp(18px,1.5vw,22px);font-weight:600;padding:0 18px}.settings-field input{width:100%;min-height:clamp(46px,6vh,62px);border:2px solid #c8d9ec;border-radius:var(--radius-md);background:#fff;color:#102033;font-size:clamp(18px,1.5vw,22px);font-weight:600;padding:0 18px}.settings-field select:focus{border-color:#0f67c8;outline:4px solid rgba(15,103,200,.16)}.settings-field input:focus{border-color:#0f67c8;outline:4px solid rgba(15,103,200,.16)}.settings-error{grid-column:1 / -1;margin:-2px 0 0;color:#b42318;font-size:clamp(15px,1.1vw,18px);font-weight:800;line-height:1.35}.settings-message{width:min(100%,820px);margin:clamp(12px,1.8vh,20px) auto 0;color:var(--blue-900);font-size:clamp(17px,1.3vw,21px);font-weight:700;line-height:1.35;text-align:center}.page-actions{display:grid;grid-template-columns:minmax(220px,1fr) 180px;gap:18px;width:min(100%,540px);margin:0 auto}.page-actions--three{grid-template-columns:minmax(220px,1fr) 160px 160px;width:min(100%,700px)}.back-action{margin:0}.student-session-panel{width:min(100%,560px);margin:0 auto;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(16px,2.4vw,26px);text-align:left}.portal-panel{width:min(100%,1100px)}.portal-panel--narrow{width:min(100%,640px)}.public-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:clamp(18px,3vh,34px)}.public-nav__button{min-height:44px;border:2px solid var(--line-soft);border-radius:8px;background:#fff;color:var(--blue-900);cursor:pointer;font-size:clamp(15px,1.2vw,18px);font-weight:800;padding:0 18px}.public-nav__button--active,.public-nav__button:hover{border-color:var(--blue-700);background:var(--blue-100)}.portal-title p{max-width:820px;margin-right:auto;margin-left:auto;line-height:1.35}.digital-campus-home{width:min(100%,1180px)}.campus-home-stack{display:grid;gap:clamp(18px,3vh,34px);text-align:left}.campus-hero,.portal-section,.student-dashboard-card,.admin-dashboard__intro{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(20px,3vw,42px)}.campus-hero{display:grid;gap:clamp(14px,2vh,22px);text-align:center}.campus-hero__copy{max-width:820px;margin:0 auto;color:var(--text-muted);font-size:clamp(18px,1.7vw,26px);font-weight:600;line-height:1.45}.portal-section{display:grid;gap:clamp(12px,1.8vh,20px)}.portal-section h2,.student-dashboard-card h2{margin:0;color:var(--blue-900);font-size:clamp(28px,2.6vw,42px);font-weight:900;line-height:1.1}.portal-section p,.student-dashboard-card p{margin:0;color:var(--text-muted);font-size:clamp(17px,1.4vw,22px);font-weight:600;line-height:1.45}.portal-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:clamp(12px,1.8vw,20px);text-align:left}.portal-feature-card{display:grid;gap:12px;align-content:space-between;min-height:132px;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(16px,2vw,24px)}.portal-feature-card h2,.portal-feature-card h3{margin:0;color:var(--blue-900);font-size:clamp(20px,1.8vw,28px);line-height:1.18}.portal-list-grid,.admin-section-grid{display:grid;grid-template-columns:repeat(3,minmax(220px,1fr));gap:clamp(12px,1.8vw,20px)}.admin-section-grid{grid-template-columns:repeat(4,minmax(180px,1fr))}.portal-info-tile{display:grid;gap:8px;align-content:start;min-height:120px;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:#fff;padding:clamp(16px,2vw,22px)}.portal-info-tile h3,.portal-info-tile p{margin:0}.portal-info-tile h3{color:var(--blue-900);font-size:clamp(19px,1.5vw,24px);font-weight:900}.portal-info-tile p{color:var(--text-muted);font-size:clamp(15px,1.1vw,18px);font-weight:700;line-height:1.35}.follow-link-grid{display:flex;flex-wrap:wrap;gap:10px}.follow-link-placeholder{border:1px solid var(--line-soft);border-radius:999px;background:#fff;color:var(--blue-900);font-size:clamp(15px,1.1vw,18px);font-weight:800;padding:10px 14px}.status-badge,.feature-status{width:fit-content;border-radius:999px;background:var(--blue-700);color:#fff;font-size:14px;font-weight:800;padding:6px 10px}.status-badge--muted,.feature-status--soon{background:var(--blue-100);color:var(--blue-900)}.status-badge--success{background:#0f766e;color:#fff}.status-badge--warning{background:#f59e0b;color:#102033}.status-badge--danger{background:#b42318;color:#fff}.info-badge{display:grid;min-width:0;gap:3px;border:1px solid var(--line-soft);border-radius:var(--radius-md);background:#fff;padding:9px 12px}.info-badge span{color:var(--text-muted);font-size:clamp(12px,.9vw,14px);font-weight:800}.info-badge strong{color:var(--blue-900);font-size:clamp(16px,1.2vw,20px);font-weight:900;line-height:1.1}.portal-primary-action{width:min(100%,360px);margin:0 auto}.login-panel{display:grid;gap:clamp(14px,2vh,22px);width:min(100%,560px);margin:0 auto;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(16px,2.4vw,26px);text-align:left}.password-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px}.password-toggle{min-width:86px;border:0;border-radius:var(--radius-md);background:var(--blue-100);color:var(--blue-900);cursor:pointer;font-size:clamp(15px,1vw,18px);font-weight:900;padding:0 14px}.remember-session{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text-muted);font-size:clamp(15px,1.1vw,18px);font-weight:800}.remember-session input{width:20px;height:20px;accent-color:var(--blue-700)}.login-status{margin:0;color:var(--blue-700);font-size:clamp(16px,1.2vw,20px);font-weight:800;text-align:center}.login-error{margin:0;color:#b42318;font-size:clamp(16px,1.2vw,20px);font-weight:800;text-align:center}.portal-copy{display:grid;gap:16px;width:min(100%,860px);margin:0 auto;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);color:var(--text-muted);font-size:clamp(20px,1.8vw,28px);font-weight:600;line-height:1.45;text-align:center;padding:clamp(18px,2.4vw,30px)}.portal-copy p{margin:0}.coming-soon-note{color:var(--blue-900);font-weight:800}.dashboard-actions{display:grid;grid-template-columns:repeat(2,minmax(160px,1fr));gap:14px;width:min(100%,420px);margin:0 auto}.student-dashboard-stack,.admin-dashboard{display:grid;gap:clamp(16px,2.4vh,28px)}.admin-dashboard__actions{display:flex;justify-content:center;margin-top:20px}.admin-dashboard__actions .large-button{width:min(100%,360px);min-height:64px;font-size:clamp(18px,1.7vw,24px)}.system-health{width:min(100%,1120px)}.system-health__hero,.system-health__overall,.system-health__empty,.system-health__section{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-card)}.system-health__hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:center;gap:20px;padding:clamp(18px,3vw,28px)}.system-health__hero h2,.system-health__section h2{margin:0 0 8px;color:var(--blue-900)}.system-health__hero p,.system-health__check p{margin:0;color:var(--text-muted)}.system-health__overall{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px}.system-health__overall span{color:var(--text-muted);font-weight:800}.system-health__overall strong{font-size:clamp(22px,2.4vw,34px)}.system-health__overall--ready strong{color:#0f766e}.system-health__overall--warning strong{color:#b45309}.system-health__overall--danger strong{color:#b42318}.system-health__empty{padding:22px;color:var(--text-muted);text-align:center;font-weight:800}.system-health__section{padding:clamp(16px,2.6vw,24px)}.system-health__checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.system-health__check{border:1px solid var(--line-soft);border-radius:var(--radius-md);background:#fff;padding:16px}.system-health__check-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}.system-health__check h3{margin:0;color:var(--blue-900);font-size:clamp(17px,1.5vw,21px)}.system-health__dot{width:16px;height:16px;flex:0 0 16px;border-radius:999px}.system-health__dot--green{background:#0f766e}.system-health__dot--yellow{background:#f59e0b}.system-health__dot--red{background:#b42318}.student-management{width:min(100%,1180px)}.student-management__toolbar,.student-form-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;width:min(100%,920px);margin:0 auto}.student-management__toolbar .large-button,.student-form-actions .large-button{min-height:58px;font-size:clamp(17px,1.4vw,22px)}.credential-notice,.student-form-card,.student-table-wrap{border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-card)}.credential-notice{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:16px;padding:18px}.credential-notice h2,.student-form-card h2{margin:0 0 8px;color:var(--blue-900)}.credential-notice p,.student-management__status,.student-management__error{margin:0;font-weight:800}.student-management__status{color:#0f766e;text-align:center}.student-management__error{color:#b42318;text-align:center}.student-table-wrap{overflow-x:auto}.student-table{width:100%;border-collapse:collapse;background:#fff;font-size:clamp(13px,1vw,16px)}.student-table th,.student-table td{padding:10px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.student-table th{background:var(--blue-100);color:var(--blue-900);font-weight:900;white-space:nowrap}.student-status{display:inline-flex;border-radius:999px;background:#fee2e2;color:#991b1b;font-weight:900;padding:4px 10px}.student-status--active{background:#ccfbf1;color:#115e59}.student-table__actions{display:flex;flex-wrap:wrap;gap:8px}.student-table__actions button{min-height:36px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--blue-100);color:var(--blue-900);cursor:pointer;font-weight:900;padding:0 10px}.student-form-card{display:grid;gap:18px;padding:clamp(16px,2.4vw,26px)}.student-form-card__header{display:flex;align-items:center;justify-content:space-between;gap:14px}.student-form-card__header .large-button{min-height:48px;min-width:140px;font-size:17px}.student-form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.student-form-grid__wide{grid-column:1 / -1}.student-form-grid textarea{min-height:92px;resize:vertical}.hall-ticket-preview{border:1px dashed var(--blue-700);border-radius:var(--radius-lg);background:#fff;padding:clamp(16px,2.4vw,28px);text-align:center}.hall-ticket-preview h2{margin:0 0 8px;color:var(--blue-900)}.student-management__section-card{display:grid;gap:14px}.student-management__section-card .large-button{min-height:54px;font-size:clamp(16px,1.3vw,20px)}.bulk-template-builder,.bulk-template-builder__suggestions,.bulk-template-builder__fields{display:flex;flex-wrap:wrap;gap:10px}.bulk-template-builder{flex-direction:column}.bulk-template-builder__suggestions button,.bulk-template-builder__fields button{min-height:34px;border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:#fff;color:var(--blue-900);font-weight:800}.bulk-template-builder__fields .student-status{display:inline-flex;align-items:center;gap:6px}.student-dashboard-card{display:grid;gap:clamp(12px,1.8vh,20px)}.practice-session{width:min(100%,1800px)}.practice-session__main{align-content:stretch}.practice-session{grid-template-rows:auto minmax(0,1fr) auto}.practice-session__topbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,180px);gap:clamp(10px,1.4vw,18px);align-items:stretch;width:min(100%,1500px)}.practice-session__topbar .large-button{min-height:100%;font-size:clamp(18px,1.4vw,24px)}.session-summary-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);gap:clamp(12px,1.6vw,20px);width:min(100%,1320px);margin:0 auto clamp(12px,1.8vh,22px);border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(14px,1.8vw,22px);text-align:left}.session-summary-card__heading{display:grid;align-content:center;gap:6px}.session-summary-card__heading h2,.session-summary-card__heading p{margin:0}.session-summary-card__heading h2{color:var(--blue-900);font-size:clamp(20px,1.8vw,30px);font-weight:900;line-height:1.12}.session-summary-card__heading p{color:var(--text-muted);font-size:clamp(14px,1.05vw,18px);font-weight:800}.session-summary-card__items{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:8px}.practice-panel,.question-area{display:grid;min-height:clamp(320px,62dvh,760px);grid-template-rows:minmax(0,1fr) auto;align-content:center;justify-items:center;border:2px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft);padding:clamp(18px,3vw,48px);overflow:hidden}.question-area--written{min-height:clamp(420px,72dvh,900px);align-content:stretch;gap:clamp(10px,1.6vh,18px)}.question-display-box{display:grid;width:100%;min-height:clamp(180px,52dvh,620px);max-height:68dvh;place-items:center;border:2px solid #c8d9ec;border-radius:var(--radius-md);background:#f8fbff;padding:clamp(8px,1.6vw,20px);overflow:hidden}.question-display-box--plain{min-height:0;max-height:none;border:0;background:transparent;padding:0}.question-lead{margin:0;color:var(--text-muted);font-size:clamp(38px,4vw,72px);font-weight:700}.question-value{color:var(--blue-900);font-size:clamp(150px,12vw,240px);font-weight:800;line-height:.95;opacity:1}.question-value--written{display:grid;gap:clamp(1px,.3vh,8px);width:min(100%,980px);height:100%;min-height:0;max-height:100%;justify-items:center;font-size:clamp(56px,7vw,118px);line-height:1.05;overflow:hidden;white-space:pre-line}.question-value--horizontal{display:block;width:min(100%,1180px);padding:0 clamp(6px,1vw,16px);font-size:clamp(34px,5vw,88px);line-height:1.18;text-align:center;white-space:normal;overflow-wrap:anywhere}.question-value--written-columns{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(92px,1fr);align-items:start;justify-content:center;gap:clamp(8px,1.2vw,18px);width:100%;overflow:hidden}.question-value__column{display:grid;grid-template-rows:auto minmax(0,1fr);align-content:start;justify-items:center;min-width:0;min-height:0;height:100%;border-inline-end:1px solid #d8e5f4;padding-inline:clamp(3px,.6vw,8px);overflow:hidden}.question-value__column:last-child{border-inline-end:0}.question-value__column-header{margin-bottom:clamp(3px,.4vh,8px);color:var(--text-muted);font-size:max(10px,.22em);font-weight:900;line-height:1;text-transform:uppercase}.question-value__column-values{display:grid;gap:clamp(1px,.25vh,5px);align-content:space-evenly;justify-items:center;line-height:1.04;min-height:0;overflow:hidden}.question-value--paused{font-size:clamp(64px,8vw,130px)}.question-value--fade{opacity:0;transition:opacity .2s ease}.question-countdown{margin-top:clamp(10px,1.4vh,18px);color:var(--blue-900);font-size:clamp(112px,9.4vw,180px);font-weight:800;line-height:.95}.status-line{margin:clamp(10px,1.6vh,18px) 0 0;color:var(--text-muted);font-size:clamp(28px,2.4vw,44px);font-weight:700}.practice-actions{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:clamp(12px,1.4vw,22px);margin-top:clamp(12px,1.8vh,22px)}.practice-actions--compact{grid-template-columns:repeat(2,minmax(220px,1fr));width:min(100%,620px);margin-right:auto;margin-left:auto}.practice-actions--single{grid-template-columns:minmax(220px,420px);justify-content:center}.practice-actions--triple{grid-template-columns:repeat(3,minmax(180px,1fr))}.practice-actions--quad{grid-template-columns:repeat(4,minmax(150px,1fr))}.practice-actions--wide{grid-template-columns:repeat(5,minmax(120px,1fr))}.practice-status{position:absolute;top:clamp(4px,1vh,14px);right:clamp(4px,1vw,18px);display:grid;justify-items:end;gap:4px;color:var(--blue-900);font-size:clamp(20px,1.8vw,34px);font-weight:800;line-height:1.05}.session-info-bar{display:grid;width:min(100%,1320px);gap:4px;margin:0 auto clamp(12px,1.8vh,22px);color:var(--text-muted);font-size:clamp(12px,.95vw,16px);font-weight:700;line-height:1.25;text-align:left}.session-info-bar__top,.session-info-bar__details{display:flex;flex-wrap:wrap;gap:4px 0}.session-info-bar__top{color:var(--blue-900);font-size:clamp(14px,1.05vw,18px);font-weight:800}.session-info-bar__top span,.session-info-bar__details span{display:inline-flex;align-items:center}.session-info-bar__top span+span:before,.session-info-bar__details span+span:before{content:"|";margin:0 9px;color:#9bb3ce;font-weight:700}.practice-actions .large-button{min-height:clamp(54px,7vh,76px);font-size:clamp(20px,1.6vw,28px)}.answer-panel{display:grid;gap:clamp(14px,2vh,22px);justify-items:center;width:min(100%,560px);margin-top:clamp(10px,1.8vh,24px);border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:#fff;padding:clamp(16px,2.4vw,28px)}.answer-field{display:grid;gap:10px;color:var(--blue-900);font-size:clamp(28px,2.6vw,46px);font-weight:800}.answer-entry{display:flex;width:min(620px,78vw);align-items:stretch;justify-content:center}.answer-field input{width:min(520px,70vw);min-height:clamp(58px,8vh,84px);border:2px solid #c8d9ec;border-radius:var(--radius-md);color:var(--blue-900);font-size:clamp(34px,3.2vw,58px);font-weight:800;text-align:center}.answer-field input:focus{border-color:var(--blue-700);outline:4px solid rgba(15,103,200,.16)}.numeric-keypad{display:grid;width:min(100%,430px);gap:20px;margin-top:0}.numeric-keypad__numbers{display:grid;gap:10px}.numeric-keypad__row{display:grid;grid-template-columns:repeat(3,minmax(68px,1fr));gap:10px}.numeric-keypad__zero-row{display:grid;grid-template-columns:minmax(68px,1fr);width:calc((100% - 20px) / 3);justify-self:center}.numeric-keypad__controls{display:grid;grid-template-columns:repeat(3,minmax(82px,1fr));gap:10px;padding-top:16px;border-top:2px solid var(--line-soft)}.numeric-keypad__button{min-height:60px;border:0;border-radius:var(--radius-md);background:var(--blue-100);color:var(--blue-900);cursor:pointer;font-size:28px;font-weight:800;touch-action:manipulation;-webkit-user-select:none;user-select:none}.numeric-keypad__button:active{background:#d6e8f8}.numeric-keypad__button--enter{width:100%;min-height:54px;background:var(--blue-700);color:#fff;font-size:18px}.numeric-keypad__button--control{width:100%;min-height:54px;background:#eef5fc;font-size:16px}.numeric-keypad__button:focus-visible{outline:4px solid rgba(15,103,200,.24);outline-offset:3px}.answer-result,.answer-summary{margin:0;color:var(--blue-900);font-size:clamp(34px,3.2vw,58px);font-weight:800}.answer-result--meta{font-size:clamp(18px,1.8vw,28px);font-weight:700}.answer-summary{color:var(--text-muted);font-size:clamp(28px,2.4vw,42px)}.app-footer{display:flex;width:100%;align-items:center;justify-content:center;gap:18px;color:var(--text-muted);font-size:clamp(13px,1vw,18px);font-weight:600;line-height:1.2;text-align:center}.app-footer span+span{padding-left:18px;border-left:1px solid #c8d9ec}.app-page--report{align-items:start;padding-top:clamp(12px,2vh,24px)}.report-panel{width:min(100%,1180px);overflow:visible}.report-header{text-align:center;color:var(--blue-900);margin-bottom:10px}.report-header h1,.report-header h2{margin:0}.report-header h1{font-size:clamp(30px,3.2vw,48px)}.report-header h2{font-size:clamp(22px,2vw,32px)}.report-section{margin-top:12px}.report-section--compact{margin-top:10px}.report-section h2{margin:0 0 8px;color:var(--blue-900);font-size:clamp(20px,1.6vw,26px)}.report-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px 18px}.practice-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(280px,1fr));gap:4px 28px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-soft)}.report-item{display:grid;grid-template-columns:minmax(130px,.85fr) minmax(120px,1fr);gap:10px;margin:0;color:var(--text-muted);font-size:clamp(13px,1vw,16px);font-weight:700;line-height:1.2}.report-item strong{color:#102033;font-size:clamp(13px,1vw,16px)}.report-numbers{white-space:pre-line}.question-report-table-wrap{overflow-x:auto;overflow-y:visible;border:1px solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.question-report-table{width:100%;border-collapse:collapse;background:#fff;font-size:clamp(12px,.95vw,15px)}.question-report-table th,.question-report-table td{padding:7px 9px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.question-report-table th{position:sticky;top:0;z-index:1;background:var(--blue-100);color:var(--blue-900);font-weight:800}.question-report-table td:first-child,.question-report-table td:nth-child(3),.question-report-table td:nth-child(4),.question-report-table td:nth-child(5){white-space:nowrap}.question-report-table__row--wrong{background:#fff3f3}.question-report-table__row--skipped{background:#f8fafc;color:#475569}.report-actions{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;margin:14px 0 8px}.report-actions--five{grid-template-columns:repeat(5,minmax(130px,1fr))}.report-actions .large-button{min-height:54px;font-size:clamp(16px,1.2vw,20px)}.splash-screen{display:grid;width:100vw;height:100vh;place-items:center;overflow:hidden;background:#fff}.splash-banner{display:block;width:100vw;height:100vh;object-fit:contain}@media(max-height:820px){.app-page{padding-top:12px;padding-bottom:8px}.question-area{min-height:clamp(280px,58dvh,620px)}.title-group{margin-bottom:0}}@media(max-width:620px){.app-page{padding:max(10px,env(safe-area-inset-top,0px)) max(14px,env(safe-area-inset-right,0px)) max(10px,env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}.app-layout{grid-template-rows:auto auto auto auto;min-height:calc(100dvh - 20px);gap:12px}.app-layout__main{align-content:start;overflow:visible}.app-layout__actions{overflow:visible}.session-summary-card{grid-template-columns:1fr;padding:12px}.session-summary-card__items{grid-template-columns:repeat(2,minmax(0,1fr))}.button-grid,.button-grid--practice,.settings-panel,.portal-feature-grid,.portal-list-grid,.admin-section-grid,.page-actions,.page-actions--three,.dashboard-actions{grid-template-columns:1fr}.public-nav{justify-content:stretch}.public-nav__button{flex:1 1 42%}.campus-home-stack{gap:14px}.campus-hero,.portal-section,.student-dashboard-card,.admin-dashboard__intro{padding:16px}.password-entry{grid-template-columns:1fr}.password-toggle{min-height:46px}.large-button--secondary{width:100%}.practice-actions{grid-template-columns:1fr;gap:10px}.practice-actions--compact{grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.practice-actions--quad,.practice-actions--wide{grid-template-columns:repeat(2,minmax(0,1fr))}.practice-actions--single,.practice-actions--triple{grid-template-columns:1fr}.practice-actions .large-button{min-width:0;min-height:58px;font-size:clamp(17px,4.5vw,21px)}.practice-session{align-content:stretch}.question-area{min-height:min(52dvh,430px);padding:14px}.question-area--answer-state{min-height:0;align-content:start;overflow:visible}.answer-panel{width:100%;padding:14px}.answer-field{width:100%;font-size:clamp(24px,7vw,34px)}.answer-field input{width:100%;min-height:64px;font-size:clamp(32px,9vw,46px)}.answer-entry{width:100%}.numeric-keypad{width:min(100%,420px);gap:18px}.numeric-keypad__numbers{gap:10px}.numeric-keypad__row{grid-template-columns:repeat(3,minmax(64px,1fr));gap:10px}.numeric-keypad__button{min-height:62px;font-size:28px}.numeric-keypad__zero-row{width:calc((100% - 20px) / 3)}.numeric-keypad__controls{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding-top:18px}.numeric-keypad__button--control,.numeric-keypad__button--enter{min-height:52px;font-size:13px}.practice-actions--compact,.practice-actions--quad{position:static;padding:0;border:0;background:transparent;box-shadow:none}.app-footer{display:grid;gap:4px}.report-grid,.practice-summary-grid,.report-actions,.report-actions--five,.system-health__hero,.system-health__checks,.credential-notice,.student-form-grid,.student-management__toolbar,.student-form-actions{grid-template-columns:1fr}.system-health__overall{align-items:flex-start;flex-direction:column}.app-footer span+span{padding-left:0;border-left:0}}@media(max-width:900px),(max-height:720px){.app-page--practice{height:100dvh;min-height:100dvh;overflow:hidden;padding:max(6px,env(safe-area-inset-top,0px)) max(8px,env(safe-area-inset-right,0px)) max(6px,env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px))}.practice-session{width:min(100%,900px);height:calc(100dvh - 12px);min-height:0;grid-template-rows:auto minmax(0,1fr) auto;gap:6px}.practice-session .app-layout__header{display:grid;gap:4px}.practice-session__title{display:none}.practice-session .session-summary-card{grid-template-columns:1fr;gap:6px;margin:0;border-radius:12px;padding:8px}.practice-session__topbar{grid-template-columns:minmax(0,1fr) minmax(86px,110px);gap:6px}.practice-session__topbar .large-button{min-height:44px;font-size:clamp(14px,3.7vw,17px)}.practice-session .session-summary-card__heading{gap:2px}.practice-session .session-summary-card__heading h2{font-size:clamp(15px,4vw,20px)}.practice-session .session-summary-card__heading p{font-size:clamp(11px,3vw,14px)}.practice-session .session-summary-card__items{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.practice-session .info-badge{gap:1px;border-radius:10px;padding:5px 6px}.practice-session .info-badge span{font-size:10px}.practice-session .info-badge strong{font-size:clamp(12px,3.2vw,15px)}.practice-session__main{align-content:stretch;min-height:0}.practice-session .question-area{min-height:0;height:100%;align-content:center;border-radius:14px;padding:8px;overflow:hidden}.practice-session .question-area--written{gap:6px}.practice-session .question-display-box{min-height:clamp(150px,50dvh,420px);max-height:58dvh;padding:6px}.practice-session .question-display-box--plain{min-height:0;max-height:none;padding:0}.practice-session .question-area--answer-state{align-content:center}.practice-session .question-value{font-size:clamp(78px,28vw,170px)}.practice-session .question-value--written{gap:2px}.practice-session .question-value--horizontal{line-height:1.15}.practice-session .answer-panel{width:min(100%,390px);max-height:100%;gap:8px;margin-top:0;border-radius:14px;padding:10px;overflow:visible}.practice-session .answer-field{gap:5px;font-size:clamp(18px,5vw,26px)}.practice-session .answer-field input{min-height:clamp(42px,8dvh,58px);font-size:clamp(24px,7vw,38px)}.practice-session .numeric-keypad{width:min(100%,340px);gap:8px}.practice-session .numeric-keypad__numbers{gap:6px}.practice-session .numeric-keypad__row{grid-template-columns:repeat(3,minmax(52px,1fr));gap:6px}.practice-session .numeric-keypad__zero-row{width:calc((100% - 12px) / 3)}.practice-session .numeric-keypad__controls{gap:6px;padding-top:8px}.practice-session .numeric-keypad__button{min-height:clamp(42px,8dvh,58px);font-size:clamp(20px,6vw,28px)}.practice-session .numeric-keypad__button--control,.practice-session .numeric-keypad__button--enter{min-height:clamp(38px,7dvh,50px);font-size:clamp(12px,3.4vw,15px)}.practice-session .app-layout__actions{min-height:0}.practice-session .practice-actions{gap:6px;margin-top:0}.practice-session .practice-actions--compact{grid-template-columns:repeat(2,minmax(0,1fr));width:min(100%,390px)}.practice-session .practice-actions .large-button{min-height:clamp(42px,8dvh,56px);font-size:clamp(16px,4.5vw,22px)}}@media(max-height:520px)and (orientation:landscape){.practice-session{gap:4px}.practice-session .session-summary-card{grid-template-columns:minmax(170px,.7fr) minmax(0,1.3fr);padding:6px}.practice-session .session-summary-card__items{grid-template-columns:repeat(6,minmax(0,1fr))}.practice-session .info-badge{padding:4px 5px}.practice-session .question-area{padding:6px}.practice-session .answer-panel{width:min(100%,560px);grid-template-columns:minmax(120px,.85fr) minmax(180px,1.15fr);align-items:center;gap:8px;padding:8px}.practice-session .answer-field input{min-height:42px}.practice-session .numeric-keypad{width:min(100%,300px);gap:6px}.practice-session .numeric-keypad__button{min-height:34px;font-size:18px}.practice-session .numeric-keypad__button--control,.practice-session .numeric-keypad__button--enter{min-height:32px;font-size:11px}.practice-session .practice-actions .large-button{min-height:38px}}
