/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@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-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;--font-weight-medium:500;--font-weight-bold:700;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-2xl:1rem;--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}.absolute{position:absolute}.relative{position:relative}.static{position:static}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.rounded-2xl{border-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.blur{--tw-blur:blur(8px);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{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-alt:#f1f5f9;--color-border:#64748b;--color-divider:#e2e8f0;--color-text:#0f172a;--color-text-muted:#475569;--color-on-brand:#fff;--color-brand-start:#9333ea;--color-brand-end:#4f46e5;--color-brand-solid:#6d28d9;--gradient-brand:linear-gradient(135deg, var(--color-brand-start), var(--color-brand-end));--color-danger:#b91c1c;--color-success:#166534;--color-warning:#92400e;--color-focus-ring:#4f46e5;--color-backdrop:#0f172a80;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-2xl:1rem;--radius-full:9999px;--font-family-base:"Heebo", system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--font-size-xs:.75rem;--font-size-sm:.875rem;--font-size-md:1rem;--font-size-lg:1.125rem;--font-size-xl:1.375rem;--font-size-2xl:1.75rem;--line-height-tight:1.25;--line-height-normal:1.5;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:700;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 4px 12px #0f172a1f;--shadow-lg:0 12px 32px #0f172a29;--motion-duration-fast:.12s;--motion-duration-base:.2s;--motion-easing-standard:cubic-bezier(.2, 0, 0, 1);--touch-target-min:44px;--bottom-nav-height:64px;--side-rail-width:88px;--z-side-rail:20;--z-bottom-nav:20;--z-page-header:10;--z-toast:1600;--z-dialog:1500;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-bg:#020617;--color-surface:#0f172a;--color-surface-alt:#1e293b;--color-border:#64748b;--color-divider:#1e293b;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-on-brand:#fff;--color-brand-start:#a855f7;--color-brand-end:#818cf8;--color-brand-solid:#7c3aed;--color-danger:#f87171;--color-success:#4ade80;--color-warning:#fbbf24;--color-focus-ring:#818cf8;--color-backdrop:#000000a6;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 16px 40px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--color-bg:#020617;--color-surface:#0f172a;--color-surface-alt:#1e293b;--color-border:#64748b;--color-divider:#1e293b;--color-text:#f1f5f9;--color-text-muted:#94a3b8;--color-on-brand:#fff;--color-brand-start:#a855f7;--color-brand-end:#818cf8;--color-brand-solid:#7c3aed;--color-danger:#f87171;--color-success:#4ade80;--color-warning:#fbbf24;--color-focus-ring:#818cf8;--color-backdrop:#000000a6;--shadow-sm:0 1px 2px #0006;--shadow-md:0 4px 16px #00000080;--shadow-lg:0 16px 40px #0009;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--color-bg:#f8fafc;--color-surface:#fff;--color-surface-alt:#f1f5f9;--color-border:#64748b;--color-divider:#e2e8f0;--color-text:#0f172a;--color-text-muted:#475569;--color-on-brand:#fff;--color-brand-start:#9333ea;--color-brand-end:#4f46e5;--color-brand-solid:#6d28d9;--color-danger:#b91c1c;--color-success:#166534;--color-warning:#92400e;--color-focus-ring:#4f46e5;--color-backdrop:#0f172a80;--shadow-sm:0 1px 2px #0f172a14;--shadow-md:0 4px 12px #0f172a1f;--shadow-lg:0 12px 32px #0f172a29;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-family-base);font-size:var(--font-size-md);line-height:var(--line-height-normal)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:2000;padding:var(--space-2) var(--space-4);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);transition:transform var(--motion-duration-fast) var(--motion-easing-standard);position:fixed;inset-block-start:var(--space-2);inset-inline-start:var(--space-2);transform:translateY(-200%)}.skip-link:focus-visible{transform:translateY(0)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--touch-target-min);padding-inline:var(--space-5);padding-block:var(--space-2);border-radius:var(--radius-full);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);line-height:var(--line-height-tight);cursor:pointer;transition:background-color var(--motion-duration-fast) var(--motion-easing-standard), border-color var(--motion-duration-fast) var(--motion-easing-standard), opacity var(--motion-duration-fast) var(--motion-easing-standard);border:1px solid #0000;display:inline-flex}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.btn--primary{background:var(--color-brand-solid);color:var(--color-on-brand)}.btn--secondary{background:var(--color-surface-alt);color:var(--color-text);border-color:var(--color-border)}.btn--ghost{color:var(--color-brand-solid);background:0 0}.btn--danger{background:var(--color-danger);color:var(--color-on-brand)}.btn__spinner{display:inline-flex}.spinner{border-radius:var(--radius-full);border:3px solid var(--color-surface-alt);border-inline-start-color:var(--color-brand-solid);animation:.8s linear infinite spinner-rotate;display:inline-block}.spinner--sm{border-width:2px;block-size:1rem;inline-size:1rem}.spinner--md{block-size:1.5rem;inline-size:1.5rem}.spinner--lg{border-width:4px;block-size:2.5rem;inline-size:2.5rem}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.card{background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm);padding:var(--space-5)}.card--interactive{cursor:pointer;transition:box-shadow var(--motion-duration-base) var(--motion-easing-standard)}.card--interactive:hover,.card--interactive:focus-visible{box-shadow:var(--shadow-md)}.field{gap:var(--space-1);flex-direction:column;display:flex}.field__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.field__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.field__error{font-size:var(--font-size-xs);color:var(--color-danger);font-weight:var(--font-weight-medium)}.input,.select{min-inline-size:0;min-height:var(--touch-target-min);padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md)}.input::placeholder{color:var(--color-text-muted)}.input:focus-visible,.select:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:1px}.input[aria-invalid=true],.select[aria-invalid=true]{border-color:var(--color-danger)}.date-field{position:relative}.date-field__trigger{justify-content:space-between;align-items:center;gap:var(--space-2);cursor:pointer;text-align:start;inline-size:100%;display:flex}.date-field__value{font-variant-numeric:tabular-nums}.date-field__popover{z-index:20;gap:var(--space-2);inline-size:max-content;max-inline-size:min(20rem, calc(100vw - 2 * var(--space-4)));padding:var(--space-3);border-radius:var(--radius-lg);border:1px solid var(--color-divider);background:var(--color-surface);box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;inset-block-start:calc(100% + var(--space-1));inset-inline-start:0}.date-field__nav{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.date-field__nav-btn{min-inline-size:var(--touch-target-min);min-block-size:var(--touch-target-min);border-radius:var(--radius-full);color:var(--color-text);cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.date-field__nav-btn:focus-visible,.date-field__day:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.date-field__month{font-weight:var(--font-weight-bold)}.date-field__grid{grid-template-columns:repeat(7,1fr);gap:2px;display:grid}.date-field__weekday{font-size:var(--font-size-xs);color:var(--color-text-muted);justify-content:center;align-items:center;block-size:1.75rem;display:flex}.date-field__blank{display:block}.date-field__day{border-radius:var(--radius-md);min-block-size:2.5rem;color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);font-variant-numeric:tabular-nums;cursor:pointer;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;display:flex}.date-field__day--today{border-color:var(--color-brand-solid)}.date-field__day--selected{background:var(--color-brand-solid);color:var(--color-on-brand)}.date-field__footer{justify-content:flex-end;display:flex}.time-field__segments{align-items:center;gap:var(--space-1);display:flex}.time-field__segment{text-align:center;font-variant-numeric:tabular-nums;inline-size:3.5rem}.time-field__separator{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text)}.chip{min-height:var(--touch-target-min);padding-inline:var(--space-4);border-radius:var(--radius-full);border:2px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-easing-standard), border-color var(--motion-duration-fast) var(--motion-easing-standard), color var(--motion-duration-fast) var(--motion-easing-standard);justify-content:center;align-items:center;display:inline-flex}.chip:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.chip[aria-pressed=true]{background:var(--gradient-brand);color:var(--color-on-brand);font-weight:var(--font-weight-bold);border-color:#0000}.chip:disabled{opacity:.5;cursor:not-allowed}.badge{padding-inline:var(--space-3);padding-block:var(--space-1);border-radius:var(--radius-full);background:var(--color-surface-alt);color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);white-space:nowrap;align-items:center;display:inline-flex}.badge--success{color:var(--color-success)}.badge--warning{color:var(--color-warning)}.badge--danger{color:var(--color-danger)}.badge--brand{background:var(--color-brand-solid);color:var(--color-on-brand)}.checkbox-row{align-items:center;gap:var(--space-3);min-block-size:var(--touch-target-min);padding-inline:var(--space-2);cursor:pointer;display:flex}.checkbox-row input[type=checkbox]{block-size:22px;inline-size:22px;accent-color:var(--color-brand-solid);flex-shrink:0}.textarea{padding-inline:var(--space-4);padding-block:var(--space-2);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-family:inherit;font-size:var(--font-size-md);resize:vertical;min-block-size:6rem}.textarea:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:1px}.dialog-backdrop{z-index:var(--z-dialog);background:var(--color-backdrop);padding:var(--space-4);justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=768px){.dialog-backdrop{align-items:center}}.dialog{background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);flex-direction:column;max-block-size:85vh;inline-size:100%;max-inline-size:32rem;display:flex;overflow:hidden}.dialog__header{justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-block-end:1px solid var(--color-divider);display:flex}.dialog__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);margin:0}.dialog__close{inline-size:var(--touch-target-min);block-size:var(--touch-target-min);border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.dialog__close:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.dialog__body{padding:var(--space-5);overflow-y:auto}.dialog__footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-block-start:1px solid var(--color-divider);display:flex}.empty-state{text-align:center;align-items:center;gap:var(--space-3);padding:var(--space-8) var(--space-4);color:var(--color-text-muted);flex-direction:column;display:flex}.empty-state__icon{color:var(--color-text-muted)}.empty-state__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text)}.placeholder-screen{text-align:center;justify-content:center;align-items:center;gap:var(--space-2);min-block-size:60vh;padding:var(--space-6);color:var(--color-text-muted);flex-direction:column;display:flex}.placeholder-screen__badge{padding-inline:var(--space-3);padding-block:var(--space-1);border-radius:var(--radius-full);background:var(--gradient-brand);color:var(--color-on-brand);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);display:inline-flex}.page-header{z-index:var(--z-page-header);justify-content:space-between;align-items:center;gap:var(--space-3);padding-inline:var(--space-4);padding-block:var(--space-3);background:var(--color-surface);border-block-end:3px solid #0000;border-image:var(--gradient-brand) 1;display:flex;position:sticky;inset-block-start:0}.page-header__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);margin:0}.page-header__actions{align-items:center;gap:var(--space-2);display:flex}.bottom-nav{z-index:var(--z-bottom-nav);block-size:var(--bottom-nav-height);background:var(--color-surface);border-block-start:1px solid var(--color-divider);box-shadow:var(--shadow-md);justify-content:space-around;display:flex;position:fixed;inset-block-end:0;inset-inline:0}.side-rail{z-index:var(--z-side-rail);inline-size:var(--side-rail-width);background:var(--color-surface);border-inline-end:1px solid var(--color-divider);padding-block:var(--space-4);align-items:stretch;gap:var(--space-1);flex-direction:column;display:none;position:fixed;inset-block:0;inset-inline-start:0;overflow-y:auto}@media (width>=768px){.bottom-nav{display:none}.side-rail{display:flex}.app-shell__content{margin-inline-start:var(--side-rail-width)}}.nav-item{justify-content:center;align-items:center;gap:var(--space-1);min-inline-size:var(--touch-target-min);min-block-size:var(--touch-target-min);padding:var(--space-2);color:var(--color-text-muted);font-size:var(--font-size-xs);border-radius:var(--radius-md);flex-direction:column;text-decoration:none;display:flex}.nav-item:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:-2px}.nav-item[aria-current=page]{color:var(--color-brand-solid);font-weight:var(--font-weight-bold)}.app-shell__content{min-block-size:100vh;padding-block-end:calc(var(--bottom-nav-height) + var(--space-4))}@media (width>=768px){.app-shell__content{padding-block-end:var(--space-4)}}.floating-support-button{z-index:var(--z-bottom-nav);min-inline-size:var(--touch-target-min);min-block-size:var(--touch-target-min);padding:var(--space-3);border-radius:var(--radius-full);box-shadow:var(--shadow-lg);position:fixed;inset-block-end:calc(var(--bottom-nav-height) + var(--space-4));inset-inline-end:var(--space-4)}@media (width>=768px){.floating-support-button{inset-block-end:var(--space-6)}}.portal-header{justify-content:space-between;align-items:center;gap:var(--space-3);padding-inline:var(--space-4);padding-block:var(--space-3);background:var(--color-surface);border-block-end:3px solid #0000;border-image:var(--gradient-brand) 1;display:flex}.portal-header__brand{font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-text);text-decoration:none}.portal-nav a{color:var(--color-text-muted);font-weight:var(--font-weight-medium);min-block-size:var(--touch-target-min);align-items:center;text-decoration:none;display:inline-flex}.portal-nav a[aria-current=page]{color:var(--color-brand-solid)}.portal-nav a:focus-visible{outline:3px solid var(--color-focus-ring);outline-offset:2px}.portal-main{min-block-size:70vh}.portal-footer{padding:var(--space-6) var(--space-4);color:var(--color-text-muted);text-align:center;border-block-start:1px solid var(--color-divider)}.teaching-swal-popup{border-radius:var(--radius-2xl)!important;background:var(--color-surface)!important;color:var(--color-text)!important;font-family:var(--font-family-base)!important}.teaching-swal-title{color:var(--color-text)!important}.teaching-swal-confirm{background:var(--color-brand-solid)!important;color:var(--color-on-brand)!important;border-radius:var(--radius-full)!important}.teaching-swal-cancel{background:var(--color-surface-alt)!important;color:var(--color-text)!important;border-radius:var(--radius-full)!important}.teaching-swal-toast{background:var(--color-surface)!important;color:var(--color-text)!important}.rating-badge{align-items:center;gap:var(--space-1);font-weight:600;display:inline-flex}.rating-badge__count{color:var(--color-text-muted);font-weight:400}.rating-input{margin:0 0 var(--space-4);border:0;padding:0}.rating-input__options{gap:var(--space-3);flex-wrap:wrap;display:flex}.rating-input__option{align-items:center;gap:var(--space-2);cursor:pointer;min-height:2.75rem;display:inline-flex}.reviews-list{margin:var(--space-3) 0 0;gap:var(--space-3);flex-direction:column;padding:0;list-style:none;display:flex}.reviews-list__item{border-top:1px solid var(--color-divider);padding-top:var(--space-3)}.reviews-list__head{align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.skip-link{background:var(--color-surface);color:var(--color-text);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);z-index:50;inset-inline-start:var(--space-4);position:absolute;top:-100%}.skip-link:focus{top:var(--space-2)}.portal-header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-divider);display:flex}.portal-header__brand{color:var(--color-brand-solid);font-size:1.1rem;font-weight:700;text-decoration:none}.portal-nav{align-items:center;gap:var(--space-4);display:flex}.portal-nav a{color:var(--color-text-muted);text-decoration:none}.portal-nav a.active,.portal-nav a[aria-current=page]{color:var(--color-text);font-weight:600}.portal-main{max-width:960px;min-height:60vh;padding:var(--space-6) var(--space-4);margin:0 auto}.portal-footer{text-align:center;padding:var(--space-6);color:var(--color-text-muted)}.screen-container{gap:var(--space-4);flex-direction:column;display:flex}.screen-loading{padding:var(--space-10);justify-content:center;align-items:center;display:flex}.chip-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.chip--static{border-radius:var(--radius-sm);padding:var(--space-1) var(--space-3);background:var(--color-surface-alt);color:var(--color-text);align-items:center;font-size:.85rem;display:inline-flex}.portal-hero{text-align:center;padding:var(--space-8) 0;gap:var(--space-2);flex-direction:column;display:flex}.portal-hero h1{font-size:1.75rem}.portal-search-form{gap:var(--space-4);max-width:640px;margin:0 auto;display:grid}.portal-search-form__row{gap:var(--space-3);grid-template-columns:2fr 1fr;display:grid}@media (width<=640px){.portal-search-form__row{grid-template-columns:1fr}}.portal-teacher-cta{margin-top:var(--space-10);text-align:center;padding:var(--space-6);border-radius:var(--radius-lg);background:var(--color-surface-alt)}.portal-results-header{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.portal-results-layout{gap:var(--space-4);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=800px){.portal-results-layout{grid-template-columns:1fr}}.portal-results-list{gap:var(--space-3);flex-direction:column;display:flex}.portal-map{border-radius:var(--radius-lg);width:100%;height:420px;overflow:hidden}.portal-map__unavailable{padding:var(--space-6);text-align:center;color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.portal-map__pin{background:var(--color-brand-solid);border:2px solid var(--color-on-brand);cursor:pointer;border-radius:999px;width:1.5rem;height:1.5rem;padding:0}.portal-card{display:block}.portal-card__link{color:inherit;text-decoration:none;display:block}.portal-card__head{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.portal-card__headline{color:var(--color-text-muted)}.portal-card__meta{margin:var(--space-2) 0 0;gap:var(--space-3);color:var(--color-text-muted);flex-wrap:wrap;padding:0;font-size:.9rem;list-style:none;display:flex}.portal-card__meta li{align-items:center;gap:var(--space-1);display:flex}.portal-card__identity{align-items:center;gap:var(--space-3);display:flex}.portal-card__photo,.portal-profile__photo{border-radius:var(--radius-full);object-fit:cover;width:3rem;height:3rem}.portal-card__rating{align-items:center;gap:var(--space-3);color:var(--color-text-muted);font-size:.9rem;display:flex}.portal-card__grades{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:.9rem}.reveal-panel{align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}.reveal-value{align-items:center;gap:var(--space-2);min-height:2.75rem;display:inline-flex}.reveal-ad{z-index:1000;background:var(--color-backdrop);padding:var(--space-4);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.reveal-ad__panel{background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);justify-content:center;align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;width:min(28rem,100%);min-height:60vh;display:flex}.reveal-ad__badge{background:var(--color-surface-alt);border-radius:var(--radius-full);padding:var(--space-1) var(--space-3);align-self:flex-start;font-size:.85rem}.reveal-ad__count{font-size:1.25rem;font-weight:600}.portal-profile{gap:var(--space-4);flex-direction:column;display:flex}.portal-profile__contact{gap:var(--space-2);flex-direction:column;align-items:flex-start;display:flex}.portal-marketing{text-align:center;gap:var(--space-6);padding:var(--space-8) 0;flex-direction:column;display:flex}.a11y-widget{inset-inline-end:var(--space-4);bottom:var(--space-4);z-index:40;position:fixed}.a11y-widget__button{border-radius:999px;justify-content:center;align-items:center;width:3rem;height:3rem;padding:0;display:inline-flex}.a11y-widget__panel{bottom:calc(100% + var(--space-2));background:var(--color-surface);border:1px solid var(--color-divider);border-radius:var(--radius-md);padding:var(--space-4);gap:var(--space-3);min-width:220px;box-shadow:var(--shadow-md);flex-direction:column;display:flex;position:absolute;inset-inline-end:0}.a11y-widget__row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}:root[data-a11y-text=lg]{font-size:112.5%}:root[data-a11y-text=xl]{font-size:125%}:root[data-a11y-contrast=high]{--color-text-muted:var(--color-text);--color-divider:var(--color-border)}:root[data-a11y-contrast=high] *{border-width:2px!important}@property --tw-border-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}
