@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.block{display:block}.grid{display:grid}.hidden{display:none}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-\[var\(--border\)\]{border-color:var(--border)}.bg-\[var\(--surface\)\]{background-color:var(--surface)}.px-4{padding-inline:calc(var(--spacing) * 4)}.py-3{padding-block:calc(var(--spacing) * 3)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-\[var\(--foreground-muted\)\]{color:var(--foreground-muted)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--background:#f6f8fc;--surface:#fff;--surface-muted:#f1f4f9;--foreground:#172033;--foreground-muted:#647086;--border:#dfe5ef;--border-strong:#bcc6d6;--primary:#4f46e5;--primary-hover:#4338ca;--primary-foreground:#fff;--accent:#0f8f8a;--accent-muted:#e6f7f5;--success:#16805a;--success-muted:#e8f7f0;--warning:#a25b08;--warning-muted:#fff4dc;--error:#c33d49;--error-hover:#a92f3b;--error-muted:#fff0f1;--info:#2563b8;--info-muted:#eaf2ff;--neutral:#64748b;--focus:#6366f1;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-full:9999px;--shadow-sm:0 1px 2px #1720330f;--shadow-md:0 8px 24px #17203314;--shadow-lg:0 20px 48px #1720331f;--font-sans:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Noto Sans JP", sans-serif}html[data-theme=dark]{--background:#0d1422;--surface:#151f30;--surface-muted:#1d293c;--foreground:#edf2fb;--foreground-muted:#a8b4c8;--border:#2d3a4f;--border-strong:#46556d;--primary:#8b83ff;--primary-hover:#a29cff;--primary-foreground:#0c1020;--accent:#49c6bd;--accent-muted:#123c3b;--success:#58d4a3;--success-muted:#163b30;--warning:#f1b65d;--warning-muted:#413019;--error:#f27f8d;--error-hover:#ff9aa5;--error-muted:#441f28;--info:#79adf7;--info-muted:#1b3355;--neutral:#9dabc0;--focus:#aaa5ff;--shadow-sm:0 1px 2px #00000047;--shadow-md:0 8px 24px #0000004d;--shadow-lg:0 20px 48px #00000061}.notification-center{gap:var(--space-5);width:min(100%,1120px);min-width:0;margin:0 auto;display:grid}.notification-center__heading{justify-content:space-between;align-items:flex-end;gap:var(--space-6);min-width:0;display:flex}.notification-center__heading>div:first-child{min-width:0}.notification-center__heading p:not(.showcase-eyebrow){margin:var(--space-2) 0 0;color:var(--foreground-muted)}.notification-center__summary{align-items:center;gap:var(--space-3);flex:none;display:flex}.notification-center__summary>span{color:var(--foreground-muted);white-space:nowrap;font-size:14px;font-weight:680}.notification-filters{width:max-content;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-1);background:var(--surface);display:flex}.notification-filter{min-width:86px;min-height:38px;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);color:var(--foreground-muted);font:inherit;cursor:pointer;background:0 0;border:0;font-size:14px;font-weight:680}.notification-filter:hover{color:var(--foreground);background:var(--surface-muted)}.notification-filter--active{color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.notification-filter--active{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.notification-center__list{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.notification-center-item{border-bottom:1px solid var(--border);background:var(--surface);min-width:0}.notification-center-item:last-child{border-bottom:0}.notification-center-item--unread{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.notification-center-item--unread{background:color-mix(in srgb, var(--primary) 4%, var(--surface))}}.notification-center-item__button{width:100%;min-width:0;padding:var(--space-5);align-items:start;gap:var(--space-4);color:inherit;font:inherit;text-align:left;background:0 0;border:0;grid-template-columns:42px minmax(0,1fr);display:grid}button.notification-center-item__button{cursor:pointer}button.notification-center-item__button:hover{background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){button.notification-center-item__button:hover{background:color-mix(in srgb, var(--surface-muted) 60%, transparent)}}button.notification-center-item__button:disabled{cursor:wait;opacity:.7}.notification-center-item__icon{border-radius:var(--radius-md);width:42px;height:42px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.notification-center-item__icon{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.notification-center-item__copy{gap:var(--space-2);min-width:0;display:grid}.notification-center-item__title{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.notification-center-item__title strong{overflow-wrap:anywhere}.notification-center-item__dot{border-radius:var(--radius-full);background:var(--primary);flex:none;width:8px;height:8px}.notification-center-item__state{padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--foreground-muted);background:var(--surface-muted);font-size:11px;font-weight:700}.notification-center-item--unread .notification-center-item__state{color:var(--info);background:var(--info-muted)}.notification-center-item__message{color:var(--foreground-muted);overflow-wrap:anywhere;font-size:14px;line-height:1.6}.notification-center-item time{color:var(--foreground-muted);font-size:12px}.notification-center-skeleton{gap:1px;min-width:0;display:grid}.notification-center-skeleton>div{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:112px;animation:1.3s ease-in-out infinite dashboard-shimmer}.portal-nav__badge{border-radius:var(--radius-full);min-width:22px;height:22px;color:var(--primary-foreground);background:var(--primary);place-items:center;margin-left:auto;padding-inline:6px;font-size:11px;font-weight:760;line-height:1;display:inline-grid}@media (max-width:767px){.notification-center{gap:var(--space-4)}.notification-center__heading{align-items:stretch;gap:var(--space-4);flex-direction:column}.notification-center__summary{justify-content:space-between}.notification-center__summary .ui-button{min-width:0}.notification-filters{width:100%}.notification-filter{flex:1;min-width:0}.notification-center-item__button{padding:var(--space-4);gap:var(--space-3);grid-template-columns:36px minmax(0,1fr)}.notification-center-item__icon{width:36px;height:36px}}.grades-page,.grades-skeleton{gap:var(--space-6);min-width:0;display:grid}.grades-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-6);min-width:0;display:flex}.grades-heading>div:first-child{min-width:0}.grades-heading p:not(.showcase-eyebrow){margin:var(--space-2) 0 0;color:var(--foreground-muted)}.grades-heading>span{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--foreground-muted);background:var(--surface);white-space:nowrap;font-size:12px}.gradebook-heading-actions{align-items:end;gap:var(--space-3);grid-template-columns:minmax(220px,1fr) auto;width:min(100%,580px);display:grid}.student-grade-summary{gap:var(--space-4);grid-template-columns:minmax(280px,1.2fr) minmax(180px,.8fr) minmax(220px,1fr);min-width:0;display:grid}.student-grade-summary article,.gradebook-summary article{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);align-content:center;display:grid}.student-grade-summary article:not(.student-grade-summary__primary){align-items:center;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr)}.student-grade-summary article svg{color:var(--primary)}.student-grade-summary article span,.gradebook-summary article span{color:var(--foreground-muted);font-size:13px}.student-grade-summary article:not(.student-grade-summary__primary) strong{grid-column:2;font-size:24px}.student-grade-summary__primary{align-items:center;gap:var(--space-4);grid-template-columns:auto minmax(0,1fr)}.student-grade-summary__primary>svg{width:46px;height:46px;padding:var(--space-3);border-radius:var(--radius-md);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.student-grade-summary__primary>svg{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.student-grade-summary__primary>div{display:grid}.student-grade-summary__primary strong{font-size:32px;line-height:1.1}.student-grade-summary__primary span{color:var(--foreground);font-weight:680}.student-grade-summary__primary small{color:var(--foreground-muted);font-size:12px}.student-course-grades{gap:var(--space-4);min-width:0;display:grid}.grades-section-title{justify-content:space-between;align-items:center;gap:var(--space-4);min-width:0;display:flex}.grades-section-title>div{min-width:0}.grades-section-title h3{margin:0;font-size:18px}.grades-section-title span{color:var(--foreground-muted);font-size:13px}.student-course-grade{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.student-course-grade>header{min-width:0;padding:var(--space-5);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-5);background:var(--surface-muted);display:flex}@supports (color:color-mix(in lab, red, red)){.student-course-grade>header{background:color-mix(in srgb, var(--surface-muted) 45%, var(--surface))}}.student-course-grade>header>div{min-width:0;display:grid}.student-course-grade h4{overflow-wrap:anywhere;margin:0;font-size:18px}.student-course-grade>header span{color:var(--foreground-muted);font-size:12px}.student-course-grade>header>div:last-child{justify-items:end}.student-course-grade>header>div:last-child strong{font-size:22px}.student-grade-items{min-width:0;display:grid}.student-grade-row{min-width:0;padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);align-items:center;gap:var(--space-5);grid-template-columns:minmax(200px,1.2fr) minmax(160px,.7fr) minmax(220px,1fr);display:grid}.student-grade-row:first-child{border-top:0}.student-grade-row__title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.student-grade-row__title strong{overflow-wrap:anywhere;min-width:0}.student-grade-row__score{display:grid}.student-grade-row__score span,.student-grade-row__meta>span,.student-grade-row__ungraded>span{color:var(--foreground-muted);font-size:12px}.student-grade-row__meta{gap:var(--space-1);min-width:0;display:grid}.student-grade-row__meta p{color:var(--foreground-muted);overflow-wrap:anywhere;white-space:pre-wrap;margin:0;font-size:13px}.student-grade-row__ungraded{justify-content:space-between;align-items:center;gap:var(--space-3);grid-column:2/-1;display:flex}.student-course-grade__empty{padding:var(--space-5);color:var(--foreground-muted);margin:0}.gradebook-summary{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.gradebook-summary article{min-height:92px}.gradebook-summary strong{font-size:26px}.gradebook-layout{align-items:start;gap:var(--space-5);grid-template-columns:minmax(300px,.8fr) minmax(440px,1.4fr);min-width:0;display:grid}.gradebook-items,.gradebook-students{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-4);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.gradebook-item-list,.gradebook-student-list{gap:var(--space-3);min-width:0;display:grid}.gradebook-item{min-width:0;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-2);background:var(--surface);display:grid}.gradebook-item--selected{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.gradebook-item--selected{border-color:color-mix(in srgb, var(--primary) 55%, var(--border))}}.gradebook-item--selected{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.gradebook-item--selected{background:color-mix(in srgb, var(--primary) 4%, var(--surface))}}.gradebook-item>button{justify-content:space-between;align-items:flex-start;gap:var(--space-3);text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:flex}.gradebook-item>button>span:first-child{min-width:0;display:grid}.gradebook-item>button strong{overflow-wrap:anywhere}.gradebook-item>button small,.gradebook-item>small{color:var(--foreground-muted);font-size:12px}.gradebook-item__actions{gap:var(--space-2);display:flex}.gradebook-student-row{min-width:0;padding:var(--space-4) 0;border-top:1px solid var(--border);align-items:center;gap:var(--space-4);grid-template-columns:minmax(160px,1fr) minmax(150px,.8fr) auto;display:grid}.gradebook-student-row:first-child{border-top:0}.gradebook-student-row>div:first-child{min-width:0;display:grid}.gradebook-student-row>div:first-child strong{overflow-wrap:anywhere}.gradebook-student-row>div:first-child span{color:var(--foreground-muted);font-size:12px}.gradebook-student-row__state{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.grade-form-fields{gap:var(--space-4);min-width:0;display:grid}.grade-form-context{padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);display:grid}.grade-form-context span,.grade-form-context small{color:var(--foreground-muted);font-size:12px}.grade-form-note{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--info);background:var(--info-muted);margin:0;font-size:13px}.grade-form-error{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);font-size:13px}.submission-grading .ui-card__content{padding-top:0}.submission-grading__configured,.submission-grading__empty{gap:var(--space-4);min-width:0;display:grid}.submission-grading__configured>div:first-child{align-items:center;gap:var(--space-3);display:flex}.submission-grading__configured>div:first-child svg{color:var(--primary)}.submission-grading__configured>div:first-child span{min-width:0;display:grid}.submission-grading__configured>div:first-child small{color:var(--foreground-muted)}.submission-grading__configured>div:nth-child(2){align-items:center;gap:var(--space-3);display:flex}.submission-grading__configured>div:nth-child(2) strong{font-size:24px}.submission-grading__configured>p,.submission-grading__empty p{color:var(--foreground-muted);white-space:pre-wrap;margin:0}.submission-grading__empty{grid-template-columns:minmax(0,1fr) auto;align-items:center}.submission-grading__empty>div{min-width:0}.submission-grading-skeleton{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:180px;animation:1.3s ease-in-out infinite dashboard-shimmer}.grades-skeleton>div{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;animation:1.3s ease-in-out infinite dashboard-shimmer}.grades-skeleton>div:first-child{width:min(100%,520px);height:92px}.grades-skeleton>div:nth-child(2){height:120px}.grades-skeleton>div:nth-child(3){height:360px}@media (max-width:1199px){.gradebook-layout{grid-template-columns:1fr}}@media (max-width:1023px){.student-grade-summary{grid-template-columns:1fr 1fr}.student-grade-summary__primary{grid-column:1/-1}}@media (max-width:767px){.grades-page,.grades-skeleton{gap:var(--space-5)}.grades-heading{align-items:flex-start;gap:var(--space-4);flex-direction:column}.grades-heading>span{white-space:normal}.gradebook-heading-actions{grid-template-columns:1fr;width:100%}.gradebook-heading-actions .ui-button{width:100%}.student-grade-summary{gap:var(--space-3);grid-template-columns:1fr 1fr}.student-grade-summary article{padding:var(--space-4)}.student-grade-summary article:last-child{grid-column:1/-1}.student-course-grade>header{padding:var(--space-4);align-items:flex-start}.student-course-grade>header>div:last-child{justify-items:end}.student-grade-row{padding:var(--space-4);gap:var(--space-3);grid-template-columns:1fr}.student-grade-row__title{justify-content:space-between}.student-grade-row__ungraded{grid-column:1}.gradebook-summary{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr))}.gradebook-summary article{min-height:76px;padding:var(--space-3)}.gradebook-summary strong{font-size:22px}.gradebook-items,.gradebook-students{padding:var(--space-4)}.gradebook-item__actions{grid-template-columns:1fr 1fr;display:grid}.gradebook-student-row{gap:var(--space-3);grid-template-columns:1fr}.gradebook-student-row>.ui-button{width:100%}.submission-grading__empty{grid-template-columns:1fr}.submission-grading__empty .ui-button,.submission-grading__configured>.ui-button{width:100%}}.attendance-page,.attendance-skeleton{gap:var(--space-6);min-width:0;display:grid}.attendance-heading,.attendance-detail-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-6);min-width:0;display:flex}.attendance-heading>div:first-child,.attendance-detail-heading>div:first-child{min-width:0}.attendance-heading p:not(.showcase-eyebrow),.attendance-detail-heading p:not(.showcase-eyebrow){margin:var(--space-2) 0 0;color:var(--foreground-muted)}.attendance-timezone{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--foreground-muted);background:var(--surface);white-space:nowrap;flex:none;font-size:12px}.attendance-heading__actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.student-attendance-summary{gap:var(--space-4);grid-template-columns:minmax(240px,.8fr) minmax(0,2.2fr);min-width:0;display:grid}.attendance-rate-card,.attendance-compact-stats article,.attendance-session-summary article{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm)}.attendance-rate-card{padding:var(--space-5);align-items:center;gap:var(--space-4);display:flex}.attendance-rate-card__icon{border-radius:var(--radius-md);width:44px;height:44px;color:var(--primary);background:var(--primary);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.attendance-rate-card__icon{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.attendance-rate-card>div{min-width:0;display:grid}.attendance-rate-card strong{font-size:32px;line-height:1.1}.attendance-rate-card span{color:var(--foreground);font-size:14px;font-weight:650}.attendance-rate-card small{margin-top:var(--space-1);color:var(--foreground-muted);font-size:12px}.attendance-compact-stats{gap:var(--space-3);grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;display:grid}.attendance-compact-stats article{min-height:108px;padding:var(--space-4);align-content:center;align-items:center;gap:var(--space-2);grid-template-columns:auto minmax(0,1fr);display:grid}.attendance-compact-stats svg{color:var(--primary)}.attendance-compact-stats span{min-width:0;color:var(--foreground-muted);font-size:13px}.attendance-compact-stats strong{grid-column:2;font-size:24px;line-height:1}.attendance-history,.attendance-sessions,.attendance-roster{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-5);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.attendance-section-heading{justify-content:space-between;align-items:center;gap:var(--space-5);min-width:0;display:flex}.attendance-section-heading h3{margin:0;font-size:18px}.attendance-section-heading p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:13px}.attendance-section-heading>span{color:var(--foreground-muted);white-space:nowrap;font-size:13px}.attendance-section-heading--filter .ui-field{width:min(100%,300px)}.attendance-history__table .ui-table{min-width:680px}.attendance-history__table .ui-table__cell{vertical-align:middle}.attendance-history__table .ui-table__cell strong,.attendance-session-table .ui-table__cell strong{overflow-wrap:anywhere;display:block}.attendance-history__table .ui-table__cell small,.attendance-session-table .ui-table__cell small{color:var(--foreground-muted);margin-top:2px;font-size:12px;display:block}.attendance-history__mobile,.attendance-session-mobile-list{display:none}.attendance-session-table .ui-table{min-width:1060px}.attendance-session-table .ui-table__cell{vertical-align:middle}.attendance-row-link{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--primary);place-items:center;text-decoration:none;display:grid}.attendance-row-link:hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.attendance-row-link:hover{background:color-mix(in srgb, var(--primary) 8%, var(--surface))}}.attendance-session-form{gap:var(--space-5);display:grid}.attendance-session-form__times{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.attendance-session-form__note{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--foreground-muted);background:var(--surface-muted);margin:0;font-size:13px}.attendance-form-error{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);font-size:13px}.attendance-session-summary{gap:var(--space-3);grid-template-columns:repeat(7,minmax(0,1fr));min-width:0;display:grid}.attendance-session-summary article{min-height:82px;padding:var(--space-4);align-content:center;gap:var(--space-1);display:grid}.attendance-session-summary span{color:var(--foreground-muted);font-size:12px}.attendance-session-summary strong{font-size:22px;line-height:1.1}.attendance-roster__heading .ui-button{flex:none}.attendance-roster-list{min-width:0;display:grid}.attendance-roster-row{min-width:0;padding:var(--space-4) 0;border-top:1px solid var(--border);align-items:center;gap:var(--space-5);grid-template-columns:minmax(180px,1.4fr) minmax(140px,.8fr) minmax(180px,.8fr);display:grid}.attendance-roster-row:first-child{border-top:0}.attendance-roster-row__student{min-width:0;display:grid}.attendance-roster-row__student strong{overflow-wrap:anywhere}.attendance-roster-row__student span,.attendance-roster-row__student small{color:var(--foreground-muted);font-size:12px}.attendance-roster-row__student small{width:fit-content;margin-top:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--info);background:var(--info-muted)}.attendance-roster-row__current{justify-items:start;gap:var(--space-2);min-width:0;display:grid}.attendance-roster-row__current>span{color:var(--foreground-muted);font-size:12px}.attendance-save-bar{z-index:3;bottom:var(--space-4);min-width:0;padding:var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-md);align-items:center;gap:var(--space-3) var(--space-5);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;display:grid;position:sticky}@supports (color:color-mix(in lab, red, red)){.attendance-save-bar{background:color-mix(in srgb, var(--surface) 94%, transparent)}}.attendance-save-bar{box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.attendance-save-bar>div{min-width:0;display:grid}.attendance-save-bar>div strong{font-size:14px}.attendance-save-bar>div span{color:var(--foreground-muted);font-size:12px}.attendance-save-bar>p{color:var(--error);grid-area:2/1/auto/-1;margin:0;font-size:13px}.attendance-save-bar>.ui-button{grid-area:1/2}.attendance-skeleton__heading,.attendance-skeleton__summary,.attendance-skeleton__filter,.attendance-skeleton__list{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;animation:1.3s ease-in-out infinite dashboard-shimmer}.attendance-skeleton__heading{width:min(100%,520px);height:92px}.attendance-skeleton__summary{height:120px}.attendance-skeleton__filter{justify-self:end;width:min(100%,300px);height:64px}.attendance-skeleton__list{height:340px}@media (max-width:1023px){.student-attendance-summary{grid-template-columns:1fr}.attendance-session-summary{grid-template-columns:repeat(4,minmax(0,1fr))}.attendance-roster-row{gap:var(--space-4);grid-template-columns:minmax(160px,1fr) minmax(130px,.7fr) minmax(180px,.8fr)}}@media (max-width:767px){.attendance-page,.attendance-skeleton{gap:var(--space-5)}.attendance-heading,.attendance-detail-heading{align-items:flex-start;gap:var(--space-4);flex-direction:column}.attendance-heading__actions{flex-direction:column;align-items:stretch;width:100%}.attendance-heading__actions .attendance-timezone{width:fit-content}.attendance-heading__actions .ui-button{width:100%}.attendance-timezone{white-space:normal}.attendance-compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-compact-stats article{min-height:82px}.attendance-history,.attendance-sessions,.attendance-roster{padding:var(--space-4);gap:var(--space-4)}.attendance-section-heading{align-items:flex-start;gap:var(--space-3);flex-direction:column}.attendance-section-heading--filter .ui-field{width:100%}.attendance-history__table,.attendance-session-table{display:none}.attendance-history__mobile,.attendance-session-mobile-list{gap:var(--space-3);min-width:0;display:grid}.attendance-history__mobile article,.attendance-session-mobile-list article{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface);display:grid}.attendance-history__mobile time,.attendance-session-mobile-list time{color:var(--foreground-muted);overflow-wrap:anywhere;font-size:12px}.attendance-history__mobile article>div{min-width:0;display:grid}.attendance-history__mobile article>div strong{overflow-wrap:anywhere}.attendance-history__mobile article>div span{color:var(--foreground-muted);font-size:12px}.attendance-history__mobile .ui-badge{width:fit-content}.attendance-session-mobile-list>a{min-width:0;color:inherit;text-decoration:none}.attendance-session-mobile-list__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.attendance-session-mobile-list__heading>div{min-width:0;display:grid}.attendance-session-mobile-list__heading strong{overflow-wrap:anywhere}.attendance-session-mobile-list__heading span{color:var(--foreground-muted);font-size:12px}.attendance-session-mobile-list dl{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.attendance-session-mobile-list dl>div{gap:2px;min-width:0;display:grid}.attendance-session-mobile-list dt{color:var(--foreground-muted);text-transform:uppercase;font-size:10px}.attendance-session-mobile-list dd{margin:0;font-size:14px;font-weight:680}.attendance-session-form__times{grid-template-columns:1fr}.attendance-session-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.attendance-roster__heading .ui-button{width:100%}.attendance-roster-row{padding:var(--space-4) 0;gap:var(--space-3);grid-template-columns:1fr}.attendance-roster-row__current{grid-template-columns:auto auto;justify-content:start;align-items:center}.attendance-save-bar{bottom:var(--space-3);grid-template-columns:1fr}.attendance-save-bar>.ui-button{grid-area:2/1;width:100%}.attendance-save-bar>p{grid-area:3/1}}*{box-sizing:border-box}html{background:var(--background)}body{color:var(--foreground);background:var(--background);font-family:var(--font-sans);margin:0;font-size:16px;line-height:1.6}button,input,textarea,select{font:inherit}button{color:inherit}::selection{color:var(--primary-foreground);background:var(--primary)}:focus-visible{outline:3px solid var(--focus)}@supports (color:color-mix(in lab, red, red)){:focus-visible{outline:3px solid color-mix(in srgb, var(--focus) 36%, transparent)}}:focus-visible{outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.type-display{letter-spacing:-.04em;margin:0;font-size:clamp(32px,5vw,48px);font-weight:720;line-height:1.08}.type-h1{letter-spacing:-.03em;margin:0;font-size:clamp(28px,4vw,36px);font-weight:700;line-height:1.2}.type-h2{letter-spacing:-.02em;margin:0;font-size:24px;font-weight:680;line-height:1.3}.type-h3{margin:0;font-size:20px;font-weight:650;line-height:1.4}.type-h4{margin:0;font-size:16px;font-weight:650;line-height:1.5}.type-body-lg{margin:0;font-size:18px;line-height:1.7}.type-body{margin:0;font-size:16px;line-height:1.6}.type-small{margin:0;font-size:14px;line-height:1.5}.ui-button{border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:var(--space-2);cursor:pointer;border:1px solid #0000;min-width:0;font-weight:620;line-height:1;transition:background-color .12s,border-color .12s,color .12s;display:inline-flex}.ui-button>span{justify-content:center;align-items:center;gap:var(--space-2);display:inline-flex}.ui-button--sm{min-height:34px;padding:var(--space-2) var(--space-3);font-size:14px}.ui-button--md{min-height:42px;padding:var(--space-3) var(--space-4);font-size:14px}.ui-button--lg{min-height:48px;padding:var(--space-3) var(--space-5);font-size:16px}.ui-button--primary{color:var(--primary-foreground);background:var(--primary)}.ui-button--primary:hover:not(:disabled){background:var(--primary-hover)}.ui-button--secondary{color:var(--foreground);background:var(--surface-muted)}.ui-button--secondary:hover:not(:disabled){background:var(--border)}.ui-button--outline{color:var(--foreground);background:var(--surface);border-color:var(--border-strong)}.ui-button--outline:hover:not(:disabled){color:var(--primary);border-color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ui-button--outline:hover:not(:disabled){background:color-mix(in srgb, var(--primary) 4%, var(--surface))}}.ui-button--ghost{color:var(--foreground-muted);background:0 0}.ui-button--ghost:hover:not(:disabled){color:var(--foreground);background:var(--surface-muted)}.ui-button--danger{color:#fff;background:var(--error)}.ui-button--danger:hover:not(:disabled){background:var(--error-hover)}.ui-button:disabled{opacity:.52;cursor:not-allowed}.ui-spinner{border-radius:var(--radius-full);border:2px solid;border-right-color:#0000;flex:none;animation:.7s linear infinite ui-spin;display:inline-block}.ui-spinner--sm{width:14px;height:14px}.ui-spinner--md{width:20px;height:20px}.ui-spinner--lg{width:28px;height:28px}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-loading-state,.ui-state{min-height:220px;padding:var(--space-8);border:1px dashed var(--border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:var(--space-3);text-align:center;background:var(--surface);flex-direction:column;display:flex}.ui-loading-state{color:var(--foreground-muted)}.ui-state h3{margin:0;font-size:16px;font-weight:650}.ui-state p{max-width:32ch;color:var(--foreground-muted);margin:0;font-size:14px}.ui-state__icon{border-radius:var(--radius-full);width:44px;height:44px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.ui-state__icon{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.ui-state--error .ui-state__icon{color:var(--error);background:var(--error-muted)}.ui-state__action{margin-top:var(--space-1)}.ui-card{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.ui-card__header{padding:var(--space-5) var(--space-6) 0}.ui-card__header h3{margin:0;font-size:18px;font-weight:650;line-height:1.4}.ui-card__header p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:14px}.ui-card__content{padding:var(--space-5) var(--space-6)}.ui-card__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);background:var(--surface-muted)}.ui-field{align-content:start;gap:var(--space-2);min-width:0;display:grid}.ui-field__label{color:var(--foreground);font-size:14px;font-weight:620}.ui-control{width:100%;min-height:42px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--foreground);background:var(--surface);transition:border-color .12s,box-shadow .12s}.ui-control::placeholder{color:var(--foreground-muted)}@supports (color:color-mix(in lab, red, red)){.ui-control::placeholder{color:color-mix(in srgb, var(--foreground-muted) 72%, transparent)}}.ui-control:hover:not(:disabled){border-color:var(--border-strong)}@supports (color:color-mix(in lab, red, red)){.ui-control:hover:not(:disabled){border-color:color-mix(in srgb, var(--border-strong) 70%, var(--foreground))}}.ui-control:focus{border-color:var(--primary);outline:3px solid var(--focus)}@supports (color:color-mix(in lab, red, red)){.ui-control:focus{outline:3px solid color-mix(in srgb, var(--focus) 18%, transparent)}}.ui-control:disabled{color:var(--foreground-muted);background:var(--surface-muted);cursor:not-allowed}.ui-control--error{border-color:var(--error)}.ui-textarea{resize:vertical;min-height:112px}.ui-select{appearance:auto}.ui-field__message{min-height:20px;color:var(--foreground-muted);margin:0;font-size:12px;line-height:1.5}.ui-field__error{color:var(--error)}.ui-badge{min-height:24px;padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);white-space:nowrap;color:var(--foreground);background:var(--surface-muted);align-items:center;font-size:12px;font-weight:650;line-height:1.2;display:inline-flex}.ui-badge--success{color:var(--success);background:var(--success-muted)}.ui-badge--warning{color:var(--warning);background:var(--warning-muted)}.ui-badge--error{color:var(--error);background:var(--error-muted)}.ui-badge--info{color:var(--info);background:var(--info-muted)}.ui-avatar{border-radius:var(--radius-full);color:var(--primary);background:var(--primary);flex:none;place-items:center;display:inline-grid;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.ui-avatar{background:color-mix(in srgb, var(--primary) 12%, var(--surface))}}.ui-avatar{font-weight:680}.ui-avatar img{object-fit:cover;width:100%;height:100%}.ui-avatar--sm{width:32px;height:32px;font-size:11px}.ui-avatar--md{width:40px;height:40px;font-size:13px}.ui-avatar--lg{width:52px;height:52px;font-size:16px}.ui-table-container{contain:inline-size;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);width:100%;min-width:0;max-width:100%;position:relative;overflow-x:auto}.ui-table{border-collapse:collapse;width:100%;min-width:640px;font-size:14px}.ui-table__row:not(:last-child){border-bottom:1px solid var(--border)}.ui-table__head{padding:var(--space-3) var(--space-4);color:var(--foreground-muted);background:var(--surface-muted);text-align:left;letter-spacing:.04em;text-transform:uppercase;font-size:12px;font-weight:680}.ui-table__cell{padding:var(--space-3) var(--space-4);text-align:left}.ui-table tbody .ui-table__row:hover{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ui-table tbody .ui-table__row:hover{background:color-mix(in srgb, var(--primary) 2%, var(--surface))}}.ui-dropdown{display:inline-flex;position:relative}.ui-dropdown__menu{z-index:30;top:calc(100% + var(--space-2));min-width:176px;padding:var(--space-1);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-md);position:absolute}.ui-dropdown__menu--start{left:0}.ui-dropdown__menu--end{right:0}.ui-dropdown__item{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);text-align:left;cursor:pointer;background:0 0;border:0;font-size:14px;display:block}.ui-dropdown__item:hover:not(:disabled),.ui-dropdown__item:focus-visible{background:var(--surface-muted)}.ui-dropdown__item--danger{color:var(--error)}.ui-dropdown__item:disabled{opacity:.5;cursor:not-allowed}.ui-modal__backdrop{z-index:50;padding:var(--space-6);background:#0f172a80;place-items:center;display:grid;position:fixed;inset:0}.ui-modal{width:min(100%,560px);max-height:calc(100vh - var(--space-12));border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-lg);overflow-y:auto}.ui-modal__header{padding:var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.ui-modal__header h2{margin:0;font-size:20px;font-weight:680}.ui-modal__header p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:14px}.ui-icon-button{border-radius:var(--radius-sm);width:36px;height:36px;color:var(--foreground-muted);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.ui-icon-button:hover{color:var(--foreground);background:var(--surface-muted)}.ui-modal__content{padding:var(--space-6)}.ui-modal__footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border);justify-content:flex-end;gap:var(--space-3);background:var(--surface-muted);display:flex}.ui-toast-viewport{z-index:70;right:var(--space-5);bottom:var(--space-5);width:min(380px, calc(100vw - var(--space-10)));gap:var(--space-3);display:grid;position:fixed}.ui-toast{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:start;gap:var(--space-3);color:var(--info);background:var(--surface);box-shadow:var(--shadow-md);border-left:4px solid;grid-template-columns:auto 1fr auto;display:grid}.ui-toast--success{color:var(--success)}.ui-toast--warning{color:var(--warning)}.ui-toast--error{color:var(--error)}.ui-toast>div{color:var(--foreground)}.ui-toast strong{font-size:14px;display:block}.ui-toast p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:12px}.ui-toast__close{padding:var(--space-1);border-radius:var(--radius-sm);color:var(--foreground-muted);cursor:pointer;background:0 0;border:0;display:grid}.ui-toast__close:hover{background:var(--surface-muted)}.showcase-page{min-height:100vh;padding:var(--space-12) var(--space-6) var(--space-16)}.showcase-shell{gap:var(--space-8);width:min(100%,1160px);margin:0 auto;display:grid}.showcase-hero{padding:var(--space-10);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:end;gap:var(--space-8);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:minmax(0,1fr) auto;display:grid}.showcase-eyebrow{margin:0 0 var(--space-3);color:var(--primary);letter-spacing:.16em;font-size:12px;font-weight:720}.showcase-subtitle{margin:var(--space-4) 0 0;color:var(--foreground-muted);font-size:16px}.system-status{min-width:240px;padding:var(--space-4);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface-muted);display:grid}.system-status>div{justify-content:space-between;align-items:center;gap:var(--space-5);display:flex}.system-status span{color:var(--foreground-muted);font-size:12px}.system-status strong{font-size:14px}.status-positive{color:var(--success)}.status-negative{color:var(--error)}.status-neutral{color:var(--warning)}.showcase-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm)}.showcase-section__header{padding:var(--space-6);border-bottom:1px solid var(--border)}.showcase-section__header p{max-width:70ch;margin:var(--space-2) 0 0;color:var(--foreground-muted);font-size:14px}.showcase-section__content{min-width:0;padding:var(--space-6);gap:var(--space-5);display:grid}.showcase-two-column{gap:var(--space-8);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.color-grid{gap:var(--space-3);grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.color-swatch{gap:var(--space-2);min-width:0;font-size:14px;display:grid}.color-swatch__sample{aspect-ratio:1.5;border-radius:var(--radius-sm);border:1px solid #0000000f}.color-swatch code{color:var(--foreground-muted);font-size:11px}.color-primary{background:var(--primary)}.color-accent{background:var(--accent)}.color-success{background:var(--success)}.color-warning{background:var(--warning)}.color-error{background:var(--error)}.color-info{background:var(--info)}.color-neutral{background:var(--neutral)}.type-specimen{gap:var(--space-4);display:grid}.type-specimen>div{padding-bottom:var(--space-4);border-bottom:1px solid var(--border);align-items:baseline;gap:var(--space-4);grid-template-columns:128px minmax(0,1fr);display:grid}.type-specimen>div:last-child{border-bottom:0;padding-bottom:0}.type-specimen>div>span{color:var(--foreground-muted);font-size:12px}.component-row{align-items:flex-start;gap:var(--space-3);flex-wrap:wrap;display:flex}.component-row--centered{align-items:center}.form-grid{align-items:start;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.form-grid .ui-field:last-child{grid-column:1/-1}.card-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.metric-example{gap:var(--space-1);display:grid}.metric-example strong{color:var(--primary);font-size:36px;line-height:1}.metric-example span{color:var(--foreground-muted);font-size:14px}.person-cell{align-items:center;gap:var(--space-3);white-space:nowrap;font-weight:600;display:flex}.table-action-cell{text-align:right;width:1%}.table-action-cell .ui-button{width:38px;padding:var(--space-2)}.state-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.inline-spinner-example{padding-top:var(--space-4);border-top:1px solid var(--border);align-items:center;gap:var(--space-3);color:var(--foreground-muted);font-size:12px;display:flex}.auth-page{min-height:100vh;padding:var(--space-10) var(--space-6);background:radial-gradient(circle at 12% 16%, var(--primary), transparent 30%), radial-gradient(circle at 90% 85%, var(--accent), transparent 28%), var(--background);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.auth-page{background:radial-gradient(circle at 12% 16%, color-mix(in srgb, var(--primary) 10%, transparent), transparent 30%), radial-gradient(circle at 90% 85%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 28%), var(--background)}}.auth-shell{align-items:center;gap:clamp(var(--space-8), 6vw, var(--space-16));grid-template-columns:minmax(0,.9fr) minmax(380px,1fr);width:min(100%,1040px);display:grid}.auth-intro{max-width:520px}.auth-back-link{width:fit-content;margin-bottom:var(--space-10);align-items:center;gap:var(--space-2);color:var(--foreground-muted);font-size:14px;font-weight:620;text-decoration:none;display:inline-flex}.auth-back-link:hover{color:var(--primary)}.auth-brand-mark{width:58px;height:58px;margin-bottom:var(--space-6);border-radius:var(--radius-md);color:var(--primary-foreground);background:var(--primary);box-shadow:var(--shadow-md);place-items:center;display:grid}.auth-intro__copy{max-width:46ch;margin:var(--space-5) 0 0;color:var(--foreground-muted);font-size:18px;line-height:1.7}.auth-security-note{width:fit-content;margin-top:var(--space-8);padding:var(--space-3) var(--space-4);border:1px solid var(--success)}@supports (color:color-mix(in lab, red, red)){.auth-security-note{border:1px solid color-mix(in srgb, var(--success) 22%, var(--border))}}.auth-security-note{border-radius:var(--radius-md);align-items:center;gap:var(--space-3);color:var(--success);background:var(--success-muted);display:flex}.auth-security-note div{display:grid}.auth-security-note strong{color:var(--foreground);font-size:13px}.auth-security-note span{color:var(--foreground-muted);font-size:12px}.auth-panel{min-width:0}.auth-panel .ui-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.auth-panel .ui-card__header{padding:var(--space-8) var(--space-8) 0}.auth-panel .ui-card__header h3{font-size:24px}.auth-panel .ui-card__content{padding:var(--space-6) var(--space-8) var(--space-8)}.auth-form{gap:var(--space-4);display:grid}.auth-submit{width:100%;margin-top:var(--space-2)}.auth-alert{padding:var(--space-3) var(--space-4);border:1px solid var(--error)}@supports (color:color-mix(in lab, red, red)){.auth-alert{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border))}}.auth-alert{border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);font-size:14px}.auth-demo-section{margin-top:var(--space-6);gap:var(--space-3);text-align:center;display:grid}.auth-demo-section>p{color:var(--foreground-muted);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:11px;font-weight:680}.auth-divider{align-items:center;gap:var(--space-3);color:var(--foreground-muted);font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-demo-grid{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.auth-demo-grid .ui-button{padding-inline:var(--space-2)}.auth-demo-hint{color:var(--foreground-muted);font-size:12px}.auth-checking{justify-content:center;align-items:center;gap:var(--space-3);min-height:180px;color:var(--foreground-muted);display:flex}.auth-user{padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:var(--space-4);background:var(--surface-muted);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.auth-user>div{min-width:0;display:grid}.auth-user span{color:var(--foreground-muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:650}.auth-user strong{margin-top:var(--space-1);font-size:18px}.auth-user p{color:var(--foreground-muted);overflow-wrap:anywhere;margin:0;font-size:13px}.auth-user-actions{margin-top:var(--space-5);justify-content:flex-end;display:flex}.guard-state{min-height:100vh;padding:var(--space-8);place-items:center;display:grid}.guard-state>*{width:min(100%,560px)}.rbac-page{min-height:100vh;padding:var(--space-10) var(--space-6) var(--space-16);background:radial-gradient(circle at 88% 8%, var(--primary), transparent 26%), var(--background)}@supports (color:color-mix(in lab, red, red)){.rbac-page{background:radial-gradient(circle at 88% 8%, color-mix(in srgb, var(--primary) 8%, transparent), transparent 26%), var(--background)}}.rbac-shell{gap:var(--space-8);width:min(100%,1120px);margin:0 auto;display:grid}.rbac-header{padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:space-between;align-items:flex-start;gap:var(--space-6);background:var(--surface);box-shadow:var(--shadow-sm);display:flex}.rbac-header .auth-back-link{margin-bottom:var(--space-6)}.rbac-title-row{align-items:flex-start;gap:var(--space-4);display:flex}.rbac-title-icon{border-radius:var(--radius-md);width:46px;height:46px;color:var(--primary-foreground);background:var(--primary);flex:none;place-items:center;display:grid}.rbac-title-row .showcase-eyebrow{margin-bottom:var(--space-2)}.rbac-title-row p:last-child{margin:var(--space-2) 0 0;color:var(--foreground-muted);font-size:14px}.rbac-user{align-items:center;gap:var(--space-5);display:flex}.rbac-user dl{gap:var(--space-5);flex:1;grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;margin:0;display:grid}.rbac-user dl>div{gap:var(--space-1);min-width:0;display:grid}.rbac-user dt{color:var(--foreground-muted);letter-spacing:.05em;text-transform:uppercase;font-size:11px;font-weight:680}.rbac-user dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:620}.rbac-ux-note{margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);color:var(--info);background:var(--info-muted);font-size:13px;font-weight:620;display:flex}.rbac-section-heading{margin-bottom:var(--space-5);justify-content:space-between;align-items:flex-end;gap:var(--space-4);display:flex}.rbac-section-heading p{margin:var(--space-2) 0 0;color:var(--foreground-muted);font-size:14px}.rbac-test-grid{gap:var(--space-5);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.rbac-test-grid .ui-card{flex-direction:column;display:flex}.rbac-test-grid .ui-card__content{align-content:space-between;gap:var(--space-5);flex:1;display:grid}.rbac-test-grid .ui-button{width:100%}.rbac-result{min-height:44px;padding:var(--space-3);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:var(--space-2);color:var(--foreground-muted);background:var(--surface-muted);font-size:12px;display:flex}.rbac-result--granted{border-color:var(--success)}@supports (color:color-mix(in lab, red, red)){.rbac-result--granted{border-color:color-mix(in srgb, var(--success) 25%, var(--border))}}.rbac-result--granted{color:var(--success);background:var(--success-muted)}.rbac-result--forbidden,.rbac-result--error{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.rbac-result--forbidden,.rbac-result--error{border-color:color-mix(in srgb, var(--error) 25%, var(--border))}}.rbac-result--forbidden,.rbac-result--error{color:var(--error);background:var(--error-muted)}.rbac-result--loading{color:var(--warning);background:var(--warning-muted)}.rbac-security-note{padding:var(--space-4) var(--space-5);border:1px solid var(--info)}@supports (color:color-mix(in lab, red, red)){.rbac-security-note{border:1px solid color-mix(in srgb, var(--info) 22%, var(--border))}}.rbac-security-note{border-radius:var(--radius-md);align-items:center;gap:var(--space-3);color:var(--info);background:var(--info-muted);display:flex}.rbac-security-note div{display:grid}.rbac-security-note strong{color:var(--foreground);font-size:14px}.rbac-security-note span{color:var(--foreground-muted);font-size:12px}@media (max-width:1023px){.showcase-page{padding:var(--space-8) var(--space-5) var(--space-12)}.showcase-hero{padding:var(--space-8);grid-template-columns:1fr;align-items:stretch}.system-status{min-width:0}.color-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.state-grid{grid-template-columns:1fr}.auth-shell{gap:var(--space-8);grid-template-columns:1fr}.auth-intro{max-width:none}.auth-back-link{margin-bottom:var(--space-8)}.auth-security-note{margin-top:var(--space-5)}.rbac-test-grid{grid-template-columns:1fr}}@media (max-width:767px){.showcase-page{padding:var(--space-4) var(--space-3) var(--space-10)}.showcase-shell{gap:var(--space-5)}.showcase-hero{padding:var(--space-6);gap:var(--space-6)}.showcase-section__header,.showcase-section__content{padding:var(--space-5)}.showcase-two-column,.form-grid,.card-grid{gap:var(--space-5);grid-template-columns:1fr}.form-grid .ui-field:last-child{grid-column:auto}.color-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.type-specimen>div{gap:var(--space-1);grid-template-columns:1fr}.ui-modal__backdrop{padding:var(--space-3);align-items:end}.ui-modal{max-height:calc(100vh - var(--space-6))}.ui-modal__header,.ui-modal__content{padding:var(--space-5)}.ui-modal__footer{padding:var(--space-4) var(--space-5)}.auth-page{padding:var(--space-5) var(--space-3) var(--space-8);place-items:start center}.auth-brand-mark{width:48px;height:48px;margin-bottom:var(--space-4)}.auth-back-link{margin-bottom:var(--space-6)}.auth-intro__copy{margin-top:var(--space-3);font-size:16px}.auth-security-note{display:none}.auth-panel .ui-card__header{padding:var(--space-6) var(--space-5) 0}.auth-panel .ui-card__content{padding:var(--space-5)}.auth-demo-grid{grid-template-columns:1fr}.auth-user{grid-template-columns:auto minmax(0,1fr)}.auth-user .ui-badge{grid-column:1/-1;justify-self:start}.guard-state{padding:var(--space-4)}.rbac-page{padding:var(--space-4) var(--space-3) var(--space-10)}.rbac-shell{gap:var(--space-5)}.rbac-header{padding:var(--space-5);flex-direction:column}.rbac-header>.ui-button{width:100%}.rbac-title-icon{display:none}.rbac-user{align-items:flex-start}.rbac-user dl{gap:var(--space-3);grid-template-columns:1fr}.rbac-section-heading{flex-direction:column;align-items:flex-start}.rbac-security-note{align-items:flex-start}}.weekly-schedule,.schedule-skeleton{gap:var(--space-6);width:100%;min-width:0;max-width:1400px;margin-inline:auto;display:grid}.schedule-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-5);min-width:0;display:flex}.schedule-heading>div{min-width:0}.schedule-heading>div>p:last-child{margin:var(--space-2) 0 0;color:var(--foreground-muted)}.schedule-timezone{padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-full);color:var(--foreground-muted);background:var(--surface);flex:none;font-size:12px;font-weight:620}.schedule-summary{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));width:min(100%,640px);min-width:0;display:grid}.schedule-summary__item{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:flex}.schedule-summary__item>span{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--primary);background:var(--primary);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.schedule-summary__item>span{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.schedule-summary__item>div{min-width:0;display:grid}.schedule-summary__item strong{font-size:20px;line-height:1.15}.schedule-summary__item small{color:var(--foreground-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.schedule-summary__item--warning>span{color:var(--error);background:var(--error-muted)}.schedule-board{gap:var(--space-4);min-width:0;display:grid}.schedule-day{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;box-shadow:var(--shadow-sm);overflow:hidden}.schedule-day--today{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.schedule-day--today{border-color:color-mix(in srgb, var(--primary) 48%, var(--border))}}.schedule-day--today{box-shadow:0 0 0 2px var(--primary)}@supports (color:color-mix(in lab, red, red)){.schedule-day--today{box-shadow:0 0 0 2px color-mix(in srgb, var(--primary) 8%, transparent)}}.schedule-day__header{min-height:64px;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);align-content:center;align-items:center;gap:0 var(--space-2);background:var(--surface-muted);grid-template-columns:minmax(0,1fr) auto;display:grid}.schedule-day--today .schedule-day__header{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.schedule-day--today .schedule-day__header{background:color-mix(in srgb, var(--primary) 8%, var(--surface))}}.schedule-day__header h3{white-space:nowrap;min-width:0;margin:0;font-size:15px}.schedule-day__header>span:last-child{color:var(--foreground-muted);grid-column:1/-1;font-size:11px}.schedule-today-label{padding:2px var(--space-2);border-radius:var(--radius-full);color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.schedule-today-label{background:color-mix(in srgb, var(--primary) 12%, var(--surface))}}.schedule-today-label{font-size:10px;font-weight:720;line-height:1.5}.schedule-day__events{min-width:0;padding:var(--space-3);align-content:start;gap:var(--space-3);display:grid}.schedule-event{min-width:0;padding:var(--space-3);border:1px solid var(--border);border-left:3px solid var(--primary);border-radius:var(--radius-sm);gap:var(--space-2);color:inherit;background:var(--surface);text-decoration:none;transition:border-color .12s,box-shadow .12s,transform .12s;display:grid}.schedule-event:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.schedule-event:hover{border-color:color-mix(in srgb, var(--primary) 50%, var(--border))}}.schedule-event:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.schedule-event:focus-visible{outline-offset:2px}.schedule-event--conflict{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.schedule-event--conflict{border-color:color-mix(in srgb, var(--error) 38%, var(--border))}}.schedule-event--conflict{border-left-color:var(--error);background:var(--error-muted)}@supports (color:color-mix(in lab, red, red)){.schedule-event--conflict{background:color-mix(in srgb, var(--error-muted) 48%, var(--surface))}}.schedule-event__time,.schedule-event__room{align-items:center;gap:var(--space-1);min-width:0;color:var(--foreground-muted);overflow-wrap:normal;word-break:normal;font-size:11px;display:flex}.schedule-event__time{color:var(--primary);white-space:nowrap;font-weight:680}.schedule-event__course{gap:1px;min-width:0;display:grid}.schedule-event__course strong{overflow-wrap:break-word;word-break:normal;font-size:13px;line-height:1.4}.schedule-event__course>span{color:var(--foreground-muted);letter-spacing:.04em;font-size:11px;font-weight:650}.schedule-event .ui-badge{gap:var(--space-1);width:fit-content}.schedule-day__empty{min-height:84px;color:var(--foreground-muted);text-align:center;place-items:center;margin:0;font-size:12px;display:grid}.schedule-skeleton__heading,.schedule-skeleton__summary,.schedule-skeleton__days>div{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.schedule-skeleton__heading{width:min(100%,380px);height:86px}.schedule-skeleton__summary{border:1px solid var(--border);width:min(100%,640px);height:70px}.schedule-skeleton__days{gap:var(--space-4);min-width:0;display:grid}.schedule-skeleton__days>div{border:1px solid var(--border);height:220px}@media (min-width:1280px){.schedule-board,.schedule-skeleton__days{grid-template-columns:repeat(5,minmax(0,1fr));align-items:stretch}:is(.schedule-board:has(.schedule-day:nth-child(6)),.schedule-skeleton__days:has(>:nth-child(6))){grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.schedule-day{grid-template-rows:auto 1fr;display:grid}}@media (min-width:768px) and (max-width:1279px){.schedule-board,.schedule-skeleton__days{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.schedule-day{grid-template-rows:auto 1fr;display:grid}.schedule-day__header,.schedule-day__empty{min-height:58px}}@media (max-width:767px){.weekly-schedule,.schedule-skeleton{gap:var(--space-5)}.schedule-heading{align-items:flex-start;gap:var(--space-3);flex-direction:column}.schedule-timezone{align-self:flex-start}.schedule-summary{gap:var(--space-2)}.schedule-summary__item{padding:var(--space-3);align-items:flex-start;gap:var(--space-2);flex-direction:column}.schedule-summary__item>span{width:30px;height:30px}.schedule-summary__item strong{font-size:18px}.schedule-summary__item small{white-space:normal;line-height:1.3}.schedule-board{gap:var(--space-3)}.schedule-day__events{grid-template-columns:1fr}.schedule-skeleton__days>div{height:180px}}@media (max-width:420px){.component-row>.ui-button,.component-row>.ui-dropdown,.component-row>.ui-dropdown>.ui-button{width:100%}.ui-modal__footer{flex-direction:column-reverse}.ui-modal__footer .ui-button{width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.portal-shell{background:var(--background);grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.portal-sidebar{height:100vh;padding:var(--space-5) var(--space-4);border-right:1px solid var(--border);background:var(--surface);flex-direction:column;display:flex;position:sticky;top:0;overflow-y:auto}.portal-brand{min-width:0;padding:0 var(--space-2);align-items:center;gap:var(--space-3);color:var(--foreground);letter-spacing:-.02em;white-space:nowrap;font-size:17px;font-weight:720;display:flex}.portal-brand__mark{border-radius:var(--radius-md);width:38px;height:38px;color:var(--primary-foreground);background:var(--primary);flex:none;place-items:center;display:grid}.portal-nav{margin-top:var(--space-6);gap:var(--space-1);display:grid}.portal-nav__link{min-height:44px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);align-items:center;gap:var(--space-3);color:var(--foreground-muted);font-size:14px;font-weight:600;text-decoration:none;transition:color .12s,background-color .12s;display:flex}.portal-nav__link:hover{color:var(--foreground);background:var(--surface-muted)}.portal-nav__link--active{color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.portal-nav__link--active{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.portal-nav__link--active:hover{color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.portal-nav__link--active:hover{background:color-mix(in srgb, var(--primary) 13%, var(--surface))}}.portal-sidebar__footer{padding:var(--space-6) var(--space-2) 0;color:var(--foreground-muted);margin:auto 0 0;font-size:11px;line-height:1.5}.portal-workspace{flex-direction:column;min-width:0;min-height:100vh;display:flex}.portal-header{z-index:20;min-height:72px;padding:var(--space-3) var(--space-8);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-5);background:var(--surface);display:flex;position:sticky;top:0}@supports (color:color-mix(in lab, red, red)){.portal-header{background:color-mix(in srgb, var(--surface) 96%, transparent)}}.portal-header{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.portal-header__title{align-items:center;gap:var(--space-3);min-width:0;display:flex}.portal-header h1{letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:20px;font-weight:680;overflow:hidden}.portal-icon-button{border:1px solid var(--border);border-radius:var(--radius-sm);width:40px;height:40px;color:var(--foreground-muted);background:var(--surface);cursor:pointer;flex:none;place-items:center;padding:0;display:grid}.portal-icon-button:hover{color:var(--foreground);background:var(--surface-muted)}.portal-menu-button{display:none}.portal-header .ui-dropdown>.ui-button{min-height:46px;padding:var(--space-1) var(--space-2);border-color:#0000}.portal-header .ui-dropdown>.ui-button:hover{border-color:var(--border)}.portal-user-trigger{align-items:center;gap:var(--space-3);display:flex}.portal-user-trigger__identity{align-items:center;gap:var(--space-2);grid-template-columns:minmax(0,auto) auto;min-width:0;display:grid}.portal-user-trigger__identity strong{text-overflow:ellipsis;max-width:180px;color:var(--foreground);white-space:nowrap;font-size:13px;overflow:hidden}.portal-main{min-width:0;padding:var(--space-8);flex:1}.portal-main__content{width:min(100%,1600px);min-width:0;margin:0 auto}.portal-placeholder{gap:var(--space-3);min-width:0;display:grid}.portal-placeholder>.ui-card,.portal-placeholder .portal-placeholder{margin-top:var(--space-3)}.portal-placeholder .portal-placeholder>.showcase-eyebrow{display:none}.portal-placeholder__message{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:200px;display:flex}.portal-placeholder__message h3{margin:0;font-size:18px}.portal-placeholder__message p{max-width:48ch;margin:var(--space-2) 0 0;color:var(--foreground-muted);font-size:14px}.portal-state{min-height:440px;padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-md);text-align:center;background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;display:flex}.portal-state__icon{border-radius:var(--radius-full);width:56px;height:56px;color:var(--error);background:var(--error-muted);place-items:center;display:grid}.portal-state__code{margin:var(--space-4) 0 0;color:var(--error);letter-spacing:.08em;font-size:13px;font-weight:720}.portal-state h2{margin:var(--space-1) 0 0;font-size:24px}.portal-state>p:last-of-type{margin:var(--space-2) 0 0;color:var(--foreground-muted)}.portal-link-button{min-height:42px;margin-top:var(--space-5);padding:var(--space-3) var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--foreground);background:var(--surface);align-items:center;font-size:14px;font-weight:620;line-height:1;text-decoration:none;display:inline-flex}.portal-link-button:hover{color:var(--primary);border-color:var(--primary)}.mobile-nav{z-index:60;display:none;position:fixed;inset:0}.mobile-nav__backdrop{cursor:default;background:#0f172a75;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.mobile-nav__drawer{width:min(86vw,340px);height:100%;padding:var(--space-4);background:var(--surface);box-shadow:var(--shadow-lg);flex-direction:column;display:flex;position:relative;overflow-y:auto}.mobile-nav__header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.mobile-nav__header .portal-brand{padding-left:0}.mobile-nav__user{padding-top:var(--space-5);border-top:1px solid var(--border);gap:var(--space-4);margin-top:auto;display:grid}.mobile-nav__identity{align-items:center;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);min-width:0;display:grid}.mobile-nav__identity>div{min-width:0;display:grid}.mobile-nav__identity strong,.mobile-nav__identity span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mobile-nav__identity strong{font-size:14px}.mobile-nav__identity span{color:var(--foreground-muted);font-size:11px}.mobile-nav__identity .ui-badge{grid-column:1/-1;justify-self:start}.mobile-nav__user>.ui-button{width:100%}@media (max-width:1023px){.portal-shell{grid-template-columns:minmax(0,1fr)}.portal-sidebar{display:none}.portal-menu-button,.mobile-nav{display:grid}.portal-header{padding-inline:var(--space-5)}.portal-main{padding:var(--space-6) var(--space-5)}}@media (max-width:767px){.portal-header{min-height:64px;padding-inline:var(--space-3)}.portal-header h1{font-size:18px}.portal-header .ui-dropdown>.ui-button{width:42px;overflow:hidden}.portal-user-trigger__identity,.portal-header .ui-dropdown>.ui-button>svg{display:none}.portal-main{padding:var(--space-5) var(--space-3)}.portal-placeholder__message{min-height:180px}.portal-state{min-height:360px;padding:var(--space-5)}}.student-dashboard,.teacher-dashboard,.admin-dashboard{gap:var(--space-6);min-width:0;display:grid}.student-dashboard__welcome>p:last-child,.teacher-dashboard__welcome>p:last-child,.admin-dashboard__welcome>p:last-child{margin:var(--space-2) 0 0;color:var(--foreground-muted)}.dashboard-stat-grid{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;display:grid}.dashboard-stat .ui-card__content{gap:var(--space-3);display:grid}.dashboard-stat__heading{align-items:center;gap:var(--space-3);color:var(--foreground-muted);font-size:13px;font-weight:620;display:flex}.dashboard-stat__icon{border-radius:var(--radius-sm);width:38px;height:38px;color:var(--primary);background:var(--primary);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.dashboard-stat__icon{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.dashboard-stat strong{letter-spacing:-.04em;font-size:30px;line-height:1}.dashboard-stat p{color:var(--foreground-muted);margin:0;font-size:12px}.dashboard-primary-grid{align-items:start;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.dashboard-section .ui-card__content{padding-top:var(--space-4)}.dashboard-section .ui-state{background:var(--surface-muted);border:0;min-height:230px}.class-list,.assignment-list,.notification-list{display:grid}.class-list__item,.assignment-list__item,.notification-list__item{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.class-list__item:first-child,.assignment-list__item:first-child,.notification-list__item:first-child{padding-top:0}.class-list__item:last-child,.assignment-list__item:last-child,.notification-list__item:last-child{border-bottom:0;padding-bottom:0}.class-list__item{gap:var(--space-3) var(--space-5);grid-template-columns:minmax(120px,auto) minmax(0,1fr);display:grid}.class-list__time{align-items:center;gap:var(--space-2);color:var(--primary);white-space:nowrap;font-size:13px;display:flex}.class-list__course{min-width:0;display:grid}.class-list__course strong{overflow-wrap:anywhere}.class-list__course span{color:var(--foreground-muted);font-size:12px}.class-list__meta{gap:var(--space-3);color:var(--foreground-muted);flex-wrap:wrap;grid-column:2;font-size:12px;display:flex}.class-list__meta span{align-items:center;gap:var(--space-1);display:inline-flex}.assignment-list__item{justify-content:space-between;align-items:flex-start;gap:var(--space-4);display:flex}.assignment-list__copy{gap:var(--space-1);min-width:0;display:grid}.assignment-list__copy strong{overflow-wrap:anywhere}.assignment-list__copy>span{color:var(--foreground-muted);overflow-wrap:anywhere;font-size:12px}.assignment-list__due{align-items:center;gap:var(--space-1);display:flex}.notification-list__item{align-items:start;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.notification-list__item--read{opacity:.72}.notification-list__dot{border-radius:var(--radius-full);background:var(--primary);width:8px;height:8px;margin-top:7px}.notification-list__item--read .notification-list__dot{background:var(--border-strong)}.notification-list__copy{min-width:0}.notification-list__copy>div{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.notification-list__copy p{margin:var(--space-1) 0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px}.notification-list__copy>span{color:var(--foreground-muted);font-size:11px}.notification-list__item>a{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--foreground-muted);place-items:center;display:grid}.notification-list__item>a:hover{color:var(--primary);background:var(--surface-muted)}.teacher-dashboard__activity-grid{align-items:start;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.teacher-course-list,.teacher-submission-list,.teacher-assignment-list{display:grid}.teacher-course-list__item,.teacher-submission-list__item,.teacher-assignment-list__item{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.teacher-course-list__item:first-child,.teacher-submission-list__item:first-child,.teacher-assignment-list__item:first-child{padding-top:0}.teacher-course-list__item:last-child,.teacher-submission-list__item:last-child,.teacher-assignment-list__item:last-child{border-bottom:0;padding-bottom:0}.teacher-course-list__item{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.teacher-course-list__copy,.teacher-submission-list__student,.teacher-submission-list__work,.teacher-assignment-list__copy{gap:var(--space-1);min-width:0;display:grid}.teacher-course-list__copy strong,.teacher-submission-list strong,.teacher-assignment-list strong{overflow-wrap:anywhere}.teacher-course-list__copy span,.teacher-submission-list span,.teacher-submission-list time,.teacher-assignment-list__copy>span,.teacher-assignment-list__counts span{color:var(--foreground-muted);overflow-wrap:anywhere;font-size:12px}.teacher-course-list__counts{justify-content:flex-start;gap:var(--space-2) var(--space-3);color:var(--foreground-muted);flex-wrap:wrap;grid-column:1;font-size:12px;display:flex}.teacher-course-list__counts span,.teacher-assignment-list__due{align-items:center;gap:var(--space-1);display:inline-flex}.teacher-course-list__item>a{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--foreground-muted);grid-area:1/2/span 2;place-items:center;display:grid}.teacher-course-list__item>a:hover{color:var(--primary);background:var(--surface-muted)}.teacher-submission-list__item{align-items:start;gap:var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.teacher-submission-list__work{grid-area:2/1/auto/-1}.teacher-submission-list__item .ui-badge{grid-area:1/2}.teacher-submission-list__work time{margin-top:var(--space-1)}.teacher-assignment-list__item{align-items:start;gap:var(--space-4);grid-template-columns:minmax(0,1fr) auto;display:grid}.teacher-assignment-list__counts{justify-items:end;gap:var(--space-1);text-align:right;white-space:nowrap;display:grid}.admin-student-list,.admin-course-list,.admin-announcement-list{display:grid}.admin-student-list__item,.admin-course-list__item,.admin-announcement-list__item{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border)}.admin-student-list__item:first-child,.admin-course-list__item:first-child,.admin-announcement-list__item:first-child{padding-top:0}.admin-student-list__item:last-child,.admin-course-list__item:last-child,.admin-announcement-list__item:last-child{border-bottom:0;padding-bottom:0}.admin-student-list__item{align-items:start;gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.admin-student-list__academic{grid-area:2/1/auto/-1}.admin-student-list__joined{grid-area:1/2}.admin-student-list__identity,.admin-student-list__academic,.admin-student-list__joined,.admin-course-list__copy{gap:var(--space-1);min-width:0;display:grid}.admin-student-list__item strong,.admin-course-list__copy strong,.admin-announcement-list__heading strong{overflow-wrap:anywhere}.admin-student-list__item span,.admin-student-list__item time,.admin-course-list__copy span,.admin-announcement-list__dates{color:var(--foreground-muted);overflow-wrap:anywhere;font-size:12px}.admin-student-list__joined{text-align:right;white-space:nowrap;justify-items:end}.admin-course-list__item{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:minmax(0,1fr) auto;display:grid}.admin-course-list__item .ui-badge{grid-area:1/2}.admin-course-list__count{align-items:center;gap:var(--space-1);color:var(--foreground-muted);grid-column:1/-1;font-size:12px;display:inline-flex}.admin-announcement-list__heading{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.admin-announcement-list__heading strong{margin-right:auto}.admin-announcement-list__dates{margin-top:var(--space-2);justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;display:flex}.admin-system-summary{margin:0;display:grid}.admin-system-summary>div{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-3) 0;border-bottom:1px solid var(--border);display:flex}.admin-system-summary>div:first-child{padding-top:0}.admin-system-summary dt{color:var(--foreground-muted)}.admin-system-summary dd{margin:0;font-weight:700}.admin-system-summary__healthy{margin:var(--space-4) 0 0;align-items:center;gap:var(--space-2);color:var(--success-foreground);font-size:13px;display:flex}.dashboard-skeleton{gap:var(--space-6);display:grid}.dashboard-skeleton__heading,.dashboard-skeleton__card,.dashboard-skeleton__section{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.dashboard-skeleton__heading{width:min(100%,360px);height:76px}.dashboard-skeleton__card{border:1px solid var(--border);height:160px}.dashboard-skeleton__section{border:1px solid var(--border);height:300px}@keyframes dashboard-shimmer{to{background-position:-200% 0}}@media (min-width:1024px){.admin-dashboard{width:100%;max-width:1400px;margin-inline:auto}.admin-dashboard .dashboard-primary-grid{grid-template-columns:minmax(0,7fr) minmax(280px,5fr)}}@media (max-width:1023px){.dashboard-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-primary-grid,.teacher-dashboard__activity-grid{grid-template-columns:1fr}}@media (max-width:767px){.student-dashboard,.teacher-dashboard,.admin-dashboard{gap:var(--space-5)}.dashboard-stat-grid{gap:var(--space-3);grid-template-columns:1fr}.dashboard-stat .ui-card__content{align-items:center;gap:var(--space-2) var(--space-3);grid-template-columns:auto minmax(0,1fr)}.dashboard-stat__heading{grid-row:1/span 2}.dashboard-stat strong{font-size:26px}.class-list__item{gap:var(--space-2);grid-template-columns:1fr}.class-list__meta{grid-column:1}.assignment-list__item{flex-direction:column;align-items:flex-start}.notification-list__item{grid-template-columns:auto minmax(0,1fr)}.notification-list__item>a{grid-column:2;justify-self:start}.teacher-submission-list__item,.teacher-assignment-list__item{grid-template-columns:1fr}.teacher-submission-list__item .ui-badge{grid-area:auto/1;justify-self:start}.teacher-assignment-list__counts{text-align:left;justify-items:start}.admin-student-list__item{grid-template-columns:1fr}.admin-student-list__academic,.admin-student-list__joined{grid-area:auto/1}.admin-student-list__joined{text-align:left;white-space:normal;justify-items:start}.dashboard-section .ui-card__header,.dashboard-section .ui-card__content{padding-inline:var(--space-4)}}.course-list-page,.course-detail-page,.course-list-skeleton,.course-detail-skeleton{gap:var(--space-6);width:100%;min-width:0;max-width:1400px;margin-inline:auto;display:grid}.course-page-heading>p:last-child{margin:var(--space-2) 0 0;color:var(--foreground-muted)}.course-card-grid{gap:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));min-width:0;display:grid}.course-card-link{min-width:0;color:inherit;text-decoration:none}.course-card{height:100%;transition:border-color .14s,box-shadow .14s,transform .14s}.course-card-link:hover .course-card{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.course-card-link:hover .course-card{border-color:color-mix(in srgb, var(--primary) 38%, var(--border))}}.course-card-link:hover .course-card{box-shadow:var(--shadow-md);transform:translateY(-2px)}.course-card-link:focus-visible{border-radius:var(--radius-md);outline-offset:4px}.course-card .ui-card__content{gap:var(--space-4);flex-direction:column;height:100%;display:flex}.course-card__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.course-card__heading>div{gap:var(--space-1);min-width:0;display:grid}.course-card__heading span:not(.ui-badge){color:var(--primary);letter-spacing:.08em;font-size:12px;font-weight:720}.course-card__heading h3{overflow-wrap:anywhere;margin:0;font-size:20px;line-height:1.35}.course-card__description{min-height:44px;color:var(--foreground-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:13px;line-height:1.65;display:-webkit-box;overflow:hidden}.course-card__details{gap:var(--space-2);display:grid}.course-card__details span,.course-card__metrics span{align-items:center;gap:var(--space-2);min-width:0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;display:flex}.course-card__details svg,.course-card__metrics svg{flex:none}.course-card__metrics{padding-top:var(--space-4);border-top:1px solid var(--border);gap:var(--space-2) var(--space-5);flex-wrap:wrap;margin-top:auto;display:flex}.course-back-link{align-items:center;gap:var(--space-2);width:fit-content;color:var(--foreground-muted);font-size:14px;font-weight:620;text-decoration:none;display:inline-flex}.course-back-link:hover{color:var(--primary)}.course-detail-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-5);min-width:0;display:flex}.course-detail-heading>div{min-width:0}.course-detail-heading__title{align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.course-detail-heading h2{overflow-wrap:anywhere}.course-description-card p{color:var(--foreground-muted);margin:0}.course-detail-grid{align-items:start;gap:var(--space-5);min-width:0;display:grid}.course-detail-section{min-width:0}.course-detail-section .ui-state{background:var(--surface-muted);border:0;min-height:180px}.course-overview-list,.admin-system-summary{margin:0}.course-overview-list{display:grid}.course-overview-list>div{padding:var(--space-3) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.course-overview-list>div:first-child{padding-top:0}.course-overview-list>div:last-child{border-bottom:0;padding-bottom:0}.course-overview-list dt{color:var(--foreground-muted)}.course-overview-list dd{margin:0;font-weight:700}.course-instructor{align-items:start;gap:var(--space-3);grid-template-columns:auto minmax(0,1fr);min-height:116px;display:grid}.course-instructor__icon{border-radius:var(--radius-full);width:44px;height:44px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.course-instructor__icon{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.course-instructor>div{gap:var(--space-2);min-width:0;display:grid}.course-instructor>div span{align-items:center;gap:var(--space-2);color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;display:flex}.course-instructor--empty{color:var(--foreground-muted);grid-template-columns:auto minmax(0,1fr);align-items:center}.course-schedule-list{display:grid}.course-schedule-list__item{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3);grid-template-columns:minmax(100px,.7fr) minmax(130px,1fr) minmax(100px,.8fr);display:grid}.course-schedule-list__item:first-child{padding-top:0}.course-schedule-list__item:last-child{border-bottom:0;padding-bottom:0}.course-schedule-list__item span{align-items:center;gap:var(--space-2);min-width:0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;display:inline-flex}.course-schedule-list__item svg{flex:none}.course-summary-grid{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.course-summary-grid>div{min-width:0;padding:var(--space-4);border-radius:var(--radius-sm);gap:var(--space-3);background:var(--surface-muted);display:grid}.course-summary-grid span{align-items:center;gap:var(--space-2);color:var(--foreground-muted);font-size:13px;display:flex}.course-summary-grid strong{font-size:28px;line-height:1}.course-not-found{max-width:720px;margin-inline:auto}.course-not-found .portal-link-button{margin-top:0}.course-skeleton{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.course-skeleton--heading{border:0;width:min(100%,420px);height:92px}.course-skeleton--card{height:310px}.course-skeleton--description{height:150px}.course-skeleton--section{height:260px}@media (min-width:1024px){.course-detail-grid{grid-template-columns:minmax(0,3fr) minmax(280px,2fr)}}@media (max-width:767px){.course-list-page,.course-detail-page,.course-list-skeleton,.course-detail-skeleton{gap:var(--space-5)}.course-card-grid{gap:var(--space-4);grid-template-columns:1fr}.course-card .ui-card__content,.course-description-card .ui-card__content,.course-detail-section .ui-card__content{padding-inline:var(--space-4)}.course-schedule-list__item{gap:var(--space-2);grid-template-columns:1fr}.course-summary-grid{grid-template-columns:1fr}}.course-roster{min-width:0;overflow:visible}.course-roster__header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:var(--space-5);display:flex}.course-roster__header>div:first-child{min-width:0}.course-roster__header h3{margin:0;font-size:20px}.course-roster__header p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:14px}.course-roster__enroll-control{justify-items:end;gap:var(--space-1);flex:none;display:grid}.course-roster__enroll-control>span{color:var(--warning);font-size:12px;font-weight:650}.course-roster-summary{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--border);gap:var(--space-4);background:var(--surface-muted);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.course-roster-summary>div{gap:var(--space-1);min-width:0;display:grid}.course-roster-summary dt{color:var(--foreground-muted);font-size:12px}.course-roster-summary dd{margin:0;font-size:17px;font-weight:720}.course-roster__desktop{min-width:0;padding:var(--space-5) var(--space-6) var(--space-6)}.course-roster__desktop .ui-table{min-width:880px}.course-roster__desktop strong{white-space:nowrap}.course-roster__actions{text-align:right;width:1%}.course-roster__actions .ui-dropdown{display:inline-block}.course-roster__actions .ui-button{width:38px;padding-inline:var(--space-2)}.course-roster__terminal{color:var(--foreground-muted);font-size:12px}.course-roster__mobile{display:none}.course-roster-skeleton{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);place-items:center;min-height:190px;display:grid}.enrollment-modal-state{place-items:center;min-height:150px;display:grid}.enrollment-candidate-form{gap:var(--space-4);display:grid}.enrollment-candidate-preview{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-2);background:var(--surface-muted);display:grid}.enrollment-candidate-preview>div{justify-content:space-between;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.enrollment-candidate-preview strong{overflow-wrap:anywhere}.enrollment-candidate-preview span{color:var(--foreground-muted);font-size:13px}.enrollment-candidate-preview .ui-badge{width:fit-content;color:var(--warning-foreground)}.enrollment-inline-error{padding:var(--space-3) var(--space-4);border:1px solid var(--error)}@supports (color:color-mix(in lab, red, red)){.enrollment-inline-error{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border))}}.enrollment-inline-error{border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);font-size:13px}.enrollment-confirmation-copy{margin:0;font-weight:680}@media (max-width:767px){.course-roster__header{padding:var(--space-4);flex-direction:column}.course-roster__enroll-control{justify-items:stretch;width:100%}.course-roster__enroll-control .ui-button{width:100%}.course-roster-summary{padding:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr))}.course-roster__desktop{display:none}.course-roster__mobile{padding:0 var(--space-4) var(--space-4);display:grid}.course-roster-card{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border);gap:var(--space-2);display:grid}.course-roster-card:last-child{border-bottom:0}.course-roster-card__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.course-roster-card__heading>div{gap:var(--space-1);min-width:0;display:grid}.course-roster-card__heading strong{overflow-wrap:anywhere}.course-roster-card__heading span:not(.ui-badge),.course-roster-card>span,.course-roster-card p{color:var(--foreground-muted);font-size:13px}.course-roster-card p{margin:0}.course-roster-card .ui-dropdown{margin-top:var(--space-1)}.course-roster-card .ui-dropdown>.ui-button{justify-content:center;width:100%}.course-roster-card .ui-dropdown__menu{width:100%;left:0;right:auto}}.assignment-list-page,.assignment-detail-page,.assignment-list-skeleton,.assignment-detail-skeleton{gap:var(--space-6);width:100%;min-width:0;max-width:1400px;margin-inline:auto;display:grid}.assignment-page-heading,.assignment-detail-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-5);min-width:0;display:flex}.assignment-page-heading>div:first-child,.assignment-detail-heading>div:first-child{min-width:0}.assignment-page-heading h2,.assignment-detail-heading h2{overflow-wrap:anywhere}.assignment-page-heading>div:first-child>p:last-child,.assignment-detail-heading>div:first-child>p:last-child{margin:var(--space-2) 0 0;color:var(--foreground-muted)}.assignment-create-control{justify-items:end;gap:var(--space-1);flex:none;display:grid}.assignment-create-control>span{max-width:230px;color:var(--foreground-muted);text-align:right;font-size:12px}.assignment-section{gap:var(--space-4);min-width:0;display:grid}.assignment-section__heading{align-items:center;gap:var(--space-2);display:flex}.assignment-section__heading h3{margin:0;font-size:20px}.assignment-section__heading>span{min-width:26px;height:26px;padding-inline:var(--space-2);border-radius:var(--radius-full);color:var(--foreground-muted);background:var(--surface-muted);place-items:center;font-size:12px;font-weight:720;display:inline-grid}.assignment-section__empty{min-height:96px;padding:var(--space-5);border:1px dashed var(--border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:var(--space-2);color:var(--foreground-muted);background:var(--surface-muted);display:flex}@supports (color:color-mix(in lab, red, red)){.assignment-section__empty{background:color-mix(in srgb, var(--surface-muted) 55%, transparent)}}.assignment-section__empty{font-size:14px}.assignment-card-grid{gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(min(100%,310px),1fr));min-width:0;display:grid}.assignment-card{min-width:0;min-height:190px;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);color:inherit;background:var(--surface);box-shadow:var(--shadow-sm);flex-direction:column;text-decoration:none;transition:border-color .14s,box-shadow .14s,transform .14s;display:flex}.assignment-card:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.assignment-card:hover{border-color:color-mix(in srgb, var(--primary) 38%, var(--border))}}.assignment-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.assignment-card:focus-visible{outline-offset:3px}.assignment-card__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.assignment-card__heading>div{gap:var(--space-1);min-width:0;display:grid}.assignment-card__heading>div>span{color:var(--primary);letter-spacing:.08em;font-size:12px;font-weight:740}.assignment-card__heading h3{overflow-wrap:anywhere;margin:0;font-size:18px;line-height:1.4}.assignment-card__course,.assignment-card__due{color:var(--foreground-muted);font-size:13px}.assignment-card__course{overflow-wrap:anywhere;margin:0}.assignment-card__due,.assignment-card__metrics>span{align-items:center;gap:var(--space-2);min-width:0;display:flex}.assignment-card__due svg,.assignment-card__metrics svg{flex:none}.assignment-card__metrics{padding-top:var(--space-3);border-top:1px solid var(--border);gap:var(--space-2) var(--space-4);color:var(--foreground-muted);flex-wrap:wrap;margin-top:auto;font-size:12px;display:flex}.assignment-detail-heading>.ui-badge{flex:none}.assignment-detail-grid{align-items:stretch;gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.assignment-detail-grid>.ui-card{min-width:0}.assignment-detail-about{grid-column:1/-1}.assignment-detail-about p{color:var(--foreground-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.assignment-deadline,.assignment-course-summary,.assignment-status-panel{gap:var(--space-2);min-width:0;display:grid}.assignment-deadline{color:var(--primary);grid-template-columns:auto minmax(0,1fr);align-items:start}.assignment-deadline>div,.assignment-course-summary{gap:var(--space-1);display:grid}.assignment-deadline strong,.assignment-course-summary strong{color:var(--foreground);overflow-wrap:anywhere}.assignment-deadline span,.assignment-course-summary span,.assignment-status-panel p{color:var(--foreground-muted);font-size:13px}.assignment-status-panel{justify-items:start}.assignment-status-panel p{margin:0}.assignment-submission-summary{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.assignment-submission-summary>div{min-width:0;padding:var(--space-3);border-radius:var(--radius-sm);gap:var(--space-1);background:var(--surface-muted);display:grid}.assignment-submission-summary dt{color:var(--foreground-muted);font-size:12px}.assignment-submission-summary dd{margin:0;font-size:20px;font-weight:740}.assignment-management .ui-card__content{gap:var(--space-3);display:grid}.assignment-management__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.assignment-management p{color:var(--foreground-muted);margin:0;font-size:13px}.assignment-form{gap:var(--space-4);display:grid}.assignment-form__readonly{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-1);background:var(--surface-muted);display:grid}.assignment-form__readonly span{color:var(--foreground-muted);font-size:12px}.assignment-form__readonly strong{overflow-wrap:anywhere}.assignment-form__error{padding:var(--space-3) var(--space-4);border:1px solid var(--error)}@supports (color:color-mix(in lab, red, red)){.assignment-form__error{border:1px solid color-mix(in srgb, var(--error) 24%, var(--border))}}.assignment-form__error{border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);font-size:13px}.assignment-delete-copy{overflow-wrap:anywhere;margin:0}.assignment-skeleton{border:1px solid var(--border);border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.assignment-skeleton--heading{border:0;width:min(100%,430px);height:92px}.assignment-skeleton--card,.assignment-skeleton--detail{height:190px}@media (max-width:767px){.assignment-list-page,.assignment-detail-page,.assignment-list-skeleton,.assignment-detail-skeleton{gap:var(--space-5)}.assignment-page-heading,.assignment-detail-heading{gap:var(--space-4);flex-direction:column}.assignment-create-control{justify-items:stretch;width:100%}.assignment-create-control .ui-button{width:100%}.assignment-create-control>span{text-align:left;max-width:none}.assignment-card-grid{grid-template-columns:1fr}.assignment-card{min-height:0;padding:var(--space-4)}.assignment-detail-grid{gap:var(--space-4);grid-template-columns:1fr}.assignment-detail-about{grid-column:auto}.assignment-detail-grid .ui-card__header,.assignment-detail-grid .ui-card__content,.assignment-management .ui-card__header,.assignment-management .ui-card__content{padding-inline:var(--space-4)}.assignment-management__actions{display:grid}.assignment-management__actions .ui-button{width:100%}.assignment-submission-summary{grid-template-columns:1fr}}.student-submission{min-width:0}.student-submission .ui-card__content{gap:var(--space-4);min-width:0;display:grid}.submission-heading{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.submission-heading>span,.submission-last-saved,.submission-timestamp{align-items:center;gap:var(--space-2);min-width:0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;display:inline-flex}.submission-late-warning{padding:var(--space-3) var(--space-4);border:1px solid var(--warning)}@supports (color:color-mix(in lab, red, red)){.submission-late-warning{border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border))}}.submission-late-warning{border-radius:var(--radius-sm);align-items:start;gap:var(--space-3);color:var(--warning-foreground);background:var(--warning-muted);grid-template-columns:auto minmax(0,1fr);display:grid}.submission-late-warning>div{gap:var(--space-1);min-width:0;display:grid}.submission-late-warning span{overflow-wrap:anywhere;font-size:13px}.submission-editor{gap:var(--space-3);min-width:0;display:grid}.submission-editor .ui-textarea{resize:vertical;min-height:220px;line-height:1.65}.submission-last-saved,.submission-timestamp{margin:0}.submission-actions{justify-content:flex-end;gap:var(--space-3);flex-wrap:wrap;display:flex}.submission-locked{gap:var(--space-4);min-width:0;display:grid}.submission-locked__notice{padding:var(--space-4);border:1px solid var(--success)}@supports (color:color-mix(in lab, red, red)){.submission-locked__notice{border:1px solid color-mix(in srgb, var(--success) 24%, var(--border))}}.submission-locked__notice{border-radius:var(--radius-sm);align-items:start;gap:var(--space-3);color:var(--success-foreground);background:var(--success-muted);grid-template-columns:auto minmax(0,1fr);display:grid}.submission-locked__notice>div{gap:var(--space-1);min-width:0;display:grid}.submission-locked__notice p{overflow-wrap:anywhere;margin:0;font-size:13px}.submission-content-display{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);gap:var(--space-2);background:var(--surface-muted);display:grid}.submission-content-display>span{color:var(--foreground-muted);font-size:12px;font-weight:680}.submission-content-display p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.7}.submission-confirmation-copy{color:var(--foreground-muted);margin:0}.submission-loading{gap:var(--space-4);display:grid}.submission-skeleton{border-radius:var(--radius-sm);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.submission-skeleton--meta{width:min(100%,340px);height:32px}.submission-skeleton--editor{border:1px solid var(--border);height:250px}.submission-error{align-items:center;gap:var(--space-3);min-height:150px;color:var(--error);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.submission-error>div{gap:var(--space-1);min-width:0;display:grid}.submission-error p{color:var(--foreground-muted);margin:0;font-size:13px}@media (max-width:767px){.student-submission .ui-card__header,.student-submission .ui-card__content{padding-inline:var(--space-4)}.submission-heading{flex-direction:column;align-items:flex-start}.submission-actions{display:grid}.submission-actions .ui-button{width:100%}.submission-editor .ui-textarea{min-height:200px}.submission-error{grid-template-columns:auto minmax(0,1fr)}.submission-error .ui-button{grid-column:1/-1;width:100%}}.assignment-card--teacher{color:var(--foreground)}.assignment-card--teacher .assignment-card__heading h3 a{color:inherit;text-decoration:none}.assignment-card--teacher .assignment-card__heading h3 a:hover{color:var(--primary)}.assignment-card__actions{padding-top:var(--space-3);border-top:1px solid var(--border);justify-content:space-between;gap:var(--space-2) var(--space-4);flex-wrap:wrap;display:flex}.assignment-card__actions a{align-items:center;gap:var(--space-1);min-width:0;color:var(--foreground-muted);font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.assignment-card__actions a:hover{color:var(--primary)}.assignment-management__actions .portal-link-button{margin-top:0}.submission-review-list,.submission-review-detail,.submission-review-skeleton{gap:var(--space-6);min-width:0;display:grid}.submission-review-list>.course-back-link,.submission-review-detail>.course-back-link{justify-self:start}.submission-review-heading,.submission-detail-heading{justify-content:space-between;align-items:flex-start;gap:var(--space-5);min-width:0;display:flex}.submission-review-heading>div,.submission-detail-heading>div{min-width:0}.submission-review-heading h2,.submission-detail-heading h2{margin-bottom:var(--space-2);overflow-wrap:anywhere}.submission-review-heading>div>p:last-child,.submission-detail-heading>div>p:last-child{color:var(--foreground-muted);overflow-wrap:anywhere;margin:0}.submission-detail-heading__status{justify-items:end;gap:var(--space-2);flex:none;display:grid}.submission-detail-heading__status>span:last-child{color:var(--foreground-muted);font-size:12px;font-weight:650}.submission-review-summary{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));min-width:0;display:grid}.submission-review-summary article{min-width:0;min-height:86px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:var(--space-2);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.submission-review-summary article svg{color:var(--primary)}.submission-review-summary article span{min-width:0;color:var(--foreground-muted);font-size:12px;font-weight:650;line-height:1.35}.submission-review-summary article strong{font-size:24px;font-weight:760}.submission-filter-bar{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:end;gap:var(--space-4);background:var(--surface);grid-template-columns:minmax(180px,1fr) minmax(220px,1.25fr) minmax(150px,.7fr) auto;display:grid}.submission-filter-bar .ui-field{min-width:0}.submission-filter-bar .ui-select{width:100%;min-width:0}.submission-filter-bar>.ui-button{white-space:nowrap;margin-bottom:1px}.submission-review-table{min-width:0}.submission-review-table .ui-table{min-width:960px}.submission-review-table .ui-table__cell{vertical-align:middle}.submission-row-primary,.submission-row-context{gap:var(--space-1);min-width:0;color:inherit;text-decoration:none;display:grid}.submission-row-primary strong,.submission-row-context{overflow-wrap:anywhere}.submission-row-primary span,.submission-row-context span,.submission-review-table time{color:var(--foreground-muted);font-size:12px}.submission-row-primary:hover strong,.submission-row-context:hover{color:var(--primary)}.submission-row-status{justify-items:start;gap:var(--space-1);display:grid}.submission-row-status>span:last-child{color:var(--foreground-muted);font-size:11px;font-weight:620}.submission-row-open{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--foreground-muted);place-items:center;display:inline-grid}.submission-row-open:hover{color:var(--primary);background:var(--primary-muted)}.submission-review-mobile-list{display:none}.submission-detail-overview{gap:var(--space-5);grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);min-width:0;display:grid}.submission-detail-overview>.ui-card{min-width:0}.submission-detail-coursework,.submission-detail-timing{gap:var(--space-3);min-width:0;display:grid}.submission-detail-coursework>a{width:fit-content;max-width:100%;color:var(--foreground);overflow-wrap:anywhere;font-weight:680;text-decoration:none}.submission-detail-coursework>a:nth-child(2){color:var(--primary);font-size:13px;font-weight:620}.submission-detail-coursework>a:hover{text-decoration:underline}.submission-detail-coursework p{color:var(--foreground-muted);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.65}.submission-detail-timing strong{overflow-wrap:anywhere}.submission-detail-timing span{align-items:flex-start;gap:var(--space-2);min-width:0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;line-height:1.5;display:flex}.submission-detail-timing svg{color:var(--primary);flex:none;margin-top:2px}.submission-review-content,.submission-review-content .ui-card__content{min-width:0}.submission-review-content p{white-space:pre-wrap;overflow-wrap:anywhere;max-width:88ch;margin:0;line-height:1.8}.submission-student-metadata dl{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.submission-student-metadata dl>div{min-width:0;padding:var(--space-3);border-radius:var(--radius-sm);gap:var(--space-1);background:var(--surface-muted);display:grid}.submission-student-metadata dt{align-items:center;gap:var(--space-1);color:var(--foreground-muted);font-size:12px;display:flex}.submission-student-metadata dd{overflow-wrap:anywhere;margin:0;font-weight:650}.submission-review-skeleton>div{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:200% 100%;animation:1.4s ease-in-out infinite dashboard-shimmer}.submission-review-skeleton__heading{width:min(100%,480px);height:110px}.submission-review-skeleton__summary{height:86px}.submission-review-skeleton__filters{height:96px}.submission-review-skeleton__list{border:1px solid var(--border);height:390px}.submission-review-skeleton__detail{height:220px}.submission-review-skeleton__content{border:1px solid var(--border);height:320px}@media (max-width:1023px){.submission-review-summary,.submission-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.submission-filter-bar>.ui-button{justify-self:start}.submission-student-metadata dl{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:767px){.submission-review-list,.submission-review-detail,.submission-review-skeleton{gap:var(--space-5)}.submission-review-heading,.submission-detail-heading{gap:var(--space-4);flex-direction:column}.submission-detail-heading__status{justify-items:start}.submission-review-summary{gap:var(--space-3)}.submission-review-summary article{min-height:76px;padding:var(--space-3);grid-template-columns:auto minmax(0,1fr)}.submission-review-summary article strong{grid-column:2;font-size:22px}.submission-filter-bar{padding:var(--space-3);gap:var(--space-3);grid-template-columns:1fr}.submission-filter-bar>.ui-button{justify-self:stretch;width:100%}.submission-review-table{display:none}.submission-review-mobile-list{gap:var(--space-3);display:grid}.submission-mobile-row{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.submission-mobile-row__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.submission-mobile-row__heading>div{gap:var(--space-1);min-width:0;display:grid}.submission-mobile-row__heading a{color:var(--foreground);overflow-wrap:anywhere;font-weight:720;text-decoration:none}.submission-mobile-row__heading span,.submission-mobile-row__context a,.submission-mobile-row time{color:var(--foreground-muted);font-size:12px}.submission-mobile-row__context{gap:var(--space-1);min-width:0;display:grid}.submission-mobile-row__context a{overflow-wrap:anywhere;width:fit-content;max-width:100%;text-decoration:none}.submission-mobile-row__context a:first-child{color:var(--foreground);font-size:14px;font-weight:650}.submission-mobile-row time{align-items:flex-start;gap:var(--space-2);overflow-wrap:anywhere;display:flex}.submission-mobile-row time svg{flex:none;margin-top:1px}.submission-mobile-row__action{padding-top:var(--space-3);border-top:1px solid var(--border);color:var(--primary);justify-content:space-between;align-items:center;font-size:13px;font-weight:680;text-decoration:none;display:flex}.submission-detail-overview{gap:var(--space-4);grid-template-columns:1fr}.submission-detail-overview .ui-card__header,.submission-detail-overview .ui-card__content,.submission-review-content .ui-card__header,.submission-review-content .ui-card__content,.submission-student-metadata .ui-card__header,.submission-student-metadata .ui-card__content{padding-inline:var(--space-4)}.submission-student-metadata dl{gap:var(--space-3);grid-template-columns:1fr}.assignment-card__actions{display:grid}.assignment-management__actions .portal-link-button{justify-content:center;width:100%}}.calendar-page{gap:var(--space-6);width:min(100%,1320px);margin-inline:auto;display:grid}.calendar-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-5);display:flex}.calendar-heading h2{margin:var(--space-1) 0 var(--space-2)}.calendar-heading p:last-child{color:var(--foreground-muted);margin:0}.calendar-toolbar{padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-4);background:var(--surface);display:flex}.calendar-month-navigation{align-items:center;gap:var(--space-2);min-width:0;display:flex}.calendar-month-navigation h3{text-align:center;width:190px;margin:0;font-size:18px}.calendar-month-navigation .ui-button:first-child,.calendar-month-navigation .ui-button:nth-child(3){width:36px;padding-inline:var(--space-2)}.calendar-filters{border-radius:var(--radius-sm);background:var(--surface-muted);gap:2px;padding:3px;display:flex}.calendar-filter{min-height:34px;padding:var(--space-2) var(--space-3);color:var(--foreground-muted);cursor:pointer;background:0 0;border:0;border-radius:6px;font-size:13px;font-weight:620}.calendar-filter:hover{color:var(--foreground)}.calendar-filter--active{color:var(--primary);background:var(--surface);box-shadow:var(--shadow-xs)}.calendar-month{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;overflow:hidden}.calendar-weekdays,.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr));display:grid}.calendar-weekdays{border-bottom:1px solid var(--border);background:var(--surface-muted)}.calendar-weekdays span{padding:var(--space-3);color:var(--foreground-muted);text-align:center;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:680}.calendar-day{min-width:0;min-height:132px;padding:var(--space-2);border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);transition:background-color .12s}.calendar-day:nth-child(7n){border-right:0}.calendar-day:nth-last-child(-n+7){border-bottom:0}.calendar-day--outside{background:var(--surface-muted)}@supports (color:color-mix(in lab, red, red)){.calendar-day--outside{background:color-mix(in srgb, var(--surface-muted) 52%, var(--surface))}}.calendar-day--outside .calendar-day__date{color:var(--foreground-subtle)}.calendar-day--selected{background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.calendar-day--selected{background:color-mix(in srgb, var(--primary) 4%, var(--surface))}}.calendar-day--selected{box-shadow:inset 0 0 0 1px var(--primary)}@supports (color:color-mix(in lab, red, red)){.calendar-day--selected{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--primary) 38%, transparent)}}.calendar-day__date{width:28px;height:28px;color:var(--foreground);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;font-size:13px;font-weight:650;display:grid}.calendar-day__date:hover{background:var(--surface-muted)}.calendar-day__date--today{color:var(--primary-foreground);background:var(--primary)}.calendar-day__date--today:hover{background:var(--primary-hover)}.calendar-day__previews{min-width:0;margin-top:var(--space-1);gap:3px;display:grid}.calendar-preview{text-align:left;cursor:pointer;border:0;border-radius:5px;align-items:center;gap:5px;width:100%;min-width:0;padding:4px 6px;font-size:11px;font-weight:600;display:flex}.calendar-preview>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.calendar-preview__dot{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.calendar-preview--schedule{color:var(--info);background:var(--info-muted)}.calendar-preview--assignment{color:var(--warning);background:var(--warning-muted)}.calendar-preview--calendar_event{color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.calendar-preview--calendar_event{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.calendar-preview:hover{filter:brightness(.97)}.calendar-day__more{color:var(--foreground-muted);text-align:left;cursor:pointer;background:0 0;border:0;padding:2px 5px;font-size:11px;font-weight:620}.calendar-day__more:hover{color:var(--primary)}.calendar-day__skeleton{background:var(--surface-muted);border-radius:5px;height:20px;animation:1.2s ease-in-out infinite alternate calendar-pulse;display:block}.calendar-error{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);place-items:center;min-height:420px;display:grid}.calendar-agenda{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);overflow:hidden}.calendar-agenda>header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.calendar-agenda>header h3{margin:var(--space-1) 0 0;font-size:20px}.calendar-agenda>header>span{color:var(--foreground-muted);background:var(--surface-muted);border-radius:999px;padding:5px 10px;font-size:12px;font-weight:650}.calendar-agenda__list{display:grid}.calendar-agenda-item{min-width:0;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-4);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.calendar-agenda-item:last-child{border-bottom:0}.calendar-agenda-item__icon{border-radius:var(--radius-sm);width:40px;height:40px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.calendar-agenda-item__icon{background:color-mix(in srgb, var(--primary) 9%, var(--surface))}}.calendar-agenda-item--schedule .calendar-agenda-item__icon{color:var(--info);background:var(--info-muted)}.calendar-agenda-item--assignment .calendar-agenda-item__icon{color:var(--warning);background:var(--warning-muted)}.calendar-agenda-item__copy{gap:4px;min-width:0;display:grid}.calendar-agenda-item__copy>div{align-items:center;gap:var(--space-2);display:flex}.calendar-agenda-item__source,.calendar-agenda-item__status{color:var(--primary);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:720}.calendar-agenda-item__status{color:var(--foreground-muted);background:var(--surface-muted);letter-spacing:0;text-transform:none;border-radius:999px;padding:2px 6px}.calendar-agenda-item h4{overflow-wrap:anywhere;margin:0;font-size:16px}.calendar-agenda-item p{color:var(--foreground-muted);align-items:center;gap:5px;margin:0;font-size:13px;display:flex}.calendar-agenda__empty{min-height:180px;padding:var(--space-8);align-content:center;place-items:center;gap:var(--space-2);color:var(--foreground-muted);text-align:center;display:grid}.calendar-agenda__empty strong{color:var(--foreground)}.calendar-agenda__skeleton{padding:var(--space-5) var(--space-6);gap:var(--space-3);display:grid}.calendar-agenda__skeleton>div{border-radius:var(--radius-sm);background:var(--surface-muted);height:76px;animation:1.2s ease-in-out infinite alternate calendar-pulse}.calendar-event-form{gap:var(--space-4);display:grid}.calendar-event-form__times{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.calendar-event-form__error{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--error);background:var(--error)}@supports (color:color-mix(in lab, red, red)){.calendar-event-form__error{background:color-mix(in srgb, var(--error) 8%, var(--surface))}}.calendar-event-form__error{font-size:13px}.calendar-event-detail{gap:var(--space-5);display:grid}.calendar-event-detail p{gap:var(--space-1);margin:0;display:grid}.calendar-event-detail strong{text-transform:uppercase;letter-spacing:.05em;font-size:12px}.calendar-event-detail span{color:var(--foreground-muted);white-space:pre-wrap;line-height:1.6}.calendar-delete-copy{color:var(--foreground-muted);margin:0}@keyframes calendar-pulse{0%{opacity:.55}to{opacity:1}}@media (max-width:1279px){.calendar-page{width:100%}.calendar-heading{align-items:flex-start}.calendar-toolbar{flex-direction:column;align-items:stretch}.calendar-filters{align-self:flex-start}}@media (min-width:768px) and (max-width:1279px){.calendar-day{min-height:92px;padding:var(--space-2)}.calendar-day__previews{flex-wrap:wrap;align-content:flex-start;align-items:center;gap:1px;min-height:22px;display:flex}.calendar-day__previews .calendar-preview{background:0 0;flex:0 0 18px;justify-content:center;width:18px;height:18px;padding:0}.calendar-preview>span:last-child{display:none}.calendar-preview__dot{width:7px;height:7px}.calendar-day__more{padding:2px 3px;font-size:10px;line-height:1}.calendar-day__more-label{display:none}}@media (max-width:767px){.calendar-page{gap:var(--space-4)}.calendar-heading{flex-direction:column}.calendar-heading .ui-button{width:100%}.calendar-toolbar{padding:var(--space-3)}.calendar-month-navigation{grid-template-columns:36px minmax(0,1fr) 36px;display:grid}.calendar-month-navigation h3{width:auto;font-size:16px}.calendar-month-navigation .ui-button:last-child{grid-column:1/-1;width:100%}.calendar-filters{width:100%;overflow-x:auto}.calendar-filter{flex:1 0 auto}.calendar-weekdays span{padding:var(--space-2) 0;font-size:10px}.calendar-day{align-content:start;justify-items:center;min-height:54px;padding:4px;display:grid}.calendar-day__date{width:26px;height:26px;font-size:12px}.calendar-day__previews{justify-content:center;gap:2px;width:100%;margin-top:2px;display:flex}.calendar-preview{border-radius:50%;width:6px;height:6px;padding:0;overflow:hidden}.calendar-preview>span:last-child{display:none}.calendar-preview__dot{width:6px;height:6px}.calendar-day__more{padding:0;font-size:8px;line-height:1}.calendar-day__skeleton{width:18px;height:5px}.calendar-agenda>header{padding:var(--space-4);align-items:flex-start}.calendar-agenda>header h3{font-size:17px}.calendar-agenda-item{padding:var(--space-4);grid-template-columns:auto minmax(0,1fr);align-items:start}.calendar-agenda-item>.ui-button{grid-column:1/-1;width:100%}.calendar-agenda-item__icon{width:36px;height:36px}.calendar-event-form__times{grid-template-columns:1fr}}.management-page,.management-detail-page{gap:var(--space-6);width:min(100%,1320px);min-width:0;margin-inline:auto;display:grid}.management-heading,.management-detail-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-6);min-width:0;display:flex}.management-heading>div,.management-detail-heading>div:first-child{min-width:0}.management-heading h2,.management-detail-heading h2{margin-bottom:var(--space-2)}.management-heading p:last-child,.management-detail-heading p:last-child{color:var(--foreground-muted);margin:0}.management-toolbar{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:end;gap:var(--space-4);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:minmax(260px,1fr) minmax(150px,190px) minmax(220px,300px);display:grid}.management-toolbar--teachers{grid-template-columns:minmax(260px,1fr) minmax(150px,210px)}.management-search{min-width:0;position:relative}.management-search>svg{z-index:1;color:var(--foreground-muted);pointer-events:none;position:absolute;bottom:13px;left:13px}.management-search .ui-control{padding-left:40px}.management-table-view{min-width:0}.management-table{min-width:1040px}.management-person{align-items:center;gap:var(--space-3);white-space:nowrap;min-width:0;display:flex}.management-person strong{text-overflow:ellipsis;overflow:hidden}.management-muted,.management-email{color:var(--foreground-muted)}.management-email{text-overflow:ellipsis;white-space:nowrap;max-width:240px;display:inline-block;overflow:hidden}.management-row-actions{align-items:center;gap:2px;display:flex}.management-row-actions .ui-button{width:34px;padding:var(--space-2)}.management-icon-link{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--foreground-muted);place-items:center;text-decoration:none;display:inline-grid}.management-icon-link:hover{color:var(--primary);background:var(--surface-muted)}.management-course-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.management-mobile-list{display:none}.management-pagination{padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:flex-end;align-items:center;gap:var(--space-4);background:var(--surface);display:flex}.management-pagination>span{color:var(--foreground-muted);font-size:13px;font-weight:620}.management-list-skeleton{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--border);gap:1px;min-width:0;display:grid;overflow:hidden}.management-list-skeleton>div{background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:66px;animation:1.3s ease-in-out infinite dashboard-shimmer}.management-form{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.management-form__error{padding:var(--space-3);border-radius:var(--radius-sm);color:var(--error);background:var(--error-muted);grid-column:1/-1;margin:0;font-size:13px}.management-status-copy{gap:2px;margin:0;display:grid}.management-status-copy span{color:var(--foreground-muted);font-size:13px}.management-detail-title{align-items:center;gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.management-detail-title h2{margin:0}.management-detail-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.management-safety-note{margin:calc(-1 * var(--space-3)) 0 0;padding:var(--space-3) var(--space-4);border:1px solid var(--warning)}@supports (color:color-mix(in lab, red, red)){.management-safety-note{border:1px solid color-mix(in srgb, var(--warning) 28%, var(--border))}}.management-safety-note{border-radius:var(--radius-sm);color:var(--warning);background:var(--warning-muted);font-size:13px}.management-detail-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.management-detail-grid--account{grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.management-definition-list{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.management-definition-list div{gap:3px;min-width:0;display:grid}.management-definition-list dt,.management-compact-summary dt{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:680}.management-definition-list dd,.management-compact-summary dd{overflow-wrap:anywhere;min-width:0;margin:0;font-weight:650}.management-metrics{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.management-metrics article{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-muted);gap:3px;display:grid}.management-metrics svg{color:var(--primary)}.management-metrics span{color:var(--foreground-muted);font-size:12px}.management-metrics strong{overflow-wrap:anywhere;font-size:24px;line-height:1.2}.management-course-list{min-width:0;display:grid}.management-course-list>article,.management-course-list>a{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-4);color:inherit;text-decoration:none;display:flex}.management-course-list>:last-child{border-bottom:0;padding-bottom:0}.management-course-list>:first-child{padding-top:0}.management-course-list>a:hover strong{color:var(--primary)}.management-course-list>article>div,.management-course-list>a>span:first-child{min-width:0}.management-course-list>a:not(:has(>span:first-child)){min-width:0}.management-course-list>article>div,.management-course-list>a>span{gap:3px;display:grid}.management-course-list>article>div>span,.management-course-list>a span,.management-course-list small{color:var(--foreground-muted);font-size:12px}.management-course-list>article>span{align-items:center;gap:var(--space-2);flex:none;display:flex}.management-compact-summary{gap:var(--space-4);grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.management-compact-summary>div{min-width:0;padding:var(--space-3);border-radius:var(--radius-sm);background:var(--surface-muted);gap:3px;display:grid}.management-compact-summary dd{font-size:20px}.management-detail-skeleton{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.management-detail-skeleton>div{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:220px;animation:1.3s ease-in-out infinite dashboard-shimmer}.management-detail-skeleton>div:first-child{grid-column:1/-1;height:92px}.management-link-button{min-height:34px;padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);justify-content:center;align-items:center;gap:var(--space-2);color:var(--foreground);background:var(--surface);font-size:14px;font-weight:620;line-height:1;text-decoration:none;display:inline-flex}.management-link-button:hover{color:var(--primary);border-color:var(--primary)}@media (max-width:1100px){.management-toolbar{grid-template-columns:minmax(240px,1fr) minmax(140px,180px)}.management-toolbar>.ui-field:last-child{grid-column:1/-1}.management-toolbar--teachers{grid-template-columns:minmax(240px,1fr) minmax(140px,180px)}.management-toolbar--teachers>.ui-field:last-child{grid-column:auto}.management-detail-grid--account{grid-template-columns:1fr}}@media (max-width:767px){.management-page,.management-detail-page{gap:var(--space-4)}.management-heading,.management-detail-heading{align-items:stretch;gap:var(--space-4);flex-direction:column}.management-heading>.ui-button{width:100%}.management-detail-actions{flex-direction:column;align-items:stretch}.management-detail-actions .ui-button{width:100%}.management-toolbar,.management-toolbar--teachers{padding:var(--space-3);gap:var(--space-3);grid-template-columns:1fr}.management-toolbar>.ui-field:last-child,.management-toolbar--teachers>.ui-field:last-child{grid-column:auto}.management-table-view{display:none}.management-mobile-list{gap:var(--space-3);min-width:0;display:grid}.management-mobile-list>article{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.management-mobile-card__heading{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.management-mobile-list dl{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.management-mobile-list dl>div{gap:2px;min-width:0;display:grid}.management-mobile-list dt{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:680}.management-mobile-list dd{overflow-wrap:anywhere;margin:0;font-size:13px;font-weight:620}.management-mobile-card__actions{gap:var(--space-2);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.management-email{overflow-wrap:anywhere;white-space:normal;max-width:100%}.management-pagination{justify-content:space-between;gap:var(--space-2)}.management-pagination>span{text-align:center}.management-form{grid-template-columns:1fr}.management-detail-grid,.management-definition-list{gap:var(--space-4);grid-template-columns:1fr}.management-metrics,.management-compact-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.management-course-list>article{flex-direction:column;align-items:flex-start}.management-detail-skeleton{grid-template-columns:1fr}.management-detail-skeleton>div:first-child{grid-column:1}}.admin-course-management-list{max-width:1400px}.admin-course-toolbar{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:end;gap:var(--space-4);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:minmax(260px,1fr) minmax(160px,220px);display:grid}.admin-course-table-view{min-width:0}.admin-course-table-view .ui-table{min-width:980px}.admin-course-table-view td>span{gap:2px;display:grid}.admin-course-table-view td small{color:var(--foreground-muted);font-size:11px}.admin-course-warning{color:var(--warning);font-weight:650}.admin-course-mobile-list{display:none}.admin-course-heading-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.admin-card-action-row{margin-bottom:var(--space-4);justify-content:flex-end;display:flex}.admin-schedule-card{grid-column:1/-1}.admin-schedule-list{display:grid}.admin-schedule-list>article{min-width:0;padding:var(--space-4) 0;border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:var(--space-4);display:flex}.admin-schedule-list>article:first-child{padding-top:0}.admin-schedule-list>article:last-child{border-bottom:0;padding-bottom:0}.admin-schedule-list>article>div:first-child{align-items:center;gap:var(--space-3);flex:1;grid-template-columns:minmax(110px,.7fr) minmax(150px,1fr) minmax(110px,.8fr);min-width:0;display:grid}.admin-schedule-list span{align-items:center;gap:var(--space-2);min-width:0;color:var(--foreground-muted);overflow-wrap:anywhere;font-size:13px;display:inline-flex}.admin-schedule-list__actions{align-items:center;gap:var(--space-1);flex:none;display:flex}.admin-course-dialog-copy{gap:2px;margin:0;display:grid}.admin-course-dialog-copy span,.admin-course-dialog-note{color:var(--foreground-muted);font-size:13px}.admin-course-dialog-note{margin:var(--space-4) 0 0;line-height:1.6}@media (max-width:900px){.admin-course-heading-actions{width:100%}.admin-course-heading-actions .ui-button{flex:1}.course-detail-heading{flex-wrap:wrap}.admin-schedule-list>article{align-items:flex-start}.admin-schedule-list>article>div:first-child{gap:var(--space-2);grid-template-columns:1fr}}@media (max-width:767px){.admin-course-toolbar{padding:var(--space-3);gap:var(--space-3);grid-template-columns:1fr}.admin-course-table-view{display:none}.admin-course-mobile-list{gap:var(--space-3);min-width:0;display:grid}.admin-course-mobile-list>article{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.admin-course-mobile-list .management-mobile-card__heading>div{gap:var(--space-1);min-width:0;display:grid}.admin-course-mobile-list p{color:var(--foreground-muted);margin:0;font-size:13px}.admin-course-mobile-list dl{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.admin-course-mobile-list dl>div{gap:2px;min-width:0;display:grid}.admin-course-mobile-list dt{color:var(--foreground-muted);text-transform:uppercase;letter-spacing:.04em;font-size:10px;font-weight:680}.admin-course-mobile-list dd{margin:0;font-size:13px;font-weight:650}.admin-course-mobile-list .portal-link-button{width:100%;margin:0}.course-detail-heading,.admin-course-heading-actions{flex-direction:column;align-items:stretch}.admin-course-heading-actions .ui-button,.admin-card-action-row .ui-button{width:100%}.admin-schedule-list>article{flex-direction:column;align-items:stretch}.admin-schedule-list__actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.admin-schedule-list__actions .ui-button{width:100%}}.account-page{gap:var(--space-6);width:min(100%,1180px);min-width:0;margin:0 auto;display:grid}.account-heading{justify-content:space-between;align-items:flex-end;gap:var(--space-5);min-width:0;display:flex}.account-heading>div{min-width:0}.account-heading h2{margin-block:var(--space-1)}.account-heading p:not(.showcase-eyebrow){color:var(--foreground-muted);margin:0}.profile-identity-card{min-width:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);align-items:center;gap:var(--space-5);background:linear-gradient(135deg, var(--primary), var(--surface) 55%);display:flex}@supports (color:color-mix(in lab, red, red)){.profile-identity-card{background:linear-gradient(135deg, color-mix(in srgb, var(--primary) 9%, var(--surface)), var(--surface) 55%)}}.profile-identity-card{box-shadow:var(--shadow-sm)}.profile-identity-card>div{gap:var(--space-2);min-width:0;display:grid}.profile-identity-card__title{align-items:center;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.profile-identity-card h3{margin:0 var(--space-2) 0 0;overflow-wrap:anywhere;font-size:24px;line-height:1.25}.profile-identity-card p{align-items:center;gap:var(--space-2);color:var(--foreground-muted);overflow-wrap:anywhere;margin:0;font-size:14px;display:inline-flex}.profile-identity-card small{color:var(--foreground-muted);font-size:12px}.account-card-grid{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.account-info-card{min-width:0}.account-info-card .ui-card__content{gap:var(--space-5);display:grid;position:relative}.account-definition-list{gap:var(--space-5);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.account-definition-list>div{gap:var(--space-1);min-width:0;display:grid}.account-definition-list dt{color:var(--foreground-muted);letter-spacing:.045em;text-transform:uppercase;font-size:11px;font-weight:700}.account-definition-list dd{overflow-wrap:anywhere;margin:0;font-weight:650}.account-readonly-note{padding:var(--space-3);border-radius:var(--radius-md);align-items:flex-start;gap:var(--space-2);color:var(--foreground-muted);background:var(--surface-muted);margin:0;font-size:13px;display:flex}.account-readonly-note svg{color:var(--primary);flex:none;margin-top:2px}.account-card-icon{top:calc(-1 * var(--space-12));border-radius:var(--radius-md);width:38px;height:38px;color:var(--primary);background:var(--primary);place-items:center;display:grid;position:absolute;right:0}@supports (color:color-mix(in lab, red, red)){.account-card-icon{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.account-card-copy{color:var(--foreground-muted);margin:0;line-height:1.7}.settings-section{min-width:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);gap:var(--space-5);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.settings-section__heading{align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.settings-section__heading>span{border-radius:var(--radius-md);width:40px;height:40px;color:var(--primary);background:var(--primary);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.settings-section__heading>span{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.settings-section__heading h3{margin:0;font-size:18px}.settings-section__heading p{margin:var(--space-1) 0 0;color:var(--foreground-muted);font-size:14px}.theme-choice-grid{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.theme-choice{min-width:0;min-height:126px;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-content:start;gap:var(--space-3);color:var(--foreground);background:var(--surface);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;display:grid;position:relative}.theme-choice:hover{border-color:var(--border-strong);background:var(--surface-muted)}.theme-choice--selected{border-color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.theme-choice--selected{background:color-mix(in srgb, var(--primary) 7%, var(--surface))}}.theme-choice--selected{box-shadow:0 0 0 1px var(--primary)}.theme-choice__icon{border-radius:var(--radius-md);width:36px;height:36px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.theme-choice__icon{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.theme-choice>span:nth-child(2){gap:var(--space-1);min-width:0;display:grid}.theme-choice strong{font-size:15px}.theme-choice small{color:var(--foreground-muted);font-size:12px;line-height:1.5}.theme-choice__check{top:var(--space-4);right:var(--space-4);color:var(--primary);position:absolute}.settings-language .ui-field{width:min(100%,520px)}.settings-mobile-save{display:none}.settings-skeleton{gap:var(--space-5);display:grid}.settings-skeleton>div{border-radius:var(--radius-lg);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:180px;animation:1.3s ease-in-out infinite dashboard-shimmer}@media (max-width:767px){.account-page{gap:var(--space-4)}.account-heading{align-items:stretch;gap:var(--space-4);flex-direction:column}.account-heading>.ui-button{width:100%}.profile-identity-card{padding:var(--space-5);align-items:flex-start}.profile-identity-card h3{font-size:20px}.profile-identity-card__title{align-items:flex-start}.account-card-grid,.account-definition-list{gap:var(--space-4);grid-template-columns:1fr}.settings-section{padding:var(--space-4);gap:var(--space-4)}.theme-choice-grid{gap:var(--space-3);grid-template-columns:1fr}.theme-choice{grid-template-columns:38px minmax(0,1fr);align-content:center;align-items:start;min-height:94px}.settings-page .account-heading>.ui-button{display:none}.settings-mobile-save{display:block}.settings-mobile-save .ui-button{width:100%}}.announcement-page,.announcement-detail{gap:var(--space-5);width:min(100%,1240px);min-width:0;margin:0 auto;display:grid}.announcement-heading,.announcement-detail__heading{justify-content:space-between;align-items:flex-end;gap:var(--space-5);min-width:0;display:flex}.announcement-heading>div,.announcement-detail__heading>div:first-child{min-width:0}.announcement-heading h2,.announcement-detail__heading h2{margin-block:var(--space-1);overflow-wrap:anywhere}.announcement-heading p:not(.showcase-eyebrow),.announcement-detail__heading p{color:var(--foreground-muted);margin:0}.announcement-summary{gap:var(--space-4);grid-template-columns:repeat(3,minmax(0,1fr));min-width:0;display:grid}.announcement-summary article{min-width:0;padding:var(--space-4) var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:flex}.announcement-summary span{color:var(--foreground-muted);font-size:13px;font-weight:680}.announcement-summary strong{font-size:24px;line-height:1}.announcement-toolbar{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);align-items:end;gap:var(--space-4);background:var(--surface);box-shadow:var(--shadow-sm);grid-template-columns:repeat(2,minmax(180px,240px));display:grid}.announcement-table{min-width:0}.announcement-table .ui-table{min-width:980px}.announcement-table td:first-child{max-width:330px}.announcement-table td:first-child strong,.announcement-table td:first-child small{overflow-wrap:anywhere;display:block}.announcement-table td:first-child small{margin-top:var(--space-1);color:var(--foreground-muted);line-height:1.45}.announcement-table td:nth-child(4),.announcement-table td:nth-child(5){color:var(--foreground-muted);white-space:nowrap;font-size:12px}.announcement-mobile-list{display:none}.announcement-reader-list{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.announcement-reader-card{min-width:0;padding:var(--space-5);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);color:inherit;background:var(--surface);box-shadow:var(--shadow-sm);text-decoration:none;transition:border-color .15s,transform .15s,box-shadow .15s;display:grid}.announcement-reader-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.announcement-reader-card>span{justify-content:space-between;align-items:center;gap:var(--space-3);min-width:0;display:flex}.announcement-reader-card time{color:var(--foreground-muted);text-align:right;font-size:12px}.announcement-reader-card h3{overflow-wrap:anywhere;margin:0;font-size:18px}.announcement-reader-card p{min-height:3em;color:var(--foreground-muted);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;line-height:1.55;display:-webkit-box;overflow:hidden}.announcement-reader-card>strong{align-items:center;gap:var(--space-2);color:var(--primary);font-size:13px;display:inline-flex}.announcement-skeleton{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.announcement-skeleton>div{border-radius:var(--radius-md);background:linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted));background-size:220% 100%;height:160px;animation:1.3s ease-in-out infinite dashboard-shimmer}.announcement-form{gap:var(--space-4);min-width:0;display:grid}.announcement-form__error{padding:var(--space-3);border-radius:var(--radius-md);color:var(--error);background:var(--error-muted);font-size:13px}.announcement-detail{gap:var(--space-6)}.announcement-detail__heading{align-items:flex-start}.announcement-detail__badges{align-items:center;gap:var(--space-2);display:flex}.announcement-detail__actions{justify-content:flex-end;align-items:center;gap:var(--space-2);flex-wrap:wrap;flex:none;display:flex}.announcement-content-card{min-width:0;padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);gap:var(--space-6);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.announcement-content-card__meta{min-width:0;padding-bottom:var(--space-4);border-bottom:1px solid var(--border);align-items:center;gap:var(--space-3) var(--space-5);color:var(--foreground-muted);flex-wrap:wrap;font-size:12px;display:flex}.announcement-content-card__meta span{align-items:center;gap:var(--space-2);display:inline-flex}.announcement-content-card>p{color:var(--foreground);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;line-height:1.8}.announcement-detail-skeleton{gap:var(--space-5);display:grid}.announcement-detail-skeleton>div{border-radius:var(--radius-md);background:var(--surface-muted);height:48px}.announcement-detail-skeleton>div:nth-child(2){height:100px}.announcement-detail-skeleton>div:last-child{height:280px}@media (max-width:1100px){.announcement-table{display:none}.announcement-mobile-list{gap:var(--space-4);grid-template-columns:repeat(2,minmax(0,1fr));min-width:0;display:grid}.announcement-mobile-list article{min-width:0;padding:var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);gap:var(--space-3);background:var(--surface);box-shadow:var(--shadow-sm);display:grid}.announcement-mobile-list article>div{justify-content:space-between;align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.announcement-mobile-list article strong{overflow-wrap:anywhere}.announcement-mobile-list dl{gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));margin:0;display:grid}.announcement-mobile-list dl>div{gap:2px;min-width:0;display:grid}.announcement-mobile-list dt{color:var(--foreground-muted);text-transform:uppercase;font-size:10px;font-weight:700}.announcement-mobile-list dd{overflow-wrap:anywhere;margin:0;font-size:12px}.announcement-mobile-list .portal-link-button{width:100%;margin:0}}@media (max-width:767px){.announcement-page,.announcement-detail{gap:var(--space-4)}.announcement-heading,.announcement-detail__heading{flex-direction:column;align-items:stretch}.announcement-heading>.ui-button{width:100%}.announcement-summary{gap:var(--space-2)}.announcement-summary article{padding:var(--space-3);flex-direction:column;align-items:flex-start}.announcement-summary strong{font-size:20px}.announcement-toolbar{padding:var(--space-3);gap:var(--space-3);grid-template-columns:1fr}.announcement-mobile-list,.announcement-reader-list,.announcement-skeleton{gap:var(--space-3);grid-template-columns:1fr}.announcement-mobile-list dl{grid-template-columns:1fr}.announcement-reader-card{padding:var(--space-4)}.announcement-reader-card>span{align-items:flex-start;gap:var(--space-2);flex-direction:column}.announcement-reader-card time{text-align:left}.announcement-detail__actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.announcement-detail__actions .ui-button{width:100%}.announcement-content-card{padding:var(--space-4);gap:var(--space-4)}.announcement-content-card__meta{flex-direction:column;align-items:flex-start}}.ai-page{gap:var(--space-5);width:min(100%,1000px);min-width:0;margin:0 auto;display:grid}.ai-page__header{justify-content:space-between;align-items:flex-end;gap:var(--space-6);min-width:0;display:flex}.ai-page__header>div:first-child{min-width:0}.ai-page__header h2{margin:var(--space-2) 0 0;font-size:clamp(28px,3vw,38px);line-height:1.15}.ai-page__header p:not(.showcase-eyebrow){margin:var(--space-2) 0 0;color:var(--foreground-muted)}.ai-page__header-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.ai-provider,.ai-context-label{align-items:center;gap:var(--space-2);width:max-content;max-width:100%;color:var(--primary);font-size:12px;font-weight:720;display:inline-flex}.ai-provider{padding:7px var(--space-3);border:1px solid var(--primary)}@supports (color:color-mix(in lab, red, red)){.ai-provider{border:1px solid color-mix(in srgb, var(--primary) 24%, var(--border))}}.ai-provider{border-radius:var(--radius-full);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ai-provider{background:color-mix(in srgb, var(--primary) 7%, var(--surface))}}.ai-readonly-note{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--info)}@supports (color:color-mix(in lab, red, red)){.ai-readonly-note{border:1px solid color-mix(in srgb, var(--info) 26%, var(--border))}}.ai-readonly-note{border-radius:var(--radius-md);align-items:flex-start;gap:var(--space-3);color:var(--foreground-muted);background:var(--info-muted);display:flex}@supports (color:color-mix(in lab, red, red)){.ai-readonly-note{background:color-mix(in srgb, var(--info-muted) 56%, var(--surface))}}.ai-readonly-note{font-size:13px;line-height:1.55}.ai-readonly-note svg{color:var(--info);flex:none}.ai-chat-shell{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);min-width:0;min-height:610px;box-shadow:var(--shadow-sm);grid-template-rows:auto minmax(330px,1fr) auto;display:grid;overflow:hidden}.ai-context-label{padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--border);background:var(--surface-muted)}.ai-conversation{min-width:0;max-height:min(58vh,680px);padding:var(--space-6);gap:var(--space-5);overscroll-behavior:contain;flex-direction:column;display:flex;overflow-y:auto}.ai-conversation--empty{justify-content:center}.ai-welcome{justify-items:center;gap:var(--space-3);text-align:center;width:min(100%,760px);margin:auto;display:grid}.ai-welcome__icon,.ai-availability__icon{border-radius:var(--radius-lg);width:56px;height:56px;color:var(--primary);background:var(--primary);place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.ai-welcome__icon,.ai-availability__icon{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.ai-welcome h3,.ai-availability h3{margin:var(--space-1) 0 0;font-size:22px}.ai-welcome>p,.ai-availability p{color:var(--foreground-muted);margin:0;font-size:14px}.ai-suggestions{width:100%;margin-top:var(--space-4);gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ai-suggestions button{min-width:0;min-height:64px;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:var(--space-3);color:var(--foreground);background:var(--surface);font:inherit;text-align:left;cursor:pointer;font-size:14px;font-weight:650;line-height:1.4;display:flex}.ai-suggestions button:hover{border-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ai-suggestions button:hover{border-color:color-mix(in srgb, var(--primary) 55%, var(--border))}}.ai-suggestions button:hover{color:var(--primary);background:var(--primary)}@supports (color:color-mix(in lab, red, red)){.ai-suggestions button:hover{background:color-mix(in srgb, var(--primary) 5%, var(--surface))}}.ai-suggestions button:disabled{cursor:wait;opacity:.6}.ai-suggestions button span{overflow-wrap:anywhere;min-width:0}.ai-suggestions button svg{flex:none}.ai-message{align-items:flex-start;gap:var(--space-3);min-width:0;display:flex}.ai-message--user{flex-direction:row-reverse}.ai-message__avatar{border-radius:var(--radius-md);width:34px;height:34px;color:var(--primary);background:var(--primary);flex:none;place-items:center;display:grid}@supports (color:color-mix(in lab, red, red)){.ai-message__avatar{background:color-mix(in srgb, var(--primary) 10%, var(--surface))}}.ai-message--user .ai-message__avatar{color:var(--primary-foreground);background:var(--primary)}.ai-message__body{gap:6px;min-width:0;max-width:min(78%,720px);display:grid}.ai-message--user .ai-message__body{justify-items:end}.ai-message__author,.ai-message__source{color:var(--foreground-muted);font-size:11px;font-weight:660}.ai-message__bubble{min-width:0;padding:var(--space-3) var(--space-4);border:1px solid var(--border);border-radius:4px var(--radius-lg) var(--radius-lg) var(--radius-lg);color:var(--foreground);background:var(--surface-muted);overflow-wrap:anywhere}.ai-message--user .ai-message__bubble{border-color:var(--primary);border-radius:var(--radius-lg) 4px var(--radius-lg) var(--radius-lg);color:var(--primary-foreground);background:var(--primary)}.ai-message__bubble p{white-space:pre-wrap;margin:0;line-height:1.65}.ai-message__bubble--error{border-color:var(--error)}@supports (color:color-mix(in lab, red, red)){.ai-message__bubble--error{border-color:color-mix(in srgb, var(--error) 35%, var(--border))}}.ai-message__bubble--error{background:var(--error-muted)}.ai-message__bubble--error strong{color:var(--error);display:block}.ai-message__bubble--error p{margin:var(--space-2) 0 var(--space-3);color:var(--foreground-muted)}.ai-thinking{align-items:center;gap:var(--space-2);color:var(--foreground-muted);font-size:13px;display:flex}.ai-thinking svg{color:var(--primary)}.ai-thinking i{background:var(--primary);border-radius:50%;width:5px;height:5px;animation:1.1s ease-in-out infinite ai-pulse}.ai-thinking i:nth-last-child(2){animation-delay:.14s}.ai-thinking i:last-child{animation-delay:.28s}@keyframes ai-pulse{0%,70%,to{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.ai-composer{min-width:0;padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);align-items:end;gap:var(--space-3);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;display:grid}.ai-composer .ui-field{min-width:0}.ai-composer .ui-field__label{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.ai-composer .ui-textarea{resize:vertical;min-height:76px;max-height:170px}.ai-composer>.ui-button{margin-bottom:23px}.ai-composer__disclaimer{color:var(--foreground-muted);grid-column:1/-1;margin:-4px 0 0;font-size:11px;line-height:1.45}.ai-availability,.ai-loading{min-height:420px;padding:var(--space-8);border:1px solid var(--border);border-radius:var(--radius-lg);justify-content:center;align-items:center;gap:var(--space-4);background:var(--surface);text-align:left;box-shadow:var(--shadow-sm);display:flex}.ai-loading{color:var(--primary)}.ai-loading span{background:currentColor;border-radius:50%;width:10px;height:10px;animation:1.1s ease-in-out infinite ai-pulse}.ai-loading span:nth-last-child(2){animation-delay:.14s}.ai-loading span:last-child{animation-delay:.28s}@media (max-width:767px){.ai-page{gap:var(--space-4)}.ai-page__header{align-items:flex-start;gap:var(--space-3);flex-direction:column}.ai-page__header-actions{justify-content:space-between;width:100%}.ai-chat-shell{border-radius:var(--radius-md);grid-template-rows:auto minmax(300px,1fr) auto;min-height:calc(100dvh - 235px)}.ai-context-label{padding-inline:var(--space-4)}.ai-conversation{max-height:none;padding:var(--space-4);gap:var(--space-4)}.ai-suggestions{grid-template-columns:minmax(0,1fr)}.ai-message__body{max-width:calc(100% - 44px)}.ai-composer{padding:var(--space-3);grid-template-columns:minmax(0,1fr)}.ai-composer>.ui-button{width:100%;margin-bottom:0}.ai-composer__disclaimer{grid-column:1}.ai-availability{min-height:360px;padding:var(--space-6);text-align:center;flex-direction:column;align-items:center}}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
