:root{--navy:#0c2d4a;--deep:#04192a;--gold:#c9a96b;--ivory:#f6f4ed;--line:#dfe4e6;--muted:#73818a;--serif:Georgia,"Times New Roman",serif;--sans:"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:#f2f4f5;color:#183040;font:15px/1.6 var(--sans);display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--deep);color:#fff;padding:1.3rem 1.2rem;display:flex;flex-direction:column}.portal-brand{background:var(--ivory);padding:.35rem}.portal-brand img{width:100%;display:block}.portal-label{color:var(--gold);font-size:.62rem;letter-spacing:.22em;margin:1.6rem .65rem .8rem}.sidebar nav{display:flex;flex-direction:column;gap:.15rem}.sidebar nav a{color:rgba(255,255,255,.62);text-decoration:none;padding:.55rem .7rem;font-size:.78rem;border-left:2px solid transparent}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:rgba(255,255,255,.06);border-color:var(--gold)}.back-site{margin-top:auto;color:var(--gold);text-decoration:none;font-size:.72rem;padding:.7rem}.sidebar+main{padding:2.2rem 3vw 4rem}.portal-header{display:flex;justify-content:space-between;align-items:center}.portal-header span,.panel-head span{color:#9a7b43;font-size:.6rem;letter-spacing:.18em}.portal-header h1{font:400 2.4rem var(--serif);margin:.2rem 0;color:var(--navy)}.portal-header button{width:42px;height:42px;border:1px solid var(--line);background:#fff;border-radius:50%}.notice{display:flex;gap:1rem;margin:1.7rem 0;background:#fff8e8;border-left:4px solid var(--gold);padding:1rem 1.2rem}.notice p{margin:0;color:#6d685e;font-size:.8rem}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.summary article,.panel{background:#fff;border:1px solid var(--line)}.summary article{padding:1rem 1.1rem}.summary span{display:block;color:var(--muted);font-size:.72rem}.summary strong{display:block;font:400 2rem var(--serif);color:var(--navy)}.summary small{color:#a1a9ae}.portal-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem;margin-top:1rem}.panel{padding:1.2rem}.panel.wide{grid-column:span 1}.panel-head{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding-bottom:.8rem}.panel-head h2{font:400 1.3rem var(--serif);color:var(--navy);margin:.1rem 0}.panel-head button{background:none;border:0;color:#8b6c37;font-size:.7rem}.empty{text-align:center;padding:3.5rem 1rem}.empty i{display:grid;place-items:center;width:58px;height:58px;margin:auto;border:1px solid var(--gold);border-radius:50%;font:normal 1.2rem var(--serif);color:var(--gold)}.empty h3{font:400 1.3rem var(--serif);color:var(--navy);margin:.9rem 0 .3rem}.empty p{max-width:520px;margin:auto;color:var(--muted);font-size:.78rem}.progress-ring{width:150px;height:150px;border:12px solid #edf0f1;border-top-color:var(--gold);border-radius:50%;margin:2rem auto;display:grid;place-items:center;text-align:center}.progress-ring strong{font:2rem var(--serif);color:var(--navy)}.progress-ring span{font-size:.65rem;color:var(--muted)}.progress-list{list-style:none;padding:0;margin:0}.progress-list li{display:flex;justify-content:space-between;padding:.55rem 0;border-top:1px solid var(--line);font-size:.75rem}.student-card{min-height:245px;margin-top:1.2rem;padding:1.5rem;background:linear-gradient(145deg,#0c2d4a,#04192a);color:#fff;box-shadow:0 14px 30px rgba(4,25,42,.18)}.card-seal{display:grid;place-items:center;width:52px;height:52px;border:1px solid var(--gold);border-radius:50%;color:var(--gold);font:1.2rem var(--serif)}.student-card>b{display:block;font:1.15rem var(--serif);margin-top:1rem}.student-card>small{color:var(--gold);letter-spacing:.2em}.student-card>div:last-child{border-top:1px solid rgba(255,255,255,.15);margin-top:2rem;padding-top:.8rem}.student-card span,.student-card strong{display:block;font-size:.68rem}.student-card strong{color:rgba(255,255,255,.55);font-weight:400}.services{display:grid;grid-template-columns:repeat(4,1fr);gap:.7rem;padding-top:1rem}.services button{background:#f6f7f7;border:1px solid var(--line);padding:1rem;color:var(--navy)}@media(max-width:900px){body{display:block}.sidebar{position:relative;height:auto}.sidebar nav{display:none}.sidebar+main{padding:1.5rem 4%}.summary{grid-template-columns:1fr 1fr}.portal-grid{grid-template-columns:1fr}.services{grid-template-columns:1fr 1fr}}@media(max-width:520px){.summary,.services{grid-template-columns:1fr}.portal-header h1{font-size:1.8rem}.notice{display:block}}
