body.app-body { margin: 0; background: var(--uas-bg); min-height: 100vh; }
.app-shell { min-height: 100vh; display: grid; grid-template-columns: 260px minmax(0,1fr); grid-template-rows: 78px 1fr auto; }
.uas-topbar {
    grid-column: 1 / -1; grid-row: 1;
    height: 78px; display: flex; align-items: center; gap: 14px;
    padding: 0 22px; position: sticky; top: 0; z-index: 1030;
    background: linear-gradient(105deg, var(--uas-blue) 0%, var(--uas-blue-dark) 72%);
    box-shadow: 0 8px 25px rgba(0,53,149,.16);
}
.topbar-brand { display:flex; align-items:center; gap:16px; color:#fff; min-width:0; }
.topbar-shield { width:58px; height:64px; margin-top:7px; background:#fff; transform:skew(-6.5deg); display:grid; place-items:center; padding:5px 9px; box-shadow:0 5px 15px rgba(0,0,0,.12); }
.topbar-shield img { max-width:100%; max-height:56px; transform:skew(6.5deg); object-fit:contain; }
.topbar-brand-copy { display:flex; flex-direction:column; line-height:1.08; }
.topbar-brand-copy strong { font-size:1.2rem; }
.topbar-brand-copy small { opacity:.75; letter-spacing:.06em; font-size:.72rem; text-transform:uppercase; margin-top:4px; }
.topbar-actions { display:flex; align-items:center; gap:10px; }
.topbar-icon { width:42px; height:42px; border:0; border-radius:50%; background:rgba(255,255,255,.12); color:#fff; position:relative; }
.notification-dot { position:absolute; right:9px; top:8px; width:7px; height:7px; border-radius:50%; background:var(--uas-gold-bright); }
.user-menu { border:0; background:transparent; color:#fff; display:flex; gap:10px; align-items:center; padding:0; }
.user-menu::after { margin-left:4px; }
.user-menu img,.user-avatar-initials { width:42px; height:42px; border-radius:50%; border:2px solid rgba(255,255,255,.72); object-fit:cover; display:grid; place-items:center; background:#fff; color:var(--uas-blue-dark); font-weight:700; }
.user-menu span.text-start { display:flex; flex-direction:column; line-height:1.06; max-width:220px; }
.user-menu span.text-start strong { font-size:.9rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-menu span.text-start small { font-size:.7rem; opacity:.75; margin-top:4px; }

.uas-sidebar { grid-column:1; grid-row:2; background:#fff; border-right:1px solid var(--uas-border); padding:20px 14px 14px; display:flex; flex-direction:column; min-height:calc(100vh - 78px); position:sticky; top:78px; align-self:start; height:calc(100vh - 78px); }
.sidebar-cycle-card,.mobile-cycle-card { background:linear-gradient(135deg,#f8f1d9,#f1ebd5); border:1px solid #e8ddbb; border-radius:14px; padding:13px 14px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.sidebar-cycle-card::after { content:''; position:absolute; right:-26px; bottom:-30px; width:80px; height:80px; transform:rotate(6.5deg); background:rgba(184,157,43,.14); }
.sidebar-cycle-card span,.mobile-cycle-card small { font-size:.72rem; color:#806c22; text-transform:uppercase; letter-spacing:.08em; }
.sidebar-cycle-card strong,.mobile-cycle-card strong { font-size:1rem; margin-top:2px; }
.sidebar-cycle-card small,.mobile-cycle-card span { color:#776f61; }
.sidebar-nav { display:flex; flex-direction:column; gap:5px; margin-top:16px; }
.sidebar-link { display:flex; align-items:center; gap:12px; min-height:46px; padding:10px 13px; border-radius:12px; color:#526176; text-decoration:none; transition:.2s ease; font-weight:500; }
.sidebar-link i { width:22px; text-align:center; font-size:1.08rem; }
.sidebar-link:hover { background:#f1f5fb; color:var(--uas-blue-dark); transform:translateX(2px); }
.sidebar-link.active { background:linear-gradient(90deg,rgba(29,113,184,.13),rgba(0,53,149,.05)); color:var(--uas-blue-dark); font-weight:700; box-shadow:inset 3px 0 0 var(--uas-gold); }
.sidebar-footer-brand { margin-top:auto; text-align:center; color:#8a806c; font-style:italic; font-size:.85rem; padding:12px 0 5px; }

.app-main { grid-column:2; grid-row:2; min-width:0; }
.uas-footer { grid-column:1 / -1; grid-row:3; min-height:60px; background:var(--uas-cream); border-top:1px solid #e4dcc2; display:flex; align-items:center; justify-content:center; gap:12px; padding:9px 20px; color:#6f6a5e; }
.uas-footer img { height:42px; width:auto; object-fit:contain; }
.uas-footer div { display:flex; flex-direction:column; line-height:1.1; text-align:center; }
.uas-footer strong { color:#525047; font-size:.8rem; }
.uas-footer span { font-style:italic; font-size:.78rem; margin-top:3px; }

.uas-welcome-card { background:linear-gradient(112deg,var(--uas-blue) 0%,var(--uas-blue-dark) 70%); color:#fff; border-radius:22px; padding:26px 28px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:space-between; min-height:145px; box-shadow:var(--uas-shadow); }
.uas-welcome-card::after { content:''; position:absolute; width:240px; height:240px; right:-90px; top:-78px; border:38px solid rgba(255,255,255,.045); border-radius:50%; }
.uas-welcome-card .uas-eyebrow { color:#f1d77c; }
.uas-welcome-card h1 { font-size:clamp(1.8rem,3vw,2.55rem); font-weight:700; margin:0 0 5px; }
.uas-welcome-card p { margin:0; color:rgba(255,255,255,.78); font-size:1.02rem; }
.welcome-rhomboid { min-width:150px; padding:14px 18px; background:var(--uas-gold); transform:skew(-6.5deg); position:relative; z-index:2; text-align:center; box-shadow:0 10px 30px rgba(0,0,0,.13); }
.welcome-rhomboid span { display:block; transform:skew(6.5deg); font-weight:700; color:#fff; }

.uas-stat-card { background:#fff; border:1px solid var(--uas-border); border-radius:var(--uas-radius); min-height:112px; padding:18px; display:flex; align-items:center; gap:15px; box-shadow:0 10px 26px rgba(35,60,94,.045); transition:.22s ease; }
.uas-stat-card:hover { transform:translateY(-3px); box-shadow:var(--uas-shadow); }
.stat-icon { width:48px; height:48px; border-radius:14px; background:linear-gradient(135deg,#e9f4fd,#edf2fb); color:var(--uas-blue-dark); display:grid; place-items:center; font-size:1.25rem; }
.uas-stat-card div:last-child { display:flex; flex-direction:column; }
.uas-stat-card strong { font-size:1.65rem; line-height:1; }
.uas-stat-card span { color:var(--uas-muted); margin-top:5px; }

.uas-panel { background:#fff; border:1px solid var(--uas-border); border-radius:var(--uas-radius); padding:20px; box-shadow:0 10px 26px rgba(35,60,94,.045); }
.uas-panel-header,.section-title-row,.page-heading { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.uas-panel-header h2,.section-title-row h2 { font-size:1.25rem; font-weight:700; margin:0; }
.page-heading h1 { font-size:1.8rem; font-weight:700; margin:0; }
.page-heading p { margin:.25rem 0 0; color:var(--uas-muted); }
.academic-current-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:18px; }
.academic-current-grid > div { background:#f8fafc; border:1px solid #edf1f6; border-radius:14px; padding:15px; display:flex; flex-direction:column; }
.academic-current-grid span { color:var(--uas-muted); font-size:.78rem; }
.academic-current-grid strong { margin-top:4px; }
.quick-actions-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; margin-top:14px; }
.quick-actions-grid a { text-decoration:none; color:var(--uas-text); background:#f8fafc; border:1px solid #edf1f6; border-radius:14px; min-height:78px; padding:12px; display:flex; flex-direction:column; justify-content:center; align-items:center; gap:6px; transition:.2s ease; }
.quick-actions-grid a i { font-size:1.25rem; color:var(--uas-blue); }
.quick-actions-grid a:hover { border-color:#cddcf0; transform:translateY(-2px); }

.course-card { background:#fff; border:1px solid var(--uas-border); border-radius:20px; padding:20px; position:relative; overflow:hidden; height:100%; box-shadow:0 10px 26px rgba(35,60,94,.045); transition:.24s ease; }
.course-card:hover { transform:translateY(-4px); box-shadow:var(--uas-shadow); }
.course-card-accent { position:absolute; left:0; top:0; bottom:0; width:5px; background:linear-gradient(var(--uas-blue),var(--uas-blue-dark)); }
.course-card-top { display:flex; align-items:center; justify-content:space-between; }
.course-card h3 { font-size:1.28rem; font-weight:700; margin:18px 0 3px; color:var(--uas-blue-dark); }
.course-card > p { color:var(--uas-muted); }
.course-metrics { display:flex; gap:12px; flex-wrap:wrap; font-size:.82rem; color:#66748a; }
.course-metrics span { display:flex; align-items:center; gap:6px; }
.course-metrics i { color:var(--uas-blue); }
.course-progress { margin-top:18px; }
.course-progress > div:first-child { display:flex; justify-content:space-between; font-size:.82rem; margin-bottom:6px; }
.course-progress .progress { height:7px; background:#edf1f6; }
.course-progress .progress-bar { background:linear-gradient(90deg,var(--uas-blue-light),var(--uas-blue)); }
.course-enter-link { display:flex; justify-content:space-between; align-items:center; text-decoration:none; color:var(--uas-blue-dark); font-weight:700; margin-top:19px; padding-top:14px; border-top:1px solid #edf1f6; }

.uas-empty-state { background:#fff; border:1px dashed #cfd9e7; border-radius:20px; padding:45px 24px; text-align:center; }
.empty-icon { width:70px; height:70px; margin:0 auto 15px; display:grid; place-items:center; border-radius:20px; color:var(--uas-blue); background:#eef6fd; font-size:1.8rem; }
.uas-empty-state h3 { font-weight:700; font-size:1.25rem; }
.uas-empty-state p { color:var(--uas-muted); max-width:580px; margin-left:auto; margin-right:auto; }
.uas-table thead th { color:#68758a; text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; border-bottom-color:#e8edf4; background:#fbfcfe; }
.uas-table td { border-bottom-color:#edf1f6; }
.uas-modal { border:0; border-radius:20px; overflow:hidden; box-shadow:0 25px 80px rgba(20,40,70,.18); }

.uas-mobile-offcanvas { background:linear-gradient(180deg,var(--uas-blue-dark),#082f73); color:#fff; width:290px!important; }
.uas-mobile-offcanvas .sidebar-link { color:rgba(255,255,255,.8); }
.uas-mobile-offcanvas .sidebar-link.active,.uas-mobile-offcanvas .sidebar-link:hover { color:#fff; background:rgba(255,255,255,.1); box-shadow:inset 3px 0 0 var(--uas-gold); }
.mobile-menu-button { color:#fff; border:0; font-size:1.45rem; padding:.35rem; }

/* LOGIN */
.uas-login-body { min-height:100vh; background:linear-gradient(135deg,#f3f7fc 0%,#edf4fa 55%,#f7f4e9 100%); overflow-x:hidden; position:relative; }
.uas-login-body::before { content:''; position:fixed; inset:0; background:linear-gradient(105deg,rgba(0,53,149,.03),transparent 55%); pointer-events:none; }
.uas-login-orb { position:fixed; border-radius:50%; filter:blur(1px); opacity:.5; pointer-events:none; }
.uas-login-orb-one { width:420px;height:420px;right:-180px;top:-150px;background:rgba(41,171,226,.14); }
.uas-login-orb-two { width:300px;height:300px;left:-100px;bottom:-140px;background:rgba(184,157,43,.12); }
.login-hero { max-width:610px; padding:35px 25px 35px 0; }
.institution-kicker { text-transform:uppercase; letter-spacing:.16em; color:var(--uas-gold-dark); font-weight:700; font-size:.8rem; }
.login-hero h1 { font-weight:700; font-size:clamp(2.5rem,5vw,4.2rem); line-height:.98; margin:15px 0 20px; color:var(--uas-blue-dark); }
.login-hero h1 span { color:var(--uas-blue); }
.login-hero p { font-size:1.15rem; color:#56657b; max-width:570px; }
.uas-pill { border:1px solid #d9e3ef; background:rgba(255,255,255,.7); border-radius:999px; padding:.55rem .8rem; color:#536176; }
.uas-pill i { color:var(--uas-blue); margin-right:5px; }
.login-card { background:#fff; border-radius:24px; overflow:hidden; box-shadow:0 30px 80px rgba(26,55,91,.16); border:1px solid rgba(255,255,255,.8); }
.login-brand-band { background:linear-gradient(105deg,var(--uas-blue),var(--uas-blue-dark)); min-height:116px; display:flex; align-items:center; padding:0 22px; color:#fff; position:relative; }
.login-brand-band::after { content:''; position:absolute; right:-60px; top:-80px; width:210px; height:210px; border-radius:50%; border:30px solid rgba(255,255,255,.04); }
.brand-shield { align-self:stretch; width:95px; background:#fff; transform:skew(-6.5deg); display:grid; place-items:center; padding:8px 13px; margin-left:4px; }
.brand-shield img { max-width:100%; max-height:94px; transform:skew(6.5deg); object-fit:contain; }
.brand-copy { padding-left:20px; display:flex; flex-direction:column; line-height:1.1; position:relative; z-index:1; }
.brand-system { font-size:1.35rem; font-weight:700; }
.brand-university { margin-top:5px; font-size:.72rem; text-transform:uppercase; letter-spacing:.13em; opacity:.72; }
.login-card-body { padding:30px; }
.btn-google-uas { min-height:52px; border:1px solid #d8e0ea; border-radius:13px; background:#fff; display:flex; justify-content:center; align-items:center; gap:12px; font-weight:600; color:#26354b; box-shadow:0 8px 20px rgba(23,50,86,.05); }
.btn-google-uas:hover:not(:disabled) { border-color:#b7c7dd; transform:translateY(-1px); box-shadow:0 12px 28px rgba(23,50,86,.09); }
.google-g { width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#4285f4;color:#fff;font-family:Arial;font-weight:700; }
.login-security { display:flex; justify-content:center; gap:8px; color:#778498; font-size:.82rem; }
.login-security i { color:var(--uas-success); }
