:root{font-family:Aptos,"Segoe UI",Calibri,Arial,sans-serif;color:#17293a;background:#f4f7fa;font-size:15px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}input,select,textarea{border:1px solid #bdcbd5;border-radius:9px;padding:11px 12px;background:#fff;color:#17293a;min-width:0}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #86bdce;outline-offset:1px}a{color:#00617b}h1,h2,h3,p{margin-top:0}h1{font-size:1.65rem}h2{font-size:1.18rem}h3{font-size:1.03rem}.small{font-size:.81rem}.muted{color:#627282}.strong{font-weight:700}.nowrap{white-space:nowrap}.hidden{display:none!important}.initial-loader{display:flex;min-height:100vh;align-items:center;justify-content:center;gap:12px}.spin{display:inline-block;width:22px;height:22px;border:3px solid #c5d9e0;border-top-color:#135770;border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.layout{display:flex;min-height:100vh}.side{width:265px;flex-shrink:0;background:#122a3e;color:#e5f2f7;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:40}.brand{padding:24px 20px 16px;border-bottom:1px solid #ffffff22}.brand-icon{width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:25px;border-radius:13px;background:#e9f3f7;color:#185c77;margin-bottom:12px}.brand-title{font-weight:750;line-height:1.25}.brand-sub{font-size:.77rem;color:#afc5d3;line-height:1.5;margin-top:5px}.nav{padding:13px 11px;overflow:auto;flex:1}.nav-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:#8baabc;padding:14px 12px 7px}.nav button{width:100%;display:flex;align-items:center;gap:11px;border:0;background:transparent;color:#d8e7ee;text-align:left;padding:11px 13px;border-radius:9px;margin:2px 0}.nav button:hover,.nav button.active{background:#ffffff1a;color:#fff}.nav .symbol{font-size:1.15rem;width:22px;text-align:center}.side-foot{font-size:.79rem;border-top:1px solid #ffffff22;padding:14px 17px;color:#b7c9d6}.main{flex:1;min-width:0}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;padding:13px 26px;border-bottom:1px solid #dee6ec;box-shadow:0 2px 6px #1125350a}.top-title{font-weight:750;line-height:1.35}.top-sub{font-size:.8rem;color:#5c6e7a}.top-right{display:flex;align-items:center;gap:8px}.content{max-width:1270px;padding:29px 30px 90px;margin:auto}.page-title{margin:0 0 7px}.lead{color:#566879;margin-bottom:25px}.pill{display:inline-flex;align-items:center;gap:5px;border:1px solid #c7d4dd;background:#eff5f8;border-radius:100px;padding:5px 9px;font-size:.76rem;font-weight:700;color:#315268;white-space:nowrap}.pill.draft{border-color:#f2dea9;background:#fff7e4;color:#88590a}.pill.green{border-color:#abd8c2;background:#eaf9f1;color:#176341}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card{background:#fff;border:1px solid #dae4e9;border-radius:14px;padding:20px;box-shadow:0 3px 13px #102a4010}.card.clickable{cursor:pointer}.card.clickable:hover{border-color:#8bbdc9;box-shadow:0 5px 20px #102a401c}.card h3{margin:10px 0 5px}.card .figure{font-size:1.7rem;color:#164e67;font-weight:750}.icon-square{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;background:#edf6f9;font-size:1.2rem}.section{margin-top:25px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-head h2{margin:0}.btn{border-radius:9px;background:#155770;color:white;border:1px solid #155770;padding:10px 15px;font-weight:700;display:inline-flex;gap:8px;align-items:center;justify-content:center}.btn:hover{background:#0d425b}.btn.outline{background:#fff;border-color:#bbcdd6;color:#234a5c}.btn.outline:hover{background:#eff7fa}.btn.ghost{background:transparent;border:0;color:#315268;padding:7px 11px}.btn.danger{background:#b33c3c;border-color:#b33c3c}.btn:disabled{opacity:.55;cursor:not-allowed}.button-row{display:flex;gap:9px;flex-wrap:wrap}.table-wrap{overflow-x:auto;background:#fff;border:1px solid #dce6eb;border-radius:12px}table{border-collapse:collapse;width:100%;font-size:.9rem}th{text-align:left;font-size:.82rem;color:#526979;background:#f2f6f8;font-weight:750}th,td{padding:12px 14px;border-bottom:1px solid #e4ebef;vertical-align:top}tr:last-child td{border-bottom:0}tbody tr:hover{background:#fbfdfe}.empty{text-align:center;color:#637b87;padding:32px!important}.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.04em;color:#597383;text-transform:uppercase;margin-bottom:8px}.banner{padding:13px 15px;border:1px solid #e4d3a9;background:#fff8e7;color:#805912;border-radius:10px;margin-bottom:23px}.banner.info{background:#eaf5fa;color:#28536c;border-color:#cce2ed}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.form-field{display:flex;flex-direction:column;gap:7px}.form-field label{font-size:.85rem;font-weight:700;color:#30485a}.form-field.full{grid-column:1/-1}.form-card{max-width:760px}.spaced{display:flex;align-items:center;justify-content:space-between;gap:15px}.callout{padding:16px 19px;border-radius:11px;background:#f0f5f7;border:1px solid #d9e5eb}.stack{display:flex;flex-direction:column;gap:15px}.separator{height:1px;background:#e2eaf0;margin:16px 0}.top-menu{display:none;font-size:1.45rem;border:0;background:transparent;color:#20445a;padding:5px 10px}.overlay{display:none}.footer-note{font-size:.76rem;color:#637582;padding-top:28px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 5% 10%,#cde9ec 0,transparent 35%),#f3f7f9}.login-card{width:min(465px,100%);background:#fff;border:1px solid #d8e5eb;border-radius:19px;padding:30px;box-shadow:0 18px 50px #19394b17}.login-logo{display:inline-grid;place-items:center;background:#e7f3f6;width:54px;height:54px;border-radius:15px;font-size:26px}.login-card h1{margin-top:16px;margin-bottom:7px}.notice{padding:11px 14px;border-radius:9px;background:#eff7f9;color:#294f64;margin:15px 0}.notice.error{background:#fff1f0;color:#9f3130}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:19px}.chip{font-size:.76rem;color:#4a6d7b;border:1px solid #dae5ea;border-radius:100px;padding:3px 8px}.preview-paper{max-width:870px;margin:0 auto;background:white;border:1px solid #cddce4;padding:32px 35px;box-shadow:0 6px 25px #12314316;color:#17242b}.paper-head{text-align:center;border-bottom:2px solid #152b39;padding-bottom:12px;margin-bottom:16px}.paper-head h2{font-size:1.22rem;text-transform:uppercase;margin:0 0 4px}.paper-head p{font-size:.95rem;margin:0}.paper-sub{text-align:center;margin-bottom:16px}.paper-sub h3{margin-bottom:4px;text-decoration:underline}.paper-table{font-size:.87rem;border:1px solid #384b55}.paper-table th,.paper-table td{border:1px solid #384b55;padding:8px 10px}.paper-table th{background:#f6f7f7;color:#17242b;text-align:center}.paper-sign{text-align:right;margin-top:85px;font-weight:650}.preview-editor{max-width:870px;margin:0 auto 20px}.inline-edit{padding:6px 8px;width:100%;font-size:.85rem;max-width:160px}.preview-editor table td{padding:6px}.preview-editor .small-btn{padding:6px 9px}.preview-only{font-size:.82rem;color:#8b5e17;background:#fff6dc;border:1px solid #efdda9;padding:9px 12px;border-radius:8px;margin-bottom:15px}.empty-state{text-align:center;padding:38px 20px;color:#546979}.empty-state h3{color:#183e53}.empty-state .big{font-size:2.4rem}.toast{position:fixed;bottom:20px;right:22px;background:#14354a;color:white;padding:13px 17px;border-radius:10px;box-shadow:0 6px 22px #0003;z-index:100;max-width:360px}.toast.error{background:#9d3036}.modal-backdrop{position:fixed;inset:0;background:#091c2b80;z-index:70;display:grid;place-items:center;padding:16px}.modal{background:white;border-radius:15px;width:min(600px,100%);max-height:90vh;overflow:auto;padding:25px;box-shadow:0 12px 45px #0004}.modal h2{margin-bottom:18px}.modal header{display:flex;justify-content:space-between;align-items:center}.close{border:0;background:transparent;font-size:1.5rem;color:#4d6573}
@media(max-width:1100px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content{padding:26px 20px}}@media(max-width:800px){.side{position:fixed;left:0;top:0;transform:translateX(-105%);transition:transform .2s;box-shadow:5px 0 25px #0002}.side.show{transform:translateX(0)}.overlay.show{display:block;position:fixed;inset:0;background:#0a243380;z-index:35}.top-menu{display:block}.topbar{padding:11px 13px}.top-right .top-sub{display:none}.content{padding:20px 13px}.top-title{font-size:.93rem}.top-sub{font-size:.71rem}.preview-paper{padding:18px 12px}.paper-table{font-size:.72rem}.paper-table th,.paper-table td{padding:5px}.form-grid{grid-template-columns:1fr}}@media(max-width:450px){.grid{grid-template-columns:1fr}.login-card{padding:22px}.card{padding:17px}}
@media print{body{background:white}.side,.topbar,.no-print,.banner,.footer-note,.overlay{display:none!important}.main,.content{padding:0!important;max-width:none!important}.layout{display:block}.preview-paper{margin:0!important;border:0!important;box-shadow:none!important;max-width:none;padding:10mm!important}.paper-table{font-size:10pt}.paper-head h2{font-size:14pt}@page{size:A4 portrait;margin:12mm}}
/* MBBS Teaching Management v2 */
.ug-selection{display:flex;gap:16px;margin-bottom:16px;align-items:end}.ug-selection .form-field{min-width:205px}.ug-tabs{display:flex;overflow:auto;gap:6px;margin-bottom:22px;border-bottom:1px solid #cbdbe4}.ug-tabs button{border:0;background:transparent;padding:12px 13px;white-space:nowrap;color:#475c69;font-weight:650;border-bottom:3px solid transparent}.ug-tabs button.current{color:#155770;border-bottom-color:#155770}.ug-edit-wrap table{min-width:1220px}.ug-edit-wrap td,.ug-edit-wrap th{padding:7px}.ug-edit-wrap td input,.ug-edit-wrap td select{width:100%;padding:7px;font-size:.85rem}.ug-edit-wrap td:nth-child(5){min-width:240px}.ug-edit-wrap td:nth-child(6){min-width:200px}.ug-warning{background:#fff2df;color:#815006;border:1px solid #e9c990;border-radius:8px;padding:10px 12px}.ug-print-wrap{background:#fff;margin-top:24px;padding:29px;border:1px solid #d5e0e5;border-radius:8px}.ug-people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px}.ug-people-grid label{border:1px solid #dce5e9;padding:9px;border-radius:7px;font-weight:500}.ug-mode-row{margin-bottom:13px}.ug-roll-table{max-height:480px;overflow:auto}.ug-roll-table table th{position:sticky;top:0}.ug-print-wrap .paper-sign{margin-top:60px}
@media(max-width:700px){.ug-selection{flex-direction:column;align-items:stretch}.ug-selection .form-field{width:100%}.ug-print-wrap{padding:12px}.ug-roll-table{max-height:360px}}
@media print{.ug-container > *:not(.ug-print-wrap){display:none!important}.ug-container .ug-print-wrap{display:block!important;border:0;padding:0;margin:0}.ug-print-wrap .paper-table{font-size:9pt}.ug-print-wrap table{break-inside:auto}.ug-print-wrap tr{break-inside:avoid}}
/* Integrated Phase v3 */
.m3-shell{font-family:Aptos,'Segoe UI',Calibri,Arial,sans-serif}.m3-tools{display:flex;flex-wrap:wrap;align-items:end;gap:13px;margin-bottom:16px}.m3-tools .form-field{min-width:150px}.m3-shell .button-row{margin:15px 0}.m3-wide{overflow-x:auto;margin:15px 0}.m3-wide table{min-width:1000px}.m3-wide td,.m3-wide th{padding:7px 9px}.m3-wide td input,.m3-wide td select{max-width:240px;min-width:105px;padding:6px;font-size:.84rem}.m3-wide td input[type=date]{min-width:135px}.m3-wide td input[type=time]{min-width:105px;width:110px}.m3-wide td input{margin:2px 0}.m3-shell .m3-print-sheet{max-width:none;margin:20px auto;padding:30px 36px;background:white;border:1px solid #d2dbe0;border-radius:8px}.m3-shell .m3-print-sheet .table-wrap{overflow:visible;border:0}.m3-shell .m3-print-sheet td,.m3-shell .m3-print-sheet th{border:1px solid #324451;padding:7px}.m3-shell .m3-print-sheet table{font-size:12px}.m3-register-grid{overflow-x:auto}.m3-register-grid table{min-width:1350px}.m3-register-grid th,.m3-register-grid td{padding:5px 6px;text-align:center;min-width:31px;font-size:10px}.m3-register-grid .m3-sticky-cell{text-align:left;position:sticky;left:0;z-index:3;background:white;min-width:150px}.m3-day-cell{padding:3px!important}.m3-day-button{border:1px solid #c2d2db;border-radius:5px;background:#f6f9fa;color:#20485a;font-weight:700;font-size:.72rem;padding:5px;min-width:33px}.m3-day-button.comp{background:#e5f4f4}.m3-day-button:disabled{cursor:default;opacity:1}.m3-secondary-forms{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:22px}.m3-secondary-forms h2{font-size:1.08rem;margin:0 0 16px}.m3-secondary-forms h3{margin-top:20px}.m3-print-sheet [lang=hi]{font-family:'Nirmala UI','Noto Sans Devanagari',sans-serif}.m3-shell .m3-print-sheet h2{margin-bottom:5px}.m3-print-sheet .paper-head{margin-bottom:18px}.m3-print-sheet .paper-sign{margin-top:80px}.m3-print-sheet .table-wrap{box-shadow:none}
@media(max-width:650px){.m3-tools{display:grid;grid-template-columns:repeat(2,1fr)}.m3-shell .m3-print-sheet{padding:15px 10px}.m3-secondary-forms{grid-template-columns:1fr}}
@media print{
 .m3-shell > :not(.m3-print){display:none!important}
 .m3-shell .m3-print-sheet{display:block!important;padding:0!important;border:0!important;margin:0!important;box-shadow:none!important}
 .m3-print-sheet .m3-register-grid{overflow:visible!important}.m3-register-grid table{min-width:0!important}.m3-day-button{border:0!important;background:transparent!important;color:black!important;padding:0!important;font-size:8px!important;min-width:0!important}
 .m3-print-sheet .m3-register-grid th,.m3-print-sheet .m3-register-grid td{padding:2px!important;font-size:7px!important;min-width:0!important}.m3-print-sheet .m3-sticky-cell{min-width:0!important}
 .m3-print-sheet tr{break-inside:avoid}
}
/* V4 official-layout review styles: Aptos where installed; never embed proprietary fonts. */
.m4-paper-letterhead{text-align:center;border-bottom:2px solid #1b2934;margin-bottom:13px;padding-bottom:10px;font-family:Aptos,'Segoe UI',Calibri,Arial,sans-serif}
.m4-paper-dept{font-weight:800;text-transform:uppercase;font-size:19px;letter-spacing:.015em}
.m4-paper-college{font-size:15px;font-weight:700;margin-top:5px}.m4-paper-email{font-size:12px;margin-top:4px}
.m4-document-meta{display:flex;justify-content:space-between;gap:15px;font-size:11px;margin-bottom:12px}
.m4-draft-status{font-weight:800;text-align:center;border:1px dashed #9f6b40;background:#fffaf4;color:#824e25;padding:8px;margin:8px 0 15px!important;font-size:12px}
.m4-small{font-size:11px;line-height:1.35;overflow-wrap:anywhere;margin-top:3px}.m4-copyto{margin-top:18px;font-size:11px}.m4-copyto ol{padding-left:24px;line-height:1.6}
.m4-roster-notes{margin-top:18px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.m4-roster-notes p{margin:5px 0}
.m4-grade-sheet{max-width:840px!important}.m4-eval-fields{line-height:1.4;margin:22px 0}.m4-eval-fields p{margin-bottom:12px}.m4-grade-sheet .table-wrap th,.m4-grade-sheet .table-wrap td{padding:12px!important}
.m4-signature-cell{min-width:150px;height:44px}.m4-mean{margin-top:15px}.m4-mean span{font-size:12px;color:#55626d}
.m4-att-print .m3-register-grid .m3-day-button:disabled{font-weight:700}
@page m4-landscape{size:A4 landscape;margin:8mm}
@media print{
 .m4-att-print{page:m4-landscape!important}
 .m4-paper-letterhead{page-break-inside:avoid}
 .m4-draft-status{-webkit-print-color-adjust:exact;print-color-adjust:exact}
 .m4-att-print .m3-register-grid .m3-sticky-cell{position:static!important;min-width:36mm!important;width:36mm!important;text-align:left!important}
 .m4-att-print .m3-register-grid td,.m4-att-print .m3-register-grid th{font-size:6.2pt!important;padding:1.2px!important;min-width:0!important}
 .m4-att-print .m3-register-grid .m3-day-button{font-size:6pt!important}
 .m3-shell .m3-print-sheet table{break-inside:auto}
 .m3-shell .m3-print-sheet thead{display:table-header-group}
 .m3-shell .m3-print-sheet tfoot{display:table-footer-group}
 .m3-shell .m3-print-sheet tr{break-inside:avoid}
}
@media print{.toast,.m3-noprint,.ug-warning{display:none!important}}


/* V4.1 — Supplied transparent-background college emblem. White inside the emblem stays opaque. */
.brand-icon{width:78px;height:78px;padding:0;border-radius:0;background:transparent;margin-bottom:11px}
.brand-icon img{width:100%;height:100%;object-fit:contain;display:block}
.login-logo{width:78px;height:78px;border-radius:0;background:transparent}
.login-logo img{display:block;width:100%;height:100%;object-fit:contain}
.topbar-college-logo{width:42px;height:42px;object-fit:contain;flex-shrink:0}
.with-college-logo{position:relative;display:flex;align-items:center;justify-content:center;gap:13px;text-align:center;min-height:90px}
.with-college-logo .college-logo-print{width:83px;height:83px;max-width:22%;flex:0 0 auto;object-fit:contain;align-self:center}
.with-college-logo .college-letterhead-text{flex:1;min-width:0}
.paper-head.with-college-logo{padding-right:0}
.m4-paper-letterhead.with-college-logo{padding-right:0}
@media(max-width:600px){.topbar-college-logo{width:32px;height:32px}.with-college-logo .college-logo-print{width:60px;height:60px}.with-college-logo{gap:7px;min-height:65px}.m4-paper-dept{font-size:15px}.m4-paper-college{font-size:12px}.m4-paper-email{font-size:10px}}
@media print{.brand-icon,.login-logo,.topbar-college-logo{display:none!important}.with-college-logo .college-logo-print{width:23mm;height:23mm;max-width:none;print-color-adjust:exact;-webkit-print-color-adjust:exact}.with-college-logo{min-height:24mm;break-inside:avoid;page-break-inside:avoid;gap:3mm}.paper-head.with-college-logo h2{font-size:14pt}.m4-paper-college{font-size:10pt}.m4-paper-dept{font-size:14pt}}

/* V4.2 — Institutional login and polished sidebar. CSS-only visuals, no database changes. */
.brand{padding:22px 18px 20px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:0}
.brand-icon{width:83px;height:83px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center}
.brand-title{font-size:1.03rem;line-height:1.32;font-weight:800;text-wrap:balance}
.brand-system{font-size:.85rem;line-height:1.4;font-weight:650;color:#d5eaf4;margin-top:3px}
.brand-sub{font-size:.755rem;line-height:1.4;margin-top:10px;color:#b4ccda;text-wrap:balance}
.side{background:#122a3e}
.nav{overflow-x:hidden;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6b94a7 #193648;scrollbar-gutter:stable}
.nav::-webkit-scrollbar{width:10px;background:#193648}
.nav::-webkit-scrollbar-track{background:#193648;border-radius:12px}
.nav::-webkit-scrollbar-thumb{background:#66899c;border:2px solid #193648;border-radius:12px;min-height:36px}
.nav::-webkit-scrollbar-thumb:hover{background:#8cabbc}
.nav::-webkit-scrollbar-corner{background:#193648}
.nav::-webkit-scrollbar-button{display:none;width:0;height:0}
.nav:focus-visible{outline:2px solid #a6d6e7;outline-offset:-2px}
.login-wrap{padding:0;display:block;min-height:100vh;min-height:100dvh;background:#f5f8fa}
.login-shell{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);min-height:100vh;min-height:100dvh;width:100%}
.login-feature{background:radial-gradient(ellipse at 85% 15%,rgba(69,145,165,.24),transparent 43%),radial-gradient(ellipse at 8% 93%,rgba(8,87,113,.23),transparent 55%),#123247;color:#f0f8fc;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:clamp(38px,7vw,110px)}
.login-feature:before{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(212,237,243,.12);border-radius:50%;right:-235px;top:-190px;box-shadow:0 0 0 65px rgba(156,213,227,.025),0 0 0 140px rgba(156,213,227,.025);pointer-events:none}
.login-feature-inner{position:relative;max-width:600px;width:100%}
.login-feature-kicker{display:flex;align-items:center;gap:12px;letter-spacing:.12em;font-size:.77rem;font-weight:750;color:#b7d9e5;margin-bottom:32px}
.login-feature-rule{width:28px;height:2px;background:#83c7d3;display:inline-block}
.login-feature h2{font-size:clamp(2.1rem,3.65vw,3.65rem);line-height:1.13;letter-spacing:-.028em;color:#fff;font-weight:800;margin:0 0 24px;text-wrap:balance}
.login-feature h2 em{font-style:normal;color:#b8e2ed}
.login-feature-description{font-size:clamp(.96rem,1.15vw,1.11rem);max-width:520px;line-height:1.75;color:#d4e6ed;margin-bottom:52px}
.login-feature-bottom{display:flex;align-items:center;flex-wrap:wrap;column-gap:11px;row-gap:5px;font-size:.83rem;color:#d2e8f0;line-height:1.4}
.login-feature-divider{width:100%;height:1px;background:rgba(230,248,255,.22);margin-bottom:17px}
.login-feature-dot{color:#80bdca}
.login-panel{background:#fff;padding:40px clamp(25px,5vw,80px) 24px;display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:0}
.login-card{width:min(465px,100%);background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.login-identity{display:flex;flex-direction:column;align-items:center;text-align:center}
.login-logo{width:100px;height:100px;background:transparent;display:grid;place-items:center;margin:0 0 15px}
.login-logo img{width:100%;height:100%;object-fit:contain;display:block}
.login-card h1{font-size:1.3rem;line-height:1.35;font-weight:800;margin:0 0 8px;text-wrap:balance}
.login-college{max-width:375px;font-size:.88rem;line-height:1.55;color:#506574;margin:0}
.login-identity-line{height:1px;background:#dce7ed;width:100%;margin:27px 0 24px}
.login-welcome{text-align:center;font-size:1.52rem;margin:0 0 8px;color:#1b3448}
.login-description{text-align:center;color:#667e8a;margin:0 0 29px;font-size:.91rem}
.login-card form.stack{gap:17px}
.login-card .form-field label{text-align:left}
.login-card input{width:100%;min-height:45px;border-color:#c9d7df;background:#fff}
.login-submit{width:100%;min-height:46px;margin-top:7px;justify-content:center;text-align:center}
.login-help{text-align:center;color:#71818d;font-size:.81rem;line-height:1.6;margin:23px 0 0}
.login-panel-foot{font-size:.72rem;color:#94a5af;text-align:center;margin:34px auto 0}
.login-card .notice{text-align:center}
@media(max-width:900px){
 .login-shell{grid-template-columns:minmax(0,1fr) minmax(385px,1fr)}
 .login-feature{padding:35px}
 .login-feature h2{font-size:clamp(1.85rem,3.6vw,2.8rem)}
}
@media(max-width:730px){
 .login-shell{display:flex;flex-direction:column;min-height:100dvh}
 .login-feature{padding:24px 24px 25px;min-height:0;flex:0 0 auto}
 .login-feature-inner{max-width:480px;text-align:center}
 .login-feature-kicker{justify-content:center;margin-bottom:12px;font-size:.66rem}
 .login-feature-rule{width:15px}
 .login-feature h2{font-size:clamp(1.25rem,4.6vw,1.75rem);line-height:1.23;margin-bottom:0}
 .login-feature h2 br{display:none}
 .login-feature-description,.login-feature-bottom{display:none}
 .login-panel{flex:1;padding:28px 23px 22px;justify-content:flex-start}
 .login-logo{width:76px;height:76px;margin-bottom:11px}
 .login-identity-line{margin:20px 0}
 .login-welcome{font-size:1.35rem}
 .login-description{margin-bottom:22px}
 .login-panel-foot{margin-top:24px}
}
@media(max-width:375px){.login-feature{padding:20px}.login-panel{padding:21px 18px}.login-card h1{font-size:1.16rem}}
@media print{.login-feature{display:none!important}.login-shell{display:block}.login-panel{padding:0}}

/* V4.3 — teaching-history reporting and explicit PG participant attribution. */
.m43-report-form{grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:15px}
.m43-report-print{max-width:none!important}
.m43-report-print .paper-sub{text-align:center;margin-bottom:23px}
.m43-report-print h3{font-size:1rem;margin-top:24px;margin-bottom:10px}
.m43-report-print table{width:100%;font-size:11px}
.m43-report-print th,.m43-report-print td{padding:8px!important;overflow-wrap:anywhere}
.m43-report-print .paper-sign{text-align:right;margin-top:50px}
.m43-participants{margin:14px 0 24px}
.m43-fieldset{border:1px solid #d6e1e6;border-radius:8px;padding:12px 15px;margin-bottom:12px}
.m43-fieldset legend{font-weight:700;color:#1c4154;padding:0 6px}
.m43-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.m43-person{display:flex;gap:9px;align-items:center;font-size:.88rem;line-height:1.4}
.m43-person input{width:auto;height:auto;flex:0 0 auto}
@page m43-activity{size:A4 landscape;margin:11mm}
@media print{
 .m43-report-print{page:m43-activity!important}
 .m43-report-print tr{break-inside:avoid}
 .m43-report-print thead{display:table-header-group}
 .m43-report-print table{font-size:8pt!important}
 .m43-report-print h3{font-size:11pt}
}
