@import"https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Cardo:wght@400;700&family=Noto+Sans+TC:wght@400;500;600;700&display=swap";@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Noto+Sans+TC:wght@400;500;600;700;800;900&display=swap";:root,.ec-teacher-ui{--ec-radius-sm: 8px;--ec-radius-md: 12px;--ec-radius-lg: 16px;--ec-radius-xl: 20px;--ec-radius-pill: 9999px;--ec-radius-full: 50%;--ec-radius-button: var(--ec-radius-md);--ec-radius-card: var(--ec-radius-lg);--ec-radius-input: var(--ec-radius-md);--ec-radius-sheet: var(--ec-radius-xl);--ec-radius-fab: var(--ec-radius-full)}:root,.ec-teacher-ui{--ec-font-family-tc: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--ec-font-family-en: "Inter", "SF Pro Text", system-ui, sans-serif;--ec-font-family-display: "Cardo", "Georgia", "Times New Roman", serif;--ec-font-family: var(--ec-font-family-tc), var(--ec-font-family-en);--ec-font-size-caption: 12px;--ec-font-size-body: 14px;--ec-font-size-body-lg: 15px;--ec-font-size-title: 18px;--ec-font-size-headline: 20px;--ec-font-size-display: 28px;--ec-font-size-display-lg: 34px;--ec-line-height-tight: 1.25;--ec-line-height-body: 1.5;--ec-line-height-relaxed: 1.625;--ec-font-weight-regular: 400;--ec-font-weight-medium: 500;--ec-font-weight-semibold: 600;--ec-font-weight-bold: 700;--ec-letter-spacing-tight: -.01em}:root,.ec-teacher-ui{--ec-shadow-none: none;--ec-shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--ec-shadow-card: 0 2px 8px rgba(0, 0, 0, .06);--ec-shadow-fab: 0 4px 16px rgba(0, 0, 0, .12);--ec-shadow-sheet: 0 -4px 24px rgba(0, 0, 0, .08)}:root,.ec-teacher-ui{--ec-duration-instant: 80ms;--ec-duration-fast: .12s;--ec-duration-normal: .2s;--ec-duration-sheet: .24s;--ec-duration-success: .3s;--ec-ease-standard: cubic-bezier(.4, 0, .2, 1);--ec-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ec-ease-out: cubic-bezier(0, 0, .2, 1)}.ec-error-page{--ec-error-hero-mint: #bee9e8;--ec-error-hero-ink: #2a6f6d;--ec-error-sheet-overlap: 64px;--ec-error-max: 420px;position:relative;min-height:100dvh;width:100%;margin:0;overflow-x:hidden;background:var(--ec-color-bg);color:var(--ec-color-text);font-family:var(--ec-font-family)}.ec-error-page[data-tone=amber]{--ec-error-hero-mint: #fde8c8;--ec-error-hero-ink: #92400e}.ec-error-page[data-tone=rose]{--ec-error-hero-mint: #fddedc;--ec-error-hero-ink: #9f1239}.ec-error-hero{position:relative;flex-shrink:0;min-height:200px;padding:calc(var(--ec-space-5) + var(--ec-safe-top)) var(--ec-space-5) calc(var(--ec-error-sheet-overlap) + var(--ec-space-6));overflow:hidden;background:var(--ec-error-hero-mint)}.ec-error-hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:70% top;object-position:70% top;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.55}.ec-error-page[data-tone=amber] .ec-error-hero__bg,.ec-error-page[data-tone=rose] .ec-error-hero__bg{opacity:.28;mix-blend-mode:multiply}.ec-error-hero__content{position:relative;z-index:1;display:flex;flex-direction:column;gap:var(--ec-space-2);max-width:var(--ec-error-max);margin:0 auto}.ec-error-hero__brand{display:flex;align-items:center;gap:var(--ec-space-2)}.ec-error-hero__logo{width:36px;height:36px;border-radius:var(--ec-radius-md);-o-object-fit:contain;object-fit:contain;background:var(--ec-color-surface);box-shadow:var(--ec-shadow-sm)}.ec-error-hero__brand-text{margin:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);letter-spacing:.02em;color:var(--ec-error-hero-ink)}.ec-error-hero__brand-name{margin:0;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);color:var(--ec-error-hero-ink)}.ec-error-hero__code{margin:var(--ec-space-3) 0 0;font-family:var(--ec-font-family-display);font-size:clamp(3.75rem,16vw,5.75rem);font-weight:var(--ec-font-weight-bold);line-height:.9;letter-spacing:var(--ec-letter-spacing-tight);color:var(--ec-error-hero-ink);opacity:.88;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-error-hero__hint{margin:var(--ec-space-1) 0 0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-error-hero-ink);opacity:.75}.ec-error-sheet{position:relative;z-index:2;width:min(100%,var(--ec-error-max));margin:calc(-1 * var(--ec-error-sheet-overlap)) auto 0;padding:var(--ec-space-2) var(--ec-space-6) calc(var(--ec-space-6) + var(--ec-safe-bottom));background:var(--ec-color-surface);border-radius:var(--ec-radius-sheet) var(--ec-radius-sheet) 0 0;box-shadow:var(--ec-shadow-sheet);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--ec-space-3);min-height:calc(100dvh - 200px + var(--ec-error-sheet-overlap))}.ec-error-sheet__grabber{width:40px;height:4px;border-radius:var(--ec-radius-pill);background:var(--ec-color-border-strong);margin:var(--ec-space-1) 0 var(--ec-space-2);flex-shrink:0}.ec-error-sheet__mascot{display:flex;justify-content:center;align-items:center;margin:0}.ec-error-sheet__mascot-img{width:112px;height:auto;display:block;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;animation:ec-error-mascot-in .55s var(--ec-ease-out) both}.ec-error-sheet__badge{display:inline-flex;align-items:center;gap:var(--ec-space-2);padding:6px 12px;border-radius:var(--ec-radius-pill);border:1px solid var(--ec-color-border);background:var(--ec-color-surface-muted);color:var(--ec-color-text-secondary);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);letter-spacing:.02em}.ec-error-page[data-tone=indigo] .ec-error-sheet__badge{background:#2a6f6d1a;border-color:transparent;color:var(--ec-error-hero-ink)}.ec-error-page[data-tone=amber] .ec-error-sheet__badge{background:var(--ec-color-warning-bg);border-color:transparent;color:var(--ec-color-warning)}.ec-error-page[data-tone=rose] .ec-error-sheet__badge{background:var(--ec-color-danger-bg);border-color:transparent;color:var(--ec-color-danger)}.ec-error-sheet__icon{display:inline-flex;width:18px;height:18px;flex-shrink:0}.ec-error-sheet__copy{display:flex;flex-direction:column;gap:var(--ec-space-2);width:100%;animation:ec-error-rise .5s var(--ec-ease-out) .08s both}.ec-error-sheet__title{margin:0;font-family:var(--ec-font-family-display);font-size:var(--ec-font-size-display);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);letter-spacing:var(--ec-letter-spacing-tight);color:var(--ec-color-text)}.ec-error-sheet__desc{margin:0;font-size:var(--ec-font-size-body-lg);line-height:var(--ec-line-height-relaxed);color:var(--ec-color-text-secondary)}.ec-error-sheet__detail{margin:var(--ec-space-1) 0 0;width:100%;padding:var(--ec-space-2) var(--ec-space-3);border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);border:1px solid var(--ec-color-border);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);word-break:break-all}.ec-error-sheet__extra{width:100%;text-align:left}.ec-error-sheet__extra .ec-error-admin-tip{border-radius:var(--ec-radius-md);border:1px solid #fde68a;background:#fffbeb;padding:var(--ec-space-3) var(--ec-space-4)}.ec-error-sheet__extra .ec-error-admin-tip__title{margin:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:#92400e}.ec-error-sheet__extra .ec-error-admin-tip__body{margin:var(--ec-space-1) 0 0;font-size:var(--ec-font-size-body);line-height:var(--ec-line-height-body);color:#a16207}.ec-error-actions{display:flex;flex-direction:column;gap:var(--ec-space-3);width:100%;margin-top:var(--ec-space-2);animation:ec-error-rise .5s var(--ec-ease-out) .16s both}.ec-error-actions .ec-btn{width:100%;min-height:48px;border-radius:var(--ec-radius-lg);font-size:var(--ec-font-size-body-lg);font-weight:var(--ec-font-weight-bold);text-decoration:none}.ec-error-actions .ec-btn--primary{box-shadow:var(--ec-shadow-sm)}.ec-error-login{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--ec-space-1);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-primary);text-decoration:none}.ec-error-login:hover{text-decoration:underline}.ec-error-footer{margin:auto 0 0;padding-top:var(--ec-space-6);font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);text-align:center;max-width:280px}@keyframes ec-error-mascot-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ec-error-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ec-error-sheet__mascot-img,.ec-error-sheet__copy,.ec-error-actions{animation:none}}@media(min-width:640px){.ec-error-page{display:flex;flex-direction:column}.ec-error-hero{min-height:280px;padding-bottom:calc(var(--ec-error-sheet-overlap) + var(--ec-space-10))}.ec-error-sheet{width:min(100% - 48px,var(--ec-error-max));margin-bottom:var(--ec-space-10);border-radius:var(--ec-radius-sheet);box-shadow:var(--ec-shadow-card);border:1px solid var(--ec-color-border);min-height:0;padding-bottom:var(--ec-space-8)}.ec-error-sheet__mascot-img{width:160px}.ec-error-actions{flex-direction:row}.ec-error-actions .ec-btn{flex:1}}.ec-sched-card{--ec-sched-accent: #434e88;--ec-sched-accent-soft: rgba(67, 78, 136, .08);--ec-sched-border: #eef1f6;--ec-sched-now: #2563eb;--ec-sched-now-soft: #eff6ff;margin:0;width:100%;max-width:100%;min-width:0;box-sizing:border-box;overflow:hidden;border:1px solid var(--ec-sched-border);border-radius:18px;background:#fff;box-shadow:0 8px 24px #0f172a0f}.ec-sched-card__head{display:flex;align-items:flex-start;gap:12px;padding:14px 14px 12px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid var(--ec-sched-border)}.ec-sched-card__date-block{flex-shrink:0;width:48px;text-align:center;padding:6px 4px;border-radius:12px;background:var(--ec-sched-accent-soft);color:var(--ec-sched-accent)}.ec-sched-card__date-month{margin:0;font-size:10px;font-weight:700;letter-spacing:.02em;line-height:1.1;opacity:.85}.ec-sched-card__date-day{margin:2px 0 0;font-size:20px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.ec-sched-card__head-body{min-width:0;flex:1;padding-top:2px}.ec-sched-card__kicker{margin:0;font-size:11px;font-weight:600;color:#94a3b8}.ec-sched-card__title{margin:2px 0 0;font-size:17px;font-weight:800;color:#0f172a;line-height:1.3}.ec-sched-card__title-code{margin-left:4px;font-weight:700;color:#64748b}.ec-sched-card__chips{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-bottom:1px solid var(--ec-sched-border);background:#fafbfc}.ec-sched-card__chip{display:inline-flex;align-items:center;max-width:100%;padding:4px 10px;border-radius:999px;border:1px solid transparent;font-size:11px;font-weight:700;line-height:1.3}.ec-sched-card__chip--slate{background:#f1f5f9;color:#475569;border-color:#e2e8f0}.ec-sched-card__chip--emerald{background:#ecfdf5;color:#047857;border-color:#a7f3d0}.ec-sched-card__chip--amber{background:#fffbeb;color:#b45309;border-color:#fde68a}.ec-sched-card__chip--rose{background:#fff1f2;color:#be123c;border-color:#fecdd3}.ec-sched-card__chip--indigo{background:var(--ec-sched-accent-soft);color:var(--ec-sched-accent);border-color:#c7cce0}.ec-sched-card__spotlight{margin:10px 14px 0;padding:12px 14px;border-radius:14px;border:1px solid var(--ec-sched-border);background:#f8fafc}.ec-sched-card__spotlight.is-live{border-color:#bfdbfe;background:var(--ec-sched-now-soft)}.ec-sched-card__spotlight-label{margin:0 0 4px;font-size:11px;font-weight:700;color:#94a3b8}.ec-sched-card__spotlight.is-live .ec-sched-card__spotlight-label{color:var(--ec-sched-now)}.ec-sched-card__spotlight-title{margin:0;font-size:15px;font-weight:800;color:#0f172a;line-height:1.3}.ec-sched-card__spotlight-meta{margin:2px 0 0;font-size:12px;font-weight:600;color:#64748b}.ec-sched-card__next{margin:8px 14px 0;font-size:12px;font-weight:600;color:#64748b;line-height:1.4}.ec-sched-card__list-wrap{padding:12px 14px 14px}.ec-sched-card__list-label{margin:0 0 8px;font-size:13px;font-weight:800;color:#334155}.ec-sched-card__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;max-height:min(42vh,280px);overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch}.ec-sched-card__row{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid var(--ec-sched-border);background:#fff;text-align:left}.ec-sched-card__row.is-current{border-color:#434e8859;background:var(--ec-sched-accent-soft)}.ec-sched-card__row.is-free{background:#f8fafc}.ec-sched-card__period{flex-shrink:0;width:44px;text-align:center}.ec-sched-card__period-label{margin:0;font-size:10px;font-weight:700;color:#94a3b8;line-height:1.1}.ec-sched-card__period-num{margin:2px 0 0;font-size:18px;font-weight:800;color:#0f172a;line-height:1.1;font-variant-numeric:tabular-nums}.ec-sched-card__row.is-current .ec-sched-card__period-num{color:var(--ec-sched-accent)}.ec-sched-card__main{min-width:0;flex:1}.ec-sched-card__subject{margin:0;font-size:16px;font-weight:700;color:#0f172a;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-sched-card__row.is-free .ec-sched-card__subject{color:#64748b;font-weight:600}.ec-sched-card__meta{margin:2px 0 0;font-size:13px;font-weight:600;color:#94a3b8;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-abs-card{--ec-abs-accent: #434e88;--ec-abs-accent-soft: rgba(67, 78, 136, .08);--ec-abs-border: #eef1f6;margin-top:10px;display:flex;flex-direction:column;min-width:0;max-width:100%;width:100%;overflow:visible;border:1px solid var(--ec-abs-border);border-radius:16px;background:#fff;box-shadow:0 6px 18px #0f172a0d}.ec-abs-card__head{display:flex;align-items:flex-start;gap:12px;flex-shrink:0;padding:12px 14px;background:linear-gradient(180deg,#f8fafc,#fff);border-bottom:1px solid var(--ec-abs-border)}.ec-abs-card__date-block{flex-shrink:0;width:48px;text-align:center;padding:6px 4px;border-radius:12px;background:var(--ec-abs-accent-soft);color:var(--ec-abs-accent)}.ec-abs-card__date-month{margin:0;font-size:10px;font-weight:700;line-height:1.1}.ec-abs-card__date-day{margin:2px 0 0;font-size:20px;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}.ec-abs-card__head-body{min-width:0;flex:1;padding-top:2px}.ec-abs-card__kicker{margin:0;font-size:11px;font-weight:700;color:#94a3b8}.ec-abs-card__title{margin:2px 0 0;font-size:17px;font-weight:800;color:#0f172a;line-height:1.3}.ec-abs-card__notice{margin:10px 14px 0;flex-shrink:0;padding:10px 12px;border-radius:12px;border:1px solid var(--ec-abs-border);background:#f8fafc;font-size:14px;font-weight:600;line-height:1.5;color:#475569}.ec-abs-card__notice strong{color:var(--ec-abs-accent);font-weight:800}.ec-abs-card__meta{display:flex;flex-wrap:wrap;gap:6px 10px;flex-shrink:0;margin:10px 14px 0;padding:0 2px;font-size:12px;font-weight:600;color:#64748b}.ec-abs-card__meta-item{display:inline-flex;align-items:center;gap:4px}.ec-abs-card__list-wrap{flex:0 0 auto;min-height:0;padding:12px 14px;overflow:visible}.ec-abs-card__list-label{margin:0 0 8px;font-size:15px;font-weight:800;color:#334155}.ec-abs-card__list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;max-height:none;overflow:visible}.ec-abs-card__row{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--ec-abs-border);background:#fff}.ec-abs-card__period{flex-shrink:0;width:44px;text-align:center}.ec-abs-card__period-label{margin:0;font-size:10px;font-weight:700;color:#94a3b8;line-height:1.1}.ec-abs-card__period-num{margin:2px 0 0;font-size:18px;font-weight:800;color:var(--ec-abs-accent);line-height:1.1;font-variant-numeric:tabular-nums}.ec-abs-card__main{min-width:0;flex:1}.ec-abs-card__subject{margin:0;font-size:15px;font-weight:800;color:#0f172a;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-abs-card__detail{margin:2px 0 0;font-size:13px;font-weight:600;color:#94a3b8;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-abs-card__status{flex-shrink:0;padding:5px 10px;border-radius:999px;background:var(--ec-abs-accent-soft);color:var(--ec-abs-accent);font-size:12px;font-weight:800;white-space:nowrap}.ec-abs-card__empty,.ec-abs-card__loading{margin:0;padding:8px 2px;font-size:12px;font-weight:600;color:#64748b;line-height:1.45}.ec-abs-card__loading{display:flex;align-items:center;gap:8px}.ec-abs-card__actions{display:flex;gap:8px;flex-shrink:0;padding:0 14px 14px;background:#fff}.ec-abs-card__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:44px;padding:0 14px;border-radius:12px;border:1px solid transparent;font:inherit;font-size:15px;font-weight:800;cursor:pointer}.ec-abs-card__btn:disabled{opacity:.55;cursor:not-allowed}.ec-abs-card__btn--primary{flex:1;background:var(--ec-abs-accent);color:#fff}.ec-abs-card__btn--ghost{background:#fff;color:#475569;border-color:#e2e8f0}.ec-abs-card--done{padding:14px;border-color:#bbf7d0;background:#f0fdf4}.ec-abs-card__done-title{margin:0;font-size:14px;font-weight:800;color:#166534}.ec-abs-card__done-body{margin:6px 0 0;font-size:12px;font-weight:600;line-height:1.45;color:#15803d}.ec-ai-bubble--bot:has(.ec-abs-card){max-width:100%;width:100%;padding:12px;background:#fff;border:1px solid #eef1f6;box-shadow:0 6px 18px #0f172a0d;white-space:normal;box-sizing:border-box;min-width:0;overflow:visible}.ec-ai-reply--absence-intro{gap:8px;margin-bottom:0}.ec-ai-reply--absence-intro .ec-ai-reply__intro{font-size:13px;color:#475569}.ec-ai-empty .ec-ai-prompts,.ec-ai-prompts{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;grid-auto-rows:minmax(88px,auto);gap:12px!important;margin-top:20px!important;width:100%;text-align:left}.ec-ai-empty .ec-ai-prompt,.ec-ai-prompt{display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:flex-start!important;gap:8px!important;box-sizing:border-box;width:100%;min-height:88px!important;padding:16px!important;border:none;border-radius:16px;background:#f1f5f9;font-family:inherit;font-size:18px!important;font-weight:500;line-height:1.25;color:#0f172a;text-align:left;cursor:pointer}.ec-ai-empty .ec-ai-prompt:active,.ec-ai-prompt:active{transform:scale(.98);background:#e2e8f0}.ec-ai-empty .ec-ai-prompt__icon,.ec-ai-prompt__icon{flex-shrink:0;font-size:32px!important;line-height:1!important}.ec-ai-empty .ec-ai-prompt__label,.ec-ai-prompt__label{display:block;width:100%;font-size:18px!important;line-height:1.25;white-space:normal;word-break:break-word}.ec-ask-ai-page.ec-app-shell{max-width:none;width:100%;min-height:0;height:100%;flex:1;display:flex;flex-direction:column;overflow:hidden}.ec-ask-ai-page .ec-ai-panel--tab,.ec-ask-ai-page .ec-ai-panel{flex:1 1 auto;min-height:0;min-width:0;width:100%;max-width:100%;overflow:hidden}.ec-ask-ai-page .ec-ai-panel__body,.ec-ai-panel__body#ai-body{flex:1 1 auto;min-height:0;min-width:0;width:100%;max-width:100%;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.ec-ask-ai-page .ec-ai-panel__composer,.ec-ai-panel__composer{flex-shrink:0;min-width:0;width:100%;max-width:100%}.ec-ai-panel__body .ec-ai-msg{max-width:100%;min-width:0}.ec-ai-panel__body .ec-ai-msg--user{width:100%}.ec-ai-panel__body .ec-ai-bubble{box-sizing:border-box;min-width:0;max-width:calc(100% - 48px);width:-moz-fit-content;width:fit-content;overflow-wrap:anywhere;word-break:break-word;white-space:normal}.ec-ai-panel__body .ec-ai-msg--user .ec-ai-bubble{max-width:min(85%,calc(100% - 12px))}.ec-ai-panel__body .ec-ai-bubble--bot:has(.ec-ai-reply),.ec-ai-panel__body .ec-ai-bubble--bot:has(.ec-ai-typing-status),.ec-ai-panel__body .ec-ai-bubble--bot:has(.ec-abs-card),.ec-ai-panel__body .ec-ai-bubble--bot:has(.ec-sched-card),.ec-ai-panel__body .ec-ai-bubble--schedule,.ec-ai-panel__body .ec-ai-bubble--rich{display:flex;flex-direction:column;gap:10px;width:calc(100% - 48px);max-width:calc(100% - 48px);min-width:0;padding:12px;overflow:visible}.ec-ai-panel__body .ec-ai-reply,.ec-ai-panel__body .ec-abs-card,.ec-ai-panel__body .ec-sched-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box}.ec-ai-panel__body .ec-ai-bubble--schedule{padding:0;background:transparent;border:0;box-shadow:none}.ec-ask-ai-page .ec-ai-history__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.ec-ask-ai-page .ec-ai-history__item-body{flex:1;min-width:0}.ec-ask-ai-page .ec-ai-attachment{display:flex;align-items:center;gap:10px;min-width:0;margin-bottom:8px;padding:8px 10px;border-radius:12px;background:#f1f5f9;color:#334155}.ec-ask-ai-page .ec-ai-attachment__thumb{width:40px;height:40px;flex-shrink:0;border-radius:8px;-o-object-fit:cover;object-fit:cover}.ec-ask-ai-page .ec-ai-attachment__name{min-width:0;flex:1;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.ec-ask-ai-page .ec-ai-attachment__remove{width:30px;height:30px;flex-shrink:0;border:0;border-radius:50%;background:#e2e8f0;color:#475569;font:inherit;font-size:20px;line-height:1;cursor:pointer}.ec-ask-ai-page .ec-ai-composer__interim{margin:0 0 6px;overflow:hidden;color:#6d28d9;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.ec-ask-ai-page .ec-ai-composer__tool.is-disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.ec-ask-ai-page #ai-voice{width:44px;height:44px;border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);color:var(--ec-color-text-secondary);box-shadow:none}.ec-ask-ai-page #ai-voice.bg-red-500{background:#ef4444;color:#fff}.ec-ask-ai-page #ai-voice.bg-violet-200{background:#ddd6fe;color:#5b21b6}.ec-ask-ai-page .ec-ai-bubble--user{display:flex;flex-direction:column;gap:8px}.ec-ask-ai-page .ec-ai-bubble__image{display:block;width:min(220px,100%);max-height:240px;border-radius:10px;-o-object-fit:contain;object-fit:contain}.ec-ask-ai-page .ec-ai-bubble__image-name{display:block;font-size:12px;opacity:.85}@media(min-width:1024px){.ec-ask-ai-page .ec-ai-panel--tab{padding-bottom:0}}.ec-ai-bubble--bot:has(.ec-ai-reply),.ec-ai-bubble--bot:has(.ec-ai-typing-status){max-width:100%;width:100%;padding:14px 14px 12px;background:#fff;border:1px solid #eef1f6;box-shadow:0 6px 18px #0f172a0d;white-space:normal;font-size:16px;box-sizing:border-box;min-width:0;overflow:hidden}.ec-ai-reply{display:flex;flex-direction:column;gap:12px;min-width:0;color:#0f172a;font-size:16px;line-height:1.55}.ec-ai-reply__teacher{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:14px;background:#434e8814}.ec-ai-reply__teacher-avatar{flex-shrink:0;width:40px;height:40px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#434e88;color:#fff;font-size:17px;font-weight:800}.ec-ai-reply__teacher-meta{min-width:0;flex:1}.ec-ai-reply__teacher-name{margin:0;font-size:17px;font-weight:800;color:#1e293b;line-height:1.25}.ec-ai-reply__teacher-code{margin:3px 0 0;font-size:13px;font-weight:700;color:#64748b;letter-spacing:.02em}.ec-ai-reply__teacher-hi{flex-shrink:0;padding:5px 10px;border-radius:999px;background:#fff;color:#434e88;font-size:13px;font-weight:700;border:1px solid #c7cce0}.ec-ai-reply__date{display:flex;align-items:baseline;gap:8px;margin:0;padding:0 2px}.ec-ai-reply__date-label{font-size:13px;font-weight:700;color:#94a3b8}.ec-ai-reply__date-value{font-size:15px;font-weight:800;color:#334155}.ec-ai-reply__topic{margin:0;padding:0 2px;font-size:18px;font-weight:800;color:#434e88;line-height:1.35}.ec-ai-reply__intro,.ec-ai-reply__plain,.ec-ai-reply__footer{margin:0;padding:0 2px;font-size:16px;font-weight:500;line-height:1.6;color:#334155;white-space:pre-wrap;word-break:break-word}.ec-ai-reply__footer{padding-top:4px;border-top:1px dashed #e2e8f0;font-size:14px;color:#64748b}.ec-ai-reply__sections{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}.ec-ai-reply__section{padding:12px 14px;border-radius:14px;border:1px solid #eef1f6;background:#f8fafc}.ec-ai-reply__section-title{margin:0 0 6px;font-size:16px;font-weight:800;color:#434e88;line-height:1.35}.ec-ai-reply__section-body{margin:0;font-size:15px;font-weight:500;line-height:1.55;color:#334155;white-space:pre-wrap;word-break:break-word}.ec-ai-reply__strong{font-weight:800;color:#0f172a}.ec-ai-reply__quote{display:inline;padding:0 3px;border-radius:4px;background:#434e8814;color:#434e88;font-weight:700}.ec-ai-bubble--typing:has(.ec-ai-typing-status){display:block;min-width:220px;max-width:min(100%,340px);padding:14px}.ec-ai-typing-status{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:6px 10px;min-width:180px;align-items:center}.ec-ai-typing-status__dots{display:inline-flex;align-items:center;gap:5px;height:20px}.ec-ai-typing-status__dots i{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:ec-ai-typing-bounce 1.1s ease-in-out infinite}.ec-ai-typing-status__dots i:nth-child(2){animation-delay:.15s}.ec-ai-typing-status__dots i:nth-child(3){animation-delay:.3s}.ec-ai-typing-status__copy{min-width:0}.ec-ai-typing-status__label{margin:0;font-size:15px;font-weight:800;color:#334155;line-height:1.2}.ec-ai-typing-status__detail{margin:3px 0 0;font-size:13px;font-weight:600;color:#94a3b8;line-height:1.3}.ec-ai-typing-status__bar{grid-column:1 / -1;height:4px;border-radius:999px;background:#e2e8f0;overflow:hidden}.ec-ai-typing-status__bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#64748b,#434e88);transition:width .35s ease}.ec-ai-typing-status.is-slow .ec-ai-typing-status__label{color:#434e88}.ec-ai-typing-status.is-slow .ec-ai-typing-status__bar span{background:linear-gradient(90deg,#434e88,#2563eb);animation:ec-ai-typing-pulse 1.4s ease-in-out infinite}@keyframes ec-ai-typing-bounce{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-3px);opacity:1}}@keyframes ec-ai-typing-pulse{0%,to{opacity:.75}50%{opacity:1}}@media(prefers-reduced-motion:reduce){.ec-ai-typing-status__dots i,.ec-ai-typing-status.is-slow .ec-ai-typing-status__bar span{animation:none}}.ec-ask-ai-overlay{position:fixed;top:0;right:0;bottom:0;left:52px;z-index:2147483001;pointer-events:none}@media(max-width:1023px){.ec-ask-ai-overlay{top:0;right:0;bottom:0;left:0}}.ec-ask-ai-overlay.is-open{pointer-events:auto}.ec-ask-ai-overlay__scrim{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;margin:0;padding:0;border:0;background:#0f172a47;opacity:0;pointer-events:none;cursor:pointer;transition:opacity .22s ease}.ec-ask-ai-overlay__scrim.is-open{opacity:1;pointer-events:auto}.ec-ask-ai-overlay__drawer{position:absolute;top:0;right:0;bottom:0;z-index:2;width:min(460px,94%);display:flex;flex-direction:column;overflow:hidden;background:#fff;border-left:1px solid #e2e8f0;box-shadow:-16px 0 40px #0f172a1f;transform:translate(105%);transition:transform .28s cubic-bezier(.22,1,.36,1);pointer-events:none}.ec-ask-ai-overlay__drawer.is-open{transform:translate(0);pointer-events:auto}.ec-ask-ai-overlay__drawer .ec-ai-panel--drawer{position:relative;inset:auto;z-index:1;display:flex;flex-direction:column;flex:1;min-height:0;height:100%;width:100%;opacity:1;transform:none;pointer-events:auto;background:#fff;padding-bottom:0}.ec-ask-ai-overlay__drawer .ec-ai-panel__header{min-height:100px;padding-top:16px;padding-bottom:16px}.ec-ask-ai-overlay__drawer .ec-ai-panel__body{flex:1;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:16px 18px 12px}.ec-ask-ai-overlay__drawer .ec-ai-bubble{box-sizing:border-box;min-width:0;max-width:calc(100% - 48px)}.ec-ask-ai-overlay__drawer .ec-ai-bubble--rich,.ec-ask-ai-overlay__drawer .ec-ai-bubble--schedule{width:calc(100% - 48px);max-width:calc(100% - 48px)}.ec-ask-ai-overlay__drawer .ec-ai-panel__composer{flex-shrink:0;padding:10px 16px 18px;border-top:1px solid #e2e8f0;background:#fff}.ec-ask-ai-overlay__drawer .ec-ai-empty{min-height:100%;display:flex;flex-direction:column}.ec-ask-ai-overlay__drawer .ec-ai-empty__mascot{width:88px;height:auto}.ec-ask-ai-overlay__drawer .ec-ai-history.is-open{max-height:220px}.ec-login-page{--ec-login-sheet-top-gap: max( clamp(72px, 12dvh, 100px), calc(var(--ec-safe-top) + var(--ec-space-4)) );height:100vh;height:100dvh;min-height:100dvh;width:100%;max-width:none;margin:0;position:relative;overflow:hidden;background:var(--ec-color-surface-inverse);border-radius:0;font-family:var(--ec-font-family);color:var(--ec-color-text);-webkit-font-smoothing:antialiased}.ec-login-page *,.ec-login-page *:before,.ec-login-page *:after{box-sizing:border-box}.ec-login-splash{position:relative;z-index:1;min-height:100dvh;width:100%;padding:0;background:#d8ebe6;overflow:hidden;border-radius:0}.ec-login-splash.is-behind{pointer-events:none}.ec-login-splash__art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;border-radius:0}.ec-login-splash__art-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;border-radius:0}.ec-login-splash__locale{position:absolute;top:calc(var(--ec-space-3) + var(--ec-safe-top));right:var(--ec-space-4);z-index:2}.ec-login-splash__footer{position:absolute;left:0;right:0;bottom:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:var(--ec-space-4);padding:72px var(--ec-space-6) calc(var(--ec-space-8) + var(--ec-safe-bottom));background:linear-gradient(to bottom,#5a968c00,#5a968c47 55%,#468278c7);pointer-events:none;opacity:0;transform:translateY(56px);transition:opacity 1.1s var(--ec-ease-out),transform 1.1s var(--ec-ease-out);will-change:opacity,transform}.ec-login-splash__footer.is-in{opacity:1;transform:translateY(0)}.ec-login-splash__footer.is-instant{transition:none}.ec-login-splash__footer>*{pointer-events:auto}@media(prefers-reduced-motion:reduce){.ec-login-splash__footer{opacity:1;transform:none;transition:none}}.ec-login-splash__brand{font-size:10px;line-height:1.3;color:#ffffffc7;letter-spacing:.02em;text-align:center;max-width:280px}.ec-btn--login-splash{--ec-btn-bg: var(--ec-color-surface);--ec-btn-color: var(--ec-color-accent);--ec-btn-radius: var(--ec-radius-lg);font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);letter-spacing:.02em;min-height:56px;max-width:280px}.ec-login-form-stage{position:absolute;top:0;right:0;bottom:0;left:0;height:100%;min-height:0;z-index:20;display:flex;flex-direction:column;background:transparent;opacity:1;pointer-events:none;visibility:hidden}.ec-login-form-stage.is-visible{pointer-events:auto;visibility:visible}.ec-login-form-stage__top{flex:0 0 var(--ec-login-sheet-top-gap);min-height:var(--ec-login-sheet-top-gap);background:transparent;border:none;padding:0;cursor:pointer;touch-action:manipulation}.ec-login-sheet{position:relative;flex:1;min-height:0;background:var(--ec-color-surface);border-radius:var(--ec-radius-sheet) var(--ec-radius-sheet) 0 0;box-shadow:var(--ec-shadow-sheet);display:flex;flex-direction:column;overflow:visible;overscroll-behavior:none;transform:translate3d(0,100%,0);transition:transform .42s var(--ec-ease-out);will-change:transform}.ec-login-sheet:after{content:"";position:absolute;left:0;right:0;top:100%;height:100dvh;background:var(--ec-color-surface);pointer-events:none;z-index:0}.ec-login-form-stage.is-visible .ec-login-sheet{transform:translateZ(0)}.ec-login-sheet.is-dragging{transition:none;cursor:grabbing}.ec-login-sheet__drag-zone{position:relative;z-index:2;align-self:stretch;flex-shrink:0;touch-action:none;cursor:grab;min-height:64px;display:flex;align-items:center;justify-content:center;padding:var(--ec-space-3) var(--ec-space-6);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;border:none;background:var(--ec-color-surface);width:100%;border-radius:var(--ec-radius-sheet) var(--ec-radius-sheet) 0 0}.ec-login-sheet__drag-zone:active{cursor:grabbing}.ec-login-sheet__content{position:relative;z-index:1;flex:1;min-height:0;display:flex;flex-direction:column;gap:var(--ec-space-5);padding:0 max(var(--ec-space-6),var(--ec-safe-right)) calc(var(--ec-space-8) + var(--ec-safe-bottom)) max(var(--ec-space-6),var(--ec-safe-left));overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;border-radius:inherit;background:var(--ec-color-surface)}@media(prefers-reduced-motion:reduce){.ec-login-sheet{transition:none}}.ec-login-sheet__drag-zone>.ec-sheet-grabber{margin:0;pointer-events:none}.ec-login-sheet__mascot{display:flex;justify-content:center;align-items:center;margin:var(--ec-space-1) 0 0;cursor:grab;touch-action:none}.ec-login-sheet__mascot:active,.ec-login-sheet__welcome:active{cursor:grabbing}.ec-login-sheet__mascot-img{width:224px;height:auto;display:block;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none}.ec-login-sheet__welcome{text-align:center;margin-bottom:var(--ec-space-1);cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.ec-login-sheet__welcome h1{margin:0;font-family:var(--ec-font-family-display);font-size:var(--ec-font-size-display-lg);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);letter-spacing:var(--ec-letter-spacing-tight);color:var(--ec-color-text)}.ec-login-fields{display:flex;flex-direction:column;gap:var(--ec-space-4)}.ec-login-eye-btn{width:40px;height:40px;flex-shrink:0;color:var(--ec-color-text-secondary)}.ec-login-divider{display:flex;align-items:center;gap:var(--ec-space-3);color:var(--ec-color-text-secondary);font-size:var(--ec-font-size-caption)}.ec-login-divider:before,.ec-login-divider:after{content:"";flex:1;height:1px;background:var(--ec-color-border)}.ec-login-sso{display:flex;justify-content:center;gap:var(--ec-space-4)}.ec-login-signup{text-align:center;font-size:var(--ec-font-size-body);color:var(--ec-color-text-secondary);margin-top:auto;padding-top:var(--ec-space-4)}.ec-login-signup a{color:var(--ec-color-text);font-weight:var(--ec-font-weight-bold);text-decoration:none}.ec-login-signup a:hover{text-decoration:underline}.ec-login-toast{position:fixed;left:50%;bottom:calc(var(--ec-space-8) + var(--ec-safe-bottom));transform:translate(-50%) translateY(20px);max-width:calc(var(--ec-screen-width) - 48px);padding:var(--ec-space-3) var(--ec-space-5);background:var(--ec-color-primary);color:var(--ec-color-text-inverse);border-radius:var(--ec-radius-pill);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-medium);box-shadow:var(--ec-shadow-fab);opacity:0;pointer-events:none;transition:opacity var(--ec-duration-normal) var(--ec-ease-out),transform var(--ec-duration-normal) var(--ec-ease-out);z-index:200}.ec-login-toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.ec-login-page .sr-only,.ec-login-page .ec-login-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes ec-login-spin{to{transform:rotate(360deg)}}.ec-login-spinner{width:1.35rem;height:1.35rem;display:block;flex-shrink:0;animation:ec-login-spin .75s linear infinite}.ec-login-spinner__track{opacity:.28}.ec-btn .ec-login-spinner{margin-inline:auto}.ec-login-branding-load{min-height:100dvh;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--ec-space-3, .75rem);background:#f8fafc;color:#64748b}.ec-login-branding-load .ec-login-spinner{color:var(--ec-color-primary, #434e88);width:1.75rem;height:1.75rem}.ec-login-branding-load__label{margin:0;font-size:.875rem;line-height:1.5}@media(prefers-reduced-motion:reduce){.ec-login-spinner{animation:none}}html.ec-ipad-force-landscape,html.ec-ipad-force-landscape body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}.ec-ipad-stage{position:relative;width:100%;height:100dvh;box-sizing:border-box;overflow:hidden}@media(orientation:portrait){html.ec-ipad-force-landscape,html.ec-ipad-force-landscape body{width:100%;height:100%;overflow:hidden;background:#0f172a}html.ec-ipad-force-landscape .ec-ipad-rotate{display:none!important}html.ec-ipad-force-landscape .ec-ipad-stage{position:fixed;width:100dvh;height:100dvw;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center;max-width:none;max-height:none;z-index:1}}@media(orientation:portrait)and (prefers-reduced-motion:reduce){html.ec-ipad-force-landscape .ec-ipad-stage{transition:none}}.ec-ipad-login{position:relative;width:100%;height:100%;min-height:100%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,.85fr);background:#e8f4f2;font-family:Noto Sans TC,system-ui,sans-serif;color:#0f172a;-webkit-font-smoothing:antialiased}.ec-ipad-login *,.ec-ipad-login *:before,.ec-ipad-login *:after{box-sizing:border-box}.ec-ipad-stage:has(.ec-ipad-login){height:100dvh;background:#e8f4f2}@media(orientation:portrait){.ec-ipad-stage:has(.ec-ipad-login){height:100dvw}}.ec-ipad-login__art{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;min-height:0;overflow:hidden;background:#e8f4f2;pointer-events:none}.ec-ipad-login__art-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;max-width:none;-o-object-fit:cover;object-fit:cover;-o-object-position:center center;object-position:center center;display:block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-ipad-login__art-fade{display:none}.ec-ipad-login__panel{position:relative;z-index:2;grid-column:2;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;justify-content:center;padding:28px 36px;background:transparent;border-left:none;box-sizing:border-box}.ec-ipad-login__toolbar{position:absolute;top:calc(16px + env(safe-area-inset-top,0px));right:20px;display:flex;align-items:center;gap:8px;z-index:3}.ec-ipad-login__card{width:100%;max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:16px}.ec-ipad-login__mascot{display:flex;justify-content:center;margin-top:-4px}.ec-ipad-login__mascot-img{width:min(160px,18vw);height:auto;display:block;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 12px 24px rgba(15,23,42,.12));animation:ec-ipad-mascot-float 3.6s ease-in-out infinite}@keyframes ec-ipad-mascot-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.ec-ipad-login__mascot-img{animation:none}}.ec-ipad-login__welcome{text-align:center}.ec-ipad-login__welcome .eyebrow{margin:0 0 6px;font-size:13px;font-weight:700;color:#115e59;letter-spacing:.02em}.ec-ipad-login__welcome h2{margin:0 0 8px;font-family:Cardo,"Noto Serif TC",Georgia,serif;font-size:30px;font-weight:700;color:#115e59;letter-spacing:-.02em}.ec-ipad-login__welcome p:not(.eyebrow){margin:0;font-size:14px;line-height:1.5;color:#0f766e}.ec-ipad-login__fields{display:flex;flex-direction:column;gap:14px}.ec-ipad-login__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:20px}.ec-ipad-login__meta .err{margin:0;font-size:12px;font-weight:600;color:#dc2626}.ec-ipad-login__meta button{border:none;background:none;padding:0;font:inherit;font-size:13px;font-weight:600;color:#475569;cursor:pointer}.ec-ipad-login__submit{min-height:52px;border:none;border-radius:14px;background:#0f766e;color:#fff;font-size:17px;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:0 10px 24px #0f766e47;transition:transform .15s ease,background .15s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit}.ec-ipad-login__submit:hover{background:#0d9488}.ec-ipad-login__submit:active{transform:scale(.98)}.ec-ipad-login__submit:disabled{opacity:.65;cursor:wait}.ec-ipad-login__legal{margin:4px 0 0;text-align:center;font-size:12px;color:#94a3b8}.ec-ipad-login__legal button{border:none;background:none;padding:0;font:inherit;font-weight:600;color:#475569;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.ec-ipad-login__foot{margin-top:8px;text-align:center;font-size:11px;color:#94a3b8}.ec-ipad-login__toast{position:absolute;left:50%;bottom:28px;transform:translate(-50%) translateY(12px);padding:12px 20px;border-radius:999px;background:#0f172a;color:#fff;font-size:14px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;z-index:50}.ec-ipad-login__toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.ec-ipad-rotate{display:none!important}.ec-ipad-login.login-shake{animation:frameShake .42s ease}@keyframes frameShake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}.ec-home-page{--ec-home-hero-mint: #bee9e8;--ec-home-hero-ink: #2a6f6d;background:var(--ec-color-bg);min-height:100dvh}.ec-home-page .ec-screen-body{padding:0;padding-bottom:calc(var(--ec-space-6) + 72px)}.ec-home-page .ec-screen-body>*+*{margin-top:0}.ec-home-hero{position:relative;flex-shrink:0;min-height:210px;padding:calc(var(--ec-space-6) + var(--ec-safe-top)) var(--ec-space-5) 72px;overflow:hidden;background:var(--ec-home-hero-mint)}.ec-home-hero__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:70% top;object-position:70% top;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-home-hero__content{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ec-space-4);max-width:62%}.ec-home-hero__greeting{min-width:0}.ec-home-hero__hello{margin:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);line-height:var(--ec-line-height-tight);letter-spacing:.01em;color:var(--ec-home-hero-ink)}.ec-home-hero__meta{margin:var(--ec-space-1) 0 0;font-size:calc(var(--ec-font-size-title) * 2);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);color:var(--ec-home-hero-ink)}.ec-home-page .ec-screen-body>.ec-home-sheet{--ec-home-quick-overlap: 72px;position:relative;z-index:2;margin-top:calc(-1 * var(--ec-home-quick-overlap));padding:0 var(--ec-space-4);display:flex;flex-direction:column}.ec-home-quick{margin:0;padding:var(--ec-space-3) var(--ec-space-2) var(--ec-space-4);box-shadow:var(--ec-shadow-card);border:1px solid var(--ec-color-border)}.ec-home-quick .ec-quick-panel__title{display:block;margin:0 0 var(--ec-space-2);padding:0 var(--ec-space-2);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text);text-transform:none;letter-spacing:0;text-align:left}.ec-home-quick .ec-quick-grid{grid-template-columns:repeat(4,1fr);gap:var(--ec-space-1)}.ec-home-quick .ec-quick-cell__icon{width:50px;height:50px;border-radius:0;background:transparent;color:inherit;overflow:visible}.ec-home-quick .ec-quick-cell__img{display:block;width:50px;height:50px;-o-object-fit:contain;object-fit:contain;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-home-quick .ec-quick-cell--success .ec-quick-cell__icon{background:transparent;color:inherit}.ec-home-quick .ec-quick-cell__label{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-home-page .ec-screen-body>.ec-home-news{position:relative;z-index:1;margin:var(--ec-space-5) 0 0;padding:var(--ec-space-5) 10px var(--ec-space-4);background:var(--ec-color-surface);border-top:1px solid var(--ec-color-border);border-radius:0;box-shadow:var(--ec-shadow-sm)}.ec-home-news .ec-section-header{margin-bottom:var(--ec-space-3);padding:0 10px}.ec-home-news .ec-notice-carousel{margin:0;padding:0 0 0 10px;gap:10px;scroll-padding-inline:10px}.ec-home-news .ec-notice-carousel:after{content:"";flex:0 0 10px}.ec-home-news .ec-carousel-dots{margin-top:12px;padding:0 10px}.ec-home-news .ec-notice-card{flex:0 0 min(328px,calc(100% - 20px));box-shadow:var(--ec-shadow-sm);overflow:visible}.ec-home-news .ec-notice-card__cartoon{width:104px}.ec-home-news .ec-notice-card__layout{grid-template-columns:104px minmax(0,1fr)}@keyframes ec-home-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ec-home-hero__greeting{animation:ec-home-rise .45s var(--ec-ease-out) both}.ec-home-quick{animation:ec-home-rise .5s var(--ec-ease-out) .08s both}.ec-home-news{animation:ec-home-rise .55s var(--ec-ease-out) .14s both}@media(prefers-reduced-motion:reduce){.ec-home-hero__greeting,.ec-home-quick,.ec-home-news{animation:none}}.ec-teacher-dashboard-stage{position:relative;width:100%;box-sizing:border-box}@media(orientation:portrait){html.ec-ipad-force-landscape,html.ec-ipad-force-landscape body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;background:#0f172a}html.ec-ipad-force-landscape .ec-teacher-dashboard-stage{position:fixed;width:100dvh;height:100dvw;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center;max-width:none;max-height:none;z-index:40;overflow:auto;-webkit-overflow-scrolling:touch;background:#f5f7fb}html.ec-ipad-force-landscape .ec-teacher-dashboard-stage .ec-teacher-dashboard{width:100%;min-height:100%;box-sizing:border-box}}@media(orientation:portrait)and (prefers-reduced-motion:reduce){html.ec-ipad-force-landscape .ec-teacher-dashboard-stage{transition:none}}.ec-teacher-dashboard{--dashboard-ink: #26396f;--dashboard-muted: #6f7894;--dashboard-border: #e6eaf4;--dashboard-surface: #ffffff;width:100%;padding:28px 32px 40px;color:#20263b}.ec-teacher-dashboard__toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:24px;margin-bottom:24px}.ec-teacher-dashboard__eyebrow,.ec-teacher-dashboard__section-kicker{margin:0;color:var(--dashboard-muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ec-teacher-dashboard__title{margin:3px 0 0;color:#202b4d;font-size:clamp(24px,2.1vw,34px);font-weight:800;line-height:1.15}.ec-teacher-dashboard__toolbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.ec-teacher-dashboard__toolbar>button[aria-label=搜尋]{width:100%;height:44px;justify-content:flex-start;padding:0 16px;border:1px solid var(--dashboard-border);border-radius:14px;background:#fff;color:#7a8299;box-shadow:0 4px 14px #26396f0d}.ec-teacher-dashboard__toolbar>button[aria-label=搜尋]:after{content:"搜尋功能、老師、班別或課室";margin-left:10px;color:#9aa1b4;font-size:13px;font-weight:500}.ec-teacher-dashboard__ai.ec-tab-bar__fab{position:relative;bottom:0;width:58px;height:58px;flex-shrink:0;text-decoration:none;font:inherit;font-size:10px;cursor:pointer;border:none}.ec-teacher-dashboard__ai.ec-tab-bar__fab .ec-icon{width:26px;height:26px}.ec-teacher-dashboard__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);grid-template-areas:"hero side" "notices schedule";gap:22px}.ec-teacher-dashboard__card{min-width:0;overflow:hidden;border:1px solid var(--dashboard-border);border-radius:24px;background:var(--dashboard-surface);box-shadow:0 12px 32px #26396f12}.ec-teacher-dashboard__hero{position:relative;grid-area:hero;min-height:310px;overflow:hidden;background:#bee9e8}.ec-teacher-dashboard__hero-image{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:70% center;object-position:70% center}.ec-teacher-dashboard__hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#bee9e8fa,#bee9e8cc 38%,#bee9e80a 72%)}.ec-teacher-dashboard__hero-copy{position:relative;z-index:1;display:flex;min-height:310px;max-width:52%;flex-direction:column;justify-content:center;padding:40px}.ec-teacher-dashboard__hero-copy h2{margin:8px 0 12px;color:#245f60;font-size:clamp(32px,3.3vw,52px);font-weight:850;line-height:1.05}.ec-teacher-dashboard__hero-copy p{margin:0;color:#3f7476;font-size:15px;line-height:1.65}.ec-teacher-dashboard__side{grid-area:side;display:grid;grid-template-rows:auto 1fr;gap:16px;min-width:0}.ec-teacher-dashboard__profile{display:flex;align-items:center;gap:14px;padding:18px}.ec-teacher-dashboard__avatar{display:grid;width:58px;height:58px;flex:0 0 auto;place-items:center;border-radius:18px;background:#434e88;color:#fff;font-size:22px;font-weight:800;box-shadow:0 8px 18px #434e8838}.ec-teacher-dashboard__profile-copy{min-width:0}.ec-teacher-dashboard__profile-copy strong,.ec-teacher-dashboard__profile-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-teacher-dashboard__profile-copy strong{color:#253052;font-size:20px;font-weight:800;line-height:1.2}.ec-teacher-dashboard__profile-copy span{margin-top:4px;color:var(--dashboard-muted);font-size:12px}.ec-teacher-dashboard__quick.ec-home-quick{height:100%;margin:0;padding:18px 14px;border-radius:24px;box-shadow:0 12px 32px #26396f12;animation:none}.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-panel__title{margin-bottom:12px;font-size:16px}.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-cell{min-height:92px;padding:8px 4px;border-radius:16px;transition:background-color .16s ease,transform .16s ease}.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-cell:hover{background:#f5f7fc;transform:translateY(-2px)}.ec-teacher-dashboard__notices{grid-area:notices;padding:22px 0 18px}.ec-teacher-dashboard__schedule{grid-area:schedule;padding:22px}.ec-teacher-dashboard__section-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:16px;padding:0 22px}.ec-teacher-dashboard__schedule .ec-teacher-dashboard__section-header{padding:0}.ec-teacher-dashboard__section-title{margin:3px 0 0;color:#263252;font-size:22px;font-weight:800}.ec-teacher-dashboard__section-link{color:#4d5d9a;font-size:13px;font-weight:700}.ec-teacher-dashboard__notices .ec-notice-carousel{gap:12px;padding:0 22px 6px;scroll-padding-inline:22px}.ec-teacher-dashboard__notices .ec-notice-card{flex-basis:min(420px,calc(75% - 12px));min-height:176px}.ec-teacher-dashboard__notices .ec-carousel-dots{margin-top:12px}.ec-teacher-dashboard__notices .ec-teacher-dashboard__tabs{margin:0 22px 14px}.ec-teacher-dashboard__alert-list{list-style:none;margin:0;padding:0 22px 18px;display:grid;gap:8px}.ec-teacher-dashboard__alert-row{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border:1px solid var(--dashboard-border);border-radius:14px;background:#f8f9fc;text-decoration:none;color:inherit;transition:background-color .16s ease,transform .16s ease}.ec-teacher-dashboard__alert-row:hover{background:#f1f4fb;transform:translateY(-1px)}.ec-teacher-dashboard__alert-check{width:18px;height:18px;margin-top:2px;flex:0 0 auto;border:2px solid #c5cce0;border-radius:5px;background:#fff}.ec-teacher-dashboard__alert-copy{min-width:0;display:grid;gap:2px}.ec-teacher-dashboard__alert-copy strong{color:#253052;font-size:14px;font-weight:700}.ec-teacher-dashboard__alert-copy span{color:var(--dashboard-muted);font-size:12px}.ec-teacher-dashboard__schedule .ec-ipad-now{margin:0}.ec-teacher-dashboard__tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;margin-bottom:14px;padding:4px;border-radius:14px;background:#f0f2f8}.ec-teacher-dashboard__tab{border-radius:10px;padding:9px 10px;color:#7a8299;font-size:13px;font-weight:700}.ec-teacher-dashboard__tab.is-active{background:#fff;color:#434e88;box-shadow:0 2px 8px #26396f1a}.ec-teacher-dashboard__lessons{display:grid;gap:10px;max-height:330px;overflow-y:auto;padding-right:3px}.ec-teacher-dashboard__empty{display:grid;min-height:150px;place-items:center;border:1px dashed #d9deeb;border-radius:16px;background:#f8f9fc;color:var(--dashboard-muted);font-size:13px;text-align:center}@media(max-width:1180px){.ec-teacher-dashboard{padding-inline:24px}.ec-teacher-dashboard__toolbar{grid-template-columns:minmax(0,1fr) auto;gap:14px}.ec-teacher-dashboard__grid{grid-template-columns:minmax(0,1.35fr) minmax(280px,.85fr)}.ec-teacher-dashboard__hero-copy{max-width:62%;padding:32px}}@media(min-width:768px)and (max-width:1023px){.ec-teacher-dashboard{padding:22px 20px 96px}.ec-teacher-dashboard__toolbar{grid-template-columns:minmax(0,1fr) auto;gap:14px 16px;margin-bottom:18px}.ec-teacher-dashboard__ai.ec-tab-bar__fab{width:52px;height:52px}.ec-teacher-dashboard__grid{grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);gap:16px}.ec-teacher-dashboard__card,.ec-teacher-dashboard__quick.ec-home-quick{border-radius:20px}.ec-teacher-dashboard__hero,.ec-teacher-dashboard__hero-copy{min-height:276px}.ec-teacher-dashboard__hero-copy{max-width:64%;padding:28px}.ec-teacher-dashboard__hero-copy h2{font-size:36px}.ec-teacher-dashboard__profile{padding:15px}.ec-teacher-dashboard__avatar{width:50px;height:50px;border-radius:15px;font-size:19px}.ec-teacher-dashboard__quick.ec-home-quick{padding:15px 10px}.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-cell{min-height:82px}.ec-teacher-dashboard__notices{padding-top:18px}.ec-teacher-dashboard__schedule{padding:18px}.ec-teacher-dashboard__section-header,.ec-teacher-dashboard__notices .ec-notice-carousel{padding-inline:18px}.ec-teacher-dashboard__schedule .ec-teacher-dashboard__section-header{padding-inline:0}.ec-teacher-dashboard__section-title{font-size:20px}}@media(prefers-reduced-motion:reduce){.ec-teacher-dashboard__quick.ec-home-quick .ec-quick-cell{transition:none}}.ec-classes-page{background:#fff;min-height:100%;height:100%;flex:1}.ec-classes-page .ec-ipad-lessons{display:flex;flex-direction:column;flex:1;min-height:0;height:100%;background:#fff;border-right:none;position:relative;padding-bottom:calc(72px + var(--ec-space-2, 8px) + env(safe-area-inset-bottom,0px))}.ec-ipad-lessons__header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 6px;flex-shrink:0}.ec-ipad-lessons__title{margin:0;font-size:24px;font-weight:800;color:#0f172a;letter-spacing:-.02em}.ec-ipad-lessons__help{width:34px;height:34px;border:1.5px solid #cbd5e1;border-radius:999px;background:#fff;color:#64748b;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;font-family:inherit}.ec-ipad-lessons__help .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-date-strip{display:flex;align-items:flex-start;gap:8px;padding:4px 14px 10px;flex-shrink:0}.ec-ipad-date-strip__days{flex:1;display:flex;gap:4px;min-width:0;overflow-x:auto;scrollbar-width:none}.ec-ipad-date-strip__days::-webkit-scrollbar{display:none}.ec-ipad-day{flex:1 0 44px;min-width:44px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:0;border:none;background:transparent;color:#94a3b8;font-family:inherit;cursor:pointer}.ec-ipad-day__pill{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;padding:8px 4px;border-radius:14px;background:transparent}.ec-ipad-day__dow{font-size:11px;font-weight:600;line-height:1}.ec-ipad-day__num{font-size:16px;font-weight:800;color:#0f172a;line-height:1.2}.ec-ipad-day__foot{display:flex;flex-direction:column;align-items:center;gap:2px;min-height:18px}.ec-ipad-day__mark{width:5px;height:5px;border-radius:50%;background:transparent}.ec-ipad-day__label{font-size:10px;font-weight:700;color:transparent;line-height:1;min-height:10px}.ec-ipad-day.is-selected .ec-ipad-day__pill{background:#2563eb;color:#fff;box-shadow:0 8px 18px #2563eb47}.ec-ipad-day.is-selected .ec-ipad-day__num{color:#fff}.ec-ipad-day.is-selected .ec-ipad-day__mark{background:#2563eb}.ec-ipad-day.is-selected .ec-ipad-day__label{color:#2563eb}.ec-ipad-day:not(.is-selected) .ec-ipad-day__label{color:#94a3b8}.ec-ipad-day.has-dot:not(.is-selected) .ec-ipad-day__mark{background:#f97316}.ec-ipad-day__label:empty{color:transparent}.ec-ipad-lessons__body{flex:1;min-height:0;overflow-y:auto;padding:2px 14px 16px;-webkit-overflow-scrolling:touch}.ec-ipad-duty{display:inline-flex;align-items:center;gap:4px;margin-top:4px;max-width:100%;padding:2px 8px;border:none;border-radius:999px;background:#fff7ed;color:#c2410c;font-family:inherit;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-ipad-duty .ec-icon{width:12px;height:12px;color:#ea580c;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-now{margin-bottom:14px;padding:14px 14px 0;border-radius:16px;background:#fff;border:1.5px solid #bfdbfe;box-shadow:0 8px 24px #2563eb1a}.ec-ipad-now__top{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;padding-bottom:12px}.ec-ipad-now__period-label{margin:0;font-size:12px;font-weight:700;color:#2563eb}.ec-ipad-now__period{margin:4px 0 0;font-size:22px;font-weight:800;color:#0f172a;line-height:1.15;white-space:nowrap}.ec-ipad-now__subject-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ec-ipad-now__subject{margin:0;font-size:20px;font-weight:800;color:#0f172a;line-height:1.2}.ec-ipad-now__meta{display:flex;flex-direction:column;gap:5px;margin-top:6px}.ec-ipad-now__loc{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:#64748b}.ec-ipad-now__loc .ec-icon{width:14px;height:14px;color:#94a3b8;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-now__sub-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:2px}.ec-ipad-chip{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:999px;background:#dbeafe;border:none;font-size:11px;font-weight:700;color:#1d4ed8;line-height:1.4}.ec-ipad-chip--sub{background:#fff7ed;color:#ea580c;border:1px solid #fdba74}.ec-ipad-now__orig{font-size:12px;font-weight:600;color:#64748b}.ec-ipad-now__time{text-align:right;padding-top:2px}.ec-ipad-now__range{margin:0;font-size:14px;font-weight:700;color:#2563eb;font-variant-numeric:tabular-nums;white-space:nowrap}.ec-ipad-now__countdown{margin:4px 0 0;font-size:11px;font-weight:600;color:#64748b;white-space:nowrap}.ec-ipad-now__next{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:0 -14px;padding:10px 14px;border-top:1px solid #e2e8f0;font-size:12px;font-weight:600;color:#475569;background:#f8fbff;border-radius:0 0 14px 14px}.ec-ipad-now__next-label{color:#2563eb;font-weight:700}.ec-ipad-now__next strong{color:#0f172a;font-weight:700}.ec-ipad-timeline{display:flex;flex-direction:column;gap:6px;position:relative;padding-left:10px}.ec-ipad-timeline:before{content:"";position:absolute;left:3px;top:18px;bottom:18px;width:2px;background:#e2e8f0;border-radius:2px;z-index:0}.ec-ipad-row{position:relative;z-index:1;display:grid;grid-template-columns:34px 44px minmax(0,1fr);gap:6px 8px;align-items:start;min-height:68px;margin-left:-10px;padding:10px 10px 10px 14px;border-radius:12px;background:#fff}.ec-ipad-row:before{content:"";position:absolute;left:2px;top:50%;width:8px;height:8px;margin-top:-4px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 0 0 1px #bfdbfe;z-index:2}.ec-ipad-row.is-current{background:#eff6ff}.ec-ipad-row.is-current:after{content:"";position:absolute;left:-2px;top:50%;margin-top:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #2563eb;z-index:3}.ec-ipad-row.is-current:before{background:#2563eb;box-shadow:0 0 0 2px #93c5fd}.ec-ipad-row__badge{width:30px;height:30px;margin-top:4px;margin-left:4px;border-radius:8px;background:#e2e8f0;color:#475569;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.ec-ipad-row.is-current .ec-ipad-row__badge{background:#2563eb;color:#fff}.ec-ipad-row__times{display:flex;flex-direction:column;gap:2px;margin-top:6px;font-size:11px;font-weight:600;color:#94a3b8;font-variant-numeric:tabular-nums;line-height:1.25}.ec-ipad-row__main{min-width:0;display:flex;flex-direction:column;gap:4px}.ec-ipad-row__headline{display:flex;align-items:center;flex-wrap:wrap;gap:6px 0;min-width:0;line-height:1.25}.ec-ipad-row__subject{margin:0;font-size:15px;font-weight:800;color:#0f172a;flex-shrink:0}.ec-ipad-row__pipe{display:inline-block;width:1px;height:12px;margin:0 8px;background:#cbd5e1;flex-shrink:0}.ec-ipad-row__class{display:inline-flex;align-items:center;padding:1px 7px;border-radius:999px;background:#dbeafe;color:#1d4ed8;font-size:11px;font-weight:700;flex-shrink:0}.ec-ipad-row__headline .ec-ipad-chip{flex-shrink:0}.ec-ipad-row__room{margin:0;font-size:12px;font-weight:600;color:#64748b;display:inline-flex;align-items:center;gap:4px;min-width:0}.ec-ipad-row__room .ec-icon{width:13px;height:13px;color:#94a3b8;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-row__note{margin:0;padding-left:2px;font-size:11px;font-weight:600;color:#94a3b8;display:flex;align-items:center;gap:4px;min-width:0;border:none;background:transparent;font-family:inherit;cursor:default;text-align:left}button.ec-ipad-row__note{cursor:pointer}.ec-ipad-row__note .ec-icon{width:13px;height:13px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-row__note--sub,.ec-ipad-row__note--sub .ec-icon{color:#ea580c}.ec-ipad-row.is-sub{background:#fffbeb}.ec-ipad-row.is-sub.is-current{background:#eff6ff}.ec-ipad-row--break,.ec-ipad-row--lunch{grid-template-columns:34px minmax(0,1fr) auto;padding-left:14px}.ec-ipad-row--break{background:#f0fdf4}.ec-ipad-row--lunch{background:#fff7ed}.ec-ipad-row--break:before{background:#22c55e;box-shadow:0 0 0 1px #bbf7d0}.ec-ipad-row--lunch:before{background:#f97316;box-shadow:0 0 0 1px #fed7aa}.ec-ipad-row--break .ec-ipad-row__badge,.ec-ipad-row--lunch .ec-ipad-row__badge{background:transparent;color:inherit;font-size:18px}.ec-ipad-row--break .ec-ipad-row__badge .ec-icon,.ec-ipad-row--lunch .ec-ipad-row__badge .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.ec-ipad-row--break .ec-ipad-row__badge{color:#15803d}.ec-ipad-row--lunch .ec-ipad-row__badge{color:#c2410c}.ec-ipad-row--break .ec-ipad-row__subject{color:#15803d}.ec-ipad-row--lunch .ec-ipad-row__subject{color:#c2410c}.ec-ipad-row--break .ec-ipad-row__room,.ec-ipad-row--lunch .ec-ipad-row__room{margin-top:2px;color:inherit;opacity:.85}.ec-ipad-row--break .ec-ipad-row__main,.ec-ipad-row--lunch .ec-ipad-row__main{gap:2px}.ec-ipad-row--break .ec-ipad-row__check,.ec-ipad-row--lunch .ec-ipad-row__check{margin-top:8px}.ec-ipad-row__check{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800}.ec-ipad-row__check.is-done{background:#dcfce7;color:#16a34a}.ec-ipad-row__check:not(.is-done){border:1.5px solid #cbd5e1;color:transparent}.ec-classes-page .ec-empty{padding:48px 16px;text-align:center}.ec-classes-page .ec-empty__icon{width:64px;height:64px;margin:0 auto 12px;border-radius:999px;background:#eff6ff;color:#2563eb;display:flex;align-items:center;justify-content:center}.ec-classes-page .ec-empty__icon .ec-icon{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.75}.ec-classes-page .ec-empty__title{margin:0;font-size:17px;font-weight:800;color:#0f172a}.ec-classes-page .ec-empty__desc{margin:6px 0 0;font-size:13px;font-weight:500;color:#64748b}@media(min-width:768px){.ec-classes-page .ec-ipad-lessons{padding-bottom:0}.ec-ipad-shell.ec-classes-page .ec-ipad-lessons{border-radius:0;border:0;border-right:1px solid #e2e8f0;overflow:hidden;min-height:0}}@media(orientation:portrait){html.ec-ipad-force-landscape,html.ec-ipad-force-landscape body{overflow:hidden;height:100%}}.ec-ipad-shell{display:grid;grid-template-columns:minmax(320px,400px) minmax(0,1fr);width:100%;min-height:calc(100dvh - 24px);background:#e8eef5;border-radius:20px;overflow:hidden;border:1px solid #dbe3ee;box-shadow:0 16px 40px #0f172a14}.ec-ipad-shell .ec-ipad-lessons{border-radius:0;border:0;border-right:1px solid #e2e8f0;min-height:0;height:100%;padding-bottom:0}.ec-ipad-calendar{display:flex;flex-direction:column;min-width:0;min-height:0;background:#f8fafc}.ec-ipad-calendar__top{display:flex;align-items:center;justify-content:flex-end;padding:12px 20px 10px;flex-shrink:0}.ec-ipad-calendar__actions{display:inline-flex;align-items:center;gap:10px}.ec-ipad-ask-ai{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 12px 0 6px;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:#0f172a;text-decoration:none;font:inherit;font-size:12px;font-weight:700;cursor:pointer;box-shadow:0 1px 2px #0f172a0a}.ec-ipad-ask-ai__fab{width:34px;height:34px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,#38bdf8,#22c55e)}.ec-ipad-ask-ai__fab .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.75}.ec-ipad-ask-ai__fab .ec-icon__dot{fill:currentColor;stroke:none}.ec-ipad-user{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 12px;border-radius:999px;background:#fff;border:1px solid #e2e8f0}.ec-ipad-user__text{text-align:right}.ec-ipad-user__name{margin:0;font-size:13px;font-weight:800;color:#0f172a;line-height:1.2}.ec-ipad-user__role{margin:0;font-size:11px;color:#64748b;line-height:1.2}.ec-ipad-user__avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#93c5fd,#6366f1);color:#fff;font-size:12px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ec-ipad-icon-btn{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #e2e8f0;background:#fff;color:#334155;border-radius:10px;cursor:pointer}.ec-ipad-icon-btn .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.75}.ec-ipad-logout{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px;border:1px solid #fecaca;border-radius:999px;background:#fff;color:#b91c1c;font-size:13px;font-weight:700;cursor:pointer}.ec-ipad-logout .ec-icon{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75}.ec-ipad-calendar__toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:4px 20px 12px;flex-shrink:0}.ec-ipad-nav-group{display:inline-flex;align-items:center;gap:6px}.ec-ipad-today-btn{padding:8px 12px;border:1px solid #e2e8f0;background:#fff;color:#334155;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer}.ec-ipad-month-label{margin:0 4px;min-width:110px;text-align:center;font-size:16px;font-weight:800;color:#0f172a}.ec-ipad-view-toggle{display:inline-flex;padding:3px;border-radius:999px;background:#e2e8f0;gap:2px}.ec-ipad-view-toggle button{border:none;background:transparent;border-radius:999px;padding:7px 14px;font-size:12px;font-weight:700;color:#64748b;cursor:pointer}.ec-ipad-view-toggle button.is-active{background:#0f172a;color:#fff}.ec-ipad-actions{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.ec-ipad-filters{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px;flex-shrink:0;position:relative;z-index:5}.ec-ipad-filter-wrap{position:relative}.ec-ipad-filter{display:inline-flex;align-items:center;gap:6px;border:1px solid #e2e8f0;background:#fff;border-radius:10px;padding:7px 12px;font-family:inherit;font-size:12px;font-weight:600;color:#475569;cursor:pointer}.ec-ipad-filter.is-open,.ec-ipad-filter.is-active{border-color:#0d9488;background:#f0fdfa;color:#0f766e}.ec-ipad-filter__caret{font-size:10px;opacity:.7;line-height:1}.ec-ipad-filter-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:148px;margin:0;padding:6px;list-style:none;background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 12px 28px #0f172a1f;z-index:20}.ec-ipad-filter-menu [role=option]{padding:8px 10px;border-radius:8px;font-size:12px;font-weight:600;color:#334155;cursor:pointer;white-space:nowrap}.ec-ipad-filter-menu [role=option]:hover,.ec-ipad-filter-menu [role=option].is-selected,.ec-ipad-filter-menu [role=option][aria-selected=true]{background:#f0fdfa;color:#0f766e}.ec-ipad-btn-add{display:inline-flex;align-items:center;border:none;border-radius:999px;padding:9px 14px;background:#0d9488;color:#fff;font-size:12px;font-weight:700;text-decoration:none;cursor:pointer}.ec-ipad-calendar__board{flex:1;min-height:0;margin:0 16px 16px;padding:12px;border-radius:18px;background:#fff;border:1px solid #e2e8f0;box-shadow:0 10px 30px #0f172a0a;display:flex;flex-direction:column;overflow:hidden}.ec-ipad-cal-month{flex:1;min-height:0;display:flex;flex-direction:column}.ec-ipad-cal-head{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px;flex-shrink:0}.ec-ipad-cal-head span{text-align:center;font-size:12px;font-weight:700;color:#94a3b8;padding:6px 0}.ec-ipad-cal-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(64px,1fr);gap:2px}.ec-ipad-cal-cell{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:64px;padding:8px;border:0;border-radius:12px;background:#f8fafc;color:#0f172a;text-align:left;cursor:pointer;font-family:inherit}.ec-ipad-cal-cell.is-outside{color:#cbd5e1;background:#fcfdff;cursor:default}.ec-ipad-cal-cell.is-today{box-shadow:inset 0 0 0 1.5px #93c5fd;background:#eff6ff}.ec-ipad-cal-cell.is-selected{box-shadow:inset 0 0 0 2px #2563eb;background:#dbeafe}.ec-ipad-cal-cell__num{font-size:13px;font-weight:800;line-height:1}.ec-ipad-cal-cell__mark{display:inline-flex;max-width:100%;padding:2px 6px;border-radius:999px;background:#e0f2fe;color:#0369a1;font-size:10px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-ipad-cal-cell__mark.is-holiday{background:#ffe4e6;color:#be123c}.ec-ipad-cal-cell__mark.is-td{background:#fef3c7;color:#92400e}.ec-ipad-agenda-list{flex:1;min-height:0;overflow:auto;display:grid;gap:8px;align-content:start;padding:4px}.ec-ipad-agenda-card{display:grid;gap:4px;padding:12px 14px;border-radius:14px;border:1px solid #e2e8f0;background:#f8fafc}.ec-ipad-agenda-card strong{color:#0f172a;font-size:14px}.ec-ipad-agenda-card span{color:#64748b;font-size:12px}.ec-ipad-selected-note{flex-shrink:0;margin-top:10px;padding:10px 12px;border-radius:12px;background:#f1f5f9;color:#334155;font-size:12px;font-weight:600}@media(min-width:768px)and (max-width:1100px){.ec-ipad-shell{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.ec-ipad-ask-ai__label,.ec-ipad-logout span{display:none}}.ec-teacher-classes-stage{position:relative;width:100%;box-sizing:border-box}@media(orientation:portrait){html.ec-ipad-force-landscape .ec-teacher-classes-stage{position:fixed;width:100dvh;height:100dvw;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center;z-index:40;overflow:auto;background:#e8eef5;padding:16px}html.ec-ipad-force-landscape .ec-teacher-classes-stage .ec-ipad-shell{min-height:calc(100% + -0px);height:100%}}.ec-teacher-request{--request-ink: #26396f;--request-muted: #6f7894;--request-border: #e6eaf4;--request-surface: #ffffff;width:100%;padding:24px 32px 36px;color:#20263b;box-sizing:border-box}.ec-teacher-request__toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;margin-bottom:20px}.ec-teacher-request__toolbar-actions{display:flex;align-items:center;justify-content:flex-end}.ec-teacher-request__toolbar>button[aria-label=搜尋]{width:100%;height:44px;justify-content:flex-start;padding:0 16px;border:1px solid var(--request-border);border-radius:14px;background:#fff;color:#7a8299;box-shadow:0 4px 14px #26396f0d}.ec-teacher-request__toolbar>button[aria-label=搜尋]:after{content:"搜尋功能、老師、班別或課室";margin-left:10px;color:#9aa1b4;font-size:13px;font-weight:500}.ec-teacher-request__ai.ec-tab-bar__fab{position:relative;bottom:0;width:58px;height:58px;flex-shrink:0;text-decoration:none;font:inherit;font-size:10px;cursor:pointer;border:none}.ec-teacher-request__ai.ec-tab-bar__fab .ec-icon{width:26px;height:26px}.ec-teacher-request__eyebrow{margin:0;color:var(--request-muted);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.ec-teacher-request__workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:20px;align-items:start;min-height:0}.ec-teacher-request__panel{min-width:0;border:1px solid var(--request-border);border-radius:22px;background:var(--request-surface);box-shadow:0 12px 32px #26396f12}.ec-teacher-request__panel-header{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding:18px 20px 12px}.ec-teacher-request__panel-title{margin:3px 0 0;color:#263252;font-size:20px;font-weight:800}.ec-teacher-request__panel-action{border:0;background:transparent;color:#4d5d9a;font-size:13px;font-weight:700;cursor:pointer}.ec-teacher-request__filters{display:flex;flex-wrap:wrap;gap:8px;padding:0 20px 12px}.ec-teacher-request__chip{border:1px solid var(--request-border);border-radius:999px;padding:7px 12px;background:#f7f8fc;color:#6f7894;font-size:12px;font-weight:700;cursor:pointer}.ec-teacher-request__chip.is-active{border-color:#c9d2ef;background:#eef2ff;color:#434e88}.ec-teacher-request__list{max-height:min(62vh,640px);overflow-y:auto;padding:0 16px 18px}.ec-teacher-request__list .ec-notif-list{gap:10px}.ec-teacher-request__list .ec-notif-card.is-selected{outline:2px solid #9aa8d9;background:#f5f7ff}.ec-teacher-request__form-panel{display:flex;flex-direction:column;max-height:min(72vh,760px);overflow:hidden}.ec-teacher-request__form-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 20px 12px}.ec-teacher-request__form-scroll .ec-leave-sheet__welcome h1{font-size:22px}.ec-teacher-request__form-footer{flex:0 0 auto;padding:14px 20px 18px;border-top:1px solid var(--request-border);background:#fff}.ec-teacher-request__empty-inline{display:grid;min-height:180px;place-items:center;color:var(--request-muted);font-size:13px;text-align:center}@media(max-width:1100px){.ec-teacher-request{padding-inline:20px}.ec-teacher-request__workspace{grid-template-columns:minmax(0,1fr) minmax(280px,.9fr);gap:16px}}@media(min-width:768px)and (max-width:1023px){.ec-teacher-request{padding:18px 16px 88px}.ec-teacher-request__workspace{grid-template-columns:1fr}.ec-teacher-request__form-panel{max-height:none}.ec-teacher-request__list{max-height:42vh}.ec-teacher-request__ai.ec-tab-bar__fab{width:52px;height:52px}}.ec-leave-fields .ec-input select.ec-input__field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.ec-swap-form-section{border:1px solid var(--ec-color-border);border-radius:var(--ec-radius-md);padding:var(--ec-space-4);background:var(--ec-color-surface-muted);display:flex;flex-direction:column;gap:var(--ec-space-3)}.ec-swap-form-section--mine{background:color-mix(in srgb,var(--ec-color-info) 8%,var(--ec-color-surface));border-color:color-mix(in srgb,var(--ec-color-info) 25%,var(--ec-color-border))}.ec-swap-form-section--peer{background:color-mix(in srgb,var(--ec-color-leave, var(--ec-color-accent)) 8%,var(--ec-color-surface));border-color:color-mix(in srgb,var(--ec-color-leave, var(--ec-color-accent)) 25%,var(--ec-color-border))}.ec-swap-form-section__title{margin:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-swap-form-section--mine .ec-swap-form-section__title{color:var(--ec-color-info)}.ec-swap-form-section--peer .ec-swap-form-section__title{color:var(--ec-color-leave, var(--ec-color-accent))}.ec-swap-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-3)}.ec-swap-form-field{display:flex;flex-direction:column;gap:4px;min-width:0}.ec-swap-form-field--full{grid-column:1 / -1}.ec-swap-form-field__label{font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary)}.ec-swap-form-hint{margin:0;font-size:11px;color:var(--ec-color-text-secondary);line-height:1.4}.ec-swap-form-section--peer .ec-swap-form-hint{color:color-mix(in srgb,var(--ec-color-leave, var(--ec-color-accent)) 70%,var(--ec-color-text-secondary))}.ec-swap-form-preview{margin:0;padding:var(--ec-space-3);border-radius:var(--ec-radius-md);background:var(--ec-color-surface);border:1px dashed var(--ec-color-border-strong);font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);text-align:center;line-height:1.45}.ec-swap-form-preview.is-ready{border-style:solid;color:var(--ec-color-text);font-weight:var(--ec-font-weight-medium)}.ec-teacher-profile{--tp-ink: #20263b;--tp-muted: #6f7894;--tp-border: #e6eaf4;--tp-surface: #ffffff;--tp-accent: #434e88;width:100%;padding:24px 28px 36px;color:var(--tp-ink);box-sizing:border-box}.ec-teacher-profile__toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:20px}.ec-teacher-profile__toolbar-actions{display:flex;align-items:center;gap:10px}.ec-teacher-profile__toolbar>button[aria-label=搜尋]{width:100%;height:44px;justify-content:flex-start;padding:0 16px;border:1px solid var(--tp-border);border-radius:14px;background:#fff;color:#7a8299;box-shadow:0 4px 14px #26396f0d}.ec-teacher-profile__toolbar>button[aria-label=搜尋]:after{content:"搜尋";margin-left:10px;color:#9aa1b4;font-size:13px;font-weight:500}.ec-teacher-profile__ai.ec-tab-bar__fab{position:relative;bottom:0;width:52px;height:52px;flex-shrink:0;text-decoration:none;font:inherit;font-size:10px;cursor:pointer;border:none}.ec-teacher-profile__avatar-chip{width:40px;height:40px;border-radius:50%;border:1px solid var(--tp-border);background:linear-gradient(135deg,#93c5fd,#6366f1);color:#fff;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.ec-teacher-profile__layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.9fr);gap:18px;min-height:calc(100dvh - 140px);align-items:stretch}.ec-teacher-profile__main,.ec-teacher-profile__detail{min-width:0;min-height:0;background:var(--tp-surface);border:1px solid var(--tp-border);border-radius:20px;box-shadow:0 12px 32px #26396f0f}.ec-teacher-profile__main{display:flex;flex-direction:column;padding:28px 28px 20px;overflow:hidden}.ec-teacher-profile__hero{--tp-hero-mint: #bee9e8;--tp-hero-ink: #2a6f6d;position:relative;display:flex;align-items:flex-start;gap:20px;margin:-28px -28px 22px;padding:28px 28px 32px;overflow:hidden;background:var(--tp-hero-mint)}.ec-teacher-profile__hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:70% top;object-position:70% top;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-teacher-profile__photo{position:relative;z-index:1;width:96px;height:96px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;background:#ffffff59;color:var(--tp-hero-ink);font-size:22px;font-weight:800;border:3px solid rgba(255,255,255,.85);box-shadow:0 8px 24px #2a6f6d2e}.ec-teacher-profile__photo img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.ec-teacher-profile__hero-copy{position:relative;z-index:1;min-width:0;flex:1;padding-top:6px}.ec-teacher-profile__kicker{margin:0 0 4px;font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--tp-hero-ink);opacity:.8}.ec-teacher-profile__name{margin:0;font-size:26px;font-weight:800;letter-spacing:-.02em;color:var(--tp-hero-ink);line-height:1.2}.ec-teacher-profile__meta{margin:6px 0 14px;font-size:13px;font-weight:500;color:var(--tp-hero-ink);opacity:.85}.ec-teacher-profile__quick{display:flex;flex-wrap:wrap;gap:10px}.ec-teacher-profile__quick-btn{width:48px;height:48px;border-radius:14px;border:1px solid rgba(255,255,255,.7);background:#ffffff8c;color:var(--tp-hero-ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}.ec-teacher-profile__quick-btn:hover,.ec-teacher-profile__quick-btn.is-active{background:#ffffffe0;border-color:#fffffff2;box-shadow:0 4px 12px #2a6f6d24}.ec-teacher-profile__quick-btn .ec-icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.75}.ec-teacher-profile__row{display:flex;align-items:center;gap:12px;width:100%;padding:14px 16px;margin:0 0 18px;border:1px solid var(--tp-border);border-radius:14px;background:#f8fafc;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.ec-teacher-profile__row:hover,.ec-teacher-profile__row.is-active{background:#eef2ff;border-color:#c7d2fe}.ec-teacher-profile__row-body{flex:1;min-width:0}.ec-teacher-profile__row-title{margin:0;font-size:14px;font-weight:700;color:var(--tp-ink)}.ec-teacher-profile__row-sub{margin:2px 0 0;font-size:12px;color:var(--tp-muted)}.ec-teacher-profile__row-chevron{color:#94a3b8;flex-shrink:0}.ec-teacher-profile__row-chevron .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.ec-teacher-profile__divider{height:1px;background:var(--tp-border);margin:0 0 16px}.ec-teacher-profile__section-title{margin:0 0 12px;font-size:15px;font-weight:800;color:var(--tp-ink)}.ec-teacher-profile__activity{flex:1;min-height:0;overflow:auto;display:grid;gap:8px;align-content:start}.ec-teacher-profile__activity-item{display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:10px;align-items:center;width:100%;padding:12px 14px;border:1px solid var(--tp-border);border-radius:14px;background:#fff;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.ec-teacher-profile__activity-item:hover,.ec-teacher-profile__activity-item.is-active{border-color:#c7d2fe;background:#f8fafc}.ec-teacher-profile__activity-rail{width:36px;height:36px;border-radius:10px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;background:#f1f5f9;color:#64748b}.ec-teacher-profile__activity-rail.is-success{background:#dcfce7;color:#15803d}.ec-teacher-profile__activity-rail.is-warning{background:#fef3c7;color:#b45309}.ec-teacher-profile__activity-rail.is-danger{background:#fee2e2;color:#b91c1c}.ec-teacher-profile__activity-title{margin:0;font-size:14px;font-weight:700;color:var(--tp-ink)}.ec-teacher-profile__activity-sub{margin:2px 0 0;font-size:12px;color:var(--tp-muted)}.ec-teacher-profile__activity-status{font-size:12px;font-weight:700;color:var(--tp-muted);white-space:nowrap}.ec-teacher-profile__empty{margin:0;padding:20px 8px;font-size:13px;color:var(--tp-muted)}.ec-teacher-profile__detail{display:flex;flex-direction:column;overflow:hidden}.ec-teacher-profile__detail-head{flex-shrink:0;padding:18px 20px 14px;border-bottom:1px solid var(--tp-border)}.ec-teacher-profile__detail-title{margin:0;font-size:16px;font-weight:800;color:var(--tp-ink)}.ec-teacher-profile__detail-sub{margin:4px 0 0;font-size:12px;color:var(--tp-muted)}.ec-teacher-profile__detail-body{flex:1;min-height:0;overflow:auto;padding:18px 20px 24px}.ec-teacher-profile__dl{display:grid;gap:12px;margin:0}.ec-teacher-profile__dl div{display:grid;gap:2px;padding-bottom:10px;border-bottom:1px solid #f1f5f9}.ec-teacher-profile__dl dt{margin:0;font-size:11px;font-weight:700;color:var(--tp-muted);letter-spacing:.03em}.ec-teacher-profile__dl dd{margin:0;font-size:14px;font-weight:600;color:var(--tp-ink)}.ec-teacher-profile__balance{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.ec-teacher-profile__balance-card{padding:14px;border-radius:14px;background:#f8fafc;border:1px solid var(--tp-border)}.ec-teacher-profile__balance-card span{display:block;font-size:11px;font-weight:700;color:var(--tp-muted)}.ec-teacher-profile__balance-card strong{display:block;margin-top:4px;font-size:22px;font-weight:800;color:var(--tp-ink)}.ec-teacher-profile__index-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-radius:16px;background:linear-gradient(120deg,#eef6ff,#f8fafc);border:1px solid var(--tp-border);margin-bottom:14px}.ec-teacher-profile__index-hero p{margin:0}.ec-teacher-profile__index-caption{font-size:12px;color:var(--tp-muted);font-weight:600}.ec-teacher-profile__index-value{font-size:32px;font-weight:800;letter-spacing:-.03em}.ec-teacher-profile__tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ec-teacher-profile__tile{padding:14px;border-radius:14px;border:1px solid var(--tp-border);background:#fff}.ec-teacher-profile__tile strong{display:block;font-size:20px;font-weight:800}.ec-teacher-profile__tile span{display:block;margin-top:2px;font-size:12px;color:var(--tp-muted);font-weight:600}.ec-teacher-profile__settings-group{margin-bottom:18px}.ec-teacher-profile__settings-group h3{margin:0 0 8px;font-size:12px;font-weight:800;color:var(--tp-muted);letter-spacing:.04em}.ec-teacher-profile__settings-card{border:1px solid var(--tp-border);border-radius:14px;overflow:hidden;background:#fff}.ec-teacher-profile__set-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 14px;border:0;border-bottom:1px solid #f1f5f9;background:transparent;color:inherit;font-family:inherit;text-align:left;cursor:pointer}.ec-teacher-profile__set-row:last-child{border-bottom:0}.ec-teacher-profile__set-row:hover{background:#f8fafc}.ec-teacher-profile__set-row.is-disabled{opacity:.45;pointer-events:none}.ec-teacher-profile__set-row-body{flex:1;min-width:0}.ec-teacher-profile__set-row-body strong{display:block;font-size:13px;font-weight:700}.ec-teacher-profile__set-row-body span{display:block;font-size:11px;color:var(--tp-muted)}.ec-teacher-profile__chip-row{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px}.ec-teacher-profile__chip{border:1px solid var(--tp-border);background:#fff;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;color:var(--tp-muted);cursor:pointer;font-family:inherit}.ec-teacher-profile__chip.is-active{background:#0f172a;border-color:#0f172a;color:#fff}.ec-teacher-profile__switch{width:42px;height:24px;border-radius:999px;background:#cbd5e1;position:relative;flex-shrink:0;transition:background .15s ease}.ec-teacher-profile__switch.is-on{background:#0d9488}.ec-teacher-profile__switch:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .15s ease;box-shadow:0 1px 3px #0f172a33}.ec-teacher-profile__switch.is-on:after{transform:translate(18px)}.ec-teacher-profile__logout{margin-top:18px;width:100%;height:44px;border:1px solid #fecaca;border-radius:12px;background:#fff;color:#b91c1c;font-size:14px;font-weight:700;cursor:pointer;font-family:inherit}.ec-teacher-profile__sub-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.ec-teacher-profile__sub-actions button{flex:1;min-width:90px;height:40px;border-radius:10px;border:1px solid var(--tp-border);background:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit}.ec-teacher-profile__sub-actions button.is-primary{background:#0d9488;border-color:#0d9488;color:#fff}@media(min-width:768px)and (max-width:1100px){.ec-teacher-profile{padding:16px 16px 28px}.ec-teacher-profile__layout{grid-template-columns:minmax(0,1fr) minmax(240px,.85fr);gap:12px}.ec-teacher-profile__main{padding:20px 18px 16px}.ec-teacher-profile__name{font-size:22px}.ec-teacher-profile__photo{width:80px;height:80px;font-size:18px}}:root,.ec-teacher-ui{--ec-color-primary: #1e3a5f;--ec-color-primary-muted: #2d4a6f;--ec-color-accent: #ff6b35;--ec-color-accent-muted: #ff8555;--ec-color-accent-bg: #fff0eb;--ec-color-bg: #f5f7fa;--ec-color-surface: #ffffff;--ec-color-surface-muted: #f1f5f9;--ec-color-surface-inverse: #1e3a5f;--ec-color-text: #0f172a;--ec-color-text-secondary: #64748b;--ec-color-text-inverse: #ffffff;--ec-color-text-link: #1e3a5f;--ec-color-border: #e2e8f0;--ec-color-border-strong: #cbd5e1;--ec-color-success: #16a34a;--ec-color-success-bg: #dcfce7;--ec-color-warning: #d97706;--ec-color-warning-bg: #fef3c7;--ec-color-danger: #dc2626;--ec-color-danger-bg: #fee2e2;--ec-color-info: #2563eb;--ec-color-info-bg: #dbeafe;--ec-color-pending: #64748b;--ec-color-pending-bg: #f1f5f9;--ec-color-leave: #f472b6;--ec-color-leave-bg: #fce7f3;--ec-color-focus: #2563eb;--ec-focus-ring: 0 0 0 3px rgba(37, 99, 235, .35);--ec-color-overlay: rgba(15, 23, 42, .45);--ec-color-tab-active: #16a34a;--ec-ai-gradient-from: #4f46e5;--ec-ai-gradient-to: #7e22ce;--ec-ai-user-bubble: #4f46e5;--ec-ai-icon-bg: #e0e7ff;--ec-ai-icon-fg: #4f46e5;--ec-ai-send: #4f46e5}.ec-teacher-ui[data-theme=suntech]{--ec-color-primary: #434e88;--ec-color-tab-active: #16a34a}.ec-teacher-ui[data-theme=demo]{--ec-color-accent: #ff6b35}:root,.ec-teacher-ui{--ec-space-0: 0;--ec-space-1: 4px;--ec-space-2: 8px;--ec-space-3: 12px;--ec-space-4: 16px;--ec-space-5: 20px;--ec-space-6: 24px;--ec-space-8: 32px;--ec-space-10: 40px;--ec-space-xs: var(--ec-space-1);--ec-space-sm: var(--ec-space-2);--ec-space-md: var(--ec-space-4);--ec-space-lg: var(--ec-space-6);--ec-space-xl: var(--ec-space-8);--ec-edge-inset-top: 40px;--ec-safe-top: calc(var(--ec-edge-inset-top) + env(safe-area-inset-top, 0px));--ec-safe-bottom: env(safe-area-inset-bottom, 0px);--ec-safe-left: env(safe-area-inset-left, 0px);--ec-safe-right: env(safe-area-inset-right, 0px);--ec-home-indicator: 34px;--ec-sheet-safe-bottom: max( calc(var(--ec-safe-bottom) * 5), calc(var(--ec-home-indicator) * 5) );--ec-screen-width: 390px;--ec-content-padding-x: var(--ec-space-4);--ec-hit-target-min: 44px}.ec-teacher-ui[data-density=compact]{--ec-space-md: 12px;--ec-space-lg: 20px;--ec-hit-target-min: 40px}:root,.ec-teacher-ui{--ec-radius-sm: 8px;--ec-radius-md: 12px;--ec-radius-lg: 16px;--ec-radius-xl: 20px;--ec-radius-pill: 9999px;--ec-radius-full: 50%;--ec-radius-button: var(--ec-radius-md);--ec-radius-card: var(--ec-radius-lg);--ec-radius-input: var(--ec-radius-md);--ec-radius-sheet: var(--ec-radius-xl);--ec-radius-fab: var(--ec-radius-full);--ec-font-family-tc: "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", sans-serif;--ec-font-family-en: "Inter", "SF Pro Text", system-ui, sans-serif;--ec-font-family-display: "Cardo", "Georgia", "Times New Roman", serif;--ec-font-family: var(--ec-font-family-tc), var(--ec-font-family-en);--ec-font-size-caption: 12px;--ec-font-size-body: 14px;--ec-font-size-body-lg: 15px;--ec-font-size-title: 18px;--ec-font-size-headline: 20px;--ec-font-size-display: 28px;--ec-font-size-display-lg: 34px;--ec-line-height-tight: 1.25;--ec-line-height-body: 1.5;--ec-line-height-relaxed: 1.625;--ec-font-weight-regular: 400;--ec-font-weight-medium: 500;--ec-font-weight-semibold: 600;--ec-font-weight-bold: 700;--ec-letter-spacing-tight: -.01em}.ec-teacher-ui[data-density=compact]{--ec-font-size-body: 13px;--ec-font-size-title: 17px}.ec-teacher-ui[data-font-scale=small]{--ec-font-size-caption: 11px;--ec-font-size-body: 13px;--ec-font-size-body-lg: 14px;--ec-font-size-title: 16px;--ec-font-size-headline: 18px;--ec-font-size-display: 24px;--ec-font-size-display-lg: 30px}.ec-teacher-ui[data-font-scale=medium]{--ec-font-size-caption: 12px;--ec-font-size-body: 14px;--ec-font-size-body-lg: 15px;--ec-font-size-title: 18px;--ec-font-size-headline: 20px;--ec-font-size-display: 28px;--ec-font-size-display-lg: 34px}.ec-teacher-ui[data-font-scale=big]{--ec-font-size-caption: 14px;--ec-font-size-body: 16px;--ec-font-size-body-lg: 18px;--ec-font-size-title: 21px;--ec-font-size-headline: 24px;--ec-font-size-display: 32px;--ec-font-size-display-lg: 40px}:root,.ec-teacher-ui{--ec-shadow-none: none;--ec-shadow-sm: 0 1px 3px rgba(0, 0, 0, .06);--ec-shadow-card: 0 2px 8px rgba(0, 0, 0, .06);--ec-shadow-fab: 0 4px 16px rgba(0, 0, 0, .12);--ec-shadow-sheet: 0 -4px 24px rgba(0, 0, 0, .08);--ec-duration-instant: 80ms;--ec-duration-fast: .12s;--ec-duration-normal: .2s;--ec-duration-sheet: .24s;--ec-duration-success: .3s;--ec-ease-standard: cubic-bezier(.4, 0, .2, 1);--ec-ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ec-ease-out: cubic-bezier(0, 0, .2, 1)}html,body{touch-action:pan-x pan-y;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overscroll-behavior:none;overscroll-behavior-y:none}body:before{content:"";position:fixed;top:0;left:0;right:0;height:var(--ec-safe-top);z-index:2147483000;pointer-events:auto;touch-action:none;background:transparent}.app-edge-guard{position:fixed;top:0;left:0;right:0;height:var(--ec-safe-top);z-index:2147483000;pointer-events:auto;touch-action:none;background:transparent}.ec-teacher-ui{font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);line-height:var(--ec-line-height-body);color:var(--ec-color-text);background:var(--ec-color-bg);-webkit-font-smoothing:antialiased}.ec-teacher-ui *,.ec-teacher-ui *:before,.ec-teacher-ui *:after{box-sizing:border-box}.ec-teacher-ui :focus-visible{outline:none;box-shadow:var(--ec-focus-ring)}.ec-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--ec-space-2);min-height:var(--ec-hit-target-min);padding:var(--ec-space-3) var(--ec-space-5);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);line-height:var(--ec-line-height-tight);border:none;border-radius:var(--ec-btn-radius, var(--ec-radius-button));cursor:pointer;transition:background var(--ec-duration-fast) var(--ec-ease-standard),transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-btn:active:not(:disabled){transform:scale(.98)}.ec-btn:disabled{opacity:.5;cursor:not-allowed}.ec-btn--primary{background:var(--ec-btn-bg, var(--ec-color-accent));color:var(--ec-btn-color, var(--ec-color-text-inverse))}.ec-btn--secondary{background:var(--ec-btn-bg, var(--ec-color-surface));color:var(--ec-btn-color, var(--ec-color-primary));border:1px solid var(--ec-color-border)}.ec-btn--border-strong{border-width:2px;border-color:var(--ec-color-border-strong)}.ec-btn--ghost{background:transparent;color:var(--ec-btn-color, var(--ec-color-primary))}.ec-btn--destructive{background:var(--ec-btn-bg, var(--ec-color-danger));color:var(--ec-btn-color, var(--ec-color-text-inverse))}.ec-btn--full{width:100%}.ec-btn--lg{min-height:52px;font-size:var(--ec-font-size-body-lg);border-radius:var(--ec-radius-lg)}.ec-btn--sm{min-height:36px;padding:var(--ec-space-2) var(--ec-space-4);font-size:var(--ec-font-size-caption)}.ec-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--ec-hit-target-min);height:var(--ec-hit-target-min);padding:0;border:none;border-radius:var(--ec-radius-full);background:transparent;color:var(--ec-icon-btn-color, var(--ec-color-text));cursor:pointer;transition:background var(--ec-duration-fast) var(--ec-ease-standard)}.ec-icon-btn:hover{background:var(--ec-color-surface-muted)}.ec-icon-btn--accent{color:var(--ec-color-accent)}.ec-input-wrap{display:flex;flex-direction:column;gap:var(--ec-space-1)}.ec-input-label{font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary)}.ec-input{display:flex;align-items:center;gap:var(--ec-space-2);min-height:var(--ec-hit-target-min);padding:0 var(--ec-space-4);background:var(--ec-color-surface);border:1px solid var(--ec-color-border);border-radius:var(--ec-radius-input);transition:border-color var(--ec-duration-fast) var(--ec-ease-standard)}.ec-input:focus-within{border-color:var(--ec-color-focus);box-shadow:var(--ec-focus-ring)}.ec-input__field{flex:1;border:none;background:transparent;font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);color:var(--ec-color-text);outline:none}.ec-input__field::-moz-placeholder{color:var(--ec-color-text-secondary)}.ec-input__field::placeholder{color:var(--ec-color-text-secondary)}.ec-input--error{border-color:var(--ec-color-danger)}.ec-input--shake{animation:ec-input-shake .42s ease}@keyframes ec-input-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(7px)}60%{transform:translate(-5px)}80%{transform:translate(4px)}}@media(prefers-reduced-motion:reduce){.ec-input--shake{animation:none}}.ec-input-error{font-size:var(--ec-font-size-caption);color:var(--ec-color-danger)}.ec-card{background:var(--ec-card-bg, var(--ec-color-surface));border-radius:var(--ec-card-radius, var(--ec-radius-card));box-shadow:var(--ec-card-shadow, var(--ec-shadow-card));border:1px solid var(--ec-color-border);overflow:hidden}.ec-card--padding-sm{padding:var(--ec-space-3)}.ec-card--padding-md{padding:var(--ec-space-4)}.ec-card--padding-lg{padding:var(--ec-space-5)}.ec-card--interactive{cursor:pointer;transition:transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-card--interactive:active{transform:scale(.99)}.ec-status-glyph{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ec-radius-full);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-bold);flex-shrink:0}.ec-status-glyph--success{background:var(--ec-color-success-bg);color:var(--ec-color-success)}.ec-status-glyph--warning{background:var(--ec-color-warning-bg);color:var(--ec-color-warning)}.ec-status-glyph--danger{background:var(--ec-color-danger-bg);color:var(--ec-color-danger)}.ec-status-glyph--neutral{background:var(--ec-color-pending-bg);color:var(--ec-color-pending)}.ec-status-glyph--info{background:var(--ec-color-info-bg);color:var(--ec-color-info)}.ec-status-glyph--accent{background:var(--ec-color-leave-bg);color:var(--ec-color-leave)}.ec-pill{display:inline-flex;align-items:center;gap:var(--ec-space-1);padding:var(--ec-space-2) var(--ec-space-4);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);border-radius:var(--ec-radius-pill);border:1px solid var(--ec-color-border);background:var(--ec-color-surface);color:var(--ec-color-text-secondary);cursor:pointer;white-space:nowrap;transition:all var(--ec-duration-fast) var(--ec-ease-standard)}.ec-pill--selected{background:var(--ec-color-primary);border-color:var(--ec-color-primary);color:var(--ec-color-text-inverse)}.ec-pill__badge{min-width:18px;height:18px;padding:0 5px;border-radius:var(--ec-radius-pill);background:var(--ec-color-danger);color:var(--ec-color-text-inverse);font-size:10px;font-weight:var(--ec-font-weight-bold);line-height:18px;text-align:center}.ec-pill--selected .ec-pill__badge{background:var(--ec-color-accent)}.ec-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--ec-radius-full);background:var(--ec-color-surface-muted);color:var(--ec-color-primary);font-weight:var(--ec-font-weight-semibold);overflow:hidden;flex-shrink:0}.ec-avatar--md{width:40px;height:40px;font-size:var(--ec-font-size-body)}.ec-avatar--lg{width:56px;height:56px;font-size:var(--ec-font-size-title)}.ec-avatar img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ec-avatar--sm{width:32px;height:32px;font-size:var(--ec-font-size-caption)}.ec-avatar--interactive{cursor:pointer;border:2px solid var(--ec-color-border)}.ec-surface{background:var(--ec-color-surface)}.ec-surface--muted{background:var(--ec-color-surface-muted)}.ec-surface--bg{background:var(--ec-color-bg)}.ec-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--ec-radius-pill);background:var(--ec-color-danger);color:var(--ec-color-text-inverse);font-size:10px;font-weight:var(--ec-font-weight-bold);line-height:1}.ec-badge--dot{min-width:8px;width:8px;height:8px;padding:0}.ec-badge--accent{background:var(--ec-color-accent)}.ec-toast{position:absolute;left:50%;bottom:calc(88px + var(--ec-safe-bottom));z-index:200;transform:translate(-50%) translateY(12px);max-width:min(360px,calc(100% - 48px));padding:var(--ec-space-3) var(--ec-space-5);border-radius:var(--ec-radius-pill);background:var(--ec-color-primary);color:var(--ec-color-text-inverse);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);box-shadow:var(--ec-shadow-fab);opacity:0;pointer-events:none;transition:opacity var(--ec-duration-fast) var(--ec-ease-standard),transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-toast.is-visible{opacity:1;transform:translate(-50%) translateY(0)}.ec-toast--success{background:var(--ec-color-success)}.ec-toast--warning{background:var(--ec-color-warning)}.ec-switch{position:relative;display:inline-flex;flex-shrink:0;width:48px;height:28px;border-radius:var(--ec-radius-md);background:var(--ec-color-border-strong);transition:background var(--ec-duration-fast) var(--ec-ease-standard);pointer-events:none}.ec-list-row[aria-checked=true] .ec-switch,.ec-switch[aria-checked=true]{background:var(--ec-color-success)}.ec-switch__thumb{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:var(--ec-radius-sm);background:var(--ec-color-surface);box-shadow:var(--ec-shadow-sm);transition:transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-list-row[aria-checked=true] .ec-switch__thumb,.ec-switch[aria-checked=true] .ec-switch__thumb{transform:translate(20px)}.ec-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ec-icon{display:inline-block;flex-shrink:0;width:20px;height:20px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.ec-icon--sm{width:16px;height:16px}.ec-icon--md{width:20px;height:20px}.ec-icon--lg{width:24px;height:24px}.ec-icon--xl{width:28px;height:28px}.ec-icon--filled{fill:currentColor;stroke:none}.ec-icon.is-hidden{display:none}.ec-icon--brand{width:22px;height:22px;stroke:none}.ec-sheet-grabber{display:block;position:relative;width:40px;height:6px;margin:0 auto;border-radius:999px;background:#cbd5e1;flex-shrink:0;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.ec-sheet-grabber:active,.ec-leave-sheet__drag-zone:active .ec-sheet-grabber,.ec-login-sheet__drag-zone:active .ec-sheet-grabber{cursor:grabbing}.ec-btn--icon-tile{flex:0 0 auto;width:56px;min-width:56px;height:56px;min-height:56px;padding:0;border-width:2px;border-style:solid;border-color:var(--ec-color-border-strong);border-radius:var(--ec-radius-md);background:var(--ec-color-surface);color:var(--ec-color-text)}.ec-btn--icon-tile:hover{background:var(--ec-color-surface-muted)}.ec-input--strong{border-width:2px;border-color:var(--ec-color-border-strong)}.ec-input--strong:focus-within{border-color:var(--ec-color-focus)}.ec-input-label--sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ec-input-wrap--inset{position:relative}.ec-locale-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:var(--ec-hit-target-min);height:var(--ec-hit-target-min);padding:0 10px;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:#ffffffeb;color:var(--ec-color-text);box-shadow:var(--ec-shadow-card, 0 2px 8px rgba(15, 23, 42, .08));cursor:pointer;font-family:var(--ec-font-family)}.ec-locale-btn__code{font-size:11px;font-weight:var(--ec-font-weight-bold);letter-spacing:.04em;line-height:1}.ec-locale-btn--on-media{border-color:#ffffff73;background:#ffffff38;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:none;color:#0f172ad9}.ec-list-row{display:flex;align-items:center;gap:var(--ec-space-3);min-height:var(--ec-hit-target-min);padding:var(--ec-space-3) var(--ec-space-4);background:var(--ec-color-surface);border-bottom:1px solid var(--ec-color-border);cursor:pointer;transition:background var(--ec-duration-fast) var(--ec-ease-standard)}.ec-list-row:last-child{border-bottom:none}.ec-list-row:active{background:var(--ec-color-surface-muted)}.ec-list-row__leading{flex-shrink:0}.ec-list-row__body{flex:1;min-width:0}.ec-list-row__title{font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-list-row__subtitle{margin-top:2px;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-list-row__trailing{flex-shrink:0}.ec-filter-bar{display:flex;gap:var(--ec-space-2);padding:var(--ec-space-3) var(--ec-space-4);overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x;scrollbar-width:none;flex-shrink:0;min-width:0;width:100%;max-width:100%}.ec-filter-bar>.ec-pill{flex-shrink:0}.ec-filter-bar::-webkit-scrollbar{display:none}.ec-filter-bar:has(+.ec-screen-body){padding-bottom:0}.ec-filter-bar+.ec-screen-body{padding-top:10px}html:has(body>.ec-app-shell),body:has(>.ec-app-shell){margin:0;padding:0;width:100%;height:100%;min-height:100%;overflow-x:hidden;overscroll-behavior:none;overscroll-behavior-y:none;background:var(--ec-color-bg);border-radius:0}body:has(>.ec-app-shell){min-height:100dvh}.ec-app-shell{width:100%;max-width:none;min-height:100dvh;height:100dvh;margin:0;display:flex;flex-direction:column;background:var(--ec-color-bg);position:relative;overflow:hidden;border-radius:0;box-shadow:none;overscroll-behavior:none}.ec-screen-body{flex:1;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:none;overscroll-behavior-y:none;padding:var(--ec-space-4);padding-bottom:calc(var(--ec-space-6) + 72px)}.ec-screen-body--surface{background:var(--ec-color-surface)}.ec-push-view{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--ec-color-bg)}.ec-push-view[hidden]{display:none!important}.ec-screen-body>*+*{margin-top:var(--ec-space-5)}.ec-section-gap{flex-shrink:0;height:var(--ec-space-3);background:var(--ec-color-bg)}.ec-screen-header{display:flex;align-items:center;gap:var(--ec-space-3);min-height:56px;padding:var(--ec-space-2) var(--ec-space-4);padding-top:calc(var(--ec-space-2) + var(--ec-safe-top));background:var(--ec-color-surface);border-bottom:1px solid var(--ec-color-border);flex-shrink:0}.ec-screen-header__leading,.ec-screen-header__trailing{flex-shrink:0;display:flex;align-items:center}.ec-screen-header__title{flex:1;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-semibold);text-align:center}.ec-screen-header--greeting{background:transparent;border-bottom:none;padding-top:calc(var(--ec-space-4) + var(--ec-safe-top));padding-bottom:var(--ec-space-2)}.ec-screen-header--greeting .ec-screen-header__title{text-align:left;font-size:var(--ec-font-size-headline);font-weight:var(--ec-font-weight-bold);letter-spacing:var(--ec-letter-spacing-tight)}.ec-screen-header__subtitle{margin-top:2px;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-regular);color:var(--ec-color-text-secondary)}.ec-section-header{display:flex;align-items:center;gap:var(--ec-space-3);min-height:32px;margin-bottom:var(--ec-space-3)}.ec-section-header__title{flex:1;margin:0;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text)}.ec-section-header__action{border:none;background:transparent;color:var(--ec-color-text-link);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);cursor:pointer;padding:var(--ec-space-1) var(--ec-space-2)}.ec-tab-bar{display:flex;align-items:flex-end;justify-content:space-around;min-height:64px;padding-bottom:calc(var(--ec-space-2) + var(--ec-safe-bottom));background:var(--ec-color-surface);border-top:1px solid var(--ec-color-border);overflow:visible;box-shadow:var(--ec-shadow-sm)}.ec-tab-bar[hidden]{display:none!important}.ec-tab-bar__item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-height:var(--ec-hit-target-min);padding:var(--ec-space-2);border:none;background:transparent;color:var(--ec-color-text-secondary);font-size:10px;font-family:inherit;cursor:pointer}.ec-tab-bar__item .ec-icon{width:24px;height:24px;transition:fill var(--ec-duration-fast) var(--ec-ease-standard),stroke var(--ec-duration-fast) var(--ec-ease-standard),stroke-width var(--ec-duration-fast) var(--ec-ease-standard),color var(--ec-duration-fast) var(--ec-ease-standard)}.ec-tab-bar__item--active,.ec-tab-bar__item:active{color:var(--ec-color-tab-active);font-weight:var(--ec-font-weight-semibold)}.ec-tab-bar__item--active .ec-icon{fill:var(--ec-color-success-bg);stroke:currentColor;stroke-width:2}.ec-tab-bar__item:active:not(.ec-tab-bar__item--active) .ec-icon{fill:none;stroke:currentColor}.ec-tab-bar__badge{position:absolute;top:2px;right:calc(50% - 18px)}.ec-tab-bar__fab-wrap{position:relative;flex:1;display:flex;justify-content:center;align-items:flex-end;min-height:64px;z-index:1}.ec-tab-bar__fab-wrap:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:80px;max-width:100%;transform:translate(-50%);background:radial-gradient(ellipse 58% 85% at 50% 0%,rgba(0,0,0,.18) 0%,rgba(0,0,0,.08) 42%,transparent 72%);pointer-events:none;z-index:0}.ec-tab-bar__fab{position:relative;z-index:1;bottom:10px;box-sizing:border-box;width:72px;height:72px;max-width:100%;border-radius:var(--ec-radius-fab);border:3px solid transparent;background:linear-gradient(var(--ec-color-accent),var(--ec-color-accent)) padding-box,linear-gradient(135deg,var(--ec-color-info) 0%,var(--ec-color-success) 100%) border-box;color:var(--ec-color-text-inverse);box-shadow:var(--ec-shadow-fab);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;font-size:9px;line-height:1.1;font-family:inherit;font-weight:var(--ec-font-weight-semibold);transition:transform var(--ec-duration-fast) var(--ec-ease-spring)}.ec-tab-bar__fab .ec-icon{width:33px;height:33px;flex-shrink:0}.ec-tab-bar__fab .ec-icon__dot{fill:currentColor;stroke:none}.ec-tab-bar__fab:active{transform:scale(.94)}.ec-tab-bar__fab--active{box-shadow:0 0 0 3px #4f46e559,var(--ec-shadow-fab, 0 8px 20px rgba(79, 70, 229, .35))}.ec-tab-bar--docked{position:absolute;left:0;right:0;bottom:0;z-index:40}.ec-sheet-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--ec-color-overlay);z-index:100;opacity:0;pointer-events:none;transition:opacity var(--ec-duration-sheet, .22s) var(--ec-ease-standard)}.ec-sheet-overlay.is-open{opacity:1;pointer-events:auto}.ec-sheet{position:absolute;left:0;right:0;bottom:0;z-index:101;max-width:none;width:100%;margin:0;background:var(--ec-color-surface);border-radius:var(--ec-radius-sheet) var(--ec-radius-sheet) 0 0;box-shadow:var(--ec-shadow-sheet);padding-bottom:calc(var(--ec-space-8) + var(--ec-safe-bottom));transform:translateY(100%);transition:transform var(--ec-duration-sheet, .22s) var(--ec-ease-standard);max-height:calc(100% - max(72px,calc(var(--ec-safe-top) + var(--ec-space-4))));display:flex;flex-direction:column;isolation:isolate;overflow:visible}.ec-sheet:after{content:"";position:absolute;inset-inline:0;top:100%;height:100dvh;background:var(--ec-color-surface);pointer-events:none;z-index:-1}.ec-sheet.is-open{transform:translateY(0)}.ec-sheet.is-dragging{transition:none!important;cursor:grabbing}.ec-sheet__handle{position:relative;align-self:stretch;width:100%;height:44px;margin:0;flex-shrink:0;cursor:grab;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;background:transparent;border-radius:0}.ec-sheet__handle:after{content:"";position:absolute;left:50%;top:50%;width:40px;height:6px;transform:translate(-50%,-50%);border-radius:var(--ec-radius-pill);background:#cbd5e1;pointer-events:none}.ec-sheet__handle:active{cursor:grabbing}.ec-sheet__header{padding:0 var(--ec-space-4) var(--ec-space-3);font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-semibold);text-align:center;flex-shrink:0}.ec-sheet__body{padding:var(--ec-space-4);overflow-y:auto;flex:1}.ec-sheet__footer{padding:var(--ec-space-4);border-top:1px solid var(--ec-color-border);flex-shrink:0}.ec-help-sheet__lead{margin:0 0 var(--ec-space-3);font-size:var(--ec-font-size-body);line-height:1.55;color:var(--ec-color-text)}.ec-help-sheet__list{margin:0;padding-left:1.15em;display:flex;flex-direction:column;gap:var(--ec-space-2);font-size:var(--ec-font-size-body);line-height:1.5;color:var(--ec-color-text-secondary)}.ec-help-sheet__list li::marker{color:var(--ec-color-accent)}.ec-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--ec-space-10) var(--ec-space-6);color:var(--ec-color-text-secondary);gap:var(--ec-space-2)}.ec-empty__icon{width:56px;height:56px;border-radius:var(--ec-radius-full);background:var(--ec-color-surface-muted);display:flex;align-items:center;justify-content:center;margin-bottom:var(--ec-space-2);color:var(--ec-color-text-secondary)}.ec-empty__title{margin:0;font-size:var(--ec-font-size-body-lg);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text)}.ec-empty__desc{margin:0;font-size:var(--ec-font-size-caption);line-height:var(--ec-line-height-body)}.ec-quick-panel{padding:var(--ec-space-4)}.ec-quick-panel__title{margin:0 0 var(--ec-space-3);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);text-transform:lowercase;letter-spacing:.02em}.ec-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--ec-space-3);padding:0}.ec-quick-cell{display:flex;flex-direction:column;align-items:center;gap:var(--ec-space-2);min-height:var(--ec-hit-target-min);padding:var(--ec-space-2) var(--ec-space-1);border:none;border-radius:var(--ec-radius-lg);background:transparent;font-family:inherit;cursor:pointer;transition:transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-quick-cell:active:not(:disabled):not(.ec-quick-cell--reserved){transform:scale(.96)}.ec-quick-cell__icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);color:var(--ec-color-primary);font-size:20px}.ec-quick-cell__icon .ec-icon{width:24px;height:24px}.ec-quick-cell__label{font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text);text-align:center;line-height:var(--ec-line-height-tight)}.ec-quick-cell--success .ec-quick-cell__icon{background:var(--ec-color-success-bg);color:var(--ec-color-success)}.ec-quick-cell--disabled{opacity:.45;cursor:not-allowed}.ec-quick-cell--reserved{cursor:default;pointer-events:none}.ec-quick-cell--reserved .ec-quick-cell__icon{background:transparent;border:1.5px dashed var(--ec-color-border-strong);color:transparent}.ec-quick-cell--reserved .ec-quick-cell__label{visibility:hidden}.ec-carousel-dots{display:flex;justify-content:center;align-items:center;gap:var(--ec-space-3);padding:var(--ec-space-3) 0 0}.ec-carousel-dots__dot{width:12px;height:12px;border-radius:var(--ec-radius-full);border:none;padding:0;background:var(--ec-color-border-strong);cursor:pointer;transition:width var(--ec-duration-fast) var(--ec-ease-standard),background var(--ec-duration-fast) var(--ec-ease-standard)}.ec-carousel-dots__dot--active{width:32px;height:12px;border-radius:var(--ec-radius-pill);background:var(--ec-color-primary)}.ec-stat-tile{display:flex;flex-direction:column;gap:var(--ec-space-2);padding:var(--ec-space-4);min-height:112px;background:var(--ec-color-surface);border-radius:var(--ec-radius-card);box-shadow:var(--ec-shadow-card)}.ec-stat-tile__icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--ec-radius-button);background:var(--ec-color-surface-muted);color:var(--ec-color-primary)}.ec-stat-tile__icon--accent{background:var(--ec-color-accent-bg);color:var(--ec-color-accent)}.ec-stat-tile__icon--success{background:var(--ec-color-success-bg);color:var(--ec-color-success)}.ec-stat-tile__icon--info{background:var(--ec-color-info-bg);color:var(--ec-color-info)}.ec-stat-tile__value{margin:0;font-size:28px;line-height:1.1;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);letter-spacing:var(--ec-letter-spacing-tight)}.ec-stat-tile__value--sm{font-size:var(--ec-font-size-title)}.ec-stat-tile__label{margin:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary)}.ec-grid-2x2{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-3)}.ec-settings-body{display:flex;flex-direction:column;gap:var(--ec-space-5);padding-bottom:var(--ec-space-6)}.ec-settings-group{display:flex;flex-direction:column;gap:var(--ec-space-2)}.ec-settings-group__label{margin:0;padding:0 var(--ec-space-1);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);letter-spacing:.02em}.ec-settings-group .ec-card{margin:0}.ec-list-row__value{font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);white-space:nowrap}.ec-list-row__trailing{display:inline-flex;align-items:center;gap:var(--ec-space-2);color:var(--ec-color-text-secondary)}.ec-list-row--toggle{cursor:pointer}.ec-list-row--toggle:focus-visible{outline:none;box-shadow:inset var(--ec-focus-ring)}.ec-list-row--toggle:active{background:var(--ec-color-surface-muted)}.ec-list-row--disabled{opacity:.45;pointer-events:none}.ec-list-row--static{cursor:default}.ec-list-row--static:active{background:var(--ec-color-surface)}.ec-sheet-option{display:flex;align-items:center;justify-content:space-between;gap:var(--ec-space-3);width:100%;min-height:var(--ec-hit-target-min);padding:var(--ec-space-3) var(--ec-space-4);border:none;border-bottom:1px solid var(--ec-color-border);background:var(--ec-color-surface);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text);text-align:left;cursor:pointer}.ec-sheet-option:last-child{border-bottom:none}.ec-sheet-option:active{background:var(--ec-color-surface-muted)}.ec-sheet-option.is-selected{color:var(--ec-color-primary);font-weight:var(--ec-font-weight-semibold)}.ec-sheet-option__check{flex-shrink:0;width:20px;height:20px;color:var(--ec-color-success);opacity:0}.ec-sheet-option.is-selected .ec-sheet-option__check{opacity:1}.ec-lesson-morning{display:flex;align-items:center;gap:var(--ec-space-3);margin:0 0 var(--ec-space-3);padding:var(--ec-space-2) var(--ec-space-3);border-left:3px solid var(--ec-color-info);color:var(--ec-color-text-secondary);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium)}.ec-lesson-morning__label{color:var(--ec-color-info);font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-body)}.ec-lesson-morning__time{margin-left:auto}.ec-timeline-row{display:flex;align-items:center;gap:var(--ec-space-3);margin:0 0 var(--ec-space-2);padding:var(--ec-space-3) var(--ec-space-4);background:var(--ec-color-bg);border:1px solid var(--ec-color-border);border-radius:var(--ec-radius-card);min-height:var(--ec-hit-target-min)}.ec-timeline-row__label{flex-shrink:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-info);min-width:2.5em}.ec-timeline-row__meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ec-timeline-row__time{font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);font-variant-numeric:tabular-nums}.ec-timeline-row__check{flex-shrink:0;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-success);background:var(--ec-color-success-bg)}.ec-timeline-row__check--empty{color:transparent;background:transparent;border:1.5px solid var(--ec-color-border)}.ec-duty-chip{display:inline-flex;align-items:center;gap:4px;max-width:100%;padding:2px 8px;border-radius:var(--ec-radius-pill);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-warning);background:var(--ec-color-warning-bg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.ec-duty-chip .ec-icon{flex-shrink:0;color:var(--ec-color-warning)}.ec-lesson-card{display:flex;align-items:stretch;gap:0;margin:0 0 var(--ec-space-3);padding:0;overflow:hidden}.ec-lesson-card__period{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:52px;padding:var(--ec-space-3) var(--ec-space-2);background:var(--ec-color-info);color:var(--ec-color-text-inverse);font-weight:var(--ec-font-weight-bold)}.ec-lesson-card__period-num{font-size:22px;line-height:1;font-weight:800}.ec-lesson-card__period-label{margin-top:2px;font-size:var(--ec-font-size-caption);opacity:.85}.ec-lesson-card__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--ec-space-2);padding:var(--ec-space-3) var(--ec-space-4)}.ec-lesson-card__headline{display:flex;align-items:center;flex-wrap:wrap;gap:var(--ec-space-2) var(--ec-space-3);min-width:0}.ec-lesson-card__subject{margin:0;font-size:var(--ec-font-size-body-lg);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);line-height:1.25;min-width:0}.ec-lesson-card__meta{display:inline-flex;align-items:center;flex-wrap:wrap;gap:var(--ec-space-3);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary)}.ec-lesson-card__chip{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.ec-lesson-card__chip .ec-icon{flex-shrink:0;color:var(--ec-color-text-secondary)}.ec-lesson-card__time{display:inline-flex;align-items:center;gap:4px;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary)}.ec-lesson-card__time .ec-icon{flex-shrink:0;color:var(--ec-color-text-secondary)}.ec-lesson-card__sub{display:flex;align-items:center;gap:var(--ec-space-2);margin-top:2px;padding-top:var(--ec-space-2);border-top:1px solid var(--ec-color-border);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-warning);cursor:pointer}.ec-lesson-card__sub .ec-icon{flex-shrink:0;color:var(--ec-color-warning)}.ec-lesson-card__sub-tag{display:inline-flex;align-items:center;gap:var(--ec-space-1)}.ec-notif-list{display:flex;flex-direction:column;gap:0}.ec-notif-card{display:flex;align-items:stretch;gap:0;margin:0 0 var(--ec-space-3);padding:0;overflow:hidden;cursor:pointer;transition:transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-notif-card:last-child{margin-bottom:0}.ec-notif-card:active{transform:scale(.99)}.ec-notif-card:focus-visible{outline:2px solid var(--ec-color-primary);outline-offset:2px}.ec-notif-card__rail{display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;width:52px;padding:var(--ec-space-3) var(--ec-space-2);background:var(--ec-color-info);color:var(--ec-color-text-inverse);font-size:18px;font-weight:800;line-height:1}.ec-notif-card__rail--success{background:var(--ec-color-success)}.ec-notif-card__rail--warning{background:var(--ec-color-warning)}.ec-notif-card__rail--danger{background:var(--ec-color-danger)}.ec-notif-card__rail--info{background:var(--ec-color-info)}.ec-notif-card__rail--accent{background:var(--ec-color-leave)}.ec-notif-card__rail--neutral{background:var(--ec-color-pending)}.ec-notif-card__body{flex:1;min-width:0;display:flex;align-items:center;gap:var(--ec-space-3);padding:var(--ec-space-3) var(--ec-space-4)}.ec-notif-card__main{flex:1;min-width:0}.ec-notif-card__title{font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.ec-notif-card__subtitle{margin-top:2px;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-notif-card__status{flex-shrink:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);white-space:nowrap}.ec-metric-banner{display:flex;align-items:center;gap:var(--ec-space-3);margin:0;padding:var(--ec-space-4);cursor:pointer;transition:background var(--ec-duration-fast) var(--ec-ease-standard)}.ec-metric-banner:active{background:var(--ec-color-surface-muted)}.ec-metric-banner__leading{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:40px;height:40px;border-radius:var(--ec-radius-button);background:var(--ec-color-accent-bg);color:var(--ec-color-accent)}.ec-metric-banner__body{flex:1;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--ec-space-2)}.ec-metric-banner__label{font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text)}.ec-metric-banner__value{font-size:var(--ec-font-size-headline);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-accent);line-height:1}.ec-metric-banner__trend{display:inline-flex;align-items:center;color:var(--ec-color-success);flex-shrink:0}.ec-metric-banner__trend--down{color:var(--ec-color-danger)}.ec-metric-banner__trend--flat{color:var(--ec-color-text-secondary)}.ec-metric-banner__chevron{color:var(--ec-color-text-secondary);flex-shrink:0;display:inline-flex}.ec-notice-carousel{display:flex;gap:var(--ec-space-3);padding:0;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ec-notice-carousel::-webkit-scrollbar{display:none}.ec-notice-card{flex:0 0 min(320px,88%);scroll-snap-align:start;position:relative;display:block;padding:var(--ec-space-3);min-height:116px;overflow:visible}.ec-notice-card__layout{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--ec-space-3);align-items:center;min-height:100px}.ec-notice-card__cartoon{width:100px;flex-shrink:0;overflow:visible;background:transparent;align-self:center}.ec-notice-card__cartoon img{width:100%;height:auto;max-width:none;max-height:none;-o-object-fit:contain;object-fit:contain;display:block;border:0;border-radius:0}.ec-notice-card__content{display:flex;flex-direction:column;min-width:0;gap:var(--ec-space-1)}.ec-notice-card__heading{display:flex;align-items:flex-start;gap:var(--ec-space-2);min-width:0}.ec-notice-card__title{margin:0;flex:1;min-width:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text);line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-notice-card__priority{flex-shrink:0;margin-top:1px;padding:2px 6px;border-radius:var(--ec-radius-sm);background:var(--ec-color-danger);color:var(--ec-color-text-inverse);font-size:9px;font-weight:var(--ec-font-weight-bold);letter-spacing:.02em;line-height:1.2;text-transform:uppercase}.ec-notice-card__body{margin:0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);line-height:var(--ec-line-height-body);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-notice-card__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--ec-space-2);margin-top:auto;padding-top:var(--ec-space-1)}.ec-notice-card__audience{min-width:0;font-size:11px;font-weight:var(--ec-font-weight-medium);color:var(--ec-color-primary);background:var(--ec-color-info-bg);border-radius:var(--ec-radius-pill);padding:2px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:70%}.ec-notice-card__time{flex-shrink:0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);text-align:right;white-space:nowrap}.ec-notice-card__media{width:56px;height:56px;flex-shrink:0;border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);color:var(--ec-color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold)}.ec-notice-card__row{display:flex;gap:var(--ec-space-3);align-items:flex-start}.ec-weekday-bar{display:flex;justify-content:space-between;align-items:center;padding:var(--ec-space-3) var(--ec-space-6);background:var(--ec-color-surface);flex-shrink:0}.ec-weekday-bar__day{display:flex;flex-direction:column;align-items:center;gap:var(--ec-space-1);border:none;background:transparent;font-family:inherit;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);cursor:pointer;line-height:1.2}.ec-weekday-bar__day--selected:not(.ec-weekday-bar__day--today){color:var(--ec-color-text);font-weight:var(--ec-font-weight-bold)}.ec-weekday-bar__day--today{color:#9d174d;font-weight:var(--ec-font-weight-bold)}.ec-weekday-bar__day--future{color:var(--ec-color-text-secondary)}.ec-weekday-bar__dot{width:28px;height:28px;border-radius:var(--ec-radius-full);border:none;background:var(--ec-color-pending-bg);color:var(--ec-color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);line-height:1}.ec-weekday-bar__day--past .ec-weekday-bar__dot{background:var(--ec-color-warning-bg);color:var(--ec-color-warning)}.ec-weekday-bar__day--selected:not(.ec-weekday-bar__day--today) .ec-weekday-bar__dot{background:var(--ec-color-leave-bg);color:#db2777}.ec-weekday-bar__day--today .ec-weekday-bar__dot,.ec-weekday-bar__day--today.ec-weekday-bar__day--selected .ec-weekday-bar__dot{background:#9d174d;color:var(--ec-color-text-inverse)}.ec-checkin-map{position:relative;margin:var(--ec-space-4);height:280px;border-radius:var(--ec-radius-card);background:linear-gradient(135deg,var(--ec-color-info-bg) 0%,var(--ec-color-surface-muted) 55%,#e8eef5 100%);border:1px solid var(--ec-color-border);overflow:hidden;display:flex;align-items:center;justify-content:center}.ec-checkin-map__pin{width:56px;height:56px;border-radius:var(--ec-radius-full);background:var(--ec-color-accent);color:var(--ec-color-text-inverse);display:flex;align-items:center;justify-content:center;box-shadow:var(--ec-shadow-fab)}.ec-checkin-map__label{position:absolute;left:var(--ec-space-4);right:var(--ec-space-4);bottom:var(--ec-space-4);padding:var(--ec-space-3) var(--ec-space-4);border-radius:var(--ec-radius-md);background:var(--ec-color-surface);box-shadow:var(--ec-shadow-card);font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-checkin-map__label strong{display:block;font-size:var(--ec-font-size-body);color:var(--ec-color-text);margin-bottom:2px}.ec-checkin-mode{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-3);margin-bottom:var(--ec-space-4)}.ec-checkin-mode__status{min-height:48px;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--ec-color-border);border-radius:var(--ec-radius-md);background:var(--ec-color-surface);font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-checkin-mode__status.is-active{border-color:var(--ec-color-accent);background:var(--ec-color-success-bg);color:var(--ec-color-success)}.ec-checkin-confirm{width:88px;height:88px;margin:var(--ec-space-2) auto;border:none;border-radius:var(--ec-radius-full);background:var(--ec-color-accent);color:var(--ec-color-text-inverse);box-shadow:var(--ec-shadow-fab);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform var(--ec-duration-fast) var(--ec-ease-spring)}.ec-checkin-confirm:active{transform:scale(.94)}.ec-checkin-confirm .ec-icon{width:40px;height:40px;stroke-width:2.5}.ec-checkin-confirm:disabled{opacity:.45;cursor:not-allowed}.ec-ai-panel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:120;display:flex;flex-direction:column;background:var(--ec-color-surface);opacity:0;transform:translateY(24px);pointer-events:none;transition:opacity var(--ec-duration-sheet, .22s) var(--ec-ease-standard),transform var(--ec-duration-sheet, .22s) var(--ec-ease-standard)}.ec-ai-panel.is-open{opacity:1;transform:translateY(0);pointer-events:auto}.ec-ai-panel[hidden]{display:none!important}.ec-ai-panel.is-open[hidden]{display:flex!important}.ec-ai-panel--tab{position:relative;inset:auto;z-index:1;flex:1;min-height:0;width:100%;opacity:1;transform:none;pointer-events:auto;padding-bottom:calc(72px + var(--ec-space-2) + 20px + var(--ec-safe-bottom))}.ec-ai-panel--tab .ec-ai-panel__composer{padding-bottom:var(--ec-space-3)}.ec-ai-panel__header{position:relative;flex-shrink:0;display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--ec-space-3);min-height:112px;padding:calc(var(--ec-space-4) + var(--ec-safe-top)) var(--ec-space-4) var(--ec-space-4);background-color:#bee9e8;overflow:hidden;color:#2a6f6d}.ec-ai-panel__header-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-ai-panel__brand{display:flex;align-items:center;gap:var(--ec-space-3);min-width:0}.ec-ai-panel__bot{width:44px;height:44px;border-radius:var(--ec-radius-md);background:#fff3;display:flex;align-items:center;justify-content:center;flex-shrink:0}.ec-ai-panel__bot .ec-icon{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-panel__title{margin:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight)}.ec-ai-panel__actions{position:relative;z-index:1;display:flex;gap:6px;flex-shrink:0}.ec-ai-panel__icon-btn{width:36px;height:36px;border:none;border-radius:var(--ec-radius-md);background:#ffffffb8;color:#2a6f6d;box-shadow:0 1px 4px #2a6f6d1f;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-family:inherit;padding:0}.ec-ai-panel__icon-btn:active{background:#fffffff2}.ec-ai-panel__icon-btn .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-panel__body{flex:1;min-height:0;overflow-y:auto;padding:var(--ec-space-4);display:flex;flex-direction:column;gap:var(--ec-space-4);-webkit-overflow-scrolling:touch}.ec-ai-empty{text-align:center;padding:var(--ec-space-6) var(--ec-space-2)}.ec-ai-empty__icon{width:96px;height:96px;margin:0 auto;border-radius:0;background:transparent;display:flex;align-items:center;justify-content:center}.ec-ai-empty__mascot{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;display:block}.ec-ai-empty__icon .ec-icon{width:36px;height:36px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-empty__spacer{height:calc(var(--ec-font-size-body) * var(--ec-line-height-body));margin:var(--ec-space-4) 0 0}.ec-ai-empty__greeting{display:none}.ec-ai-empty__meta{margin:var(--ec-space-2) 0 0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-ai-empty__meta strong{color:var(--ec-color-text);font-weight:var(--ec-font-weight-semibold)}.ec-ai-prompts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(88px,auto));gap:var(--ec-space-3);margin-top:var(--ec-space-5);width:100%;text-align:left}.ec-ai-prompt{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:var(--ec-space-2);box-sizing:border-box;width:100%;min-height:88px;padding:var(--ec-space-4);border:none;border-radius:var(--ec-radius-lg);background:var(--ec-color-surface-muted);font-family:inherit;font-size:18px;font-weight:var(--ec-font-weight-medium);line-height:var(--ec-line-height-tight);color:var(--ec-color-text);text-align:left;cursor:pointer;transition:transform var(--ec-duration-press, .12s) var(--ec-ease-standard)}.ec-ai-prompt:active{transform:scale(.98);background:#e2e8f0}.ec-ai-prompt__icon{flex-shrink:0;font-size:32px;line-height:1}.ec-ai-prompt__label{display:block;width:100%;font-size:18px;line-height:1.25;white-space:normal;word-break:break-word}.ec-ai-msg{display:flex;gap:var(--ec-space-3);align-items:flex-start}.ec-ai-msg--user{justify-content:flex-end}.ec-ai-msg__avatar{width:36px;height:36px;border-radius:var(--ec-radius-md);background:var(--ec-ai-icon-bg);color:var(--ec-ai-icon-fg);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:2px}.ec-ai-msg__avatar .ec-icon{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-bubble{max-width:85%;padding:var(--ec-space-3) var(--ec-space-4);border-radius:var(--ec-radius-lg);font-size:15px;line-height:var(--ec-line-height-body);white-space:pre-wrap;word-break:break-word}.ec-ai-bubble--bot{background:var(--ec-color-surface-muted);color:var(--ec-color-text);border-bottom-left-radius:var(--ec-radius-sm)}.ec-ai-bubble--user{background:var(--ec-ai-user-bubble);color:var(--ec-color-text-inverse);border-bottom-right-radius:var(--ec-radius-sm)}.ec-ai-bubble--typing{display:inline-flex;align-items:center;min-height:44px;padding-inline:var(--ec-space-4)}.ec-ai-typing{width:18px;height:18px;border:2px solid var(--ec-color-border-strong);border-top-color:var(--ec-color-text-secondary);border-radius:50%;animation:ec-ai-spin .7s linear infinite}@keyframes ec-ai-spin{to{transform:rotate(360deg)}}.ec-ai-bubble--streaming:after{content:"";display:inline-block;width:2px;height:1.05em;margin-left:2px;vertical-align:-.12em;background:currentColor;animation:ec-ai-caret .85s step-end infinite}@keyframes ec-ai-caret{50%{opacity:0}}@media(prefers-reduced-motion:reduce){.ec-ai-bubble--streaming:after{animation:none;opacity:.7}}.ec-ai-followups{display:flex;flex-wrap:wrap;gap:var(--ec-space-2);padding-top:2px}.ec-ai-chip{display:inline-flex;align-items:center;gap:4px;padding:6px 12px;border:1px solid var(--ec-color-border);border-radius:var(--ec-radius-pill);background:#f1f5f9b3;font-family:inherit;font-size:13px;font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary);cursor:pointer}.ec-ai-chip:active{transform:scale(.95);background:var(--ec-color-surface-muted);color:var(--ec-color-text)}.ec-ai-history{flex-shrink:0;border-bottom:1px solid var(--ec-color-border);background:var(--ec-color-surface-muted);max-height:0;overflow:hidden;opacity:0;transition:max-height var(--ec-duration-sheet, .22s) var(--ec-ease-standard),opacity var(--ec-duration-fast, .15s) var(--ec-ease-standard)}.ec-ai-history.is-open{max-height:200px;opacity:1}.ec-ai-history__inner{padding:var(--ec-space-3) var(--ec-space-4);max-height:192px;overflow-y:auto}.ec-ai-history__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--ec-space-2)}.ec-ai-history__label{margin:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary)}.ec-ai-history__new{border:none;background:transparent;padding:0;font-family:inherit;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-ai-send);cursor:pointer}.ec-ai-history__empty{margin:0;padding:var(--ec-space-2) 0;font-size:13px;color:var(--ec-color-text-secondary)}.ec-ai-history__item{display:flex;align-items:center;gap:var(--ec-space-2);width:100%;padding:var(--ec-space-2) var(--ec-space-3);border:none;border-radius:var(--ec-radius-md);background:transparent;font-family:inherit;text-align:left;cursor:pointer;color:var(--ec-color-text)}.ec-ai-history__item:active,.ec-ai-history__item--active{background:var(--ec-ai-icon-bg);color:var(--ec-ai-icon-fg)}.ec-ai-history__item-title{margin:0;font-size:13px;font-weight:var(--ec-font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-ai-history__item-meta{margin:2px 0 0;font-size:11px;color:var(--ec-color-text-secondary)}.ec-ai-panel__icon-btn.is-active{background:#fffffff2;box-shadow:0 0 0 2px #2a6f6d47}.ec-ai-panel__composer{flex-shrink:0;border-top:1px solid var(--ec-color-border);padding:var(--ec-space-3);padding-bottom:calc(var(--ec-space-3) + var(--ec-safe-bottom));background:var(--ec-color-surface)}.ec-ai-composer{display:flex;gap:8px;align-items:center}.ec-ai-composer__field{flex:1;min-width:0;height:48px;padding:0 var(--ec-space-4);border:none;border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);font-family:inherit;font-size:15px;color:var(--ec-color-text);outline:none}.ec-ai-composer__field:focus{box-shadow:0 0 0 2px #2a6f6d59}.ec-ai-composer__field:disabled{opacity:.6}.ec-ai-composer__tool{width:44px;height:44px;flex-shrink:0;border:none;border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);color:var(--ec-color-text-secondary);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0;margin:0}.ec-ai-composer__tool:active{transform:scale(.94);background:#e2e8f0;color:var(--ec-color-text)}.ec-ai-composer__tool .ec-icon{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-composer__send{width:48px;height:48px;flex-shrink:0;border:none;border-radius:var(--ec-radius-md);background:var(--ec-ai-send);color:var(--ec-color-text-inverse);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.ec-ai-composer__send:disabled{opacity:.4;cursor:not-allowed}.ec-ai-composer__send:not(:disabled):active{transform:scale(.9)}.ec-ai-composer__send .ec-icon{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}.ec-ai-chat{display:flex;flex-direction:column;gap:var(--ec-space-3)}.ec-profile-hero{display:flex;align-items:center;gap:var(--ec-space-3);padding:0;text-align:left}.ec-profile-hero__text{flex:1;min-width:0}.ec-profile-hero__name{margin:0;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-profile-hero__meta{margin:2px 0 0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ec-profile-hero__trailing{flex-shrink:0}.ec-index-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--ec-space-4);padding:var(--ec-space-5)}.ec-index-hero__caption{margin:0 0 var(--ec-space-1);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary)}.ec-index-hero__value{margin:0;font-size:40px;line-height:1;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-accent);letter-spacing:var(--ec-letter-spacing-tight)}.ec-index-hero__trend{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--ec-radius-card);background:var(--ec-color-accent-bg);color:var(--ec-color-accent);flex-shrink:0}.ec-balance-strip{display:grid;grid-template-columns:1fr 1fr;gap:var(--ec-space-3)}.ec-balance-strip__item{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:var(--ec-space-2);padding:var(--ec-space-3);background:var(--ec-color-surface);border-radius:var(--ec-radius-card);box-shadow:var(--ec-shadow-card)}.ec-balance-strip__label{font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-balance-strip__value{font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-list{display:flex;flex-direction:column;gap:var(--ec-space-3)}.ec-cal-item{display:flex;gap:var(--ec-space-3);align-items:center;padding:var(--ec-space-4)}.ec-cal-item__date{width:56px;flex-shrink:0;text-align:center}.ec-cal-item__day{font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-cal-item__num{font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-primary)}.ec-cal-item__body{flex:1;min-width:0}.ec-cal-item__title{margin:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold)}.ec-fab-cta{position:absolute;right:var(--ec-space-4);bottom:calc(72px + var(--ec-safe-bottom) + var(--ec-space-4));z-index:30;min-height:48px;padding:0 var(--ec-space-5);border:none;border-radius:var(--ec-radius-pill);background:var(--ec-color-accent);color:var(--ec-color-text-inverse);font-family:inherit;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);box-shadow:var(--ec-shadow-fab);cursor:pointer}.ec-fab-cta--page{bottom:calc(var(--ec-space-4) + var(--ec-safe-bottom))}.ec-leave-page{position:relative;overflow:hidden}.ec-leave-form-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;background:transparent;opacity:1;pointer-events:none;visibility:hidden}.ec-leave-form-stage.is-visible{pointer-events:auto;visibility:visible}.ec-leave-form-stage__scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0f172a6b;opacity:0;transition:opacity .32s var(--ec-ease-out)}.ec-leave-form-stage.is-visible .ec-leave-form-stage__scrim{opacity:1}.ec-leave-form-stage__top{position:relative;z-index:1;flex:0 0 max(48px,calc(var(--ec-safe-top) + var(--ec-space-2)));min-height:max(48px,calc(var(--ec-safe-top) + var(--ec-space-2)));background:transparent}.ec-leave-sheet{position:relative;z-index:1;flex:1;min-height:0;background:var(--ec-color-surface);border-radius:var(--ec-radius-sheet) var(--ec-radius-sheet) 0 0;box-shadow:var(--ec-shadow-sheet);padding:var(--ec-space-3) max(var(--ec-space-6),var(--ec-safe-right)) 0 max(var(--ec-space-6),var(--ec-safe-left));display:flex;flex-direction:column;gap:var(--ec-space-4);overflow:visible;transform:translate3d(0,100%,0);transition:transform .42s var(--ec-ease-out);will-change:transform;touch-action:pan-y}.ec-leave-sheet:after{content:"";position:absolute;left:0;right:0;top:100%;height:100dvh;background:var(--ec-color-surface);pointer-events:none;z-index:0}.ec-leave-form-stage.is-visible .ec-leave-sheet{transform:translateZ(0)}.ec-leave-sheet.is-dragging{transition:none;cursor:grabbing}.ec-leave-sheet__drag-zone{position:relative;z-index:2;align-self:stretch;flex-shrink:0;touch-action:none;cursor:grab;min-height:44px;display:flex;align-items:center;justify-content:center;margin:calc(var(--ec-space-3) * -1) calc(var(--ec-space-6) * -1) 0;padding:var(--ec-space-3) var(--ec-space-6) var(--ec-space-2);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-leave-sheet__drag-zone:active{cursor:grabbing}.ec-leave-sheet__drag-zone>.ec-sheet-grabber{margin:0;pointer-events:none}.ec-leave-sheet__scroll{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;display:flex;flex-direction:column;gap:var(--ec-space-4);background:var(--ec-color-surface)}@media(prefers-reduced-motion:reduce){.ec-leave-sheet,.ec-leave-form-stage__scrim{transition:none}}.ec-leave-sheet__welcome{text-align:center;margin-bottom:var(--ec-space-1);flex-shrink:0}.ec-leave-sheet__welcome h1{margin:0;font-family:var(--ec-font-family-display);font-size:var(--ec-font-size-display);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);letter-spacing:var(--ec-letter-spacing-tight);color:var(--ec-color-text)}.ec-leave-sheet__welcome p{margin:var(--ec-space-2) 0 0;font-size:var(--ec-font-size-body);color:var(--ec-color-text-secondary)}.ec-leave-fields{display:flex;flex-direction:column;gap:var(--ec-space-4)}.ec-leave-fields .ec-input select.ec-input__field{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:40px}.ec-leave-attach{border:2px dashed var(--ec-color-border-strong);border-radius:var(--ec-radius-md);padding:var(--ec-space-5) var(--ec-space-4);text-align:center;background:var(--ec-color-surface-muted);cursor:pointer}.ec-leave-attach__label{margin:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text)}.ec-leave-attach__hint{margin:var(--ec-space-1) 0 0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-leave-impact{margin:0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-leave-sheet__submit{position:relative;z-index:1;flex-shrink:0;padding:var(--ec-space-2) 0 calc(var(--ec-space-8) + var(--ec-safe-bottom));background:var(--ec-color-surface)}.ec-detail__status{display:flex;align-items:center;gap:var(--ec-space-3);padding:var(--ec-space-4);border-radius:var(--ec-radius-md);background:var(--ec-color-surface-muted);margin-bottom:var(--ec-space-4)}.ec-detail__status-glyph{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:var(--ec-radius-button);font-size:20px;font-weight:800;color:var(--ec-color-text-inverse);flex-shrink:0;background:var(--ec-color-info)}.ec-detail__status-glyph--success{background:var(--ec-color-success)}.ec-detail__status-glyph--warning{background:var(--ec-color-warning)}.ec-detail__status-glyph--danger{background:var(--ec-color-danger)}.ec-detail__status-glyph--info{background:var(--ec-color-info)}.ec-detail__status-glyph--neutral{background:var(--ec-color-pending)}.ec-detail__status-label{margin:0;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);line-height:1.25}.ec-detail__status-note{margin:2px 0 0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text-secondary)}.ec-detail__rows{display:flex;flex-direction:column;gap:0;margin-bottom:var(--ec-space-5)}.ec-detail__row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ec-space-4);padding:var(--ec-space-3) 0;border-bottom:1px solid var(--ec-color-border)}.ec-detail__row:last-child{border-bottom:none}.ec-detail__row-label{flex-shrink:0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);min-width:72px}.ec-detail__row-value{flex:1;text-align:right;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-medium);color:var(--ec-color-text);word-break:break-word}.ec-detail__section-title{margin:0 0 var(--ec-space-3);font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text-secondary)}.ec-detail__timeline{display:flex;flex-direction:column;gap:0}.ec-detail__step{display:flex;gap:var(--ec-space-3)}.ec-detail__step-rail{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:28px}.ec-detail__step-dot{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;font-size:12px;font-weight:800;background:var(--ec-color-surface-muted);color:var(--ec-color-text-tertiary, var(--ec-color-text-secondary))}.ec-detail__step--done .ec-detail__step-dot{background:var(--ec-color-success);color:var(--ec-color-text-inverse)}.ec-detail__step--danger.ec-detail__step--done .ec-detail__step-dot{background:var(--ec-color-danger)}.ec-detail__step-line{flex:1;width:2px;min-height:20px;margin:4px 0;background:var(--ec-color-border)}.ec-detail__step--done .ec-detail__step-line{background:var(--ec-color-border-strong)}.ec-detail__step-body{flex:1;min-width:0;padding-bottom:var(--ec-space-4)}.ec-detail__step:last-child .ec-detail__step-body{padding-bottom:0}.ec-detail__step:last-child .ec-detail__step-line{display:none}.ec-detail__step-label{margin:0;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text);line-height:1.3}.ec-detail__step:not(.ec-detail__step--done) .ec-detail__step-label{color:var(--ec-color-text-secondary);opacity:.7}.ec-detail__step-meta{margin:2px 0 0;font-size:var(--ec-font-size-caption);color:var(--ec-color-text-secondary)}.ec-detail__notes{margin:var(--ec-space-4) 0 0;padding:var(--ec-space-3);border-radius:var(--ec-radius-md);background:var(--ec-color-danger-bg, rgba(220, 38, 38, .08));border:1px solid var(--ec-color-danger-border, rgba(220, 38, 38, .2));font-size:var(--ec-font-size-caption);color:var(--ec-color-text);font-style:italic}.ec-profile-page{--ec-home-hero-mint: #bee9e8;--ec-home-hero-ink: #2a6f6d;background:var(--ec-color-bg)}.ec-profile-page #view-profile.ec-screen-body{padding:0;padding-bottom:calc(var(--ec-space-6) + 72px)}.ec-profile-page #view-profile.ec-screen-body>*+*{margin-top:0}.ec-profile-hero-band{position:relative;flex-shrink:0;min-height:0;padding:calc(var(--ec-space-6) + var(--ec-safe-top)) var(--ec-space-5) 56px;overflow:hidden;background:var(--ec-home-hero-mint)}.ec-profile-hero-band__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:70% top;object-position:70% top;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.ec-profile-hero-band__content{position:relative;z-index:1;display:flex;align-items:center;gap:var(--ec-space-3);max-width:100%}.ec-profile-hero-band .ec-avatar{width:72px;height:72px;padding:0;background:transparent;box-shadow:none;overflow:visible}.ec-profile-hero-band .ec-avatar img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain}.ec-profile-hero-band .ec-profile-hero__text{flex:1;min-width:0}.ec-profile-hero-band .ec-profile-hero__name{margin:0;font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold);line-height:var(--ec-line-height-tight);color:var(--ec-home-hero-ink)}.ec-profile-hero-band .ec-profile-hero__meta{margin:var(--ec-space-1) 0 0;font-size:var(--ec-font-size-caption);font-weight:var(--ec-font-weight-medium);color:var(--ec-home-hero-ink);opacity:.85}.ec-profile-hero-band .ec-icon-btn{color:var(--ec-home-hero-ink);background:#ffffff8c}.ec-profile-page #view-profile>.ec-profile-sheet{--ec-profile-sheet-overlap: 48px;position:relative;z-index:2;margin-top:calc(-1 * var(--ec-profile-sheet-overlap));padding:0 var(--ec-space-4);display:flex;flex-direction:column;gap:var(--ec-space-3)}.ec-profile-sheet .ec-metric-banner{position:relative;margin:0;overflow:hidden;background:#ffffff94;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:var(--ec-shadow-card);border:1px solid rgba(226,232,240,.85)}.ec-profile-sheet .ec-metric-banner__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center;opacity:.42;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:0}.ec-profile-sheet .ec-metric-banner>:not(.ec-metric-banner__bg){position:relative;z-index:1}.ec-profile-sheet .ec-metric-banner:active{background:#f1f5f9b8}.ec-profile-sheet .ec-metric-banner__label{font-size:var(--ec-font-size-title);font-weight:var(--ec-font-weight-bold)}.ec-profile-sheet .ec-metric-banner__value{font-size:var(--ec-font-size-display)}.ec-profile-sheet .ec-balance-strip{margin:0}.ec-profile-sheet .ec-balance-strip__item{border:1px solid var(--ec-color-border)}.ec-profile-page #view-profile>.ec-profile-activity{position:relative;z-index:1;margin:var(--ec-space-5) 0 0;padding:var(--ec-space-5) var(--ec-space-4) var(--ec-space-6);background:var(--ec-color-surface);border-top:1px solid var(--ec-color-border)}.ec-profile-activity .ec-section-header{margin-bottom:var(--ec-space-3)}.ec-profile-page #view-profile>.ec-profile-logout{position:relative;z-index:1;margin:var(--ec-space-4) 0 0;padding:0 var(--ec-space-4)}@keyframes ec-profile-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.ec-profile-hero-band__content{animation:ec-profile-rise .45s var(--ec-ease-out) both}.ec-profile-sheet{animation:ec-profile-rise .5s var(--ec-ease-out) .08s both}.ec-profile-activity{animation:ec-profile-rise .55s var(--ec-ease-out) .14s both}.ec-profile-logout{animation:ec-profile-rise .55s var(--ec-ease-out) .18s both}.ec-profile-page #view-settings .ec-screen-body{padding-top:var(--ec-space-4);padding-bottom:calc(var(--ec-space-6) + var(--ec-safe-bottom))}.ec-profile-page.ec-app-shell{max-width:none;width:100%;min-height:100%;height:100%;flex:1}.persona-content-area--touch .ec-profile-page.ec-app-shell,.edu-persona-shell__main .ec-profile-page.ec-app-shell{min-height:0;height:100%}.ec-profile-page>.ec-push-view:not([hidden]){display:flex;flex-direction:column;flex:1;min-height:0}.ec-metric-banner__trend--down .ec-icon,.ec-index-hero__trend--down .ec-icon{transform:rotate(180deg)}.ec-notif-page.ec-app-shell{max-width:none;width:100%;min-height:100%;height:100%;flex:1}.persona-content-area--touch .ec-notif-page.ec-app-shell,.edu-persona-shell__main .ec-notif-page.ec-app-shell{min-height:0;height:100%}.ec-tab-bar--viewport-fixed{position:fixed!important;left:0;right:0;bottom:0;z-index:40}.ec-notif-page .ec-screen-body{padding-bottom:calc(var(--ec-space-6) + 72px + var(--ec-safe-bottom, 0px))}.ec-timetable-page{display:flex;flex-direction:column;min-height:calc(100dvh - 24px);background:#fff;border-radius:20px;overflow:hidden;border:1px solid #dbe3ee;box-shadow:0 16px 40px #0f172a14}.ec-timetable-page .ec-ipad-lessons{border-right:none;height:100%;min-height:0;padding-bottom:0}.ec-timetable-page .ec-ipad-lessons__header{gap:12px;padding-bottom:6px}.ec-timetable-page .ec-ipad-lessons__body{padding-top:20px}.ec-timetable-page__actions{display:inline-flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.ec-timetable-page__action{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 12px;border:1.5px solid #cbd5e1;border-radius:999px;background:#fff;color:#475569;font:inherit;font-size:12px;font-weight:700;cursor:pointer}.ec-timetable-page__action:disabled{opacity:.45;cursor:not-allowed}.ec-timetable-page__action:not(:disabled):hover{border-color:#93c5fd;color:#1d4ed8;background:#eff6ff}.ec-teacher-weekly{display:flex;flex-direction:column;gap:6px;min-width:640px;padding-left:4px}.ec-teacher-weekly__head{display:grid;grid-template-columns:52px 72px repeat(5,minmax(0,1fr));gap:6px;align-items:stretch;padding:0 2px 10px;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:2;background:#fff}.ec-teacher-weekly__corner{display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;font-size:11px;font-weight:700;color:#94a3b8}.ec-teacher-weekly__day{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 6px;border:none;border-radius:14px;background:transparent;color:#94a3b8;font:inherit;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}.ec-teacher-weekly__day.is-today{background:#eff6ff;box-shadow:inset 0 0 0 1.5px #bfdbfe}.ec-teacher-weekly__day.is-focus{background:#2563eb;color:#fff;box-shadow:0 8px 18px #2563eb47}.ec-teacher-weekly__day-dow{font-size:11px;font-weight:600;line-height:1}.ec-teacher-weekly__day-num{font-size:16px;font-weight:800;color:#0f172a;line-height:1.2}.ec-teacher-weekly__day.is-focus .ec-teacher-weekly__day-num{color:#fff}.ec-teacher-weekly__day-today{font-size:10px;font-weight:700;line-height:1;color:#2563eb}.ec-teacher-weekly__day.is-focus .ec-teacher-weekly__day-today{color:#ffffffe6}.ec-teacher-weekly__row{position:relative;display:grid;grid-template-columns:52px 72px repeat(5,minmax(0,1fr));gap:6px;align-items:stretch;padding:4px 2px;border-radius:14px;transition:background .2s ease,box-shadow .2s ease}.ec-teacher-weekly__row.is-break{min-height:40px}.ec-teacher-weekly__row.is-now{background:#eff6ff;box-shadow:inset 0 0 0 1.5px #bfdbfe}.ec-teacher-weekly__row.is-now:before{content:"";position:absolute;left:-2px;top:50%;margin-top:-6px;width:0;height:0;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #2563eb;z-index:3}.ec-teacher-weekly__period{width:30px;height:30px;margin:auto;border-radius:8px;background:#e2e8f0;color:#475569;font-size:13px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__period{background:#2563eb;color:#fff;box-shadow:0 0 0 2px #93c5fd}.ec-teacher-weekly__time{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;padding-right:4px;font-size:11px;font-weight:700;color:#64748b;font-variant-numeric:tabular-nums;line-height:1.25;text-align:right}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__time{color:#2563eb}.ec-teacher-weekly__break-label{grid-column:1 / 3;display:flex;align-items:center;gap:8px;margin:2px 0;padding:8px 12px;border-radius:12px;background:#f1f5f9;color:#64748b;font-size:12px;font-weight:700}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__break-label{background:#dbeafe;color:#1d4ed8}.ec-teacher-weekly__break-label span:last-child{font-weight:600;color:#94a3b8;font-variant-numeric:tabular-nums}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__break-label span:last-child{color:#3b82f6}.ec-teacher-weekly__cell{min-height:64px;padding:10px;border-radius:12px;background:#fff;border:none;box-shadow:none;display:flex;flex-direction:column;justify-content:center;gap:4px;transition:box-shadow .15s ease,border-color .15s ease,background .15s ease}.ec-teacher-weekly__row:not(.is-now) .ec-teacher-weekly__cell:not(.is-empty):not(.is-off):not(.is-break-cell):not(.is-sub){background:#fff;box-shadow:0 1px 2px #0f172a0a}.ec-teacher-weekly__cell.is-empty{background:transparent;border:1.5px dashed #e2e8f0;box-shadow:none;align-items:center;color:#cbd5e1;font-size:12px;font-weight:700}.ec-teacher-weekly__cell.is-off{background:#f1f5f9;border:none;box-shadow:none;align-items:center;color:#94a3b8;font-size:11px;font-weight:700}.ec-teacher-weekly__cell.is-break-cell{min-height:40px;background:transparent;border:none;box-shadow:none;align-items:center;text-align:center;color:#64748b;font-size:11px;font-weight:700}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__cell{background:#fff;box-shadow:0 4px 14px #2563eb1a}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__cell.is-empty{background:#ffffffa6;border-color:#93c5fd;color:#93c5fd}.ec-teacher-weekly__row.is-now .ec-teacher-weekly__cell.is-break-cell{background:#ffffff8c;color:#1d4ed8}.ec-teacher-weekly__cell.is-focus-col:not(.is-off){outline:1.5px solid #93c5fd;outline-offset:-1px}.ec-teacher-weekly__cell.is-sub{border:1px solid #fdba74;background:#fff7ed}.ec-teacher-weekly__subject{margin:0;font-size:13px;font-weight:800;color:#0f172a;line-height:1.25;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-teacher-weekly__meta{margin:0;font-size:11px;font-weight:600;color:#64748b;line-height:1.3;display:-webkit-box;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.ec-teacher-weekly__chip{display:inline-flex;align-self:flex-start;padding:1px 7px;border-radius:999px;background:#fff7ed;border:1px solid #fdba74;color:#ea580c;font-size:10px;font-weight:700}.ec-teacher-weekly__struck{font-size:10px;font-weight:600;color:#94a3b8;text-decoration:line-through}@media(max-width:1023px){.ec-timetable-page{border-radius:0;border:none;box-shadow:none;min-height:100%}.ec-timetable-page .ec-ipad-lessons{padding-bottom:calc(80px + env(safe-area-inset-bottom,0px))}}.ec-cal-page .ec-screen-body{display:flex;flex-direction:column;gap:var(--ec-space-3);padding-bottom:calc(var(--ec-space-6) + var(--ec-safe-bottom))}.ec-cal-mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border-radius:var(--ec-radius-md, 12px);background:var(--ec-color-surface-muted, #f1f5f9)}.ec-cal-mode__btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 var(--ec-space-3);border:none;border-radius:10px;background:transparent;color:var(--ec-color-text-secondary);font-family:inherit;font-size:var(--ec-font-size-body);font-weight:var(--ec-font-weight-semibold);cursor:pointer;transition:background var(--ec-duration-fast) var(--ec-ease-standard),color var(--ec-duration-fast) var(--ec-ease-standard),box-shadow var(--ec-duration-fast) var(--ec-ease-standard)}.ec-cal-mode__btn[aria-selected=true]{background:var(--ec-color-surface);color:var(--ec-color-text);box-shadow:0 1px 3px #0f172a14}.ec-cal-mode__btn svg{width:16px;height:16px;flex-shrink:0}.ec-cal-panel{display:none}.ec-cal-panel.is-active{display:block}.ec-cal-card{padding:var(--ec-space-4);border-radius:var(--ec-radius-card);border:1px solid var(--ec-color-border);background:var(--ec-color-surface);box-shadow:var(--ec-shadow-card)}.ec-cal-month-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--ec-space-2);margin-bottom:var(--ec-space-3)}.ec-cal-month-nav__title{margin:0;font-size:16px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-weekday-head{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}.ec-cal-weekday-head span{text-align:center;font-size:11px;font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text-secondary);padding:4px 0}.ec-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.ec-cal-cell{min-height:40px;border-radius:10px;border:1px solid transparent;background:transparent;padding:4px;font-family:inherit;text-align:left;cursor:pointer;color:var(--ec-color-text);transition:box-shadow var(--ec-duration-fast) var(--ec-ease-standard)}.ec-cal-cell:disabled{opacity:.28;cursor:default}.ec-cal-cell__num{display:block;font-size:12px;font-variant-numeric:tabular-nums;font-weight:var(--ec-font-weight-semibold)}.ec-cal-cell--today .ec-cal-cell__num{color:var(--ec-color-primary);font-weight:var(--ec-font-weight-bold)}.ec-cal-cell--selected{box-shadow:0 0 0 2px var(--ec-color-primary)}.ec-cal-cell--school{background:var(--ec-color-surface);border-color:#e2e8f0}.ec-cal-cell--holiday{background:#ffe4e6;border-color:#fecdd3;color:#9f1239}.ec-cal-cell--teacher_development{background:#fffbeb;border-color:#fcd34d;color:#78350f}.ec-cal-cell--activity{background:#e0f2fe;border-color:#bae6fd;color:#0c4a6e}.ec-cal-cell--half_day_am{background:#fef3c7;border-color:#fde68a;color:#78350f}.ec-cal-legend{display:flex;flex-wrap:wrap;gap:10px 14px;margin-top:var(--ec-space-3);font-size:11px;color:var(--ec-color-text-secondary)}.ec-cal-legend__swatch{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid;margin-right:6px;vertical-align:-1px}.ec-cal-detail{margin-top:var(--ec-space-3);padding:var(--ec-space-3);border-radius:12px;background:#f8fafc;border:1px solid #eef1f6}.ec-cal-detail__date{margin:0;font-size:12px;color:var(--ec-color-text-secondary)}.ec-cal-detail__badge{display:inline-flex;margin-top:8px;padding:2px 8px;border-radius:999px;border:1px solid;font-size:11px;font-weight:var(--ec-font-weight-semibold)}.ec-cal-detail__badge--holiday{background:#ffe4e6;border-color:#fecdd3;color:#9f1239}.ec-cal-detail__badge--teacher_development{background:#fffbeb;border-color:#fcd34d;color:#78350f}.ec-cal-detail__badge--activity{background:#e0f2fe;border-color:#bae6fd;color:#0c4a6e}.ec-cal-detail__title{margin:8px 0 0;font-size:15px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-detail__empty{margin:8px 0 0;font-size:13px;color:var(--ec-color-text-secondary)}.ec-cal-upcoming{margin-top:var(--ec-space-4)}.ec-cal-upcoming__title{margin:0 0 var(--ec-space-2);font-size:14px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-upcoming__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ec-cal-upcoming__item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border-radius:12px;border:1px solid #eef1f6;background:var(--ec-color-surface);text-align:left;font-family:inherit;cursor:pointer}.ec-cal-upcoming__item:active{background:#f8fafc}.ec-cal-upcoming__day{width:44px;flex-shrink:0;text-align:center}.ec-cal-upcoming__day-m{margin:0;font-size:11px;color:var(--ec-color-text-secondary);line-height:1}.ec-cal-upcoming__day-d{margin:2px 0 0;font-size:18px;font-weight:var(--ec-font-weight-bold);font-variant-numeric:tabular-nums;color:var(--ec-color-text);line-height:1.1}.ec-cal-upcoming__body{min-width:0;flex:1}.ec-cal-upcoming__name{margin:0;font-size:14px;font-weight:var(--ec-font-weight-semibold);color:var(--ec-color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-cal-upcoming__type{margin:2px 0 0;font-size:11px;color:var(--ec-color-text-secondary)}.ec-cal-year-head{text-align:center;margin-bottom:var(--ec-space-3)}.ec-cal-year-head h2{margin:0;font-size:16px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-year-head p{margin:4px 0 0;font-size:13px;color:var(--ec-color-text-secondary)}.ec-cal-year-head__ver{font-size:11px!important;color:#94a3b8!important}.ec-cal-year-stats{display:flex;justify-content:center;gap:20px;margin-top:12px;font-size:12px;color:var(--ec-color-text-secondary)}.ec-cal-year-stats strong{color:var(--ec-color-text);font-variant-numeric:tabular-nums}.ec-cal-year-hint{margin:0 0 var(--ec-space-3);font-size:11px;color:#94a3b8}.ec-cal-month-acc{display:flex;flex-direction:column;gap:10px}.ec-cal-month-acc__item{overflow:hidden;border-radius:var(--ec-radius-card);border:1px solid var(--ec-color-border);background:var(--ec-color-surface);box-shadow:0 2px 10px #0f172a08}.ec-cal-month-acc__btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:none;background:transparent;font-family:inherit;text-align:left;cursor:pointer}.ec-cal-month-acc__label{margin:0;font-size:16px;font-weight:var(--ec-font-weight-bold);color:var(--ec-color-text)}.ec-cal-month-acc__sub{margin:2px 0 0;font-size:11px;color:var(--ec-color-text-secondary)}.ec-cal-month-acc__chev{width:20px;height:20px;color:#94a3b8;flex-shrink:0;transition:transform var(--ec-duration-fast) var(--ec-ease-standard)}.ec-cal-month-acc__item.is-open .ec-cal-month-acc__chev{transform:rotate(180deg)}.ec-cal-month-acc__body{display:none;padding:0 12px 16px;border-top:1px solid #f1f5f9}.ec-cal-month-acc__item.is-open .ec-cal-month-acc__body{display:block}.ec-cal-mini-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:12px}.ec-cal-mini-week--head span{text-align:center;font-size:10px;font-weight:var(--ec-font-weight-semibold);color:#94a3b8;padding:4px 0}.ec-cal-mini-day{position:relative;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid #f1f5f9;font-size:11px;font-variant-numeric:tabular-nums;background:#fff;color:#334155}.ec-cal-mini-day--empty{background:#f1f5f9;border-color:transparent}.ec-cal-mini-day--weekend{background:#f8fafc;color:#94a3b8}.ec-cal-mini-day--holiday{background:#e2e8f0;border-color:#cbd5e1;color:#b91c1c}.ec-cal-mini-day--teacher{background:#fffbeb;border-color:#fcd34d;color:#78350f}.ec-cal-mini-day--event{background:#e0f2fe;border-color:#bae6fd;color:#0c4a6e;font-weight:var(--ec-font-weight-bold)}.ec-cal-mini-day--cross:before,.ec-cal-mini-day--cross:after{content:"";position:absolute;left:10%;right:10%;top:50%;border-top:1px solid rgba(239,68,68,.7);pointer-events:none}.ec-cal-mini-day--cross:before{transform:rotate(-34deg)}.ec-cal-mini-day--cross:after{transform:rotate(34deg)}.ec-cal-mini-day__ring{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 2px;border-radius:999px;box-shadow:0 0 0 1px #f59e0b;position:relative;z-index:1}.ec-cal-notes{margin-top:14px;display:flex;flex-direction:column;gap:12px}.ec-cal-notes__group-label{margin:0 0 6px;font-size:11px;font-weight:var(--ec-font-weight-semibold);letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.ec-cal-notes__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.ec-cal-notes__row{display:flex;gap:8px;padding:8px 10px;border-radius:10px;font-size:12px}.ec-cal-notes__row--holiday{background:#ffe4e6cc;color:#881337}.ec-cal-notes__row--event{background:#e0f2fecc;color:#0c4a6e}.ec-cal-notes__date{flex-shrink:0;font-weight:var(--ec-font-weight-semibold);font-variant-numeric:tabular-nums}.ec-cal-notes__empty{margin:0;font-size:12px;color:#94a3b8}.ec-cal-foot{margin:var(--ec-space-2) 0 0;text-align:center;font-size:11px;color:#94a3b8}.ec-cal-weeks{display:flex;flex-direction:column;gap:6px;margin-top:6px}.ec-cal-page.ec-teacher-ui{font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);line-height:var(--ec-line-height-body);color:var(--ec-color-text);-webkit-font-smoothing:antialiased}.ec-cal-page.ec-app-shell{max-width:none;width:100%;min-height:100%;height:100%;flex:1}.persona-content-area--touch .ec-cal-page.ec-app-shell,.edu-persona-shell__main .ec-cal-page.ec-app-shell{min-height:0;height:100%}@media print{@page{size:A3 landscape;margin:8mm}.print\:hidden{display:none!important}.print-color-exact,.print-color-exact *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.timetable-print-table{font-size:8px!important;width:100%!important}.timetable-print-table th,.timetable-print-table td{padding:1px 2px!important;border:1px solid #ccc!important}.timetable-print-area{width:100%}}:root{--radius-sticker: 3px;--radius-card: 16px;--radius-button: 9999px;--color-primary: #2563eb;--color-primary-dark: #1e40af;--color-surface: #ffffff;--color-surface-muted: #f8fafc;--color-text: #0f172a;--color-text-muted: #64748b;--color-success: #16a34a;--color-warning: #d97706;--color-danger: #dc2626;--motion-spring: cubic-bezier(.34, 1.56, .64, 1)}.educalx-sticker{border-radius:var(--radius-sticker);background:var(--color-primary);display:inline-flex;align-items:center;justify-content:center}.educalx-card{border-radius:var(--radius-card);background:var(--color-surface);border:1px solid #e2e8f0}.educalx-btn-primary{border-radius:var(--radius-button);background:var(--color-primary);color:#fff;padding:.625rem 1.25rem;font-weight:700;border:none;cursor:pointer}.educalx-btn-primary:hover{background:var(--color-primary-dark)}.edu-branded-login{--school-primary: #1b72e9;--school-accent: #1b72e9;--school-bg: linear-gradient(135deg, #dbeafe 0%, #f8fafc 55%, #ffffff 100%);--school-card-bg: #ffffff;--school-card-border: #e2e8f0;width:100%;display:flex;justify-content:center}.edu-branded-login__frame{border-radius:18px;overflow:hidden;box-shadow:0 24px 60px #0f172a1f;background:var(--school-bg);min-height:420px}.edu-branded-login--phone .edu-branded-login__frame{min-height:680px;border-radius:28px;border:8px solid #0f172a}.edu-branded-login__split{display:grid;grid-template-columns:1fr 1fr;min-height:420px}.edu-branded-login__brand-panel{padding:2.5rem 2rem;display:flex;flex-direction:column;justify-content:center;gap:.75rem;background:color-mix(in srgb,var(--school-primary) 12%,white);border-right:1px solid color-mix(in srgb,var(--school-primary) 18%,white)}.edu-branded-login__logo{width:88px;height:88px;-o-object-fit:contain;object-fit:contain}.edu-branded-login__logo--sm{width:42px;height:42px}.edu-branded-login__brand-panel h1,.edu-branded-login__card-header h1{margin:0;font-size:1.35rem;font-weight:700;color:#0f172a;line-height:1.25}.edu-branded-login__hero{margin:0;font-size:.9rem;color:#475569;line-height:1.55;max-width:28ch}.edu-branded-login__school-tag{margin:.5rem 0 0;font-size:.75rem;color:var(--school-primary);font-weight:600}.edu-branded-login__card{padding:1.75rem;background:var(--school-card-bg);border:1px solid var(--school-card-border);border-radius:18px;margin:1.5rem}.edu-branded-login__card-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem}.edu-branded-login__card-header p{margin:.15rem 0 0;font-size:.75rem;color:#64748b}.edu-branded-login__form-panel{padding:2rem 1.75rem;background:var(--school-card-bg);display:flex;flex-direction:column;gap:.85rem}.edu-branded-login__form-panel h2{margin:0;font-size:1.15rem;color:#0f172a}.edu-branded-login__form-lead{margin:-.35rem 0 .35rem;font-size:.82rem;color:#64748b}.edu-branded-login__field label{display:block;font-size:.75rem;font-weight:600;color:#334155;margin-bottom:.35rem}.edu-branded-login__input{height:42px;border-radius:10px;border:1px solid #e2e8f0;background:#fff;display:flex;align-items:center;padding:0 .85rem;font-size:.85rem;color:#64748b}.edu-branded-login__submit{margin-top:.35rem;height:44px;border:none;border-radius:10px;background:var(--school-primary);color:#fff;font-weight:600;font-size:.95rem;cursor:default}.edu-branded-login__announcements{border-radius:10px;border:1px solid #dbeafe;background:#f8fbff;padding:.75rem .85rem}.edu-branded-login__announcements-title{font-size:.72rem;font-weight:700;color:#1d4ed8;margin-bottom:.45rem}.edu-branded-login__announcement-item{display:flex;align-items:center;gap:.45rem;font-size:.75rem;color:#334155}.edu-branded-login__announcement-badge{font-size:.62rem;font-weight:700;color:#b91c1c;background:#fee2e2;border-radius:999px;padding:.1rem .45rem}.edu-branded-login--phone .edu-branded-login__split{grid-template-columns:1fr}.edu-branded-login--phone .edu-branded-login__brand-panel{display:none}.edu-branded-login--phone .edu-branded-login__card{margin:0;border:none;border-radius:0;min-height:100%}.edu-branded-login--tablet .edu-branded-login__split{grid-template-columns:.95fr 1.05fr}@keyframes eduLoginGradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes eduLoginOrbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12%,-8%) scale(1.06)}66%{transform:translate(-8%,10%) scale(.94)}}@keyframes eduLoginWaveDrift{0%{transform:translate(-6%) rotate(-2deg)}50%{transform:translate(6%) rotate(2deg)}to{transform:translate(-6%) rotate(-2deg)}}.edu-app-login{--school-primary: #1b72e9;--school-accent: #1b72e9;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,44vw);background:#fff;color:#0f172a;font-family:Inter,Noto Sans TC,Helvetica Neue,Helvetica,Arial,sans-serif}.edu-app-login__news{position:relative;display:flex;align-items:stretch;min-height:100dvh;overflow:hidden;color:#fff}.edu-app-login__news-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(-45deg,color-mix(in srgb,var(--school-primary) 88%,#0ea5e9),color-mix(in srgb,var(--school-primary) 72%,#6366f1),#38bdf8,color-mix(in srgb,var(--school-primary) 65%,#8b5cf6),color-mix(in srgb,var(--school-primary) 80%,#06b6d4));background-size:400% 400%;animation:eduLoginGradientShift 18s ease infinite}.edu-app-login__orb{position:absolute;border-radius:50%;filter:blur(48px);opacity:.45;animation:eduLoginOrbFloat 14s ease-in-out infinite}.edu-app-login__orb--1{width:42%;height:42%;top:-8%;left:-6%;background:#ffffff59}.edu-app-login__orb--2{width:36%;height:36%;bottom:8%;right:-4%;background:#ffffff38;animation-delay:-4s}.edu-app-login__orb--3{width:28%;height:28%;top:38%;left:42%;background:color-mix(in srgb,var(--school-primary) 40%,white);animation-delay:-8s}.edu-app-login__wave{position:absolute;left:-10%;width:120%;height:34%;border-radius:45%;background:#ffffff14;animation:eduLoginWaveDrift 12s ease-in-out infinite}.edu-app-login__wave--1{bottom:12%}.edu-app-login__wave--2{bottom:22%;opacity:.55;animation-delay:-5s}.edu-app-login__news-content{position:relative;z-index:1;display:flex;flex-direction:column;min-height:100%;width:100%;padding:3rem clamp(2rem,4vw,3.5rem)}.edu-app-login__news-brand{display:flex;flex-direction:column;gap:.85rem}.edu-app-login__news-center{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem 0 1.5rem;min-height:0}.edu-app-login__news-logo{width:88px;height:88px;-o-object-fit:contain;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(15,23,42,.18))}.edu-app-login__news-lead{margin:0;max-width:36ch;font-size:1.0625rem;line-height:1.55;opacity:.92}.edu-app-login__news-feed{width:min(100%,480px);padding:1.35rem 1.4rem 1.2rem;border-radius:18px;background:#fff;box-shadow:0 18px 40px #0f172a24;border:1px solid rgba(255,255,255,.65)}.edu-app-login__news-feed-header{display:flex;align-items:center;gap:.85rem;margin-bottom:1.1rem;padding-bottom:.95rem;border-bottom:2px solid color-mix(in srgb,var(--school-primary) 18%,#e2e8f0)}.edu-app-login__news-feed-heading{flex:1;min-width:0}.edu-app-login__news-feed-icon{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:12px;background:color-mix(in srgb,var(--school-primary) 14%,white);color:var(--school-primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--school-primary) 8%,transparent)}.edu-app-login__news-feed-title{margin:0;line-height:1.2}.edu-app-login__news-feed-title-zh{display:inline-block;font-size:1.375rem;font-weight:800;letter-spacing:-.02em;color:var(--school-primary);padding:.15rem .55rem;border-radius:8px;background:color-mix(in srgb,var(--school-primary) 12%,white);box-shadow:inset 0 -2px color-mix(in srgb,var(--school-primary) 35%,transparent)}.edu-app-login__news-feed-subtitle{margin:.4rem 0 0;font-size:.875rem;font-weight:600;color:color-mix(in srgb,var(--school-primary) 62%,#64748b);line-height:1.4}.edu-app-login__news-feed-list{display:grid;gap:.85rem}.edu-app-login__news-feed-list .youth-card{margin:0;padding:1.05rem 1.1rem!important;border-radius:14px;border:1px solid color-mix(in srgb,var(--school-primary) 14%,#e2e8f0);background:#f8fbff;box-shadow:none}.edu-app-login__news-feed-list h3{color:var(--school-primary)!important;font-size:1.0625rem!important;line-height:1.35!important}.edu-app-login__news-feed-list p{color:color-mix(in srgb,var(--school-primary) 45%,#334155)!important;font-size:.9375rem!important;line-height:1.5!important}.edu-app-login__news-feed-list .text-slate-900{color:var(--school-primary)!important}.edu-app-login__news-feed-list .text-slate-600{color:color-mix(in srgb,var(--school-primary) 40%,#475569)!important;font-size:.9375rem!important}.edu-app-login__news-feed-list .text-slate-400,.edu-app-login__news-feed-list .text-slate-500{color:color-mix(in srgb,var(--school-primary) 40%,#64748b)!important;font-size:.8125rem!important}.edu-app-login__news-feed-list .text-\[12px\]{font-size:.9375rem!important}.edu-app-login__news-feed-list .text-\[11px\]{font-size:.8125rem!important}.edu-app-login__news-feed-list .text-\[14px\]{font-size:1.0625rem!important}.edu-app-login__news-feed-list .text-\[10px\]{font-size:.75rem!important}.edu-app-login__news-feed-list .text-indigo-600,.edu-app-login__news-feed-list .bg-indigo-50{color:var(--school-primary)!important;background:color-mix(in srgb,var(--school-primary) 10%,white)!important}.edu-app-login__news-feed-dots{display:flex;justify-content:center;gap:.4rem;margin:1rem 0 0;padding:0}.edu-app-login__news-feed-dots span{width:.5rem;height:.5rem;border-radius:999px;background:color-mix(in srgb,var(--school-primary) 22%,#cbd5e1);transition:transform .2s ease,background-color .2s ease}.edu-app-login__news-feed-dots span.is-active{background:var(--school-primary);transform:scale(1.15)}.edu-app-login__news-placeholder{width:min(100%,480px);padding:1.25rem 1.35rem;border-radius:18px;background:#ffffffeb;border:1px solid rgba(255,255,255,.65);box-shadow:0 18px 40px #0f172a1f}.edu-app-login__news-placeholder p{margin:0;font-size:1.0625rem;line-height:1.55;color:var(--school-primary);font-weight:600;text-align:center}.edu-app-login__news-placeholder-en{margin:.4rem 0 0!important;font-size:.9375rem!important;font-weight:500!important;color:color-mix(in srgb,var(--school-primary) 70%,#64748b)!important}.edu-app-login__panel{position:relative;display:grid;grid-template-rows:1fr auto;min-height:100dvh;padding:1.5rem 2.75rem 1.65rem;border-left:1px solid #f1f5f9;background:#fff}.edu-app-login__center{position:relative;display:flex;align-items:center;justify-content:center;min-height:0;padding:2rem 0 1rem}.edu-app-login__toolbar{position:absolute;top:.5rem;right:0;z-index:10;display:flex;align-items:center;gap:.55rem}.edu-login-locale{display:inline-flex;align-items:center;padding:.2rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;box-shadow:0 2px 8px #0f172a0f}.edu-login-locale__btn{min-width:2.15rem;height:1.9rem;padding:0 .55rem;border:0;border-radius:999px;background:transparent;color:#64748b;font:inherit;font-size:.75rem;font-weight:700;letter-spacing:.02em;cursor:pointer}.edu-login-locale__btn.is-active{background:color-mix(in srgb,var(--school-primary, #1b72e9) 12%,white);color:var(--school-primary, #1b72e9)}.edu-login-locale--on-hero{border-color:#ffffff59;background:#ffffff29;box-shadow:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.edu-login-locale--on-hero .edu-login-locale__btn{color:#ffffffc7}.edu-login-locale--on-hero .edu-login-locale__btn.is-active{background:#ffffffeb;color:var(--school-primary, #1b72e9)}.edu-app-login__notify-bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border:1px solid #e2e8f0;border-radius:999px;background:#fff;color:var(--school-primary);cursor:pointer;box-shadow:0 2px 8px #0f172a0f;transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}.edu-app-login__notify-bell:hover{background:#f8fbff;border-color:color-mix(in srgb,var(--school-primary) 25%,#e2e8f0)}.edu-app-login__notify-bell.is-active{background:color-mix(in srgb,var(--school-primary) 10%,white);border-color:color-mix(in srgb,var(--school-primary) 35%,#e2e8f0);box-shadow:0 0 0 3px color-mix(in srgb,var(--school-primary) 14%,transparent)}.edu-app-login__notify-dot{position:absolute;top:.55rem;right:.6rem;width:.5rem;height:.5rem;border-radius:999px;background:#ef4444;box-shadow:0 0 0 2px #fff}.edu-app-login__card{width:min(100%,420px)}.edu-app-login__school-name{margin:0 0 .55rem;text-align:center;font-size:clamp(1.55rem,2.2vw,2rem);line-height:1.25;font-weight:800;letter-spacing:-.02em;color:var(--school-primary)}.edu-app-login__card-heading{margin:0;text-align:center;font-size:1.85rem;line-height:1.2;font-weight:800;letter-spacing:-.02em;color:#111827}.edu-app-login__card-heading+.edu-app-login__form{margin-top:1.75rem}.edu-app-login__form{display:grid;gap:1.15rem}.edu-app-login__form label{display:grid;gap:.45rem;color:#111827;font-size:.9375rem;font-weight:600}.edu-app-login__field-label{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:.45rem}.edu-app-login__field-label-en{font-size:.8125rem;font-weight:600;color:#94a3b8}.edu-app-login__input-wrap{position:relative;display:block}.edu-app-login__input-icon{position:absolute;top:50%;left:.75rem;transform:translateY(-50%);color:#94a3b8;pointer-events:none}.edu-app-login__input-wrap--password input{padding-right:2.75rem}.edu-app-login__password-toggle{position:absolute;top:50%;right:.55rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:8px;background:transparent;color:#94a3b8;cursor:pointer;transition:color .15s ease,background-color .15s ease}.edu-app-login__password-toggle:hover{color:var(--school-primary);background:color-mix(in srgb,var(--school-primary) 8%,white)}.edu-app-login__form input{width:100%;height:3.15rem;border:1px solid #e2e8f0;border-radius:12px;padding:0 .95rem 0 2.65rem;color:#0f172a;font-size:1.0625rem;font-family:inherit;background:#f8fafc;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.edu-app-login__form input:focus{outline:none;border-color:var(--school-primary);background:#fff;box-shadow:0 0 0 3px color-mix(in srgb,var(--school-primary) 18%,transparent)}.edu-app-login__form input.is-error{border-color:#f87171;box-shadow:0 0 0 3px #f871711f}.edu-app-login__field-error{margin:0;color:#dc2626;font-size:.8125rem;font-weight:500}.edu-app-login__form-error{margin:0;border-radius:10px;padding:.65rem .75rem;color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;font-size:.875rem;line-height:1.4}.edu-app-login__form .edu-app-login__terms{display:flex;align-items:center;gap:.55rem;margin-top:.15rem;color:#64748b;font-size:.875rem;font-weight:400;line-height:1.5}.edu-app-login__form .edu-app-login__terms input[type=checkbox]{width:1.1rem;height:1.1rem;min-width:1.1rem;margin:0;padding:0;flex-shrink:0;accent-color:var(--school-primary);cursor:pointer}.edu-app-login__terms button{border:0;padding:0;background:transparent;color:var(--school-primary);font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.edu-app-login__submit{min-height:3.15rem;margin-top:.25rem;border:none;border-radius:12px;background:var(--school-primary);color:#fff;font-size:1.0625rem;font-weight:700;font-family:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;transition:filter .15s ease,opacity .15s ease}.edu-app-login__submit:hover:not(:disabled){filter:brightness(1.05)}.edu-app-login__submit:disabled{opacity:.75;cursor:wait}@keyframes eduAppLoginDot{0%,60%,to{transform:translateY(0);opacity:.55}30%{transform:translateY(-7px);opacity:1}}.edu-app-login__loading-dots{min-height:1rem;display:inline-flex;align-items:center;gap:.4rem}.edu-app-login__loading-dots i{width:.52rem;height:.52rem;border-radius:50%;background:currentColor;animation:eduAppLoginDot 1s ease-in-out infinite}.edu-app-login__loading-dots i:nth-child(2){animation-delay:.14s}.edu-app-login__loading-dots i:nth-child(3){animation-delay:.28s}@media(prefers-reduced-motion:reduce){.edu-app-login__loading-dots i{animation:none}}.edu-app-login__help{margin:1.35rem 0 0;text-align:center;color:#94a3b8;font-size:.875rem;line-height:1.5}.edu-app-login__disclaimer{margin:0 auto;max-width:420px;text-align:center;color:#94a3b8;font-size:.8125rem;line-height:1.55}@media(max-width:960px){.edu-app-login{grid-template-columns:1fr}.edu-app-login__news{display:none}.edu-app-login__panel{border-left:0}}@keyframes eduMobileMascotFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}@keyframes eduMobileLoginDot{0%,60%,to{transform:translateY(0);opacity:.55}30%{transform:translateY(-7px);opacity:1}}.edu-mobile-login{--mobile-login-ink: #12304a;min-height:100dvh;width:100%;display:flex;justify-content:center;overflow-x:hidden;background:radial-gradient(circle at 12% 12%,rgba(255,255,255,.5),transparent 28%),color-mix(in srgb,var(--school-primary) 18%,#dff7f4);color:var(--mobile-login-ink);font-family:Inter,Noto Sans TC,Helvetica Neue,Helvetica,Arial,sans-serif}.edu-mobile-login__screen{position:relative;width:100%;max-width:none;min-height:100dvh;display:flex;flex-direction:column;overflow:hidden;container-type:inline-size;container-name:mobile-login;background:color-mix(in srgb,var(--school-primary) 88%,#0f8f91)}.edu-mobile-login__hero{position:relative;flex:0 0 auto;min-height:clamp(12.5rem,42cqi,17rem);padding:max(.85rem,env(safe-area-inset-top)) max(1.1rem,env(safe-area-inset-right)) clamp(1.25rem,6cqi,2.25rem) max(1.1rem,env(safe-area-inset-left));overflow:hidden;color:#fff;background:radial-gradient(circle at 4% 8%,rgba(255,255,255,.2) 0 3.8rem,transparent 3.9rem),radial-gradient(circle at 94% 38%,rgba(255,255,255,.13) 0 5.5rem,transparent 5.6rem),linear-gradient(145deg,color-mix(in srgb,var(--school-primary) 94%,#075985),var(--school-primary))}.edu-mobile-login__brand-row{position:relative;z-index:3;display:flex;align-items:center}.edu-mobile-login__brand{display:flex;align-items:center;gap:.55rem;min-width:0;max-width:100%;font-size:clamp(.75rem,3.4cqi,.875rem);font-weight:700}.edu-mobile-login__logo{width:clamp(1.85rem,8cqi,2.25rem);height:clamp(1.85rem,8cqi,2.25rem);padding:.25rem;-o-object-fit:contain;object-fit:contain;border-radius:.75rem;background:#ffffffeb}.edu-mobile-login__welcome{position:relative;z-index:2;width:min(58%,14rem);margin-top:clamp(1rem,7cqi,2rem)}.edu-mobile-login__eyebrow{margin:0 0 .25rem;font-size:clamp(.6875rem,3cqi,.75rem);font-weight:600;opacity:.88}.edu-mobile-login__welcome h1{margin:0;font-size:clamp(1.85rem,11cqi,2.75rem);line-height:1;font-weight:800;letter-spacing:-.055em}.edu-mobile-login__welcome>p:last-child{margin:.5rem 0 0;font-size:clamp(.8125rem,3.6cqi,.9375rem);line-height:1.45;font-weight:500;opacity:.92}.edu-mobile-login__mascot{position:absolute;right:clamp(.15rem,2cqi,1rem);bottom:clamp(-.15rem,1cqi,.35rem);z-index:2;width:clamp(7.5rem,34cqi,10.5rem);height:auto;pointer-events:none;transform-origin:right bottom;animation:eduMobileMascotFloat 4.5s ease-in-out infinite;filter:drop-shadow(0 .85rem 1.1rem rgba(15,23,42,.22))}.edu-mobile-login__mascot-img{display:block;width:100%;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.edu-mobile-login__sheet{position:relative;z-index:3;flex:1;width:100%;margin-top:-1.35rem;padding:clamp(1.35rem,5cqi,1.85rem) max(1.15rem,env(safe-area-inset-right)) max(1.25rem,env(safe-area-inset-bottom)) max(1.15rem,env(safe-area-inset-left));border-radius:2rem 2rem 0 0;background:#f8fbfc;box-shadow:0 -.75rem 2rem #0f172a14}.edu-mobile-login__form,.edu-mobile-login__sheet-top,.edu-mobile-login__news-panel,.edu-mobile-login__legal{width:100%;max-width:28rem;margin-left:auto;margin-right:auto}.edu-mobile-login__sheet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:1rem}.edu-mobile-login__sheet-actions{display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0}.edu-mobile-login__heading{margin:0;min-width:0}.edu-mobile-login__notify-bell{position:relative;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.65rem;height:2.65rem;border:1px solid #dbe5ea;border-radius:999px;background:#fff;color:var(--school-primary);box-shadow:0 2px 8px #0f172a0f}.edu-mobile-login__notify-bell.is-active{background:color-mix(in srgb,var(--school-primary) 10%,white);border-color:color-mix(in srgb,var(--school-primary) 35%,#e2e8f0);box-shadow:0 0 0 3px color-mix(in srgb,var(--school-primary) 14%,transparent)}.edu-mobile-login__notify-dot{position:absolute;top:.5rem;right:.55rem;width:.48rem;height:.48rem;border-radius:999px;background:#ef4444;box-shadow:0 0 0 2px #fff}.edu-mobile-login__news-panel{margin:0 0 1rem;padding:.85rem .9rem .75rem;border:1px solid #dbe5ea;border-radius:1rem;background:#f8fafc;animation:eduLoginNotifyIn .2s ease-out}.edu-mobile-login__news-close{margin-top:.65rem;width:100%;min-height:2.25rem;border:0;border-radius:999px;background:color-mix(in srgb,var(--school-primary) 10%,white);color:var(--school-primary);font:inherit;font-size:.8125rem;font-weight:700}@keyframes eduLoginNotifyIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.edu-mobile-login__heading p{margin:0;font-size:1.65rem;line-height:1.2;font-weight:800;letter-spacing:-.03em;color:var(--mobile-login-ink)}.edu-mobile-login__form{display:grid;gap:1rem}.edu-mobile-login__field{display:grid;gap:.42rem}.edu-mobile-login__field label{font-size:.875rem;font-weight:700;color:#334155}.edu-mobile-login__input-wrap{position:relative}.edu-mobile-login__input-wrap>svg{position:absolute;z-index:1;top:50%;left:1rem;color:#94a3b8;transform:translateY(-50%);pointer-events:none}.edu-mobile-login__input{width:100%;min-height:3.35rem;padding:0 1rem 0 3rem;border:1px solid #dce6eb;border-radius:999px;outline:none;background:#fff;color:#0f172a;font:inherit;font-size:1rem;box-shadow:0 .3rem 1rem #0f172a0a;transition:border-color .15s ease,box-shadow .15s ease}.edu-mobile-login__input::-moz-placeholder{color:#a8b4c1}.edu-mobile-login__input::placeholder{color:#a8b4c1}.edu-mobile-login__input:focus{border-color:var(--school-primary);box-shadow:0 0 0 .22rem color-mix(in srgb,var(--school-primary) 16%,transparent)}.edu-mobile-login__input--error{border-color:#ef4444}.edu-mobile-login__input--password{padding-right:3.25rem}.edu-mobile-login__password-toggle{position:absolute;top:50%;right:.55rem;width:2.5rem;height:2.5rem;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:50%;background:transparent;color:#7b8b9c;transform:translateY(-50%)}.edu-mobile-login__error{margin:0 0 0 .75rem;font-size:.75rem;font-weight:600;color:#dc2626}.edu-mobile-login__form-meta{min-height:1.5rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.edu-mobile-login__form-meta p{margin:0;flex:1;font-size:.75rem;line-height:1.45;font-weight:600;color:#dc2626}.edu-mobile-login__form-meta button,.edu-mobile-login__legal button{border:0;padding:0;background:transparent;color:var(--school-primary);font:inherit;font-weight:700}.edu-mobile-login__form-meta button{flex-shrink:0;font-size:.8125rem}.edu-mobile-login__submit{width:100%;min-height:3.35rem;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;border:0;border-radius:999px;background:var(--school-primary);color:#fff;font:inherit;font-size:1rem;font-weight:800;box-shadow:0 .75rem 1.5rem color-mix(in srgb,var(--school-primary) 25%,transparent);transition:transform .15s ease,filter .15s ease}.edu-mobile-login__submit:active:not(:disabled){transform:scale(.985)}.edu-mobile-login__submit:disabled{cursor:wait;filter:saturate(.8)}.edu-mobile-login__loading-dots{min-height:1rem;display:inline-flex;align-items:center;gap:.4rem}.edu-mobile-login__loading-dots i{width:.52rem;height:.52rem;border-radius:50%;background:currentColor;animation:eduMobileLoginDot 1s ease-in-out infinite}.edu-mobile-login__loading-dots i:nth-child(2){animation-delay:.14s}.edu-mobile-login__loading-dots i:nth-child(3){animation-delay:.28s}.edu-mobile-login__legal{margin:1.25rem auto 0;max-width:22rem;text-align:center;font-size:.75rem;line-height:1.6;color:#7b8b9c}.edu-mobile-login__legal button{text-decoration:underline;text-underline-offset:.16rem}@media(max-width:359px){.edu-mobile-login__welcome{width:60%}.edu-mobile-login__sheet{padding-right:1rem;padding-left:1rem}}@media(min-width:600px)and (max-width:959px){.edu-mobile-login__hero{min-height:clamp(11rem,28cqi,13.5rem);padding-bottom:1.35rem}.edu-mobile-login__welcome{margin-top:.85rem;width:min(42%,14rem)}.edu-mobile-login__welcome h1{font-size:clamp(1.7rem,7cqi,2.25rem)}.edu-mobile-login__welcome>p:last-child{font-size:.875rem;max-width:22ch}.edu-mobile-login__mascot{width:clamp(6.75rem,22cqi,8.5rem);right:clamp(.75rem,3vw,2rem);bottom:.15rem;animation:none}.edu-mobile-login__sheet{margin-top:-1.1rem;padding-top:1.35rem}}@media(max-height:620px)and (orientation:landscape){.edu-mobile-login__screen{display:grid;grid-template-columns:minmax(13rem,40%) 1fr}.edu-mobile-login__hero{min-height:100dvh;padding-top:max(1rem,env(safe-area-inset-top))}.edu-mobile-login__welcome{width:100%;margin-top:2rem}.edu-mobile-login__mascot{right:50%;bottom:.75rem;transform:translate(50%) scale(.76);transform-origin:center bottom;animation:none}.edu-mobile-login__sheet{margin:0;min-height:100dvh;overflow-y:auto;border-radius:2rem 0 0 2rem}}@media(prefers-reduced-motion:reduce){.edu-mobile-login__mascot,.edu-mobile-login__loading-dots i{animation:none}}.edu-glass-sidebar-layout{display:flex;min-height:100vh;width:100%}.edu-glass-sidebar{position:fixed;left:0;top:0;height:100vh;z-index:50;display:none}@media(min-width:768px){.edu-glass-sidebar{display:flex;flex-direction:column}}.edu-glass-sidebar__panel{margin:var(--space-2);flex:1;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:color-mix(in srgb,var(--color-surface) 72%,transparent);border:1px solid color-mix(in srgb,var(--color-surface) 55%,var(--color-border));border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);display:flex;flex-direction:column;overflow:hidden}.edu-glass-sidebar__brand{display:flex;align-items:center;min-height:60px;padding:var(--space-4) var(--space-3) var(--space-3);gap:var(--space-2)}.edu-glass-sidebar__brand.is-expanded{padding-left:var(--space-3)}.edu-glass-sidebar__brand-icon{width:40px;height:40px;min-width:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-sm)}.edu-glass-sidebar__brand-icon--principal{color:#4f46e5}.edu-glass-sidebar__brand-icon--vp{color:#7c3aed}.edu-glass-sidebar__brand-icon--office{color:#0891b2}.edu-glass-sidebar__brand-title{margin:0;font-size:.9375rem;font-weight:800;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-glass-sidebar__brand-sub{margin:0;font-size:.6875rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-glass-sidebar__nav{flex:1;display:flex;flex-direction:column;gap:2px;padding:0 var(--space-2);overflow-y:auto}.edu-glass-sidebar__link{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:.8125rem;font-weight:700;border:none;background:transparent;cursor:pointer;width:100%;text-align:left}.edu-glass-sidebar__link:hover{background:color-mix(in srgb,var(--color-primary-soft) 65%,transparent)}.edu-glass-sidebar__link.is-active{background:var(--persona-color, var(--color-primary));color:#fff}.edu-glass-sidebar__link.is-active .edu-glass-sidebar__link-icon{color:inherit}.edu-glass-sidebar__link-icon{flex-shrink:0;color:var(--color-text-muted)}.edu-glass-sidebar__label{white-space:nowrap;overflow:hidden}.edu-glass-sidebar__footer{padding:var(--space-3) var(--space-2) var(--space-4);border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:2px}.edu-glass-sidebar__footer-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:none;background:transparent;color:var(--color-text-muted);font-size:.8125rem;font-weight:600;cursor:pointer;text-decoration:none;width:100%}.edu-glass-sidebar__footer-btn--logout{color:var(--color-danger)}.edu-shell__desktop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.edu-shell__desktop-role{margin:0;font-size:.75rem;color:var(--color-text-muted);font-weight:700}.edu-shell__desktop-user{margin:0;font-size:1.125rem;font-weight:900}.edu-shell__page--desktop{min-height:0}.edu-bottom-nav__icon-wrap{display:inline-flex;align-items:center;justify-content:center;position:relative}.edu-bottom-nav__label{font-size:.65rem;font-weight:700}.edu-bottom-nav__pill{position:absolute;bottom:-2px;width:18px;height:3px;border-radius:999px;background:var(--color-primary)}.edu-bottom-nav__item--more{border:none;background:transparent;cursor:pointer}.edu-data-table{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);overflow:auto;box-shadow:var(--shadow-sm)}.edu-data-table table{width:100%;border-collapse:collapse;font-size:.875rem}.edu-data-table th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--color-surface-muted);color:var(--color-text-muted);font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--color-border)}.edu-data-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text)}.edu-data-table tr:last-child td{border-bottom:none}.edu-data-table table.is-dense th,.edu-data-table table.is-dense td{padding:var(--space-2) var(--space-3)}.edu-data-table .align-center{text-align:center}.edu-data-table .align-right{text-align:right}.edu-data-table--empty{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.edu-form-field{margin-bottom:var(--space-4)}.edu-form-field label{display:block;font-size:.8125rem;font-weight:700;margin-bottom:var(--space-2);color:var(--color-text)}.edu-form-field__required{color:var(--color-danger)}.edu-form-field__control{width:100%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);font-size:.875rem;font-family:inherit}.edu-form-field__control:focus{outline:2px solid color-mix(in srgb,var(--color-primary) 35%,transparent);border-color:var(--color-primary)}.edu-form-field__control--textarea{min-height:96px;resize:vertical}.edu-form-field__hint{margin:var(--space-1) 0 0;font-size:.75rem;color:var(--color-text-muted)}.edu-form-field__error{margin:var(--space-1) 0 0;font-size:.75rem;color:var(--color-danger);font-weight:600}.edu-form-field.has-error .edu-form-field__control{border-color:var(--color-danger)}.edu-animated-sheet{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-end;justify-content:center}.edu-animated-sheet__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#0f172a73;cursor:pointer}.edu-animated-sheet__panel{position:relative;z-index:1;background:var(--color-surface);box-shadow:var(--shadow-lg);max-height:90dvh;display:flex;flex-direction:column}.edu-animated-sheet__panel--bottom{width:100%;max-width:480px;border-radius:var(--radius-lg) var(--radius-lg) 0 0}.edu-animated-sheet__panel--right{position:fixed;right:0;top:0;height:100%;width:min(360px,92vw);border-radius:var(--radius-lg) 0 0 var(--radius-lg);align-self:stretch}.edu-animated-sheet__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.edu-animated-sheet__header h2{margin:0;font-size:1rem;font-weight:800}.edu-animated-sheet__close{border:none;background:var(--color-surface-muted);width:32px;height:32px;border-radius:var(--radius-button);font-size:1.25rem;line-height:1;cursor:pointer}.edu-animated-sheet__body{padding:var(--space-4);overflow-y:auto}.edu-nav-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);color:var(--color-text-muted);transition:background var(--motion-duration-fast),color var(--motion-duration-fast)}.edu-nav-icon.is-active{background:var(--color-primary-soft);color:var(--color-primary)}.edu-nav-icon.is-locked{opacity:.55}.edu-lesson-card{position:relative;border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden;background:var(--color-surface)}.edu-lesson-card.is-next{box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 45%,transparent)}.edu-lesson-card.palette-blue{border-color:#bfdbfe;background:#eff6ff}.edu-lesson-card.palette-rose{border-color:#fecdd3;background:#fff1f2}.edu-lesson-card.palette-amber{border-color:#fde68a;background:#fffbeb}.edu-lesson-card.palette-orange{border-color:#fed7aa;background:#fff7ed}.edu-lesson-card.palette-indigo{border-color:#c7d2fe;background:#eef2ff}.edu-lesson-card.palette-emerald{border-color:#a7f3d0;background:#ecfdf5}.edu-lesson-card__next{position:absolute;top:0;right:0;padding:2px var(--space-2);border-bottom-left-radius:var(--radius-md);background:var(--color-primary);color:#fff;font-size:.625rem;font-weight:800}.edu-lesson-card__row{display:flex;align-items:stretch}.edu-lesson-card__period{width:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3) 0;color:#fff}.edu-lesson-card__period.accent-blue{background:#2563eb}.edu-lesson-card__period.accent-rose{background:#f43f5e}.edu-lesson-card__period.accent-amber{background:#f59e0b}.edu-lesson-card__period.accent-orange{background:#f97316}.edu-lesson-card__period.accent-indigo{background:#4f46e5}.edu-lesson-card__period.accent-emerald{background:#059669}.edu-lesson-card__period-num{font-size:1.375rem;font-weight:900;line-height:1}.edu-lesson-card__period-label{font-size:.625rem;font-weight:700;opacity:.85}.edu-lesson-card__body{flex:1;min-width:0;padding:var(--space-3)}.edu-lesson-card__subject{margin:0;font-size:1.125rem;font-weight:900;color:var(--color-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-lesson-card__sub-badge{display:inline-flex;align-items:center;gap:4px;margin-top:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-button);background:#7c3aed;color:#fff;font-size:.625rem;font-weight:800}.edu-lesson-card__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-2)}.edu-lesson-card__class{display:inline-flex;align-items:center;gap:4px;padding:2px var(--space-2);border-radius:var(--radius-button);font-size:.6875rem;font-weight:800}.edu-lesson-card__class.badge-blue{background:#dbeafe;color:#1d4ed8}.edu-lesson-card__class.badge-rose{background:#ffe4e6;color:#be123c}.edu-lesson-card__class.badge-amber{background:#fef3c7;color:#b45309}.edu-lesson-card__class.badge-orange{background:#ffedd5;color:#c2410c}.edu-lesson-card__class.badge-indigo{background:#e0e7ff;color:#4338ca}.edu-lesson-card__class.badge-emerald{background:#d1fae5;color:#047857}.edu-lesson-card__room,.edu-lesson-card__time{display:inline-flex;align-items:center;gap:4px;font-size:.6875rem;font-weight:600;color:var(--color-text-muted)}.edu-lesson-card__time{margin-top:var(--space-2);font-size:.75rem}.edu-upgrade{display:flex;flex-direction:column;gap:var(--space-4)}.edu-upgrade__current-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4)}.edu-upgrade__eyebrow{margin:0 0 var(--space-1);font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.edu-upgrade__current-title{margin:0 0 var(--space-1);font-size:1.5rem;font-weight:800}.edu-upgrade__badges{display:flex;flex-wrap:wrap;gap:var(--space-2)}.edu-upgrade__badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:999px;font-size:.6875rem;font-weight:700;background:var(--color-surface-muted, #f1f5f9);color:var(--color-text-muted)}.edu-upgrade__badge--active{background:#dcfce7;color:#166534}.edu-upgrade__meta,.edu-upgrade__notice{margin:var(--space-3) 0 0;font-size:.8125rem;color:var(--color-text-muted)}.edu-upgrade__notice{padding:var(--space-3);border-radius:var(--radius-md);background:#fffbeb;border:1px solid #fde68a;color:#92400e}.edu-upgrade__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3)}.edu-upgrade__section-title{margin:0;font-size:1.125rem;font-weight:800}.edu-upgrade__cycle-toggle{display:inline-flex;padding:3px;border-radius:999px;background:var(--color-surface-muted, #f1f5f9);border:1px solid var(--color-border)}.edu-upgrade__cycle-btn{border:0;background:transparent;padding:.375rem .875rem;border-radius:999px;font-size:.8125rem;font-weight:700;color:var(--color-text-muted);cursor:pointer}.edu-upgrade__cycle-btn.is-active{background:var(--color-surface, #fff);color:var(--color-text);box-shadow:var(--shadow-sm)}.edu-upgrade__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4)}.edu-upgrade__plan{position:relative;display:flex;flex-direction:column;min-height:100%}.edu-upgrade__plan.is-current{border-color:#86efac;box-shadow:0 0 0 1px #86efac}.edu-upgrade__plan.is-recommended{border-color:#93c5fd}.edu-upgrade__ribbon{position:absolute;top:var(--space-3);right:var(--space-3);padding:.2rem .5rem;border-radius:999px;background:#2563eb;color:#fff;font-size:.625rem;font-weight:800}.edu-upgrade__plan-name{margin:0 0 var(--space-1);font-size:1.125rem;font-weight:800;text-transform:uppercase}.edu-upgrade__plan-tagline{margin:0 0 var(--space-2);font-size:.8125rem;color:var(--color-text-muted)}.edu-upgrade__plan-price{margin:0 0 var(--space-1);font-size:1.375rem;font-weight:800}.edu-upgrade__plan-limits{margin:0 0 var(--space-3);font-size:.75rem;color:var(--color-text-muted)}.edu-upgrade__feature-list{margin:0 0 var(--space-4);padding-left:1.1rem;font-size:.8125rem;flex:1}.edu-upgrade__cta{width:100%;margin-top:auto}.edu-upgrade__message{background:#eff6ff;border-color:#bfdbfe;font-size:.875rem}.edu-upgrade__footer .edu-card__title{margin:0 0 var(--space-2);font-size:.9375rem;font-weight:800}.edu-timetable-category-tabs{display:flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;border-radius:.75rem;background:var(--color-surface-muted, #f1f5f9)}.edu-timetable-category-tabs__tab{display:inline-flex;align-items:center;gap:.25rem;border:0;padding:.375rem .75rem;border-radius:.5rem;font-size:.75rem;font-weight:700;background:transparent;color:var(--color-text-muted);cursor:pointer}.edu-timetable-category-tabs__tab.is-active{background:var(--color-surface, #fff);color:#4c1d95;box-shadow:var(--shadow-sm)}.edu-timetable-category-tabs__tab.is-locked{opacity:.75}.edu-timetable-import-upgrade__eyebrow{margin:0 0 .25rem;font-size:.6875rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#b45309}.edu-timetable-import-upgrade__title{margin:0 0 .5rem;font-size:1rem;font-weight:800;color:#78350f}.edu-timetable-import-upgrade__body,.edu-timetable-import-upgrade__hint{margin:0 0 .5rem;font-size:.875rem;line-height:1.5;color:#92400e}.edu-timetable-import-upgrade__cta{margin-top:.5rem}.edu-lsp-flow__row{display:flex;flex-wrap:wrap;align-items:stretch;gap:.25rem}.edu-lsp-flow__wrap{display:flex;align-items:center;min-width:0}.edu-lsp-flow__connector{width:1.25rem;height:2px;margin:0 .15rem;background:linear-gradient(90deg,#cbd5e1,#94a3b8);flex-shrink:0}.edu-lsp-flow__socket{min-width:5.5rem;padding:.5rem .65rem;border-radius:.75rem;border:1px solid #e2e8f0;background:#f8fafc;font-size:.75rem}.edu-lsp-flow__socket.is-on{border-color:#86efac;background:#f0fdf4}.edu-lsp-flow__socket.is-off{opacity:.55;border-style:dashed}.edu-lsp-flow__socket-top{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.edu-lsp-flow__label{font-weight:700;color:#0f172a}.edu-lsp-flow__sub{display:block;margin-top:.15rem;font-size:.65rem;color:#64748b}.edu-lsp-flow__badge{font-size:.6rem;font-weight:800;padding:.1rem .35rem;border-radius:999px;background:#dcfce7;color:#166534}.edu-lsp-flow__badge.is-off{background:#f1f5f9;color:#64748b}.edu-lsp-flow__toggle{width:2rem;height:1.1rem;border-radius:999px;border:none;background:#cbd5e1;cursor:pointer;position:relative}.edu-lsp-flow__toggle.is-on{background:#22c55e}.edu-lsp-flow__toggle:after{content:"";position:absolute;top:2px;left:2px;width:.85rem;height:.85rem;border-radius:50%;background:#fff;transition:transform .15s ease}.edu-lsp-flow__toggle.is-on:after{transform:translate(.9rem)}.edu-lsp-flow__visibility{margin-top:1rem}.edu-lsp-flow__visibility-title{margin:0 0 .5rem;font-size:.8125rem;font-weight:700;color:#334155}.edu-lsp-flow__table-wrap{overflow-x:auto}.edu-lsp-flow__table{width:100%;border-collapse:collapse;font-size:.75rem}.edu-lsp-flow__table th,.edu-lsp-flow__table td{border:1px solid #e2e8f0;padding:.4rem .5rem;text-align:left;vertical-align:top}.edu-lsp-flow__table thead th{background:#f1f5f9;font-weight:700}.edu-lsp-flow--compact .edu-lsp-flow__socket{min-width:4.5rem;padding:.35rem .5rem}.edu-lsp-flow--compact .edu-lsp-flow__visibility{display:none}.edu-lsp-changelog__title{margin:0 0 .75rem;font-size:.9375rem;font-weight:700;color:#0f172a}.edu-lsp-changelog--empty{margin:0;font-size:.8125rem;color:#64748b}.edu-lsp-changelog__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.edu-lsp-changelog__item{border:1px solid #e2e8f0;border-radius:.75rem;padding:.65rem .75rem;background:#fafafa}.edu-lsp-changelog__item.is-latest{border-color:#a78bfa;background:#f5f3ff}.edu-lsp-changelog__meta{display:flex;flex-wrap:wrap;gap:.35rem .75rem;margin-bottom:.35rem;font-size:.75rem}.edu-lsp-changelog__actor{font-weight:700;color:#4c1d95}.edu-lsp-changelog__when{color:#64748b}.edu-lsp-changelog__changes{list-style:none;margin:0;padding:0;font-size:.8125rem}.edu-lsp-changelog__changes li{margin-bottom:.25rem}.edu-lsp-changelog__diff{display:block;color:#475569;margin-top:.1rem}.edu-approval-flow__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.edu-approval-flow__title{margin:0;font-size:1rem;font-weight:700;color:#0f172a}.edu-approval-flow__subtitle{margin:.25rem 0 0;font-size:.8125rem;color:#64748b}.edu-approval-flow__info{flex-shrink:0;width:1.75rem;height:1.75rem;border-radius:999px;border:1px solid #cbd5e1;background:#f8fafc;color:#475569;font-size:.8125rem;font-weight:800;font-style:italic;cursor:pointer}.edu-approval-flow__info:hover{border-color:#94a3b8;background:#f1f5f9}.edu-approval-flow__socket.has-roles{min-width:11rem}.edu-approval-flow__roles{margin-top:.45rem;display:flex;flex-direction:column;gap:.35rem}.edu-approval-flow__role-row{display:flex;align-items:center;justify-content:space-between;gap:.35rem;font-size:.65rem}.edu-approval-flow__role-label{color:#475569;flex:1;min-width:0}.edu-approval-flow__role-toggle{display:inline-flex;border:1px solid #e2e8f0;border-radius:999px;overflow:hidden}.edu-approval-flow__role-toggle button{border:none;background:#fff;padding:.1rem .35rem;font-size:.6rem;cursor:pointer;color:#64748b}.edu-approval-flow__role-toggle button.is-active{background:#dcfce7;color:#166534;font-weight:700}.edu-approval-flow__role-toggle button:disabled{opacity:.5;cursor:not-allowed}.edu-approval-flow__hint{margin:.75rem 0 0;font-size:.75rem;color:#64748b}.edu-approval-flow__hint--warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:.5rem;padding:.5rem .65rem}.edu-approval-flow__check-in{margin-top:.85rem}.edu-lsp-visibility-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#0f172a73;display:flex;align-items:center;justify-content:center;padding:1rem}.edu-lsp-visibility-modal{width:min(920px,100%);max-height:min(85vh,720px);overflow:auto;background:#fff;border-radius:.875rem;box-shadow:0 20px 45px #0f172a2e;padding:1rem 1.1rem 1.1rem}.edu-lsp-visibility-modal__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.edu-lsp-visibility-modal__header h2{margin:0;font-size:.9375rem;font-weight:700;color:#0f172a}.edu-lsp-visibility-modal__close{border:none;background:transparent;font-size:1.35rem;line-height:1;color:#64748b;cursor:pointer;padding:.15rem .35rem}.edu-lsp-sections{display:flex;flex-direction:column;gap:1.25rem}.edu-lsp-sections__block{border:1px solid #e2e8f0;border-radius:.875rem;padding:1rem;background:#fff}.edu-lsp-sections__head h3{margin:0;font-size:.9375rem;font-weight:700;color:#0f172a}.edu-lsp-sections__head p{margin:.25rem 0 0;font-size:.8125rem;color:#64748b}.edu-lsp-sections__toggle-grid{margin-top:.75rem;display:flex;flex-direction:column;gap:.5rem}.edu-lsp-sections__toggle-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.55rem .65rem;border:1px solid #e2e8f0;border-radius:.65rem;font-size:.8125rem}.edu-lsp-sections__toggle-row--compact{padding:.35rem 0;border:none}.edu-lsp-sections__grid,.edu-lsp-sections__slot-grid{margin-top:.75rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.75rem}.edu-lsp-sections__field{display:flex;flex-direction:column;gap:.35rem;font-size:.8125rem}.edu-lsp-sections__field span{color:#475569;font-weight:600}.edu-lsp-sections__field input,.edu-lsp-sections__field select{border:1px solid #e2e8f0;border-radius:.5rem;padding:.45rem .55rem;font-size:.8125rem}.edu-lsp-sections__slots{margin-top:.75rem;display:flex;flex-direction:column;gap:.75rem}.edu-lsp-sections__slot{border:1px solid #f1f5f9;border-radius:.65rem;padding:.65rem;background:#fafafa}.edu-lsp-sections__slot-title{margin:0 0 .5rem;font-size:.875rem;font-weight:700}*{box-sizing:border-box}body{margin:0;font-family:Noto Sans TC,Inter,system-ui,sans-serif;background:var(--color-surface-muted);color:var(--color-text)}.edu-sticker{width:40px;height:40px;border-radius:var(--radius-sticker);background:var(--color-primary);color:#fff;font-weight:900;font-size:.75rem;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.edu-sticker--sm{width:32px;height:32px}.edu-sticker--dark{background:#1e293b}.edu-platform-badge{font-size:.65rem;font-weight:700;padding:.2rem .5rem;border-radius:var(--radius-sticker);background:#e2e8f0;color:#475569;white-space:nowrap}.safe-area-top{padding-top:calc(var(--app-edge-inset-top, 40px) + env(safe-area-inset-top,0px))}.safe-area-bottom{padding-bottom:env(safe-area-inset-bottom,0px)}.safe-area-x{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}.edu-pwa-banner{display:flex;align-items:center;gap:.5rem;margin:.5rem .75rem 0;padding:.625rem .75rem;border-radius:14px;background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid rgba(226,232,240,.95);box-shadow:0 4px 16px #0f172a0f}.edu-pwa-banner__icon{flex-shrink:0;color:var(--color-primary)}.edu-pwa-banner__text{flex:1;margin:0;font-size:.75rem;font-weight:600;color:#334155;line-height:1.3}.edu-pwa-banner__install{flex-shrink:0;border:none;border-radius:10px;padding:.4rem .75rem;font-size:.75rem;font-weight:700;background:var(--color-primary);color:#fff;cursor:pointer}.edu-pwa-banner__dismiss{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:9999px;background:#f1f5f9;color:#64748b;cursor:pointer}.edu-shell--teacher{min-height:100dvh;max-width:480px;margin:0 auto;display:flex;flex-direction:column;background:#f5f7fb}.edu-shell__header--teacher{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;padding-top:max(.75rem,env(safe-area-inset-top));background:#fff;border-bottom:1px solid #e2e8f0}.edu-shell__header-text{flex:1;display:flex;flex-direction:column;min-width:0}.edu-shell__school{font-size:.7rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.edu-shell__user{font-size:.875rem;font-weight:700}.edu-shell__main--teacher{flex:1;padding:0;padding-bottom:calc(4.5rem + env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.edu-shell__page{min-height:100%}.edu-shell__page--desktop{padding-top:.5rem}.edu-bottom-nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:480px;display:flex;align-items:stretch;background:#fffffff0;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(226,232,240,.9);padding-bottom:env(safe-area-inset-bottom);z-index:50;box-shadow:0 -4px 24px #0f172a0f}.edu-bottom-nav__item{position:relative;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;min-height:44px;min-width:44px;padding:.45rem .2rem;border:none;background:transparent;text-decoration:none;color:var(--color-text-muted);font-size:.625rem;font-weight:700;cursor:pointer;-webkit-tap-highlight-color:transparent}.edu-bottom-nav__item.is-active{color:var(--color-primary)}.edu-bottom-nav__icon-wrap{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;width:44px;height:32px;border-radius:12px}.edu-bottom-nav__icon-wrap .edu-nav-icon{width:44px;height:32px;border-radius:12px}.edu-bottom-nav__icon-wrap .edu-nav-icon.is-active{background:transparent}.edu-bottom-nav__item.is-active .edu-bottom-nav__icon-wrap{color:var(--color-primary)}.edu-bottom-nav__pill{position:absolute;inset:.35rem .15rem auto;height:calc(100% - 1.1rem);border-radius:14px;background:#2563eb1a;pointer-events:none}.edu-bottom-nav__label{position:relative;z-index:1;line-height:1.1}.edu-bottom-nav__sticker{font-size:1.25rem;line-height:1}.edu-glass-sidebar-layout{min-height:100vh;width:100%;background:#f5f7fb}.edu-glass-sidebar{display:none;position:fixed;left:0;top:0;height:100vh;z-index:50;flex-direction:column}@media(min-width:768px){.edu-glass-sidebar{display:flex}}.edu-glass-sidebar__panel{margin:.5rem;flex:1;display:flex;flex-direction:column;overflow:hidden;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#ffffff9e;border:1px solid rgba(255,255,255,.45);border-radius:1rem;box-shadow:0 8px 32px #0f172a14}.edu-glass-sidebar__brand{display:flex;align-items:center;min-height:60px;padding:1rem .75rem .75rem;gap:0;justify-content:center;transition:gap .2s,padding .2s}.edu-glass-sidebar__brand.is-expanded{gap:.625rem;justify-content:flex-start;padding-left:.75rem;padding-right:.75rem}.edu-glass-sidebar__brand-icon{width:40px;height:40px;min-width:40px;border-radius:.75rem;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid rgba(226,232,240,.8);box-shadow:0 1px 3px #0f172a0f}.edu-glass-sidebar__brand-icon--principal{background:#6366f11f;border-color:#6366f140}.edu-glass-sidebar__brand-icon--vp{background:#7c3aed1f;border-color:#7c3aed40}.edu-glass-sidebar__brand-icon--office{background:#0891b21f;border-color:#0891b240}.edu-glass-sidebar__brand-logo{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.edu-glass-sidebar__brand-text{min-width:0;overflow:hidden}.edu-glass-sidebar__brand-title{margin:0;font-size:.9375rem;font-weight:800;line-height:1.2;color:#1e293b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-glass-sidebar__brand-sub{margin:0;font-size:.6875rem;font-weight:600;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-glass-sidebar__nav{flex:1;padding:.25rem .5rem;overflow-y:auto;overflow-x:hidden}.edu-glass-sidebar__link{display:flex;align-items:center;height:40px;margin-bottom:2px;border-radius:.75rem;color:#475569;text-decoration:none;transition:background .2s,color .2s,box-shadow .2s;justify-content:center;padding:0}.edu-glass-sidebar__link.is-expanded{gap:.75rem;padding:0 .75rem;justify-content:flex-start}.edu-glass-sidebar__link:hover{background:#f1f5f9d9;color:#0f172a}.edu-glass-sidebar__link.is-active{background:#2563eb1f;color:var(--color-primary);font-weight:700;box-shadow:0 1px 4px #2563eb1f}.edu-glass-sidebar__link-icon{min-width:20px;flex-shrink:0}.edu-glass-sidebar__label{font-size:.8125rem;font-weight:600;white-space:nowrap;overflow:hidden}.edu-glass-sidebar__footer{padding:.5rem;border-top:1px solid rgba(226,232,240,.65)}.edu-glass-sidebar__footer-btn{display:flex;align-items:center;width:100%;height:40px;border:none;background:transparent;border-radius:.75rem;color:#475569;text-decoration:none;cursor:pointer;justify-content:center;padding:0;transition:background .2s,transform .15s var(--motion-spring)}.edu-glass-sidebar__footer-btn.is-expanded{gap:.75rem;padding:0 .75rem;justify-content:flex-start}.edu-glass-sidebar__footer-btn:hover{background:#f1f5f9e6}.edu-glass-sidebar__footer-btn:active{transform:scale(.98)}.edu-glass-sidebar__footer-btn--logout{color:#e11d48}.edu-glass-sidebar__footer-btn--logout:hover{background:#fff1f2}.edu-glass-sidebar__footer-btn--muted{color:#64748b}.edu-glass-sidebar__main{flex:1;min-width:0}.edu-shell__desktop-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.edu-shell__desktop-role{margin:0;font-size:.75rem;font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em}.edu-shell__desktop-user{margin:.15rem 0 0;font-size:1.125rem;font-weight:800}.edu-ptr-indicator{display:flex;align-items:center;justify-content:center;height:0;overflow:hidden;color:var(--color-primary);font-size:.75rem;font-weight:700;transition:height .15s}.edu-ptr-indicator.is-visible{height:2.5rem}.edu-ptr-indicator.is-loading svg{animation:edu-ptr-spin .8s linear infinite}@keyframes edu-ptr-spin{to{transform:rotate(360deg)}}.edu-shell--desktop,.edu-shell--super{display:flex;min-height:100vh}.edu-shell--super{background:#fff;overflow-x:hidden}.edu-shell--super:has(.sa-school-detail){height:100vh;overflow:hidden}.edu-shell--super:has(.sa-school-detail) .edu-shell__content{overflow:hidden;min-height:0}.edu-sidebar{width:240px;background:#1e293b;color:#f8fafc;display:flex;flex-direction:column;padding:1.25rem 0;flex-shrink:0}.edu-sidebar--super{width:240px;background:#fff;color:#0f172a;border-right:1px solid #e2e8f0;transition:width .18s ease;overflow:hidden}.edu-shell--sidebar-collapsed .edu-sidebar--super{position:fixed;top:0;left:0;z-index:50;height:100vh;width:52px;flex:none}.edu-shell--sidebar-collapsed .edu-sidebar--super:hover{width:220px;box-shadow:2px 0 14px #0f172a12;background:#fff}.edu-shell--sidebar-collapsed .edu-shell__content{margin-left:52px;width:calc(100% - 52px)}.edu-sidebar__brand{display:flex;align-items:center;gap:.75rem;padding:0 1.25rem 1rem}.edu-sidebar--super .edu-sidebar__brand{padding:0 .7rem 1rem}.edu-sidebar__brand strong{display:block;font-size:1rem;line-height:1.2}.edu-sidebar__brand span{font-size:.7rem;opacity:.7}.edu-sidebar__brand-logo{width:2rem;height:2rem;-o-object-fit:contain;object-fit:contain;border-radius:6px;border:1px solid #e2e8f0;background:#fff;padding:3px;flex:0 0 auto}.edu-sidebar__brand-copy,.edu-sidebar__link-label,.edu-sidebar__school,.edu-sidebar__meta{transition:opacity .12s ease,width .12s ease}.edu-shell--sidebar-collapsed .edu-sidebar__brand-copy,.edu-shell--sidebar-collapsed .edu-sidebar__link-label,.edu-shell--sidebar-collapsed .edu-sidebar__school,.edu-shell--sidebar-collapsed .edu-sidebar__meta{width:0;opacity:0;overflow:hidden;white-space:nowrap;pointer-events:none}.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__brand-copy,.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__link-label,.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__school,.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__meta{width:auto;opacity:1;pointer-events:auto}.edu-sidebar__school{padding:0 1.25rem;margin:0 0 1rem;font-size:.75rem;opacity:.6}.edu-sidebar__nav{flex:1;display:flex;flex-direction:column;gap:.15rem;padding:0 .75rem}.edu-sidebar__link{display:flex;align-items:center;gap:.625rem;padding:.625rem .75rem;border-radius:8px;color:#cbd5e1;text-decoration:none;font-size:.875rem;font-weight:600;transition:background .15s}.edu-sidebar__link:hover{background:#ffffff14}.edu-sidebar__link.is-active{background:var(--persona-color, var(--color-primary));color:#fff}.edu-sidebar__link--muted{opacity:.65;font-size:.8rem}.edu-sidebar__sticker{font-size:1rem;width:1.5rem;text-align:center}.edu-sidebar__footer{padding:1rem 1.25rem 0;display:flex;flex-direction:column;gap:.5rem;border-top:1px solid rgba(255,255,255,.1);margin-top:.5rem}.edu-sidebar__meta{margin:0;display:grid;gap:.1rem}.edu-sidebar__meta span{font-size:.66rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}.edu-sidebar__meta strong{font-size:.78rem;font-weight:600;color:#334155}.edu-sidebar--super .edu-sidebar__brand strong{color:#0f172a}.edu-sidebar--super .edu-sidebar__brand span{display:none}.edu-sidebar--super .edu-sidebar__school{color:#64748b;opacity:1}.edu-sidebar--super .edu-sidebar__nav{gap:.3rem}.edu-sidebar__nav--grouped{gap:.65rem;overflow-x:hidden;overflow-y:auto;padding-bottom:.75rem}.edu-sidebar__group{display:flex;flex-direction:column;gap:.2rem}.edu-sidebar__group-divider{border:0;height:0;margin:.35rem .15rem .25rem;border-top:1px solid #e2e8f0;flex-shrink:0}.edu-shell--sidebar-collapsed .edu-sidebar__group-divider{margin:.3rem .1rem .2rem}.edu-sidebar--super .edu-sidebar__link{padding:.32rem .45rem;border-radius:5px;border:1px solid transparent;color:#475569;font-size:.8rem;white-space:nowrap;min-width:0;transition:color .15s,border-color .15s,background-color .15s}.edu-sidebar--super .edu-sidebar__link:hover{background:#f8fafc;border-color:#e2e8f0;color:#1e293b}.edu-sidebar--super .edu-sidebar__link.is-active{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a;font-weight:600}.edu-sidebar--super .edu-sidebar__sticker{width:1.35rem;height:1.35rem;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-radius:4px}.edu-sidebar--super .edu-sidebar__sticker svg.edu-sidebar__nav-icon{display:block;width:.85rem;height:.85rem}.edu-sidebar--super .edu-sidebar__sticker svg.edu-sidebar__nav-icon--fill{fill:currentColor;stroke:none}.edu-sidebar--super .edu-sidebar__sticker svg.edu-sidebar__nav-icon--stroke{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round}.edu-sidebar--super .edu-sidebar__sticker svg{display:block;width:.85rem;height:.85rem}.edu-super-topbar svg{display:block;width:1.125rem;height:1.125rem;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.edu-shell--sidebar-collapsed .edu-sidebar--super .edu-sidebar__nav{padding:0 .35rem}.edu-shell--sidebar-collapsed .edu-sidebar--super .edu-sidebar__link{justify-content:center;gap:0;padding:.32rem .25rem}.edu-shell--sidebar-collapsed .edu-sidebar--super .edu-sidebar__link.is-active{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__nav{padding:0 .55rem}.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__link{justify-content:flex-start;gap:.45rem;padding:.32rem .45rem}.edu-shell--sidebar-collapsed .edu-sidebar--super:hover .edu-sidebar__link.is-active{background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.edu-sidebar--super .edu-sidebar__footer{gap:.55rem;border-top:1px solid #e2e8f0;margin-top:.75rem}.edu-sidebar__collapse{display:flex;align-items:center;gap:.625rem;width:100%;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;padding:.55rem .7rem;font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;text-align:left}.edu-sidebar__collapse:hover{background:#f8fafc;color:#1d4ed8}.edu-shell--sidebar-collapsed .edu-sidebar__collapse svg{transform:rotate(180deg)}.edu-sidebar__user{font-size:.8rem;font-weight:600}.edu-shell__content{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0;background:#fff}.edu-super-topbar{min-height:3.25rem;display:flex;align-items:center;justify-content:space-between;gap:1.25rem;padding:.55rem 2rem;border-bottom:1px solid #e2e8f0;background:#fff}.edu-super-topbar__title{display:flex;align-items:center;gap:.85rem;min-width:0;flex:1}.edu-super-topbar__back{flex-shrink:0;font-size:.75rem;font-weight:600;color:#64748b;text-decoration:none;white-space:nowrap}.edu-super-topbar__back:hover{color:#1d4ed8}.edu-super-topbar__title-row{display:flex;align-items:center;gap:.65rem;min-width:0;flex:1}.edu-super-topbar__title-block{display:grid;gap:.05rem;min-width:0}.edu-super-topbar__title-block span:first-child{font-size:.66rem;color:#64748b;text-transform:uppercase;letter-spacing:.08em}.edu-super-topbar__title-block strong{font-size:.92rem;color:#0f172a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-super-topbar__subtitle{font-size:.72rem;color:#64748b;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.edu-super-topbar__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-left:.35rem}.edu-super-topbar__leading-logo{width:2rem;height:2rem;flex-shrink:0;-o-object-fit:contain;object-fit:contain;border-radius:6px}.edu-super-topbar__tools{display:flex;align-items:center;justify-content:flex-end;gap:.5rem;min-width:0}.edu-super-search{display:flex;align-items:center;gap:.45rem;min-width:17rem;height:2rem;padding:0 .55rem;border:1px solid #e2e8f0;border-radius:6px;color:#64748b;background:#fff}.edu-super-search input{width:100%;border:0;outline:0;background:transparent;color:#0f172a;font-size:.8rem}.edu-super-search kbd{flex:0 0 auto;border:1px solid #e2e8f0;border-radius:4px;padding:.05rem .28rem;color:#94a3b8;font-size:.66rem;font-family:inherit;font-weight:600}.edu-super-tool,.edu-super-user{height:2rem;display:inline-flex;align-items:center;gap:.4rem;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;padding:0 .6rem;font-size:.78rem;font-weight:600;text-decoration:none}.edu-super-tool:hover{border-color:#bfdbfe;color:#1d4ed8;background:#f8fbff}.edu-super-tool--button{cursor:pointer;font-family:inherit}.edu-super-user{width:2rem;justify-content:center;padding:0;color:#1d4ed8}.edu-super-user span{font-size:.68rem}.edu-shell__main--desktop{flex:1;padding:2.75rem 3.5rem;background:#fff;overflow-y:auto;min-height:0}.edu-shell--super .edu-shell__main--desktop:has(.sa-school-detail){display:flex;flex-direction:column;overflow:hidden;padding:10px}.edu-shell--super .edu-shell__main--desktop:has(.sa-school-detail)>.sa-school-detail{max-width:none;margin-inline:0}.edu-shell--super .edu-shell__main--desktop>*{width:100%;max-width:1180px;margin-inline:auto}@media(max-width:767px){.edu-glass-sidebar__main{margin-left:0!important}.edu-shell__main--desktop{padding:1.25rem}.edu-shell--super .edu-shell__main--desktop:has(.sa-school-detail){padding:10px}.edu-super-topbar{align-items:flex-start;flex-direction:column;padding:.75rem 1rem}.edu-super-topbar__tools{width:100%;justify-content:flex-start;flex-wrap:wrap}.edu-super-search{min-width:100%}}.edu-card{background:#fff;border-radius:var(--radius-card);border:1px solid #e2e8f0;padding:1.25rem;margin-bottom:1rem}.edu-card__title{margin:0 0 .25rem;font-size:1.125rem;font-weight:800}.edu-card__subtitle{margin:0 0 1rem;font-size:.875rem;color:var(--color-text-muted)}.edu-page-title{font-size:1.5rem;font-weight:900;margin:0 0 .25rem}.edu-page-subtitle{color:var(--color-text-muted);margin:0 0 1.5rem;font-size:.9rem}.edu-module-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem}.edu-module-tile{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1rem;background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius-card);text-decoration:none;color:inherit;transition:transform .2s var(--motion-spring),box-shadow .2s}.edu-module-tile:hover:not(.is-disabled){transform:translateY(-2px);box-shadow:0 4px 12px #2563eb1f}.edu-module-tile.is-disabled{opacity:.55;cursor:not-allowed}.edu-module-tile__sticker{font-size:1.5rem;padding:.35rem;border-radius:var(--radius-sticker);background:#eff6ff}.edu-module-tile strong{font-size:.875rem}.edu-module-tile p{margin:0;font-size:.7rem;color:var(--color-text-muted)}.edu-module-tile__lock{font-size:.65rem;color:var(--color-warning);font-weight:700}.edu-workflow-panel{max-width:520px}.edu-workflow-diagram{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem;margin-bottom:1.25rem;padding:1rem;background:#f8fafc;border-radius:12px}.edu-workflow-node{padding:.35rem .65rem;border-radius:var(--radius-sticker);background:#dbeafe;color:#1d4ed8;font-size:.75rem;font-weight:700}.edu-workflow-node--office{background:#cffafe;color:#0e7490}.edu-workflow-node--vp{background:#ede9fe;color:#6d28d9}.edu-workflow-node--principal{background:#dbeafe;color:#1e40af}.edu-workflow-arrow{color:#94a3b8;font-weight:700}.edu-toggle{display:flex;align-items:flex-start;gap:.625rem;margin-bottom:.75rem;font-size:.875rem;cursor:pointer}.edu-field{margin-top:1rem}.edu-field label{display:block;font-size:.8rem;font-weight:600;margin-bottom:.35rem}.edu-field select{width:100%;padding:.5rem;border-radius:8px;border:1px solid #e2e8f0}.edu-btn{border-radius:var(--radius-button);padding:.625rem 1.25rem;font-weight:700;border:none;cursor:pointer;font-size:.875rem}.edu-btn--primary{background:var(--color-primary);color:#fff}.edu-btn--outline{background:#fff;border:2px solid var(--color-primary);color:var(--color-primary)}.edu-btn--danger{background:var(--color-danger);color:#fff}.edu-segment{display:flex;background:#f1f5f9;border-radius:9999px;padding:.125rem}.edu-segment button{flex:1;border:none;background:transparent;padding:.5rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:700;color:var(--color-text-muted);cursor:pointer}.edu-segment button.is-active{background:#fff;color:var(--color-primary);box-shadow:0 1px 3px #0f172a14}.edu-badge{display:inline-block;padding:.125rem .5rem;border-radius:var(--radius-sticker);font-size:.6875rem;font-weight:800;background:#dbeafe;color:#1d4ed8}.edu-badge--submitted{background:#dbeafe;color:#1d4ed8}.edu-badge--office_reviewed{background:#fef3c7;color:#b45309}.edu-badge--approved{background:#dcfce7;color:#15803d}.edu-badge--rejected{background:#fee2e2;color:#b91c1c}.edu-badge--draft{background:#f1f5f9;color:#64748b}.edu-card--muted{background:#f8fafc}.edu-role-picker{display:grid;gap:.75rem;max-width:400px;margin:0 auto}.edu-role-picker button{display:flex;align-items:center;gap:1rem;padding:1rem;border:2px solid #e2e8f0;border-radius:var(--radius-card);background:#fff;cursor:pointer;text-align:left;transition:border-color .15s}.edu-role-picker button:hover{border-color:var(--color-primary)}.edu-role-picker__icon{font-size:1.75rem}.edu-role-picker__meta{flex:1}.edu-role-picker__meta strong{display:block}.edu-role-picker__meta span{font-size:.75rem;color:var(--color-text-muted)}@media(min-width:768px){.edu-shell--teacher{max-width:100%}.edu-bottom-nav{max-width:480px}}.edu-persona-shell.edu-shell--super{background:#f5f7fb;height:100dvh;max-height:100dvh;min-height:0;overflow:hidden}.edu-persona-shell__workspace{display:flex;flex:1;min-width:0;min-height:0;height:100%;max-height:100dvh;overflow:hidden}.edu-persona-shell.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super{position:relative;top:auto;left:auto;height:100%;max-height:100dvh;width:52px;flex:0 0 52px;align-self:stretch;z-index:30;transition:width .22s ease,flex-basis .22s ease,box-shadow .22s ease}.edu-persona-shell.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super:hover,.edu-persona-shell.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek{width:220px;flex-basis:220px;box-shadow:none}.edu-persona-shell.edu-shell--sidebar-collapsed .edu-persona-shell__workspace{margin-left:0;width:auto;max-width:none;flex:1 1 0%;min-width:0}.edu-shell--sidebar-collapsed .edu-persona-shell__workspace .edu-shell__content{margin-left:0;width:auto;flex:1;min-width:0;min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column}.edu-shell--chat-open .edu-persona-shell__workspace .edu-shell__content{flex:1;min-width:0;min-height:0}.edu-persona-shell__content{background:transparent;flex:1;min-width:0;min-height:0;height:100%;overflow:hidden;display:flex;flex-direction:column}.edu-persona-shell__main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;height:100%;max-height:100%;background:transparent;padding:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:none;overscroll-behavior-y:none}.edu-chat-dock{width:min(420px,36vw);flex:0 0 min(420px,36vw);min-width:0;height:100%;max-height:100dvh;align-self:stretch;overflow:hidden;border-left:1px solid #e2e8f0;background:#fff;z-index:40}.edu-sidebar--persona{z-index:50;display:flex;flex-direction:column;--persona-sidebar-icon-size: 23px;font-size:14px;line-height:1.35;height:100dvh;max-height:100dvh;overflow:hidden}@media(min-width:1024px){.edu-persona-shell .edu-persona-shell__main{width:100%;max-width:100%}}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super{overflow:hidden}.edu-sidebar--persona .edu-sidebar__nav{flex:1;min-height:0;overflow:hidden}.edu-sidebar--persona,.edu-sidebar--persona .edu-sidebar__nav{scrollbar-width:none}.edu-sidebar--persona::-webkit-scrollbar,.edu-sidebar--persona .edu-sidebar__nav::-webkit-scrollbar{display:none}@media(min-width:768px){.edu-shell--chat-open .edu-persona-shell__workspace{max-width:100%}.edu-shell--chat-open .edu-persona-shell__main{min-width:0}}.edu-sidebar--persona .edu-sidebar__brand{justify-content:flex-start;align-items:center;padding:.85rem .55rem 1rem;gap:.55rem;min-height:3.35rem}.edu-sidebar--persona .edu-sidebar__brand-logo{width:2.25rem;height:2.25rem;flex:0 0 2.25rem}.edu-sidebar--persona .edu-sidebar__brand-copy{display:grid;gap:.05rem;min-width:0}.edu-sidebar--persona .edu-sidebar__brand-sub{display:block;font-size:.68rem;font-weight:500;color:#64748b;line-height:1.2}.edu-sidebar--persona.edu-sidebar--super .edu-sidebar__brand .edu-sidebar__brand-sub{display:block}.edu-sidebar--persona .edu-sidebar__link.is-locked{opacity:.4;cursor:not-allowed}.edu-sidebar--persona .edu-sidebar__group-label{margin:0 0 .25rem;padding:0 .45rem;font-size:.62rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8;transition:opacity .16s ease}.edu-shell--sidebar-collapsed .edu-sidebar--persona .edu-sidebar__group-label{max-width:100%;opacity:0;overflow:hidden;white-space:nowrap;pointer-events:none}.edu-shell--sidebar-collapsed .edu-sidebar--persona:hover .edu-sidebar__group-label,.edu-shell--sidebar-collapsed .edu-sidebar--persona.is-peek .edu-sidebar__group-label{opacity:1;pointer-events:auto}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__brand-copy,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__link-label{transition:opacity .16s ease,width .16s ease}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__brand-copy,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__link-label{width:auto;opacity:1;pointer-events:auto}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__nav,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super:hover .edu-sidebar__nav,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__nav{padding:0 .35rem}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__link,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super:hover .edu-sidebar__link,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__link{justify-content:flex-start;gap:.45rem;padding:.32rem .45rem}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__brand,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super:hover .edu-sidebar__brand,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__brand{justify-content:flex-start;padding:.85rem .55rem 1rem;gap:.55rem}.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super .edu-sidebar__footer--persona,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super:hover .edu-sidebar__footer--persona,.edu-shell--sidebar-collapsed .edu-sidebar--persona.edu-sidebar--super.is-peek .edu-sidebar__footer--persona{padding:.65rem .35rem .85rem}.edu-sidebar--persona .edu-sidebar__sticker--nav,.edu-sidebar--persona .edu-sidebar__sticker--nav svg,.edu-sidebar__footer--persona .edu-sidebar__sticker--footer,.edu-sidebar__footer--persona .edu-sidebar__sticker--footer svg{width:var(--persona-sidebar-icon-size)!important;height:var(--persona-sidebar-icon-size)!important;min-width:var(--persona-sidebar-icon-size);min-height:var(--persona-sidebar-icon-size);flex:0 0 var(--persona-sidebar-icon-size)}.edu-sidebar.edu-sidebar--super.edu-sidebar--persona .edu-sidebar__sticker svg{width:var(--persona-sidebar-icon-size)!important;height:var(--persona-sidebar-icon-size)!important}.edu-sidebar--persona .edu-sidebar__sticker--nav svg,.edu-sidebar__footer--persona .edu-sidebar__sticker--footer svg{display:block}.edu-sidebar__footer--persona{padding:.65rem .35rem .85rem;margin-top:auto;border-top:1px solid #e2e8f0}.edu-sidebar__footer--persona .edu-sidebar__link{width:100%;border:1px solid transparent;background:transparent;cursor:pointer;font:inherit;text-decoration:none}.edu-sidebar__footer--persona .edu-sidebar__link--chat,.edu-sidebar--super .edu-sidebar__footer--persona .edu-sidebar__link--chat.is-active{background:transparent!important;color:#1d4ed8!important;font-weight:600;border-color:transparent}.edu-sidebar__footer--persona .edu-sidebar__link--chat .edu-sidebar__link-label{color:#1d4ed8;font-weight:600}.edu-sidebar__footer--persona .edu-sidebar__link--chat svg{color:#1d4ed8;stroke:#1d4ed8}.edu-sidebar__footer--persona .edu-sidebar__link--chat:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}.edu-sidebar__footer--persona .edu-sidebar__link--chat.is-open,.edu-sidebar__footer--persona .edu-sidebar__link--chat.is-active{background:#fff!important;border-color:#60a5fa!important;color:#1d4ed8!important;box-shadow:inset 0 0 0 1px #93c5fd}.edu-sidebar__footer--persona .edu-sidebar__link--settings{color:#475569}.edu-sidebar__footer--persona .edu-sidebar__link--settings:hover{background:#f1f5f9;border-color:#e2e8f0}.edu-sidebar__footer--persona .edu-sidebar__link--teacher{background:transparent;color:#047857}.edu-sidebar__footer--persona .edu-sidebar__link--teacher:hover{background:#ecfdf5;border-color:#a7f3d0}.edu-sidebar__footer--persona .edu-sidebar__link--logout{color:#e11d48}.edu-sidebar__footer--persona .edu-sidebar__link--logout:hover{background:#fff1f2;border-color:#fecdd3}@media(max-width:1023px){.edu-shell--sidebar-collapsed .edu-persona-shell__workspace,.edu-persona-shell.edu-shell--sidebar-collapsed .edu-shell__content{margin-left:0;width:100%;max-width:100%}.edu-persona-shell__main,.persona-content-area--touch{width:100%;max-width:100%}.persona-content-area--touch>[class*=rounded-t-]{flex:1 1 auto;min-height:0;width:100%;max-width:100%}}@keyframes teacherProfileMascotFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.teacher-profile-hero-card__banner{min-height:7.5rem;color:#fff}.teacher-profile-hero-card__banner-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 4% 8%,rgba(255,255,255,.2) 0 3.8rem,transparent 3.9rem),radial-gradient(circle at 94% 38%,rgba(255,255,255,.13) 0 5.5rem,transparent 5.6rem),linear-gradient(145deg,hsl(var(--primary) / .94),hsl(var(--primary)))}.teacher-profile-hero-card__mascot{position:absolute;right:clamp(.15rem,2vw,1rem);bottom:clamp(-.35rem,.5vw,.15rem);z-index:2;width:clamp(6.5rem,28vw,9.5rem);height:auto;pointer-events:none;transform-origin:right bottom;animation:teacherProfileMascotFloat 4.5s ease-in-out infinite;filter:drop-shadow(0 .85rem 1.1rem rgba(15,23,42,.22))}.teacher-profile-hero-card__mascot-img{display:block;width:100%;height:auto;-o-object-fit:contain;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.teacher-profile-hero-card__index-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem .95rem;border-radius:9999px;font-size:.8125rem;font-weight:700;color:#fff;box-shadow:0 .55rem 1.1rem #0f172a29;white-space:nowrap}.teacher-profile-hero-card__index-label{opacity:.92;font-weight:600}.teacher-profile-hero-card__index-value{font-size:1.05rem;line-height:1;letter-spacing:-.02em}.teacher-profile-hero-card__index-pill--high{background:linear-gradient(135deg,#ef4444,#f97316)}.teacher-profile-hero-card__index-pill--elevated{background:linear-gradient(135deg,#f97316,#fbbf24)}.teacher-profile-hero-card__index-pill--low{background:linear-gradient(135deg,#22c55e,#14b8a6)}.teacher-profile-hero-card__index-pill--reduced{background:linear-gradient(135deg,#38bdf8,#6366f1)}.teacher-profile-hero-card__index-pill--balanced{background:linear-gradient(135deg,#64748b,#475569)}@media(prefers-reduced-motion:reduce){.teacher-profile-hero-card__mascot{animation:none}}.sa-timetable-entities{width:100%;max-width:none}.sa-timetable-entities__grid{display:grid;grid-template-columns:1fr;gap:.75rem}.sa-timetable-entities__grid.is-multi{transition:grid-template-columns .22s ease,gap .22s ease}.sa-timetable-entities__card{min-width:0;transition:padding .22s ease}.sa-timetable-entities__card .schedule-shell,.sa-timetable-entities__grid.is-multi .schedule-shell{max-width:100%}.sa-timetable-entities.is-chat-open .sa-timetable-entities__card.is-compact{padding:.5rem .65rem}.sa-timetable-entities.is-chat-open .schedule-shell>div{min-width:min(100%,520px)}.sa-timetable-entities.is-chat-open .sa-timetable-entities__grid.is-multi{gap:.5rem}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:var(--font-sans);font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}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;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}:root{--app-vh: 100vh;--app-vh: 100dvh;--app-vv-offset-top: 0px;--app-edge-inset-top: 40px;--app-pad-top: calc(var(--app-edge-inset-top) + env(safe-area-inset-top, 0px));--safe-area-top: constant(safe-area-inset-top);--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: constant(safe-area-inset-bottom);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: constant(safe-area-inset-left);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: constant(safe-area-inset-right);--safe-area-right: env(safe-area-inset-right, 0px);--font-sans: "Inter", "Noto Sans TC", sans-serif;--background: 220 20% 97%;--foreground: 222 47% 11%;--card: 0 0% 100%;--card-foreground: 222 47% 11%;--popover: 0 0% 100%;--popover-foreground: 222 47% 11%;--primary: 221 83% 53%;--primary-foreground: 210 40% 98%;--secondary: 210 40% 96%;--secondary-foreground: 222 47% 11%;--muted: 210 40% 96%;--muted-foreground: 215 16% 47%;--accent: 210 40% 96%;--accent-foreground: 222 47% 11%;--destructive: 0 84% 60%;--destructive-foreground: 210 40% 98%;--border: 214 32% 91%;--input: 214 32% 91%;--ring: 221 83% 53%;--chart-1: 221 83% 53%;--chart-2: 142 71% 45%;--chart-3: 38 92% 50%;--chart-4: 0 84% 60%;--chart-5: 262 83% 58%;--radius: .75rem;--sidebar-background: 222 47% 11%;--sidebar-foreground: 210 40% 98%;--sidebar-primary: 221 83% 53%;--sidebar-primary-foreground: 210 40% 98%;--sidebar-accent: 217 33% 17%;--sidebar-accent-foreground: 210 40% 98%;--sidebar-border: 217 33% 17%;--sidebar-ring: 221 83% 53%}.dark{--background: 222 47% 6%;--foreground: 210 40% 98%;--card: 222 47% 9%;--card-foreground: 210 40% 98%;--popover: 222 47% 9%;--popover-foreground: 210 40% 98%;--primary: 217 91% 60%;--primary-foreground: 222 47% 11%;--secondary: 217 33% 17%;--secondary-foreground: 210 40% 98%;--muted: 217 33% 17%;--muted-foreground: 215 20% 65%;--accent: 217 33% 17%;--accent-foreground: 210 40% 98%;--destructive: 0 63% 31%;--destructive-foreground: 210 40% 98%;--border: 217 33% 17%;--input: 217 33% 17%;--ring: 224 76% 48%;--chart-1: 220 70% 50%;--chart-2: 160 60% 45%;--chart-3: 30 80% 55%;--chart-4: 280 65% 60%;--chart-5: 340 75% 55%;--sidebar-background: 222 47% 6%;--sidebar-foreground: 210 40% 98%;--sidebar-primary: 217 91% 60%;--sidebar-primary-foreground: 222 47% 11%;--sidebar-accent: 217 33% 17%;--sidebar-accent-foreground: 210 40% 98%;--sidebar-border: 217 33% 17%;--sidebar-ring: 224 76% 48%}*{border-color:hsl(var(--border));outline-color:hsl(var(--ring) / .5)}html{height:-webkit-fill-available;overscroll-behavior-y:none;-webkit-overflow-scrolling:touch;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;touch-action:pan-x pan-y}body{background-color:hsl(var(--background));color:hsl(var(--foreground));font-family:var(--font-sans);background:linear-gradient(135deg,#eef2f9,#dfe5f0,#e8e4f5 60%,#e0ede9);min-height:100vh;min-height:100dvh;min-height:var(--app-vh, 100dvh);min-height:-webkit-fill-available;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none;overscroll-behavior:none;touch-action:pan-x pan-y}#root{min-height:inherit}#root:has(.edu-persona-shell){height:100dvh;max-height:100dvh;overflow:hidden}body:has(#root .edu-persona-shell){background:#f5f7fb;overflow:hidden;min-height:0;height:100dvh;max-height:100dvh}.safe-area-bottom{padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom,0px)}.app-bottom-sheet{isolation:isolate;max-height:calc(100dvh - max(72px,var(--app-pad-top)));overflow:visible}.app-bottom-sheet:after{content:"";position:absolute;inset-inline:0;top:100%;height:100dvh;background:inherit;pointer-events:none;z-index:-1}.safe-area-x{padding-left:constant(safe-area-inset-left);padding-left:env(safe-area-inset-left,0px);padding-right:constant(safe-area-inset-right);padding-right:env(safe-area-inset-right,0px)}.app-top-chrome{padding-top:calc(1.25rem + var(--app-pad-top))}.app-top-chrome-sm{padding-top:calc(1rem + var(--app-pad-top))}.app-edge-guard{position:fixed;top:0;left:0;right:0;height:var(--app-pad-top);z-index:2147483000;pointer-events:auto;touch-action:none;background:transparent}html.role-ui-embed-frame .app-edge-guard,html.ec-ask-ai-overlay-open .app-edge-guard{pointer-events:none}html.role-ui-embed-frame .app-edge-guard{display:none}.overflow-y-auto,.overflow-x-auto{overscroll-behavior:none}nav,[role=navigation]{-webkit-user-select:none;-moz-user-select:none;user-select:none}.overflow-y-auto,.overflow-x-auto{-webkit-overflow-scrolling:touch}@media(max-width:767px){html,body{scrollbar-width:none;-ms-overflow-style:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0;background:transparent}.overflow-y-auto,.overflow-x-auto,.overflow-auto{scrollbar-width:none;-ms-overflow-style:none}.overflow-y-auto::-webkit-scrollbar,.overflow-x-auto::-webkit-scrollbar,.overflow-auto::-webkit-scrollbar{display:none;width:0;height:0}}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.glass{border-radius:1rem;border-width:1px;border-color:#fff3;background-color:#ffffff1a;--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.youth-card{border-radius:1.5rem;border-width:1px;border-color:#fff9;background-color:#ffffffe6;--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);box-shadow:0 4px 24px -4px #6366f11f,0 8px 32px -8px #0f172a14}.youth-action-tile{position:relative;overflow:hidden;border-radius:1.5rem;--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));box-shadow:0 2px 16px -2px #0f172a1a,0 8px 24px -6px #6366f126}.youth-action-tile:active{transform:scale(.96)}.schedule-shell{overflow:hidden;border-radius:var(--radius);border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.luckysheet-editor-shell{overflow:hidden}.luckysheet-editor-host,.luckysheet-editor-host .luckysheet{width:100%!important;height:100%!important}.luckysheet-editor-shell .luckysheet-grid-window,.luckysheet-editor-shell #luckysheet-cell-main{position:relative}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.\!visible{visibility:visible!important}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-1{right:-.25rem}.-right-12{right:-3rem}.-top-1{top:-.25rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-\[100px\]{bottom:100px}.bottom-\[96px\]{bottom:96px}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-10{left:2.5rem}.left-2{left:.5rem}.left-2\.5{left:.625rem}.left-3{left:.75rem}.left-3\.5{left:.875rem}.left-\[130px\]{left:130px}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.top-0{top:0}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-16{top:4rem}.top-2{top:.5rem}.top-3{top:.75rem}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[100\]{z-index:100}.z-\[1\]{z-index:1}.z-\[25\]{z-index:25}.z-\[60\]{z-index:60}.z-\[61\]{z-index:61}.z-\[70\]{z-index:70}.z-\[71\]{z-index:71}.col-span-1{grid-column:span 1 / span 1}.col-span-2{grid-column:span 2 / span 2}.col-span-5{grid-column:span 5 / span 5}.col-span-full{grid-column:1 / -1}.-m-1{margin:-.25rem}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-0\.5{margin-left:.125rem;margin-right:.125rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.\!mt-0{margin-top:0!important}.-ml-4{margin-left:-1rem}.-mt-0\.5{margin-top:-.125rem}.-mt-11{margin-top:-2.75rem}.-mt-3{margin-top:-.75rem}.-mt-4{margin-top:-1rem}.-mt-5{margin-top:-1.25rem}.-mt-6{margin-top:-1.5rem}.-mt-9{margin-top:-2.25rem}.mb-1{margin-bottom:.25rem}.mb-1\.5{margin-bottom:.375rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-1\.5{margin-left:.375rem}.ml-14{margin-left:3.5rem}.ml-2{margin-left:.5rem}.ml-auto{margin-left:auto}.mr-0\.5{margin-right:.125rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-2\.5{margin-top:.625rem}.mt-24{margin-top:6rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-5{margin-top:1.25rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[3\/4\]{aspect-ratio:3/4}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-4{width:1rem;height:1rem}.h-0\.5{height:.125rem}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-28{height:7rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-36{height:9rem}.h-4{height:1rem}.h-48{height:12rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[100dvh\]{height:100dvh}.h-\[100px\]{height:100px}.h-\[140px\]{height:140px}.h-\[160px\]{height:160px}.h-\[180px\]{height:180px}.h-\[18px\]{height:18px}.h-\[1px\]{height:1px}.h-\[200px\]{height:200px}.h-\[58px\]{height:58px}.h-\[64px\]{height:64px}.h-\[68dvh\]{height:68dvh}.h-\[68px\]{height:68px}.h-\[calc\(100dvh-1rem\)\]{height:calc(100dvh - 1rem)}.h-\[min\(88vh\,820px\)\]{height:min(88vh,820px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-48{max-height:12rem}.max-h-64{max-height:16rem}.max-h-72{max-height:18rem}.max-h-96{max-height:24rem}.max-h-\[280px\]{max-height:280px}.max-h-\[300px\]{max-height:300px}.max-h-\[85dvh\]{max-height:85dvh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[88vh\]{max-height:88vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[min\(52vh\,420px\)\]{max-height:min(52vh,420px)}.max-h-\[min\(62vh\,560px\)\]{max-height:min(62vh,560px)}.max-h-\[min\(88vh\,640px\)\]{max-height:min(88vh,640px)}.max-h-screen{max-height:100vh}.min-h-0{min-height:0px}.min-h-10{min-height:2.5rem}.min-h-11{min-height:2.75rem}.min-h-\[100dvh\]{min-height:100dvh}.min-h-\[120px\]{min-height:120px}.min-h-\[130px\]{min-height:130px}.min-h-\[140px\]{min-height:140px}.min-h-\[200px\]{min-height:200px}.min-h-\[24px\]{min-height:24px}.min-h-\[260px\]{min-height:260px}.min-h-\[280px\]{min-height:280px}.min-h-\[28px\]{min-height:28px}.min-h-\[32px\]{min-height:32px}.min-h-\[34px\]{min-height:34px}.min-h-\[36px\]{min-height:36px}.min-h-\[40px\]{min-height:40px}.min-h-\[420px\]{min-height:420px}.min-h-\[44px\]{min-height:44px}.min-h-\[4px\]{min-height:4px}.min-h-\[520px\]{min-height:520px}.min-h-\[52px\]{min-height:52px}.min-h-\[60px\]{min-height:60px}.min-h-\[64px\]{min-height:64px}.min-h-\[72px\]{min-height:72px}.min-h-\[80px\]{min-height:80px}.min-h-\[88px\]{min-height:88px}.min-h-\[92px\]{min-height:92px}.min-h-\[96px\]{min-height:96px}.min-h-full{min-height:100%}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1{width:.25rem}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[--sidebar-width\]{width:var(--sidebar-width)}.w-\[10\.5rem\]{width:10.5rem}.w-\[100px\]{width:100px}.w-\[170px\]{width:170px}.w-\[1px\]{width:1px}.w-\[52px\]{width:52px}.w-\[9\.5rem\]{width:9.5rem}.w-\[min\(320px\,calc\(100vw-2rem\)\)\]{width:min(320px,calc(100vw - 2rem))}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-11{min-width:2.75rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[108px\]{min-width:108px}.min-w-\[110px\]{min-width:110px}.min-w-\[12rem\]{min-width:12rem}.min-w-\[130px\]{min-width:130px}.min-w-\[180px\]{min-width:180px}.min-w-\[18px\]{min-width:18px}.min-w-\[20px\]{min-width:20px}.min-w-\[28px\]{min-width:28px}.min-w-\[3\.5rem\]{min-width:3.5rem}.min-w-\[36rem\]{min-width:36rem}.min-w-\[4\.5rem\]{min-width:4.5rem}.min-w-\[40rem\]{min-width:40rem}.min-w-\[44px\]{min-width:44px}.min-w-\[560px\]{min-width:560px}.min-w-\[600px\]{min-width:600px}.min-w-\[60px\]{min-width:60px}.min-w-\[640px\]{min-width:640px}.min-w-\[7\.5rem\]{min-width:7.5rem}.min-w-\[700px\]{min-width:700px}.min-w-\[78px\]{min-width:78px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[90px\]{min-width:90px}.min-w-\[min\(100\%\,680px\)\]{min-width:min(100%,680px)}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-\[--skeleton-width\]{max-width:var(--skeleton-width)}.max-w-\[120px\]{max-width:120px}.max-w-\[12rem\]{max-width:12rem}.max-w-\[14rem\]{max-width:14rem}.max-w-\[16rem\]{max-width:16rem}.max-w-\[180px\]{max-width:180px}.max-w-\[200px\]{max-width:200px}.max-w-\[220px\]{max-width:220px}.max-w-\[240px\]{max-width:240px}.max-w-\[55\%\]{max-width:55%}.max-w-\[85\%\]{max-width:85%}.max-w-\[92\%\]{max-width:92%}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xl{max-width:36rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-right{transform-origin:right}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-2{--tw-translate-y: -.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-90{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.animate-\[fadeIn_\.2s_ease-out\]{animation:fadeIn .2s ease-out}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-crosshair{cursor:crosshair}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize-y{resize:vertical}.resize{resize:both}.list-inside{list-style-position:inside}.list-decimal{list-style-type:decimal}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-\[100px_80px_1fr\]{grid-template-columns:100px 80px 1fr}.grid-cols-\[1fr_auto_auto_auto\]{grid-template-columns:1fr auto auto auto}.grid-cols-\[56px_48px_repeat\(5\,1fr\)\]{grid-template-columns:56px 48px repeat(5,1fr)}.grid-cols-\[64px_repeat\(5\,minmax\(0\,1fr\)\)\]{grid-template-columns:64px repeat(5,minmax(0,1fr))}.grid-cols-\[90px_repeat\(5\,1fr\)\]{grid-template-columns:90px repeat(5,1fr)}.grid-cols-\[auto_1fr\]{grid-template-columns:auto 1fr}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-stretch{justify-content:stretch}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-px{gap:1px}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.gap-y-1{row-gap:.25rem}.gap-y-2{row-gap:.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem * var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-amber-100\/80>:not([hidden])~:not([hidden]){border-color:#fef3c7cc}.divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.divide-violet-100\/80>:not([hidden])~:not([hidden]){border-color:#ede9fecc}.self-stretch{align-self:stretch}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overscroll-contain{overscroll-behavior:contain}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-line{white-space:pre-line}.whitespace-pre-wrap{white-space:pre-wrap}.break-words{overflow-wrap:break-word}.\!rounded-none{border-radius:0!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2px\]{border-radius:2px}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-t-2xl{border-top-left-radius:1rem;border-top-right-radius:1rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-t-\[10px\]{border-top-left-radius:10px;border-top-right-radius:10px}.rounded-t-\[24px\]{border-top-left-radius:24px;border-top-right-radius:24px}.rounded-t-\[26px\]{border-top-left-radius:26px;border-top-right-radius:26px}.rounded-t-\[28px\]{border-top-left-radius:28px;border-top-right-radius:28px}.rounded-t-\[30px\]{border-top-left-radius:30px;border-top-right-radius:30px}.rounded-t-sm{border-top-left-radius:calc(var(--radius) - 4px);border-top-right-radius:calc(var(--radius) - 4px)}.rounded-bl-md{border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-bl-xl{border-bottom-left-radius:.75rem}.rounded-br-md{border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-4{border-width:4px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-l{border-left-width:1px}.border-l-4{border-left-width:4px}.border-l-\[3px\]{border-left-width:3px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-dashed{border-style:dashed}.border-none{border-style:none}.border-\[\#434e88\]{--tw-border-opacity: 1;border-color:rgb(67 78 136 / var(--tw-border-opacity, 1))}.border-\[\#434e88\]\/30{border-color:#434e884d}.border-\[\#434e88\]\/40{border-color:#434e8866}.border-\[\#e3e8ee\]{--tw-border-opacity: 1;border-color:rgb(227 232 238 / var(--tw-border-opacity, 1))}.border-\[\#eef1f6\]{--tw-border-opacity: 1;border-color:rgb(238 241 246 / var(--tw-border-opacity, 1))}.border-\[--color-border\]{border-color:var(--color-border)}.border-amber-100{--tw-border-opacity: 1;border-color:rgb(254 243 199 / var(--tw-border-opacity, 1))}.border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.border-amber-200\/60{border-color:#fde68a99}.border-amber-200\/70{border-color:#fde68ab3}.border-amber-200\/80{border-color:#fde68acc}.border-amber-300{--tw-border-opacity: 1;border-color:rgb(252 211 77 / var(--tw-border-opacity, 1))}.border-amber-400{--tw-border-opacity: 1;border-color:rgb(251 191 36 / var(--tw-border-opacity, 1))}.border-amber-500{--tw-border-opacity: 1;border-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-blue-100{--tw-border-opacity: 1;border-color:rgb(219 234 254 / var(--tw-border-opacity, 1))}.border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.border-blue-200\/70{border-color:#bfdbfeb3}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-current{border-color:currentColor}.border-destructive{border-color:hsl(var(--destructive))}.border-destructive\/30{border-color:hsl(var(--destructive) / .3)}.border-destructive\/50{border-color:hsl(var(--destructive) / .5)}.border-emerald-100{--tw-border-opacity: 1;border-color:rgb(209 250 229 / var(--tw-border-opacity, 1))}.border-emerald-200{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.border-emerald-200\/60{border-color:#a7f3d099}.border-emerald-200\/70{border-color:#a7f3d0b3}.border-emerald-300{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.border-emerald-600{--tw-border-opacity: 1;border-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.border-green-200{--tw-border-opacity: 1;border-color:rgb(187 247 208 / var(--tw-border-opacity, 1))}.border-indigo-100{--tw-border-opacity: 1;border-color:rgb(224 231 255 / var(--tw-border-opacity, 1))}.border-indigo-200{--tw-border-opacity: 1;border-color:rgb(199 210 254 / var(--tw-border-opacity, 1))}.border-indigo-200\/70{border-color:#c7d2feb3}.border-indigo-300{--tw-border-opacity: 1;border-color:rgb(165 180 252 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-orange-100{--tw-border-opacity: 1;border-color:rgb(255 237 213 / var(--tw-border-opacity, 1))}.border-orange-200{--tw-border-opacity: 1;border-color:rgb(254 215 170 / var(--tw-border-opacity, 1))}.border-orange-200\/70{border-color:#fed7aab3}.border-orange-300{--tw-border-opacity: 1;border-color:rgb(253 186 116 / var(--tw-border-opacity, 1))}.border-pink-300{--tw-border-opacity: 1;border-color:rgb(249 168 212 / var(--tw-border-opacity, 1))}.border-primary{border-color:hsl(var(--primary))}.border-primary\/20{border-color:hsl(var(--primary) / .2)}.border-primary\/50{border-color:hsl(var(--primary) / .5)}.border-purple-200{--tw-border-opacity: 1;border-color:rgb(233 213 255 / var(--tw-border-opacity, 1))}.border-red-100{--tw-border-opacity: 1;border-color:rgb(254 226 226 / var(--tw-border-opacity, 1))}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-700{--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.border-rose-100{--tw-border-opacity: 1;border-color:rgb(255 228 230 / var(--tw-border-opacity, 1))}.border-rose-200{--tw-border-opacity: 1;border-color:rgb(254 205 211 / var(--tw-border-opacity, 1))}.border-rose-200\/70{border-color:#fecdd3b3}.border-rose-300{--tw-border-opacity: 1;border-color:rgb(253 164 175 / var(--tw-border-opacity, 1))}.border-rose-600{--tw-border-opacity: 1;border-color:rgb(225 29 72 / var(--tw-border-opacity, 1))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-sky-100{--tw-border-opacity: 1;border-color:rgb(224 242 254 / var(--tw-border-opacity, 1))}.border-sky-200{--tw-border-opacity: 1;border-color:rgb(186 230 253 / var(--tw-border-opacity, 1))}.border-sky-200\/80{border-color:#bae6fdcc}.border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.border-slate-200\/80{border-color:#e2e8f0cc}.border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.border-slate-50{--tw-border-opacity: 1;border-color:rgb(248 250 252 / var(--tw-border-opacity, 1))}.border-slate-700{--tw-border-opacity: 1;border-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-slate-900{--tw-border-opacity: 1;border-color:rgb(15 23 42 / var(--tw-border-opacity, 1))}.border-teal-100{--tw-border-opacity: 1;border-color:rgb(204 251 241 / var(--tw-border-opacity, 1))}.border-teal-200{--tw-border-opacity: 1;border-color:rgb(153 246 228 / var(--tw-border-opacity, 1))}.border-teal-200\/80{border-color:#99f6e4cc}.border-teal-300{--tw-border-opacity: 1;border-color:rgb(94 234 212 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-violet-100{--tw-border-opacity: 1;border-color:rgb(237 233 254 / var(--tw-border-opacity, 1))}.border-violet-100\/80{border-color:#ede9fecc}.border-violet-200{--tw-border-opacity: 1;border-color:rgb(221 214 254 / var(--tw-border-opacity, 1))}.border-violet-200\/80{border-color:#ddd6fecc}.border-violet-300{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.border-violet-600{--tw-border-opacity: 1;border-color:rgb(124 58 237 / var(--tw-border-opacity, 1))}.border-white\/10{border-color:#ffffff1a}.border-white\/30{border-color:#ffffff4d}.border-white\/35{border-color:#ffffff59}.border-white\/40{border-color:#fff6}.border-white\/60{border-color:#fff9}.border-white\/70{border-color:#ffffffb3}.border-l-amber-500{--tw-border-opacity: 1;border-left-color:rgb(245 158 11 / var(--tw-border-opacity, 1))}.border-l-blue-600{--tw-border-opacity: 1;border-left-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}.border-l-emerald-600{--tw-border-opacity: 1;border-left-color:rgb(5 150 105 / var(--tw-border-opacity, 1))}.border-l-indigo-600{--tw-border-opacity: 1;border-left-color:rgb(79 70 229 / var(--tw-border-opacity, 1))}.border-l-rose-500{--tw-border-opacity: 1;border-left-color:rgb(244 63 94 / var(--tw-border-opacity, 1))}.border-l-teal-600{--tw-border-opacity: 1;border-left-color:rgb(13 148 136 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-slate-700{--tw-border-opacity: 1;border-top-color:rgb(51 65 85 / var(--tw-border-opacity, 1))}.border-t-slate-800{--tw-border-opacity: 1;border-top-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.border-t-transparent{border-top-color:transparent}.\!bg-transparent{background-color:transparent!important}.bg-\[\#1b72e9\]{--tw-bg-opacity: 1;background-color:rgb(27 114 233 / var(--tw-bg-opacity, 1))}.bg-\[\#434e88\]{--tw-bg-opacity: 1;background-color:rgb(67 78 136 / var(--tw-bg-opacity, 1))}.bg-\[\#434e88\]\/10{background-color:#434e881a}.bg-\[\#434e88\]\/5{background-color:#434e880d}.bg-\[\#F7F9FC\]{--tw-bg-opacity: 1;background-color:rgb(247 249 252 / var(--tw-bg-opacity, 1))}.bg-\[\#FF7A45\]{--tw-bg-opacity: 1;background-color:rgb(255 122 69 / var(--tw-bg-opacity, 1))}.bg-\[\#e0f7fa\]{--tw-bg-opacity: 1;background-color:rgb(224 247 250 / var(--tw-bg-opacity, 1))}.bg-\[\#e8eaf6\]{--tw-bg-opacity: 1;background-color:rgb(232 234 246 / var(--tw-bg-opacity, 1))}.bg-\[\#e8eef5\]{--tw-bg-opacity: 1;background-color:rgb(232 238 245 / var(--tw-bg-opacity, 1))}.bg-\[\#e8f5e9\]{--tw-bg-opacity: 1;background-color:rgb(232 245 233 / var(--tw-bg-opacity, 1))}.bg-\[\#ecf8ea\]{--tw-bg-opacity: 1;background-color:rgb(236 248 234 / var(--tw-bg-opacity, 1))}.bg-\[\#eef0f8\]{--tw-bg-opacity: 1;background-color:rgb(238 240 248 / var(--tw-bg-opacity, 1))}.bg-\[\#eef2ff\]{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-\[\#f0f2f7\]{--tw-bg-opacity: 1;background-color:rgb(240 242 247 / var(--tw-bg-opacity, 1))}.bg-\[\#f0f4c3\]{--tw-bg-opacity: 1;background-color:rgb(240 244 195 / var(--tw-bg-opacity, 1))}.bg-\[\#f1f3f5\]{--tw-bg-opacity: 1;background-color:rgb(241 243 245 / var(--tw-bg-opacity, 1))}.bg-\[\#f3e5f5\]{--tw-bg-opacity: 1;background-color:rgb(243 229 245 / var(--tw-bg-opacity, 1))}.bg-\[\#f3f4f6\]{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-\[\#f5f7fb\]{--tw-bg-opacity: 1;background-color:rgb(245 247 251 / var(--tw-bg-opacity, 1))}.bg-\[\#fce4ec\]{--tw-bg-opacity: 1;background-color:rgb(252 228 236 / var(--tw-bg-opacity, 1))}.bg-\[\#fff0f3\]{--tw-bg-opacity: 1;background-color:rgb(255 240 243 / var(--tw-bg-opacity, 1))}.bg-\[\#fff7e6\]{--tw-bg-opacity: 1;background-color:rgb(255 247 230 / var(--tw-bg-opacity, 1))}.bg-\[\#fff8e1\]{--tw-bg-opacity: 1;background-color:rgb(255 248 225 / var(--tw-bg-opacity, 1))}.bg-\[--color-bg\]{background-color:var(--color-bg)}.bg-\[var\(--ec-color-bg\,\#f5f7fb\)\]{background-color:var(--ec-color-bg,#f5f7fb)}.bg-accent{background-color:hsl(var(--accent))}.bg-amber-100{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.bg-amber-200{--tw-bg-opacity: 1;background-color:rgb(253 230 138 / var(--tw-bg-opacity, 1))}.bg-amber-200\/60{background-color:#fde68a99}.bg-amber-300{--tw-bg-opacity: 1;background-color:rgb(252 211 77 / var(--tw-bg-opacity, 1))}.bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.bg-amber-50\/40{background-color:#fffbeb66}.bg-amber-50\/50{background-color:#fffbeb80}.bg-amber-50\/60{background-color:#fffbeb99}.bg-amber-50\/80{background-color:#fffbebcc}.bg-amber-50\/90{background-color:#fffbebe6}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/20{background-color:#f59e0b33}.bg-amber-600{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.bg-background{background-color:hsl(var(--background))}.bg-background\/80{background-color:hsl(var(--background) / .8)}.bg-background\/90{background-color:hsl(var(--background) / .9)}.bg-black\/30{background-color:#0000004d}.bg-black\/40{background-color:#0006}.bg-black\/5{background-color:#0000000d}.bg-black\/80{background-color:#000c}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.bg-blue-50\/40{background-color:#eff6ff66}.bg-blue-50\/50{background-color:#eff6ff80}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-500\/10{background-color:#3b82f61a}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-card\/80{background-color:hsl(var(--card) / .8)}.bg-destructive{background-color:hsl(var(--destructive))}.bg-destructive\/5{background-color:hsl(var(--destructive) / .05)}.bg-emerald-100{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.bg-emerald-100\/80{background-color:#d1fae5cc}.bg-emerald-200{--tw-bg-opacity: 1;background-color:rgb(167 243 208 / var(--tw-bg-opacity, 1))}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-50{--tw-bg-opacity: 1;background-color:rgb(236 253 245 / var(--tw-bg-opacity, 1))}.bg-emerald-50\/40{background-color:#ecfdf566}.bg-emerald-50\/50{background-color:#ecfdf580}.bg-emerald-50\/60{background-color:#ecfdf599}.bg-emerald-500{--tw-bg-opacity: 1;background-color:rgb(16 185 129 / var(--tw-bg-opacity, 1))}.bg-emerald-600{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.bg-green-500\/20{background-color:#22c55e33}.bg-indigo-100{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50{--tw-bg-opacity: 1;background-color:rgb(238 242 255 / var(--tw-bg-opacity, 1))}.bg-indigo-50\/60{background-color:#eef2ff99}.bg-indigo-50\/70{background-color:#eef2ffb3}.bg-indigo-600{--tw-bg-opacity: 1;background-color:rgb(79 70 229 / var(--tw-bg-opacity, 1))}.bg-inherit{background-color:inherit}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/20{background-color:hsl(var(--muted) / .2)}.bg-muted\/30{background-color:hsl(var(--muted) / .3)}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-muted\/60{background-color:hsl(var(--muted) / .6)}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.bg-orange-200{--tw-bg-opacity: 1;background-color:rgb(254 215 170 / var(--tw-bg-opacity, 1))}.bg-orange-50{--tw-bg-opacity: 1;background-color:rgb(255 247 237 / var(--tw-bg-opacity, 1))}.bg-orange-500{--tw-bg-opacity: 1;background-color:rgb(249 115 22 / var(--tw-bg-opacity, 1))}.bg-pink-100{--tw-bg-opacity: 1;background-color:rgb(252 231 243 / var(--tw-bg-opacity, 1))}.bg-pink-200{--tw-bg-opacity: 1;background-color:rgb(251 207 232 / var(--tw-bg-opacity, 1))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-primary\/5{background-color:hsl(var(--primary) / .05)}.bg-purple-100{--tw-bg-opacity: 1;background-color:rgb(243 232 255 / var(--tw-bg-opacity, 1))}.bg-purple-50{--tw-bg-opacity: 1;background-color:rgb(250 245 255 / var(--tw-bg-opacity, 1))}.bg-purple-50\/50{background-color:#faf5ff80}.bg-purple-500{--tw-bg-opacity: 1;background-color:rgb(168 85 247 / var(--tw-bg-opacity, 1))}.bg-purple-500\/10{background-color:#a855f71a}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-400{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-red-500\/15{background-color:#ef444426}.bg-red-600{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.bg-rose-200{--tw-bg-opacity: 1;background-color:rgb(254 205 211 / var(--tw-bg-opacity, 1))}.bg-rose-50{--tw-bg-opacity: 1;background-color:rgb(255 241 242 / var(--tw-bg-opacity, 1))}.bg-rose-500{--tw-bg-opacity: 1;background-color:rgb(244 63 94 / var(--tw-bg-opacity, 1))}.bg-rose-600{--tw-bg-opacity: 1;background-color:rgb(225 29 72 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-sky-100{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.bg-sky-50\/50{background-color:#f0f9ff80}.bg-sky-50\/90{background-color:#f0f9ffe6}.bg-sky-500{--tw-bg-opacity: 1;background-color:rgb(14 165 233 / var(--tw-bg-opacity, 1))}.bg-sky-700{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity, 1))}.bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.bg-slate-100\/50{background-color:#f1f5f980}.bg-slate-100\/60{background-color:#f1f5f999}.bg-slate-100\/80{background-color:#f1f5f9cc}.bg-slate-200{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.bg-slate-300{--tw-bg-opacity: 1;background-color:rgb(203 213 225 / var(--tw-bg-opacity, 1))}.bg-slate-400{--tw-bg-opacity: 1;background-color:rgb(148 163 184 / var(--tw-bg-opacity, 1))}.bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.bg-slate-50\/40{background-color:#f8fafc66}.bg-slate-50\/50{background-color:#f8fafc80}.bg-slate-50\/60{background-color:#f8fafc99}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-slate-50\/80{background-color:#f8fafccc}.bg-slate-700{--tw-bg-opacity: 1;background-color:rgb(51 65 85 / var(--tw-bg-opacity, 1))}.bg-slate-800{--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.bg-slate-800\/90{background-color:#1e293be6}.bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.bg-slate-900\/60{background-color:#0f172a99}.bg-teal-100{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.bg-teal-50{--tw-bg-opacity: 1;background-color:rgb(240 253 250 / var(--tw-bg-opacity, 1))}.bg-teal-50\/50{background-color:#f0fdfa80}.bg-teal-700{--tw-bg-opacity: 1;background-color:rgb(15 118 110 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet-100{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.bg-violet-100\/80{background-color:#ede9fecc}.bg-violet-200{--tw-bg-opacity: 1;background-color:rgb(221 214 254 / var(--tw-bg-opacity, 1))}.bg-violet-50{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.bg-violet-50\/30{background-color:#f5f3ff4d}.bg-violet-50\/40{background-color:#f5f3ff66}.bg-violet-50\/50{background-color:#f5f3ff80}.bg-violet-50\/60{background-color:#f5f3ff99}.bg-violet-50\/80{background-color:#f5f3ffcc}.bg-violet-500\/20{background-color:#8b5cf633}.bg-violet-600{--tw-bg-opacity: 1;background-color:rgb(124 58 237 / var(--tw-bg-opacity, 1))}.bg-violet-700{--tw-bg-opacity: 1;background-color:rgb(109 40 217 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/15{background-color:#ffffff26}.bg-white\/20{background-color:#fff3}.bg-white\/25{background-color:#ffffff40}.bg-white\/30{background-color:#ffffff4d}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-white\/90{background-color:#ffffffe6}.bg-white\/95{background-color:#fffffff2}.bg-\[radial-gradient\(circle_at_25\%_15\%\,rgba\(59\,130\,246\,0\.16\)\,transparent_35\%\)\,radial-gradient\(circle_at_80\%_70\%\,rgba\(16\,185\,129\,0\.14\)\,transparent_32\%\)\,linear-gradient\(135deg\,\#eef2f9_0\%\,\#ffffff_50\%\,\#ecfeff_100\%\)\]{background-image:radial-gradient(circle at 25% 15%,rgba(59,130,246,.16),transparent 35%),radial-gradient(circle at 80% 70%,rgba(16,185,129,.14),transparent 32%),linear-gradient(135deg,#eef2f9,#fff,#ecfeff)}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-\[\#434e88\]{--tw-gradient-from: #434e88 var(--tw-gradient-from-position);--tw-gradient-to: rgb(67 78 136 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-400{--tw-gradient-from: #fbbf24 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-50{--tw-gradient-from: #fffbeb var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-50\/90{--tw-gradient-from: rgb(255 251 235 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 251 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-500{--tw-gradient-from: #f59e0b var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 158 11 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-amber-600{--tw-gradient-from: #d97706 var(--tw-gradient-from-position);--tw-gradient-to: rgb(217 119 6 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-600{--tw-gradient-from: #2563eb var(--tw-gradient-from-position);--tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cyan-500{--tw-gradient-from: #06b6d4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(6 182 212 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-400{--tw-gradient-from: #34d399 var(--tw-gradient-from-position);--tw-gradient-to: rgb(52 211 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-50{--tw-gradient-from: #ecfdf5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 253 245 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-500{--tw-gradient-from: #10b981 var(--tw-gradient-from-position);--tw-gradient-to: rgb(16 185 129 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-emerald-600{--tw-gradient-from: #059669 var(--tw-gradient-from-position);--tw-gradient-to: rgb(5 150 105 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-400{--tw-gradient-from: #818cf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(129 140 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-600{--tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-700{--tw-gradient-from: #4338ca var(--tw-gradient-from-position);--tw-gradient-to: rgb(67 56 202 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-400{--tw-gradient-from: #fb923c var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 146 60 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-50{--tw-gradient-from: #fff7ed var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-50{--tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-400{--tw-gradient-from: #fb7185 var(--tw-gradient-from-position);--tw-gradient-to: rgb(251 113 133 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-50{--tw-gradient-from: #fff1f2 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 241 242 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-rose-500{--tw-gradient-from: #f43f5e var(--tw-gradient-from-position);--tw-gradient-to: rgb(244 63 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-400{--tw-gradient-from: #38bdf8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(56 189 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-sky-500{--tw-gradient-from: #0ea5e9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(14 165 233 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-400{--tw-gradient-from: #94a3b8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(148 163 184 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-500{--tw-gradient-from: #64748b var(--tw-gradient-from-position);--tw-gradient-to: rgb(100 116 139 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-700{--tw-gradient-from: #334155 var(--tw-gradient-from-position);--tw-gradient-to: rgb(51 65 85 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-800{--tw-gradient-from: #1e293b var(--tw-gradient-from-position);--tw-gradient-to: rgb(30 41 59 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-400{--tw-gradient-from: #2dd4bf var(--tw-gradient-from-position);--tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-teal-500{--tw-gradient-from: #14b8a6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 184 166 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-transparent{--tw-gradient-from: transparent var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-400{--tw-gradient-from: #a78bfa var(--tw-gradient-from-position);--tw-gradient-to: rgb(167 139 250 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-50{--tw-gradient-from: #f5f3ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(245 243 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-500{--tw-gradient-from: #8b5cf6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(139 92 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-600{--tw-gradient-from: #7c3aed var(--tw-gradient-from-position);--tw-gradient-to: rgb(124 58 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-violet-700{--tw-gradient-from: #6d28d9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white{--tw-gradient-from: #fff var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-white\/70{--tw-gradient-from: rgb(255 255 255 / .7) var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-\[\#f5f7fb\]\/80{--tw-gradient-to: rgb(245 247 251 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(245 247 251 / .8) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-amber-400{--tw-gradient-to: rgb(251 191 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #fbbf24 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-blue-500{--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #3b82f6 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-purple-500{--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #a855f7 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-teal-400{--tw-gradient-to: rgb(45 212 191 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #2dd4bf var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/20{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .2) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-white\/70{--tw-gradient-to: rgb(255 255 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(255 255 255 / .7) var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-\[\#5a67a8\]{--tw-gradient-to: #5a67a8 var(--tw-gradient-to-position)}.to-\[\#f5f7fb\]{--tw-gradient-to: #f5f7fb var(--tw-gradient-to-position)}.to-amber-300{--tw-gradient-to: #fcd34d var(--tw-gradient-to-position)}.to-amber-50\/40{--tw-gradient-to: rgb(255 251 235 / .4) var(--tw-gradient-to-position)}.to-amber-50\/80{--tw-gradient-to: rgb(255 251 235 / .8) var(--tw-gradient-to-position)}.to-amber-500{--tw-gradient-to: #f59e0b var(--tw-gradient-to-position)}.to-blue-400{--tw-gradient-to: #60a5fa var(--tw-gradient-to-position)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-blue-600{--tw-gradient-to: #2563eb var(--tw-gradient-to-position)}.to-cyan-300{--tw-gradient-to: #67e8f9 var(--tw-gradient-to-position)}.to-cyan-400{--tw-gradient-to: #22d3ee var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.to-emerald-400{--tw-gradient-to: #34d399 var(--tw-gradient-to-position)}.to-emerald-500{--tw-gradient-to: #10b981 var(--tw-gradient-to-position)}.to-fuchsia-400{--tw-gradient-to: #e879f9 var(--tw-gradient-to-position)}.to-gray-400{--tw-gradient-to: #9ca3af var(--tw-gradient-to-position)}.to-gray-500{--tw-gradient-to: #6b7280 var(--tw-gradient-to-position)}.to-green-50{--tw-gradient-to: #f0fdf4 var(--tw-gradient-to-position)}.to-indigo-400{--tw-gradient-to: #818cf8 var(--tw-gradient-to-position)}.to-indigo-500{--tw-gradient-to: #6366f1 var(--tw-gradient-to-position)}.to-indigo-600{--tw-gradient-to: #4f46e5 var(--tw-gradient-to-position)}.to-indigo-700{--tw-gradient-to: #4338ca var(--tw-gradient-to-position)}.to-indigo-800{--tw-gradient-to: #3730a3 var(--tw-gradient-to-position)}.to-orange-400{--tw-gradient-to: #fb923c var(--tw-gradient-to-position)}.to-orange-50{--tw-gradient-to: #fff7ed var(--tw-gradient-to-position)}.to-orange-50\/60{--tw-gradient-to: rgb(255 247 237 / .6) var(--tw-gradient-to-position)}.to-orange-50\/90{--tw-gradient-to: rgb(255 247 237 / .9) var(--tw-gradient-to-position)}.to-orange-500{--tw-gradient-to: #f97316 var(--tw-gradient-to-position)}.to-orange-600{--tw-gradient-to: #ea580c var(--tw-gradient-to-position)}.to-orange-700{--tw-gradient-to: #c2410c var(--tw-gradient-to-position)}.to-pink-400{--tw-gradient-to: #f472b6 var(--tw-gradient-to-position)}.to-pink-500{--tw-gradient-to: #ec4899 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.to-purple-400{--tw-gradient-to: #c084fc var(--tw-gradient-to-position)}.to-purple-50\/80{--tw-gradient-to: rgb(250 245 255 / .8) var(--tw-gradient-to-position)}.to-purple-500{--tw-gradient-to: #a855f7 var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-purple-700{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.to-red-50{--tw-gradient-to: #fef2f2 var(--tw-gradient-to-position)}.to-rose-50{--tw-gradient-to: #fff1f2 var(--tw-gradient-to-position)}.to-rose-600{--tw-gradient-to: #e11d48 var(--tw-gradient-to-position)}.to-slate-900{--tw-gradient-to: #0f172a var(--tw-gradient-to-position)}.to-teal-400{--tw-gradient-to: #2dd4bf var(--tw-gradient-to-position)}.to-teal-500{--tw-gradient-to: #14b8a6 var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to: #0d9488 var(--tw-gradient-to-position)}.to-teal-700{--tw-gradient-to: #0f766e var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.to-violet-800{--tw-gradient-to: #5b21b6 var(--tw-gradient-to-position)}.to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position)}.to-yellow-300{--tw-gradient-to: #fde047 var(--tw-gradient-to-position)}.to-yellow-500{--tw-gradient-to: #eab308 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-primary{fill:hsl(var(--primary))}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.object-center{-o-object-position:center;object-position:center}.object-top{-o-object-position:top;object-position:top}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-3\.5{padding:.875rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[1px\]{padding:1px}.px-0{padding-left:0;padding-right:0}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-20{padding-top:5rem;padding-bottom:5rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-9{padding-top:2.25rem;padding-bottom:2.25rem}.pb-0{padding-bottom:0}.pb-0\.5{padding-bottom:.125rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-28{padding-bottom:7rem}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pb-6{padding-bottom:1.5rem}.pb-7{padding-bottom:1.75rem}.pb-8{padding-bottom:2rem}.pb-\[76px\]{padding-bottom:76px}.pl-10{padding-left:2.5rem}.pl-11{padding-left:2.75rem}.pl-2{padding-left:.5rem}.pl-2\.5{padding-left:.625rem}.pl-3\.5{padding-left:.875rem}.pl-4{padding-left:1rem}.pl-5{padding-left:1.25rem}.pl-8{padding-left:2rem}.pl-9{padding-left:2.25rem}.pr-1{padding-right:.25rem}.pr-10{padding-right:2.5rem}.pr-12{padding-right:3rem}.pr-14{padding-right:3.5rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-1\.5{padding-top:.375rem}.pt-2{padding-top:.5rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13\.5px\]{font-size:13.5px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[16px\]{font-size:16px}.text-\[17px\]{font-size:17px}.text-\[18px\]{font-size:18px}.text-\[20px\]{font-size:20px}.text-\[22px\]{font-size:22px}.text-\[24px\]{font-size:24px}.text-\[26px\]{font-size:26px}.text-\[28px\]{font-size:28px}.text-\[8px\]{font-size:8px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-\[\#1E2A4A\]{--tw-text-opacity: 1;color:rgb(30 42 74 / var(--tw-text-opacity, 1))}.text-\[\#1f2937\]{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-\[\#2F9E5F\]{--tw-text-opacity: 1;color:rgb(47 158 95 / var(--tw-text-opacity, 1))}.text-\[\#434e88\]{--tw-text-opacity: 1;color:rgb(67 78 136 / var(--tw-text-opacity, 1))}.text-\[\#4f5fa3\]{--tw-text-opacity: 1;color:rgb(79 95 163 / var(--tw-text-opacity, 1))}.text-\[\#4f7e40\]{--tw-text-opacity: 1;color:rgb(79 126 64 / var(--tw-text-opacity, 1))}.text-\[\#6b7280\]{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-\[\#9a6a1c\]{--tw-text-opacity: 1;color:rgb(154 106 28 / var(--tw-text-opacity, 1))}.text-\[\#a65d69\]{--tw-text-opacity: 1;color:rgb(166 93 105 / var(--tw-text-opacity, 1))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-600{--tw-text-opacity: 1;color:rgb(217 119 6 / var(--tw-text-opacity, 1))}.text-amber-600\/80{color:#d97706cc}.text-amber-700{--tw-text-opacity: 1;color:rgb(180 83 9 / var(--tw-text-opacity, 1))}.text-amber-800{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.text-amber-800\/70{color:#92400eb3}.text-amber-800\/90{color:#92400ee6}.text-amber-900{--tw-text-opacity: 1;color:rgb(120 53 15 / var(--tw-text-opacity, 1))}.text-amber-900\/80{color:#78350fcc}.text-amber-900\/90{color:#78350fe6}.text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-700{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.text-blue-950{--tw-text-opacity: 1;color:rgb(23 37 84 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-emerald-500{--tw-text-opacity: 1;color:rgb(16 185 129 / var(--tw-text-opacity, 1))}.text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.text-emerald-600\/80{color:#059669cc}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-emerald-800{--tw-text-opacity: 1;color:rgb(6 95 70 / var(--tw-text-opacity, 1))}.text-emerald-800\/80{color:#065f46cc}.text-emerald-900{--tw-text-opacity: 1;color:rgb(6 78 59 / var(--tw-text-opacity, 1))}.text-emerald-950{--tw-text-opacity: 1;color:rgb(2 44 34 / var(--tw-text-opacity, 1))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-green-500{--tw-text-opacity: 1;color:rgb(34 197 94 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-700{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-indigo-600{--tw-text-opacity: 1;color:rgb(79 70 229 / var(--tw-text-opacity, 1))}.text-indigo-700{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.text-indigo-900{--tw-text-opacity: 1;color:rgb(49 46 129 / var(--tw-text-opacity, 1))}.text-indigo-950{--tw-text-opacity: 1;color:rgb(30 27 75 / var(--tw-text-opacity, 1))}.text-lime-800{--tw-text-opacity: 1;color:rgb(63 98 18 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-muted-foreground\/30{color:hsl(var(--muted-foreground) / .3)}.text-muted-foreground\/40{color:hsl(var(--muted-foreground) / .4)}.text-muted-foreground\/50{color:hsl(var(--muted-foreground) / .5)}.text-muted-foreground\/60{color:hsl(var(--muted-foreground) / .6)}.text-muted-foreground\/70{color:hsl(var(--muted-foreground) / .7)}.text-muted-foreground\/90{color:hsl(var(--muted-foreground) / .9)}.text-orange-600{--tw-text-opacity: 1;color:rgb(234 88 12 / var(--tw-text-opacity, 1))}.text-orange-700{--tw-text-opacity: 1;color:rgb(194 65 12 / var(--tw-text-opacity, 1))}.text-orange-800{--tw-text-opacity: 1;color:rgb(154 52 18 / var(--tw-text-opacity, 1))}.text-orange-900{--tw-text-opacity: 1;color:rgb(124 45 18 / var(--tw-text-opacity, 1))}.text-orange-950{--tw-text-opacity: 1;color:rgb(67 20 7 / var(--tw-text-opacity, 1))}.text-pink-700{--tw-text-opacity: 1;color:rgb(190 24 93 / var(--tw-text-opacity, 1))}.text-pink-900{--tw-text-opacity: 1;color:rgb(131 24 67 / var(--tw-text-opacity, 1))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-purple-700{--tw-text-opacity: 1;color:rgb(126 34 206 / var(--tw-text-opacity, 1))}.text-red-400{--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-700{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-red-900{--tw-text-opacity: 1;color:rgb(127 29 29 / var(--tw-text-opacity, 1))}.text-rose-500{--tw-text-opacity: 1;color:rgb(244 63 94 / var(--tw-text-opacity, 1))}.text-rose-600{--tw-text-opacity: 1;color:rgb(225 29 72 / var(--tw-text-opacity, 1))}.text-rose-600\/80{color:#e11d48cc}.text-rose-700{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.text-rose-800{--tw-text-opacity: 1;color:rgb(159 18 57 / var(--tw-text-opacity, 1))}.text-rose-900{--tw-text-opacity: 1;color:rgb(136 19 55 / var(--tw-text-opacity, 1))}.text-rose-950{--tw-text-opacity: 1;color:rgb(76 5 25 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-sky-600{--tw-text-opacity: 1;color:rgb(2 132 199 / var(--tw-text-opacity, 1))}.text-sky-700{--tw-text-opacity: 1;color:rgb(3 105 161 / var(--tw-text-opacity, 1))}.text-sky-800{--tw-text-opacity: 1;color:rgb(7 89 133 / var(--tw-text-opacity, 1))}.text-sky-900{--tw-text-opacity: 1;color:rgb(12 74 110 / var(--tw-text-opacity, 1))}.text-sky-900\/80{color:#0c4a6ecc}.text-sky-950{--tw-text-opacity: 1;color:rgb(8 47 73 / var(--tw-text-opacity, 1))}.text-slate-200{--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-slate-950{--tw-text-opacity: 1;color:rgb(2 6 23 / var(--tw-text-opacity, 1))}.text-teal-600{--tw-text-opacity: 1;color:rgb(13 148 136 / var(--tw-text-opacity, 1))}.text-teal-700{--tw-text-opacity: 1;color:rgb(15 118 110 / var(--tw-text-opacity, 1))}.text-teal-800{--tw-text-opacity: 1;color:rgb(17 94 89 / var(--tw-text-opacity, 1))}.text-teal-900\/80{color:#134e4acc}.text-teal-950{--tw-text-opacity: 1;color:rgb(4 47 46 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.text-violet-500{--tw-text-opacity: 1;color:rgb(139 92 246 / var(--tw-text-opacity, 1))}.text-violet-600{--tw-text-opacity: 1;color:rgb(124 58 237 / var(--tw-text-opacity, 1))}.text-violet-700{--tw-text-opacity: 1;color:rgb(109 40 217 / var(--tw-text-opacity, 1))}.text-violet-700\/80{color:#6d28d9cc}.text-violet-800{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity, 1))}.text-violet-800\/70{color:#5b21b6b3}.text-violet-900{--tw-text-opacity: 1;color:rgb(76 29 149 / var(--tw-text-opacity, 1))}.text-violet-900\/70{color:#4c1d95b3}.text-violet-900\/80{color:#4c1d95cc}.text-violet-950{--tw-text-opacity: 1;color:rgb(46 16 101 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/70{color:#ffffffb3}.text-white\/75{color:#ffffffbf}.text-white\/80{color:#fffc}.text-white\/85{color:#ffffffd9}.text-white\/90{color:#ffffffe6}.line-through{text-decoration-line:line-through}.underline-offset-2{text-underline-offset:2px}.underline-offset-4{text-underline-offset:4px}.accent-violet-600{accent-color:#7c3aed}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-15{opacity:.15}.opacity-20{opacity:.2}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_10px_rgba\(15\,23\,42\,0\.04\)\]{--tw-shadow: 0 2px 10px rgba(15,23,42,.04);--tw-shadow-colored: 0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_2px_10px_rgba\(15\,23\,42\,0\.05\)\]{--tw-shadow: 0 2px 10px rgba(15,23,42,.05);--tw-shadow-colored: 0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[inset_0_-1px_0_0_\#e2e8f0\]{--tw-shadow: inset 0 -1px 0 0 #e2e8f0;--tw-shadow-colored: inset 0 -1px 0 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-blue-200\/60{--tw-shadow-color: rgb(191 219 254 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-emerald-200\/60{--tw-shadow-color: rgb(167 243 208 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-indigo-200{--tw-shadow-color: #c7d2fe;--tw-shadow: var(--tw-shadow-colored)}.shadow-orange-200\/60{--tw-shadow-color: rgb(254 215 170 / .6);--tw-shadow: var(--tw-shadow-colored)}.shadow-orange-200\/80{--tw-shadow-color: rgb(254 215 170 / .8);--tw-shadow: var(--tw-shadow-colored)}.shadow-red-200{--tw-shadow-color: #fecaca;--tw-shadow: var(--tw-shadow-colored)}.shadow-slate-900\/15{--tw-shadow-color: rgb(15 23 42 / .15);--tw-shadow: var(--tw-shadow-colored)}.shadow-violet-200\/60{--tw-shadow-color: rgb(221 214 254 / .6);--tw-shadow: var(--tw-shadow-colored)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-inset{--tw-ring-inset: inset}.ring-\[\#434e88\]{--tw-ring-opacity: 1;--tw-ring-color: rgb(67 78 136 / var(--tw-ring-opacity, 1))}.ring-amber-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 243 199 / var(--tw-ring-opacity, 1))}.ring-amber-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 230 138 / var(--tw-ring-opacity, 1))}.ring-amber-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(252 211 77 / var(--tw-ring-opacity, 1))}.ring-amber-300\/60{--tw-ring-color: rgb(252 211 77 / .6)}.ring-amber-400\/50{--tw-ring-color: rgb(251 191 36 / .5)}.ring-amber-400\/70{--tw-ring-color: rgb(251 191 36 / .7)}.ring-blue-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity, 1))}.ring-blue-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity, 1))}.ring-blue-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1))}.ring-emerald-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(209 250 229 / var(--tw-ring-opacity, 1))}.ring-emerald-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(167 243 208 / var(--tw-ring-opacity, 1))}.ring-indigo-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(224 231 255 / var(--tw-ring-opacity, 1))}.ring-indigo-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(199 210 254 / var(--tw-ring-opacity, 1))}.ring-indigo-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1))}.ring-red-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity, 1))}.ring-ring{--tw-ring-color: hsl(var(--ring))}.ring-rose-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 228 230 / var(--tw-ring-opacity, 1))}.ring-rose-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(254 205 211 / var(--tw-ring-opacity, 1))}.ring-rose-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(253 164 175 / var(--tw-ring-opacity, 1))}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-sky-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(224 242 254 / var(--tw-ring-opacity, 1))}.ring-sky-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(186 230 253 / var(--tw-ring-opacity, 1))}.ring-slate-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(241 245 249 / var(--tw-ring-opacity, 1))}.ring-slate-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(226 232 240 / var(--tw-ring-opacity, 1))}.ring-slate-300{--tw-ring-opacity: 1;--tw-ring-color: rgb(203 213 225 / var(--tw-ring-opacity, 1))}.ring-slate-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity, 1))}.ring-teal-200{--tw-ring-opacity: 1;--tw-ring-color: rgb(153 246 228 / var(--tw-ring-opacity, 1))}.ring-violet-100{--tw-ring-opacity: 1;--tw-ring-color: rgb(237 233 254 / var(--tw-ring-opacity, 1))}.ring-white{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 255 255 / var(--tw-ring-opacity, 1))}.ring-white\/90{--tw-ring-color: rgb(255 255 255 / .9)}.ring-offset-1{--tw-ring-offset-width: 1px}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.ring-offset-transparent{--tw-ring-offset-color: transparent}.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)}.\!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)!important}.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)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.slide-in-from-bottom{--tw-enter-translate-y: 100%}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.h-app{height:var(--app-vh, 100vh);height:var(--app-vh, 100dvh)}.min-h-app{min-height:var(--app-vh, 100vh);min-height:var(--app-vh, 100dvh)}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none;width:0;height:0}html.role-ui-embed-frame,html.role-ui-embed-frame body,html.role-ui-embed-frame #root{height:100%;overflow:hidden}html.role-ui-embed-frame .edu-shell--teacher,html.role-ui-embed-frame .edu-glass-sidebar-layout,html.role-ui-embed-frame .edu-persona-shell{min-height:100%;height:100%}html.role-ui-embed-frame .edu-shell__main--teacher,html.role-ui-embed-frame .edu-glass-sidebar-main,html.role-ui-embed-frame .edu-persona-shell__main{overflow:hidden}html{--user-font-scale: 1}.user-content-scale{font-size:calc(1rem * var(--user-font-scale))}html.user-pref-reduce-motion *,html.user-pref-reduce-motion *:before,html.user-pref-reduce-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html.user-pref-high-contrast{--foreground: 222 47% 4%;--muted-foreground: 215 20% 30%;--border: 214 32% 75%}html.dark.user-pref-high-contrast{--foreground: 210 40% 100%;--muted-foreground: 215 20% 82%;--border: 217 33% 42%}html.user-pref-large-touch button,html.user-pref-large-touch a[role=button],html.user-pref-large-touch .mobile-bottom-nav-tab{min-height:48px;min-width:48px}.\[\&_table\]\:overflow-x-auto table{overscroll-behavior:none;-webkit-overflow-scrolling:touch}@media(max-width:767px){.\[\&_table\]\:overflow-x-auto table{scrollbar-width:none;-ms-overflow-style:none}.\[\&_table\]\:overflow-x-auto table::-webkit-scrollbar{display:none;width:0;height:0}}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.placeholder\:text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-0:last-child{border-width:0px}.last\:border-b-0:last-child{border-bottom-width:0px}.focus-within\:relative:focus-within{position:relative}.focus-within\:z-20:focus-within{z-index:20}.hover\:-translate-y-0\.5:hover{--tw-translate-y: -.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.01\]:hover{--tw-scale-x: 1.01;--tw-scale-y: 1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-emerald-200:hover{--tw-border-opacity: 1;border-color:rgb(167 243 208 / var(--tw-border-opacity, 1))}.hover\:border-emerald-300:hover{--tw-border-opacity: 1;border-color:rgb(110 231 183 / var(--tw-border-opacity, 1))}.hover\:border-muted-foreground\/20:hover{border-color:hsl(var(--muted-foreground) / .2)}.hover\:border-slate-200:hover{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.hover\:border-slate-300:hover{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.hover\:border-violet-300:hover{--tw-border-opacity: 1;border-color:rgb(196 181 253 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#1564cf\]:hover{--tw-bg-opacity: 1;background-color:rgb(21 100 207 / var(--tw-bg-opacity, 1))}.hover\:bg-\[\#3a4475\]:hover{--tw-bg-opacity: 1;background-color:rgb(58 68 117 / var(--tw-bg-opacity, 1))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-amber-100:hover{--tw-bg-opacity: 1;background-color:rgb(254 243 199 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-500:hover{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-600:hover{--tw-bg-opacity: 1;background-color:rgb(217 119 6 / var(--tw-bg-opacity, 1))}.hover\:bg-amber-700:hover{--tw-bg-opacity: 1;background-color:rgb(180 83 9 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/80:hover{background-color:hsl(var(--destructive) / .8)}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-emerald-100:hover{--tw-bg-opacity: 1;background-color:rgb(209 250 229 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-600:hover{--tw-bg-opacity: 1;background-color:rgb(5 150 105 / var(--tw-bg-opacity, 1))}.hover\:bg-emerald-700:hover{--tw-bg-opacity: 1;background-color:rgb(4 120 87 / var(--tw-bg-opacity, 1))}.hover\:bg-green-50:hover{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 231 255 / var(--tw-bg-opacity, 1))}.hover\:bg-indigo-50\/80:hover{background-color:#eef2ffcc}.hover\:bg-indigo-700:hover{--tw-bg-opacity: 1;background-color:rgb(67 56 202 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/20:hover{background-color:hsl(var(--muted) / .2)}.hover\:bg-muted\/30:hover{background-color:hsl(var(--muted) / .3)}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-orange-100:hover{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity, 1))}.hover\:bg-primary:hover{background-color:hsl(var(--primary))}.hover\:bg-primary\/10:hover{background-color:hsl(var(--primary) / .1)}.hover\:bg-primary\/80:hover{background-color:hsl(var(--primary) / .8)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-50:hover{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.hover\:bg-red-700:hover{--tw-bg-opacity: 1;background-color:rgb(185 28 28 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-100:hover{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity, 1))}.hover\:bg-rose-50\/30:hover{background-color:#fff1f24d}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:bg-sky-100:hover{--tw-bg-opacity: 1;background-color:rgb(224 242 254 / var(--tw-bg-opacity, 1))}.hover\:bg-sky-700:hover{--tw-bg-opacity: 1;background-color:rgb(3 105 161 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-100:hover{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:bg-slate-50\/70:hover{background-color:#f8fafcb3}.hover\:bg-slate-50\/80:hover{background-color:#f8fafccc}.hover\:bg-teal-100:hover{--tw-bg-opacity: 1;background-color:rgb(204 251 241 / var(--tw-bg-opacity, 1))}.hover\:bg-teal-700:hover{--tw-bg-opacity: 1;background-color:rgb(15 118 110 / var(--tw-bg-opacity, 1))}.hover\:bg-transparent:hover{background-color:transparent}.hover\:bg-violet-100:hover{--tw-bg-opacity: 1;background-color:rgb(237 233 254 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-200:hover{--tw-bg-opacity: 1;background-color:rgb(221 214 254 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-50:hover{--tw-bg-opacity: 1;background-color:rgb(245 243 255 / var(--tw-bg-opacity, 1))}.hover\:bg-violet-50\/40:hover{background-color:#f5f3ff66}.hover\:bg-violet-50\/80:hover{background-color:#f5f3ffcc}.hover\:bg-violet-700:hover{--tw-bg-opacity: 1;background-color:rgb(109 40 217 / var(--tw-bg-opacity, 1))}.hover\:bg-white:hover{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/25:hover{background-color:#ffffff40}.hover\:bg-white\/30:hover{background-color:#ffffff4d}.hover\:bg-white\/70:hover{background-color:#ffffffb3}.hover\:from-emerald-700:hover{--tw-gradient-from: #047857 var(--tw-gradient-from-position);--tw-gradient-to: rgb(4 120 87 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-indigo-700:hover{--tw-gradient-from: #4338ca var(--tw-gradient-from-position);--tw-gradient-to: rgb(67 56 202 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-violet-700:hover{--tw-gradient-from: #6d28d9 var(--tw-gradient-from-position);--tw-gradient-to: rgb(109 40 217 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-purple-700:hover{--tw-gradient-to: #7e22ce var(--tw-gradient-to-position)}.hover\:to-teal-700:hover{--tw-gradient-to: #0f766e var(--tw-gradient-to-position)}.hover\:text-\[\#1f2937\]:hover{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-amber-800:hover{--tw-text-opacity: 1;color:rgb(146 64 14 / var(--tw-text-opacity, 1))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-green-700:hover{--tw-text-opacity: 1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.hover\:text-indigo-700:hover{--tw-text-opacity: 1;color:rgb(67 56 202 / var(--tw-text-opacity, 1))}.hover\:text-indigo-800:hover{--tw-text-opacity: 1;color:rgb(55 48 163 / var(--tw-text-opacity, 1))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-primary-foreground:hover{color:hsl(var(--primary-foreground))}.hover\:text-red-600:hover{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-rose-700:hover{--tw-text-opacity: 1;color:rgb(190 18 60 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:text-slate-600:hover{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.hover\:text-slate-700:hover{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.hover\:text-slate-800:hover{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.hover\:text-slate-900:hover{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.hover\:text-violet-800:hover{--tw-text-opacity: 1;color:rgb(91 33 182 / var(--tw-text-opacity, 1))}.hover\:text-violet-900:hover{--tw-text-opacity: 1;color:rgb(76 29 149 / var(--tw-text-opacity, 1))}.hover\:text-white:hover{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring-2:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:ring-violet-200:hover{--tw-ring-opacity: 1;--tw-ring-color: rgb(221 214 254 / var(--tw-ring-opacity, 1))}.hover\:brightness-95:hover{--tw-brightness: brightness(.95);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)}.hover\:brightness-\[0\.98\]:hover{--tw-brightness: brightness(.98);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)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:border-blue-400:focus{--tw-border-opacity: 1;border-color:rgb(96 165 250 / var(--tw-border-opacity, 1))}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-primary:focus{background-color:hsl(var(--primary))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-primary-foreground:focus{color:hsl(var(--primary-foreground))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-100:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity, 1))}.focus\:ring-indigo-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(165 180 252 / var(--tw-ring-opacity, 1))}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-violet-300:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(196 181 253 / var(--tw-ring-opacity, 1))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-sidebar-ring:focus-visible{--tw-ring-color: hsl(var(--sidebar-ring))}.focus-visible\:ring-slate-400:focus-visible{--tw-ring-opacity: 1;--tw-ring-color: rgb(148 163 184 / var(--tw-ring-opacity, 1))}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.active\:scale-90:active{--tw-scale-x: .9;--tw-scale-y: .9;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-95:active{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.96\]:active{--tw-scale-x: .96;--tw-scale-y: .96;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.97\]:active{--tw-scale-x: .97;--tw-scale-y: .97;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.98\]:active{--tw-scale-x: .98;--tw-scale-y: .98;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:scale-\[0\.99\]:active{--tw-scale-x: .99;--tw-scale-y: .99;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:bg-slate-100:active{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.active\:bg-slate-100\/80:active{background-color:#f1f5f9cc}.active\:bg-slate-50:active{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-30:disabled{opacity:.3}.disabled\:opacity-40:disabled{opacity:.4}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:opacity-60:disabled{opacity:.6}.disabled\:opacity-70:disabled{opacity:.7}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group:hover .group-hover\:border-muted-foreground\/20{border-color:hsl(var(--muted-foreground) / .2)}.group:hover .group-hover\:text-violet-400{--tw-text-opacity: 1;color:rgb(167 139 250 / var(--tw-text-opacity, 1))}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.toaster .group-\[\.toaster\]\:border-border{border-color:hsl(var(--border))}.group.toast .group-\[\.toast\]\:bg-muted{background-color:hsl(var(--muted))}.group.toast .group-\[\.toast\]\:bg-primary{background-color:hsl(var(--primary))}.group.toaster .group-\[\.toaster\]\:bg-background{background-color:hsl(var(--background))}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity, 1))}.group.toast .group-\[\.toast\]\:text-muted-foreground{color:hsl(var(--muted-foreground))}.group.toast .group-\[\.toast\]\:text-primary-foreground{color:hsl(var(--primary-foreground))}.group.toaster .group-\[\.toaster\]\:text-foreground{color:hsl(var(--foreground))}.group.toaster .group-\[\.toaster\]\:shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity, 1))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\[data-variant\=inset\]\]\:bg-sidebar:has([data-variant=inset]){background-color:hsl(var(--sidebar-background))}.has-\[\:disabled\]\:opacity-50:has(:disabled){opacity:.5}.group\/menu-item:has([data-sidebar=menu-action]) .group-has-\[\[data-sidebar\=menu-action\]\]\/menu-item\:pr-8{padding-right:2rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:bg-accent[aria-selected=true]{background-color:hsl(var(--accent))}.aria-selected\:bg-accent\/50[aria-selected=true]{background-color:hsl(var(--accent) / .5)}.aria-selected\:text-accent-foreground[aria-selected=true]{color:hsl(var(--accent-foreground))}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.aria-selected\:opacity-100[aria-selected=true]{opacity:1}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-4[data-state=checked]{--tw-translate-x: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes accordion-up{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:animate-accordion-up[data-state=closed]{animation:accordion-up .2s ease-out}@keyframes accordion-down{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:animate-accordion-down[data-state=open]{animation:accordion-down .2s ease-out}.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[active\]\:bg-accent\/50[data-active]{background-color:hsl(var(--accent) / .5)}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=active\]\:bg-white[data-state=active]{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.data-\[state\=checked\]\:bg-\[\#434e88\][data-state=checked]{--tw-bg-opacity: 1;background-color:rgb(67 78 136 / var(--tw-bg-opacity, 1))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow[data-state=active]{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=active\]\:shadow-md[data-state=active]{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-left-1\/2[data-state=closed]{--tw-exit-translate-x: -50%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed],.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=closed\]\:slide-out-to-top-\[48\%\][data-state=closed]{--tw-exit-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-left-1\/2[data-state=open]{--tw-enter-translate-x: -50%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-top-\[48\%\][data-state=open]{--tw-enter-translate-y: -48%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!size-8{width:2rem!important;height:2rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[--sidebar-width-icon\]{width:var(--sidebar-width-icon)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)\)\]{width:calc(var(--sidebar-width-icon) + 1rem)}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)_\+_theme\(spacing\.4\)_\+2px\)\]{width:calc(var(--sidebar-width-icon) + 1rem + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-0{padding:0!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:\!p-2{padding:.5rem!important}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:hover\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer[data-variant=inset]~.peer-data-\[variant\=inset\]\:min-h-\[calc\(100svh-theme\(spacing\.4\)\)\]{min-height:calc(100svh - 1rem)}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.dark\:border-destructive:is(.dark *){border-color:hsl(var(--destructive))}.dark\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:bg-slate-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 41 59 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.dark\:bg-slate-950:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(2 6 23 / var(--tw-bg-opacity, 1))}.dark\:text-slate-100:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:text-slate-200:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}.dark\:text-slate-300:is(.dark *){--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.dark\:text-slate-400:is(.dark *){--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.dark\:ring-slate-700:is(.dark *){--tw-ring-opacity: 1;--tw-ring-color: rgb(51 65 85 / var(--tw-ring-opacity, 1))}.dark\:hover\:bg-slate-800\/60:hover:is(.dark *){background-color:#1e293b99}.dark\:hover\:text-slate-100:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(241 245 249 / var(--tw-text-opacity, 1))}.dark\:hover\:text-slate-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(226 232 240 / var(--tw-text-opacity, 1))}@media(min-width:640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:mb-6{margin-bottom:1.5rem}.sm\:mt-0{margin-top:0}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-14{height:3.5rem}.sm\:h-16{height:4rem}.sm\:h-20{height:5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-9{height:2.25rem}.sm\:h-\[14px\]{height:14px}.sm\:h-\[220px\]{height:220px}.sm\:min-h-\[110px\]{min-height:110px}.sm\:min-h-\[56px\]{min-height:56px}.sm\:min-h-\[64px\]{min-height:64px}.sm\:min-h-\[84px\]{min-height:84px}.sm\:w-14{width:3.5rem}.sm\:w-16{width:4rem}.sm\:w-20{width:5rem}.sm\:w-7{width:1.75rem}.sm\:w-72{width:18rem}.sm\:w-8{width:2rem}.sm\:w-9{width:2.25rem}.sm\:w-\[14px\]{width:14px}.sm\:w-auto{width:auto}.sm\:min-w-\[720px\]{min-width:720px}.sm\:max-w-md{max-width:28rem}.sm\:max-w-sm{max-width:24rem}.sm\:flex-none{flex:none}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.sm\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.sm\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:grid-cols-\[1fr_150px_110px_auto\]{grid-template-columns:1fr 150px 110px auto}.sm\:grid-cols-\[72px_64px_repeat\(5\,1fr\)\]{grid-template-columns:72px 64px repeat(5,1fr)}.sm\:grid-cols-\[80px_repeat\(5\,minmax\(0\,1fr\)\)\]{grid-template-columns:80px repeat(5,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:flex-col{flex-direction:column}.sm\:items-start{align-items:flex-start}.sm\:items-center{align-items:center}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-1{gap:.25rem}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-2{gap:.5rem}.sm\:gap-2\.5{gap:.625rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.sm\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.sm\:space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.sm\:space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}.sm\:space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.sm\:rounded-lg{border-radius:var(--radius)}.sm\:p-1\.5{padding:.375rem}.sm\:p-2{padding:.5rem}.sm\:p-3{padding:.75rem}.sm\:p-4{padding:1rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:px-4{padding-left:1rem;padding-right:1rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-2{padding-top:.5rem;padding-bottom:.5rem}.sm\:py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.sm\:py-3{padding-top:.75rem;padding-bottom:.75rem}.sm\:pr-14{padding-right:3.5rem}.sm\:pr-16{padding-right:4rem}.sm\:text-left{text-align:left}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[10px\]{font-size:10px}.sm\:text-\[11px\]{font-size:11px}.sm\:text-\[20px\]{font-size:20px}.sm\:text-\[9px\]{font-size:9px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:text-xl{font-size:1.25rem;line-height:1.75rem}.sm\:text-xs{font-size:.75rem;line-height:1rem}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media(min-width:768px){.md\:absolute{position:absolute}.md\:bottom-6{bottom:1.5rem}.md\:left-auto{left:auto}.md\:right-4{right:1rem}.md\:top-auto{top:auto}.md\:mx-6{margin-left:1.5rem;margin-right:1.5rem}.md\:mt-0{margin-top:0}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-\[620px\]{height:620px}.md\:max-h-\[calc\(100vh-2rem\)\]{max-height:calc(100vh - 2rem)}.md\:w-\[440px\]{width:440px}.md\:w-\[5\.5rem\]{width:5.5rem}.md\:w-\[7\.5rem\]{width:7.5rem}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:max-w-\[420px\]{max-width:420px}.md\:max-w-none{max-width:none}.md\:flex-none{flex:none}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:grid-cols-\[7\.5rem_minmax\(0\,1fr\)_auto\]{grid-template-columns:7.5rem minmax(0,1fr) auto}.md\:flex-col{flex-direction:column}.md\:items-start{align-items:flex-start}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:rounded-none{border-radius:0}.md\:bg-black\/30{background-color:#0000004d}.md\:px-0{padding-left:0;padding-right:0}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-0{padding-top:0;padding-bottom:0}.md\:pb-8{padding-bottom:2rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.md\:backdrop-blur-none{--tw-backdrop-blur: ;-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.after\:md\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-state=collapsed][data-variant=inset]~.md\:peer-data-\[state\=collapsed\]\:peer-data-\[variant\=inset\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media(min-width:1024px){.lg\:sticky{position:sticky}.lg\:top-0{top:0}.lg\:mx-0{margin-left:0;margin-right:0}.lg\:mt-0{margin-top:0}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:inline-flex{display:inline-flex}.lg\:grid{display:grid}.lg\:hidden{display:none}.lg\:h-screen{height:100vh}.lg\:max-h-none{max-height:none}.lg\:min-h-\[calc\(100vh-0px\)\]{min-height:calc(100vh + -0px)}.lg\:w-64{width:16rem}.lg\:w-72{width:18rem}.lg\:w-\[220px\]{width:220px}.lg\:w-full{width:100%}.lg\:max-w-2xl{max-width:42rem}.lg\:max-w-none{max-width:none}.lg\:max-w-xl{max-width:36rem}.lg\:shrink-0{flex-shrink:0}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.lg\:grid-cols-\[minmax\(0\,1\.4fr\)_minmax\(280px\,0\.8fr\)\]{grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr)}.lg\:flex-row{flex-direction:row}.lg\:flex-col{flex-direction:column}.lg\:items-start{align-items:flex-start}.lg\:items-end{align-items:flex-end}.lg\:items-stretch{align-items:stretch}.lg\:gap-4{gap:1rem}.lg\:gap-8{gap:2rem}.lg\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.lg\:self-stretch{align-self:stretch}.lg\:rounded-2xl{border-radius:1rem}.lg\:rounded-none{border-radius:0}.lg\:border{border-width:1px}.lg\:border-r{border-right-width:1px}.lg\:border-\[\#eef1f6\]{--tw-border-opacity: 1;border-color:rgb(238 241 246 / var(--tw-border-opacity, 1))}.lg\:border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.lg\:border-slate-200\/80{border-color:#e2e8f0cc}.lg\:bg-transparent{background-color:transparent}.lg\:bg-white\/70{background-color:#ffffffb3}.lg\:bg-white\/80{background-color:#fffc}.lg\:p-5{padding:1.25rem}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-2{padding-left:.5rem;padding-right:.5rem}.lg\:px-3{padding-left:.75rem;padding-right:.75rem}.lg\:px-4{padding-left:1rem;padding-right:1rem}.lg\:px-6{padding-left:1.5rem;padding-right:1.5rem}.lg\:px-7{padding-left:1.75rem;padding-right:1.75rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-5{padding-top:1.25rem;padding-bottom:1.25rem}.lg\:py-6{padding-top:1.5rem;padding-bottom:1.5rem}.lg\:py-8{padding-top:2rem;padding-bottom:2rem}.lg\:pb-10{padding-bottom:2.5rem}.lg\:pb-6{padding-bottom:1.5rem}.lg\:pb-8{padding-bottom:2rem}.lg\:pt-2{padding-top:.5rem}.lg\:pt-6{padding-top:1.5rem}.lg\:pt-8{padding-top:2rem}.lg\:text-lg{font-size:1.125rem;line-height:1.75rem}.lg\:shadow-\[0_2px_10px_rgba\(15\,23\,42\,0\.05\)\]{--tw-shadow: 0 2px 10px rgba(15,23,42,.05);--tw-shadow-colored: 0 2px 10px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.lg\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.dark\:lg\:border-slate-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(30 41 59 / var(--tw-border-opacity, 1))}.dark\:lg\:bg-slate-900\/70:is(.dark *){background-color:#0f172ab3}.dark\:lg\:bg-slate-900\/80:is(.dark *){background-color:#0f172acc}}@media(min-width:1280px){.xl\:col-span-5{grid-column:span 5 / span 5}.xl\:col-span-7{grid-column:span 7 / span 7}.xl\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media print{.print\:mt-0{margin-top:0}.print\:block{display:block}.print\:hidden{display:none}.print\:max-w-none{max-width:none}.print\:rounded-none{border-radius:0}.print\:border{border-width:1px}.print\:border-0{border-width:0px}.print\:px-0{padding-left:0;padding-right:0}.print\:pb-0{padding-bottom:0}.print\:shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}.\[\&\:has\(\>\.day-range-end\)\]\:rounded-r-md:has(>.day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\>\.day-range-start\)\]\:rounded-l-md:has(>.day-range-start){border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:rounded-md:has([aria-selected]){border-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\)\]\:bg-accent:has([aria-selected]){background-color:hsl(var(--accent))}.first\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-l-md:has([aria-selected]):first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.last\:\[\&\:has\(\[aria-selected\]\)\]\:rounded-r-md:has([aria-selected]):last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[aria-selected\]\.day-outside\)\]\:bg-accent\/50:has([aria-selected].day-outside){background-color:hsl(var(--accent) / .5)}.\[\&\:has\(\[aria-selected\]\.day-range-end\)\]\:rounded-r-md:has([aria-selected].day-range-end){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\>\*\:first-child\]\:mt-0>*:first-child{margin-top:0}.\[\&\>\*\:last-child\]\:mb-0>*:last-child{margin-bottom:0}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:line-clamp-1>span{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\[\&\>svg\+div\]\:translate-y-\[-3px\]>svg+div{--tw-translate-y: -3px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:absolute>svg{position:absolute}.\[\&\>svg\]\:left-4>svg{left:1rem}.\[\&\>svg\]\:top-4>svg{top:1rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:h-3\.5>svg{height:.875rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:w-3\.5>svg{width:.875rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:text-destructive>svg{color:hsl(var(--destructive))}.\[\&\>svg\]\:text-foreground>svg{color:hsl(var(--foreground))}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>svg\~\*\]\:pl-7>svg~*{padding-left:1.75rem}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-none .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-none .recharts-sector,.\[\&_\.recharts-surface\]\:outline-none .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:size-4 svg{width:1rem;height:1rem}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_table\]\:block table{display:block}.\[\&_table\]\:w-full table{width:100%}.\[\&_table\]\:overflow-x-auto table{overflow-x:auto}.\[\&_table\]\:text-xs table{font-size:.75rem;line-height:1rem}.\[\&_td\]\:px-2 td,.\[\&_th\]\:px-2 th{padding-left:.5rem;padding-right:.5rem}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}.\[\&_tr\]\:border-b-0 tr{border-bottom-width:0px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=left] .\[\[data-side\=left\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-side=right] .\[\[data-side\=right\]_\&\]\:cursor-e-resize{cursor:e-resize}
