@import url('https://rsms.me/inter/inter.css');
:root{--ss-teal:#219288;--ss-blue:#053390;--ss-ink:#0f172a;--ss-muted:#64748b;--ss-line:#e6ebef;--ss-soft:#f7faf9;--ss-bg:#f5f8f8;--ss-shadow:0 18px 50px rgba(15,23,42,.055)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 50% -10%,#fff 0,#f7faf9 38%,var(--ss-bg) 100%);color:var(--ss-ink);font-family:Inter,"Open Sans",Roboto,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button,a{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease,background .18s ease,color .18s ease}
.app-shell{max-width:1380px;margin:0 auto;padding:30px 24px 64px}.compact-app{max-width:1380px}.topbar{position:relative;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:36px}.topbar:after{content:'';position:absolute;left:0;right:0;top:-30px;height:1px;background:linear-gradient(90deg,transparent,#dbe7e5,transparent)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:42px;height:42px;border-radius:13px;background:linear-gradient(135deg,var(--ss-teal),var(--ss-blue));color:#fff;display:grid;place-items:center;font-weight:800;box-shadow:0 8px 20px rgba(33,146,136,.14)}.brand h1{font-size:19px;line-height:1.15;margin:0;letter-spacing:-.02em}.brand p{font-size:12px;color:var(--ss-muted);margin:3px 0 0}
.role,.session-pill,.progress-chip{padding:8px 12px;border:1px solid var(--ss-line);border-radius:999px;background:rgba(255,255,255,.85);color:var(--ss-muted);font-size:11px;font-weight:800;white-space:nowrap}.hero{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:20px}.hero h2{font-size:32px;letter-spacing:-.045em;line-height:1.08;margin:0 0 8px}.hero p{margin:0;color:var(--ss-muted);font-size:14px;line-height:1.55;max-width:680px}.eyebrow,.step-label{font-size:9px;font-weight:850;letter-spacing:.14em;color:var(--ss-teal);margin-bottom:7px}
.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.control{border:1px solid var(--ss-line);background:#fff;border-radius:11px;padding:10px 12px;color:var(--ss-ink);outline:none}.control:focus,.search:focus,.field input:focus,.field textarea:focus{border-color:#9bcfc9;box-shadow:0 0 0 4px rgba(33,146,136,.075)}.btn{border:0;border-radius:11px;padding:10px 14px;font-weight:780;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--ss-teal);color:#fff;box-shadow:0 7px 18px rgba(33,146,136,.13)}.btn-primary:hover:not(:disabled){box-shadow:0 10px 24px rgba(33,146,136,.2)}.btn-secondary{background:rgba(255,255,255,.88);border:1px solid var(--ss-line);color:var(--ss-ink)}
.faculty-action{display:flex;align-items:center;gap:13px;margin:-3px 0 17px;padding:14px 16px;border:1px solid #f0d4d5;background:linear-gradient(100deg,#fff4f4,#fffafa);color:#8f3f46;box-shadow:0 8px 24px rgba(177,76,82,.08);border-radius:14px;animation:slideUp .3s ease}.faculty-action-hero{flex:0 0 100%;width:100%;order:3;margin:0 0 17px;min-width:0}.faculty-action-hero .faculty-action-copy{min-width:0;flex:1}.faculty-action-hero .faculty-action-timer{flex:0 0 auto}.faculty-action-copy{min-width:0}.faculty-action b,.faculty-action small{display:block}.faculty-action b{font-size:13px;color:#8f3f46;line-height:1.3}.faculty-action small{font-size:10px;color:#75868c;margin-top:3px;line-height:1.4}.faculty-action-timer{margin-left:auto;display:flex;align-items:baseline;gap:6px;padding:7px 11px;border:1px solid #f1d9d9;background:#fff7f7;border-radius:10px;color:#a64d53;white-space:nowrap}.faculty-action-timer strong{font-size:13px}.faculty-action-timer span{font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#b77b7f}.faculty-action a{color:var(--ss-teal);font-size:11px;font-weight:800;text-decoration:none;white-space:nowrap}.action-pulse{width:8px;height:8px;border-radius:50%;background:#c65a61;box-shadow:0 0 0 6px rgba(198,90,97,.1);animation:pulse 1.8s infinite}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.stat{background:rgba(255,255,255,.8);border:1px solid rgba(226,232,240,.85);border-radius:18px;padding:18px;box-shadow:0 8px 24px rgba(15,23,42,.03);transition:transform .22s ease,box-shadow .22s ease}.stat:hover{transform:translateY(-2px);box-shadow:var(--ss-shadow)}.stat b{font-size:27px;letter-spacing:-.045em;display:block}.stat span{font-size:11px;color:var(--ss-muted);display:block;margin-top:2px}.panel{background:rgba(255,255,255,.93);border:1px solid rgba(226,232,240,.9);border-radius:21px;overflow:hidden;box-shadow:var(--ss-shadow);backdrop-filter:blur(10px)}.panel-head{padding:18px 20px;border-bottom:1px solid var(--ss-line);display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.panel-head h3{margin:0;font-size:16px;letter-spacing:-.025em;line-height:1.3}.search{min-width:230px;border:1px solid var(--ss-line);border-radius:10px;padding:9px 11px;outline:none;background:#fff}
.table-wrap{overflow-x:auto}.attendance-table{border-collapse:separate;border-spacing:0;width:100%;min-width:820px}.attendance-table th,.attendance-table td{padding:14px 11px;border-bottom:1px solid #edf1f3;text-align:center;font-size:13px;white-space:nowrap}.attendance-table th{background:linear-gradient(180deg,#fbfcfd,#f7f9fa);color:#52657a;font-weight:700}.attendance-table tbody tr:hover{background:#fbfdfd}.attendance-table th:first-child,.attendance-table td:first-child{text-align:left;padding-left:18px}.student-name{font-weight:750}.serial{width:52px;color:#94a3b8;font-weight:700;text-align:center!important}.date-head{line-height:1.4}.date-head small{font-weight:600;color:#7b8796;font-size:11px}.att-btn{min-width:92px;border:1px solid transparent;border-radius:11px;padding:9px 11px;font-size:11px;font-weight:800;cursor:pointer}.att-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 5px 12px rgba(15,23,42,.07)}.att-btn:disabled{cursor:not-allowed;opacity:.82}.present{background:#e7f8ed;color:#24734a;border-color:#d3f0dd}.absent{background:#fceaea;color:#b44e55;border-color:#f4d9db}.mark{background:#edf8f6;color:#216f68;border-color:#d9eeeb}.locked{background:#f4f6f8;color:#9aa6b3;border-color:#e8ecef}.session-state{display:inline-block;margin-top:3px;font-size:9px;font-weight:800;color:#94a3b8}.session-state.open{color:var(--ss-teal)}.pct{font-weight:800}.attendance-cell{min-height:36px}
.month-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:15px 17px;border-bottom:1px solid var(--ss-line)}.mini{background:var(--ss-soft);border-radius:11px;padding:11px}.mini b{display:block;font-size:18px}.mini span{font-size:11px;color:var(--ss-muted)}.notice{padding:15px 17px;color:var(--ss-muted);font-size:13px}
.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.42);backdrop-filter:blur(9px);display:none;align-items:center;justify-content:center;padding:18px;z-index:10}.modal{background:rgba(255,255,255,.98);box-shadow:0 24px 70px rgba(15,23,42,.18);border-radius:22px;width:min(470px,100%);padding:24px}.modal h3{margin:0 0 7px;font-size:20px}.modal-sub{margin:0 0 18px;color:var(--ss-muted);font-size:13px}.form-row{display:grid;gap:6px;margin-bottom:12px}.form-row label{font-size:12px;font-weight:700;color:var(--ss-muted)}.form-row input{border:1px solid var(--ss-line);border-radius:9px;padding:10px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.time-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.status-option{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid;border-radius:15px;padding:14px;background:#fff;cursor:pointer}.status-option:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.07)}.status-icon{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;font-size:19px;font-weight:700}.present-option{background:#f1fbf5;border-color:#d8efdf;color:#2b7650}.present-option .status-icon{background:#d9f3e2}.absent-option{background:#fdf2f2;border-color:#f2dddd;color:#b45a60}.absent-option .status-icon{background:#f5dede}.status-option b{display:block;font-size:13px}.status-option small{display:block;color:var(--ss-muted);font-size:10px}.full-btn{width:100%}
.faculty-list{margin-top:20px;border-top:1px solid var(--ss-line);padding-top:14px}.faculty-list,.admin-list{overflow:visible}.access-divider{height:1px;background:#eef2f4;margin:20px 24px}.access-subsection{padding:0 24px 22px}.access-subsection h4{margin:4px 0 5px;font-size:18px}.admin-access-form{padding:8px 0 14px}.admin-access-form .btn{width:100%}.admin-access-item .faculty-disable{background:#fff0f1;border-color:#f3cdd0;color:#ad4e55}.faculty-item{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 4px;border-bottom:1px solid #eef2f4}.faculty-item:last-child{border-bottom:0}.faculty-item{width:100%;max-width:100%;padding-left:8px;padding-right:8px}.faculty-item>div{flex:1;min-width:0}.faculty-item .faculty-disable{flex:0 0 auto}.faculty-item>div{min-width:0}.faculty-item b{display:block;font-size:14px}.faculty-item span{font-size:11px;color:var(--ss-muted);display:block;margin-top:3px;overflow:hidden;text-overflow:ellipsis}.faculty-disable,.topic-disable{border:0;background:#f4f6f8;color:#7c8793;border-radius:10px;padding:10px 14px;font-size:11px;font-weight:800;cursor:pointer;white-space:nowrap}.faculty-disable{background:#fff0f1;color:#a84d54;border:1px solid #f3d7d9;min-width:190px}.faculty-disable:hover{background:#fde4e6;border-color:#eabdc1;transform:translateY(-1px)}.select-all{display:flex;gap:9px;align-items:center;background:#f7faf9;border:1px solid #e5efec;border-radius:12px;padding:12px;font-size:12px;font-weight:750}.month-checks{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-height:180px;overflow:auto;margin:10px 0}.month-check{display:flex;gap:9px;align-items:center;padding:8px 10px;border-radius:9px;background:#fafbfc;font-size:12px}.export-note{font-size:10px;color:#8a96a3;line-height:1.45;margin:12px 0 0}
.teaching-grid,.curriculum-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.72fr);gap:20px}.curriculum-grid{grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr)}.form-panel{padding-bottom:24px}.form-panel form{padding:22px 22px 0}.form-panel>.panel-head{padding:22px 22px 18px}.field{display:grid;gap:8px;margin:0 0 18px;min-width:0}.field>span{font-size:12px;font-weight:760;color:#475569}.field>span em{font-size:9px;font-style:normal;color:#a0aab5;margin-left:5px}.field input,.field textarea{width:100%;border:1px solid var(--ss-line);border-radius:14px;padding:13px 14px;outline:none;background:#fff;color:var(--ss-ink);resize:vertical;line-height:1.5}.field textarea{min-height:132px}.confirm-box{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:24px;padding:17px;border:1px solid #e1ece9;background:linear-gradient(135deg,#f8fbfa,#f4f9f7);border-radius:15px}.confirm-box b{font-size:13px}.confirm-box p{margin:4px 0 0;color:var(--ss-muted);font-size:10px}.notice-card{margin-bottom:14px;padding:13px 15px;border:1px solid #e5efec;background:#f8fbfa;border-radius:13px;color:#4b6470;font-size:12px}.deadline-card{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px 16px;border:1px solid #f0d4d5;background:linear-gradient(135deg,#fff5f5,#fffafa);border-radius:15px;color:#8f3f46;animation:slideUp .35s ease}.deadline-card b{display:block;font-size:12px}.deadline-card small{display:block;color:#7f858d;font-size:10px;margin-top:3px}.deadline-card strong{color:#b44e55}.deadline-icon{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:#f8dfe1;color:#b44e55;font-weight:900;flex:0 0 auto}.deadline-muted{background:#fafbfc;border-color:#e8ecef;color:#64748b}.deadline-muted .deadline-icon{background:#eef1f3;color:#94a3b8}.deadline-success{background:#f4fbf6;border-color:#dcefe2;color:#2e6f49}.deadline-success .deadline-icon{background:#dff3e5;color:#2d8b51}.priority-panel{position:relative}.priority-panel:before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--ss-teal),#9bd3cb)}.lock-badge{font-size:9px;font-weight:800;color:#7b8792;background:#f6f8f9;border:1px solid #e8ecef;border-radius:999px;padding:6px 9px}.ai-note{display:flex;gap:10px;align-items:flex-start;padding:12px 13px;border:1px solid #e7efed;background:#fbfdfc;border-radius:12px;margin:2px 0 15px}.ai-dot{width:7px;height:7px;border-radius:50%;background:var(--ss-teal);margin-top:5px}.ai-note b{font-size:11px}.ai-note p{margin:3px 0 0;color:#7b8792;font-size:10px}.action-panel{overflow:visible}.feedback-launch{display:flex;align-items:center;gap:12px;margin:15px 17px 17px;padding:14px;border:1px solid #e0ece9;border-radius:14px;background:linear-gradient(135deg,#f7fbfa,#fff);text-decoration:none;color:var(--ss-ink);position:relative}.feedback-launch:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(15,23,42,.06)}.launch-icon{width:34px;height:34px;border-radius:10px;background:#e2f2ef;color:var(--ss-teal);display:grid;place-items:center;font-weight:900}.feedback-launch b,.feedback-launch small{display:block}.feedback-launch b{font-size:12px}.feedback-launch small{font-size:10px;color:#84909a;margin-top:3px}.launch-countdown{margin-left:auto;padding:7px 9px;border-radius:9px;background:#fff2f2;border:1px solid #f0d3d5;color:#b44e55;font-size:10px;white-space:nowrap}.side-stack{display:grid;gap:16px;align-content:start}.history{padding:0 17px 16px}.history-item{padding:13px 0;border-bottom:1px solid #eef2f4}.history-item b{display:block;font-size:12px}.history-item span,.history-item em{display:block;margin-top:5px;color:#526274;font-size:11px;line-height:1.55;font-style:normal}.history-item em{color:#82909d}.empty{color:#94a3b8;font-size:11px}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:15px 17px}.metric{background:#f8fafc;border-radius:12px;padding:12px;position:relative;min-height:104px}.metric b{display:block;font-size:21px}.metric span{font-size:10px;color:var(--ss-muted)}.four-matrix{grid-template-columns:repeat(2,1fr);gap:10px}.four-matrix .metric b{font-size:24px}.matrix-section-label{padding:16px 17px 2px;font-size:9px;font-weight:850;letter-spacing:.13em;color:#718096}.metric-tag{display:inline-block!important;font-size:8px!important;font-weight:850!important;letter-spacing:.1em;text-transform:uppercase;color:#8a96a0;margin-bottom:6px!important}.faculty-metric{background:linear-gradient(145deg,#f4fbf9,#f8fafc)}.candidate-metric{background:linear-gradient(145deg,#f7f8fc,#f9fafb)}.chart-card{margin:0 17px 16px;padding:16px;border:1px solid #edf1f3;border-radius:15px;background:#fbfcfd;text-align:center}.chart-title{display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;font-size:12px}.chart-title span{font-size:10px;color:var(--ss-muted)}.donut{width:150px;height:150px;border-radius:50%;margin:18px auto 12px;display:grid;place-items:center;background:conic-gradient(#e8edf0 0 100%);position:relative}.donut:after{content:'';position:absolute;width:94px;height:94px;border-radius:50%;background:#fbfcfd}.donut>div{position:relative;z-index:1}.donut strong{display:block;font-size:24px}.donut small{display:block;font-size:9px;color:var(--ss-muted)}.legend{display:flex;justify-content:center;gap:13px;flex-wrap:wrap;font-size:10px;color:#64748b}.dot{width:7px;height:7px;display:inline-block;border-radius:50%;margin-right:4px}.dot.full{background:#219288}.dot.partial{background:#9fd4cd}.dot.gap{background:#e8edf0}.report-list{padding:0 17px 17px}.report-item{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #eef2f4}.report-item>div:first-child b,.report-item>div:first-child span{display:block}.report-item>div:first-child b{font-size:12px}.report-item>div:first-child span{font-size:10px;color:#94a3b8;margin-top:2px}.report-score{text-align:right}.report-score strong{display:block;font-size:12px}.report-score span{font-size:9px;color:#94a3b8}.report-item p{grid-column:1/-1;margin:0;color:#64748b;font-size:10px;line-height:1.45}.topic-list{padding:0 17px}.topic-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid #eef2f4}.topic-row b{font-size:12px}.topic-row span{display:block;font-size:10px;color:#84919e;margin-top:3px}.weight-hint{font-size:10px;color:#7c8792;line-height:1.45;margin:-5px 0 12px}.student-matrix{border-top:1px solid var(--ss-line);margin-top:18px;padding:18px 17px 17px}.student-matrix-head{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.student-matrix-head b{font-size:12px}.student-matrix-head span{font-size:10px;color:#8a96a0}.student-summary{border:1px solid #edf1f3;border-radius:13px;overflow:hidden}.student-summary-row{display:grid;grid-template-columns:1fr 110px 110px;gap:12px;align-items:center;padding:11px 13px;border-bottom:1px solid #eef2f4}.student-summary-row>div b{font-size:11px}.student-summary-row>div small{display:block;font-size:9px;color:#94a3b8;margin-top:2px}.student-summary-row>strong{font-size:12px;text-align:right}.student-summary-row>strong small{display:block;font-size:8px;color:#94a3b8;font-weight:600}
.rating-panel{overflow:hidden}.rating-head{align-items:center}.rating-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.rating-table-head,.student-rating-row{display:grid;grid-template-columns:250px minmax(320px,1.55fr) minmax(320px,1.55fr) minmax(190px,.8fr);gap:20px;align-items:center}.rating-table-head{padding:11px 24px;background:#fafcfc;border-bottom:1px solid var(--ss-line);font-size:9px;font-weight:850;letter-spacing:.1em;text-transform:uppercase;color:#8a96a0}.student-rating-row{position:relative;padding:18px 24px;border-bottom:1px solid #eef2f4;min-width:1080px}.student-cell{padding:3px 0}.student-cell b{font-size:17px;line-height:1.25;display:block;letter-spacing:-.025em;color:#172033}.student-cell small{font-size:10px;color:#94a0ad;margin-top:5px;display:block}.student-index{display:none}.note-input{width:100%;height:44px;border:1px solid var(--ss-line);border-radius:12px;padding:0 12px;outline:none;font-size:11px;background:#fff}.score-picker{--score-hue:140;min-width:0}.score-readout{height:38px;display:flex;align-items:baseline;justify-content:center;gap:4px;margin-bottom:8px}.score-readout span{font-size:9px;font-weight:750;color:#8995a1;text-transform:uppercase;letter-spacing:.07em}.score-readout strong{font-size:21px;line-height:1;font-weight:850;color:hsl(var(--score-hue) 45% 45%);min-width:32px;text-align:center;transition:color .22s ease,transform .22s ease}.score-readout small{font-size:9px;color:#a0aab4}.score-rail{position:relative;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;padding:5px calc(50% - 25px) 8px;touch-action:pan-x}.score-rail::-webkit-scrollbar{display:none}.score-track{display:flex;align-items:center;gap:7px;width:max-content}.score-step{position:relative;flex:0 0 50px;height:38px;border:1px solid #e4e9ed;border-radius:11px;background:#f8fafb;color:#6c7885;font-size:11px;font-weight:800;cursor:pointer;scroll-snap-align:center;box-shadow:0 1px 0 rgba(15,23,42,.02);transition:transform .18s ease,background .2s ease,border-color .2s ease,color .2s ease,box-shadow .2s ease}.score-step:before{content:'';position:absolute;left:50%;top:-5px;width:1px;height:4px;background:#cbd4db}.score-step:hover{transform:translateY(-2px);border-color:#b9c9d0;box-shadow:0 6px 14px rgba(15,23,42,.07)}.score-step.selected{background:hsl(var(--score-hue) 42% 63%);border-color:hsl(var(--score-hue) 42% 55%);color:#fff;transform:translateY(-2px) scale(1.04);box-shadow:0 7px 16px hsl(var(--score-hue) 35% 50% / .22)}.score-endpoints{display:flex;justify-content:space-between;padding:2px 5px 0;color:#a0aab4;font-size:8px;font-weight:650}.score-endpoints span:last-child{color:#6f9a82}.rating-footer{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 20px;background:#fbfcfc}.rating-footer b{font-size:12px}.rating-footer p{margin:3px 0 0;font-size:10px;color:#8a96a0}.student-rating-history{padding:0 20px 18px}.student-rating-history article{display:grid;grid-template-columns:1fr auto auto;gap:15px;align-items:center;padding:12px 0;border-bottom:1px solid #eef2f4}.student-rating-history article b{font-size:11px}.student-rating-history article small{display:block;font-size:9px;color:#94a3b8;margin-top:2px}.student-rating-history article span{font-size:10px;color:#64748b}.saved-score{font-weight:800;font-size:12px;padding:8px 10px;border-radius:10px;text-align:center}.saved-score small{display:block;color:inherit;opacity:.65;font-size:8px}.rating-saved.rating-1{background:#fde9e9;color:#c44f55}.rating-saved.rating-2{background:#fde9e8;color:#c85b55}.rating-saved.rating-3{background:#fdf0e8;color:#c77a55}.rating-saved.rating-4{background:#fcf1e7;color:#b98255}.rating-saved.rating-5{background:#faf4e7;color:#9d8557}.rating-saved.rating-6{background:#f1f5e7;color:#748c5c}.rating-saved.rating-7{background:#eaf5e8;color:#5f9665}.rating-saved.rating-8{background:#e3f5e9;color:#468e61}.rating-saved.rating-9{background:#ddf5e9;color:#31865f}.rating-saved.rating-10{background:#d9f4e7;color:#237b56}.locked-row{background:#fbfcfc}
.faculty-permission{display:block;font-style:normal;font-size:9px;font-weight:750;margin-top:5px}.faculty-permission.enabled{color:#3f8f72}.faculty-permission.disabled{color:#a26a6a}.session-faculty{display:inline-block;margin-top:3px;font-size:10px;font-weight:750;color:#4f8b82;max-width:150px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.student-cell{padding-left:26px}.student-cell b{font-size:19px!important;font-weight:800;line-height:1.25;letter-spacing:-.015em}.student-cell small{font-size:10px}.student-rating-row{grid-template-columns:210px minmax(300px,1fr) minmax(300px,1fr) 180px!important;min-height:145px!important;align-items:center}.disabled-row .student-cell,.disabled-row .student-index{opacity:.9}.rating-unavailable{height:44px;border:1px solid #edf1f2;border-radius:14px;display:flex;align-items:center;justify-content:center;color:#a8b2ba;background:#fbfcfc;font-size:18px;font-weight:700}.admin-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px;margin-bottom:18px}.admin-panel{min-width:0}.admin-form{padding:18px}.admin-form .btn{width:100%}.admin-panel>p.admin-note{margin:14px 18px 18px;padding:13px 14px;border:1px solid #e7efed;background:#fbfdfc;border-radius:12px;box-sizing:border-box;width:auto;max-width:none;height:auto;overflow-wrap:anywhere}.admin-note b,.admin-note span{display:block}.admin-note b{font-size:10px}.admin-note span{margin-top:4px;font-size:10px;line-height:1.5;color:#7c8792}.admin-select-row{padding:16px 18px 4px}.session-editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:12px 18px 0}.session-editor-grid>b,.session-editor-grid>div:first-child b{font-size:14px}.session-editor-grid small{display:block;color:#84909b;font-size:10px;margin-top:4px}.mini-label{display:block;font-size:9px;font-weight:800;color:#8995a0;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.session-editor-actions{display:flex;align-items:center;gap:10px;padding:16px 18px 18px}.session-editor-actions span{font-size:10px;color:#8a96a0;line-height:1.4}.admin-rating-controls{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:12px;padding:16px 18px 8px;align-items:end}.rating-admin-status{font-size:10px;color:#7d8994;padding-bottom:11px}.admin-ratings{border-top:1px solid var(--ss-line);overflow-x:auto}.admin-rating-row{display:grid;grid-template-columns:minmax(190px,1fr) minmax(320px,1.4fr) minmax(320px,1.4fr) 190px;gap:16px;align-items:center;min-width:1080px;padding:16px 18px;border-bottom:1px solid #eef2f4}.admin-student b{font-size:14px;display:block}.admin-student small{font-size:9px;color:#94a0ad;display:block;margin-top:4px}.rating-admin-row .admin-note{width:100%;height:42px;border:1px solid var(--ss-line);border-radius:11px;padding:0 11px;outline:none;font-size:10px}.rating-admin-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:#fbfcfc}.rating-admin-footer span{font-size:10px;font-weight:750;color:#6d7a86}.admin-score-picker .score-readout{height:32px}.admin-score-picker .score-step{flex-basis:46px}.admin-app .score-rail{padding-left:calc(50% - 23px);padding-right:calc(50% - 23px)}
/* Horizontal Apple-style wheel: centered selection, quiet neighbors, no button grid. */
.score-wheel{position:relative}.score-wheel:before,.score-wheel:after{content:'';position:absolute;top:3px;bottom:8px;width:48px;z-index:2;pointer-events:none}.score-wheel:before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}.score-wheel:after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}.wheel-center{position:absolute;left:50%;top:2px;bottom:8px;width:58px;transform:translateX(-50%);border-left:1px solid rgba(33,146,136,.16);border-right:1px solid rgba(33,146,136,.16);border-radius:14px;background:rgba(33,146,136,.035);pointer-events:none;z-index:1}.score-rail{height:56px;padding-top:7px!important;padding-bottom:7px!important;scroll-snap-type:x mandatory;scroll-padding-inline:50%;mask-image:linear-gradient(90deg,transparent 0,#000 9%,#000 91%,transparent 100%)}.score-track{gap:0;align-items:center}.score-step{flex:0 0 58px;height:42px;border:0!important;background:transparent!important;box-shadow:none!important;border-radius:0!important;color:#9aa5ae;font-size:13px;font-weight:650;opacity:.38;transform:scale(.9);scroll-snap-align:center;transition:transform .16s ease,opacity .16s ease,color .16s ease}.score-step:before{display:none}.score-step:hover{transform:scale(.98);box-shadow:none}.score-step.selected{opacity:1;color:hsl(var(--score-hue) 45% 42%);transform:scale(1.28);text-shadow:0 4px 12px hsl(var(--score-hue) 35% 50% / .18)}.score-readout{margin-bottom:4px}.score-readout strong{font-size:24px}.score-scale{display:flex;justify-content:space-between;padding:0 9px;color:#a1abb4;font-size:8px;font-weight:750}.score-scale span:nth-child(2){opacity:.5}.score-picker{--score-hue:140}
@media(max-width:850px){.admin-grid{grid-template-columns:1fr}.faculty-item{align-items:flex-start}.faculty-disable{min-width:0;max-width:210px}.admin-rating-controls{grid-template-columns:1fr 1fr}.rating-admin-status{grid-column:1/-1;padding:0 0 4px}.session-editor-grid{grid-template-columns:1fr}.session-editor-actions{align-items:flex-start;flex-direction:column}.admin-rating-row{grid-template-columns:175px 290px 290px 160px}.score-step{flex-basis:58px}.score-rail{height:58px}.score-wheel:before,.score-wheel:after{width:36px}}
/* Final admin/faculty layout polish */
.admin-app .admin-panel:first-child{overflow:visible}.admin-app .admin-panel:first-child .panel-head{padding-left:24px;padding-right:24px}.admin-app .admin-form{padding:20px 24px 22px}.admin-app .admin-form .form-row{margin-bottom:14px}.admin-app .admin-form .form-row input{min-height:48px;font-size:15px}.admin-app .admin-form .btn{min-height:48px;font-size:13px}.admin-app .faculty-list{margin:0 24px;padding-top:8px}.admin-app .faculty-item{padding:20px 4px;min-height:92px}.admin-app .faculty-item b{font-size:16px;line-height:1.3}.admin-app .faculty-item span{font-size:12px;margin-top:4px}.admin-app .faculty-permission{font-size:10px!important;margin-top:6px}.admin-app .faculty-disable{min-height:44px;font-size:11px}.admin-app .admin-note{margin:14px 24px 22px;padding:15px 16px;border-radius:14px}.admin-app .admin-note b{font-size:12px}.admin-app .admin-note span{font-size:11px;line-height:1.55}.admin-app .admin-panel:first-child{min-height:100%}
@media(max-width:850px){.admin-app .faculty-list{margin:0 18px}.admin-app .admin-form{padding-left:18px;padding-right:18px}.admin-app .admin-panel:first-child .panel-head{padding-left:18px;padding-right:18px}.admin-app .admin-note{margin-left:18px;margin-right:18px}.admin-app .faculty-item{padding-left:4px;padding-right:4px}}
@media(max-width:520px){.admin-app .faculty-item{align-items:center;padding-top:18px;padding-bottom:18px}.admin-app .faculty-item>div{max-width:calc(100% - 165px)}.admin-app .faculty-disable{max-width:165px;min-width:145px}.admin-app .admin-note{margin-left:14px;margin-right:14px}
}
/* Admin access: use the open left-panel space for a clean two-column permission area. */
@media(min-width:851px){.admin-app .admin-grid>.admin-panel:first-child{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-content:start}.admin-app .admin-grid>.admin-panel:first-child>.panel-head{grid-column:1/-1}.admin-app .admin-grid>.admin-panel:first-child>#facultyForm,.admin-app .admin-grid>.admin-panel:first-child>#facultyList,.admin-app .admin-grid>.admin-panel:first-child>.admin-note:first-of-type{grid-column:2}.admin-app .admin-grid>.admin-panel:first-child>.access-divider,.admin-app .admin-grid>.admin-panel:first-child>.access-subsection{grid-column:1}.admin-app .admin-grid>.admin-panel:first-child>.access-divider{width:1px;height:auto;min-height:100%;margin:0;background:#eef2f4;justify-self:end}.admin-app .admin-grid>.admin-panel:first-child>.access-subsection{padding:0 24px 22px;border-left:0}.admin-app .admin-grid>.admin-panel:first-child>.admin-note:first-of-type{margin-top:14px}}
@media(max-width:850px){.admin-app .admin-grid>.admin-panel:first-child{display:block}.admin-app .admin-grid>.admin-panel:first-child>.access-divider{height:1px;width:auto;margin:20px 18px}.admin-app .admin-grid>.admin-panel:first-child>.access-subsection{padding-left:18px;padding-right:18px}}
/* Compact the deadline banner on phones: copy gets full width, timer and action share one tidy row. */
@media(max-width:520px){.faculty-action-hero{display:grid!important;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"copy copy" "timer link";column-gap:10px;row-gap:9px;padding:12px 13px;align-items:center}.faculty-action-hero .action-pulse{position:absolute;left:13px;top:17px}.faculty-action-hero .faculty-action-copy{grid-area:copy;padding-left:17px;min-width:0}.faculty-action-hero .faculty-action-copy b{font-size:12px;line-height:1.25}.faculty-action-hero .faculty-action-copy small{font-size:10px;line-height:1.4}.faculty-action-hero .faculty-action-timer{grid-area:timer;margin:0;padding:6px 9px;justify-self:start}.faculty-action-hero .faculty-action-timer strong{font-size:12px}.faculty-action-hero .faculty-action-timer span{font-size:7px}.faculty-action-hero a{grid-area:link;margin:0;justify-self:end;font-size:10px}.admin-app .admin-access-item>div{max-width:calc(100% - 165px)}}
/* Final admin layout: Faculty stays left; Session Ownership stays right with Admin Access directly below it. */
@media(min-width:851px){.admin-app .admin-grid>.admin-panel:first-child{display:block}.admin-app .admin-grid>.admin-panel:first-child .panel-head,.admin-app .admin-grid>.admin-panel:nth-child(2) .panel-head{padding-left:24px;padding-right:24px}.admin-app .admin-grid>.admin-panel:nth-child(2) .admin-access-block{margin:22px 24px 24px;padding:20px 0 0;border-top:1px solid #e9eef0}.admin-app .admin-access-block h4{margin:0 0 5px;font-size:18px;color:#172033}.admin-app .admin-access-block .section-help{margin:0 0 14px}.admin-app .admin-access-block .admin-form{padding:0;max-width:none}.admin-app .admin-access-block .admin-form .form-row{margin-bottom:12px}.admin-app .admin-access-block .admin-form .btn{width:100%}.admin-app .admin-access-block .admin-list{margin-top:14px}.admin-app .admin-access-block .admin-note{margin:14px 0 0}.admin-app .admin-access-item{padding:16px 0}.admin-app .admin-access-item>div{min-width:0}.admin-app .admin-access-item b{font-size:16px!important}.admin-app .admin-access-item span{display:block;font-size:12px;margin-top:4px;color:#64748b}.admin-app .admin-access-item .faculty-disable{background:#fff2f2;border-color:#f2cfd2;color:#b44f57}.admin-app .admin-access-item .current-admin-button{background:#f5f7f8;border-color:#e2e7ea;color:#7b8794;cursor:default}.access-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap}.access-delete{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #f1c9cd;border-radius:10px;background:#fff1f2;color:#c24f59;font-size:16px;cursor:pointer;transition:.18s ease}.access-delete:hover{background:#ffe4e7;border-color:#e7aeb4;transform:translateY(-1px)}.access-delete:active{transform:scale(.96)}@media(max-width:520px){.access-actions{gap:6px}.access-delete{width:36px;height:36px}}}
@media(max-width:850px){.admin-app .admin-access-block{margin:20px 18px 22px;padding-top:20px;border-top:1px solid #e9eef0}.admin-app .admin-access-block .admin-form{padding:0}.admin-app .admin-access-block h4{font-size:17px}.admin-app .admin-access-item b{font-size:15px!important}.admin-app .admin-access-item span{display:block;font-size:11px;margin-top:4px}}
/* Keep both access lists visually consistent: name first, email slightly smaller underneath. */
.admin-app .faculty-item>div{min-width:0}.admin-app .faculty-item b{display:block;font-size:16px!important}.admin-app .faculty-item span{display:block;font-size:12px!important;margin-top:4px;color:#64748b}.admin-app .faculty-item .faculty-permission{display:block}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes pulse{0%,100%{box-shadow:0 0 0 5px rgba(198,90,97,.08)}50%{box-shadow:0 0 0 9px rgba(198,90,97,.02)}}@keyframes slideUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.app-shell{padding:22px 14px 44px}.topbar{margin-bottom:28px}.hero h2{font-size:26px}.stats{grid-template-columns:repeat(2,1fr)}.teaching-grid,.curriculum-grid{grid-template-columns:1fr!important}.metric-grid{grid-template-columns:repeat(2,1fr)}.confirm-box,.rating-footer{align-items:stretch;flex-direction:column}.confirm-box .btn,.rating-footer .btn{width:100%}.rating-table-head,.student-rating-row{grid-template-columns:190px 300px 300px 160px;min-width:1010px}.student-rating-row{padding:18px 16px}.rating-table-head{padding:10px 16px}.student-cell b{font-size:16px}.month-summary{grid-template-columns:1fr 1fr}.attendance-options{grid-template-columns:1fr}.four-matrix{grid-template-columns:1fr 1fr}}
/* Exam Corner */
.exam-hero{align-items:center}.exam-total-chip{min-width:120px;padding:16px 18px;border:1px solid #dcebe7;background:linear-gradient(145deg,#f5fbf9,#fff);border-radius:18px;text-align:center}.exam-total-chip strong{display:block;font-size:34px;line-height:1;font-weight:850;color:var(--ss-teal)}.exam-total-chip span{font-size:9px;color:#7e8b96;text-transform:uppercase;letter-spacing:.08em}.exam-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.exam-stat{padding:16px;border:1px solid var(--ss-line);background:#fff;border-radius:16px;box-shadow:0 5px 18px rgba(15,23,42,.035)}.exam-stat span,.exam-stat small{display:block;color:#7d8994;font-size:10px}.exam-stat strong{display:block;font-size:26px;margin:6px 0 3px}.exam-select-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;padding:18px 20px 20px;align-items:end}.exam-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.exam-content{padding:0 18px 18px}.exam-status{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#8995a0;background:#f5f7f8;border:1px solid #e8ecef;border-radius:999px;padding:7px 10px}.exam-status.pending{color:#9a6b38;background:#fff7ea;border-color:#f2dfbd}.exam-status.unlocked,.exam-status.done{color:#2d8066;background:#edf9f5;border-color:#d5eee5}.exam-status.locked{color:#9a6870;background:#fff4f4;border-color:#f0d7d9}.candidate-line{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px;padding:13px;border:1px solid #e9eff0;background:#fbfcfc;border-radius:13px}.candidate-line b{display:block;font-size:14px}.candidate-line small{display:block;margin-top:3px;color:#8a96a0;font-size:9px}.complete-badge{font-size:9px;font-weight:800;color:#32825f;background:#e6f5ec;border-radius:999px;padding:7px 9px}.stand-score-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.stand-score-grid label{display:block;padding:15px;border:1px solid #e6edef;border-radius:14px;background:#fff}.stand-score-grid label>span{display:block;min-height:32px;font-size:11px;font-weight:750}.stand-score-grid small{display:block;margin-top:7px;color:#8c98a3;font-size:9px}.number-control{display:grid;grid-template-columns:38px 1fr 38px;align-items:center;gap:8px;margin-top:12px}.number-control button{height:38px;border:1px solid #e1e8eb;border-radius:11px;background:#f7faf9;font-size:18px;cursor:pointer}.number-control strong{text-align:center;font-size:28px;color:var(--ss-teal)}.lock-state{min-height:190px;display:grid;place-items:center;text-align:center;padding:25px;border:1px dashed #dfe7e9;border-radius:15px;background:#fafcfc;color:#687783}.lock-state b{display:block;font-size:13px;color:#566775}.lock-state span{display:block;max-width:300px;font-size:10px;line-height:1.5;margin-top:4px}.unlock-banner,.submitted-banner{display:flex;align-items:center;gap:12px;padding:15px;border:1px solid #dcece8;background:linear-gradient(145deg,#f4fbf8,#fff);border-radius:14px}.unlock-banner>span{width:34px;height:34px;border-radius:10px;background:#dff3e9;color:#31835f;display:grid;place-items:center;font-weight:900}.unlock-banner div{flex:1}.unlock-banner b,.unlock-banner small,.submitted-banner b,.submitted-banner span{display:block}.unlock-banner b,.submitted-banner b{font-size:12px}.unlock-banner small,.submitted-banner span{font-size:9px;color:#84909b;margin-top:3px}.written-note{margin-bottom:14px;padding:11px 13px;border:1px solid #e7efed;background:#f8fbfa;border-radius:12px;font-size:10px;color:#637783}.written-question{padding:16px 0;border-bottom:1px solid #edf1f3}.written-question b{display:block;font-size:12px;line-height:1.5}.written-question small{display:block;color:#8a96a0;font-size:9px;margin-top:4px}.question-index{font-size:9px;font-weight:850;color:var(--ss-teal);letter-spacing:.08em;margin-bottom:5px}.written-options{display:grid;gap:7px;margin-top:11px}.written-options label{display:flex;gap:9px;align-items:flex-start;padding:10px 11px;border:1px solid #e5ebed;border-radius:11px;background:#fff;font-size:10px;cursor:pointer}.written-options input{margin-top:2px}.written-question textarea{width:100%;margin-top:10px;border:1px solid var(--ss-line);border-radius:12px;padding:12px;resize:vertical;outline:none}.final-score-card{text-align:center;padding:24px;border:1px solid #dcece8;background:linear-gradient(145deg,#f4fbf8,#fff);border-radius:18px}.final-score-card>small{display:block;font-size:9px;letter-spacing:.12em;color:#7d8b95;font-weight:850}.final-score-card>strong{display:inline-block;font-size:62px;line-height:1;margin:8px 0;color:var(--ss-teal)}.final-score-card>span{font-size:13px;color:#87949e}.final-breakdown{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.final-breakdown span{padding:10px;background:#fff;border:1px solid #e7edef;border-radius:10px;font-size:9px;color:#7c8994}.final-breakdown b{display:block;color:#24323d;font-size:11px;margin-top:4px}.descriptive-grade{display:grid;grid-template-columns:1fr 100px;gap:15px;padding:15px 0;border-bottom:1px solid #edf1f3}.descriptive-grade b{font-size:11px;line-height:1.45}.descriptive-grade p{font-size:10px;color:#5e6d78;line-height:1.55;margin:7px 0 0;white-space:pre-wrap}.descriptive-grade label{font-size:9px;font-weight:800;color:#7d8994}.descriptive-grade input{width:100%;margin-top:6px;padding:10px;border:1px solid var(--ss-line);border-radius:10px}.exam-attempt-list{padding:0 18px 18px}.exam-attempt-row{width:100%;display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;text-align:left;padding:13px 4px;border:0;border-bottom:1px solid #edf1f3;background:transparent;cursor:pointer}.exam-attempt-row b{font-size:11px}.exam-attempt-row small{display:block;font-size:9px;color:#94a0aa;margin-top:3px}.exam-attempt-row>strong{font-size:13px;color:#26333e}.attempt-status{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:#7d8994}.attempt-status.complete{color:#2f8061}.question-bank-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:15px 18px}.question-bank-summary>div{padding:12px;border:1px solid #e7edef;background:#fafcfc;border-radius:12px}.question-bank-summary strong,.question-bank-summary span{display:block}.question-bank-summary strong{font-size:20px}.question-bank-summary span{font-size:9px;color:#8995a0;margin-top:3px}.question-bank-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:15px 18px;border-top:1px solid #edf1f3}.question-bank-row>div:first-child{display:flex;gap:10px;align-items:flex-start;min-width:0}.q-number{width:25px;height:25px;display:grid;place-items:center;border-radius:8px;background:#edf7f4;color:var(--ss-teal);font-size:9px;font-weight:850;flex:0 0 auto}.question-bank-row b{font-size:11px;line-height:1.45;display:block}.question-bank-row small{display:block;color:#8995a0;font-size:8px;margin-top:4px}.q-bank-actions{display:flex;gap:7px}.q-option-editor{display:grid;grid-template-columns:1fr auto 34px;gap:8px;align-items:center;margin:8px 0}.q-option-editor input[type=text],.q-option-editor>input:first-child{min-height:40px;border:1px solid var(--ss-line);border-radius:10px;padding:0 10px}.q-option-editor label{font-size:9px;white-space:nowrap}.q-option-editor button{width:34px;height:34px;border:1px solid #eed7d9;background:#fff5f5;color:#a95a62;border-radius:9px}.exam-question-modal{max-width:650px;max-height:90vh;overflow:auto}.exam-question-modal textarea{width:100%;border:1px solid var(--ss-line);border-radius:12px;padding:12px;resize:vertical}.question-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.exam-app .form-row>span,.exam-question-modal .form-row>label{font-size:10px;font-weight:750;color:#6f7e89}.exam-app .form-row input,.exam-app .form-row select{margin-top:5px}.full-btn{width:100%;margin-top:14px}
@media(max-width:850px){.exam-stats{grid-template-columns:1fr 1fr}.exam-grid{grid-template-columns:1fr}.exam-select-grid{grid-template-columns:1fr}.exam-select-grid .btn{width:100%}.question-bank-row{align-items:flex-start}.q-bank-actions{flex-direction:column}.final-breakdown{grid-template-columns:1fr}.stand-score-grid{grid-template-columns:1fr}}
@media(max-width:520px){.exam-app{padding-left:10px;padding-right:10px}.exam-hero{align-items:flex-start;flex-direction:column}.exam-total-chip{width:100%}.exam-stats{gap:8px}.exam-stat{padding:13px}.exam-stat strong{font-size:22px}.exam-attempt-row{grid-template-columns:1fr auto}.exam-attempt-row>strong{grid-column:2;grid-row:1}.attempt-status{grid-column:1;grid-row:2}.question-bank-summary{grid-template-columns:1fr}.question-bank-row{display:block}.q-bank-actions{flex-direction:row;margin-top:10px}.question-settings-grid{grid-template-columns:1fr}}
@media(max-width:520px){.faculty-item{gap:10px;padding-left:2px;padding-right:2px}.faculty-item>div{max-width:calc(100% - 185px)}.faculty-item .faculty-disable{max-width:175px}.faculty-item{gap:10px}.faculty-disable{font-size:10px;padding:9px 10px;max-width:175px}.app-shell{padding:18px 10px 40px}.topbar .btn{padding:9px 11px}.brand h1{font-size:17px}.hero{gap:14px}.hero h2{font-size:23px}.hero p{font-size:12px}.panel{border-radius:18px}.panel-head{padding:15px}.session-pill{width:100%;text-align:center}.faculty-action{align-items:flex-start;flex-wrap:wrap}.faculty-action-timer{margin-left:0}.faculty-action a{margin-left:auto}.deadline-card{align-items:flex-start}.rating-table-head,.student-rating-row{grid-template-columns:165px 285px 285px 150px;min-width:915px;gap:12px}.rating-table-head{padding:10px 14px}.student-rating-row{padding:20px 14px;min-height:154px}.student-cell{align-self:start;padding-top:10px}.student-cell b{font-size:17px;line-height:1.3}.student-cell small{font-size:10px;margin-top:6px}.score-step{flex-basis:54px;height:42px;font-size:11px;border-radius:12px}.score-track{gap:8px}.score-readout{height:36px;margin-bottom:7px}.score-readout strong{font-size:22px}.score-rail{padding-left:calc(50% - 27px);padding-right:calc(50% - 27px)}.score-endpoints{font-size:8px;padding-top:3px}.note-input{height:42px}.feedback-launch{margin:13px}.student-rating-history{padding:0 15px 15px}.student-summary-row{grid-template-columns:1fr 86px 86px;gap:8px}}
/* Exam Corner completion polish */
.exam-control-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,.8fr);gap:18px;margin-bottom:18px}.exam-top-section{position:relative;overflow:hidden;transition:background .45s cubic-bezier(.22,1,.36,1),border-color .45s ease,box-shadow .45s ease,transform .45s cubic-bezier(.22,1,.36,1)}.exam-top-section:before,.exam-top-section:after{content:"";position:absolute;pointer-events:none;border-radius:999px;transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .5s ease}.exam-top-section:before{width:180px;height:180px;right:-85px;top:-90px;background:#219288;opacity:.08}.exam-top-section:after{width:70px;height:70px;right:38px;bottom:-45px;background:#053390;opacity:.07}.exam-top-section:hover{background:linear-gradient(135deg,#fff 0%,#f1faf7 100%);border-color:#b9ddd5;box-shadow:0 20px 50px rgba(33,146,136,.11);transform:translateY(-2px)}.exam-top-section:hover:before{transform:scale(2.1);opacity:.13}.exam-top-section:hover:after{transform:translate(-15px,-8px) scale(1.25);opacity:.1}.exam-select-grid-staff{grid-template-columns:1fr 1fr auto}.candidate-admin-strip{margin:0 20px 12px;padding:13px 14px;border:1px solid #dcebe7;border-radius:14px;background:#f7fbfa;display:flex;align-items:center;justify-content:space-between;gap:15px}.candidate-admin-strip>div:first-child b,.candidate-admin-strip>div:first-child small{display:block}.candidate-admin-strip b{font-size:11px}.candidate-admin-strip small{font-size:9px;color:#84919b;margin-top:3px}.candidate-admin-fields{display:flex;gap:8px;align-items:center}.candidate-admin-fields input{height:40px;border:1px solid #dbe5e6;border-radius:10px;padding:0 10px;min-width:155px;background:#fff}.faculty-date-note{margin:0 20px 18px;padding:10px 12px;border-radius:11px;background:#f8fbfa;color:#778690;font-size:9px;border:1px solid #e7efed}.faculty-date-note strong{color:#2c7f70}.settings-form{padding:0 20px 20px}.settings-form .control{margin-top:6px}.toggle-line{display:flex;gap:10px;align-items:flex-start;padding:12px;border:1px solid #e4eceb;border-radius:12px;background:#fafcfc;margin:12px 0}.toggle-line input{margin-top:2px;accent-color:#219288}.toggle-line b,.toggle-line small{display:block}.toggle-line b{font-size:10px}.toggle-line small{font-size:9px;color:#84919a;line-height:1.45;margin-top:3px}.student-ready-chip{font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.08em;color:#2c8067;background:#e7f5ef;border-radius:999px;padding:8px 10px;white-space:nowrap}.student-access-note,.staff-hidden-score,.score-inline{margin-top:12px;padding:11px 13px;border-radius:11px;background:#fafcfc;border:1px solid #e7edef;color:#7a8891;font-size:9px;line-height:1.5}.staff-hidden-score b{color:#52636d}.scorecard-panel{scroll-margin-top:20px}.scorecard-summary{display:grid;grid-template-columns:1.3fr repeat(4,1fr);gap:10px;padding:18px}.scorecard-total,.score-metric{border:1px solid #e3ecea;border-radius:14px;background:#fafcfc;padding:14px}.scorecard-total{background:linear-gradient(145deg,#eef9f5,#fff)}.scorecard-total span,.score-metric span,.scorecard-total small,.score-metric small{display:block;color:#7e8b95;font-size:9px}.scorecard-total strong{display:inline-block;font-size:38px;color:#219288;line-height:1;margin:7px 0}.scorecard-total small{display:inline-block;margin-left:4px}.score-metric strong{display:block;font-size:24px;color:#24333c;margin:7px 0 1px}.scorecard-section{padding:0 18px 20px}.scorecard-section-head{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e7edef}.scorecard-section-head b{font-size:12px}.scorecard-section-head span{font-size:9px;color:#89959e}.review-question{padding:16px 0;border-bottom:1px solid #edf1f3}.review-q-head{display:grid;grid-template-columns:32px 1fr auto;gap:10px;align-items:start}.review-q-head>span{width:28px;height:28px;border-radius:9px;background:#edf7f4;color:#219288;display:grid;place-items:center;font-size:9px;font-weight:850}.review-q-head b{font-size:11px;line-height:1.5}.review-q-head strong{font-size:11px;color:#27363e}.review-options{display:grid;gap:6px;margin:10px 0 0 42px}.review-option{display:grid;grid-template-columns:18px 1fr auto;gap:8px;align-items:center;padding:9px 10px;border:1px solid #e5ebed;border-radius:10px;background:#fff}.review-option.selected{border-color:#b9dcd4;background:#f7fcfa}.review-option.correct small{color:#2f8468}.review-option.wrong small{color:#9b7075}.review-option>b{font-size:10px;font-weight:650}.review-option>span{width:18px;height:18px;border-radius:6px;display:grid;place-items:center;background:#f2f5f5;font-size:9px}.review-option.correct>span{background:#dff3e9;color:#31825f}.review-option.selected.wrong>span{background:#fae8ea;color:#b65a64}.review-option small{font-size:8px}.review-answer{margin:10px 0 0 42px;padding:12px;border:1px solid #e7edef;border-radius:11px;background:#fafcfc}.review-answer span,.review-answer small{display:block;font-size:8px;color:#8a969f;text-transform:uppercase;letter-spacing:.06em}.review-answer p{white-space:pre-wrap;font-size:10px;line-height:1.6;color:#4e5e68;margin:7px 0}.student-exam-shell{min-height:100vh;background:#f7faf9;padding:22px 18px 50px;color:#172033}.student-topbar{max-width:1040px;margin:0 auto 24px;display:flex;align-items:center;justify-content:space-between}.student-hero,.student-content,.student-alert{max-width:1040px;margin-left:auto;margin-right:auto}.student-hero{padding:28px 30px;border:1px solid #deebe8;border-radius:24px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:24px;box-shadow:0 10px 35px rgba(20,55,48,.05)}.student-hero h2{margin:7px 0;font-size:30px}.student-hero p{margin:0;color:#778690;font-size:13px}.student-mark-chip{width:86px;height:86px;border-radius:24px;background:#eaf7f3;border:1px solid #d6eee7;display:grid;place-items:center;text-align:center;flex:0 0 auto}.student-mark-chip strong{font-size:30px;color:#219288;line-height:1}.student-mark-chip span{font-size:8px;color:#71817d;text-transform:uppercase;letter-spacing:.1em}.student-content{margin-top:18px}.student-status-card,.student-ready-card,.student-complete-card,.performance-summary,.exam-paper-head,.student-question,.student-submit-bar{border:1px solid #deebe8;background:#fff;border-radius:18px}.student-status-card,.student-ready-card{padding:24px;display:flex;align-items:center;gap:18px}.status-icon,.ready-icon,.complete-mark{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#e5f4ee;color:#2b8065;font-size:20px;font-weight:900;flex:0 0 auto}.student-status-card.locked{background:#fbfcfc}.student-status-card h3,.student-ready-card h3,.student-complete-card h3{margin:5px 0;font-size:18px}.student-status-card p,.student-ready-card p,.student-complete-card p{margin:0;color:#788792;font-size:11px;line-height:1.5}.ready-copy{flex:1}.student-alert{margin-top:12px;padding:11px 14px;border-radius:12px;background:#fff4f4;border:1px solid #f0d9db;color:#a6535c;font-size:11px}.exam-paper-head{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:18px;position:sticky;top:10px;z-index:5;box-shadow:0 12px 30px rgba(15,40,35,.07)}.exam-paper-head h3{margin:4px 0;font-size:16px}.exam-paper-head p{margin:0;color:#81909a;font-size:10px}.exam-timer{min-width:112px;padding:10px 12px;border-radius:13px;background:#172b31;color:#fff;text-align:center}.exam-timer span{display:block;font-size:7px;letter-spacing:.12em;opacity:.65}.exam-timer strong{display:block;font-size:22px;margin-top:3px;letter-spacing:.04em}.student-question-list{margin-top:12px}.student-question{padding:22px;margin-bottom:10px}.question-number{font-size:9px;color:#219288;font-weight:850;letter-spacing:.1em}.student-question h4{font-size:13px;line-height:1.55;margin:7px 0}.student-question>p{font-size:9px;color:#8a969f;margin:0 0 11px}.student-options{display:grid;gap:7px}.student-options label{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1px solid #e5ebed;border-radius:11px;cursor:pointer;transition:.18s ease}.student-options label:hover{border-color:#a9d3ca;background:#f7fbfa}.student-options input{margin-top:2px;accent-color:#219288}.student-options span{font-size:10px;line-height:1.45}.student-question textarea{width:100%;box-sizing:border-box;border:1px solid #dce5e7;border-radius:12px;padding:12px;font:inherit;font-size:11px;resize:vertical;outline:none}.student-submit-bar{padding:15px 18px;display:flex;align-items:center;justify-content:space-between;gap:16px;position:sticky;bottom:10px;box-shadow:0 14px 35px rgba(15,40,35,.08)}.student-submit-bar b,.student-submit-bar span{display:block}.student-submit-bar b{font-size:11px}.student-submit-bar span{font-size:9px;color:#84919a;margin-top:3px}.student-complete-card{text-align:center;padding:40px 24px}.complete-mark{margin:0 auto 16px}.privacy-note{max-width:560px;margin:18px auto 0;padding:12px 14px;border:1px solid #e5eceb;border-radius:12px;background:#fafcfc;color:#7b8992;font-size:9px;line-height:1.5}.performance-summary{margin-top:14px;padding:20px}.performance-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.performance-head h3{font-size:16px;margin:5px 0}.privacy-pill{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:#6c7d85;background:#f2f6f5;border-radius:999px;padding:7px 9px}.performance-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.performance-card{padding:13px;border:1px solid #e5eceb;border-radius:13px}.performance-card b,.performance-card span{display:block}.performance-card b{font-size:10px}.performance-card span{font-size:9px;margin-top:5px;color:#74838c}.performance-bar{height:7px;border-radius:999px;background:#edf2f1;overflow:hidden;margin-bottom:10px}.performance-bar i{display:block;height:100%;width:42%;border-radius:999px}.performance-card.good .performance-bar i{width:68%}.performance-card.excellent .performance-bar i{width:88%}.performance-card.developing .performance-bar i{width:42%}.performance-card.pending .performance-bar i{width:15%}.performance-card.excellent{background:#f3fbf7;border-color:#d8eee4}.performance-card.good{background:#f8fbf9}.performance-card.developing{background:#fffaf3;border-color:#f0e4cf}.performance-card.pending{background:#fafcfc}
@media(max-width:900px){.exam-control-grid{grid-template-columns:1fr}.scorecard-summary{grid-template-columns:repeat(2,1fr)}.scorecard-total{grid-column:1/-1}.performance-grid{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.exam-select-grid-staff{grid-template-columns:1fr}.candidate-admin-strip{display:block}.candidate-admin-fields{display:grid;grid-template-columns:1fr;margin-top:10px}.candidate-admin-fields input,.candidate-admin-fields .btn{width:100%;min-width:0}.student-hero{padding:22px;align-items:flex-start}.student-hero h2{font-size:25px}.student-status-card,.student-ready-card{align-items:flex-start;flex-wrap:wrap}.student-ready-card .btn{width:100%}.exam-paper-head{position:relative;top:auto}.student-submit-bar{display:block}.student-submit-bar .btn{width:100%;margin-top:10px}.review-options,.review-answer{margin-left:0}}
@media(max-width:520px){.scorecard-summary{grid-template-columns:1fr}.scorecard-total{grid-column:auto}.review-q-head{grid-template-columns:28px 1fr}.review-q-head strong{grid-column:2}.student-exam-shell{padding:14px 10px 36px}.student-topbar{margin-bottom:14px}.student-hero{border-radius:18px;flex-direction:column}.student-mark-chip{width:100%;height:58px;border-radius:16px;display:flex;justify-content:center;gap:7px}.student-mark-chip strong{font-size:24px}.student-question{padding:17px}.performance-grid{grid-template-columns:1fr}.student-submit-bar{bottom:6px}.exam-timer{min-width:96px}.student-topbar .btn{padding:8px 10px}}