@font-face{font-family:Inter;src:url('/inter.woff2') format('woff2');font-display:swap}
@font-face{font-family:'Archivo Black';src:url('/archivo-black.woff2') format('woff2');font-display:swap}
:root{--bg:#eee9f6;--paper:#fdfaff;--ink:#2b2041;--muted:#5b4f6a;--line:#c9bfd7;--deep:#412e60;--violet:#59418a;--accent:#f5c888;--danger:#8f392d;font:500 15px/1.5 Inter,system-ui,sans-serif}
*{box-sizing:border-box}
body{margin:0;color:var(--ink);background:radial-gradient(ellipse at 65% 4%,#e4d9f5,var(--bg) 61%)}
.frame{width:min(1160px,calc(100% - 54px));margin-inline:auto}
.top,.footer,.head,.files{display:flex;align-items:center;justify-content:space-between;gap:9px}
.top{height:65px;border-bottom:1px solid var(--line);font-size:13px}
.brand{display:flex;align-items:center;gap:7px;text-decoration:none;font-size:17px;font-weight:760;letter-spacing:-.04em}
.mark{display:grid;place-content:center;gap:2px;width:28px;height:28px;border-radius:6px;background:var(--deep);transform:rotate(-5deg)}
.mark i{width:12px;height:2px;border-radius:2px;background:#fff1d7}
.mark i:first-child{width:8px}
.mark i:last-child{width:9px}
a{color:inherit;text-decoration-color:#967fa9;text-underline-offset:3px}
a:hover{color:#66349b}
button,input,select{font:inherit;color:inherit}
button,input,select{border:1px solid #c1b5d1;background:#f8f4fb;border-radius:6px;padding:7px 9px;min-height:35px}
button{cursor:pointer;font-size:12px;font-weight:720}
button:hover:not(:disabled){border-color:#8869ae}
button:disabled{opacity:.55;cursor:default}
button.primary{background:var(--deep);color:#fff8eb;border-color:var(--deep)}
.danger{color:var(--danger)}
:focus-visible{outline:2px solid #74429a;outline-offset:3px}
[hidden]{display:none!important}
.skip{position:absolute;top:-95px;left:12px;background:#fff8eb;padding:7px}
.skip:focus{top:8px}
h1,h2,h3,p,ul{margin:0}
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,285px);gap:19px;align-items:end;padding:33px 0 19px}
h1{font:400 clamp(43px,6.7vw,89px)/.94 'Archivo Black',Inter,sans-serif;letter-spacing:-.074em}
h1 em{color:var(--violet);font-style:normal}
.intro p{font-size:15px;color:var(--muted);max-width:34ch;padding-bottom:4px}
.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border-radius:10px;border-top:4px solid #a48dc6;background:#3b2b55;color:#f9f2ff;padding:11px 4px 13px;margin-bottom:11px}
.summary>div{padding:0 13px;min-width:0}
.summary>div+div{border-left:1px solid #716485}
.summary h2{font-size:12px;color:#f5ecff;font-weight:610;letter-spacing:0}
.summary p{font-size:clamp(20px,3.6vw,37px);color:var(--accent);line-height:1.07;font-weight:780;letter-spacing:-.055em;margin-top:4px;font-variant-numeric:tabular-nums}
.summary span{display:block;margin-top:4px;font-size:11px;line-height:1.25;color:#e5dcef;overflow-wrap:anywhere}
.workspace{display:grid;grid-template-columns:minmax(275px,.75fr) minmax(0,1.4fr);align-items:start;gap:11px}
.panel{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:13px}
h2{font-size:17px;letter-spacing:-.036em;line-height:1.2}
h3{font-size:14px;font-weight:740}
.hint,.error{color:var(--muted);font-size:12px;line-height:1.35}
.error{color:var(--danger);margin:5px 0}
.head>button{white-space:nowrap}
#programs,#tasks,#upcoming{padding:0;list-style:none}
#programs{margin:7px 0}
.program-select{display:block;width:100%;text-align:left;background:#f8f3fc;margin-top:5px;font-size:13px;overflow-wrap:anywhere}
.program-select[aria-pressed=true]{background:#e8def4;border-color:#9c84ba}
.program-meta{display:block;font-size:11px;color:var(--muted);margin-top:2px}
.program-head{align-items:start}
.program-head h2{margin-bottom:4px;overflow-wrap:anywhere}
.program-head .hint{overflow-wrap:anywhere}
.status-line{margin-top:8px}
#portal{font-size:11px;white-space:nowrap}
progress{width:100%;height:8px;appearance:none;border:none;border-radius:5px;background:#e8deef;overflow:hidden;margin-top:4px}
progress::-webkit-progress-bar{background:#e8deef}
progress::-webkit-progress-value{background:#7f61aa}
progress::-moz-progress-bar{background:#7f61aa}
.task-head{margin-top:8px;margin-bottom:3px}
#tasks li{display:grid;grid-template-columns:minmax(0,1fr) 108px auto;gap:5px;align-items:center;border-top:1px solid #e0d9e9;padding:6px 0}
#tasks li select,#tasks li button{font-size:11px;padding:4px 6px;min-height:30px}
.task-info strong{display:block;font-size:13px;overflow-wrap:anywhere}
.task-date{display:block;margin-top:2px;font-size:11px;color:var(--muted)}
.next,.files{margin-top:11px}
.next h2{margin-bottom:3px}
#upcoming{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:8px}
#upcoming li{display:flex;gap:4px;align-items:flex-start;min-width:0;border:1px solid #e3daea;border-radius:6px;padding:4px;background:#faf6fd}
.upcoming-date{font-size:10px;min-width:41px;color:#583e7d;font-weight:750;padding:4px 3px}
.upcoming-date.overdue{color:#8c3d2a}
.upcoming-task{min-width:0;text-align:left;border:0;background:none;min-height:0;font-size:11px;padding:4px 2px;overflow-wrap:anywhere}
.upcoming-task small{display:block;font-size:10px;color:var(--muted)}
.tools{display:flex;gap:5px;flex-wrap:wrap}
.footer{margin-top:21px;border-top:1px solid var(--line);padding:10px 0 17px;font-size:12px;color:var(--muted)}
.empty p{margin:8px 0}
dialog{width:min(485px,calc(100% - 25px));max-height:calc(100% - 22px);overflow:auto;border:1px solid #a995bf;border-radius:9px;padding:15px;background:var(--paper);color:var(--ink)}
dialog::backdrop{background:#2b1c40ba}
dialog label{display:block;font-size:12px;font-weight:650;margin-top:6px}
dialog input:not([type=checkbox]),dialog select{display:block;width:100%;min-width:0;margin:3px 0 5px;font-size:14px}
dialog .check{display:flex;gap:6px;align-items:center}
dialog .check input{min-height:0;accent-color:var(--violet)}
.dialog-actions{margin-top:8px}
.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.reading{max-width:780px;padding:34px 0 19px}
.reading h1{font-size:clamp(42px,7vw,82px);margin-bottom:15px}
.reading h2{font-size:24px;margin:20px 0 5px}
.reading p,.reading li{max-width:65ch;margin-bottom:7px}
.reading .lead{color:var(--muted);font-size:17px}
.reading table{border-collapse:collapse;margin:9px 0}
.reading th,.reading td{border-bottom:1px solid var(--line);padding:5px 8px;text-align:left}
@media(max-width:850px){.frame{width:calc(100% - 32px)}.intro{gap:11px}.panel{padding:10px}}
@media(max-width:660px){.frame{width:calc(100% - 24px)}.top{height:56px}.intro,.workspace{grid-template-columns:1fr;gap:8px}.intro{padding:22px 0 12px}.intro p{padding:0}.summary>div{padding:0 6px}.summary h2{font-size:11px}.summary span{font-size:10px}#upcoming{grid-template-columns:repeat(2,minmax(0,1fr))}.files{align-items:start;flex-direction:column}}
@media(max-width:375px){h1{font-size:clamp(35px,10.8vw,45px)}#tasks li{grid-template-columns:minmax(0,1fr) 93px auto}.head>button{padding-inline:5px}.footer{align-items:start}}
