.portal-dashboard{--portal-navy:#11233c;--portal-teal:#08766c;--portal-ink:#263b50;--portal-muted:#63768a;--portal-line:#e0e7ee;color:var(--portal-ink);min-width:0}.portal-page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}.portal-page-heading h1{font-size:clamp(1.55rem,2.3vw,2.1rem);letter-spacing:-.045em;line-height:1.24;margin:8px 0 10px;overflow-wrap:anywhere}.portal-page-heading p{font-size:.87rem;color:var(--portal-muted);margin:0}.portal-dashboard .eyebrow{color:var(--portal-teal);font-size:.63rem;letter-spacing:.16em;font-weight:800}.portal-date{display:flex;gap:9px;align-items:center;flex-shrink:0;padding:11px 14px;border:1px solid var(--portal-line);border-radius:12px;background:#fff;color:#63758b;font-size:.76rem}.portal-date svg{width:17px;height:17px;color:var(--portal-teal)}
.portal-hero{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;position:relative;overflow:hidden;background:linear-gradient(117deg,#10253e,#0f3b4a 68%,#145e5d);border-radius:23px;min-height:275px;padding:34px 38px;color:#fff;margin-bottom:22px;isolation:isolate}.portal-hero:before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 78% 20%,#83d8b817,transparent 43%),radial-gradient(circle at 0 100%,#0f9b8d29,transparent 40%);z-index:-1}.portal-hero-copy{max-width:700px;align-self:center}.portal-kicker{display:inline-block;color:#8de0c6;font-size:.62rem;font-weight:750;letter-spacing:.17em;margin-bottom:15px}.portal-hero h2{font-size:clamp(1.8rem,3.1vw,2.65rem);font-weight:750;letter-spacing:-.045em;line-height:1.13;max-width:16ch;margin:0 0 16px;color:#fff}.portal-hero-copy>p{font-size:.85rem;color:#d0e0e7;line-height:1.75;max-width:59ch;margin:0}.portal-hero-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:25px}.portal-hero-actions button{min-height:44px;padding:11px 18px;border-radius:10px;font-size:.8rem;font-weight:700}.portal-hero-actions .portal-primary{color:#153d44;background:#fff}.portal-hero-actions .portal-hero-secondary{color:#f4ffff;background:#ffffff0d;border:1px solid #ffffff3b}.portal-hero-actions button:hover{filter:none;background:#e5f5ee;color:#0f4a43}.portal-hero-art{position:relative;align-self:center;height:220px;width:260px;justify-self:center}.portal-art-orbit{position:absolute;inset:1px 5px;border:1px solid #9bd6ce2b;border-radius:50%;transform:rotate(-20deg)}.portal-art-orbit:before,.portal-art-orbit:after{content:'';position:absolute;border:1px solid #9bd6ce1c;border-radius:50%;inset:20px -18px}.portal-art-orbit:after{inset:-18px 20px}.portal-art-card{position:absolute;border:1px solid #ffffff42;border-radius:17px;box-shadow:0 20px 45px #05172730}.portal-art-back{left:34px;top:19px;width:157px;height:155px;transform:rotate(-13deg);background:#16676d;display:flex;gap:12px;align-items:flex-start;padding:17px;color:#b9e7e1;font-size:.8rem}.portal-art-back>svg{width:20px;height:20px}.portal-art-front{left:64px;top:51px;width:177px;height:154px;padding:21px;background:#f9fcf5;color:#173b43;transform:rotate(8deg)}.portal-art-front>svg{color:#118778;width:29px;height:29px;margin-bottom:7px}.portal-art-front>span{display:block;font-size:.68rem;line-height:1.5}.portal-art-front strong{display:block;font-size:.91rem;letter-spacing:-.025em}.portal-art-lines{display:grid;gap:4px;margin-top:12px}.portal-art-lines i{display:block;height:3px;background:#c4d8cd;border-radius:3px}.portal-art-lines i:nth-child(2){width:83%}.portal-art-lines i:nth-child(3){width:55%}.portal-art-spark,.portal-art-check{position:absolute;display:grid;place-items:center;box-shadow:0 8px 20px #05233330}.portal-art-spark{left:9px;top:62px;width:39px;height:39px;border-radius:12px;background:#f1bf69;color:#714c12;transform:rotate(-10deg)}.portal-art-spark svg{width:20px;height:20px}.portal-art-check{right:3px;top:10px;width:39px;height:39px;border-radius:50%;background:#9be3c8;color:#0d5e4b}.portal-art-check svg{width:21px;height:21px}
.portal-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:22px}.portal-dashboard .portal-stat{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;min-width:0;border:1px solid var(--portal-line);border-radius:16px;background:#fff;color:var(--portal-ink);padding:19px 20px;text-align:left;min-height:136px;box-shadow:0 3px 8px #263f571c}.portal-stat-icon{grid-column:2;grid-row:1/4;width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:#e5f3ed;color:#08766c;margin-left:6px}.portal-stat-icon svg{width:20px;height:20px}.portal-stat-1 .portal-stat-icon{background:#edf0fb;color:#576ca7}.portal-stat-2 .portal-stat-icon{background:#fff2df;color:#9a691e}.portal-stat-3 .portal-stat-icon{background:#fbecee;color:#ac5262}.portal-stat>strong{font-size:1.95rem;line-height:1.1;letter-spacing:-.05em;font-weight:780;font-variant-numeric:tabular-nums}.portal-stat-label{display:block;font-size:.8rem;font-weight:700;margin-top:12px;line-height:1.3}.portal-stat>small{font-size:.68rem;color:var(--portal-muted);margin-top:5px;line-height:1.4}.portal-dashboard .portal-stat:hover{background:#fbfefa;border-color:#a1c6b7;filter:none}
.portal-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 25px}.portal-shortcuts>button{display:flex;align-items:center;text-align:left;gap:11px;min-width:0;min-height:74px;background:#eef3f7;color:#304b61;border:1px solid #e1e9f0;border-radius:12px;padding:14px}.portal-shortcut-icon{width:31px;flex-shrink:0;color:#08766c}.portal-shortcut-icon svg{width:23px;height:23px}.portal-shortcuts>button>span:nth-child(2){min-width:0;flex:1}.portal-shortcuts strong{font-size:.73rem;display:block;line-height:1.35}.portal-shortcuts small{font-size:.64rem;font-weight:400;color:#5d6d81;margin-top:4px;line-height:1.35}.portal-shortcuts .portal-shortcut-arrow{width:14px;height:14px;flex-shrink:0;color:#8094a6}.portal-shortcuts>button:hover{background:#e3efe9;filter:none}
.portal-dashboard-columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:25px;align-items:start}.portal-course-area{min-width:0}.portal-section-heading{display:flex;gap:12px;justify-content:space-between;align-items:center;margin:2px 0 18px}.portal-section-heading h2{font-size:1.3rem;font-weight:760;margin:6px 0 0;letter-spacing:-.035em}.portal-count{font-size:.71rem;padding:6px 10px;background:#e9eff4;color:#536e83;border-radius:8px;font-weight:600;white-space:nowrap}.portal-course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:18px}.portal-course-card{min-width:0;border:1px solid var(--portal-line);border-radius:17px;overflow:hidden;background:#fff;box-shadow:0 4px 12px #233c5410}.portal-course-cover{height:128px;padding:17px;position:relative;overflow:hidden;isolation:isolate;background:#e3efec;color:#245d56}.portal-tone-1{background:#e7eafa;color:#485b8f}.portal-tone-2{background:#f7ead7;color:#8d6026}.portal-tone-3{background:#e0ecf3;color:#35627b}.portal-cover-top{display:flex;gap:10px;align-items:center;justify-content:space-between;position:relative;z-index:1;font-size:.72rem;font-weight:750}.portal-course-status{font-size:.56rem;font-weight:650;background:#ffffffa1;border:1px solid #ffffffa6;border-radius:20px;padding:4px 7px;line-height:1.2;color:inherit;white-space:nowrap}.portal-course-status:before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;background:currentColor;margin-right:5px;vertical-align:middle}.portal-course-status.is-draft{background:#fff8e8;color:#89601d}.portal-cover-symbol{position:absolute;right:22px;bottom:14px;transform:rotate(-10deg);opacity:.6}.portal-cover-symbol svg{width:62px;height:62px;stroke-width:1}.portal-cover-orbit{position:absolute;width:175px;height:175px;border:1px solid currentColor;border-radius:50%;right:-36px;top:-6px;opacity:.12}.portal-cover-orbit:after{content:'';position:absolute;inset:17px;border:1px solid currentColor;border-radius:50%}.portal-cover-dots{position:absolute;left:19px;bottom:23px;width:45px;height:30px;background:radial-gradient(currentColor 1px,transparent 1.5px);background-size:9px 9px;opacity:.24}.portal-course-body{padding:20px}.portal-course-faculty{font-size:.59rem;color:#5d6d81;text-transform:uppercase;letter-spacing:.08em;font-weight:650;display:block;margin-bottom:9px}.portal-course-body h3{font-size:1.12rem;font-weight:750;letter-spacing:-.025em;line-height:1.45;margin:0 0 7px;color:#223f54;overflow-wrap:anywhere}.portal-course-meta{font-size:.72rem;color:#5d6d81;margin:0}.portal-course-owner{font-size:.68rem;line-height:1.5;display:flex;gap:7px;align-items:center;color:#5d6d81;margin:15px 0 0;min-height:25px}.portal-course-owner>svg{width:15px;height:15px;flex-shrink:0;color:#789588}.portal-course-owner span{min-width:0;overflow-wrap:anywhere}.portal-course-facts{display:flex;gap:10px;flex-wrap:wrap;align-items:center;border-top:1px solid #edf1f5;margin-top:17px;padding-top:15px;color:#5d6d81;font-size:.65rem}.portal-course-facts>span{display:flex;gap:4px;align-items:center}.portal-course-facts svg{width:13px;height:13px}.portal-course-facts b{font-weight:700;color:#426176}.portal-dashboard .portal-course-open{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#f0f6f3;border:1px solid #dbeae1;color:#126b56;font-size:.75rem;font-weight:700;width:100%;border-radius:9px;padding:11px 12px;margin-top:18px;min-height:44px}.portal-course-open svg{width:17px;height:17px}.portal-dashboard .portal-course-open:hover{filter:none;background:#dcefe3}
.portal-dashboard-aside{display:grid;gap:17px;min-width:0}.portal-panel{padding:21px;background:#fff;border:1px solid var(--portal-line);border-radius:16px;box-shadow:0 3px 10px #183c5310;min-width:0}.portal-panel h2{font-size:1.02rem;letter-spacing:-.025em;line-height:1.3;margin:0 0 10px;color:#2d4a60}.portal-panel p{font-size:.76rem;line-height:1.7;color:#5d6d81;margin:0}.portal-review-panel{position:relative;overflow:hidden;background:#fff9ef;border-color:#f0e1c4}.portal-review-panel:after{content:'';position:absolute;width:98px;height:98px;border:1px solid #e7d0a45c;border-radius:50%;right:-40px;top:16px;pointer-events:none}.portal-review-panel .eyebrow{color:#7e5b24;font-size:.6rem;letter-spacing:.12em}.portal-review-number{font-size:2.8rem!important;line-height:1.1!important;color:#9b6a23!important;font-weight:750!important;margin:15px 0 10px;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.portal-panel>button.secondary{width:100%;border:1px solid #e2e9ee;background:#f3f6f9;color:#3b5a70;font-size:.72rem;font-weight:650;margin-top:17px;min-height:42px;border-radius:9px}.portal-review-panel>button.secondary{color:#7e5b24;border-color:#e9d8b5;background:#fffdf6}.portal-panel-heading{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:10px}.portal-panel-heading h2{margin:0}.portal-panel-heading>svg{width:18px;height:18px;color:#739484}.portal-agenda ol{list-style:none;margin:0;padding:0}.portal-agenda li{display:flex;gap:11px;align-items:flex-start;padding:15px 0;border-bottom:1px solid #edf1f5}.portal-agenda li:last-child{border:0;padding-bottom:2px}.portal-agenda-date{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:39px;min-height:43px;background:#edf5f1;border-radius:9px;color:#246a56}.portal-agenda-date strong{font-size:.95rem;line-height:1.2;font-weight:750}.portal-agenda-date small{font-size:.52rem;color:#246a56;line-height:1.4;margin-top:3px}.portal-agenda li>div:last-child{min-width:0}.portal-agenda li button{display:block;background:none;color:#3a596e;border:0;padding:0;font-size:.72rem;line-height:1.55;text-align:left;font-weight:650;overflow-wrap:anywhere}.portal-agenda li button:hover{color:#08766c;filter:none;text-decoration:underline}.portal-agenda li>div:last-child>small{font-size:.61rem;color:#5d6d81;margin-top:5px}.portal-muted{color:#5d6d81!important;font-size:.75rem!important}.portal-announcements article{padding:13px 0;border-bottom:1px solid #edf1f5}.portal-announcements article:last-child{border:0;padding-bottom:0}.portal-announcements article>button{padding:0;border:0;background:none;color:#345e70;font-size:.75rem;text-align:left;line-height:1.55;overflow-wrap:anywhere}.portal-announcements article small{font-size:.62rem;color:#5d6d81;margin-top:5px}.portal-admin-summary{border:1px solid var(--portal-line);border-radius:13px;background:#fff;margin:0 0 26px;overflow:hidden}.portal-admin-summary>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 19px;list-style:none;color:#4c697c;font-size:.74rem;font-weight:500;min-height:52px}.portal-admin-summary>summary::-webkit-details-marker{display:none}.portal-admin-summary>summary>span:first-child{display:flex;align-items:center;gap:10px;color:#395d70}.portal-admin-summary>summary svg{width:18px;height:18px;color:#178372}.portal-admin-summary>summary:after{content:'+';font-weight:500;font-size:1.2rem;margin-left:auto}.portal-admin-summary[open]>summary:after{content:'−'}.portal-admin-summary[open]>summary{border-bottom:1px solid var(--portal-line)}.portal-admin-summary>div{padding:19px}.portal-admin-summary .admin-overview{border:0;background:transparent;margin:0;padding:0;box-shadow:none}.portal-admin-summary .admin-overview h2{font-size:1rem}.portal-admin-summary .admin-overview p{font-size:.8rem}.portal-active-tests{border:1px solid #d2e6dd;border-radius:15px;background:#f1faf5;padding:19px;margin-bottom:23px}.portal-active-tests>div{display:flex;align-items:center;gap:9px;color:#217b60}.portal-active-tests h2{font-size:1rem;margin:0}.portal-active-tests svg{width:18px;height:18px}.portal-active-tests article{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid #dcebe2;margin-top:13px;padding-top:13px}.portal-active-tests article strong{font-size:.82rem;overflow-wrap:anywhere}.portal-active-tests article button{font-size:.72rem;flex-shrink:0}.portal-empty{padding:42px 24px;background:#fff;border:1px dashed #cbded4;border-radius:16px;text-align:center}.portal-empty>span{display:grid;place-items:center;width:55px;height:55px;border-radius:16px;background:#ecf6ef;color:#15856b;margin:0 auto 17px}.portal-empty h3{font-size:1.1rem;line-height:1.4;color:#3e5d70;margin-bottom:9px}.portal-empty p{color:#5d6d81;max-width:50ch;margin:0 auto 22px;font-size:.83rem;line-height:1.7}.portal-empty>button{font-size:.78rem;min-height:44px}
@media(max-width:1180px){.portal-hero{grid-template-columns:minmax(0,1fr) 225px;padding:30px}.portal-hero-art{transform:scale(.86);transform-origin:center right;width:225px}.portal-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-dashboard-columns{grid-template-columns:minmax(0,1fr) 250px;gap:18px}.portal-stat-grid{gap:11px}.portal-dashboard .portal-stat{padding:16px;min-height:133px}.portal-stat-icon{width:31px;height:31px;border-radius:10px}.portal-stat-icon svg{width:18px;height:18px}.portal-stat-label{font-size:.73rem}.portal-stat>small{font-size:.63rem}.portal-stat>strong{font-size:1.75rem}.portal-course-grid{gap:15px}}
@media(max-width:960px){.portal-dashboard-columns{grid-template-columns:minmax(0,1fr)}.portal-dashboard-aside{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.portal-agenda{grid-row:span 2}.portal-hero{grid-template-columns:minmax(0,1fr) 220px}.portal-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-stat{min-height:116px}.portal-stat>strong{font-size:1.9rem}.portal-stat-label{font-size:.8rem}.portal-stat>small{font-size:.68rem}.portal-stat-icon{width:38px;height:38px}.portal-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-page-heading{align-items:flex-start}.portal-date{padding:9px 10px;font-size:.68rem}.portal-hero h2{font-size:2.2rem}.portal-hero-art{transform:scale(.78)}}
@media(max-width:760px){.portal-page-heading{flex-direction:column;gap:13px;margin-bottom:19px}.portal-page-heading h1{font-size:1.65rem;line-height:1.25}.portal-page-heading p{font-size:.8rem;line-height:1.6}.portal-date{font-size:.68rem;border-radius:8px;padding:7px 10px}.portal-date svg{width:14px;height:14px}.portal-hero{grid-template-columns:minmax(0,1fr);min-height:0;padding:25px 23px;border-radius:18px;margin-bottom:16px}.portal-hero-art{display:none}.portal-kicker{font-size:.55rem;margin-bottom:13px}.portal-hero h2{font-size:1.85rem;max-width:17ch;margin-bottom:14px}.portal-hero-copy>p{font-size:.78rem;line-height:1.7}.portal-hero-actions{margin-top:21px;gap:8px}.portal-hero-actions button{padding:10px 12px;font-size:.73rem;flex:1}.portal-stat-grid{gap:10px;margin-bottom:16px}.portal-dashboard .portal-stat{padding:15px 14px;min-height:129px;border-radius:13px;box-shadow:none}.portal-stat>strong{font-size:1.75rem}.portal-stat-label{font-size:.74rem;line-height:1.35}.portal-stat>small{font-size:.59rem;margin-top:4px}.portal-stat-icon{width:29px;height:29px;border-radius:9px;margin-left:3px}.portal-stat-icon svg{width:16px;height:16px}.portal-shortcuts{gap:8px;margin-bottom:18px}.portal-shortcuts>button{padding:12px 10px;gap:8px;min-height:74px;border-radius:10px}.portal-shortcut-icon{width:24px}.portal-shortcut-icon svg{width:19px;height:19px}.portal-shortcuts strong{font-size:.67rem}.portal-shortcuts small{font-size:.58rem}.portal-shortcut-arrow{display:none!important}.portal-dashboard-columns{gap:19px}.portal-section-heading{gap:10px;margin-bottom:15px}.portal-section-heading h2{font-size:1.18rem}.portal-count{font-size:.61rem;padding:5px 7px;white-space:normal;text-align:right}.portal-course-grid{grid-template-columns:minmax(0,1fr);gap:17px}.portal-course-cover{height:125px}.portal-course-body{padding:18px}.portal-course-body h3{font-size:1.12rem}.portal-course-faculty{font-size:.59rem}.portal-course-meta{font-size:.7rem}.portal-course-owner{font-size:.7rem}.portal-course-facts{font-size:.67rem}.portal-dashboard-aside{grid-template-columns:minmax(0,1fr);gap:15px}.portal-panel{padding:20px}.portal-agenda{grid-row:auto}.portal-panel>button.secondary{font-size:.77rem;min-height:44px}.portal-panel h2{font-size:1rem}.portal-panel p{font-size:.78rem}.portal-agenda li button{font-size:.78rem}.portal-agenda li>div:last-child>small{font-size:.65rem}.portal-admin-summary{margin-bottom:20px}.portal-admin-summary>summary{padding:13px 14px;flex-wrap:wrap;gap:7px}.portal-admin-summary>summary>span:nth-child(2){display:none}.portal-admin-summary>summary>span:first-child{font-size:.73rem}.portal-admin-summary>div{padding:15px}.portal-active-tests{padding:16px}.portal-active-tests article{flex-direction:column;align-items:stretch;gap:10px}.portal-active-tests article button{min-height:44px}.portal-empty{padding:32px 20px}.portal-empty h3{font-size:1rem}.portal-empty p{font-size:.78rem}}
@media(prefers-reduced-motion:no-preference){.portal-course-card,.portal-stat,.portal-shortcuts>button{transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.portal-course-card:hover{transform:translateY(-3px);box-shadow:0 13px 26px #233c5418}.portal-stat:hover{transform:translateY(-2px)}}
.portal-dashboard .portal-review-number>.todo-number{font:inherit!important;color:inherit!important;letter-spacing:inherit;display:inline;margin:0;padding:0;background:none}
@media print{
 .portal-dashboard{color:#17293a}
 .portal-dashboard *{color:#17293a!important;box-shadow:none!important;text-shadow:none!important}
 .portal-hero{display:block;min-height:0;background:#fff!important;border:1px solid #bdc9d2;border-radius:8px;padding:20px;margin-bottom:18px;break-inside:avoid}
 .portal-hero h2{color:#17293a!important;font-size:20pt;max-width:none}
 .portal-hero-copy>p,.portal-kicker{color:#263b50!important}
 .portal-hero-art,.portal-hero:before,.portal-hero-actions,.portal-shortcuts,.portal-admin-summary,.portal-cover-symbol,.portal-cover-orbit,.portal-cover-dots,.portal-review-panel:after,.portal-course-open,.portal-panel>button,.portal-active-tests button,.portal-empty>button{display:none!important}
 .portal-dashboard-columns{display:block}
 .portal-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
 .portal-dashboard .portal-stat{min-height:112px;padding:13px;background:#fff!important;border:1px solid #bdc9d2;break-inside:avoid}
 .portal-stat-icon{background:none}
 .portal-course-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
 .portal-course-card,.portal-panel,.portal-active-tests,.portal-empty{background:#fff!important;border:1px solid #bdc9d2;break-inside:avoid}
 .portal-course-cover{height:auto;min-height:0;padding:12px 16px;background:#fff!important;border-bottom:1px solid #d9e0e5}
 .portal-course-status,.portal-count,.portal-agenda-date{background:#fff!important}
 .portal-dashboard-aside{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}
 .portal-agenda{grid-row:auto}
 .portal-agenda li,.portal-announcements article{break-inside:avoid}
 .portal-agenda li button,.portal-announcements article>button{font-size:10pt}
 .portal-page-heading{break-inside:avoid}
 .portal-dashboard button{transform:none!important;filter:none!important}
}
