:root{--ink:#17293a;--blue:#84c9e7;--gold:#d9a956;--mist:#f5f8f9;--muted:#74858d}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:#344650;background:var(--mist)}.portal-shell{display:grid;grid-template-columns:255px 1fr;min-height:100vh}.portal-side{background:var(--ink);padding:30px 18px;color:#abc0ca;position:relative}.portal-logo{display:flex;align-items:center;gap:11px;color:#fff;text-decoration:none;font-size:.78rem;font-weight:bold;letter-spacing:.14em;margin:0 10px 52px}.portal-logo b,.portal-login-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--blue);color:var(--ink);font-family:Georgia}.portal-logo small{font-size:.55rem;letter-spacing:.13em;color:#91aab5}.portal-side nav a{display:block;padding:12px 10px;color:#aec1ca;text-decoration:none;font-size:.84rem;border-radius:3px}.portal-side nav a:hover{background:#ffffff12;color:#fff}.portal-side nav i{width:22px;color:var(--blue)}.portal-out{position:absolute;bottom:28px;left:28px;color:var(--blue);font-size:.77rem;text-decoration:none}.portal-header{height:78px;background:#fff;border-bottom:1px solid #e5edef;display:flex;justify-content:space-between;align-items:center;padding:0 42px}.portal-header span,.portal-title>span{display:block;font-size:.64rem;letter-spacing:.15em;font-weight:bold;color:#6190a5}.portal-header strong{font-size:.9rem;color:var(--ink)}.portal-header>a{font-size:.78rem;text-decoration:none;color:#69808a}.portal-menu{border:0;background:none;color:var(--ink);font-size:1.1rem}.portal-content{max-width:1300px;padding:42px}.portal-welcome{background:linear-gradient(115deg,#17293aea,#17293aa6),url('https://images.unsplash.com/photo-1524178232363-1fb2b075b655?auto=format&fit=crop&w=1600&q=80') center/cover;color:#e4eef1;padding:clamp(2rem,5vw,4rem);margin-bottom:28px}.portal-welcome span{font-size:.7rem;letter-spacing:.12em;color:var(--gold)}.portal-welcome h1,.portal-title h1{font-family:'Playfair Display',serif;color:#fff;font-size:clamp(2rem,4vw,3.3rem);margin:.6rem 0}.portal-welcome p{max-width:550px;line-height:1.65;margin:0}.portal-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-bottom:28px}.portal-stats>div{background:#fff;border:1px solid #e4edef;padding:22px}.portal-stats i{color:#59a0c0;display:block;margin-bottom:15px}.portal-stats strong{font-family:'Playfair Display',serif;color:var(--ink);font-size:1.7rem;display:block}.portal-stats span,.portal-stats a{font-size:.76rem;color:#6c7e87;text-decoration:none}.portal-panel,.ann-section{background:#fff;border:1px solid #e3ecef;padding:25px;margin-bottom:26px}.portal-panel-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.portal-panel h2,.ann-section h2,.profile-card h2{font-family:'Playfair Display',serif;color:var(--ink);font-size:1.4rem;margin:0}.portal-panel-title a{font-size:.76rem;color:#4c91af;text-decoration:none;font-weight:bold}.assignment{display:flex;justify-content:space-between;align-items:center;padding:15px 0;border-top:1px solid #edf1f2}.assignment b{display:block;color:var(--ink);font-size:.9rem}.assignment span{font-size:.75rem;color:var(--muted)}.assignment a{font-size:.76rem;text-decoration:none;color:#4b8daa}.portal-button{display:inline-block;border:0;background:var(--ink);color:#fff;text-decoration:none;padding:11px 15px;font-size:.78rem;font-weight:bold;margin-top:9px;cursor:pointer}.announcement-list article{display:flex;gap:16px;padding:16px 0;border-top:1px solid #edf1f2}.announcement-list span{height:40px;min-width:40px;display:grid;place-items:center;background:#e5f4fa;color:#438ba8;font-size:.67rem;font-weight:bold}.announcement-list h3{font-size:.9rem;color:var(--ink);margin:0 0 5px}.announcement-list p{font-size:.8rem;line-height:1.6;margin:0;color:#657881}.portal-title{margin-bottom:28px}.portal-title h1{color:var(--ink);margin:.5rem 0}.portal-title p{color:var(--muted);margin:0}.materials-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.material-card{background:#fff;border:1px solid #e4edef;padding:24px;min-height:230px;display:flex;flex-direction:column}.material-card>span{font-size:.65rem;font-weight:bold;letter-spacing:.1em;color:#5090ac}.material-card h2{font-family:'Playfair Display',serif;color:var(--ink);font-size:1.35rem;margin:10px 0}.material-card p{font-size:.82rem;line-height:1.6;color:#71838b}.material-card small{font-size:.68rem;color:#83939b;margin-top:auto}.material-card a{font-size:.76rem;color:#3c85a5;text-decoration:none;font-weight:bold;margin-top:14px}.material-form{max-width:720px}.material-form label,.profile-form label{display:block;font-size:.74rem;font-weight:bold;color:#526770;margin-bottom:15px}.material-form input,.material-form textarea,.material-form select,.profile-form input{display:block;width:100%;padding:11px;border:1px solid #dbe6e9;margin-top:6px;font:inherit;background:#fff}.profile-card{background:linear-gradient(110deg,#e7f6fb,#fff);padding:26px;display:flex;gap:18px;align-items:center;margin-bottom:20px;max-width:650px;border:1px solid #e3edef}.profile-card p{font-size:.78rem;color:var(--muted);margin:5px 0}.avatar{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--blue);font-family:'Playfair Display',serif;font-size:1.5rem}.profile-form{max-width:650px}.profile-form small{font-weight:normal;color:var(--muted)}.muted{font-size:.84rem;color:var(--muted)}.notice{background:#e7f5ed;color:#367552;padding:10px;font-size:.8rem}.portal-login{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#162a3a,#326278)}.portal-login-card{width:min(430px,92vw);padding:42px;background:#fff}.portal-login-mark{width:52px;height:52px;font-size:1.1rem}.portal-login-card .label{font-size:.64rem;letter-spacing:.16em;font-weight:bold;color:#5a899e;display:block;margin-top:22px}.portal-login-card h1{font-family:'Playfair Display',serif;color:var(--ink);font-size:2.25rem;margin:8px 0}.portal-login-card p{color:var(--muted);font-size:.86rem}.type-switch{display:flex;gap:10px;margin:22px 0}.type-switch label{font-size:.78rem;padding:9px 11px;background:#eff5f7}.field-label{display:block;font-size:.76rem;font-weight:bold;color:#50636d;margin:14px 0}.field-label input{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid #dbe5e8}.portal-login-card button{width:100%;border:0;background:var(--ink);color:#fff;padding:13px;font-weight:bold;margin-top:10px;cursor:pointer}.portal-login-card>a{display:block;text-align:center;color:#5b8fa4;text-decoration:none;font-size:.75rem;margin-top:18px}.error{background:#fae8e8;color:#9c4a4a;padding:9px;font-size:.78rem}@media(max-width:900px){.portal-shell{grid-template-columns:1fr}.portal-side{position:fixed;z-index:10;top:0;bottom:0;left:-255px;width:255px;transition:.25s}.portal-side.show{left:0}.portal-content{padding:28px}.portal-header{padding:0 24px}}@media(max-width:650px){.portal-content{padding:18px}.portal-header{height:65px}.portal-header>a{display:none}.materials-grid{grid-template-columns:1fr}.portal-stats{gap:10px}.portal-stats>div{padding:16px}.portal-welcome{margin:-18px -18px 20px}.assignment{align-items:start;gap:10px;flex-direction:column}}
