.shell{flex-direction:column;min-height:100vh;display:flex}.shell__topbar{background:var(--color-background-element);border-bottom:1px solid var(--color-border);z-index:10;position:sticky;top:0}.shell__topbar-inner{max-width:var(--max-content-width);padding:var(--space-three) var(--space-four);justify-content:space-between;align-items:center;gap:var(--space-four);margin:0 auto;display:flex}.shell__logo{color:var(--color-primary);letter-spacing:-.01em;font-size:20px;font-weight:800}.shell__nav{gap:var(--space-one);flex-wrap:wrap;display:flex}.shell__nav-link{color:var(--color-text-secondary);border-radius:10px;align-items:center;gap:6px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.shell__nav-link:hover{color:var(--color-text)}.shell__nav-link svg{width:18px;height:18px}.shell__nav-avatar{font-size:17px;line-height:1}.shell__nav-link--active,.shell__nav-link--active:hover{background:var(--color-background-selected);color:var(--color-primary)}.shell__content{box-sizing:border-box;width:100%;max-width:var(--max-content-width);padding:var(--space-five) var(--space-four) var(--space-six);flex:1 0 auto;margin:0 auto}.shell__footer{background:var(--color-background-element);border-top:1px solid var(--color-border)}.shell__footer-inner{max-width:var(--max-content-width);padding:var(--space-five) var(--space-four);justify-content:space-between;align-items:flex-start;gap:var(--space-four);flex-wrap:wrap;margin:0 auto;display:flex}.shell__footer-about{gap:var(--space-two);flex-direction:column;flex:260px;max-width:340px;margin-inline-end:auto;display:flex}.shell__footer-about p{color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.6}.shell__footer-links{gap:var(--space-two);flex-direction:column;font-size:14px;font-weight:600;display:flex}.shell__footer-links a{color:var(--color-primary)}.shell__footer-links--muted a{color:var(--color-text-secondary);font-weight:500}.shell__footer-links a:hover{text-decoration:underline}.shell__footer-copy{max-width:var(--max-content-width);padding:var(--space-three) var(--space-four);border-top:1px solid var(--color-border);color:var(--color-text-secondary);margin:0 auto;font-size:13px}.shell__topbar-inner,.shell__footer-inner,.shell__footer-copy,.shell__content--wide{max-width:var(--max-content-width-wide)}@media (width<=640px){.shell__topbar{background:0 0;border-bottom:none;position:static}.shell__topbar-inner{padding:0}.shell__topbar .shell__logo,.shell__footer{display:none}.shell__nav{inset-inline:0;z-index:20;background:var(--color-background-element);border-top:1px solid var(--color-border);padding:0 var(--space-one) env(safe-area-inset-bottom);flex-wrap:nowrap;gap:0;position:fixed;bottom:0}.shell__nav-link{border-radius:0;flex-direction:column;flex:1 1 0;justify-content:center;gap:2px;min-width:0;min-height:56px;padding:6px 2px;font-size:11px}.shell__nav-link svg{width:22px;height:22px}.shell__nav-link--active,.shell__nav-link--active:hover{background:0 0}.shell__nav-label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.shell__content{padding:var(--space-four) var(--space-three) calc(80px + env(safe-area-inset-bottom))}}.ui-card{background:var(--color-background-element);border:1px solid var(--color-border);padding:var(--space-four);border-radius:16px}.ui-button{cursor:pointer;border:none;border-radius:12px;padding:12px 20px;font-size:15px;font-weight:600;transition:opacity .15s,transform .1s}.ui-button:active{transform:scale(.98)}.ui-button:disabled{opacity:.5;cursor:not-allowed}.ui-button--primary{background:var(--color-primary);color:var(--color-white)}.ui-button--secondary{background:var(--color-background-selected);color:var(--color-text)}.ui-button--danger{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.ui-button--primary:hover{opacity:.92}.ui-input{border:1px solid var(--color-border);background:var(--color-background);width:100%;color:var(--color-text);border-radius:10px;padding:11px 14px;font-size:15px}.ui-input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.ui-empty{text-align:center;padding:var(--space-six) var(--space-four);color:var(--color-text-secondary)}.ui-empty__title{color:var(--color-text);margin:0 0 4px;font-size:16px;font-weight:600}.ui-empty__subtitle{margin:0;font-size:14px}.ui-icon-button{width:36px;height:36px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;transition:background .15s,color .15s;display:inline-flex}.ui-icon-button:hover,.ui-icon-button:focus-visible{background:var(--color-background-selected);color:var(--color-text)}.ui-icon-button--danger:hover,.ui-icon-button--danger:focus-visible{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.ui-icon-button:disabled{opacity:.4;cursor:not-allowed}.ui-pill{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.ui-pill--neutral{background:var(--color-background-selected);color:var(--color-text-secondary)}.ui-pill--success{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.ui-pill--warning{background:color-mix(in srgb, var(--color-warning) 18%, transparent);color:var(--color-warning)}.ui-pill--danger{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.grade-input{text-align:center;width:84px;padding:6px 10px;font-size:14px}.ui-icon-picker{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;display:grid}.ui-icon-picker__option{aspect-ratio:1;background:var(--color-background-selected);color:var(--color-primary);cursor:pointer;border:2px solid #0000;border-radius:12px;justify-content:center;align-items:center;font-size:22px;font-weight:700;transition:transform .1s,border-color .15s;display:flex}.ui-icon-picker__option:active{transform:scale(.94)}.ui-icon-picker__option--selected{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 14%, transparent)}.ui-icon-picker__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ui-date{flex:1;width:100%;min-width:0;position:relative}.ui-date__icon{font-size:16px}.ui-date__clear{inset-inline-end:6px;z-index:1;width:30px;height:30px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;font-size:14px;position:absolute;top:50%;transform:translateY(-50%)}.ui-date__clear:hover,.ui-date__clear:focus-visible{background:var(--color-background-selected);color:var(--color-text)}.failed-pill{color:var(--color-danger);background:color-mix(in srgb, var(--color-danger) 12%, transparent);white-space:nowrap;border-radius:999px;align-items:center;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.rdp-root{--rdp-accent-color:blue;--rdp-accent-background-color:#f0f0ff;--rdp-day-height:44px;--rdp-day-width:44px;--rdp-day_button-border-radius:100%;--rdp-day_button-border:2px solid transparent;--rdp-day_button-height:42px;--rdp-day_button-width:42px;--rdp-selected-border:2px solid var(--rdp-accent-color);--rdp-disabled-opacity:.5;--rdp-outside-opacity:.75;--rdp-today-color:var(--rdp-accent-color);--rdp-dropdown-gap:.5rem;--rdp-months-gap:2rem;--rdp-nav_button-disabled-opacity:.5;--rdp-nav_button-height:2.25rem;--rdp-nav_button-width:2.25rem;--rdp-nav-height:2.75rem;--rdp-range_middle-background-color:var(--rdp-accent-background-color);--rdp-range_middle-color:inherit;--rdp-range_start-color:white;--rdp-range_start-background:linear-gradient(var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50%);--rdp-range_start-date-background-color:var(--rdp-accent-color);--rdp-range_end-background:linear-gradient(var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50%);--rdp-range_end-color:white;--rdp-range_end-date-background-color:var(--rdp-accent-color);--rdp-week_number-border-radius:100%;--rdp-week_number-border:2px solid transparent;--rdp-week_number-height:var(--rdp-day-height);--rdp-week_number-opacity:.75;--rdp-week_number-width:var(--rdp-day-width);--rdp-weeknumber-text-align:center;--rdp-weekday-opacity:.75;--rdp-weekday-padding:.5rem 0rem;--rdp-weekday-text-align:center;--rdp-gradient-direction:90deg;--rdp-animation_duration:.3s;--rdp-animation_timing:cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction:-90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity:unset}.rdp-root{box-sizing:border-box;position:relative}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{cursor:pointer;font:inherit;color:inherit;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius);background:0 0;justify-content:center;align-items:center;margin:0;padding:0;display:flex}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;white-space:nowrap;border:0;align-items:center;display:inline-flex;position:relative}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{cursor:pointer;font:inherit;color:inherit;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height);background:0 0;border:none;justify-content:center;align-items:center;margin:0;padding:0;display:inline-flex;position:relative}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{fill:var(--rdp-accent-color);display:inline-block}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform-origin:50%;transform:rotate(180deg)}.rdp-dropdowns{align-items:center;gap:var(--rdp-dropdown-gap);display:inline-flex;position:relative}.rdp-dropdown{z-index:2;opacity:0;appearance:none;width:100%;cursor:inherit;line-height:inherit;border:none;margin:0;padding:0;position:absolute;inset-block:0;inset-inline-start:0}.rdp-dropdown_root{align-items:center;display:inline-flex;position:relative}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{height:var(--rdp-nav-height);align-content:center;font-size:large;font-weight:700;display:flex}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{inset-inline-start:0;height:var(--rdp-nav-height);display:inline-flex;position:absolute;top:0}.rdp-root[data-nav-layout=around] .rdp-button_next{inset-inline-end:0;height:var(--rdp-nav-height);justify-content:center;display:inline-flex;position:absolute;top:0}.rdp-months{gap:var(--rdp-months-gap);flex-wrap:wrap;max-width:fit-content;display:flex;position:relative}.rdp-month_grid{border-collapse:collapse}.rdp-nav{height:var(--rdp-nav-height);align-items:center;display:flex;position:absolute;inset-block-start:0;inset-inline-end:0}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform);font-size:smaller;font-weight:500}.rdp-week_number{opacity:var(--rdp-week_number-opacity);height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align);font-size:small;font-weight:400}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-size:large;font-weight:700}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.ui-date__trigger{text-align:start;width:100%;min-height:46px;font:inherit;color:var(--color-text);cursor:pointer;align-items:center;gap:8px;padding-inline-end:40px;display:flex}.ui-date__trigger--empty{color:var(--color-text-secondary)}.ui-date__text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ui-date__validator{inset-inline-start:50%;opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;bottom:0}.dp-dialog{border:1px solid var(--color-border);background:var(--color-background-element);color:var(--color-text);border-radius:18px;max-width:calc(100vw - 32px);padding:0;box-shadow:0 20px 50px #00000040}.dp-dialog::backdrop{background:#00000059}.dp-panel{padding:var(--space-three)}.dp-title{margin:0 0 var(--space-two);font-weight:700}.dp-dialog .rdp-root{--rdp-accent-color:var(--color-primary);--rdp-accent-background-color:color-mix(in srgb, var(--color-primary) 14%, transparent);--rdp-day-height:42px;--rdp-day-width:42px;--rdp-day_button-height:40px;--rdp-day_button-width:40px;--rdp-today-color:var(--color-primary);margin:0 auto}.dp-dialog .rdp-selected .rdp-day_button{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dp-dialog .rdp-dropdowns select,.dp-dialog .rdp-dropdown{font:inherit}.dp-dialog .rdp-chevron{fill:var(--color-text-secondary)}.dp-time{justify-content:space-between;align-items:center;gap:var(--space-two);margin-top:var(--space-two);padding-top:var(--space-two);border-top:1px solid var(--color-border);display:flex}.dp-time__label{font-weight:600}.dp-actions{gap:var(--space-two);margin-top:var(--space-three);display:flex}.dp-actions__spacer{flex:1}.dp-actions .ui-button{padding:8px 14px}@media (width<=480px){.dp-dialog{border-bottom:none;border-radius:18px 18px 0 0;width:100%;max-width:100%;margin:auto 0 0}.dp-panel{padding-bottom:calc(var(--space-three) + env(safe-area-inset-bottom))}}.ui-time{border:1px solid var(--color-border);background:var(--color-background-element);border-radius:12px;align-items:center;gap:2px;padding:4px 8px;display:inline-flex}.ui-time:focus-within{border-color:var(--color-primary)}.ui-time__part{appearance:none;color:var(--color-text);font:inherit;font-variant-numeric:tabular-nums;text-align:center;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:6px 4px;font-size:16px}.ui-time .ui-time__part,.dp-dialog .rdp-root select{flex:none;min-width:0}.ui-time .ui-time__part{width:2.6em}.ui-time__part:focus-visible{outline:2px solid var(--color-primary)}.ui-time__sep{color:var(--color-text-secondary);font-weight:700}.auth-page{min-height:100vh;padding:var(--space-four);justify-content:center;align-items:center;display:flex}.auth-card{background:var(--color-background-element);border:1px solid var(--color-border);width:100%;max-width:380px;padding:var(--space-five);border-radius:20px}.auth-logo{width:96px;height:96px;margin:0 auto var(--space-three);border-radius:22px;display:block}.auth-card h1{margin:0 0 var(--space-one);font-size:22px}.auth-card p.auth-subtitle{color:var(--color-text-secondary);margin:0 0 var(--space-four);font-size:14px}.auth-field{margin-bottom:var(--space-three)}.auth-field label{color:var(--color-text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.auth-error{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger);margin-bottom:var(--space-three);border-radius:10px;padding:10px 14px;font-size:13px}.auth-switch{text-align:center;margin-top:var(--space-four);color:var(--color-text-secondary);font-size:14px}.auth-switch a{color:var(--color-primary);font-weight:700}.auth-divider{align-items:center;gap:var(--space-two);margin:var(--space-four) 0 var(--space-three);color:var(--color-text-secondary);font-size:13px;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-top:1px solid var(--color-border);flex:1}.auth-google{justify-content:center;min-height:44px;display:flex}.auth-legal{margin:var(--space-three) 0 0;text-align:center;color:var(--color-text-secondary);font-size:12px}.auth-legal a{color:inherit;text-decoration:underline}.sk{background:linear-gradient(90deg, var(--color-background-selected) 0%, color-mix(in srgb, var(--color-background-selected) 55%, var(--color-background-element)) 50%, var(--color-background-selected) 100%);background-size:200% 100%;flex-shrink:0;animation:1.4s ease-in-out infinite sk-shimmer;display:block}@keyframes sk-shimmer{0%{background-position:0 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.sk{animation:none}}.sk-page{animation:.2s .15s both sk-fade-in}@keyframes sk-fade-in{0%{opacity:0}to{opacity:1}}.sk-card{background:var(--color-background-element);border:1px solid var(--color-border);padding:var(--space-four);border-radius:16px;flex-direction:column;gap:12px;display:flex}.sk-card--center{align-items:center}.sk-grid3{gap:var(--space-three);margin-bottom:var(--space-three);grid-template-columns:repeat(3,1fr);display:grid}@media (width<=480px){.sk-grid3{grid-template-columns:1fr}}.sk-list{flex-direction:column;display:flex}.sk-row{align-items:center;gap:var(--space-three);padding:var(--space-three) 0;display:flex}.sk-row+.sk-row{border-top:1px solid var(--color-border)}.sk-row__text{flex-direction:column;flex:1;gap:8px;display:flex}.sk-sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.sk-slow{margin:0 0 var(--space-three);color:var(--color-text-secondary);background:var(--color-background-selected);border-radius:12px;padding:10px 14px;font-size:14px}.lb{margin-bottom:var(--space-five)}.lb__header{margin-bottom:var(--space-two);justify-content:space-between;align-items:baseline;display:flex}.lb__header h2{color:var(--color-text-secondary);margin:0;font-size:15px;font-weight:700}.lb__toggle{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:600}.lb__tiles{gap:var(--space-two);flex-wrap:wrap;display:flex}.lb__tile{background:var(--color-background-element);border:1px solid var(--color-border);border-inline-start:3px solid var(--color-primary);border-radius:12px;flex-direction:column;justify-content:center;gap:1px;min-width:132px;max-width:220px;min-height:52px;padding:8px 14px;transition:border-color .15s,background .15s;display:flex}a.lb__tile:hover,a.lb__tile:focus-visible{background:color-mix(in srgb, var(--color-primary) 6%, var(--color-background-element));border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border))}a.lb__tile:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.lb__tile-title{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;overflow:hidden}.lb__tile-host{color:var(--color-text-secondary);text-align:end;text-overflow:ellipsis;white-space:nowrap;direction:ltr;font-size:12px;overflow:hidden}.lb__tile--add{border-style:dashed;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border-inline-start-width:1px;flex-direction:row;justify-content:center;align-items:center;gap:6px;font-size:14px;font-weight:600}.lb__tile--add:hover,.lb__tile--add:focus-visible{color:var(--color-primary);border-color:var(--color-primary)}.lb__tile--editing{flex-direction:row;justify-content:space-between;align-items:center;gap:4px;padding-inline-end:4px}.lb__tile-actions{display:flex}.lb__form{margin-top:var(--space-two);padding:var(--space-three);background:var(--color-background-element);border:1px solid var(--color-border);gap:var(--space-two);border-radius:12px;flex-direction:column;flex-basis:100%;display:flex}.lb__tiles>.lb__form{margin-top:0}.lb__presets{flex-wrap:wrap;gap:6px;display:flex}.lb__preset{border:1px solid var(--color-border);background:var(--color-background-selected);color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;padding:5px 12px;font-size:13px}.lb__preset:hover,.lb__preset:focus-visible{border-color:var(--color-primary);color:var(--color-primary)}.lb__fields{gap:var(--space-two);flex-wrap:wrap;display:flex}.lb__fields .ui-input{flex:1;min-width:180px}.lb__error{color:var(--color-danger);margin:0;font-size:13px}.lb__form-actions{gap:var(--space-two);display:flex}.lb__form-actions .ui-button{padding:8px 16px;font-size:14px}.lb--chips{margin-bottom:var(--space-three)}.lb--chips .lb__header{display:none}.lb--titled .lb__header{margin-bottom:6px;display:flex}.lb--titled .lb__header h2{font-size:13px;font-weight:600}.lb--chips .lb__tiles{gap:6px}.lb--chips .lb__tile{border:1px solid var(--color-border);border-radius:999px;flex-direction:row;align-items:center;min-width:0;max-width:220px;min-height:34px;padding:0 14px;font-size:13px}.lb--chips .lb__tile-title{font-size:13px;font-weight:600}.lb--chips .lb__tile-host{display:none}.lb--chips .lb__tile--add{color:var(--color-primary);border-style:dashed;font-size:13px}.lb--chips .lb__tile--editing{padding-inline-end:2px}.lb--chips .lb__tile--editing .ui-icon-button{width:30px;height:30px}.cs-day{background:color-mix(in srgb, var(--color-primary) 12%, transparent);width:36px;height:36px;color:var(--color-primary);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.cs-meta{color:var(--color-text-secondary);margin:2px 0 0;font-size:13px}.cs-form{margin-top:var(--space-three);padding-top:var(--space-three);border-top:1px solid var(--color-border);gap:var(--space-three);flex-direction:column;display:flex}.ui-card>.cs-form:first-child{border-top:none;margin-top:0;padding-top:0}.cs-form__grid{gap:var(--space-three);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.cd-cols{align-items:flex-start;gap:var(--space-four);flex-wrap:wrap;display:flex}.cd-cols__main{gap:var(--space-four);flex-direction:column;flex:999 520px;min-width:0;display:flex}.cd-cols__side{gap:var(--space-four);flex-direction:column;flex:320px;min-width:0;display:flex}.cd-cols .cd-section{margin-bottom:0}.ui-card.cd-card{padding:var(--space-three) var(--space-four)}.cd-card h2{margin:0;font-size:16px;font-weight:700}.cd-card__header{justify-content:space-between;align-items:center;gap:var(--space-two);margin-bottom:var(--space-two);display:flex}.cd-ghost{background:color-mix(in srgb, var(--color-primary) 10%, transparent);min-height:36px;color:var(--color-primary);font:inherit;white-space:nowrap;cursor:pointer;border:none;border-radius:10px;align-items:center;padding:0 12px;font-size:13px;font-weight:600;display:inline-flex}.cd-ghost:hover{background:color-mix(in srgb, var(--color-primary) 16%, transparent)}.cd-muted{color:var(--color-text-secondary);margin:0;font-size:13px}.cd-next{align-items:center;gap:var(--space-three);min-height:56px;padding:6px 0;display:flex}.cd-next+.cd-next{border-top:1px solid var(--color-border)}.cd-next--past{opacity:.6}.cd-next__body{flex:1;min-width:0}.cd-next__title{margin:0;font-size:15px;font-weight:600}.date-box{background:var(--color-background);text-align:center;border-radius:10px;flex-shrink:0;width:46px;padding:6px 0;line-height:1.1}.date-box b{font-size:17px;display:block}.date-box small{color:var(--color-text-secondary);font-size:11px}.kind-pill{background:var(--color-background-selected);color:var(--color-text-secondary);border-radius:999px;flex-shrink:0;padding:2px 10px;font-size:12px;font-weight:600}.kind-pill--assignment{background:color-mix(in srgb, var(--color-warning) 18%, transparent);color:color-mix(in srgb, var(--color-warning) 55%, var(--color-text))}.kind-pill--exam{background:color-mix(in srgb, var(--color-primary) 14%, transparent);color:color-mix(in srgb, var(--color-primary) 70%, var(--color-text))}.cd-bar{background:var(--color-background-selected);border-radius:99px;height:6px;display:block;overflow:hidden}.cd-bar__fill{background:var(--color-primary);border-radius:99px;height:100%;display:block}.cd-bar__fill--success{background:var(--color-success)}.home-greeting{margin:0 0 var(--space-one);font-size:28px;font-weight:800;line-height:1.3}.home-subgreeting{color:var(--color-text-secondary);margin:0 0 var(--space-five)}.home-section{margin-bottom:var(--space-five)}.home-section h2{color:var(--color-text-secondary);margin:0 0 var(--space-two);font-size:15px;font-weight:700}.home-list{gap:var(--space-two);flex-direction:column;display:flex}.home-row{justify-content:space-between;align-items:center;gap:var(--space-three);padding:var(--space-three);display:flex}.home-row+.home-row{border-top:1px solid var(--color-border)}.home-row__title{margin:0 0 2px;font-weight:600}.home-row__meta{color:var(--color-text-secondary);margin:0;font-size:13px}.home-section__link{color:var(--color-primary);font-size:13px}.home-welcome{text-align:center;padding:var(--space-six) var(--space-four);flex-direction:column;align-items:center;display:flex}.home-welcome__icon{background:color-mix(in srgb, var(--color-primary) 14%, transparent);width:80px;height:80px;margin-bottom:var(--space-three);border-radius:24px;justify-content:center;align-items:center;font-size:44px;display:flex}.home-welcome__title{color:var(--color-text);margin:0 0 var(--space-two);font-size:22px;font-weight:800}.home-welcome__text{margin:0 0 var(--space-four);color:var(--color-text-secondary);max-width:420px;line-height:1.5}.home-welcome__steps{margin:0 0 var(--space-five);gap:var(--space-two);text-align:start;flex-direction:column;width:100%;max-width:420px;padding:0;list-style:none;display:flex}.home-welcome__steps li{align-items:center;gap:var(--space-three);padding:var(--space-three);background:var(--color-background);border-radius:12px;font-size:14px;font-weight:600;display:flex}.home-welcome__steps li>span:first-child{flex-shrink:0;font-size:20px}.home-welcome__cta{text-align:center;width:100%;max-width:420px;padding:14px 20px;font-size:16px;text-decoration:none}.home-filters{margin-bottom:var(--space-two);flex-wrap:wrap;gap:6px;display:flex}.home-filters__more{align-self:center;margin-inline-start:auto}.home-filter{border:1px solid var(--color-border);min-height:32px;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.home-filter--on{border-color:var(--color-text);background:var(--color-text);color:var(--color-background-element)}.home-group+.home-group{margin-top:var(--space-two)}.home-group__title{margin:var(--space-two) 0 2px;color:var(--color-text-secondary);font-size:12px;font-weight:700}.home-group__title--danger{color:var(--color-danger)}.home-agenda__row{color:inherit;border-radius:10px;text-decoration:none}a.home-agenda__row:hover .cd-next__title{color:var(--color-primary)}.home-agenda__row .cd-next__title,.home-agenda__row .cd-muted{display:block}label.home-agenda__row{cursor:pointer}.home-agenda__check{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0}.home-agenda__nodate{color:var(--color-text-secondary);font-size:17px}.home-agenda__empty{padding:var(--space-three) 0}.home-degree{color:inherit;text-decoration:none;display:block}.home-degree:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border))}.home-degree__chevron{color:var(--color-text-secondary)}.home-degree__credits{margin:0 0 var(--space-two);color:var(--color-text-secondary);font-size:15px}.home-degree__credits b{color:var(--color-text);font-size:28px;font-weight:800}.home-degree__left{margin-top:6px}.home-degree__stats{gap:var(--space-two);margin-top:var(--space-three);padding-top:var(--space-three);border-top:1px solid var(--color-border);text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.home-degree__stats b{font-size:20px;font-weight:800;display:block}.home-degree__stats small{color:var(--color-text-secondary);font-size:12px}.home-course{padding:var(--space-two) 0 var(--space-two);border-inline-start:3px solid var(--course-color,var(--color-primary));color:inherit;flex-direction:column;gap:6px;padding-inline-start:12px;text-decoration:none;display:flex}.home-course+.home-course{margin-top:var(--space-two)}.home-course__name{font-size:15px;font-weight:700}.home-course:hover .home-course__name{color:var(--color-primary)}.home-course__progress{align-items:center;gap:var(--space-two);display:flex}.home-course__progress .cd-bar{flex:1}.home-course__progress .cd-bar__fill{background:var(--course-color,var(--color-primary))}.home-course__progress small{color:var(--color-text-secondary);white-space:nowrap;font-size:12px}.landing__hero{padding:var(--space-four) 0 var(--space-five)}.landing__hero h1{margin:0 0 var(--space-three);font-size:34px;font-weight:800;line-height:1.2}.landing__hero p{margin:0 0 var(--space-four);color:var(--color-text-secondary);font-size:17px;line-height:1.6}.landing__actions{gap:var(--space-two);flex-wrap:wrap;display:flex}.landing__features{gap:var(--space-five);flex-direction:column;display:flex}.landing__feature{align-items:center;gap:var(--space-five);margin:0;display:flex}.landing__feature:nth-child(2n){flex-direction:row-reverse}.landing__feature img{border:1px solid var(--color-border);border-radius:20px;flex-shrink:0;width:260px;height:auto;box-shadow:0 10px 30px #00000014}.landing__feature h2{margin:0 0 var(--space-two);font-size:20px;font-weight:700}.landing__feature p{color:var(--color-text-secondary);margin:0;line-height:1.6}.landing__cta{margin-top:var(--space-five);padding:var(--space-five) var(--space-four);text-align:center;background:var(--color-background-element);border:1px solid var(--color-border);border-radius:20px}.landing__cta h2{margin:0 0 var(--space-two);font-size:22px}.landing__cta p{margin:0 0 var(--space-four);color:var(--color-text-secondary)}.landing__links{justify-content:center}@media (width<=640px){.landing__hero h1{font-size:28px}.landing__feature,.landing__feature:nth-child(2n){align-items:stretch;gap:var(--space-three);flex-direction:column}.landing__feature img{align-self:center;width:min(100%,300px)}}.nd-form{gap:var(--space-four);flex-direction:column;display:flex}.nd-field{flex-direction:column;gap:6px;display:flex}.nd-label{font-size:14px;font-weight:700}.nd-hint{color:var(--color-text-secondary);margin:0;font-size:13px;line-height:1.5}.nd-select{border:1px solid var(--color-border);background:var(--color-background);width:100%;color:var(--color-text);border-radius:10px;padding:11px 14px;font-size:15px}.nd-select:focus{outline:2px solid var(--color-primary);outline-offset:1px}.nd-template-summary{color:var(--color-primary);margin:0;font-size:13px;font-weight:600}.nd-error{color:var(--color-danger);margin:0;font-size:14px;font-weight:600}.nd-actions{gap:var(--space-two);display:flex}.degrees-header{margin-bottom:var(--space-four);justify-content:space-between;align-items:center;display:flex}.degrees-header h1{margin:0;font-size:24px}.degrees-grid{gap:var(--space-three);display:grid}.degree-card{align-items:center;gap:var(--space-three);display:flex}.degree-card__icon{background:color-mix(in srgb, var(--color-primary) 12%, transparent);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:26px;display:flex}.degree-card__body{flex:1;min-width:0}.degree-card h3{margin:0 0 4px;font-size:17px}.degree-card p{color:var(--color-text-secondary);margin:0;font-size:14px}.new-degree-form{gap:var(--space-two);margin-bottom:var(--space-four);flex-direction:column;display:flex}.new-degree-form select{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);border-radius:10px;padding:11px 14px;font-size:15px}.courses-header{justify-content:space-between;align-items:center;gap:var(--space-three);margin-bottom:var(--space-four);flex-wrap:wrap;display:flex}.courses-header h1{margin:0;font-size:24px}.courses-actions{gap:var(--space-two);display:flex}.courses-actions .ui-button{border-radius:10px;padding:8px 14px;font-size:14px}.courses-add{gap:var(--space-two);padding:var(--space-two);margin-bottom:var(--space-three);background:color-mix(in srgb, var(--color-primary) 8%, var(--color-background-element));border:1px solid color-mix(in srgb, var(--color-primary) 25%, transparent);border-radius:12px;flex-wrap:wrap;align-items:center;display:flex}.courses-add .ui-input{background:var(--color-background-element);flex:1;min-width:140px;padding:8px 12px;font-size:14px}.courses-add .courses-add__credits{flex:0 0 76px;min-width:0}.courses-add .ui-button{border-radius:10px;padding:8px 16px;font-size:14px}.courses-tabs{margin-bottom:var(--space-three);background:var(--color-background-selected);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.courses-tab{font:inherit;cursor:pointer;color:var(--color-text-secondary);background:0 0;border:none;border-radius:9px;align-items:center;gap:6px;padding:7px 16px;font-size:14px;font-weight:600;display:inline-flex}.courses-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.courses-tab--active{background:var(--color-background-element);color:var(--color-text);box-shadow:0 1px 2px #00000014}.courses-tab__count{text-align:center;font-variant-numeric:tabular-nums;background:var(--color-background-selected);min-width:20px;color:var(--color-text-secondary);border-radius:10px;padding:0 6px;font-size:12px;line-height:18px}.courses-tab--active .courses-tab__count{background:var(--color-primary);color:var(--color-white)}.courses-search{margin-bottom:var(--space-four)}.courses-row{align-items:center;gap:var(--space-three);padding:var(--space-two) 0;display:flex}.courses-row+.courses-row{border-top:1px solid var(--color-border)}.courses-dot{border-radius:5px;flex-shrink:0;width:9px;height:9px}.courses-row__title{margin:0;font-weight:500}.courses-row__subtitle{color:var(--color-text-secondary);margin:2px 0 0;font-size:13px}.courses-row__meta{color:var(--color-text-secondary);white-space:nowrap;font-size:13px}.courses-row__link{align-items:center;gap:var(--space-three);flex:1;min-width:0;display:flex}.dr-link{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.dr-empty-actions{justify-content:center;display:flex}.dr-header{margin-bottom:var(--space-three);justify-content:space-between;align-items:center;display:flex}.dr-header h2{margin:0;font-size:16px;font-weight:700}.dr-list{gap:var(--space-three);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.dr-row__top{justify-content:space-between;align-items:baseline;gap:var(--space-three);margin-bottom:6px;font-size:14px;display:flex}.dr-row__name{font-weight:700}.dr-row__value{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.dr-row__value--done{color:var(--color-success)}.dr-bar{background:var(--color-background-selected);border-radius:4px;height:8px;display:flex;position:relative;overflow:hidden}.dr-bar__seg{height:100%;transition:width .25s}.dr-bar__seg--done{background:var(--color-success)}.dr-bar__seg--current{background:var(--color-primary)}.dr-bar__seg--planned{background:repeating-linear-gradient(-45deg, color-mix(in srgb, var(--color-warning) 70%, transparent) 0 4px, color-mix(in srgb, var(--color-warning) 35%, transparent) 4px 8px)}.dr-bar__goal{background:var(--color-text);width:2px;position:absolute;top:-2px;bottom:-2px}.dr-row__meta{color:var(--color-text-secondary);margin:4px 0 0;font-size:12px}.dr-legend{gap:var(--space-three);margin-top:var(--space-four);padding-top:var(--space-three);border-top:1px solid var(--color-border);color:var(--color-text-secondary);flex-wrap:wrap;font-size:12px;display:flex}.dr-legend span{align-items:center;gap:6px;display:inline-flex}.dr-swatch{border-radius:2px;width:12px;height:8px}.dr-swatch--done{background:var(--color-success)}.dr-swatch--current{background:var(--color-primary)}.dr-swatch--planned{background:var(--color-warning)}.dr-note{margin:var(--space-three) 0 0;color:var(--color-text-secondary);font-size:13px}.dr-note--top{margin:0}.dr-editor{gap:var(--space-two);flex-direction:column;display:flex}.dr-editor__row{align-items:center;gap:var(--space-two);flex-wrap:wrap;display:flex}.dr-editor__row .ui-input{flex:1;min-width:0}.dr-editor__row .dr-editor__credits{flex:0 0 90px}.dr-editor__reset{color:var(--color-text-secondary);flex:100%;margin:0;font-size:13px}.dr-add{align-self:flex-start;padding:6px 0}.dr-error{color:var(--color-danger);margin:0;font-size:13px}.dr-editor__actions{gap:var(--space-two);margin-top:var(--space-two);display:flex}.dr-row__name--link{font:inherit;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;padding:0;font-weight:700}.dr-row__name--link:hover{color:var(--color-primary);text-decoration:underline}.dr-total{color:var(--color-text-secondary);margin:0;font-size:14px;font-weight:600}@media (width<=640px){.dr-editor__row{padding-bottom:var(--space-two);border-bottom:1px solid var(--color-border);flex-wrap:wrap}.dr-editor__row .ui-input{flex:100%}.dr-editor__row .dr-editor__credits{flex:auto}}.status-menu{display:inline-flex;position:relative}.status-menu__trigger{border:1px solid var(--color-border);background:var(--color-background-element);min-height:36px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:0 12px 0 10px;font-size:14px;font-weight:600;display:inline-flex}.status-menu__trigger:hover,.status-menu__trigger[aria-expanded=true]{border-color:color-mix(in srgb, var(--color-primary) 45%, var(--color-border))}.status-menu__trigger svg{color:var(--color-text-secondary)}.status-dot{background:var(--color-text-secondary);border-radius:50%;flex-shrink:0;width:8px;height:8px}.status-dot--current{background:var(--color-primary)}.status-dot--done{background:var(--color-success)}.more-menu__trigger{width:44px;height:44px;color:var(--color-text);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.more-menu__trigger:hover,.more-menu__trigger[aria-expanded=true]{background:var(--color-background-selected)}.menu-popover{top:calc(100% + 6px);z-index:30;background:var(--color-background-element);border:1px solid var(--color-border);border-radius:12px;flex-direction:column;min-width:180px;padding:4px;display:flex;position:absolute;inset-inline-start:0;box-shadow:0 8px 24px #00000024}.menu-popover--end{inset-inline:auto 0}.menu-popover__item{min-height:44px;color:var(--color-text);font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:0 12px;font-size:14px;display:flex}.menu-popover__item:hover,.menu-popover__item:focus-visible{background:var(--color-background-selected)}.menu-popover__item--danger{color:var(--color-danger)}.menu-popover__label{flex:1}.menu-popover__check{color:var(--color-primary)}.dc-controls{gap:var(--space-two);margin-bottom:var(--space-three);flex-direction:column;display:flex}.dc-filters{gap:var(--space-two);flex-wrap:wrap;display:flex}.dc-select{border:1px solid var(--color-border);background:var(--color-background-element);max-width:100%;min-height:38px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;padding:0 10px;font-size:13px;font-weight:600}.dc-select--on{border-color:var(--color-text);background:var(--color-text);color:var(--color-background-element)}.dc-chips{flex-wrap:wrap;gap:6px;display:flex}.dc-chip{border:1px solid var(--color-border);min-height:32px;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:13px;font-weight:600}.dc-chip--on{border-color:var(--color-text);background:var(--color-text);color:var(--color-background-element)}.dc-toolbar{align-items:center;gap:var(--space-three);display:flex}.dc-count{color:var(--color-text-secondary);flex:1;font-size:13px}.dc-link{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:14px;font-weight:600}.dc-groups{gap:var(--space-two);flex-direction:column;display:flex}.ui-card.dc-group{padding-top:0;padding-bottom:0}.dc-group__header{align-items:center;gap:var(--space-two);width:100%;min-height:52px;font:inherit;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;padding:0;display:flex}.dc-group__name{flex:1;font-weight:700}.dc-group__count{color:var(--color-text-secondary);white-space:nowrap;font-size:13px}.dc-group__chevron{color:var(--color-text-secondary);flex-shrink:0;transition:transform .15s}.dc-group__header[aria-expanded=true] .dc-group__chevron{transform:rotate(180deg)}.dc-row{align-items:center;gap:var(--space-three);border-top:1px solid var(--color-border);min-height:56px;padding:8px 0;display:flex}.dc-row__main{flex:1;min-width:0}.dc-row__body{flex-direction:column;min-width:0;display:flex}.dc-row__toggle{width:100%;font:inherit;color:inherit;text-align:start;cursor:pointer;background:0 0;border:none;padding:0}.dc-row__toggle:hover .dc-row__title{color:var(--color-primary)}.dc-row__title{font-weight:600;line-height:1.35}.dc-row__meta{color:var(--color-text-secondary);flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:2px;font-size:13px;display:flex}.dc-prereq{align-items:center;gap:5px;font-size:12px;display:inline-flex}.dc-prereq:before{content:"";background:var(--color-success);border-radius:50%;width:6px;height:6px}.dc-prereq--yes:before{background:var(--color-warning)}.dc-row__details{background:var(--color-background-selected);color:var(--color-text-secondary);border-radius:10px;margin-top:6px;padding:8px 10px;font-size:13px}.dc-row__details p{margin:0}.dc-row__details p+p{margin-top:4px}.dc-row__details strong{color:var(--color-text);font-weight:600}.dc-row__pick{align-items:flex-start;gap:var(--space-two);cursor:pointer;flex-direction:row}.dc-row__text{flex-direction:column;min-width:0;display:flex}.dc-row__pick input{flex-shrink:0;width:18px;height:18px;margin-top:4px}.dc-row--picked{background:color-mix(in srgb, var(--color-primary) 6%, transparent)}.dc-row__status{align-items:center;gap:var(--space-two);flex-shrink:0;display:flex}.dc-row__grade{color:var(--color-text-secondary);font-size:13px;font-weight:700}.dc-add{border:1px solid var(--color-border);background:var(--color-background-element);width:40px;height:40px;color:var(--color-primary);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;display:flex}.dc-add:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.dc-add:disabled{opacity:.5;cursor:default}.dc-row .status-menu{flex-shrink:0}.dc-grade-form{gap:var(--space-two);padding:var(--space-two);flex-direction:column;display:flex}.dc-grade-form label{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:13px;font-weight:600;display:flex}.dc-bulk{z-index:20;margin-top:var(--space-three);padding-bottom:var(--space-two);position:sticky;bottom:0}.dc-bulk__inner{gap:var(--space-two);padding:var(--space-three);background:var(--color-background-element);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;display:flex;box-shadow:0 -6px 24px #0000001a}.dc-bulk__top{justify-content:space-between;align-items:center;gap:var(--space-two);flex-wrap:wrap;display:flex}.dc-bulk__grades{flex-direction:column;gap:6px;max-height:40vh;display:flex;overflow-y:auto}.dc-bulk__grade{justify-content:space-between;align-items:center;gap:var(--space-two);font-size:14px;display:flex}.dc-bulk__grade .ui-input{flex:0 0 80px;width:80px}@media (width<=640px){.dc-bulk{bottom:calc(64px + env(safe-area-inset-bottom))}}.sp{gap:var(--space-three);flex-direction:column;display:flex}.sp__tabs{background:var(--color-background-selected);border-radius:12px;flex-wrap:wrap;align-self:flex-start;gap:4px;padding:4px;display:flex}.sp__tab{min-height:38px;padding:0 var(--space-three);font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:9px;font-size:14px;font-weight:600}.sp__tab--active{background:var(--color-background-element);color:var(--color-text);box-shadow:0 1px 2px #0000001f}.sp__tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.sp__tab-sub{color:var(--color-text-secondary);font-size:12px;font-weight:400}.sp__hint{color:var(--color-text-secondary);margin:0;font-size:13px}.ui-card.sp__card{padding-top:var(--space-three);padding-bottom:var(--space-one)}.ui-card.sp__card--folded{padding-top:0;padding-bottom:0}.sp__group{align-items:center;gap:var(--space-two);margin:0 0 var(--space-one);display:flex}.sp__group h3{flex:1;margin:0;font-size:16px;font-weight:700}.sp__tab--add{color:var(--color-primary)}.sp__tab:disabled{opacity:.6;cursor:default}.sp__hint--inside{margin-bottom:var(--space-one)}.sp__empty-actions{padding-bottom:var(--space-three);justify-content:center;display:flex}.sp__scheduled{margin:0;padding:0;list-style:none}.sp-row__link{color:inherit;text-decoration:none;display:block}.sp-row__link:hover{color:var(--color-primary)}.sp-row__move{border:1px solid var(--color-border);background:var(--color-background-element);max-width:120px;min-height:36px;color:var(--color-text-secondary);font:inherit;border-radius:10px;flex-shrink:0;padding:0 8px;font-size:13px}.sp__added{min-height:0;color:var(--color-success);margin:0;font-size:14px;font-weight:600}.sp__added:empty{display:none}.sp__count{color:var(--color-text-secondary);font-size:13px;font-weight:500}.sp__more+.sp__more{border-top:1px solid var(--color-border)}.sp__more summary{cursor:pointer;align-items:center;gap:6px;min-height:50px;font-size:15px;font-weight:700;display:flex}.sp__more summary::-webkit-details-marker{display:none}.sp__more summary:after{content:"";border-right:2px solid var(--color-text-secondary);border-bottom:2px solid var(--color-text-secondary);width:7px;height:7px;margin-inline-start:auto;transition:transform .15s;transform:rotate(45deg)}.sp__more[open] summary:after{transform:rotate(-135deg)}.sp__more summary{list-style:none}.sp__more[open] summary{border-bottom:1px solid var(--color-border)}.sp__show-more{border:none;border-top:1px solid var(--color-border);width:100%;min-height:46px;color:var(--color-primary);font:inherit;text-align:start;cursor:pointer;background:0 0;font-size:14px;font-weight:600}.sp-row{align-items:center;gap:var(--space-three);min-height:56px;padding:8px 0;display:flex}.sp-row+.sp-row{border-top:1px solid var(--color-border)}.sp-row__body{flex:1;min-width:0}.sp-row__title{margin:0;font-weight:600;line-height:1.35}.sp-row__meta{color:var(--color-text-secondary);margin:2px 0 0;font-size:13px}.sp-row__warn{color:var(--color-text-secondary);-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;margin:3px 0 0;font-size:12px;display:-webkit-box;overflow:hidden}.sp-row__warn--danger strong{color:var(--color-danger)}.sp-row__warn--warning strong{color:var(--color-warning)}.sp-row__add{border:1px solid var(--color-border);background:var(--color-background-element);width:40px;height:40px;color:var(--color-primary);cursor:pointer;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.sp-row__add:hover{background:color-mix(in srgb, var(--color-primary) 8%, transparent)}.sp-row__add:disabled{opacity:.5;cursor:default}@media (width<=640px){.sp__tabs{align-self:stretch}.sp__tab{flex:1 0 auto;padding:0 10px}}.dd-header{margin-bottom:var(--space-four);justify-content:space-between;align-items:flex-start;display:flex}.dd-header h1{margin:0 0 4px;font-size:24px}.dd-header p{color:var(--color-text-secondary);margin:0}.dd-header{gap:var(--space-three)}.dd-header__main{min-width:0}.dd-title-row{align-items:center;gap:var(--space-three);display:flex}.dd-icon{cursor:pointer;background:color-mix(in srgb, var(--color-primary) 12%, transparent);border:none;border-radius:16px;flex-shrink:0;width:52px;height:52px;font-size:28px;transition:transform .1s}.dd-icon:active{transform:scale(.94)}.dd-icon:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dd-all-degrees-link{color:var(--color-text-secondary);margin-bottom:6px;font-size:13px;font-weight:600;display:inline-block}.dd-all-degrees-link:hover{color:var(--color-primary)}.dd-progress-card{gap:var(--space-three);flex-direction:column;display:flex}.dd-credits{font-variant-numeric:tabular-nums;color:var(--color-text-secondary);justify-content:space-between;align-items:baseline;display:flex}.dd-credits strong{color:var(--color-text);font-size:28px;font-weight:800}.dd-credits__pct{color:var(--color-primary);font-weight:700}.dd-summary{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.dd-summary__item{color:var(--color-text);border-radius:10px;flex-direction:column;align-items:center;padding:6px 0;display:flex}a.dd-summary__item:hover,button.dd-summary__item:hover{background:var(--color-background-selected)}.dd-summary__item--button{font:inherit;cursor:pointer;background:0 0;border:none}.dd-summary__item strong{font-variant-numeric:tabular-nums;font-size:18px}.dd-summary__item span{color:var(--color-text-secondary);align-items:center;gap:4px;font-size:13px;display:inline-flex}.dd-layout{gap:var(--space-four);flex-direction:column;display:flex}.dd-side{gap:var(--space-four);flex-direction:column;min-width:0;display:flex}.dd-main{min-width:0}@media (width>=900px){.dd-layout{align-items:start;gap:var(--space-five);grid-template-columns:minmax(300px,360px) minmax(0,1fr);display:grid}.dd-side{max-height:calc(100vh - 104px);position:sticky;top:88px;overflow-y:auto}}.dd-tabs{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-four);scroll-margin-top:80px;display:flex}.dd-tab{min-height:46px;padding:0 var(--space-four);font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;justify-content:center;align-items:center;gap:6px;margin-bottom:-1px;font-size:15px;font-weight:600;display:inline-flex}.dd-tab--active{color:var(--color-text);border-bottom-color:var(--color-primary)}.dd-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.dd-tab__count{color:var(--color-text-secondary);font-size:13px;font-weight:500}@media (width<=640px){.dd-tabs{scroll-margin-top:var(--space-two)}.dd-tab{flex:1;padding:0 6px}.dd-header h1{font-size:20px}.dd-icon{border-radius:12px;width:44px;height:44px;font-size:24px}}.st-count{background:var(--color-background-selected);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.st-count--done{background:color-mix(in srgb, var(--color-success) 15%, transparent);color:var(--color-success)}.st-progress-wrap{align-items:center;gap:var(--space-three);margin-bottom:var(--space-two);display:flex}.st-progress{background:var(--color-background-selected);border-radius:4px;flex:1;height:8px;overflow:hidden}.st-progress__bar{background:var(--color-primary);border-radius:4px;height:100%;transition:width .25s}.st-progress__label{color:var(--color-text-secondary);white-space:nowrap;font-size:12px;font-weight:600}.st-list{margin:0 0 var(--space-two);padding:0;list-style:none}.st-row{align-items:center;gap:var(--space-two);min-height:48px;display:flex}.st-row+.st-row{border-top:1px solid var(--color-border)}.st-check{align-items:center;gap:var(--space-three);cursor:pointer;flex:1;min-width:0;padding:10px 0;display:flex}.st-check input{width:22px;height:22px;accent-color:var(--color-primary);cursor:pointer;flex-shrink:0;margin:0}.st-check__title{overflow-wrap:anywhere;font-weight:500;transition:color .15s}.st-row--done .st-check__title{color:var(--color-text-secondary);text-decoration:line-through}.st-edit{gap:var(--space-two);padding:var(--space-two) 0;flex-wrap:wrap;flex:1;display:flex}.st-edit>.ui-input{flex:1;min-width:160px}.st-empty{text-align:center;padding:var(--space-three) var(--space-two) var(--space-four);color:var(--color-text-secondary)}.st-empty__title{color:var(--color-text);margin:0 0 4px;font-weight:700}.st-empty__text{margin:0;font-size:14px;line-height:1.5}.st-add{gap:var(--space-two);display:flex}.st-add>.ui-input{flex:1;min-width:0}.st-add>.ui-button{flex-shrink:0;width:48px;padding:0;font-size:22px;line-height:1}.st-paste-link{margin-top:var(--space-two);color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:4px 0;font-size:13px;font-weight:600}.st-paste{gap:var(--space-two);flex-direction:column;display:flex}.st-paste__label{color:var(--color-text-secondary);font-size:13px;font-weight:600}.st-paste__textarea{resize:vertical;font-family:inherit;line-height:1.6}.st-paste__actions{gap:var(--space-two);display:flex}.ap-count{background:var(--color-background-selected);color:var(--color-text-secondary);font-variant-numeric:tabular-nums;border-radius:999px;padding:2px 10px;font-size:13px;font-weight:700}.ap-status{margin-bottom:var(--space-three);padding:var(--space-three) var(--space-four);gap:var(--space-two);flex-direction:column;display:flex}.ap-line{align-items:flex-start;gap:10px;margin:0;font-size:14px;font-weight:600;display:flex}.ap-line__text{flex:1}.ap-line__text p{margin:0 0 2px}.ap-dot{background:var(--color-text-secondary);border-radius:50%;flex-shrink:0;width:10px;height:10px;margin-top:6px}.ap-line--ok .ap-dot{background:var(--color-success)}.ap-line--ok{color:var(--color-success)}.ap-line--warn .ap-dot{background:var(--color-warning)}.ap-link{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.ap-link:hover{text-decoration:underline}.ap-bar-wrap{align-items:center;gap:var(--space-three);display:flex}.ap-bar{background:var(--color-background-selected);border-radius:4px;flex:1;height:8px;position:relative;overflow:hidden}.ap-bar__fill{background:var(--color-warning);border-radius:4px;height:100%;transition:width .25s}.ap-bar__fill--ok{background:var(--color-success)}.ap-bar__label{color:var(--color-text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:12px;font-weight:600}.ap-add-buttons{gap:var(--space-two);padding-top:var(--space-three);display:flex}.ap-add-buttons .ui-button{padding:8px 14px;font-size:14px}.ui-card>.ap-add-buttons:first-child,.ui-empty+.ap-add-buttons{padding-top:0}.ap-form{margin-top:var(--space-three);padding-top:var(--space-three);border-top:1px solid var(--color-border);gap:var(--space-three);flex-direction:column;display:flex}.ui-empty+.ap-form{border-top:none;margin-top:0}.ap-kind{background:var(--color-background-selected);border-radius:12px;align-self:flex-start;gap:2px;padding:3px;display:inline-flex}.ap-kind__option{font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:9px;padding:6px 16px;font-size:14px;font-weight:600}.ap-kind__option--active{background:var(--color-background-element);color:var(--color-text);box-shadow:0 1px 2px #00000014}.ap-kind__option:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.ap-form__row{gap:var(--space-two);flex-wrap:wrap;align-items:flex-end;display:flex}.ap-form__row>*{flex:1;min-width:160px}.ap-form__row--compact>.cd-check{flex:none;min-width:0;padding-bottom:12px}.ap-preview{color:var(--color-text-secondary);margin:0;font-size:13px}.ap-form__actions{gap:var(--space-two);display:flex}.ap-form__actions .ui-button{padding:8px 16px;font-size:14px}.ui-card.ap-shared{margin-bottom:var(--space-three);border:1px solid color-mix(in srgb, var(--color-primary) 35%, transparent);background:color-mix(in srgb, var(--color-primary) 6%, var(--color-background-element));flex-direction:column;gap:4px;display:flex}.ap-shared__title{margin:0;font-weight:700}.ap-shared__summary{margin:0;font-size:15px}.ap-shared__meta{margin:0 0 var(--space-two);color:var(--color-text-secondary);font-size:13px}.ap-shared__error{color:var(--color-danger);margin:0;font-size:13px}.gc{padding:0;overflow:hidden}.gc__modes{border-bottom:1px solid var(--color-border);display:flex}.gc__mode{font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:14px 12px;font-size:14px;font-weight:600}.gc__mode--active{color:var(--color-text);border-bottom-color:var(--color-primary)}.gc__mode:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.gc__main{align-items:center;gap:var(--space-four);padding:var(--space-four);grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);display:grid}@media (width<=520px){.gc__main{gap:var(--space-three);grid-template-columns:1fr}}.gc__input{color:var(--color-text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.gc__input .ui-input{font-variant-numeric:tabular-nums;max-width:160px;padding:10px 14px;font-size:28px;font-weight:700}.gc__result{text-align:center;padding:var(--space-three);background:color-mix(in srgb, var(--color-primary) 9%, transparent);color:var(--color-primary);border-radius:14px}.gc__result--bad{background:color-mix(in srgb, var(--color-danger) 10%, transparent);color:var(--color-danger)}.gc__result--muted{background:var(--color-background-selected);color:var(--color-text-secondary)}.gc__caption{margin:0;font-size:13px;font-weight:700}.gc__number{letter-spacing:-1px;font-variant-numeric:tabular-nums;margin:2px 0;font-size:56px;font-weight:800;line-height:1.05}.gc__sub{color:var(--color-text-secondary);margin:0;font-size:13px;font-weight:600}.gc__weights,.gc__note{padding:0 var(--space-four) var(--space-three);color:var(--color-text-secondary);margin:0;font-size:13px}.gc__parts{border-top:1px solid var(--color-border)}.gc__parts>summary{padding:var(--space-three) var(--space-four);cursor:pointer;font-size:14px;font-weight:700}.gc__parts-hint{color:var(--color-text-secondary);font-weight:500}.gc__parts .gc__note{padding-top:var(--space-two)}.gc__default{align-items:center;gap:var(--space-three);padding:0 var(--space-four) var(--space-two);color:var(--color-text-secondary);font-size:13px;font-weight:600;display:flex}.gc__default .ui-input{text-align:center;width:84px;padding:6px 10px}.gc__list{padding:0 var(--space-four);margin:0;list-style:none}.gc__item{align-items:center;gap:var(--space-three);min-height:48px;display:flex}.gc__item+.gc__item{border-top:1px solid var(--color-border)}.gc__item-title{flex:1;min-width:0;font-weight:500}.gc__item-weight{width:48px;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-size:13px}.gc__item-grade{text-align:center;font-variant-numeric:tabular-nums;width:84px;font-weight:700}.gc__item-what-if{align-items:center;gap:var(--space-two);display:flex}.gc__item-what-if .ui-input{text-align:center;width:84px;padding:6px 10px}.gc__skip{color:var(--color-text-secondary);white-space:nowrap;cursor:pointer;align-items:center;gap:4px;font-size:12px;display:inline-flex}.gc-rules{margin-bottom:var(--space-three)}.gc-rules form{gap:var(--space-three);flex-direction:column;display:flex}.gc-rules__intro{color:var(--color-text-secondary);margin:0;font-size:13px}.gc-rules__grid{gap:var(--space-three);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.gc-rules__shield{align-items:flex-start}.gc-rules__shield>span{flex-direction:column;display:flex}.gc-rules__hint{color:var(--color-text-secondary);font-size:12px;font-weight:400}.tp{gap:var(--space-three);flex-direction:column;display:flex}.tp-intro{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;margin:0;font-size:14px}.tp-avatar{background:var(--color-background-selected);width:36px;height:36px;color:var(--color-text-secondary);border-radius:50%;flex-shrink:0;place-items:center;font-size:19px;font-weight:700;display:grid}.tp-avatar--small{width:28px;height:28px;font-size:15px}.tp-composer{gap:var(--space-two);background:var(--color-background-element);border:1px solid var(--color-border);border-radius:16px;align-items:flex-start;padding:12px 14px;display:flex}.tp-composer__main{flex:1;min-width:0}.tp-composer__row{justify-content:space-between;align-items:center;gap:var(--space-two);margin-top:var(--space-two);flex-wrap:wrap;display:flex}.tp-composer .ui-button,.tp-reply-form .ui-button,.tp-code-form .ui-button,.tp-edit .ui-button{padding:8px 16px;font-size:14px}.tp-textarea{resize:vertical;width:100%;min-height:64px;color:var(--color-text);font:inherit;background:0 0;border:none;outline:none;font-size:15px;line-height:1.55}.tp-edit .tp-textarea{border:1px solid var(--color-border);background:var(--color-background);border-radius:10px;padding:8px 10px}.tp-hint{color:var(--color-text-secondary);font-size:12px}.tp-chars{font-variant-numeric:tabular-nums}.tp-error{margin:var(--space-one) 0 0;color:var(--color-danger);font-size:13px}.tp-sortbar{justify-content:space-between;align-items:center;gap:var(--space-two);flex-wrap:wrap;display:flex}.tp-sortbar__label{color:var(--color-text-secondary);font-size:13px}.tp-sort{flex-wrap:wrap;gap:6px;display:flex}.tp-sort__btn{border:1px solid var(--color-border);background:var(--color-background-element);color:var(--color-text-secondary);font:inherit;cursor:pointer;border-radius:999px;padding:5px 12px;font-size:13px}.tp-sort__btn--active{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary);font-weight:700}.tp-post{background:var(--color-background-element);border:1px solid var(--color-border);border-radius:16px;padding:14px}.tp-head{align-items:center;gap:10px;display:flex}.tp-who{flex-direction:column;flex:1;min-width:0;display:flex}.tp-name{font-size:14px;font-weight:700}.tp-you{color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);border-radius:6px;margin-inline-start:6px;padding:1px 6px;font-size:11px;font-weight:500}.tp-when{color:var(--color-text-secondary);font-size:12px}.tp-body{margin:var(--space-two) 0 10px;white-space:pre-line;overflow-wrap:anywhere;font-size:15px;line-height:1.6}.tp-reply .tp-body{margin:6px 0 8px;font-size:14px}.tp-reply-to{color:var(--color-primary);font-weight:500}.tp-actions{color:var(--color-text-secondary);align-items:center;gap:14px;font-size:13px;display:flex}.tp-meta{font-variant-numeric:tabular-nums}.tp-link{font:inherit;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;padding:0}.tp-link:hover{color:var(--color-primary)}.tp-show-more{color:var(--color-primary);align-self:flex-start;font-weight:500}.tp-votes{background:var(--color-background-selected);border-radius:999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.tp-vote{width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;place-items:center;display:grid}.tp-vote svg{fill:currentColor;width:14px;height:14px}.tp-vote:disabled{opacity:.35;cursor:default}.tp-vote--up{color:var(--color-primary);background:var(--color-background-element)}.tp-vote--down{color:var(--color-danger);background:var(--color-background-element)}.tp-score{text-align:center;min-width:22px;color:var(--color-text);font-variant-numeric:tabular-nums;font-weight:700}.tp-score--pos{color:var(--color-primary)}.tp-score--neg{color:var(--color-danger)}.tp-replies{gap:var(--space-three);margin-top:var(--space-three);border-inline-start:2px solid var(--color-border);flex-direction:column;padding-inline-start:14px;display:flex}.tp-reply-form,.tp-code-form{gap:var(--space-two);flex-wrap:wrap;display:flex}.tp-reply-form .ui-input{flex:1;width:auto;min-width:0;padding:8px 12px;font-size:14px}.tp-reply-form .tp-error{flex-basis:100%}.tp-code-form{justify-content:center}.tp-code-form .ui-input{text-align:center;font-variant-numeric:tabular-nums;width:160px}.tp-deleted p{color:var(--color-text-secondary);margin:0;font-size:14px;font-style:italic}.tp-menu-wrap{position:relative}.tp-more{color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:2px 8px;font-size:18px}.tp-more:hover{background:var(--color-background-selected)}.tp-menu{inset-inline-end:0;z-index:5;background:var(--color-background-element);border:1px solid var(--color-border);border-radius:10px;flex-direction:column;min-width:120px;display:flex;position:absolute;top:100%;overflow:hidden;box-shadow:0 6px 20px #0000001f}.tp-menu button{font:inherit;text-align:start;color:var(--color-text);cursor:pointer;background:0 0;border:none;padding:9px 16px;font-size:14px}.tp-menu button+button{border-top:1px solid var(--color-border)}.tp-menu button:hover{background:var(--color-background-selected)}.tp-menu .tp-menu__danger{color:var(--color-danger)}.tp-edit__actions{justify-content:flex-end;gap:var(--space-two);margin:var(--space-two) 0;display:flex}.tp-vote:focus-visible,.tp-link:focus-visible,.tp-sort__btn:focus-visible,.tp-more:focus-visible,.tp-menu button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.ce{margin-bottom:var(--space-four)}.ce__title{margin:0 0 var(--space-three);font-size:17px;font-weight:700}.ce__grid{gap:var(--space-three);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.ce__wide{grid-column:1/-1}.ce__hint{margin:var(--space-three) 0 0;color:var(--color-text-secondary);font-size:13px}.ce__actions{gap:var(--space-two);margin-top:var(--space-three);display:flex}.course-info{margin-top:6px}.course-info-tags{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.course-info__text{color:var(--color-text-secondary);margin:4px 0 0;font-size:13px}.course-info__text strong{font-weight:600}.cd-topbar{margin:calc(-1 * var(--space-two)) 0 0;justify-content:space-between;align-items:center;display:flex}.cd-topbar .cd-back{margin-bottom:0}.cd-header{margin-bottom:var(--space-three)}.cd-header h1{margin:0 0 4px;font-size:26px;font-weight:800;line-height:1.25}.cd-header__meta{color:var(--color-text-secondary);margin:0}.cd-header__status{align-items:center;gap:var(--space-three);margin-top:var(--space-three);flex-wrap:wrap;display:flex}.cd-header__status .cd-grade{margin-top:0}.cd-section{margin-bottom:var(--space-five)}.cd-section-header{margin-bottom:var(--space-two);justify-content:space-between;align-items:center;display:flex}.cd-section-header h2{color:var(--color-text-secondary);margin:0;font-size:15px;font-weight:700}.cd-row{align-items:center;gap:var(--space-three);padding:var(--space-two) 0;display:flex}.cd-row+.cd-row{border-top:1px solid var(--color-border)}.cd-row__title{overflow-wrap:anywhere;flex:1;min-width:0;margin:0;font-weight:500}.cd-row__title--done{color:var(--color-text-secondary);text-decoration:line-through}.cd-row__actions{flex-shrink:0;gap:2px;margin-inline-start:auto;display:flex}.cd-item__meta{margin-top:4px}.cd-row>input[type=checkbox]{width:20px;height:20px;accent-color:var(--color-primary);flex-shrink:0}.cd-inline-form{gap:var(--space-two);margin-bottom:var(--space-three);flex-wrap:wrap;display:flex}.cd-inline-form input,.cd-inline-form select{flex:1;min-width:120px}.cd-inline-form>.cd-item-edit__date,.cd-inline-form>.ui-date,.cd-item-edit>.cd-item-edit__date{flex:1;min-width:180px}@media (width<=640px){.cd-inline-form--stack{flex-direction:column;align-items:stretch}.cd-inline-form--stack>.cd-item-edit__date,.cd-inline-form--stack>.ui-date{min-width:0}}.cd-grade{align-items:center;gap:var(--space-two);margin-top:var(--space-three);font-size:14px;font-weight:600;display:flex}.cd-item__body{flex:1;min-width:0}.cd-item__notes{color:var(--color-text-secondary);white-space:pre-wrap;margin:2px 0 0;font-size:13px}.cd-item-edit{align-items:flex-end;gap:var(--space-two);flex-wrap:wrap}.cd-item-edit>.ui-input{flex:1;min-width:180px}.cd-item-edit__date{color:var(--color-text-secondary);flex-direction:column;gap:2px;font-size:12px;display:flex}.cd-item-edit__notes{resize:vertical;flex-basis:100%;font-family:inherit}.cd-item-edit__actions{gap:var(--space-two);display:flex}.ui-card>.cd-inline-form:last-child{margin-bottom:0}.cd-back{margin-bottom:var(--space-two);color:var(--color-text-secondary);font-size:14px;font-weight:600;display:inline-block}.cd-back:hover,.cd-back:focus-visible{color:var(--color-primary)}.cd-field{color:var(--color-text-secondary);flex-direction:column;gap:4px;font-size:12px;font-weight:600;display:flex}.cd-field select{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);font:inherit;border-radius:10px;padding:11px 14px;font-size:15px;font-weight:400}.cd-check{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;display:inline-flex}.cd-check input{width:18px;height:18px;accent-color:var(--color-primary)}.cd-form-error{color:var(--color-danger);flex-basis:100%;margin:0;font-size:13px}.cd-item__meta{flex-wrap:wrap;gap:4px;display:flex}.cd-item-edit__grid{gap:var(--space-two);flex-basis:100%;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));align-items:end;display:grid}.cd-item-edit__grid .cd-check{padding-bottom:12px}.cd-lesson-forms{gap:var(--space-two) var(--space-four);margin-top:var(--space-three);padding-top:var(--space-three);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.ui-empty+.cd-lesson-forms{border-top:none;margin-top:0}.cd-lesson-forms .cd-inline-form{flex:1;min-width:240px;margin-bottom:0}.cd-lesson-forms .ui-button{padding:8px 14px;font-size:14px}.cd-tabs{margin-bottom:var(--space-four);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.cd-tab{min-height:44px;color:var(--color-text-secondary);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1 0 auto;justify-content:center;align-items:center;gap:6px;margin-bottom:-1px;padding:0 16px;font-size:15px;font-weight:600;display:inline-flex}.cd-tab:hover{color:var(--color-text)}.cd-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.cd-tab--active{color:var(--color-text);border-bottom-color:var(--color-primary)}@media (width>=900px){.cd-tab{flex:none}}.cd-tab__count{text-align:center;font-variant-numeric:tabular-nums;background:var(--color-primary);min-width:20px;color:var(--color-white);border-radius:10px;padding:0 6px;font-size:12px;line-height:18px}.cd-lesson-forms{margin:0 0 var(--space-three);padding:0 0 var(--space-three);border-top:none;border-bottom:1px solid var(--color-border)}.cd-lesson-forms:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.cd-section-header__count{font-weight:500}.cd-segmented{margin-bottom:var(--space-three);background:var(--color-background-selected);border-radius:11px;gap:2px;padding:3px;display:flex}.cd-segmented__item{min-height:36px;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1;font-size:14px;font-weight:600}.cd-segmented__item--on{background:var(--color-background-element);color:var(--color-text);box-shadow:0 1px 2px #00000014}.cd-pair--show-lessons .cd-pair__topics,.cd-pair--show-topics .cd-pair__lessons{display:none}@media (width>=900px){.cd-segmented{display:none}.cd-pair{gap:var(--space-four);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.cd-pair .cd-pair__lessons,.cd-pair .cd-pair__topics{display:block}}.cd-add-form{gap:var(--space-two);padding:var(--space-three);margin-bottom:var(--space-two);background:var(--color-background);border-radius:12px;flex-wrap:wrap;display:flex}.cd-add-form>.ui-date,.cd-add-form>.ui-input{flex:1;min-width:200px}.cd-add-form__actions{gap:var(--space-two);flex-basis:100%;display:flex}.cd-add-form__actions .ui-button{padding:8px 16px;font-size:14px}.cd-progress{gap:var(--space-three);flex-direction:column;display:flex}.cd-progress__row{color:inherit;font:inherit;text-align:start;cursor:pointer;background:0 0;border:none;flex-direction:column;gap:6px;padding:0;display:flex}.cd-progress__text{justify-content:space-between;font-size:14px;display:flex}.cd-need{align-items:center;gap:var(--space-three);width:100%;color:var(--color-text);font:inherit;text-align:start;cursor:pointer;display:flex}.cd-need:hover{border-color:color-mix(in srgb, var(--color-primary) 40%, var(--color-border))}.cd-need__badge{background:color-mix(in srgb, var(--color-success) 16%, transparent);width:48px;height:48px;color:color-mix(in srgb, var(--color-success) 65%, var(--color-text));border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;font-weight:800;display:flex}.cd-need__badge--warn{background:color-mix(in srgb, var(--color-warning) 18%, transparent);color:color-mix(in srgb, var(--color-warning) 55%, var(--color-text))}.cd-need__body{flex-direction:column;flex:1;gap:2px;display:flex}.cd-need__title{font-size:15px;font-weight:600}.cd-need__chevron{color:var(--color-text-secondary)}.cd-term{gap:var(--space-two);flex-wrap:wrap;display:flex}.cd-term__chip{border:1px solid var(--color-border);background:var(--color-background-element);color:var(--color-text-secondary);font:inherit;cursor:pointer;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600}.cd-term__chip--on{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.cd-done{min-width:40px;color:var(--color-text-secondary);cursor:pointer;flex-direction:column;align-items:center;gap:2px;font-size:11px;font-weight:600;display:flex}.cd-done input{width:20px;height:20px;accent-color:var(--color-success);cursor:pointer;margin:0}.cd-done:has(input:checked){color:var(--color-success)}.cd-done-card h2{margin:0 0 var(--space-two);font-size:17px;font-weight:700}.cd-done-card__grade{align-items:baseline;gap:var(--space-two);margin:0 0 var(--space-three);color:var(--color-success);font-size:36px;font-weight:800;display:flex}.cd-done-card__grade span{color:var(--color-text-secondary);font-size:14px;font-weight:600}.cd-done-card__grade--failed{color:var(--color-danger)}.cd-done-card__links{gap:var(--space-two);flex-wrap:wrap;display:flex}.ce{gap:var(--space-four);flex-direction:column;display:flex}.ce__block{justify-content:space-between;align-items:flex-start;gap:var(--space-three);flex-wrap:wrap;display:flex}.ce__block--secondary{padding-top:var(--space-four);border-top:1px solid var(--color-border);align-items:center}.ce__text{flex:260px}.ce__text h3{margin:0 0 4px;font-size:16px}.ce__text p{color:var(--color-text-secondary);margin:0;font-size:14px;line-height:1.5}.ce__feed{gap:var(--space-three);flex-direction:column;flex-basis:100%;display:flex}.ce__url{gap:var(--space-two);display:flex}.ce__url .ui-input{min-width:0;color:var(--color-text-secondary);flex:1;font-size:13px}.ce__actions{gap:var(--space-two);flex-wrap:wrap;display:flex}.ce__actions .ui-button{text-align:center;display:inline-block}.ce__private{color:var(--color-text-secondary);margin:0;font-size:13px}.ce__link{font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.ce__link--danger{color:var(--color-danger)}.ce__link:disabled{opacity:.5;cursor:not-allowed}.ce__error{color:var(--color-danger);margin:0;font-size:13px}.profile-header{align-items:center;gap:var(--space-three);margin-bottom:var(--space-five);display:flex}.profile-avatar{background:var(--color-primary);width:56px;height:56px;color:var(--color-white);border-radius:50%;justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex}.profile-avatar--icon{background:color-mix(in srgb, var(--color-primary) 14%, transparent);font-size:30px}.profile-header h1{margin:0;font-size:22px}.profile-header p{color:var(--color-text-secondary);margin:0;font-size:14px}.profile-section{margin-bottom:var(--space-five)}.profile-section h2{color:var(--color-text-secondary);margin:0 0 var(--space-two);font-size:15px;font-weight:700}.swatch-grid{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:36px;height:36px}.swatch--selected{border-color:var(--color-text)}.theme-mode-row{gap:8px;display:flex}.feedback-form{gap:var(--space-two);flex-direction:column;display:flex}.feedback-categories{flex-wrap:wrap;gap:8px;display:flex}.feedback-chip{border:1px solid var(--color-border);background:var(--color-background);color:var(--color-text);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:14px;font-weight:600}.feedback-chip--selected{border-color:var(--color-primary);background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.feedback-message{resize:vertical;font-family:inherit}.feedback-status{margin:0;font-size:14px;font-weight:600}.feedback-status--ok{color:var(--color-success)}.feedback-status--error{color:var(--color-danger)}.feedback-form>.ui-button{align-self:flex-start}.feedback-fallback{align-items:flex-start;gap:var(--space-two);flex-direction:column;display:flex}.feedback-fallback .ui-button{text-decoration:none;display:inline-block}.profile-hint{margin:0 0 var(--space-two);color:var(--color-text-secondary);font-size:13px}.profile-switch{justify-content:space-between;align-items:center;gap:var(--space-three);padding:var(--space-two) 0;cursor:pointer;display:flex}.profile-switch+.profile-switch{border-top:1px solid var(--color-border)}.profile-switch__title{font-weight:600;display:block}.profile-switch__sub{color:var(--color-text-secondary);font-size:13px;display:block}.profile-switch input{appearance:none;background:var(--color-border);cursor:pointer;border-radius:13px;flex-shrink:0;width:44px;height:26px;margin:0;transition:background-color .15s;position:relative}.profile-switch input:after{content:"";top:3px;background:#fff;border-radius:50%;width:20px;height:20px;transition:inset-inline-start .15s;position:absolute;inset-inline-start:3px;box-shadow:0 1px 3px #00000040}.profile-switch input:checked{background:var(--color-primary)}.profile-switch input:checked:after{inset-inline-start:21px}.profile-switch input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){.profile-switch input,.profile-switch input:after{transition:none}}.profile-contact{margin:calc(-1 * var(--space-three)) 0 var(--space-five);color:var(--color-text-secondary);font-size:14px}.profile-contact a{color:var(--color-primary);font-weight:600}.profile-info-links{gap:var(--space-two) var(--space-four);margin:0 0 var(--space-five);flex-wrap:wrap;font-size:14px;display:flex}.profile-info-links a{color:var(--color-text-secondary)}.install-hint__steps{margin:0;line-height:1.6}.aev{border:1px solid var(--color-border);background:var(--color-background-element);width:min(520px,100vw - 32px);max-height:calc(100dvh - 48px);color:var(--color-text);border-radius:20px;padding:0;overflow:auto;box-shadow:0 20px 50px #0003}.aev::backdrop{background:#0006}.aev__form{gap:var(--space-three);padding:var(--space-four);flex-direction:column;display:flex}.aev__grab{display:none}.aev__head{justify-content:space-between;align-items:center;display:flex}.aev__head h2{margin:0;font-size:20px}.aev__close{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.aev__close:hover{background:var(--color-background-selected)}.aev__types{gap:var(--space-two);flex-wrap:wrap;display:flex}.aev__type{--type-color:var(--color-text-secondary);border:1px solid var(--color-border);background:var(--color-background-element);min-height:40px;color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.aev__type--assignment{--type-color:var(--color-warning)}.aev__type--exam{--type-color:var(--color-danger)}.aev__type--session{--type-color:var(--color-primary)}.aev__type-dot{background:var(--type-color);border-radius:999px;width:8px;height:8px}.aev__type--on{background:var(--color-text);border-color:var(--color-text);color:var(--color-background-element)}.aev__type:focus-visible,.aev__seg button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.aev__row{gap:var(--space-three);flex-wrap:wrap;display:flex}.aev__row--when{flex-wrap:nowrap}.aev__field{min-width:0;color:var(--color-text-secondary);flex-direction:column;gap:6px;font-size:13px;font-weight:600;display:flex}.aev__row>.aev__field{flex:200px}.aev__row--when .aev__field{flex:1 1 0}.aev__row--when .aev__field--date{flex:1.6 1 0}.aev__field>select{border:1px solid var(--color-border);background:var(--color-background);width:100%;min-height:46px;color:var(--color-text);border-radius:10px;padding:0 12px;font-size:15px}.aev__seg{background:var(--color-background-selected);border-radius:12px;gap:4px;padding:4px;display:flex}.aev__seg button{min-height:38px;color:var(--color-text-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;flex:1 1 0;font-size:14px;font-weight:600}.aev__seg .aev__seg--on{background:var(--color-background-element);color:var(--color-text);box-shadow:0 1px 2px #00000014}.aev__check{cursor:pointer;align-items:center;gap:10px;min-height:44px;font-size:15px;display:flex}.aev__check input{width:20px;height:20px;accent-color:var(--color-primary)}.aev__empty{color:var(--color-text-secondary);margin:0;font-size:14px}.aev__empty a{color:var(--color-primary);font-weight:600}.aev__error{color:var(--color-danger);margin:0;font-size:14px}.aev__actions{justify-content:flex-end;gap:var(--space-two);display:flex}@media (width<=640px){.aev{border-bottom:none;border-radius:22px 22px 0 0;width:100%;max-width:100%;max-height:92dvh;margin:auto 0 0}.aev__form{padding:var(--space-two) var(--space-three) calc(var(--space-three) + env(safe-area-inset-bottom))}.aev__grab{background:var(--color-border);border-radius:999px;align-self:center;width:40px;height:4px;display:block}.aev__row--when{flex-wrap:wrap}.aev__row--when .aev__field--date{flex:100%}.aev__actions .ui-button{flex:1 1 0}}.sch{gap:var(--space-three);flex-direction:column;display:flex}.sch-header{justify-content:space-between;align-items:center;gap:var(--space-three);flex-wrap:wrap;display:flex}.sch:not(.sch--wide) .sch-header{flex-wrap:nowrap;align-items:flex-start}.sch-header>div{min-width:0}.sch-header h1{margin:0;font-size:26px}.sch--wide .sch-header h1{font-size:32px}.sch-sub{color:var(--color-text-secondary);margin:2px 0 0;font-size:14px}.sch--wide .sch-sub{font-size:16px}.sch--wide .sch-sub__range{color:var(--color-text);font-weight:700}.sch-note{margin:calc(-1 * var(--space-two)) 0 0;color:var(--color-text-secondary);font-size:13px}.sch-tools{align-items:center;gap:var(--space-three);flex-wrap:wrap;display:flex}.sch-filters{flex-wrap:wrap;gap:6px;display:flex}.sch-filter{border:1px solid var(--color-border);background:var(--color-background-element);min-height:34px;color:var(--color-text-secondary);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:13px;font-weight:600}.sch-filter--on{background:var(--color-text);border-color:var(--color-text);color:var(--color-background-element)}.sch-nav{background:var(--color-background-selected);border-radius:12px;align-items:center;gap:2px;padding:3px;display:inline-flex}.sch-nav__btn,.sch-nav__today{color:var(--color-text);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:9px;font-weight:700}.sch-nav__btn{flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.sch-nav__today{padding:8px 14px;font-size:14px}.sch-nav__btn:hover,.sch-nav__today:hover:not(:disabled){background:var(--color-background-element)}.sch-nav__today:disabled{color:var(--color-text-secondary);cursor:default}.sch-add{align-items:center;gap:6px;display:inline-flex}.sch button:focus-visible,.sch a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.sch-sync-toggle{width:44px;height:44px;color:var(--color-text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;justify-content:center;align-items:center;display:inline-flex}.sch-sync-toggle--on{background:color-mix(in srgb, var(--color-primary) 14%, transparent);color:var(--color-primary)}.sch-strip{align-items:center;gap:2px;display:flex}.sch-strip .sch-nav__btn{width:32px;height:44px;color:var(--color-text-secondary)}.sch-strip__days{flex:1;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;min-width:0;margin:0;padding:0;list-style:none;display:grid}.sch-strip__day{border-radius:12px;flex-direction:column;align-items:center;gap:3px;padding:8px 0;display:flex}.sch-strip__letter{color:var(--color-text-secondary);font-size:12px;font-weight:600}.sch-strip__num{font-variant-numeric:tabular-nums;font-size:17px;font-weight:700;line-height:1.2}.sch-strip__dots{gap:3px;height:5px;display:flex}.sch-strip__dots span{border-radius:999px;width:5px;height:5px}.sch-strip__day--today{background:var(--color-text)}.sch-strip__day--today .sch-strip__letter{color:var(--color-background-selected)}.sch-strip__day--today .sch-strip__num{color:var(--color-background-element)}.sch-back-today{min-height:32px;margin-top:calc(-1 * var(--space-two));font:inherit;color:var(--color-primary);cursor:pointer;background:0 0;border:none;align-self:center;font-size:13px;font-weight:600}.sch-agenda{flex-direction:column;display:flex}.sch-agenda__label{margin:var(--space-three) 4px 6px;color:var(--color-text-secondary);font-size:13px;font-weight:700}.sch-agenda__day:first-child .sch-agenda__label{margin-top:0}.sch-agenda__label--today{color:var(--color-primary)}.sch-agenda__day--past{opacity:.6}.sch-agenda__free{margin:var(--space-three) 4px 0;color:var(--color-text-secondary);font-size:13px}.sch-agenda__free:first-child{margin-top:0}.sch-card{background:var(--color-background-element);border:1px solid var(--color-border);border-radius:16px;overflow:hidden}.sch-row{align-items:center;gap:var(--space-two);min-height:60px;padding:0 14px;display:flex}.sch-row+.sch-row{border-top:1px solid var(--color-border)}.sch-row__link{align-items:center;gap:var(--space-three);flex:1;min-width:0;padding:10px 0;display:flex}a.sch-row__link:hover .sch-row__title{color:var(--color-primary)}.sch-row__main{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.sch-row__title{overflow-wrap:anywhere;font-size:15px;font-weight:600}.sch-row__title--done{color:var(--color-text-secondary);text-decoration:line-through}.sch-row__meta{color:var(--color-text-secondary);font-size:13px}.sch-row__time{color:var(--color-text-secondary);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:13px;font-weight:600}.sch-check{width:20px;height:20px;accent-color:var(--course-color);cursor:pointer;flex-shrink:0;margin:0}.sch-check--bar{background:var(--course-color);cursor:default;border-radius:999px;width:4px;height:32px;margin-inline:8px}.sch-mandatory{color:var(--color-warning);vertical-align:middle;border:1px solid;border-radius:999px;margin-inline-start:6px;padding:0 6px;font-size:11px;font-weight:700}.sch-grid-wrap{background:var(--color-background-element);border:1px solid var(--color-border);border-radius:16px;overflow-x:auto}.sch-grid{grid-template-columns:repeat(7,minmax(0,1fr));min-width:840px;margin:0;padding:0;list-style:none;display:grid}.sch-col{gap:var(--space-two);flex-direction:column;min-height:300px;padding:12px 10px 16px;display:flex}.sch-col+.sch-col{border-inline-start:1px solid var(--color-border)}.sch-col--today{background:color-mix(in srgb, var(--color-primary) 7%, var(--color-background-element))}.sch-col--past .sch-col__head,.sch-col--past .sch-ev{opacity:.6}.sch-col__head{justify-content:space-between;align-items:flex-start;gap:6px;padding:0 4px 6px;display:flex}.sch-col__date{flex-direction:column;display:flex}.sch-col__name{color:var(--color-text-secondary);font-size:13px;font-weight:600}.sch-col__num{font-variant-numeric:tabular-nums;font-size:22px;font-weight:800;line-height:1.2}.sch-col--today .sch-col__num{color:var(--color-primary)}.sch-today-tag{background:var(--color-primary);color:var(--color-white);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.sch-col__free{text-align:center;color:var(--color-text-secondary);margin:auto 0;font-size:13px}.sch-ev{border:1px solid var(--color-border);background:var(--color-background-element);border-radius:12px;flex-direction:column;gap:4px;padding:10px;display:flex}.sch-ev__top{align-items:center;gap:6px;display:flex}.sch-ev__top .sch-check{width:16px;height:16px}.sch-ev__top .sch-check--bar{display:none}.sch-ev__time{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;flex:1;min-width:0;font-size:12px;font-weight:700}.sch-ev__title{overflow-wrap:anywhere;font-size:14px;font-weight:700;line-height:1.3}a.sch-ev__title:hover{color:var(--color-primary)}.sch-ev--done .sch-ev__title{color:var(--color-text-secondary);text-decoration:line-through}.sch-ev__course,.sch-ev__meta{color:var(--color-text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.sch-ev__dot{background:var(--course-color);border-radius:999px;flex-shrink:0;width:8px;height:8px}.sch-tag{background:var(--color-background-selected);color:var(--color-text-secondary);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}.sch-tag--exam{background:color-mix(in srgb, var(--color-danger) 12%, transparent);color:var(--color-danger)}.sch-tag--assignment{background:color-mix(in srgb, var(--color-warning) 18%, transparent);color:color-mix(in srgb, var(--color-warning) 70%, var(--color-text))}.sch-tag--session{background:color-mix(in srgb, var(--color-primary) 12%, transparent);color:var(--color-primary)}.sch-bottom{gap:var(--space-four);flex-wrap:wrap;align-items:flex-start;display:flex}.sch-later{flex:999 420px;min-width:0}.sch-export{flex:320px;min-width:0}.sch-section-head{margin:0 4px var(--space-two);justify-content:space-between;align-items:baseline;display:flex}.sch-section-head h2{margin:0;font-size:15px;font-weight:700}.sch-section-head a{color:var(--color-primary);font-size:13px}.sch-later__date{flex-direction:column;flex-shrink:0;align-items:center;width:40px;line-height:1.15;display:flex}.sch-later__date b{font-size:18px}.sch-later__date span{color:var(--color-text-secondary);font-size:12px}.sch-later .sch-row__link:before{content:"";background:var(--course-color);border-radius:999px;order:1;width:8px;height:8px}.sch-later .sch-row__main{order:2}.sch-hint{color:var(--color-text-secondary);margin:0;font-size:13px}.sch-fab{inset-inline-end:var(--space-three);bottom:calc(76px + env(safe-area-inset-bottom));z-index:25;background:var(--color-primary);width:56px;height:56px;color:var(--color-white);box-shadow:0 6px 16px color-mix(in srgb, var(--color-primary) 40%, transparent);cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;display:flex;position:fixed}.sch-toast{width:max-content;max-width:calc(100vw - 32px);inset-inline:0;bottom:calc(148px + env(safe-area-inset-bottom));z-index:30;background:var(--color-text);color:var(--color-background-element);border-radius:12px;margin:0 auto;padding:10px 16px;font-size:14px;font-weight:600;position:fixed}.sch--wide .sch-toast{bottom:var(--space-five)}@media (width>=641px){.sch-fab{bottom:var(--space-four)}.sch-toast{bottom:100px}}.info-page{max-width:720px}.info-page h1{margin:0 0 var(--space-four);font-size:26px;font-weight:800}.ui-card.info-page__card{padding:var(--space-four) var(--space-five);line-height:1.7}.info-page__card h2{margin:var(--space-five) 0 var(--space-two);font-size:17px;font-weight:700}.info-page__card>h2:first-child{margin-top:0}.info-page__card p{margin:0 0 var(--space-two)}.info-page__card ul,.info-page__card ol{flex-direction:column;gap:6px;margin:0;padding-inline-start:1.3em;display:flex}.info-page__card a{color:var(--color-primary);font-weight:600}.info-updated{color:var(--color-text-secondary);font-size:13px}.info-steps li::marker{color:var(--color-primary);font-weight:700}.info-faq details{border-bottom:1px solid var(--color-border)}.info-faq details:last-child{border-bottom:none}.info-faq summary{justify-content:space-between;align-items:center;gap:var(--space-two);cursor:pointer;min-height:52px;font-weight:600;list-style:none;display:flex}.info-faq summary::-webkit-details-marker{display:none}.info-faq summary:after{content:"+";color:var(--color-text-secondary);flex-shrink:0;font-size:20px;font-weight:400}.info-faq details[open] summary:after{content:"−"}.info-faq details p{margin:0 0 var(--space-three);color:var(--color-text-secondary)}.info-page__more{gap:var(--space-two) var(--space-four);margin-top:var(--space-four);flex-wrap:wrap;font-size:14px;display:flex}.info-page__more a{color:var(--color-text-secondary)}.info-layout{background:var(--color-background);min-height:100vh}.info-layout__top{max-width:720px;padding:var(--space-four);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.info-layout__login{color:var(--color-primary);font-weight:600}.info-layout__main{max-width:720px;padding:0 var(--space-four) var(--space-six,48px);margin:0 auto}@media (width<=640px){.ui-card.info-page__card{padding:var(--space-three) var(--space-four)}}:root{--color-primary:#3c87f7;--color-primary-soft:#8fb8fb;--color-danger:#e5484d;--color-success:#2fb344;--color-warning:#f5a524;--color-white:#fff;--color-text:#14161a;--color-background:#f6f7f9;--color-background-element:#fff;--color-background-selected:#edeff3;--color-text-secondary:#666b76;--color-border:#e3e5ea;--space-half:2px;--space-one:4px;--space-two:8px;--space-three:16px;--space-four:24px;--space-five:32px;--space-six:64px;--max-content-width:800px;--max-content-width-wide:1120px;--font-display:"Heebo", system-ui, -apple-system, sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-text:#f4f5f7;--color-background:#0b0c0e;--color-background-element:#1c1e23;--color-background-selected:#282b32;--color-text-secondary:#9aa0ac;--color-border:#302f3a}}:root[data-theme=dark]{--color-text:#f4f5f7;--color-background:#0b0c0e;--color-background-element:#1c1e23;--color-background-selected:#282b32;--color-text-secondary:#9aa0ac;--color-border:#302f3a}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-gutter:stable}body{background:var(--color-background);color:var(--color-text);font-family:var(--font-display);-webkit-font-smoothing:antialiased;direction:rtl}#root{min-height:100vh}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--color-primary-soft);color:var(--color-white)}.app-loading{min-height:100vh;color:var(--color-text-secondary);justify-content:center;align-items:center;display:flex}.app-boot{max-width:var(--max-content-width);padding:var(--space-six) var(--space-four);margin:0 auto}
