/* V27 student dashboard. Faithful to the user-approved screenshot; faculty/admin untouched. */
#facultyDash.v27-student-mode{padding:0;background:#f2f7fd;color:#0b3566;min-height:100vh}
#facultyDash.v27-student-mode>.dash-wrap{display:none!important}
#v27StudentDash{display:none}
#facultyDash.v27-student-mode #v27StudentDash{display:flex;min-height:100vh;align-items:stretch;font-family:Arial,'Segoe UI',sans-serif;font-size:14px;color:#102f5b}
.v27-side{width:237px;flex:0 0 237px;background:linear-gradient(180deg,#07508d,#053666 45%,#072e60);color:#fff;min-height:100vh}
.v27-side .v27-logo{background:linear-gradient(145deg,#d7effe,#b8dcf5);min-height:90px;display:flex;justify-content:center;align-items:center;border-bottom:1px solid #a2cbe0}
.v27-side .v27-logo img{height:78px;max-width:100px;object-fit:contain;filter:drop-shadow(0 2px 2px #fff7)}
.v27-side .v27-dept-name{padding:14px 30px;line-height:1.5;font-weight:700;font-size:15px;background:#053a6e}
.v27-side nav{padding:8px 9px 22px;display:flex;flex-direction:column;gap:2px}
.v27-side nav button{display:flex;align-items:center;width:100%;text-align:left;border:0;border-radius:6px;background:transparent;color:#eef7ff;gap:12px;padding:11px 12px;font:inherit;cursor:pointer;line-height:1.25}
.v27-side nav button:hover,.v27-side nav button:focus-visible{background:#196fb5;outline:none}
.v27-side nav button.active{background:#1677c8;color:#fff;font-weight:700}
.v27-side .v27-ico{font-size:19px;min-width:21px;text-align:center;color:#e0f2ff}
.v27-main{flex:1;min-width:0;background:#f3f8fd}
.v27-top{min-height:74px;background:#fff;border-bottom:1px solid #d2e4f2;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 26px;position:relative;z-index:1}
.v27-top .college{font-size:19px;font-weight:800;line-height:1.24;color:#082c60}
.v27-top .smaller{font-size:14px;margin-top:3px;color:#0b4679}
.v27-top-profile{display:flex;gap:10px;align-items:center;max-width:310px}
.v27-top-profile img,.v27-top-avatar{width:48px;height:48px;object-fit:cover;border-radius:50%;background:#c8e7fb;display:grid;place-items:center;font-weight:800;color:#16466f;flex-shrink:0}
.v27-top-profile strong{font-size:13px}.v27-top-profile span{font-size:11px;color:#4e6983;display:block;margin-top:2px}
.v27-menu{position:relative}.v27-menu summary{cursor:pointer;list-style:none;padding:5px 7px;border:1px solid #c7dcf1;border-radius:7px}.v27-menu summary::-webkit-details-marker{display:none}.v27-menu>div{position:absolute;top:110%;right:0;background:#fff;z-index:8;min-width:140px;border:1px solid #bed5ee;border-radius:7px;box-shadow:0 6px 16px #123a6f25;padding:4px}.v27-menu button{display:block;border:0;background:#fff;color:#143b64;width:100%;text-align:left;padding:8px;cursor:pointer}.v27-menu button:hover{background:#eaf5ff}
.v27-hero{min-height:160px;padding:24px 30px 18px;background:linear-gradient(90deg,#f5faff 0%,#f4f9ff 44%,#f5faffc4 64%,#e6f4ff2b 100%),url('assets/campus-building.webp') right center/auto 195% no-repeat;border-bottom:1px solid #c9e4fa}
.v27-hero h1{font-family:Georgia,serif;font-size:31px;line-height:1.16;color:#062d66;margin:10px 0 7px}
.v27-hero .v27-sub{font-size:18px;font-weight:500;margin:0 0 17px;color:#18477b}
.v27-hero .v27-desc{font-size:13px;color:#0f3c6c;margin:0;max-width:900px}
.v27-content{padding:15px 18px 30px;display:grid;gap:13px}
.v27-two{display:grid;grid-template-columns:1.08fr 1fr;gap:15px;min-width:0}
.v27-bottom{display:grid;grid-template-columns:1.57fr 1fr;gap:15px;min-width:0}
.v27-last{display:grid;grid-template-columns:1.15fr 1fr;gap:15px;min-width:0}
.v27-box{min-width:0;background:white;border:1px solid #cfdfef;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #7facc628}
.v27-box-title{display:flex;gap:9px;align-items:center;min-height:49px;background:linear-gradient(#f0f8ff,#e5f2fd);border-bottom:1px solid #d4e9fa;padding:10px 14px;color:#0b3369;font-size:17px;font-weight:800}
.v27-box-title .ico{font-size:20px;color:#0363ae}
.v27-box-title .spacer{flex:1}
.v27-tiny{background:white;border:1px solid #b5d1ec;border-radius:5px;padding:5px 9px;color:#0e4178;font-size:12px;cursor:pointer}
.v27-tiny:hover{background:#dceeff}
.v27-profile-body{display:flex;gap:16px;padding:14px 16px;min-height:224px}
.v27-portrait{width:151px;min-width:151px;height:171px;background:#dfeefa;position:relative;border-radius:5px;overflow:hidden;align-self:flex-start}
.v27-portrait img{width:100%;height:100%;object-fit:cover}
.v27-portrait .fallback{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;color:#557998;font-size:12px;background:linear-gradient(145deg,#e3f3ff,#d9e7f6)}
.v27-portrait .fallback b{font-size:42px;color:#2b679a}
.v27-photo-edit{position:absolute;right:8px;bottom:8px;width:32px;height:32px;border-radius:50%;background:#0e4173;color:white;border:2px solid white;font-size:17px;cursor:pointer}
.v27-profile-fields{flex:1;min-width:0;margin:0}
.v27-profile-fields .v27-field{display:grid;grid-template-columns:43% 1fr;gap:10px;padding:6px 4px;border-bottom:1px solid #e3edf6;font-size:12.7px;min-height:25px}
.v27-field dt{font-weight:600}.v27-field dd{margin:0;overflow-wrap:anywhere}
.v27-overview-body{padding:15px 15px 12px;min-height:223px}
.v27-overview-body p{margin:0 0 12px;font-size:13.5px;line-height:1.5;color:#103764}
.v27-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.v27-kpi{display:flex;align-items:center;justify-content:center;gap:8px;padding:11px 5px;border-radius:7px;min-height:75px;text-align:center}
.v27-kpi.blue{background:#eaf5ff}.v27-kpi.green{background:#e8fbf0}.v27-kpi.gold{background:#fff5e6}.v27-kpi.sky{background:#e5f2ff}
.v27-kpi .symbol{font-size:25px}.v27-kpi strong{display:block;font-size:22px;color:#07385d}.v27-kpi small{display:block;font-size:10px;line-height:1.25}
.v27-open{display:block;width:100%;background:#083968;border:1px solid #083968;color:#fff;padding:12px;border-radius:7px;text-align:center;font-size:17px;font-weight:700;cursor:pointer}.v27-open:hover{background:#145b91}
.v27-progress-body{max-height:282px;overflow:auto}
.v27-progress{border-collapse:collapse;width:100%;font-size:11.5px;text-align:left}
.v27-progress th{position:sticky;top:0;background:#e8f3fd;color:#133765;font-weight:700;z-index:1}
.v27-progress td,.v27-progress th{padding:8px 7px;border-bottom:1px solid #d8e6f2;border-right:1px solid #e3edf6;white-space:nowrap}
.v27-progress td:nth-child(2){min-width:190px;white-space:normal;font-weight:600}
.v27-progress td.num{text-align:center}
.v27-pbar{height:8px;border-radius:20px;background:#e1ebf3;min-width:66px;overflow:hidden;display:inline-block;width:65%;vertical-align:middle}
.v27-pbar i{height:100%;background:linear-gradient(90deg,#059e69,#21b68b);display:block;border-radius:20px}
.v27-progress caption{caption-side:bottom;padding:6px;text-align:left;font-size:10px;color:#5c7390}
.v27-recent-list{max-height:282px;overflow:auto}.v27-recent{display:grid;grid-template-columns:25px minmax(0,1fr) auto;gap:9px;align-items:center;padding:8px 10px;border-bottom:1px solid #e5eef7;font-size:12px}
.v27-recent .dot{font-size:17px}.v27-recent strong{display:block;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v27-recent small{display:block;font-size:10.5px;color:#67819d;margin-top:2px}.v27-status{font-size:10px;padding:5px 7px;border-radius:5px;white-space:nowrap;background:#e9f1fa;color:#305775}.v27-status.verified{background:#daf4e7;color:#086846}.v27-status.submitted{background:#ecf6ff;color:#005c9f}.v27-status.returned{background:#ffeded;color:#b72929}.v27-status.draft{background:#fff6e8;color:#8c540b}
.v27-dates .v27-box-title{background:#ffebea;color:#ba2025}.v27-announcements .v27-box-title{background:#e5f3ff}
.v27-notes{padding:10px 13px;max-height:144px;overflow:auto;font-size:12px}.v27-notes p{border-bottom:1px solid #e3edf4;margin:0;padding:8px 3px;line-height:1.4}.v27-notes p:last-child{border-bottom:0}
.v27-empty{padding:18px 16px;color:#617b95;font-size:12px}.v27-progress .v27-none{color:#627d97}.v27-error{margin:0 18px;background:#fff8e8;color:#80520c;padding:9px 12px;border:1px solid #f8d995;border-radius:6px}
@media(max-width:1120px){.v27-side{width:206px;flex-basis:206px}.v27-two{grid-template-columns:1fr}.v27-profile-body,.v27-overview-body{min-height:unset}.v27-last{grid-template-columns:1fr 1fr}.v27-top .college{font-size:16px}.v27-hero{min-height:135px}}
@media(max-width:760px){.v27-side{width:66px;flex-basis:66px}.v27-side .v27-logo{min-height:65px}.v27-side .v27-logo img{height:48px}.v27-side .v27-dept-name{font-size:0;padding:6px}.v27-side nav{padding:5px}.v27-side nav button{font-size:0;justify-content:center;padding:10px 0}.v27-side .v27-ico{font-size:21px}.v27-top{padding:10px 12px}.v27-top .college{font-size:12px}.v27-top-profile strong{font-size:11px}.v27-top-profile span{display:none}.v27-top-avatar,.v27-top-profile img{height:38px;width:38px}.v27-hero{padding:22px 16px;min-height:150px;background-size:auto 160%}.v27-hero h1{font-size:24px}.v27-hero .v27-sub{font-size:14px}.v27-content{padding:10px}.v27-two,.v27-bottom,.v27-last{grid-template-columns:1fr}.v27-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.v27-profile-body{padding:12px;gap:9px}.v27-portrait{width:100px;min-width:100px;height:125px}.v27-profile-fields .v27-field{display:block}.v27-field dt{font-size:10px;color:#547391}.v27-field dd{font-size:12px}}
@media print{#facultyDash.v27-student-mode .v27-side{display:none}.v27-top{position:static}}
#facultyDash.v27-transition>.dash-wrap{visibility:hidden}

.v27-overview-body{min-height:219px;display:flex;flex-direction:column;justify-content:space-between}
.v27-kpis{margin-bottom:0}
.v27-side nav button:nth-child(n+6){font-size:13px}
@media(max-width:1100px){.v27-hero{background-size:auto 145%;}.v27-side{flex-basis:210px;width:210px}}

.v27-side{position:sticky;top:0;height:100vh;min-height:100vh;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#7eaaca transparent;align-self:flex-start}
.v27-side .v27-logo{position:relative}
.v27-rail-toggle{position:absolute;right:7px;top:7px;width:24px;height:27px;background:#ffffffa0;color:#09406e;border:1px solid #7aa8cf;border-radius:6px;cursor:pointer;font-size:16px}
#v27StudentDash.v27-collapsed .v27-side{width:69px!important;flex-basis:69px!important}
#v27StudentDash.v27-collapsed .v27-logo{min-height:80px}
#v27StudentDash.v27-collapsed .v27-logo img{height:45px;max-width:54px;margin-top:21px}
#v27StudentDash.v27-collapsed .v27-rail-toggle{top:2px;right:22px;height:20px;width:24px;font-size:12px}
#v27StudentDash.v27-collapsed .v27-dept-name{display:none}
#v27StudentDash.v27-collapsed .v27-side nav{padding:5px 4px}
#v27StudentDash.v27-collapsed .v27-side nav button{font-size:0!important;justify-content:center;gap:0;padding:11px 0;min-height:44px}
#v27StudentDash.v27-collapsed .v27-side nav button .v27-ico{font-size:20px!important}
