.hello{max-inline-size:640px;padding:calc(18px + env(safe-area-inset-top)) 16px 10px;gap:12px;margin-inline:auto;display:grid}.hello.wide{max-inline-size:1120px}.hello-top{border-block-end:1px solid var(--on-bg);box-shadow:0 4px 0 -3px var(--on-bg-line);align-items:flex-end;gap:12px;padding-block-end:10px;display:flex}.hello-top .title{flex:1;min-inline-size:0}.hello h1{text-overflow:ellipsis;white-space:nowrap;font-size:32px;font-weight:300;line-height:1.2;overflow:hidden}.hello .date{color:var(--on-bg-2);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-block-start:2px;font-size:13.5px;display:flex}.hello .date .sep{opacity:.5}.hello-chips{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.avatar{background:var(--surface);block-size:46px;inline-size:46px;color:var(--ink);box-shadow:var(--shadow-small), inset 0 0 0 1px var(--line);flex:none;place-items:center;font-weight:500;display:grid;overflow:hidden}.avatar img{object-fit:cover;block-size:100%;inline-size:100%}.avatar.lg{block-size:72px;inline-size:72px;font-size:26px}.banner{background:var(--highlight);color:var(--on-highlight);box-shadow:var(--shadow-small);align-items:center;gap:10px;padding:8px 8px 8px 12px;font-size:13.5px;font-weight:500;display:flex}.banner .spacer{flex:1}.raad-av{isolation:isolate;border-radius:50%;flex:none;place-items:center;display:grid;position:relative}.raad-av img{object-fit:cover;border-radius:50%;block-size:100%;inline-size:100%}.raad-av:before{content:"";z-index:-1;background:conic-gradient(from 0deg, var(--highlight), transparent 35%, var(--ink-2), transparent 75%, var(--highlight));opacity:0;border-radius:50%;transition:opacity .3s;position:absolute;inset:-3px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 2.5px),#000 calc(100% - 2px))}.raad-av.working:before,.raad-av.retrying:before{opacity:1;animation:1.4s linear infinite spin}.raad-av .led{background:var(--ok);block-size:clamp(7px,15%,16px);inline-size:clamp(7px,15%,16px);box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;inset-block-end:4%;inset-inline-end:4%}.raad-av.working .led{background:var(--highlight);animation:pulse 1.2s var(--ease) infinite}.raad-av.retrying .led{background:var(--warn)}.raad-av.needs .led,.raad-av.paused .led{background:var(--risk)}.raad-av.offline .led{background:var(--ink-3)}.raadline{background:var(--glass);color:var(--on-bg);box-shadow:inset 0 0 0 1px var(--on-bg-line);align-items:center;gap:10px;min-block-size:46px;padding:8px 12px;font-size:13.5px;display:flex}.raadline .text{min-inline-size:0;animation:fade .35s var(--ease);flex:1}.raadline .spin{opacity:.8;block-size:16px;inline-size:16px}.raadline.on-card{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.raadline.fail{background:var(--risk-soft);color:var(--risk-ink);box-shadow:inset 3px 0 0 var(--risk)}[dir=rtl] .raadline.fail{box-shadow:inset -3px 0 0 var(--risk)}.raad-id{grid-template-columns:auto 1fr;align-items:center;gap:16px;padding-block-start:4px;display:grid}.raad-id h2{font-size:32px;font-weight:300;line-height:1.1}.raad-id .role{margin-block-start:6px}.raad-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.raad-meta div{box-shadow:inset 0 0 0 1px var(--line);gap:2px;min-inline-size:0;padding:8px 10px;display:grid}.raad-meta small{color:var(--ink-2);font-size:11px}.raad-meta b{font-size:12.5px;font-weight:500;line-height:1.5}.raad-intro{color:var(--ink-2);font-size:14.5px;line-height:1.85}.creed{gap:10px;display:grid}.creed li{grid-template-columns:26px 1fr;align-items:start;gap:8px;font-size:14px;line-height:1.7;display:grid}.creed li>span:first-child{background:var(--ok-soft);block-size:22px;inline-size:22px;color:var(--ok-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ok) 40%, transparent);place-items:center;margin-block-start:2px;display:grid}.creed.never li>span:first-child{background:var(--risk-soft);color:var(--risk-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--risk) 40%, transparent)}.creed svg{block-size:14px;inline-size:14px}.flow{counter-reset:flow;gap:0;display:grid}.flow li{grid-template-columns:38px 1fr;gap:10px;padding-block-end:14px;display:grid;position:relative}.flow li:before{content:"";background:repeating-linear-gradient(to bottom, var(--ink-3) 0 3px, transparent 3px 7px);inline-size:1px;position:absolute;inset-block:30px 0;inset-inline-start:18px}.flow li:last-child:before{display:none}.flow .n{block-size:28px;inline-size:38px;font:500 12px var(--font-mono);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-2);place-items:center;display:grid}.flow li.raad .n{background:var(--bar);color:var(--on-bar);box-shadow:none}.flow b{font-size:14.5px;font-weight:500;display:block}.flow small{color:var(--ink-2);font-size:12.5px}.steps{gap:4px;margin-block-start:4px;padding-inline:8px;display:grid}.steps li{color:var(--ink-2);grid-template-columns:18px 1fr auto;align-items:center;gap:8px;font-size:13px;display:grid}.steps li svg{block-size:15px;inline-size:15px}.steps li.ok svg{color:var(--ok-ink)}.steps li.fail{color:var(--risk-ink)}.steps small{font:11px var(--font-mono);color:var(--ink-3);direction:ltr}.job summary{cursor:pointer;list-style:none}.job summary::-webkit-details-marker{display:none}.nn,.nn-main{gap:12px;display:grid}.nn-title{font-size:20px;font-weight:500;line-height:1.3}.nn-sub{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px;margin-block-start:2px;font-size:13px;display:flex}.nn-count{background-color:var(--surface-2);background-image:linear-gradient(color-mix(in srgb, var(--ink) 7%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--ink) 7%, transparent) 1px, transparent 1px);border-block-end:1px solid var(--line);background-size:14px 14px;order:-1;justify-content:center;align-items:center;gap:18px;min-block-size:132px;margin-block-start:-12px;margin-inline:-14px;padding:12px;display:flex}.nn-count .dial{block-size:96px;inline-size:96px;color:var(--ink);flex:none}.nn-count .num{justify-items:start;display:grid}.nn-count .big{color:var(--ink);font-size:56px;display:block}.nn-count small{color:var(--ink-2);font-size:12.5px}.nn-room{border-block-start:1px solid color-mix(in srgb, var(--line) 70%, transparent);justify-content:space-between;align-items:baseline;gap:10px;padding-block-start:8px;display:flex}.nn-room small{color:var(--ink-2);font-size:12.5px}.nn-room svg{color:var(--ink-2)}.nn-room b{font:500 20px var(--font-mono);margin-inline-start:auto}.nn-bar{background:var(--surface-3);block-size:6px;overflow:hidden}.nn-bar i{block-size:100%;inline-size:calc(var(--p) * 100%);background:var(--ink);display:block}.nn-next{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);align-items:center;gap:10px;padding:9px 10px;font-size:13.5px;display:flex}.nn-next .bar{background:var(--c,var(--accent));align-self:stretch;inline-size:4px}.nn-next .t{text-overflow:ellipsis;white-space:nowrap;flex:1;min-inline-size:0;font-weight:500;overflow:hidden}.nn-next .w{color:var(--ink-2);font:400 12.5px var(--font-mono)}.nn-empty{gap:4px;padding-block:6px;display:grid}.nn-empty b{font-size:22px;font-weight:300}.wk-wrap{margin-inline:-4px;padding:0 4px 10px;overflow:auto hidden}.wk{--hour:46px;grid-template-columns:38px repeat(var(--days), minmax(48px, 1fr));min-inline-size:100%;display:grid}.wk-day{text-align:center;color:var(--ink-2);padding-block:4px 8px;font-size:12px;font-weight:500}.wk-day.today span{background:var(--bar);color:var(--on-bar);padding:2px 8px}.wk-hours{block-size:calc(var(--hours) * var(--hour));position:relative}.wk-hours span{font:400 10px var(--font-mono);color:var(--ink-3);position:absolute;inset-inline-start:0;translate:0 -50%}.wk-col{block-size:calc(var(--hours) * var(--hour));border-inline-start:1px dashed var(--line);background:repeating-linear-gradient(to bottom, color-mix(in srgb, var(--line) 70%, transparent) 0 1px, transparent 1px var(--hour));position:relative}.wk-col.today{background-color:color-mix(in srgb, var(--ink) 5%, transparent)}.wk-block{block-size:calc((var(--e) - var(--s)) / 60 * var(--hour));inline-size:calc(100% / var(--lanes));padding:1.5px;position:absolute;inset-block-start:calc((var(--s) - var(--from)) / 60 * var(--hour));inset-inline-start:calc(var(--lane) / var(--lanes) * 100%)}.wk-block>a{background:color-mix(in srgb, var(--c) 24%, var(--surface));border-inline-start:3px solid var(--c);block-size:100%;color:var(--ink);padding:3px 5px;font-size:10.5px;line-height:1.25;display:block;overflow:hidden}.wk-block b,.wk-block small{text-overflow:ellipsis;white-space:nowrap;text-align:start;unicode-bidi:plaintext;display:block;overflow:hidden}.wk-block b{font-size:10.5px;font-weight:500}.wk-block small{font:400 9.5px var(--font-mono);color:var(--ink-2)}.wk-block.clash>a{border-inline-start-color:var(--risk);background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--c) 22%, var(--surface)) 0 6px, color-mix(in srgb, var(--risk) 18%, var(--surface)) 6px 12px);box-shadow:inset 0 0 0 1.2px color-mix(in srgb, var(--risk) 70%, transparent)}.wk-now{background:var(--risk);z-index:2;block-size:2px;position:absolute;inset-block-start:calc((var(--t) - var(--from)) / 60 * var(--hour));inset-inline:0}.wk-now:before{content:"";background:var(--risk);block-size:8px;inline-size:8px;position:absolute;inset-block-start:-3px;inset-inline-start:-4px;rotate:45deg}.month{text-align:center;grid-template-columns:repeat(7,1fr);gap:2px 0;display:grid}.month .dow{color:var(--ink-3);padding-block:4px 8px;font-size:12px;font-weight:500}.month button{inline-size:42px;font:400 14px var(--font-mono);color:var(--ink);background:0 0;border:0;justify-items:center;gap:3px;margin-inline:auto;padding:6px 0 7px;display:grid}.month button.out{color:var(--ink-3);opacity:.6}.month button.today{box-shadow:inset 0 0 0 1px var(--ink)}.month button[aria-pressed=true]{background:var(--bar);color:var(--on-bar);box-shadow:none}.month .marks{gap:3px;block-size:6px;display:flex}.month .marks i{background:var(--accent);block-size:5px;inline-size:5px}.month button[aria-pressed=true] .marks i{background:var(--on-bar)}.month .marks i.exam{box-shadow:inset 0 0 0 1.5px var(--risk);background:0 0}.month .marks i.clash{background:var(--risk)}.course-card{position:relative;overflow:hidden}.course-card:before{content:"";background:var(--c);z-index:1;inline-size:5px;position:absolute;inset-block:0;inset-inline-start:0}.course-top{align-items:start;gap:10px;display:flex}.course-top .title{flex:1;min-inline-size:0}.course-top h3{font-size:17px;font-weight:500;line-height:1.35}.course-top .code{font:400 12px var(--font-mono);color:var(--ink-2)}.grade-badge{text-align:center;min-inline-size:52px;box-shadow:inset 0 0 0 1px var(--line);padding:6px 8px}.grade-badge b{font:300 24px/1.1 var(--font-figure);display:block}.grade-badge small{color:var(--ink-2);font-size:10.5px}.grade-badge.posted{background:var(--bar);color:var(--on-bar);box-shadow:none}.grade-badge.posted small{color:var(--on-bar-2)}.absence-line{gap:6px;display:grid}.absence-line .row-flex{justify-content:space-between;font-size:13px}.idcard{gap:14px;display:grid}.idcard-top{align-items:center;gap:14px;padding-block-start:2px;display:flex}.idcard-top .who{flex:1;min-inline-size:0}.idcard-top h2{font-size:20px;font-weight:400;line-height:1.3}.idcard-top p{color:var(--ink-2);font-size:12.5px}.idcard .kv dd{font-family:var(--font-mono);font-size:13.5px}.idcard .kv dd.text{font-family:var(--font-ui)}.idcard .strip{grid-template-columns:repeat(16,1fr);gap:4px;display:grid}.idcard .strip i{aspect-ratio:1;box-shadow:inset 0 0 0 1px var(--ink-3)}.idcard .strip i:nth-child(-n+5){background:var(--ink-2);box-shadow:none}.idcard .strip i:nth-child(6){background:var(--highlight);box-shadow:none}.login{min-block-size:100dvh;max-inline-size:440px;padding:calc(24px + env(safe-area-inset-top)) 16px calc(24px + env(safe-area-inset-bottom));align-content:center;gap:18px;margin-inline:auto;display:grid}.brand{text-align:center;justify-items:center;gap:10px;display:grid}.brand .logo{block-size:76px;inline-size:76px;box-shadow:var(--shadow-card)}.brand h1{font-size:30px;font-weight:300}.brand p{color:var(--on-bg-2);max-inline-size:320px;font-size:14px;line-height:1.8}.login form{gap:14px;padding-block-start:14px;display:grid}.legal-note{text-align:center;color:var(--on-bg-2);font-size:12px;line-height:1.9}.legal-note a{color:var(--on-bg);text-underline-offset:3px;text-decoration:underline}.login .demo{justify-self:center}.welcome{min-block-size:100dvh;max-inline-size:480px;padding:calc(20px + env(safe-area-inset-top)) 20px calc(24px + env(safe-area-inset-bottom));grid-template-rows:auto 1fr auto;gap:18px;margin-inline:auto;display:grid}.welcome-art{place-items:center;min-block-size:300px;display:grid}.welcome-art .stack-art{block-size:270px;inline-size:250px;position:relative}.welcome-art .stack-art .card{inline-size:210px;position:absolute}.welcome-text{animation:rise .35s var(--ease);gap:10px;display:grid}.welcome-text h1{border-block-end:1px solid var(--on-bg);box-shadow:0 4px 0 -3px var(--on-bg-line);padding-block-end:8px;font-size:30px;font-weight:300;line-height:1.3}.welcome-text p{color:var(--on-bg-2);font-size:15.5px;line-height:1.9}.welcome-nav{align-items:center;gap:12px;display:flex}.dots{flex:1;gap:6px;display:flex}.dots i{block-size:10px;inline-size:10px;box-shadow:inset 0 0 0 1px var(--on-bg-2);transition:background .25s var(--ease)}.dots i.on{background:var(--on-bg);box-shadow:none}.share-frame{z-index:-1;inline-size:420px;color:var(--on-bg);font-family:var(--font-ui);background:repeating-linear-gradient(0deg, var(--scan) 0 1px, transparent 1px 3px), linear-gradient(180deg, var(--bg-top), var(--bg-bottom));gap:14px;padding:20px 20px 16px;display:grid;position:fixed;inset-block-start:0;inset-inline-start:-10000px}.share-foot{border-block-start:1px solid var(--on-bg);align-items:center;gap:10px;padding-block-start:10px;font-size:12px;display:flex}.share-foot img{block-size:28px;inline-size:28px}.share-foot b{font-size:13px;font-weight:500;display:block}.share-foot .site{font:400 11px var(--font-mono);opacity:.8;direction:ltr;margin-inline-start:auto}.share-preview{background:var(--surface-2);min-block-size:160px;box-shadow:inset 0 0 0 1px var(--line);place-items:center;display:grid;overflow:hidden}.share-preview img{inline-size:100%}.share-actions{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;display:grid}.legal section{gap:4px;display:grid}.legal h2{font-size:15px;font-weight:500}.legal p{color:var(--ink-2);font-size:14px;line-height:1.85}.table{border-collapse:collapse;inline-size:100%;font-size:14px}.table th,.table td{text-align:start;border-block-end:1px dashed var(--line);vertical-align:top;padding:9px 8px}.table th{color:var(--ink-2);border-block-end-style:solid;font-weight:500}@media (max-width:599px){.table thead{display:none}.table tr{box-shadow:inset 0 0 0 1px var(--line);gap:2px;margin-block-end:8px;padding:10px 12px;display:grid}.table td{border:0;padding:0}.table td:before{content:attr(data-h);color:var(--ink-2);font-size:12px;display:block}}.clash{gap:6px;display:grid}.clash-when{color:var(--risk-ink);flex-wrap:wrap;justify-content:space-between;gap:2px 10px;font-size:13px;display:flex}.clash-when b{font-weight:500}.clash .list{box-shadow:inset 0 0 0 1px var(--line)}.clash .lrow{min-block-size:48px;padding-block:8px}.change-ico{background:color-mix(in srgb, var(--c,var(--ink-2)) 16%, var(--surface));block-size:32px;inline-size:32px;color:var(--c,var(--ink-2));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--c,var(--ink-2)) 40%, transparent);grid-row:span 2;place-items:center;display:grid}.change-ico svg{block-size:16px;inline-size:16px}.lrow.change .m{white-space:normal}.lrow.change.fresh{box-shadow:inset 3px 0 0 var(--highlight)}[dir=rtl] .lrow.change.fresh{box-shadow:inset -3px 0 0 var(--highlight)}.rings{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:6px;display:grid}.ring-tile{box-shadow:inset 0 0 0 1px var(--line);justify-items:center;gap:6px;padding:10px 4px 8px;display:grid}a.ring-tile:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.ring-wrap{place-items:center;display:grid;position:relative}.ring-wrap b{font:500 13px var(--font-mono);position:absolute}.ring-tile small{font:500 11px var(--font-mono);color:var(--ink-2);letter-spacing:.03em}.budget{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line);gap:8px;padding:12px;display:grid}.budget b{font-size:14px;font-weight:500}.dot-c{flex:none;block-size:10px;inline-size:10px}.exam-hero{background:color-mix(in srgb, var(--c) 12%, var(--surface));border-inline-start:4px solid var(--c);align-items:center;gap:14px;padding:12px;display:flex}.exam-what{gap:2px;min-inline-size:0;display:grid}.exam-what b{font-size:15px;font-weight:500}.nn-count.light{background:var(--surface);min-block-size:0;min-inline-size:78px;box-shadow:inset 0 0 0 1px var(--ink), 0 0 0 3px var(--surface), 0 0 0 4px var(--line);background-image:none;border:0;order:0;justify-items:center;gap:0;margin:0;padding:8px 10px;display:grid}.nn-count.light .big{font-size:40px}.stack-art .art{position:absolute}.stack-art .a1{inline-size:190px;inset-block-start:0;inset-inline-end:0;rotate:4deg}.stack-art .a2{inline-size:160px;inset-block-start:70px;inset-inline-start:0;rotate:-5deg}.stack-art .a2 .big{font-size:64px}.stack-art .a3{place-items:center;inline-size:130px;display:grid;inset-block-end:0;inset-inline-end:24px}.art-lines{gap:8px;display:grid}.art-lines i{background:color-mix(in srgb, var(--c) 22%, var(--surface));border-inline-start:4px solid var(--c);block-size:24px;display:block}.art-ring{background:conic-gradient(var(--warn) 0 30%, var(--surface-3) 30% 100%);border-radius:50%;place-items:center;block-size:76px;inline-size:76px;display:grid}.art-ring b{background:var(--surface);block-size:60px;inline-size:60px;font:500 15px var(--font-mono);color:var(--ink);border-radius:50%;place-items:center;display:grid}.art-raad{place-items:center;block-size:260px;inline-size:260px;display:grid;position:relative}.art-raad .orbit{border:1px dashed var(--on-bg-line);border-radius:50%;animation:18s linear infinite spin;position:absolute}.art-raad .o1{inset:30px}.art-raad .o2{border-color:color-mix(in srgb, var(--highlight) 70%, transparent);animation-duration:28s;animation-direction:reverse;inset:0}.art-lock{justify-items:center;gap:16px;display:grid}.art-lock .card{block-size:170px;inline-size:170px;color:var(--ink);place-items:center;padding:14px;display:grid}.spin-icon{animation:1s linear infinite spin}
