/* SGGDCCOM v227 consolidated DAS stylesheet. Source order preserved. */

/* ---- sggdccom-v148.css ---- */

/* styles.css */
:root{--green:#0b684c;--green-dark:#073f31;--green-deep:#082f27;--gold:#e2ad21;--gold-dark:#9a7410;--red:#b21722;--bg:#f4f7f5;--surface:#fff;--soft:#eef5f2;--ink:#18352d;--text:#24332f;--muted:#66736e;--line:#d9e3de;--danger:#b42318;--shadow:0 10px 30px rgba(16,53,43,.08);--radius:16px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;line-height:1.5}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}a{color:inherit}.hidden{display:none!important}.muted{color:var(--muted)!important}.danger-text{color:var(--danger)!important}.skip-link{position:fixed;left:12px;top:-60px;z-index:9999;background:#fff;color:var(--green);padding:8px 12px;border-radius:8px;box-shadow:var(--shadow)}.skip-link:focus{top:12px}
.utility-bar{background:var(--red);color:#fff}.utility-inner{width:min(1450px,100%);margin:auto;min-height:58px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;gap:16px}.utility-title{font-weight:850;letter-spacing:.035em;text-transform:uppercase;font-size:.92rem}.utility-links{display:flex;align-items:center;gap:10px}.utility-links button{border:0;background:transparent;color:#fff;font-weight:800;padding:9px 12px;border-radius:8px}.utility-links button:hover{background:rgba(255,255,255,.12)}
.institution-header{background:#fff;border-bottom:1px solid #e5ebe8;position:relative}.institution-inner{width:min(1480px,100%);margin:auto;min-height:142px;padding:0 5.5%;display:grid;grid-template-columns:170px minmax(0,1fr) 160px;gap:20px;align-items:center;position:relative}.institution-logo-link{display:flex;align-items:center;justify-content:center;text-decoration:none}.institution-logo{display:block;width:112px;height:112px;object-fit:contain}.institution-copy{text-align:center;min-width:0}.institution-name{font-family:Georgia,'Times New Roman',serif;font-size:2.28rem;line-height:1.12;font-weight:800;color:#075f47;letter-spacing:.025em;white-space:nowrap}.institution-subtitle{font-size:1.12rem;font-weight:800;color:#1f2b28;margin-top:6px}.institution-meta{font-size:.91rem;font-weight:800;color:var(--gold-dark);letter-spacing:.025em;margin-top:5px}.top-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px;min-width:0}.session-badge{font-size:.82rem;font-weight:750;color:var(--green-dark);max-width:150px}.header-signin,.ghost,.primary,.secondary,.danger-button{border-radius:10px;border:1px solid var(--line);padding:10px 15px;font-weight:800;transition:.15s}.header-signin,.primary{background:var(--green);border-color:var(--green);color:#fff}.secondary{background:#fff;color:var(--green);border-color:#afc9bf}.ghost{background:#fff;color:var(--ink)}.danger-button{background:#fff4f2;color:var(--danger);border-color:#f1c0ba}.primary:hover,.header-signin:hover{background:#07563f}.secondary:hover,.ghost:hover{background:var(--soft)}
.primary-nav{background:#fff;border-bottom:1px solid #e6ece9;position:relative;z-index:10}.primary-nav-inner{width:min(1180px,100%);margin:auto;min-height:76px;display:flex;align-items:stretch;justify-content:center;gap:26px;padding:0 16px}.primary-nav button{position:relative;border:0;background:transparent;color:#172d27;font-family:Georgia,'Times New Roman',serif;font-size:1.08rem;font-weight:700;padding:0 5px}.primary-nav button:hover,.primary-nav button.active{color:var(--green)}.primary-nav button.active:after{content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:var(--gold);border-radius:4px 4px 0 0}
.page-stage{min-height:calc(100vh - 276px);background:var(--bg)}#app{width:100%;min-height:100%;padding-bottom:42px}.boot-note{max-width:1200px;margin:22px auto}.notice,.system-status,.warning,.success-note,.portal-note,.form-note{border-radius:12px;padding:13px 16px;margin:12px 0}.notice,.form-note,.portal-note{background:#fff;border:1px solid var(--line)}.warning{background:#fff7dc;border:1px solid #edd58b;color:#72540a}.success-note{background:#ebf8f1;border:1px solid #b9e0ca;color:#0f633f}.system-status{max-width:1260px;margin:14px auto;background:#fff7dc;border:1px solid #ecd486;color:#70570d;display:flex;gap:8px;flex-wrap:wrap}
.campus-hero{width:96%;max-width:1580px;min-height:470px;margin:0 auto;background:linear-gradient(92deg,#0a2d25 0%,#2d4540 43%,#909896 100%);color:#fff;position:relative;overflow:hidden;display:flex;align-items:center}.campus-hero:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,35,28,.48),rgba(14,48,40,.18) 55%,rgba(255,255,255,.08));pointer-events:none}.campus-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,33,27,.22),rgba(4,33,27,.02));pointer-events:none}.campus-hero-content{position:relative;z-index:2;width:min(1020px,76%);padding:58px 0 58px 18%;}.campus-kicker{font-size:.92rem;font-weight:850;letter-spacing:.16em;text-transform:uppercase;color:#f7f4e9;margin-bottom:18px}.campus-hero h1,#heroTitle{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3.4rem,5.1vw,5.65rem);line-height:.98;margin:0 0 24px;font-weight:800;letter-spacing:-.025em}.campus-hero p,#heroText{font-family:Georgia,'Times New Roman',serif;font-size:1.33rem;line-height:1.5;max-width:950px;margin:0 0 28px}.campus-hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-primary,.hero-secondary{border-radius:7px;padding:14px 30px;font-weight:850;font-size:1.02rem}.hero-primary{border:1px solid #f1b928;background:#f3bb20;color:#13231e}.hero-secondary{border:1px solid rgba(255,255,255,.75);background:rgba(255,255,255,.05);color:#fff}.hero-arrow{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:58px;height:58px;border-radius:50%;border:0;background:rgba(7,29,24,.72);color:#fff;font-size:2rem;display:grid;place-items:center}.hero-prev{left:40px}.hero-next{right:40px}.hero-dots{position:absolute;z-index:3;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.hero-dots button{width:10px;height:10px;border-radius:50%;border:1px solid #fff;background:transparent;padding:0}.hero-dots button.active{background:var(--gold);border-color:var(--gold)}
.home-intro{width:min(1240px,calc(100% - 32px));margin:0 auto;padding:48px 0 22px;display:grid;grid-template-columns:1.25fr .9fr;gap:60px;align-items:start}.home-intro h1,.home-intro h2{font-family:Georgia,'Times New Roman',serif;color:#123f33}.home-intro p{font-size:1.05rem;color:#52645e}.lead-brand{font-family:Georgia,'Times New Roman',serif;font-size:2.5rem;font-weight:800;color:#123f33;letter-spacing:.02em;margin:.1rem 0 .45rem}.lead-acronym{display:flex;align-items:center;flex-wrap:wrap;gap:.48rem .72rem;font-size:1.07rem;line-height:1.5;font-weight:700}.lead-term{white-space:nowrap}.lead-term b{font-size:1.2em}.lead-learn{color:#1d4ed8}.lead-excel{color:#15803d}.lead-achieve{color:#b45309}.lead-develop{color:#8b1e3f}.lead-divider{color:#a67c52;font-weight:800}
.quick-grid,.six-cards,.mbu-cards,.university-cards{width:min(1240px,calc(100% - 32px));margin:18px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.quick-card,.panel,.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.quick-card{min-height:180px;padding:26px;border-top:4px solid var(--green)}.quick-card .eyebrow{color:var(--gold-dark)}.quick-card h2,.quick-card h3{font-size:1.35rem;color:#123b31;margin:.4rem 0}.quick-card p{margin:0;color:var(--muted)}
.page-head{width:min(1260px,calc(100% - 32px));margin:0 auto;padding:38px 0 20px;text-align:center}.page-head .eyebrow,.eyebrow{font-size:.76rem;font-weight:900;text-transform:uppercase;letter-spacing:.16em;color:#07805d}.page-head h1{font-size:clamp(2rem,4vw,3rem);line-height:1.08;margin:.25rem 0 .45rem;color:#173e34}.page-head p,.subhead{color:var(--muted);font-size:1.03rem;margin:.35rem auto;max-width:850px}.section-heading{width:min(1260px,calc(100% - 32px));margin:30px auto 12px}.section-heading h2{margin:0;color:#173e34}.section-heading p{color:var(--muted)}
.grid-2{width:min(1260px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.panel{padding:22px}.panel h2,.panel h3{color:#173e34;margin-top:0}.panel p{color:#52645e}.about-department,.about-focus,.mbu-intro,.mbu-hero{width:min(1260px,calc(100% - 32px));margin:18px auto}.about-department,.about-focus,.mbu-intro{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow)}
.faculty-profile-list{width:min(1260px,calc(100% - 32px));margin:16px auto;display:grid;gap:12px}.faculty-profile-card{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.faculty-profile-card summary{cursor:pointer;padding:14px 18px;display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:14px;list-style:none}.faculty-profile-card summary::-webkit-details-marker{display:none}.faculty-profile-card summary img,.faculty-initial{width:54px;height:54px;border-radius:50%;object-fit:cover;background:var(--soft);display:grid;place-items:center;font-weight:900;color:var(--green)}.profile-open{color:var(--green);font-weight:800}.faculty-bio-body{padding:0 18px 18px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.bio-field{background:#f8fbf9;border:1px solid #e6eeea;border-radius:10px;padding:12px}.profile-head{font-weight:800;color:#173e34}
.paper-tabs{width:min(1260px,calc(100% - 32px));margin:8px auto 18px;display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.paper-tab,.hod-mode{border:1px solid var(--line);background:#fff;color:#51615c;border-radius:999px;padding:10px 16px;font-weight:800}.paper-tab.active,.hod-mode.active{background:var(--green);border-color:var(--green);color:#fff}.paper-card-grid,.programme-outcomes-grid{width:min(1260px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.paper-list,.semester-paper-section,.programme-outcome-card,.academic-day-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px}.paper-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #edf1ef}.paper-row:last-child{border-bottom:0}.paper-no{font-weight:900;color:var(--green)}.paper-row small{display:block;color:var(--muted);margin-top:2px}.open-paper{border:1px solid #bfd2ca;background:#fff;color:var(--green);border-radius:8px;padding:7px 10px;font-weight:800}
.academic-day-panel{width:min(1260px,calc(100% - 32px));margin:15px auto}.academic-day-title{display:flex;align-items:center;justify-content:space-between;gap:14px}.day-badge{background:var(--green);color:#fff;border-radius:999px;padding:6px 11px;font-weight:850;font-size:.82rem}.academic-day-semester{margin-top:10px;border:1px solid var(--line);border-radius:12px;overflow:hidden}.academic-day-semester&gt;summary{cursor:pointer;background:#f7faf8;padding:12px 16px;font-weight:850}.academic-day-programme{padding:12px 16px}.academic-day-list{display:grid;gap:7px}.academic-day-row{display:grid;grid-template-columns:55px minmax(180px,1fr) minmax(170px,.7fr);gap:12px;align-items:center;padding:10px 12px;background:#fafcfb;border:1px solid #edf1ef;border-radius:10px}.academic-day-row small{display:block;color:var(--muted)}.day-period{font-weight:900;color:var(--green)}.programme-outcome-card summary{cursor:pointer;padding:14px;list-style:none}.programme-outcome-card summary::-webkit-details-marker{display:none}.programme-outcome-card summary b,.programme-outcome-card summary small{display:block}.programme-outcome-card summary small{color:var(--muted);margin-top:3px}.outcome-list{padding:0 14px 14px}.outcome-row{display:grid;grid-template-columns:55px 1fr;gap:12px;padding:10px 0;border-top:1px solid #edf0ee}.outcome-row b{color:var(--green)}.outcome-row p{margin:0}
.activity-category-grid{width:min(1260px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.activity-item{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:12px;overflow:hidden}.activity-image-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:10px 0}.activity-image-grid .activity-image,.activity-image{display:block;width:100%;max-width:100%;max-height:380px;object-fit:contain;border-radius:12px;background:#f8faf9;border:1px solid #e3ebe7}.activity-image-field{display:grid;gap:7px;margin-top:12px}.activity-admin-thumb{width:70px;height:52px;object-fit:cover;border-radius:8px}.content-admin-row{display:flex;gap:12px;align-items:center}
.gallery-grid{width:min(1260px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.gallery-card{overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow)}.gallery-card img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.gallery-card&gt;div,.gallery-card figcaption{padding:14px}.gallery-card h3{margin:.1rem 0 .35rem;color:#173e34}.gallery-card p{color:var(--muted);margin:.25rem 0}.gallery-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.gallery-admin-card{background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.gallery-admin-card img{width:100%;aspect-ratio:4/3;object-fit:cover}
.login-card{width:min(520px,calc(100% - 32px));margin:40px auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;box-shadow:var(--shadow)}label{font-weight:750;color:#344941;display:grid;gap:6px}input,select,textarea{width:100%;border:1px solid #cfdcd7;border-radius:10px;background:#fff;padding:11px 12px;color:#21332d;outline:none}textarea{min-height:110px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#74a994;box-shadow:0 0 0 3px rgba(11,104,76,.1)}.actions,.session-controls,.missing-editor-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.lookup-row{display:grid;grid-template-columns:1fr auto;gap:10px}.search-result{margin-top:10px;background:var(--soft);border-radius:10px;padding:12px}
.hod-admin{width:min(1260px,calc(100% - 32px));margin:0 auto}.hod-admin&gt;.page-head{width:100%}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.public-content-admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.public-content-admin&gt;section:last-child{grid-column:1/-1}.dashboard-metrics,.metric-grid,.student-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric,.pending-metric{background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px}.metric b,.pending-metric b{display:block;font-size:1.4rem;color:var(--green)}.workflow{display:grid;gap:10px}.workflow-next{background:#f8fbf9;border:1px solid var(--line);border-radius:10px;padding:12px}.approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.approval-banner,.approvals-panel{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px}.approval-count{font-weight:900;color:var(--green)}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:#fff}table{width:100%;border-collapse:collapse}th,td{padding:11px 12px;text-align:left;border-bottom:1px solid #e7eeeb;vertical-align:middle}th{background:#eaf3ef;color:#28453c;font-weight:850}tr:last-child td{border-bottom:0}.record-title small,.attendance-row small,.approval-item small{display:block;color:var(--muted)}.state,.att-status{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:850;background:var(--soft);color:#53605a}.student-results-table{width:100%}.student-result-paper{font-weight:750}.student-progress{height:8px;background:#e8efec;border-radius:999px;overflow:hidden}.student-progress&gt;span{display:block;height:100%;background:var(--green)}
.paper-tabs+.panel,.hod-admin .panel{width:100%}.mini-summary{display:flex;gap:14px;flex-wrap:wrap;color:var(--muted)}.record-title{min-width:0}.avatar{width:42px;height:42px;border-radius:50%;background:var(--soft);display:grid;place-items:center;font-weight:900;color:var(--green)}.empty-state{text-align:center;padding:28px;color:var(--muted)}.notification{position:fixed;right:20px;bottom:88px;z-index:80;max-width:360px;padding:12px 14px;background:#173e34;color:#fff;border-radius:10px;box-shadow:var(--shadow)}
.bottom-nav{display:none}

/* Shared public-page frame and readable detail labels. */
.about-faculty,.academic-outcomes-panel{width:min(1260px,calc(100% - 32px));margin:18px auto}
.faculty-profile-card summary>span:nth-child(2) b,.faculty-profile-card summary>span:nth-child(2) small,.activity-item>b,.activity-item>small,.gallery-card figcaption>b,.gallery-card figcaption>small{display:block}
.faculty-profile-card summary>span:nth-child(2){min-width:0}

/* Homepage layout corrections: keep card text and hero slides stable. */
.quick-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;text-align:center}
.quick-card>span,.quick-card>strong,.quick-card>small{display:block}
.quick-card>span{color:var(--gold-dark);font-size:.76rem;font-weight:900;letter-spacing:.12em;line-height:1.35}
.quick-card>strong{color:#123b31;font-size:1.35rem;line-height:1.25}
.quick-card>small{max-width:30ch;color:var(--muted);font-size:.95rem;line-height:1.45}
.campus-hero{height:470px;min-height:470px}
.campus-hero-content{width:min(1240px,92%);height:100%;padding:36px 0 36px 12%;display:flex;flex-direction:column;justify-content:center}
.campus-hero h1,#heroTitle{min-height:2em;line-height:1.02}
@media(max-width:760px){.campus-hero{height:auto;min-height:430px}.campus-hero-content{width:100%;height:auto;min-height:430px;padding:48px 54px 58px}}
@media(max-width:420px){.campus-hero-content{padding-left:38px;padding-right:38px}}
@media(max-width:1100px){.institution-inner{grid-template-columns:130px 1fr 130px;padding:0 3%}.institution-name{font-size:1.78rem}.institution-logo{width:96px;height:96px}.quick-grid,.six-cards,.mbu-cards,.university-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.campus-hero-content{padding-left:13%;width:82%}.dashboard-metrics,.metric-grid,.student-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body{padding-bottom:70px}.utility-inner{min-height:44px;padding:0 12px}.utility-title{font-size:.68rem;letter-spacing:.01em}.utility-links button{font-size:.76rem;padding:6px}.institution-inner{min-height:164px;padding:12px;display:grid;grid-template-columns:68px 1fr;align-items:start}.institution-logo{width:64px;height:64px}.institution-copy{grid-column:1/-1;margin-top:2px;text-align:center}.institution-name{font-size:1.12rem;white-space:normal}.institution-subtitle{font-size:.92rem}.institution-meta{font-size:.72rem;line-height:1.35}.top-actions{position:absolute;top:12px;right:12px}.session-badge{display:none}.header-signin,.ghost{padding:7px 9px;font-size:.78rem}.primary-nav{display:none}.bottom-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);left:0;right:0;bottom:0;z-index:100;background:#fff;border-top:1px solid var(--line);box-shadow:0 -6px 20px rgba(16,53,43,.08);padding:6px max(6px,env(safe-area-inset-left)) calc(6px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;color:#5d6d67;display:grid;place-items:center;gap:2px;padding:4px 2px;font-size:.68rem}.bottom-nav button.active{color:var(--green)}.nav-icon{font-size:1.22rem;line-height:1}.campus-hero{width:100%;min-height:430px}.campus-hero-content{width:100%;padding:48px 54px 58px}.campus-hero h1,#heroTitle{font-size:clamp(2.65rem,13vw,4rem)}.campus-hero p,#heroText{font-size:1rem}.hero-arrow{width:42px;height:42px;font-size:1.4rem}.hero-prev{left:8px}.hero-next{right:8px}.hero-primary,.hero-secondary{padding:11px 16px}.home-intro{grid-template-columns:1fr;gap:22px;padding-top:32px}.lead-brand{font-size:2.05rem}.lead-acronym{font-size:.95rem;gap:.3rem .45rem}.quick-grid,.six-cards,.mbu-cards,.university-cards,.grid-2,.paper-card-grid,.programme-outcomes-grid,.activity-category-grid,.gallery-grid,.gallery-admin-grid,.admin-grid,.public-content-admin,.approval-grid{grid-template-columns:1fr}.quick-card{min-height:auto}.page-head{padding-top:26px}.page-head h1{font-size:2rem}.faculty-bio-body{grid-template-columns:1fr}.academic-day-row{grid-template-columns:44px 1fr;padding:9px}.academic-day-row&gt;span:last-child{grid-column:2}.outcome-row{grid-template-columns:46px 1fr}.activity-image-grid{grid-template-columns:1fr}.dashboard-metrics,.metric-grid,.student-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.lookup-row{grid-template-columns:1fr}.paper-row{grid-template-columns:46px 1fr}.paper-row .open-paper{grid-column:2;justify-self:start}.notification{left:12px;right:12px;bottom:82px}.table-wrap{border-radius:10px}th,td{padding:9px 8px;font-size:.88rem}}
@media(max-width:420px){.dashboard-metrics,.metric-grid,.student-metrics{grid-template-columns:1fr}.campus-hero-content{padding-left:38px;padding-right:38px}.faculty-profile-card summary{grid-template-columns:48px 1fr}.profile-open{grid-column:2}.lead-divider{font-size:.84em}}

/* Final hero composition: equal slide frame, independent text layers, right-aligned actions. */
.campus-hero{height:470px;min-height:470px;overflow:hidden}
.campus-hero-content{box-sizing:border-box;width:min(1240px,92%);height:100%;min-height:0;padding:32px 0 54px 12%;display:flex;flex-direction:column;justify-content:center;align-items:stretch}
.campus-hero h1,#heroTitle{font-size:clamp(3rem,4.6vw,5.65rem);line-height:1.02;min-height:2.04em;margin:0 0 18px;max-width:100%;overflow-wrap:normal}
.campus-hero p,#heroText{max-width:100%;margin:0 0 22px}
.campus-hero p[hidden],#heroText[hidden]{display:none}
.campus-hero-actions{align-self:stretch;justify-content:flex-end}
@media(max-width:760px){.campus-hero{height:auto;min-height:430px}.campus-hero-content{width:100%;height:auto;min-height:430px;padding:48px 54px 58px}.campus-hero h1,#heroTitle{font-size:clamp(2.65rem,13vw,4rem);min-height:0;margin-bottom:18px}.campus-hero-actions{align-self:stretch;justify-content:flex-end}}
@media(max-width:420px){.campus-hero-content{padding-left:38px;padding-right:38px}}

.career-card summary{cursor:pointer;list-style:none;outline:none}.career-card summary::-webkit-details-marker{display:none}.career-card summary h2{margin:0 0 .45rem}.career-card summary p{margin:0}.career-open{display:inline-block;margin-top:.7rem;font-size:.86rem;font-weight:800;color:#0b684c}.career-weekly{margin-top:1rem;padding-top:1rem;border-top:1px solid #dfe7e3}.career-weekly-head{display:flex;gap:.75rem;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;margin-bottom:.6rem}.career-weekly-head b{color:#0b684c}.career-weekly-head small{color:#65736e}.career-opportunity{padding:.85rem 0;border-top:1px solid #edf1ef}.career-opportunity:first-of-type{border-top:0}.career-opportunity h3{margin:0 0 .35rem;font-size:1rem}.career-opportunity p{margin:.25rem 0;line-height:1.5}.career-opportunity small{display:block;color:#66736e;margin-top:.25rem}.career-source{display:inline-block;margin-top:.6rem;text-decoration:none}.career-status{background:#f7faf8;border:1px solid #e1e9e5;border-radius:10px;padding:.85rem;margin-top:.45rem}.career-status h3{margin-top:0}@media(max-width:760px){.career-weekly-head{display:block}.career-card{grid-column:1/-1}} 
.face-pilot-card{width:min(1260px,calc(100% - 32px));margin:18px auto;border-top:4px solid var(--green)}.face-pilot-card h2{margin:.3rem 0}.face-pilot-card p{max-width:900px}.face-pilot-list{margin:.8rem 0;padding-left:1.25rem;color:var(--muted);display:grid;gap:.35rem}.face-status-chip{display:inline-block;border-radius:999px;background:var(--soft);border:1px solid var(--line);padding:6px 10px;color:var(--green-dark);font-weight:800;font-size:.84rem}.face-consent-form{display:grid;gap:12px;margin-top:16px}.face-consent-check{display:flex;align-items:flex-start;gap:9px;font-weight:600}.face-consent-check input{width:auto;margin-top:4px}.face-consent-form button,.face-pilot-card .danger-button{width:max-content}
.faculty-mobile-pilot-card{width:min(1260px,calc(100% - 32px));margin:18px auto;border-top:4px solid var(--gold)}.faculty-mobile-pilot-card h2{margin:.3rem 0}.faculty-mobile-pilot-card>p{max-width:920px}.faculty-mobile-status-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.faculty-mobile-chip{background:#f8fbf9;border:1px solid #e2ece7;border-radius:11px;padding:11px 12px;display:grid;gap:3px}.faculty-mobile-chip span{color:var(--muted);font-size:.86rem}.faculty-mobile-chip b{color:var(--green-dark);font-size:1rem}.faculty-mobile-chip b.ok{color:#0d7047}.faculty-mobile-pilot-list{margin:14px 0;padding-left:1.25rem;color:var(--muted);display:grid;gap:5px}.faculty-mobile-next{display:grid;gap:7px;margin-top:14px}.faculty-mobile-next ol{margin:0;padding-left:1.25rem;display:grid;gap:4px}.faculty-mobile-readonly-note{display:grid;gap:3px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8fbf9}.faculty-mobile-readonly-note span{color:var(--muted)}.faculty-mobile-device-note{display:grid;gap:8px;margin-top:14px;padding:14px 16px;border:1px solid #edd58b;border-radius:12px;background:#fff7dc;color:#72540a}.faculty-mobile-device-note span{color:#785f18}.faculty-mobile-device-status{font-size:.91rem;font-weight:700}.faculty-mobile-device-status.ok{color:#0d7047}.faculty-mobile-device-status.fail{color:#a2392f}.faculty-mobile-device-note button{width:max-content}.faculty-mobile-actions{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin-top:16px}.faculty-mobile-actions button{align-self:center}.faculty-mobile-today{min-width:250px;display:grid;gap:3px;padding:12px 14px;background:#f8fbf9;border:1px solid var(--line);border-radius:10px}.faculty-mobile-today span{color:var(--muted);font-size:.92rem}.inline-danger{border:0;background:transparent;color:var(--danger);font-weight:800;padding:0;margin-left:4px;text-decoration:underline}@media(max-width:760px){.faculty-mobile-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.faculty-mobile-pilot-card{width:calc(100% - 32px)}.faculty-mobile-device-note button{width:100%}.faculty-mobile-actions{display:grid;grid-template-columns:1fr}.faculty-mobile-today{min-width:0}.faculty-mobile-actions button{width:100%}}
.faculty-mobile-actions button:disabled{opacity:.42;filter:grayscale(.45);cursor:not-allowed;box-shadow:none;transform:none}
.faculty-mobile-actions button:disabled:hover{background:inherit}
.faculty-mobile-actions button:focus-visible{outline:3px solid rgba(243,187,32,.7);outline-offset:2px}

/* Independent biometric-attendance module and read-only dashboard links. */
.biometric-module-intro{width:min(1260px,calc(100% - 32px));margin:18px auto;border-top:4px solid var(--gold);box-sizing:border-box}.biometric-module-intro>p{max-width:980px}.biometric-module-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.biometric-module-links span{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:#f8fbf9;color:var(--muted)}.biometric-module-links b{color:var(--green-dark)}.biometric-dashboard-card,.biometric-hod-module,.biometric-student-module{width:100%;margin:18px 0;border-top:4px solid var(--green);box-sizing:border-box}.biometric-dashboard-card h2,.biometric-hod-module h2,.biometric-student-module h2{margin:.3rem 0}.biometric-dashboard-card>p,.biometric-hod-module>p,.biometric-student-module>p{max-width:980px}.biometric-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.biometric-summary-chip{display:grid;gap:3px;padding:11px 12px;background:#f8fbf9;border:1px solid #e2ece7;border-radius:11px}.biometric-summary-chip span{color:var(--muted);font-size:.86rem}.biometric-summary-chip b{color:var(--green-dark);font-size:1rem}.biometric-summary-chip b.ok{color:#0d7047}.biometric-dashboard-card .actions{margin-top:12px}.biometric-hod-policy{display:grid;gap:5px;margin:16px 0;padding:13px 15px;border:1px solid #edd58b;border-radius:12px;background:#fff7dc;color:#72540a}.biometric-hod-policy span{color:#785f18}.biometric-hod-table{min-width:760px}.biometric-hod-table td small{display:block;color:var(--muted);margin-top:3px}.biometric-correct-button{white-space:nowrap}.biometric-hod-correction{margin-top:16px}.biometric-hod-form{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:12px;background:#f8fbf9}.biometric-hod-form>div:first-child{display:grid;gap:3px}.biometric-hod-form>div:first-child span{color:var(--muted)}.biometric-hod-form .actions{margin-top:2px}.biometric-recent{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.biometric-recent>summary{cursor:pointer;color:var(--green-dark);font-weight:850}.biometric-recent .table-wrap{margin-top:12px}.biometric-readonly-note{display:grid;gap:5px;margin-top:16px;padding:13px 15px;border:1px solid var(--line);border-radius:11px;background:#f8fbf9}.biometric-readonly-note span{color:var(--muted)}.biometric-module-intro .faculty-mobile-pilot-card{width:100%;margin:18px 0}
@media(max-width:760px){.biometric-module-links{grid-template-columns:1fr}.biometric-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.biometric-module-intro{width:calc(100% - 32px);padding:16px}.biometric-hod-table{min-width:740px}}
@media(max-width:420px){.biometric-summary-grid{grid-template-columns:1fr}}

/* v93 — normalize the HoD setup frame with the shared dashboard width. */
#hodBiometricSetup{width:min(1260px,calc(100% - 32px));margin:18px auto;box-sizing:border-box}
#hodBiometricSetup>.biometric-hod-setup{width:100%;margin:0}
#hodBiometricSetup .form-note:empty{display:none}
@media(max-width:760px){#hodBiometricSetup{width:calc(100% - 32px)}}

/* Independent biometric entry and explicit synchronization status. */
.biometric-login-card{border-top:4px solid var(--gold)}
.biometric-sync-note{display:grid;gap:5px;margin:16px 0;padding:13px 15px;border:1px solid #b8ddca;border-radius:12px;background:#eefaf3;color:#075d42}
.biometric-sync-note span{color:#315f50}
.biometric-sync-note .actions{margin-top:4px}
.biometric-public-entry{width:100%;margin:18px 0;border-top:4px solid var(--green);box-sizing:border-box}
.biometric-public-entry h2{margin:.3rem 0}
.biometric-public-entry>p{max-width:900px}
.biometric-public-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.biometric-public-actions button{min-width:190px}
.biometric-public-setup{display:grid;gap:5px;margin-top:16px;padding:13px 15px;border:1px solid #edd58b;border-radius:12px;background:#fff7dc;color:#72540a}
.biometric-public-setup span{color:#785f18}
.biometric-public-setup .actions{margin-top:4px}
@media(max-width:760px){.biometric-sync-note .actions{display:grid;grid-template-columns:1fr}.biometric-sync-note .actions button{width:100%}}
@media(max-width:760px){.biometric-public-actions{display:grid;grid-template-columns:1fr}.biometric-public-actions button{width:100%;min-width:0}.biometric-public-setup .actions{display:grid;grid-template-columns:1fr}.biometric-public-setup .actions button{width:100%}}

/* v89 — show faculty particulars and the audited attendance remarks workflow. */
.biometric-attendance-shell{width:min(1260px,calc(100% - 32px));margin:18px auto;box-sizing:border-box}
.biometric-public-entry{width:100%;margin:0;border-top:4px solid var(--green);box-sizing:border-box}
.biometric-public-entry h2{margin:.3rem 0 0}
.biometric-public-today{display:grid;gap:3px;width:max-content;min-width:260px;margin-top:16px;padding:12px 14px;background:#f8fbf9;border:1px solid var(--line);border-radius:10px}
.biometric-public-person-name{display:block;margin-top:3px;color:var(--green-dark);font-size:1.08rem;line-height:1.3}
.biometric-public-today span{color:var(--muted);font-size:.92rem}
.biometric-public-actions{margin-top:16px}
.biometric-hod-setup{width:100%;margin:18px 0;border-top:4px solid var(--gold);box-sizing:border-box}
.biometric-hod-setup h2{margin:.3rem 0}
.biometric-hod-setup .actions{align-items:center}
.biometric-setup-confirmation{padding:11px 0;color:var(--green-dark);font-weight:800}
@media(max-width:760px){.biometric-attendance-shell{width:calc(100% - 32px)}.biometric-public-today{width:100%;min-width:0;box-sizing:border-box}.biometric-hod-setup .actions{display:grid;grid-template-columns:1fr}.biometric-hod-setup .actions button{width:100%}.biometric-setup-confirmation{padding:0}}

/* v89 — daily HoD register and audited CL/ML/OD applications. */
.biometric-hod-daily-table{min-width:820px}
.biometric-hod-daily-table th:first-child,.biometric-hod-daily-table td:first-child{width:58px;text-align:center}
.biometric-hod-daily-table td small,.attendance-exception-review-table td small,.attendance-exception-table td small{display:block;margin-top:3px;color:var(--muted)}
.attendance-remark-cell{min-width:250px;vertical-align:top}
.attendance-remark{display:grid;gap:2px;margin-bottom:8px}
.attendance-remark b{color:var(--green-dark)}
.attendance-remark span,.attendance-remark small{color:var(--muted)}
.student-attendance-remark{display:inline-flex;min-width:220px;padding:12px 16px;border:1px solid var(--line);border-radius:10px;background:#f8fbf9;color:var(--green-dark);font-size:1.05rem}
.attendance-remark-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.attendance-remark-actions button{padding:5px 9px;font-size:.82rem}
.attendance-exception-card{width:min(1260px,calc(100% - 32px));margin:18px auto;border-top:4px solid var(--gold);box-sizing:border-box}
.attendance-exception-card h2{margin:.3rem 0}
.attendance-exception-card>p{max-width:950px}
.attendance-exception-form{display:grid;grid-template-columns:minmax(170px,.55fr) minmax(190px,.65fr) minmax(280px,1.8fr);gap:12px;align-items:end;margin-top:16px}
.attendance-exception-form label{min-width:0}
.attendance-exception-reason{grid-column:span 1}
.attendance-exception-form .actions{grid-column:1/-1}
.attendance-exception-form-status{min-height:1.4em}
.attendance-exception-history{margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}
.attendance-exception-history h3{margin:.1rem 0 .75rem;color:var(--green-dark)}
.attendance-exception-table{min-width:720px}
.attendance-exception-review{margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.attendance-exception-review .record-title{margin-bottom:12px}
.attendance-exception-review h3{margin:.2rem 0}
.attendance-exception-review-table{min-width:980px}
.attendance-exception-review-table td:last-child{min-width:210px}
@media(max-width:760px){
  .attendance-exception-card{width:calc(100% - 32px)}
  .attendance-exception-form{grid-template-columns:1fr}
  .attendance-exception-reason{grid-column:auto}
  .attendance-exception-form .actions{display:grid;grid-template-columns:1fr}
  .attendance-exception-form .actions button{width:100%}
  .biometric-hod-daily-table{min-width:820px}
}

/* v90 — consistent dashboard frames and role-specific biometric visibility. */
.dashboard-frame{width:min(1260px,calc(100% - 32px));margin-left:auto;margin-right:auto;box-sizing:border-box}
.semester-paper-section.dashboard-frame{margin-top:18px;margin-bottom:18px}
.dashboard-frame .section-heading{width:100%;margin:0 0 12px}
.dashboard-frame .paper-card-grid{width:100%}
#biometricAttendanceDashboardSummary>.biometric-hod-module,
#biometricAttendanceDashboardSummary>.biometric-hod-setup{width:min(1260px,calc(100% - 32px));margin-left:auto;margin-right:auto}
.attendance-exception-review+.attendance-exception-review{margin-top:20px}
@media(max-width:760px){
  .dashboard-frame{width:calc(100% - 32px)}
  .dashboard-frame .section-heading{width:100%}
  #biometricAttendanceDashboardSummary>.biometric-hod-module,
  #biometricAttendanceDashboardSummary>.biometric-hod-setup{width:calc(100% - 32px)}
}

/* v97 — role dashboards use a single-open accordion for compact navigation. */
.dashboard-accordion{width:min(1260px,calc(100% - 32px));margin:14px auto;box-sizing:border-box;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:0 4px 18px rgba(16,53,43,.06)}
.dashboard-accordion>summary{display:flex;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;list-style:none;color:var(--green-dark);font-size:1.05rem;font-weight:850}
.dashboard-accordion>summary::-webkit-details-marker{display:none}
.dashboard-accordion>summary::after{content:'+';margin-left:auto;color:var(--gold);font-size:1.35rem;line-height:1}
.dashboard-accordion[open]>summary::after{content:'−'}
.dashboard-accordion>summary:focus-visible{outline:3px solid rgba(8,128,93,.35);outline-offset:-3px}
.dashboard-accordion>summary>span:first-child{min-width:0}
.dashboard-accordion-hint{margin-left:auto;color:var(--muted);font-size:.8rem;font-weight:650;white-space:nowrap}
.dashboard-accordion-body{padding:0 16px 16px;border-top:1px solid var(--line);background:#fff}
.dashboard-accordion-body>.dashboard-frame{width:100%;margin:0}
.dashboard-accordion-body>#biometricAttendanceDashboardSummary,
.dashboard-accordion-body>#attendanceExceptionFaculty,
.dashboard-accordion-body>#attendanceExceptionStudent,
.dashboard-accordion-body>#hodBiometricSetup{width:100%;margin:0;box-sizing:border-box}
.dashboard-accordion-body>#biometricAttendanceDashboardSummary>.biometric-hod-module,
.dashboard-accordion-body>#biometricAttendanceDashboardSummary>.biometric-dashboard-card,
.dashboard-accordion-body>#attendanceExceptionFaculty>.attendance-exception-card,
.dashboard-accordion-body>#attendanceExceptionStudent>.attendance-exception-card,
.dashboard-accordion-body>#hodBiometricSetup>.biometric-hod-setup{width:100%;margin:0}
@media(max-width:760px){
  .dashboard-accordion{width:calc(100% - 32px);margin:12px auto}
  .dashboard-accordion>summary{padding:14px;font-size:.98rem}
  .dashboard-accordion-hint{font-size:.74rem}
  .dashboard-accordion-body{padding:0 8px 10px}
}

/* SGGDCCOM Flipped Classroom - Release 1 */
.flipped-launch-card{display:flex;align-items:center;justify-content:space-between;gap:18px;border-left:4px solid var(--accent,#1f6f5f)}
.flipped-launch-card h2,.flipped-toolbar p{margin:.2rem 0}
.flipped-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.flipped-filters{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}
.flipped-filter.active{box-shadow:inset 0 0 0 2px currentColor}
.flipped-grid{align-items:stretch}
.flipped-class-card{display:flex;flex-direction:column;gap:9px}
.flipped-class-card .actions{margin-top:auto}
.flipped-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.flipped-progress-line{height:8px;border-radius:99px;background:rgba(127,127,127,.18);overflow:hidden;margin-top:6px}
.flipped-progress-line span{display:block;height:100%;background:currentColor;border-radius:inherit}
.flipped-resource-list{display:grid;gap:12px}
.flipped-resource{border:1px solid rgba(127,127,127,.25);border-radius:14px;padding:16px;background:rgba(255,255,255,.02)}
.flipped-resource.completed{outline:2px solid rgba(35,135,85,.25)}
.flipped-resource h3{margin:.25rem 0}
.flipped-resource p{margin:.35rem 0}
.flipped-notes{margin:10px 0;padding:10px 12px;border-radius:10px;background:rgba(127,127,127,.08)}
.flipped-notes summary{cursor:pointer;font-weight:700}
.flipped-form-card form{display:grid;gap:14px}
.flipped-form-card label{display:grid;gap:6px}
.flipped-check{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;justify-content:flex-start;gap:8px!important}
.flipped-workflow-actions{margin:16px 0}
@media(max-width:720px){.flipped-launch-card,.flipped-toolbar{align-items:stretch;flex-direction:column}.flipped-launch-card button,.flipped-toolbar .actions button{width:100%}.flipped-resource .actions{display:grid}.flipped-resource .actions button{width:100%}}


/* SGGDCCOM v100 — compact Flipped Classroom launcher */
.flipped-launch-card{min-height:62px!important;padding:10px 18px!important;margin:12px auto!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;border-left:0!important;border-radius:16px!important;box-shadow:var(--shadow)!important}
.flipped-launch-card .eyebrow,.flipped-launch-card p{display:none!important}
.flipped-launch-card h2{margin:0!important;font-size:1.05rem!important;line-height:1.2!important}
.flipped-launch-card button{min-height:42px!important;padding:10px 16px!important;white-space:nowrap!important}
@media(max-width:760px){.flipped-launch-card{width:calc(100% - 32px)!important;padding:12px 14px!important;flex-direction:row!important;align-items:center!important}.flipped-launch-card h2{font-size:1rem!important}.flipped-launch-card button{width:auto!important;min-height:40px!important;padding:8px 12px!important}}


/* v101 — align Flipped Classroom launcher width with dashboard accordions */
.flipped-launch-card{width:min(1260px,calc(100% - 32px));margin:14px auto;box-sizing:border-box}
@media(max-width:760px){.flipped-launch-card{width:calc(100% - 32px);margin:12px auto}}


/* v103 — standardize Flipped Classroom inner-page alignment */
.flipped-toolbar,
.flipped-filters,
.flipped-grid,
.flipped-toolbar + .metric-grid.dashboard-metrics{
  width:min(1260px,calc(100% - 32px));
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.flipped-toolbar{margin-top:14px;margin-bottom:16px}
.flipped-toolbar + .metric-grid.dashboard-metrics{margin-top:0;margin-bottom:16px}
.flipped-filters{margin-top:0;margin-bottom:16px}
.flipped-grid{margin-top:0;margin-bottom:18px}
.flipped-grid:has(> :only-child){grid-template-columns:minmax(0,640px);justify-content:center}
@media(max-width:760px){
  .flipped-toolbar,
  .flipped-filters,
  .flipped-grid,
  .flipped-toolbar + .metric-grid.dashboard-metrics{width:calc(100% - 32px)}
  .flipped-grid:has(> :only-child){grid-template-columns:1fr}
}


/* v104 — Online Exams Phase 1 */
.exam-launch-card{width:min(1260px,calc(100% - 32px));margin:14px auto;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px!important;min-height:64px}
.exam-launch-card h2{margin:0;font-size:1.05rem}.exam-launch-card button{min-height:40px}
.online-exam-toolbar,.online-exam-metrics,.online-exam-filters,.online-exam-grid,.online-exam-detail,.online-exam-question-bank,.online-exam-monitor,.online-exam-form-card,.online-exam-attempt-toolbar,.online-exam-question-stack,.online-exam-submitbar,.online-exam-result{width:min(1260px,calc(100% - 32px));margin-left:auto;margin-right:auto;box-sizing:border-box}
.online-exam-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:0;margin-bottom:18px}.online-exam-toolbar p{margin:.25rem 0 0}.online-exam-metrics{margin-bottom:18px}.online-exam-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}.online-exam-filter.active{box-shadow:inset 0 0 0 2px currentColor}
.online-exam-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:stretch}.online-exam-grid>:only-child{grid-column:1/-1;width:min(640px,100%);justify-self:center}.online-exam-card{display:flex;flex-direction:column;gap:9px;min-width:0}.online-exam-card .actions{margin-top:auto}.online-exam-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.online-exam-settings{border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;gap:8px;background:rgba(255,255,255,.55)}
.online-exam-question-admin{border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:14px;background:#fff}.online-exam-question-admin h3{margin:.25rem 0}.online-exam-option-admin{margin:.6rem 0 0;padding-left:1.4rem}.online-exam-option-admin li{margin:.3rem 0}.online-exam-option-admin li.correct{font-weight:800;color:var(--green-dark)}
.online-exam-options-editor{display:grid;gap:10px;border:1px solid var(--line);border-radius:14px;padding:14px}.exam-option-edit{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:10px;margin:0!important}.exam-option-edit>input[type="radio"],.exam-option-edit>input[type="checkbox"]{width:auto}
.online-exam-attempt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;position:sticky;top:0;z-index:8}.online-exam-attempt-toolbar p{margin:.25rem 0}.online-exam-timer-wrap{min-width:150px;text-align:center;border-left:1px solid var(--line);padding-left:18px}.online-exam-timer-wrap span{display:block;font-size:.8rem;color:var(--muted)}.online-exam-timer-wrap b{display:block;font-size:1.65rem;letter-spacing:.04em;color:var(--green-dark)}.online-exam-timer-wrap b.urgent{color:#a23b2a}
.online-exam-question-stack{display:grid;gap:16px}.online-exam-question{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff;box-shadow:0 4px 18px rgba(16,53,43,.05)}.online-exam-question>p{font-size:1.05rem;line-height:1.55;margin:.7rem 0 1rem}.online-exam-question-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.online-exam-answer-list{display:grid;gap:9px}.online-exam-answer{display:flex!important;align-items:flex-start;gap:10px!important;padding:11px 12px;border:1px solid var(--line);border-radius:12px;cursor:pointer;margin:0!important}.online-exam-answer:hover{background:rgba(8,128,93,.04)}.online-exam-answer input{width:auto;margin-top:.2rem}.exam-save-status{display:block;margin-top:10px;color:var(--muted)}.exam-save-status.fail{color:#a23b2a}
.online-exam-submitbar{margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:16px}.online-exam-submitbar small{display:block;color:var(--muted);margin-top:3px}
.online-exam-result{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}.online-exam-result>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.online-exam-result span{display:block;color:var(--muted);font-size:.8rem}.online-exam-result b{display:block;margin-top:4px;font-size:1.15rem}.online-exam-result.pass>div:nth-child(3){border-color:rgba(8,128,93,.35)}.online-exam-result.fail>div:nth-child(3){border-color:rgba(162,59,42,.35)}
@media(max-width:900px){.online-exam-grid{grid-template-columns:1fr}.online-exam-result{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.exam-launch-card,.online-exam-toolbar,.online-exam-metrics,.online-exam-filters,.online-exam-grid,.online-exam-detail,.online-exam-question-bank,.online-exam-monitor,.online-exam-form-card,.online-exam-attempt-toolbar,.online-exam-question-stack,.online-exam-submitbar,.online-exam-result{width:calc(100% - 32px)}.exam-launch-card,.online-exam-toolbar,.online-exam-attempt-toolbar,.online-exam-submitbar{flex-direction:column;align-items:stretch}.exam-launch-card button,.online-exam-toolbar .actions button,.online-exam-submitbar .actions button{width:100%}.online-exam-timer-wrap{border-left:0;border-top:1px solid var(--line);padding:10px 0 0}.online-exam-result{grid-template-columns:1fr}.online-exam-attempt-toolbar{position:static}}


/* v105 — Online Exam bulk MCQ CSV upload */
.online-exam-upload-card{max-width:1100px;margin:0 auto}.online-exam-upload-card input[type=file]{display:block;width:100%;margin-top:8px}.online-exam-upload-guide{margin:14px 0;padding:12px 14px;border:1px solid var(--line,#d9e3df);border-radius:12px;background:#f8fbfa}.online-exam-upload-card .table-wrap{margin-top:16px;max-height:440px;overflow:auto}.online-exam-upload-card table{min-width:860px}.online-exam-upload-card td:nth-child(3){min-width:320px}.online-exam-upload-card .actions{margin-top:16px}


/* v107 — seven automatic online-exam question types */
.matching-editor{display:grid;gap:10px;margin-top:10px}
.matching-pair-row{display:grid;grid-template-columns:32px 1fr 28px 1fr;gap:8px;align-items:center}
.matching-pair-row>span{text-align:center;font-weight:700}
.assertion-options{display:grid;gap:8px;margin-top:10px}
.auto-answer-key{margin-top:12px;padding:12px 14px;border-radius:10px;background:#f5f8f6;border:1px solid #d9e7df}
.matching-key{display:grid;gap:7px;margin-top:12px;padding-left:22px}
.matching-key li{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);gap:8px;align-items:center}
.student-matching{display:grid;gap:10px;margin-top:10px}
.student-match-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,1fr);gap:12px;align-items:center}
.online-exam-text-answer{width:100%;max-width:680px;margin-top:8px}
@media(max-width:700px){.matching-pair-row{grid-template-columns:28px 1fr}.matching-pair-row>span:nth-child(3){display:none}.matching-pair-row .match-right{grid-column:2}.student-match-row{grid-template-columns:1fr}}

/* v110 — HOD navigation, read-only faculty-wise papers, GPS and bulk-login controls */
.admin-back-row{width:min(1260px,calc(100% - 32px));margin:0 auto 12px;display:flex;justify-content:flex-start}
.hod-faculty-paper-grid{align-items:start}
.hod-readonly-faculty{padding:18px}
.hod-readonly-faculty .record-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:10px}
.hod-readonly-paper-list{display:grid;gap:8px}
.hod-readonly-paper{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 0;border-top:1px solid var(--line,#dbe5df)}
.hod-readonly-paper:first-child{border-top:0}
.hod-readonly-paper small{display:block;margin-top:3px;color:var(--muted,#64746d)}
.hod-readonly-paper>div:last-child{display:flex;align-items:center;gap:10px;white-space:nowrap}
.pending-paper-detail{margin-top:16px}
.pending-paper-detail summary{cursor:pointer;font-weight:800}
.pending-student-table{max-height:380px;overflow:auto}
#studentLoginCsv{margin:10px 0}
@media(max-width:760px){.admin-back-row{width:calc(100% - 32px)}.hod-readonly-paper{align-items:flex-start;flex-direction:column}.hod-readonly-paper>div:last-child{white-space:normal;flex-wrap:wrap}}

/* v112 — HOD Administration opens its full page directly from the dashboard row */
.dashboard-direct-launch>summary::after{content:'→'!important}
.dashboard-direct-launch[open]>summary::after{content:'→'!important}


/* accessibility-v67.css */
/* SGGDCCOM v67 — low-risk accessibility overrides only. */
:root{
  /* Darker companion to the existing gold, preserving the visual identity while
     bringing small gold text comfortably above WCAG AA contrast on white. */
  --gold-dark:#80600a;
}

/* The decorative LEAD separator was the other low-contrast text-colour candidate. */
.lead-divider{color:#765638!important}

/* Consistent, high-visibility keyboard focus without altering pointer interaction. */
a:focus-visible,
button:focus-visible,
summary:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible{
  outline:3px solid #0b684c!important;
  outline-offset:3px!important;
}

/* Keep focus visible on dark/green controls as well. */
.utility-bar button:focus-visible,
.header-signin:focus-visible,
.primary:focus-visible,
.hero-primary:focus-visible,
.hero-secondary:focus-visible,
.day-badge:focus-visible{
  outline-color:#f3bb20!important;
}

/* Avoid low-contrast placeholder text while keeping it visually secondary. */
input::placeholder,
textarea::placeholder{color:#596b64;opacity:1}


/* mobile-stability-v68.css */
/* SGGDCCOM v68 — mobile layout stability + touch-target accessibility.
   Presentation-only overrides; no DAS/auth/business logic changes. */

/* The small carousel indicators remain visually 10px dots, but each receives
   a full 48px hit area for keyboard/touch accessibility. */
.hero-dots{
  gap:4px!important;
  align-items:center;
}
.hero-dots button{
  position:relative;
  width:48px!important;
  height:48px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  border-radius:50%!important;
}
.hero-dots button::after{
  content:'';
  position:absolute;
  left:50%;top:50%;
  width:10px;height:10px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  border:1px solid #fff;
  background:transparent;
  box-sizing:border-box;
}
.hero-dots button.active::after{
  background:var(--gold);
  border-color:var(--gold);
}

@media (max-width:760px){
  /* Lighthouse initially sees the lightweight loading card and then the much
     taller homepage. Reserve below-the-fold space only during that boot phase
     so the footer never enters the initial viewport and then gets pushed away.
     The class is removed as soon as the real app view mounts. */
  body.app-booting .page-stage{
    min-height:max(1900px,220vh)!important;
  }

  /* Match the first viewport footprint of the real mobile hero while loading.
     This keeps the top of the page stable when the application replaces the
     boot message with the hero. */
  body.app-booting .boot-note{
    width:100%!important;
    max-width:none!important;
    min-height:430px!important;
    margin:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    display:flex!important;
    flex-direction:column;
    justify-content:center;
    padding:36px 38px!important;
  }

  /* Keep the fixed six-item mobile bar comfortably tappable. */
  .bottom-nav button{
    min-height:48px!important;
  }

  /* The larger hit areas should sit low in the hero without covering copy. */
  .hero-dots{
    bottom:2px!important;
  }
}


/* ui-v69.css */
/* SGGDCCOM v69 — requested visual refinements only. */

/* Give Explore Academics a clear secondary CTA colour against the dark hero. */
.hero-secondary{
  background:#ffffff!important;
  color:#0b684c!important;
  border-color:#ffffff!important;
  box-shadow:0 4px 14px rgba(0,0,0,.10);
}
.hero-secondary:hover{
  background:#f7f1d8!important;
  color:#073f31!important;
  border-color:#f7f1d8!important;
}

/* Student lookup should use the same centred frame width as the other DAS panels. */
.student-lookup-panel-v69,
section.panel.card:has(.lookup-row){
  width:min(1260px,calc(100% - 32px))!important;
  margin:18px auto!important;
}

/* Paper workspace / Period-wise Attendance frame should be centred like other frames. */
.paper-tabs + .panel.card{
  width:min(1260px,calc(100% - 32px))!important;
  margin:0 auto 18px!important;
}

/* Centre semester heading blocks in all faculty/HOD paper sections. */
.semester-paper-section > .section-heading{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  gap:2px!important;
}
.semester-paper-section > .section-heading > div{
  width:100%;
  text-align:center;
}
.semester-paper-section > .section-heading .eyebrow,
.semester-paper-section > .section-heading h2,
.semester-paper-section > .section-heading > span{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Current device location status inside the faculty biometric card. */
.faculty-current-location-v69{
  margin:12px 0 4px;
  padding:12px 14px;
  border:1px solid #d7e5df;
  border-radius:11px;
  background:#f8fbf9;
  display:grid;
  gap:4px;
}
.faculty-current-location-v69 b{color:#0b684c}
.faculty-current-location-v69 span{color:#586a63;font-size:.92rem;line-height:1.45}
.faculty-current-location-v69.is-ok{background:#edf8f2;border-color:#b9dfca}
.faculty-current-location-v69.is-error{background:#fff7dc;border-color:#edd58b}

@media(max-width:760px){
  .hero-secondary{min-width:150px}
  .student-lookup-panel-v69,
  section.panel.card:has(.lookup-row),
  .paper-tabs + .panel.card{
    width:calc(100% - 24px)!important;
    margin-left:auto!important;
    margin-right:auto!important;
  }
}


/* ui-v70.css */
/* SGGDCCOM v70 — authenticated timetable gate. */
.academic-private-gate{
  width:min(1260px,calc(100% - 32px));
  margin:15px auto;
  padding:24px;
  border-top:4px solid var(--green);
}
.academic-private-lock{
  display:grid;
  grid-template-columns:56px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
}
.academic-private-icon{
  width:52px;
  height:52px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:var(--soft);
  border:1px solid var(--line);
  font-size:1.35rem;
}
.academic-private-copy h2{margin:.25rem 0 .35rem;color:#173e34}
.academic-private-copy p{margin:0;color:var(--muted);max-width:760px}
.academic-private-signin{white-space:nowrap;min-height:44px}
@media(max-width:760px){
  .academic-private-gate{padding:20px}
  .academic-private-lock{grid-template-columns:46px 1fr}
  .academic-private-icon{width:44px;height:44px}
  .academic-private-signin{grid-column:1/-1;width:100%}
}


/* ui-v71.css */
/* SGGDCCOM v71 — simplify home hero and style the biometric attendance shortcut. */
.campus-hero .campus-hero-actions{
  display:none!important;
}
.utility-links button.utility-biometric{
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.24);
}
.utility-links button.utility-biometric:hover,
.utility-links button.utility-biometric:focus-visible{
  background:rgba(255,255,255,.22);
}
@media(max-width:760px){
  .utility-inner{gap:6px;padding-left:8px;padding-right:8px}
  .utility-title{max-width:31%;font-size:.61rem;line-height:1.15}
  .utility-links{gap:1px;min-width:0;justify-content:flex-end}
  .utility-links button{font-size:.64rem!important;padding:5px 4px!important;white-space:nowrap}
}


/* ui-v72.css */
/* SGGDCCOM v72 — ordered, centred Academics layout. */
.academics-order-section{width:min(1260px,calc(100% - 32px));margin:18px auto}
.academics-section-head{text-align:center;margin:0 auto 20px;max-width:900px}
.academics-section-head .eyebrow{justify-content:center;text-align:center}
.academics-section-head h2{margin:.3rem 0 .35rem;color:#173e34;font-size:clamp(1.75rem,3vw,2.35rem)}
.academics-section-head p{margin:0;color:var(--muted)}
.academics-centred-note{text-align:center}
.academics-condensed-stack{display:grid;gap:12px}
.academics-condensed,.course-outcomes-semester{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.academics-condensed>summary,.course-outcomes-semester>summary{cursor:pointer;list-style:none;text-align:center;font-weight:800;color:#173e34;padding:15px 18px;background:var(--soft)}
.academics-condensed>summary::-webkit-details-marker,.course-outcomes-semester>summary::-webkit-details-marker{display:none}
.academics-condensed>summary::after,.course-outcomes-semester>summary::after{content:' ▾';color:var(--green)}
.academics-condensed[open]>summary::after,.course-outcomes-semester[open]>summary::after{content:' ▴'}
.academics-condensed>.academic-day-programme{padding:12px 16px}
.academics-private-inline{display:grid;grid-template-columns:54px minmax(0,1fr) auto;gap:16px;align-items:center;border:1px solid var(--line);background:var(--soft);border-radius:14px;padding:18px}
.academics-private-inline h3{margin:0 0 4px;color:#173e34}.academics-private-inline p{margin:0;color:var(--muted)}
.academics-private-inline .primary{white-space:nowrap}
.academics-semesters-section{display:grid;gap:26px}
.academics-semester-block{width:100%}
.academics-paper-grid{align-items:stretch}
.academics-paper-card{margin:0}
.academics-outcomes-section{padding-top:26px}
.academics-outcome-subhead{text-align:center;margin:24px 0 12px}
.academics-outcome-subhead h3{margin:0;color:#173e34;font-size:1.25rem}
.course-outcomes-wrap{display:grid;gap:12px}
.course-outcomes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
.course-outcome-card{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fff}
.course-outcome-card b{color:#173e34}.course-outcome-card p{margin:.4rem 0 0}
.academics-master-section .table-wrap{margin:0;border-top:1px solid var(--line)}
@media(max-width:760px){
  .academics-order-section{width:min(100% - 20px,1260px);margin:12px auto}
  .academics-section-head{margin-bottom:14px}
  .academics-private-inline{grid-template-columns:44px 1fr;padding:15px}
  .academics-private-inline .primary{grid-column:1/-1;width:100%}
  .course-outcomes-grid{grid-template-columns:1fr}
}


/* ui-v73.css */
/* SGGDCCOM v73 — collapsed, mutually-exclusive Academics accordions. */
.academics-detail-note{padding:14px 18px;text-align:center;margin:0}
.academics-semesters-section{display:block}
.academics-semester-accordion,.academics-programme-papers-stack,.academics-outcome-sections{display:grid;gap:12px}
.academics-semester-papers,.academics-programme-papers,.academics-outcome-section{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.academics-semester-papers>summary,.academics-programme-papers>summary,.academics-outcome-section>summary{cursor:pointer;list-style:none;text-align:center;font-weight:800;color:#173e34;padding:15px 18px;background:var(--soft)}
.academics-semester-papers>summary::-webkit-details-marker,.academics-programme-papers>summary::-webkit-details-marker,.academics-outcome-section>summary::-webkit-details-marker,.course-outcome-card>summary::-webkit-details-marker{display:none}
.academics-semester-papers>summary::after,.academics-programme-papers>summary::after,.academics-outcome-section>summary::after,.course-outcome-card>summary::after{content:' ▾';color:var(--green)}
.academics-semester-papers[open]>summary::after,.academics-programme-papers[open]>summary::after,.academics-outcome-section[open]>summary::after,.course-outcome-card[open]>summary::after{content:' ▴'}
.academics-semester-papers>.academics-programme-papers-stack{padding:12px}
.academics-programme-papers>.academics-programme-paper-list{padding:0 12px 12px}
.academics-programme-papers .paper-list{margin-top:0}
.academics-programme-papers .paper-row:first-child{border-top:0}
.academics-outcome-section>.programme-outcomes-grid,.academics-outcome-section>.course-outcomes-wrap{padding:12px}
.academics-outcome-sections{margin-top:4px}
.course-outcome-card{padding:0;overflow:hidden;background:#fff}
.course-outcome-card>summary{cursor:pointer;list-style:none;text-align:left;font-weight:800;color:#173e34;padding:14px;background:#fff}
.course-outcome-card>p{padding:0 14px 14px;margin:0}
.course-outcomes-grid{padding:12px}
.programme-outcome-card{margin:0}
.programme-outcomes-grid{display:grid;grid-template-columns:1fr;gap:10px}
@media(max-width:760px){
  .academics-semester-papers>.academics-programme-papers-stack,.academics-outcome-section>.programme-outcomes-grid,.academics-outcome-section>.course-outcomes-wrap{padding:10px}
  .academics-programme-papers>.academics-programme-paper-list{padding:0 8px 10px}
}


/* ui-v74.css */
/* SGGDCCOM v74 — Academics typography + colour-coded accordion hierarchy.
   Presentation-only refinement. No application, attendance, marks, auth or backend logic changed. */

/* 1) More proportionate section headings */
.academics-section-head{margin-bottom:16px}
.academics-section-head .eyebrow{
  font-size:.78rem;
  letter-spacing:.16em;
}
.academics-section-head h2{
  font-size:clamp(1.38rem,2.2vw,1.82rem);
  line-height:1.15;
  margin:.28rem 0 .3rem;
}
.academics-section-head p{
  font-size:.96rem;
  line-height:1.45;
}

/* Compact the top page title slightly on Academics only. */
body:has(#app) #app .page-head h1{
  font-size:clamp(1.9rem,3.5vw,2.75rem);
}

/* 2) Clear semester colour identity — applied consistently wherever semester buttons occur. */
.academics-condensed-stack > details:nth-of-type(3n+1) > summary,
.academics-semester-accordion > details:nth-of-type(3n+1) > summary,
.course-outcomes-wrap > details:nth-of-type(3n+1) > summary{
  background:#e9f2ff;
  color:#174a87;
  border-color:#cfe1f7;
}
.academics-condensed-stack > details:nth-of-type(3n+2) > summary,
.academics-semester-accordion > details:nth-of-type(3n+2) > summary,
.course-outcomes-wrap > details:nth-of-type(3n+2) > summary{
  background:#fff4d8;
  color:#825a00;
  border-color:#f2dda4;
}
.academics-condensed-stack > details:nth-of-type(3n+3) > summary,
.academics-semester-accordion > details:nth-of-type(3n+3) > summary,
.course-outcomes-wrap > details:nth-of-type(3n+3) > summary{
  background:#f3eafe;
  color:#6b2d88;
  border-color:#dfcef2;
}

/* 3) Programme/group buttons — each visible group gets its own restrained colour. */
.academics-programme-papers-stack > details:nth-of-type(4n+1) > summary,
.programme-outcomes-grid > details:nth-of-type(4n+1) > summary{
  background:#e7f6ef;
  color:#116149;
  border-left:5px solid #27936f;
}
.academics-programme-papers-stack > details:nth-of-type(4n+2) > summary,
.programme-outcomes-grid > details:nth-of-type(4n+2) > summary{
  background:#eaf2ff;
  color:#24528a;
  border-left:5px solid #5689c8;
}
.academics-programme-papers-stack > details:nth-of-type(4n+3) > summary,
.programme-outcomes-grid > details:nth-of-type(4n+3) > summary{
  background:#fff0e4;
  color:#8a4b19;
  border-left:5px solid #d58a4c;
}
.academics-programme-papers-stack > details:nth-of-type(4n+4) > summary,
.programme-outcomes-grid > details:nth-of-type(4n+4) > summary{
  background:#f4ecfa;
  color:#6c3c80;
  border-left:5px solid #9a6cb0;
}

/* 4) Course Outcome buttons receive a lighter alternating palette. */
.course-outcomes-grid > details:nth-of-type(4n+1) > summary{background:#eff9f4;color:#165f49;border-left:4px solid #42a681}
.course-outcomes-grid > details:nth-of-type(4n+2) > summary{background:#f0f5fd;color:#285382;border-left:4px solid #6f95c4}
.course-outcomes-grid > details:nth-of-type(4n+3) > summary{background:#fff6eb;color:#80501f;border-left:4px solid #d4a05f}
.course-outcomes-grid > details:nth-of-type(4n+4) > summary{background:#f7f1fb;color:#684178;border-left:4px solid #a37bb2}

/* 5) Programme Outcomes / Course Outcomes master buttons — different but coordinated colours. */
.academics-outcome-sections > details:nth-of-type(1) > summary{
  background:#e8f5ef;
  color:#125d45;
  border-left:5px solid #2d8c69;
}
.academics-outcome-sections > details:nth-of-type(2) > summary{
  background:#edf3ff;
  color:#244f87;
  border-left:5px solid #5f88c6;
}

/* Keep all coloured controls compact and visually consistent. */
.academics-condensed>summary,
.course-outcomes-semester>summary,
.academics-semester-papers>summary,
.academics-programme-papers>summary,
.academics-outcome-section>summary,
.course-outcome-card>summary,
.programme-outcome-card>summary{
  min-height:48px;
  display:flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  transition:filter .15s ease,box-shadow .15s ease;
}
.academics-condensed>summary:hover,
.course-outcomes-semester>summary:hover,
.academics-semester-papers>summary:hover,
.academics-programme-papers>summary:hover,
.academics-outcome-section>summary:hover,
.course-outcome-card>summary:hover,
.programme-outcome-card>summary:hover{
  filter:brightness(.985);
}

/* Programme outcome summary markup contains a span; keep it centred. */
.programme-outcome-card>summary span{display:block;text-align:center;width:100%}
.programme-outcome-card>summary small{display:block;margin-top:2px;color:inherit;opacity:.78}

@media(max-width:760px){
  .academics-section-head h2{font-size:1.32rem}
  .academics-section-head .eyebrow{font-size:.72rem}
  .academics-section-head p{font-size:.9rem}
  .academics-condensed>summary,
  .course-outcomes-semester>summary,
  .academics-semester-papers>summary,
  .academics-programme-papers>summary,
  .academics-outcome-section>summary,
  .course-outcome-card>summary,
  .programme-outcome-card>summary{min-height:46px;padding:12px 14px}
}


/* ui-v75.css */
/* SGGDCCOM v75 — Career Hub visual hierarchy + accordion consistency.
   Presentation-only refinement built on v74. No data, expiry, auth or backend rules changed. */

/* More proportionate Career Hub page and section typography. */
#app .page-head h1{
  font-size:clamp(1.9rem,3.5vw,2.75rem);
}
#app .career-card>summary h2{
  font-size:clamp(1.08rem,1.7vw,1.28rem);
  line-height:1.2;
  margin:0 0 .24rem;
}
#app .career-card>summary p{
  font-size:.9rem;
  line-height:1.4;
  margin:.14rem 0 .34rem;
}
#app .career-card>summary .career-open{
  font-size:.8rem;
}

/* Each career category receives a distinct restrained colour identity. */
#app .grid-2 > .career-card:nth-of-type(8n+1) > summary{
  background:#e7f6ef;
  color:#116149;
  border-left:5px solid #27936f;
}
#app .grid-2 > .career-card:nth-of-type(8n+2) > summary{
  background:#eaf2ff;
  color:#24528a;
  border-left:5px solid #5689c8;
}
#app .grid-2 > .career-card:nth-of-type(8n+3) > summary{
  background:#fff4d8;
  color:#825a00;
  border-left:5px solid #d6a839;
}
#app .grid-2 > .career-card:nth-of-type(8n+4) > summary{
  background:#f3eafe;
  color:#6b2d88;
  border-left:5px solid #9a6cb0;
}
#app .grid-2 > .career-card:nth-of-type(8n+5) > summary{
  background:#e8f7f8;
  color:#17636a;
  border-left:5px solid #4b9ba2;
}
#app .grid-2 > .career-card:nth-of-type(8n+6) > summary{
  background:#fff0e4;
  color:#8a4b19;
  border-left:5px solid #d58a4c;
}
#app .grid-2 > .career-card:nth-of-type(8n+7) > summary{
  background:#eef5e8;
  color:#3f6525;
  border-left:5px solid #6e9a4b;
}
#app .grid-2 > .career-card:nth-of-type(8n+8) > summary{
  background:#f2f2f5;
  color:#4c4f5b;
  border-left:5px solid #8e92a0;
}

/* Keep Career accordion controls compact, centred and consistent with Academics. */
#app .career-card>summary{
  min-height:72px;
  box-sizing:border-box;
  padding:14px 18px;
  text-align:center;
  transition:filter .15s ease,box-shadow .15s ease;
}
#app .career-card>summary:hover{filter:brightness(.985)}
#app .career-card[open]>summary{box-shadow:inset 0 -1px 0 rgba(15,70,54,.12)}

/* Opportunity body: readable but subordinate to the category button. */
#app .career-weekly{padding-top:14px}
#app .career-weekly-head{text-align:center;margin-bottom:12px}
#app .career-weekly-head b{font-size:.96rem}
#app .career-weekly-head small{font-size:.78rem}
#app .career-opportunity h3{font-size:1rem;line-height:1.3}
#app .career-opportunity p{font-size:.9rem;line-height:1.45}

@media(max-width:760px){
  #app .career-card>summary{min-height:66px;padding:12px 14px}
  #app .career-card>summary h2{font-size:1.02rem}
  #app .career-card>summary p{font-size:.84rem}
  #app .career-card>summary .career-open{font-size:.75rem}
}


/* seo-branding-v76.css */
/* SGGDCCOM v76 — search-aligned brand descriptor. Presentation only. */
.institution-seo-descriptor{
  margin-top:5px;
  color:#315a4e;
  font-size:.88rem;
  font-weight:800;
  letter-spacing:.035em;
}
@media(max-width:760px){
  .institution-seo-descriptor{font-size:.69rem;line-height:1.35;letter-spacing:.01em;margin-top:4px}
}


/* print-reports-v142.css */
.sggdc-report-print-row{display:flex;align-items:center;justify-content:flex-end;gap:.65rem;margin:0 0 .8rem;padding:.65rem .8rem;border:1px solid rgba(15,23,42,.12);border-radius:12px;background:rgba(248,250,252,.94)}.sggdc-report-print-row span{font-size:.78rem;font-weight:700;color:#475569}.sggdc-report-print-btn{white-space:nowrap}@media(max-width:640px){.sggdc-report-print-row{align-items:stretch;flex-direction:column}.sggdc-report-print-btn{width:100%}}@media print{.sggdc-report-print-row{display:none!important}}

/* stock-market-lab.css */

.ml-root{max-width:1180px;margin:0 auto 48px}
.ml-nav-link{white-space:nowrap}
.ml-loading,.ml-empty{padding:24px;text-align:center;color:#5d6b66;background:#f8fbfa;border:1px dashed #ccdcd6;border-radius:14px}
.ml-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;flex-wrap:wrap;margin:4px 0 18px}
.ml-toolbar h2{margin:3px 0 4px}.ml-toolbar p{margin:0;color:#596a64;max-width:760px}
.ml-note{padding:12px 14px;border-radius:12px;margin:12px 0;font-size:.93rem}
.ml-note-info{background:#eef8f5;border:1px solid #cce8df;color:#174f41}
.ml-note-warning{background:#fff8e8;border:1px solid #efd99b;color:#704f00}
.ml-card{background:#fff;border:1px solid #dbe7e2;border-radius:16px;padding:18px;margin:14px 0;box-shadow:0 4px 18px rgba(17,69,55,.04)}
.ml-card h3{margin:3px 0 10px}.ml-subtle{color:#65736e;font-size:.9rem;margin-top:-4px}
.ml-badge{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:.72rem;font-weight:800;letter-spacing:.03em}
.ml-status-open{background:#e8f8ef;color:#17643c}.ml-status-draft{background:#eef1f4;color:#53616a}.ml-status-closed{background:#fff0ed;color:#8c3828}.ml-status-archived{background:#f4f0f8;color:#68467b}
.ml-game-select{min-width:260px}.ml-field{display:flex;flex-direction:column;gap:5px}.ml-field>span{font-size:.78rem;font-weight:800;color:#31574c;text-transform:uppercase;letter-spacing:.03em}
.ml-field input,.ml-field select,.ml-field textarea{width:100%;box-sizing:border-box;border:1px solid #cddbd6;border-radius:10px;padding:10px 11px;background:#fff;font:inherit;color:#17352d}
.ml-field textarea{min-height:92px;resize:vertical}.ml-field small{color:#687770;font-size:.76rem}
.ml-rules{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}
.ml-rules>div{background:#f7faf9;border:1px solid #e0ebe7;border-radius:12px;padding:12px}
.ml-rules b{display:block;font-size:1.05rem;color:#124f3e}.ml-rules span{display:block;color:#65736e;font-size:.78rem;margin-top:3px}
.ml-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:14px 0}
.ml-metrics>div{background:linear-gradient(180deg,#fff,#f7fbf9);border:1px solid #d8e6e0;border-radius:14px;padding:15px}
.ml-metrics span{display:block;color:#65736e;font-size:.78rem;text-transform:uppercase;font-weight:800}.ml-metrics b{display:block;font-size:1.15rem;margin-top:5px;color:#174d3e}
.ml-positive{color:#087442!important}.ml-negative{color:#b33b2d!important}
.ml-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px;flex-wrap:wrap}
.ml-helper{font-size:.78rem;color:#6b776f;background:#f3f7f5;padding:5px 8px;border-radius:999px}
.ml-trade-grid,.ml-create-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ml-reason,.ml-span2{grid-column:1/-1}.ml-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:6px}
.ml-actions button{min-height:38px}
.ml-table-wrap{overflow:auto;border:1px solid #e1e9e6;border-radius:12px}.ml-table{width:100%;border-collapse:collapse;min-width:680px}.ml-table th,.ml-table td{padding:10px 11px;border-bottom:1px solid #e8efec;text-align:left;vertical-align:top}.ml-table th{background:#f7faf9;color:#335b4f;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em}.ml-table tr:last-child td{border-bottom:0}.ml-table .num{text-align:right;white-space:nowrap}.ml-table td small{display:block;color:#718079;margin-top:2px}.ml-me{background:#f0faf6}
.ml-diary{display:grid;gap:9px}.ml-diary-item{border:1px solid #e0e9e5;border-radius:12px;padding:12px;background:#fbfdfc}.ml-diary-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.ml-diary-head span,.ml-diary-meta{font-size:.78rem;color:#6a7872}.ml-diary-item p{margin:8px 0 0;line-height:1.5}
.ml-game-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.ml-game-card{border:1px solid #dce8e3;border-radius:13px;background:#fff;text-align:left;padding:12px;display:flex;flex-direction:column;gap:5px;cursor:pointer}.ml-game-card:hover,.ml-game-card.active{border-color:#2d7a62;background:#f3faf7}.ml-game-card b{font-size:.95rem;color:#173f34}.ml-game-card small{color:#687770}
.ml-control-actions{justify-content:flex-end}.ml-hidden{display:none!important}
.ml-portal-launch{margin:14px 0;padding:13px 14px;border:1px solid #d5e5df;border-radius:12px;background:#f7fbf9;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ml-portal-launch b{display:block;color:#174d3e}.ml-portal-launch span{display:block;font-size:.8rem;color:#687770;margin-top:2px}
button.danger{background:#a73f31;color:#fff;border:0;border-radius:9px;padding:9px 13px}
@media(max-width:800px){.ml-rules,.ml-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.ml-trade-grid,.ml-create-grid{grid-template-columns:1fr}.ml-reason,.ml-span2{grid-column:auto}}
@media(max-width:520px){.ml-rules,.ml-metrics{grid-template-columns:1fr}.ml-card{padding:14px}.ml-toolbar{gap:12px}.ml-game-select{min-width:100%}}
@media print{.ml-nav-link,.ml-actions,.ml-trade-grid,.ml-portal-launch{display:none!important}.ml-card{box-shadow:none;break-inside:avoid}.ml-root{max-width:none}}

/* v144: Market Lab is a DAS-only module */
.ml-das-back{max-width:1280px;margin:0 auto 10px;padding:0 18px}.ml-das-module{margin:0!important}.ml-das-module h2{margin:.2rem 0 .45rem}.ml-das-module p{max-width:850px}.ml-market-accordion summary{font-weight:800}.ml-market-accordion summary span{display:flex;align-items:center;gap:.5rem}.ml-market-accordion summary span::before{content:'📈';font-size:1rem}@media(max-width:760px){.ml-das-back{padding:0 12px}.ml-das-module .actions .primary{width:100%}}


/* das-dashboard-groups.css */

.das-group-separator{position:relative;display:flex;gap:14px;align-items:stretch;margin:18px auto 10px;max-width:1320px;padding:0 4px;background:transparent}
.das-group-separator .das-group-accent{width:4px;border-radius:4px;background:#087a5b;flex:0 0 4px}
.das-group-separator .eyebrow{margin:0 0 2px;font-size:.74rem;letter-spacing:.13em;color:#087a5b;font-weight:800}
.das-group-separator h2{margin:0;color:#123f34;font-size:1.08rem;line-height:1.2}
.das-group-separator p{margin:4px 0 0;color:#66756f;font-size:.86rem;line-height:1.35}
.das-group-separator[data-das-group-header="attendance"] .das-group-accent{background:#bf8b00}
.das-group-separator[data-das-group-header="workflow"] .das-group-accent{background:#40667e}
.das-group-separator[data-das-group-header="admin"] .das-group-accent{background:#7d5b8e}
.das-group-separator[data-das-group-header="other"] .das-group-accent{background:#9aa6a1}
@media(max-width:700px){.das-group-separator{margin:14px 0 8px;padding:0}.das-group-separator p{font-size:.8rem}}



/* ---- das-two-level-v151.css ---- */

.das-group-toggle-row{margin:18px 0 8px;border-left:4px solid #0a7a5b;padding-left:10px}
.das-group-toggle-row[data-group-key="attendance"]{border-left-color:#bf8b00}.das-group-toggle-row[data-group-key="workflow"]{border-left-color:#40667e}.das-group-toggle-row[data-group-key="admin"]{border-left-color:#7d5b8e}.das-group-toggle-row[data-group-key="other"]{border-left-color:#9aa6a1}
.das-group-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;border:0;background:transparent;padding:8px 2px;cursor:pointer;color:#123f34}
.das-group-toggle>span:first-child{display:grid;gap:2px}.das-group-toggle .eyebrow{font-size:.73rem;letter-spacing:.12em;color:#087a5b;font-weight:800}.das-group-toggle strong{font-size:1.08rem}.das-group-toggle small{font-size:.86rem;font-weight:400;color:#66756f}.das-group-meta{display:flex;align-items:center;gap:12px}.das-group-count{min-width:28px;height:28px;border-radius:999px;display:grid;place-items:center;background:#eef4f1;color:#34594e;font-size:.78rem;font-weight:800}.das-group-symbol{font-size:1.35rem;color:#d49a00;font-weight:900;min-width:20px;text-align:center}
.das-item-proxy{width:calc(100% - 28px);margin:7px 0 7px 28px;min-height:58px;border:1px solid #dbe5e1;border-radius:16px;background:#fff;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:#063f35;font:inherit;font-weight:800;cursor:pointer;box-shadow:0 8px 20px rgba(27,68,57,.06)}
.das-item-proxy:hover{border-color:#b7ccc5}.das-item-symbol{font-size:1.25rem;color:#d49a00;font-weight:900}.das-item-proxy[hidden]{display:none!important}
#app>[data-das-group-item][data-das-simple-item="1"]{margin-left:28px!important;width:calc(100% - 28px)!important}
#app>details[data-das-group-item]{margin-left:28px!important;width:calc(100% - 28px)!important}
@media(max-width:700px){.das-group-toggle-row{margin-top:14px;padding-left:7px}.das-group-toggle small{font-size:.78rem}.das-item-proxy,#app>[data-das-group-item][data-das-simple-item="1"],#app>details[data-das-group-item]{margin-left:14px!important;width:calc(100% - 14px)!important}}


/* ---- das-frame-v154.css ---- */

/* v154 — collapsed DAS group frames aligned with Overview */
#app > .das-group-toggle-row{
  box-sizing:border-box;
  width:calc(100% - 2rem);
  max-width:1352px;
  margin:14px auto;
  background:#fff;
  border:1px solid #dfe8e4;
  border-radius:16px;
  box-shadow:0 8px 24px rgba(18,63,52,.055);
  overflow:hidden;
  padding:0;
}
#app > .das-group-toggle-row .das-group-toggle{
  box-sizing:border-box;
  width:100%;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:14px 18px;
  background:#fff;
  border:0;
  border-left:4px solid #0a7a5b;
  border-radius:15px;
  text-align:left;
  cursor:pointer;
}
#app > .das-group-toggle-row[data-group-key="attendance"] .das-group-toggle{border-left-color:#bf8b00}
#app > .das-group-toggle-row[data-group-key="workflow"] .das-group-toggle{border-left-color:#40667e}
#app > .das-group-toggle-row[data-group-key="admin"] .das-group-toggle{border-left-color:#7d5b8e}
#app > .das-group-toggle-row[data-group-key="other"] .das-group-toggle{border-left-color:#9aa6a1}
#app > .das-group-toggle-row .das-group-toggle > span:first-child{min-width:0;display:block}
#app > .das-group-toggle-row .eyebrow{display:block;margin:0 0 2px;font-size:.72rem;line-height:1.2;letter-spacing:.12em;color:#087a5b;font-weight:800}
#app > .das-group-toggle-row .das-group-toggle strong{display:block;margin:0;font-size:1.02rem;line-height:1.25;color:#123f34}
#app > .das-group-toggle-row .das-group-toggle small{display:block;margin-top:3px;font-size:.82rem;line-height:1.3;color:#66756f;font-weight:400}
#app > .das-group-toggle-row .das-group-meta{display:flex;align-items:center;gap:12px;flex:0 0 auto}
#app > .das-group-toggle-row .das-group-count{display:inline-grid;place-items:center;min-width:30px;height:30px;padding:0 8px;border-radius:999px;background:#f2f7f5;color:#164c3f;font-weight:800;font-size:.82rem}
#app > .das-group-toggle-row .das-group-symbol{display:inline-grid;place-items:center;width:28px;height:28px;color:#d99a00;font-size:1.25rem;font-weight:900;line-height:1}
#app > .das-group-toggle-row.open{box-shadow:0 10px 28px rgba(18,63,52,.07)}
#app > .das-group-toggle-row.open .das-group-toggle{background:#fbfdfc}
#app > .das-item-proxy,
#app > [data-das-group-item]{
  box-sizing:border-box;
  width:calc(100% - 4rem);
  max-width:1300px;
  margin-left:auto!important;
  margin-right:auto!important;
}
@media(max-width:760px){
  #app > .das-group-toggle-row{width:calc(100% - 1rem);margin:10px auto;border-radius:14px}
  #app > .das-group-toggle-row .das-group-toggle{min-height:66px;padding:12px 13px;border-radius:13px;gap:10px}
  #app > .das-group-toggle-row .das-group-toggle small{display:none}
  #app > .das-item-proxy,#app > [data-das-group-item]{width:calc(100% - 1.5rem)}
}


/* ---- das-alignment-v158.css ---- */

/* v158 — dashboard hierarchy alignment only; no behavioural changes */
#app > .page-head,
#app > details[data-dashboard-accordion],
#app > .das-group-toggle-row,
#app > .das-item-proxy,
#app > [data-das-group-item] {
  box-sizing: border-box;
}

/* Top-level DASHBOARD frames: Overview + all main functional groups */
#app > details[data-dashboard-accordion]:not([data-das-group-item]),
#app > .das-group-toggle-row {
  width: min(calc(100% - 48px), 1352px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Overview should align exactly with the main group cards */
#app > details[data-dashboard-accordion]:not([data-das-group-item]) > summary,
#app > .das-group-toggle-row > .das-group-toggle {
  min-height: 64px;
  width: 100%;
  box-sizing: border-box;
}

/* Main group heading text starts at one common x-position */
#app > details[data-dashboard-accordion]:not([data-das-group-item]) > summary,
#app > .das-group-toggle-row > .das-group-toggle {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Child items sit one tab inward from their parent group */
#app > [data-das-group-item],
#app > .das-item-proxy {
  width: min(calc(100% - 96px), 1304px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

/* Keep every child row visually uniform */
#app > [data-das-group-item] > summary,
#app > .das-item-proxy {
  min-height: 62px;
  box-sizing: border-box;
}

#app > [data-das-group-item] > summary,
#app > .das-item-proxy {
  padding-left: 20px !important;
  padding-right: 20px !important;
}

/* Consistent spacing between hierarchy levels */
#app > .das-group-toggle-row { margin-top: 14px !important; margin-bottom: 10px !important; }
#app > [data-das-group-item],
#app > .das-item-proxy { margin-top: 8px !important; margin-bottom: 8px !important; }

@media (max-width: 760px){
  #app > details[data-dashboard-accordion]:not([data-das-group-item]),
  #app > .das-group-toggle-row {
    width: calc(100% - 24px) !important;
  }
  #app > [data-das-group-item],
  #app > .das-item-proxy {
    width: calc(100% - 48px) !important;
  }
}


/* ---- das-subitem-indent-v159.css ---- */

/* v159 — child DAS items one tab forward, never backward */
#app > [data-das-group-item]{
  box-sizing:border-box;
}
#app > [data-das-group-item="learning"],
#app > [data-das-group-item="attendance"],
#app > [data-das-group-item="workflow"],
#app > [data-das-group-item="admin"],
#app > [data-das-group-item="other"],
#app > .das-item-proxy{
  width:calc(100% - 8rem) !important;
  margin-left:8rem !important;
  margin-right:0 !important;
}
@media (max-width:900px){
  #app > [data-das-group-item="learning"],
  #app > [data-das-group-item="attendance"],
  #app > [data-das-group-item="workflow"],
  #app > [data-das-group-item="admin"],
  #app > [data-das-group-item="other"],
  #app > .das-item-proxy{
    width:calc(100% - 3.25rem) !important;
    margin-left:3.25rem !important;
    margin-right:0 !important;
  }
}
@media (max-width:600px){
  #app > [data-das-group-item="learning"],
  #app > [data-das-group-item="attendance"],
  #app > [data-das-group-item="workflow"],
  #app > [data-das-group-item="admin"],
  #app > [data-das-group-item="other"],
  #app > .das-item-proxy{
    width:calc(100% - 1.5rem) !important;
    margin-left:1.5rem !important;
  }
}


/* ---- das-indent-v160.css ---- */

/* v160 — explicit parent-relative forward indentation. Logic unchanged. */
#app{
  --das-main-edge: clamp(24px,5.55vw,92px);
  --das-child-indent: clamp(24px,2.15vw,36px);
}
/* Keep every major group on the same baseline as Overview. */
#app > .das-group-toggle-row{
  width:auto !important;
  max-width:none !important;
  margin-left:var(--das-main-edge) !important;
  margin-right:var(--das-main-edge) !important;
}
/* Child items begin one tab to the RIGHT of the parent, while keeping the parent's right edge. */
#app > [data-das-group-item]{
  width:auto !important;
  max-width:none !important;
  margin-left:calc(var(--das-main-edge) + var(--das-child-indent)) !important;
  margin-right:var(--das-main-edge) !important;
}
/* Proxy rows, if used by role-specific cards, follow the same hierarchy. */
#app > .das-item-proxy{
  width:auto !important;
  max-width:none !important;
  margin-left:calc(var(--das-main-edge) + var(--das-child-indent)) !important;
  margin-right:var(--das-main-edge) !important;
}
@media (max-width:700px){
  #app{--das-main-edge:14px;--das-child-indent:18px;}
}


/* ---- das-indent-v161.css ---- */
/* v161 — child rows hang inside parent on BOTH left and right. Logic unchanged. */
#app{
  --das-main-edge: clamp(24px,5.55vw,92px);
  --das-child-indent: clamp(24px,2.15vw,36px);
}
#app > .das-group-toggle-row{
  width:auto !important;
  max-width:none !important;
  margin-left:var(--das-main-edge) !important;
  margin-right:var(--das-main-edge) !important;
}
#app > [data-das-group-item],
#app > .das-item-proxy{
  width:auto !important;
  max-width:none !important;
  margin-left:calc(var(--das-main-edge) + var(--das-child-indent)) !important;
  margin-right:calc(var(--das-main-edge) + var(--das-child-indent)) !important;
}
@media (max-width:700px){
  #app{--das-main-edge:14px;--das-child-indent:18px;}
}


/* ---- student-master-v163.css ---- */
/* v163 — semester-cycle / semester / group Student Master */
.sm163-intro{max-width:980px;color:var(--muted,#66756f)}
.sm163-step-grid{display:grid;gap:12px;margin:18px 0}.sm163-step{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;border:1px solid var(--line,#dbe5e1);border-radius:14px;padding:14px;background:#fbfdfc}.sm163-step-no{width:30px;height:30px;border-radius:999px;display:grid;place-items:center;background:#0b6f52;color:#fff;font-weight:900}.sm163-step b{display:block;color:#173f34;margin-bottom:8px}.sm163-choice-row{display:flex;gap:8px;flex-wrap:wrap}.sm163-choice{border:1px solid #cfded8;background:#fff;color:#245346;border-radius:999px;padding:9px 14px;font-weight:800;cursor:pointer}.sm163-choice.active{background:#0b6f52;border-color:#0b6f52;color:#fff;box-shadow:0 4px 12px rgba(11,111,82,.16)}
.sm163-selection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.sm163-selection>div{border:1px solid #dce7e2;border-radius:12px;padding:12px;background:#f7faf9}.sm163-selection span{display:block;color:#6a7872;font-size:.72rem;text-transform:uppercase;font-weight:800;letter-spacing:.04em}.sm163-selection b{display:block;color:#174d3e;margin-top:4px}.sm163-template-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.sm163-note,.sm163-even-note{padding:12px 14px;border:1px solid #d8e6e0;border-radius:12px;background:#f6faf8;color:#52655e;margin:12px 0}.sm163-even-note{background:#fff9e9;border-color:#eedb9d;color:#715600}.sm163-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:14px}.sm163-upload label{display:grid;gap:7px}.sm163-upload input[type=file]{width:100%;padding:10px;border:1px solid #ccd9d4;border-radius:10px;background:#fff}.sm163-progress{padding:12px 14px;border-radius:10px;background:#eef7f4;color:#2e5d50;margin-top:12px}
@media(max-width:900px){.sm163-selection{grid-template-columns:repeat(2,minmax(0,1fr))}.sm163-upload{grid-template-columns:1fr}.sm163-upload .primary{width:100%}}
@media(max-width:560px){.sm163-selection{grid-template-columns:1fr}.sm163-choice{width:100%;text-align:left}.sm163-step{grid-template-columns:28px minmax(0,1fr);padding:12px}.sm163-step-no{width:26px;height:26px}.sm163-template-row>*{width:100%}}


/* ---- student-master-v164.css ---- */
/* v164 — aesthetic refinement of Student Master only */
#hodAdminBody:has(.sm163-step-grid){padding:28px 30px 30px!important;background:linear-gradient(180deg,#ffffff 0%,#fbfdfc 100%);border:1px solid #dce7e2;box-shadow:0 12px 30px rgba(18,63,52,.07)}
#hodAdminBody:has(.sm163-step-grid)>.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:#edf8f4;color:#0b6f52;font-size:.72rem;letter-spacing:.14em}
#hodAdminBody:has(.sm163-step-grid)>h2{margin:.55rem 0 .45rem;font-size:clamp(1.55rem,2.4vw,2.05rem);line-height:1.15;color:#123f34}
.sm163-intro{margin:0 0 22px;max-width:900px;font-size:.96rem;line-height:1.6;color:#64736d}
.sm163-step-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 18px}
.sm163-step{position:relative;display:block;border:1px solid #dbe7e2;border-radius:18px;padding:18px 18px 17px;background:#fff;box-shadow:0 7px 20px rgba(18,63,52,.045);min-height:146px;overflow:hidden}
.sm163-step::after{content:'';position:absolute;inset:auto -36px -36px auto;width:105px;height:105px;border-radius:50%;background:rgba(11,111,82,.045);pointer-events:none}
.sm163-step-no{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(135deg,#0b7a5b,#0a664c);color:#fff;font-weight:900;box-shadow:0 5px 13px rgba(11,111,82,.2);margin-bottom:12px}
.sm163-step b{display:block;color:#173f34;margin:0 0 10px;font-size:.93rem}
.sm163-choice-row{display:flex;gap:8px;flex-wrap:wrap}
.sm163-choice{border:1px solid #d4e1dc;background:#f9fbfa;color:#29594c;border-radius:11px;padding:9px 13px;font-weight:800;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease,background .12s ease}
.sm163-choice:hover{transform:translateY(-1px);border-color:#9ec8b9;background:#f3faf7}
.sm163-choice.active{background:linear-gradient(135deg,#0b7a5b,#0b684f);border-color:#0b6f52;color:#fff;box-shadow:0 6px 14px rgba(11,111,82,.18)}
.sm163-selection{display:grid;grid-template-columns:1.1fr .8fr 1fr 1.15fr 1fr;gap:1px;margin:18px 0 16px;padding:1px;background:#dce7e2;border-radius:15px;overflow:hidden;box-shadow:0 6px 18px rgba(18,63,52,.04)}
.sm163-selection>div{border:0;border-radius:0;padding:13px 14px;background:#fff;min-width:0}
.sm163-selection span{display:block;color:#718078;font-size:.66rem;text-transform:uppercase;font-weight:900;letter-spacing:.07em}
.sm163-selection b{display:block;color:#174d3e;margin-top:4px;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sm163-template-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 12px}
.sm163-template-row .secondary{border:1px solid #bfd6cd;background:#fff;color:#0b6f52;border-radius:11px;padding:10px 14px;font-weight:800;box-shadow:0 4px 12px rgba(18,63,52,.035)}
.sm163-template-row .secondary:hover{background:#f3faf7;border-color:#90bbaa}
.sm163-note{position:relative;padding:14px 16px 14px 44px;border:1px solid #d8e6e0;border-radius:14px;background:linear-gradient(90deg,#f5faf8,#fbfdfc);color:#52655e;margin:12px 0 16px;line-height:1.5}
.sm163-note::before{content:'i';position:absolute;left:15px;top:50%;transform:translateY(-50%);width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:#dcefe8;color:#0b6f52;font-weight:900;font-size:.78rem}
.sm163-upload{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end;margin-top:14px;padding:18px;border:1px dashed #b9d3c9;border-radius:16px;background:#fbfdfc}
.sm163-upload label{display:grid;gap:8px;color:#173f34}
.sm163-upload label>b{font-size:.88rem}
.sm163-upload input[type=file]{width:100%;padding:10px 12px;border:1px solid #ccd9d4;border-radius:11px;background:#fff;color:#52655e}
.sm163-upload input[type=file]::file-selector-button{border:0;border-radius:8px;background:#edf7f3;color:#0b6f52;font-weight:800;padding:8px 11px;margin-right:10px;cursor:pointer}
.sm163-upload .primary{min-height:45px;border-radius:11px;padding:10px 17px;box-shadow:0 7px 15px rgba(11,111,82,.17)}
.sm163-progress{padding:13px 15px;border-radius:12px;background:#eef7f4;color:#2e5d50;margin-top:12px;border:1px solid #d4e8e0}
.sm163-even-note{padding:12px 14px;border:1px solid #eedb9d;border-radius:12px;background:#fff9e9;color:#715600;margin:12px 0}
@media(max-width:1050px){.sm163-step-grid{grid-template-columns:1fr}.sm163-step{min-height:auto}.sm163-selection{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){#hodAdminBody:has(.sm163-step-grid){padding:20px 16px!important}.sm163-selection{grid-template-columns:repeat(2,minmax(0,1fr))}.sm163-upload{grid-template-columns:1fr}.sm163-upload .primary{width:100%}}
@media(max-width:520px){.sm163-selection{grid-template-columns:1fr}.sm163-choice{flex:1 1 auto;text-align:center}.sm163-template-row>*{width:100%}.sm163-note{padding-left:40px}}


/* ---- student-master-v165.css ---- */
/* v165 — Student Master centering refinement only */
#hodAdminBody .sm163-step-grid{align-items:stretch}
#hodAdminBody .sm163-step{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  text-align:center!important;
  gap:10px!important;
  padding:18px 16px!important;
}
#hodAdminBody .sm163-step-no{
  margin:0 auto 2px!important;
  flex:0 0 auto!important;
}
#hodAdminBody .sm163-step>div{
  width:100%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
}
#hodAdminBody .sm163-step b{
  text-align:center!important;
  width:100%!important;
  margin-bottom:10px!important;
}
#hodAdminBody .sm163-choice-row{
  width:100%!important;
  justify-content:center!important;
  align-items:center!important;
  flex-wrap:wrap!important;
}
/* Semester buttons remain in one row on desktop/tablet where space permits. */
#hodAdminBody .sm163-step:nth-child(2) .sm163-choice-row{
  flex-wrap:nowrap!important;
  justify-content:center!important;
  gap:8px!important;
}
#hodAdminBody .sm163-step:nth-child(2) .sm163-choice{
  white-space:nowrap!important;
  flex:0 0 auto!important;
}
#hodAdminBody .sm163-selection{text-align:center}
#hodAdminBody .sm163-selection>div{display:flex;flex-direction:column;align-items:center;justify-content:center}
#hodAdminBody .sm163-template-row{justify-content:center}
#hodAdminBody .sm163-note{text-align:center}
#hodAdminBody .sm163-upload{align-items:center}
#hodAdminBody .sm163-upload label{text-align:center}
@media(max-width:720px){
  #hodAdminBody .sm163-step:nth-child(2) .sm163-choice-row{flex-wrap:wrap!important}
}
@media(max-width:560px){
  #hodAdminBody .sm163-choice{width:auto!important;text-align:center!important}
  #hodAdminBody .sm163-step{padding:14px 12px!important}
}

/* ---- gps-settings-v166.css ---- */
/* v166 â HoD editable institutional GPS / biometric attendance settings */
.gps166-head{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:18px}.gps166-head h2{margin:.28rem 0 .45rem}.gps166-head p{margin:0;color:var(--muted,#66756f);max-width:850px}.gps166-scope{flex:0 0 auto;padding:12px 16px;border-radius:14px;background:#eaf7f2;border:1px solid #cde7dc;text-align:center}.gps166-scope span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:#648078;font-weight:800}.gps166-scope b{display:block;margin-top:3px;color:#0b684c;font-size:1rem}.gps166-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 18px}.gps166-summary>div,.gps166-current>div{background:#f7faf9;border:1px solid #dce7e2;border-radius:13px;padding:13px}.gps166-summary span,.gps166-current span{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;font-weight:800;color:#6b7b75}.gps166-summary b,.gps166-current b{display:block;margin-top:4px;color:#0c654b}.gps166-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:8px}.gps166-field{display:grid;gap:7px;padding:15px;border:1px solid #dce7e2;border-radius:14px;background:#fff}.gps166-field.gps166-wide{grid-column:1/-1}.gps166-field span{font-weight:800;color:#173f34}.gps166-field input{width:100%;box-sizing:border-box;border:1px solid #cbd9d4;border-radius:10px;padding:11px 12px;font:inherit;background:#fbfdfc;color:#173f34}.gps166-field small{color:#6c7a75;line-height:1.4}.gps166-current{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:14px 0}.gps166-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.gps166-note{padding:13px 15px;border:1px solid #d8e6e0;border-radius:12px;background:#f2faf7;color:#4d645b}.gps166-progress{padding:12px 14px;border-radius:10px;background:#eef7f4;color:#2e5d50;margin-top:12px}@media(max-width:900px){.gps166-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.gps166-current{grid-template-columns:1fr 1fr}.gps166-head{flex-direction:column}.gps166-scope{align-self:flex-start}}@media(max-width:640px){.gps166-grid,.gps166-summary,.gps166-current{grid-template-columns:1fr}.gps166-actions>*{width:100%}.gps166-field.gps166-wide{grid-column:auto}}

/* ---- stock-market-lab-v167.css ---- */

.ml-research-card{overflow:hidden}.ml-round-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px;padding:10px 14px;border:1px solid #dce9e4;border-radius:12px;background:#f7fbf9;min-width:170px}.ml-round-box b{color:#0b5b43}.ml-round-box span{font-size:.78rem;color:#65766f}.ml-research-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto;gap:12px;align-items:end;margin:14px 0}.ml-research-title{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:14px 0;border-bottom:1px solid #e4ebe8}.ml-research-title>div:first-child{display:flex;flex-direction:column;gap:4px}.ml-research-title b{font-size:1.08rem}.ml-research-title span{color:#65766f;font-size:.86rem}.ml-research-price{text-align:right;display:flex!important;flex-direction:column!important}.ml-research-price b{font-size:1.25rem}.ml-research-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0}.ml-research-grid>div{border:1px solid #dde9e4;border-radius:12px;padding:11px;background:#fbfdfc;display:flex;flex-direction:column;gap:4px}.ml-research-grid span{font-size:.72rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#5c7169}.ml-research-grid b{font-size:1.05rem}.ml-research-grid small{color:#6d7c77}.ml-analysis-callout{border-left:4px solid #0b7d5f;background:#f1faf6;padding:12px 14px;border-radius:8px;line-height:1.5}.ml-chart-block{margin-top:14px;border-top:1px solid #e4ebe8;padding-top:12px}.ml-chart-block>div{display:flex;justify-content:space-between;gap:10px}.ml-chart-block small{color:#6d7c77}.ml-sparkline{width:100%;height:88px;color:#0b7d5f;margin-top:8px;background:linear-gradient(180deg,#f8fcfa,#fff);border-radius:10px}.ml-spark-range{display:flex;justify-content:space-between;font-size:.75rem;color:#6d7c77}.ml-spark-empty{padding:18px;text-align:center;color:#6d7c77;background:#f8fbfa;border-radius:10px;margin-top:8px}.ml-positive{color:#087a55!important}.ml-negative{color:#b33428!important}@media(max-width:900px){.ml-research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:620px){.ml-research-toolbar{grid-template-columns:1fr}.ml-research-grid{grid-template-columns:1fr 1fr}.ml-research-title{flex-direction:column}.ml-research-price{text-align:left}.ml-round-box{align-items:flex-start;width:100%}}@media(max-width:420px){.ml-research-grid{grid-template-columns:1fr}}


/* v228 paper resource tricolour */
.pr228-paper .paper-resource-segment{margin:8px 0;padding:10px 12px;border-radius:12px;border:1px solid #dce5e1;position:relative}.pr228-paper .resource-saffron{background:linear-gradient(90deg,#fff0dc,#fffaf5);border-left:5px solid #ff9933}.pr228-paper .resource-white{background:#fff;border-left:5px solid #1a5fb4;box-shadow:inset 0 0 0 1px #edf2f7}.pr228-paper .resource-green{background:linear-gradient(90deg,#edf8ef,#fbfffb);border-left:5px solid #138808}.pr228-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:#173e34}.pr228-chakra{width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#1a5fb4;font-size:22px;line-height:1}.cmq-count{font-size:.82rem;color:#687a72}.cmq-add{margin-left:auto;border:1px solid #8fc89b;background:#fff;color:#126b2b;border-radius:9px;padding:7px 10px;font-weight:800;cursor:pointer}.cmq-add:hover{background:#eaf7ed}.cmq-list{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.pr228-file{display:inline-flex;align-items:center;border:1px solid #b8d9bf;background:#fff;border-radius:9px;overflow:hidden}.pr228-file a{padding:7px 10px;color:#0e6330;text-decoration:none;font-weight:700}.cmq-del{border:0;border-left:1px solid #f0c6c6;background:#fff;color:#b42318;padding:7px 9px;font-weight:900;cursor:pointer}.pr228-empty{font-size:.9rem;color:#746f69}.hidden{display:none!important}@media(max-width:700px){.cmq-add{margin-left:0;width:100%}.pr228-file{max-width:100%}.pr228-file a{overflow-wrap:anywhere}}

.pr228-paper .resource-white{padding-left:48px!important}.pr228-paper .resource-white::before{content:'☸';position:absolute;left:12px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#1a5fb4;font-size:23px;line-height:1}.pr228-doc{width:26px;height:26px;border-radius:7px;display:inline-flex;align-items:center;justify-content:center;background:#138808;color:#fff;font-size:10px;font-weight:900;letter-spacing:.3px}


/* v229: tricolour paper resources */
.paper-resource-segment-v229{margin-top:9px;padding:9px 11px;border:1px solid rgba(15,80,60,.12);border-left-width:5px;border-radius:10px;box-sizing:border-box}
.resource-saffron-v229{background:rgba(255,153,51,.10)!important;border-left-color:#ff9933!important}
.resource-white-v229{background:#fff!important;border-left-color:#000080!important}
.resource-green-v229{background:rgba(19,136,8,.08)!important;border-left-color:#138808!important}
.pr229-resource-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:6px}.pr229-resource-head b{color:#173e34;font-size:.82rem}.pr229-count{font-size:.72rem;color:#6b7e77}.pr229-icon{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;border-radius:50%;font-size:.68rem;font-weight:900;color:#0b5b43;background:rgba(255,255,255,.8)}
.pr229-chakra{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:#000080;font-size:20px;line-height:1;background:#fff}
.pr229-add,.pr229-delete,.pr229-file a{font:inherit;border:1px solid #c3d9d1;border-radius:8px;padding:6px 9px;background:#fff;color:#075c43;font-weight:700;text-decoration:none;cursor:pointer}.pr229-add{margin-left:auto}.pr229-delete{padding:5px 7px;color:#8a2c2c;border-color:#e6c9c9}.pr229-files{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.pr229-file{display:inline-flex;align-items:center;gap:5px}.pr229-empty{font-size:.8rem;color:#7b6651}
.syllabus-actions-v223.paper-resource-segment-v229{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.syllabus-actions-v223.paper-resource-segment-v229 .pr229-resource-head{flex-basis:100%;margin-bottom:2px}
@media(max-width:760px){.paper-resource-segment-v229{padding:8px}.pr229-add{margin-left:0;width:100%}.pr229-file{max-width:100%}.pr229-file a{max-width:100%;overflow-wrap:anywhere}}
