:root{--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ca-color-blue-50:#eef6ff;--ca-color-blue-100:#d9ecff;--ca-color-blue-300:#8cc4ff;--ca-color-blue-500:#0878fa;--ca-color-blue-600:#0069e0;--ca-color-blue-700:#0052b3;--ca-color-green-50:#e9faf3;--ca-color-green-500:#2fae85;--ca-color-orange-50:#fff4e8;--ca-color-orange-500:#f59a3c;--ca-color-red-50:#ffefef;--ca-color-red-500:#e8695f;--ca-color-amber-50:#fff8e6;--ca-color-amber-500:#d9a02b;--ca-color-cyan-50:#e9f9fb;--ca-color-cyan-500:#2ab5c9;--ca-color-neutral-0:#fff;--ca-color-neutral-50:#f7fafd;--ca-color-neutral-100:#eef3f9;--ca-color-neutral-200:#e2eaf3;--ca-color-neutral-300:#cbd7e3;--ca-color-neutral-500:#8496a6;--ca-color-neutral-700:#4d5f70;--ca-color-neutral-900:#253444;--ca-color-primary:var(--ca-color-blue-500);--ca-color-primary-hover:var(--ca-color-blue-600);--ca-color-primary-active:var(--ca-color-blue-700);--ca-color-primary-soft:var(--ca-color-blue-50);--ca-color-primary-text:var(--ca-color-blue-500);--ca-color-primary-contrast:#fff;--ca-color-success:var(--ca-color-green-500);--ca-color-warning:var(--ca-color-orange-500);--ca-color-danger:var(--ca-color-red-500);--ca-color-info:var(--ca-color-cyan-500);--ca-color-success-soft:var(--ca-color-green-50);--ca-color-success-text:var(--ca-color-green-500);--ca-color-warning-soft:var(--ca-color-orange-50);--ca-color-warning-text:#c47a35;--ca-color-danger-soft:var(--ca-color-red-50);--ca-color-danger-text:var(--ca-color-red-500);--ca-color-info-soft:var(--ca-color-cyan-50);--ca-color-info-text:var(--ca-color-cyan-500);--ca-color-neutral-soft:var(--ca-color-neutral-100);--ca-color-neutral-text:#6b7c8d;--ca-text-primary:#333;--ca-text-regular:#4d5f70;--ca-text-secondary:#5c6d7e;--ca-text-placeholder:#72808d;--ca-text-menu:#000;--ca-text-menu-sub:#222;--ca-text-menu-deep:#333;--ca-text-inverse:#fff;--ca-surface-page:#f4f7fb;--ca-surface-card:#fff;--ca-surface-sunken:#f7fafd;--ca-border-color:#e6eef6;--ca-border-color-strong:#d3dfeb;--ca-overlay-color:#16283d66;--ca-skeleton-base:var(--ca-color-neutral-100);--ca-skeleton-highlight:#f4f8fc;--ca-radius-sm:4px;--ca-radius-md:8px;--ca-radius-lg:12px;--ca-radius-xl:16px;--ca-radius-full:999px;--ca-shadow-sm:0 1px 3px #1e3d5f12;--ca-shadow-md:0 2px 10px #1e3d5f14;--ca-shadow-lg:0 12px 30px #1e3d5f1f;--ca-shadow-popup:0 8px 28px #1e3d5f26;--ca-space-1:4px;--ca-space-2:8px;--ca-space-3:12px;--ca-space-4:16px;--ca-space-5:20px;--ca-space-6:24px;--ca-space-8:32px;--ca-font-family:-apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--ca-font-family-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--ca-font-size-xs:12px;--ca-font-size-sm:13px;--ca-font-size-md:15px;--ca-font-size-lg:17px;--ca-font-size-xl:21px;--ca-line-height:1.6;--ca-control-height-sm:28px;--ca-control-height-md:34px;--ca-control-height-lg:42px;--ca-z-index-dropdown:1000;--ca-z-index-modal:2000;--ca-z-index-message:3000;--blue:var(--ca-color-primary);--border:var(--ca-border-color);--muted:var(--ca-text-secondary);--tone:var(--ca-color-primary);--tint:var(--ca-color-primary-soft)}:root[data-ca-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ca-color-neutral-50:#131920;--ca-color-neutral-100:#1e2731;--ca-color-neutral-200:#27313c;--ca-color-neutral-300:#3a4552;--ca-color-neutral-500:#5b6774;--ca-color-neutral-700:#39434f;--ca-color-neutral-900:#e6edf5;--ca-surface-page:#0d1117;--ca-surface-card:#161b22;--ca-surface-sunken:#1c232c;--ca-border-color:#262d36;--ca-border-color-strong:#333c47;--ca-overlay-color:#000000b3;--ca-text-primary:#fff;--ca-text-regular:#c2cede;--ca-text-secondary:#8b9aac;--ca-text-placeholder:#6b7a8b;--ca-text-menu:#fff;--ca-text-menu-sub:#ddd;--ca-text-menu-deep:#ccc;--ca-shadow-sm:0 1px 3px #0000004d;--ca-shadow-md:0 2px 10px #0000005c;--ca-shadow-lg:0 12px 30px #00000073;--ca-shadow-popup:0 8px 28px #00000080;--ca-color-primary-soft:#14304d;--ca-color-primary-text:#74b0ff;--ca-color-success-soft:#102e27;--ca-color-success-text:#4fd0a5;--ca-color-warning-soft:#33260f;--ca-color-warning-text:#e8b070;--ca-color-danger-soft:#351a1c;--ca-color-danger-text:#ff8f88;--ca-color-info-soft:#0f2f34;--ca-color-info-text:#56ccdd;--ca-color-neutral-soft:#202b36;--ca-color-neutral-text:#a7b4c2;--ca-skeleton-base:#1e2731;--ca-skeleton-highlight:#2b3644}.ca-button,.ca-input__inner,.ca-textarea__inner,.ca-select__trigger,.ca-modal__button,.ca-search-form__button,.ca-side-menu__item,.ca-pagination__item,.ca-pagination__arrow,.ca-class-tree__node button,.ca-student-picker__item{font-family:inherit}.blue{--tone:var(--ca-color-primary-text);--tint:var(--ca-color-primary-soft)}.orange,.amber{--tone:var(--ca-color-warning-text);--tint:var(--ca-color-warning-soft)}.red{--tone:var(--ca-color-danger-text);--tint:var(--ca-color-danger-soft)}.green{--tone:var(--ca-color-success-text);--tint:var(--ca-color-success-soft)}.cyan{--tone:var(--ca-color-info-text);--tint:var(--ca-color-info-soft)}.blue,.orange,.amber,.red,.green,.cyan{color:var(--tone);background:var(--tint)}.surface{background:var(--ca-surface-card);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-lg)}.section-head{justify-content:space-between;align-items:center;gap:var(--ca-space-2);display:flex}.section-head h3{font-size:var(--ca-font-size-md);color:var(--ca-text-primary);font-weight:500}.text-link{color:var(--ca-color-primary-text);font-size:var(--ca-font-size-xs);white-space:nowrap;align-items:center;gap:5px;padding:0;display:inline-flex}.text-link:hover{color:var(--ca-color-primary-hover)}.subtle{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs)}.ca-sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.ca-attendance-badge{border-radius:var(--ca-radius-full);font-size:var(--ca-font-size-sm);white-space:nowrap;align-items:center;gap:5px;padding:2px 8px;line-height:1.6;display:inline-flex}.ca-attendance-badge--small{font-size:var(--ca-font-size-xs);padding:0 6px}.ca-attendance-badge__dot{background:currentColor;border-radius:50%;width:6px;height:6px}.ca-attendance-badge__time{opacity:.75;font-variant-numeric:tabular-nums;margin-left:2px}.ca-attendance-badge--primary{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text)}.ca-attendance-badge--success{background:var(--ca-color-success-soft);color:var(--ca-color-success-text)}.ca-attendance-badge--warning{background:var(--ca-color-warning-soft);color:var(--ca-color-warning-text)}.ca-attendance-badge--danger{background:var(--ca-color-danger-soft);color:var(--ca-color-danger-text)}.ca-attendance-badge--info{background:var(--ca-color-info-soft);color:var(--ca-color-info-text)}.ca-attendance-badge--neutral{background:var(--ca-color-neutral-soft);color:var(--ca-color-neutral-text)}.ca-avatar{background:var(--ca-color-primary-soft);width:32px;height:32px;color:var(--ca-color-primary-text);font-size:var(--ca-font-size-md);-webkit-user-select:none;user-select:none;flex-shrink:0;place-items:center;display:inline-grid;overflow:hidden}.ca-avatar img{object-fit:cover;width:100%;height:100%}.ca-avatar--circle{border-radius:var(--ca-radius-full)}.ca-avatar--square{border-radius:var(--ca-radius-md)}.ca-avatar--small{width:24px;height:24px;font-size:var(--ca-font-size-sm)}.ca-avatar--large{width:44px;height:44px;font-size:var(--ca-font-size-lg)}.ca-avatar__text{line-height:1}.ca-button{justify-content:center;align-items:center;gap:var(--ca-space-1);min-height:var(--ca-control-height-md);padding:0 var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-regular);font-size:var(--ca-font-size-md);white-space:nowrap;line-height:1;transition:background-color .18s,border-color .18s,color .18s,opacity .18s;display:inline-flex}.ca-button:hover:not(:disabled){border-color:var(--ca-border-color-strong);background:var(--ca-surface-sunken)}.ca-button:active:not(:disabled){background:var(--ca-color-neutral-soft)}.ca-button:disabled{opacity:.55}.ca-button--small{min-height:var(--ca-control-height-sm);padding:0 var(--ca-space-2);font-size:var(--ca-font-size-sm);border-radius:var(--ca-radius-sm)}.ca-button--large{min-height:var(--ca-control-height-lg);padding:0 var(--ca-space-4);font-size:var(--ca-font-size-lg)}.ca-button--block{width:100%;display:flex}.ca-button--icon-only{width:var(--ca-control-height-md);padding:0}.ca-button--small.ca-button--icon-only{width:var(--ca-control-height-sm)}.ca-button--large.ca-button--icon-only{width:var(--ca-control-height-lg)}.ca-button--solid{color:var(--ca-text-inverse);background:var(--ca-color-neutral-500);border-color:#0000}.ca-button--solid.ca-button--primary{background:var(--ca-color-primary);color:var(--ca-color-primary-contrast)}.ca-button--solid.ca-button--primary:hover:not(:disabled){background:var(--ca-color-primary-hover)}.ca-button--solid.ca-button--success{background:var(--ca-color-success)}.ca-button--solid.ca-button--warning{background:var(--ca-color-warning)}.ca-button--solid.ca-button--danger{background:var(--ca-color-danger)}.ca-button--solid.ca-button--info{background:var(--ca-color-info)}.ca-button--solid.ca-button--neutral:hover:not(:disabled){background:var(--ca-color-neutral-700)}.ca-button--solid:hover:not(:disabled){filter:brightness(1.04)}.ca-button--outline.ca-button--primary{border-color:var(--ca-color-primary);color:var(--ca-color-primary-text);background:var(--ca-color-primary-soft)}.ca-button--outline.ca-button--success{border-color:var(--ca-color-success);color:var(--ca-color-success-text);background:var(--ca-color-success-soft)}.ca-button--outline.ca-button--warning{border-color:var(--ca-color-warning);color:var(--ca-color-warning-text);background:var(--ca-color-warning-soft)}.ca-button--outline.ca-button--danger{border-color:var(--ca-color-danger);color:var(--ca-color-danger-text);background:var(--ca-color-danger-soft)}.ca-button--outline.ca-button--info{border-color:var(--ca-color-info);color:var(--ca-color-info-text);background:var(--ca-color-info-soft)}.ca-button--text{padding:0 var(--ca-space-1);background:0 0;border-color:#0000}.ca-button--text.ca-button--primary{color:var(--ca-color-primary-text)}.ca-button--text.ca-button--danger{color:var(--ca-color-danger-text)}.ca-button--text:hover:not(:disabled){background:var(--ca-color-neutral-soft)}.ca-button__icon{align-items:center;display:inline-flex}.ca-button__spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;animation:.7s linear infinite ca-button-spin}@keyframes ca-button-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ca-button__spinner{animation-duration:2s}}.ca-checkbox{align-items:center;gap:var(--ca-space-2);cursor:pointer;font-size:var(--ca-font-size-md);color:var(--ca-text-regular);display:inline-flex}.ca-checkbox--disabled{cursor:not-allowed;color:var(--ca-text-placeholder)}.ca-checkbox__input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.ca-checkbox__box{border:1px solid var(--ca-border-color-strong);border-radius:var(--ca-radius-sm);background:var(--ca-surface-card);color:#0000;flex-shrink:0;place-items:center;width:16px;height:16px;transition:background-color .18s,border-color .18s,color .18s;display:grid}.ca-checkbox:hover:not(.ca-checkbox--disabled) .ca-checkbox__box{border-color:var(--ca-color-primary)}.ca-checkbox--checked .ca-checkbox__box,.ca-checkbox--indeterminate .ca-checkbox__box{border-color:var(--ca-color-primary);background:var(--ca-color-primary);color:var(--ca-color-primary-contrast)}.ca-checkbox--disabled .ca-checkbox__box{background:var(--ca-surface-sunken)}.ca-checkbox__input:focus-visible+.ca-checkbox__box{outline:2px solid var(--ca-color-primary);outline-offset:2px}.ca-checkbox__label{line-height:1.4}.ca-icon{flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.ca-input{align-items:center;gap:var(--ca-space-2);width:100%;min-height:var(--ca-control-height-md);padding:0 var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-secondary);transition:border-color .18s,box-shadow .18s,background-color .18s;display:inline-flex}.ca-input--focused{border-color:var(--ca-color-primary);box-shadow:0 0 0 3px var(--ca-color-primary-soft)}.ca-input--invalid{border-color:var(--ca-color-danger)}.ca-input--invalid.ca-input--focused{box-shadow:0 0 0 3px var(--ca-color-danger-soft)}.ca-input--disabled{background:var(--ca-surface-sunken);color:var(--ca-text-placeholder);cursor:not-allowed}.ca-input--small{min-height:var(--ca-control-height-sm);padding:0 var(--ca-space-2)}.ca-input--large{min-height:var(--ca-control-height-lg);padding:0 var(--ca-space-4)}.ca-input__inner{min-width:0;color:var(--ca-text-primary);font-family:inherit;font-size:var(--ca-font-size-md);background:0 0;border:0;outline:none;flex:1}.ca-input--large .ca-input__inner{font-size:var(--ca-font-size-lg)}.ca-input__inner::placeholder{color:var(--ca-text-placeholder)}.ca-input__inner:disabled{cursor:not-allowed}.ca-input__affix{flex-shrink:0;align-items:center;display:inline-flex}.ca-input__clear{color:var(--ca-text-placeholder);background:0 0;border:0;flex-shrink:0;align-items:center;padding:0;display:inline-flex}.ca-input__clear:hover{color:var(--ca-text-secondary)}.ca-progress{align-items:center;gap:var(--ca-space-2);width:100%;display:flex}.ca-progress--circle{place-items:center;width:auto;display:inline-grid;position:relative}.ca-progress--primary{color:var(--ca-color-primary-text)}.ca-progress--success{color:var(--ca-color-success-text)}.ca-progress--warning{color:var(--ca-color-warning-text)}.ca-progress--danger{color:var(--ca-color-danger-text)}.ca-progress__track{border-radius:var(--ca-radius-full);background:var(--ca-color-neutral-soft);flex:1;height:6px;overflow:hidden}.ca-progress__bar{border-radius:inherit;background:currentColor;height:100%;transition:width .3s;display:block}.ca-progress__text{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);font-variant-numeric:tabular-nums;flex-shrink:0}.ca-progress--circle .ca-progress__text{font-size:var(--ca-font-size-sm);color:var(--ca-text-primary);font-weight:500;position:absolute}.ca-progress circle{transition:stroke-dashoffset .3s}@media (prefers-reduced-motion:reduce){.ca-progress__bar,.ca-progress circle{transition:none}}.ca-select{width:100%;display:block;position:relative}.ca-select__trigger{align-items:center;gap:var(--ca-space-2);width:100%;min-height:var(--ca-control-height-md);padding:0 var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-primary);font-family:inherit;font-size:var(--ca-font-size-md);text-align:left;display:flex}.ca-select--small .ca-select__trigger{min-height:var(--ca-control-height-sm);padding:0 var(--ca-space-2);font-size:var(--ca-font-size-sm)}.ca-select--large .ca-select__trigger{min-height:var(--ca-control-height-lg);padding:0 var(--ca-space-4);font-size:var(--ca-font-size-lg)}.ca-select--open .ca-select__trigger{border-color:var(--ca-color-primary);box-shadow:0 0 0 3px var(--ca-color-primary-soft)}.ca-select--invalid .ca-select__trigger{border-color:var(--ca-color-danger)}.ca-select--disabled .ca-select__trigger{background:var(--ca-surface-sunken);color:var(--ca-text-placeholder)}.ca-select__value{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ca-select__placeholder{color:var(--ca-text-placeholder);flex:1}.ca-select__clear{color:var(--ca-text-placeholder);display:inline-flex}.ca-select__clear:hover{color:var(--ca-text-secondary)}.ca-select__arrow{color:var(--ca-text-secondary);transition:transform .18s}.ca-select--open .ca-select__arrow{transform:rotate(180deg)}.ca-select__panel{z-index:var(--ca-z-index-dropdown);max-height:260px;padding:var(--ca-space-1);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);box-shadow:var(--ca-shadow-popup);position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ca-select__option{padding:7px var(--ca-space-3);border-radius:var(--ca-radius-sm);color:var(--ca-text-regular);font-size:var(--ca-font-size-md);cursor:pointer}.ca-select__option:hover{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text)}.ca-select__option[aria-selected=true]{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text);font-weight:500}.ca-select__option--disabled{color:var(--ca-text-placeholder);cursor:not-allowed}.ca-select__option--disabled:hover{color:var(--ca-text-placeholder);background:0 0}.ca-select__empty{padding:var(--ca-space-3);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-sm);text-align:center}.ca-slogan{line-height:inherit;display:inline}.ca-switch{align-items:center;gap:var(--ca-space-2);color:var(--ca-text-secondary);font-family:inherit;font-size:var(--ca-font-size-sm);background:0 0;border:0;padding:0;display:inline-flex}.ca-switch--disabled{opacity:.55;cursor:not-allowed}.ca-switch__track{border-radius:var(--ca-radius-full);background:var(--ca-color-neutral-300);width:34px;height:19px;transition:background-color .2s;display:block;position:relative}.ca-switch__thumb{background:var(--ca-color-neutral-0);width:15px;height:15px;box-shadow:var(--ca-shadow-sm);border-radius:50%;transition:transform .2s;position:absolute;top:2px;left:2px}.ca-switch--on .ca-switch__track{background:var(--ca-color-primary)}.ca-switch--on .ca-switch__thumb{transform:translate(15px)}.ca-switch:focus-visible .ca-switch__track{outline:2px solid var(--ca-color-primary);outline-offset:2px}@media (prefers-reduced-motion:reduce){.ca-switch__track,.ca-switch__thumb{transition:none}}.ca-tag{align-items:center;gap:var(--ca-space-1);padding:0 var(--ca-space-2);border-radius:var(--ca-radius-sm);min-height:22px;font-size:var(--ca-font-size-sm);white-space:nowrap;border:1px solid #0000;line-height:1;display:inline-flex}.ca-tag--small{min-height:18px;padding:0 var(--ca-space-1);font-size:var(--ca-font-size-xs)}.ca-tag__dot{background:currentColor;border-radius:50%;width:5px;height:5px}.ca-tag__close{color:currentColor;opacity:.7;background:0 0;border:0;align-items:center;margin-right:-3px;padding:0;display:inline-flex}.ca-tag__close:hover{opacity:1}.ca-tag--soft.ca-tag--primary{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text)}.ca-tag--soft.ca-tag--success{background:var(--ca-color-success-soft);color:var(--ca-color-success-text)}.ca-tag--soft.ca-tag--warning{background:var(--ca-color-warning-soft);color:var(--ca-color-warning-text)}.ca-tag--soft.ca-tag--danger{background:var(--ca-color-danger-soft);color:var(--ca-color-danger-text)}.ca-tag--soft.ca-tag--info{background:var(--ca-color-info-soft);color:var(--ca-color-info-text)}.ca-tag--soft.ca-tag--neutral{background:var(--ca-color-neutral-soft);color:var(--ca-color-neutral-text)}.ca-tag--solid{color:var(--ca-text-inverse)}.ca-tag--solid.ca-tag--primary{background:var(--ca-color-primary);color:var(--ca-color-primary-contrast)}.ca-tag--solid.ca-tag--success{background:var(--ca-color-success)}.ca-tag--solid.ca-tag--warning{background:var(--ca-color-warning)}.ca-tag--solid.ca-tag--danger{background:var(--ca-color-danger)}.ca-tag--solid.ca-tag--info{background:var(--ca-color-info)}.ca-tag--solid.ca-tag--neutral{background:var(--ca-color-neutral-500)}.ca-tag--outline{background:0 0}.ca-tag--outline.ca-tag--primary{border-color:var(--ca-color-primary);color:var(--ca-color-primary-text)}.ca-tag--outline.ca-tag--success{border-color:var(--ca-color-success);color:var(--ca-color-success-text)}.ca-tag--outline.ca-tag--warning{border-color:var(--ca-color-warning);color:var(--ca-color-warning-text)}.ca-tag--outline.ca-tag--danger{border-color:var(--ca-color-danger);color:var(--ca-color-danger-text)}.ca-tag--outline.ca-tag--info{border-color:var(--ca-color-info);color:var(--ca-color-info-text)}.ca-tag--outline.ca-tag--neutral{border-color:var(--ca-border-color-strong);color:var(--ca-color-neutral-text)}.ca-textarea{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);transition:border-color .18s,box-shadow .18s;display:block;position:relative}.ca-textarea--focused{border-color:var(--ca-color-primary);box-shadow:0 0 0 3px var(--ca-color-primary-soft)}.ca-textarea--invalid{border-color:var(--ca-color-danger)}.ca-textarea--disabled{background:var(--ca-surface-sunken)}.ca-textarea__inner{width:100%;padding:var(--ca-space-2) var(--ca-space-3);border-radius:inherit;color:var(--ca-text-primary);font-family:inherit;font-size:var(--ca-font-size-md);line-height:var(--ca-line-height);resize:vertical;background:0 0;border:0;outline:none;display:block}.ca-textarea__inner::placeholder{color:var(--ca-text-placeholder)}.ca-textarea__count{right:var(--ca-space-2);bottom:var(--ca-space-1);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);font-variant-numeric:tabular-nums;position:absolute}.ca-breadcrumb{justify-content:space-between;align-items:center;gap:var(--ca-space-3);display:flex}.ca-breadcrumb__list{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.ca-breadcrumb__item{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);align-items:center;gap:4px;display:inline-flex}.ca-breadcrumb__link{color:var(--ca-text-secondary);font-family:inherit;font-size:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.ca-breadcrumb__link:hover{color:var(--ca-color-primary-text)}.ca-breadcrumb__current{color:var(--ca-text-regular);font-weight:500}.ca-breadcrumb__separator{color:var(--ca-color-neutral-300)}.ca-breadcrumb__extra{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);flex-shrink:0}.ca-class-tree{gap:var(--ca-space-2);display:grid}.ca-class-tree__search{min-height:var(--ca-control-height-md);padding:0 var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-primary);font-family:inherit;font-size:var(--ca-font-size-md);outline:none}.ca-class-tree__search::placeholder{color:var(--ca-text-placeholder)}.ca-class-tree__search:focus{border-color:var(--ca-color-primary);box-shadow:0 0 0 3px var(--ca-color-primary-soft)}.ca-class-tree__list{gap:2px;max-height:360px;display:grid;overflow-y:auto}.ca-class-tree__node button{align-items:center;gap:var(--ca-space-2);width:100%;padding:7px var(--ca-space-2);border-radius:var(--ca-radius-md);color:var(--ca-text-regular);font-family:inherit;font-size:var(--ca-font-size-md);text-align:left;background:0 0;border:0;display:flex}.ca-class-tree__node button:hover{background:var(--ca-surface-sunken)}.ca-class-tree__node--level-1 button{padding-left:var(--ca-space-5)}.ca-class-tree__node--selected button{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text);font-weight:500}.ca-class-tree__node--disabled button{color:var(--ca-text-placeholder);cursor:not-allowed}.ca-class-tree__arrow{color:var(--ca-text-placeholder);transition:transform .16s}.ca-class-tree__arrow--open{transform:rotate(90deg)}.ca-class-tree__icon{color:var(--ca-color-primary-text)}.ca-class-tree__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ca-class-tree__empty{padding:var(--ca-space-4);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-sm);text-align:center}@media (prefers-reduced-motion:reduce){.ca-class-tree__arrow{transition:none}}.ca-copyright{font-size:inherit;line-height:1.8}.ca-drawer{z-index:var(--ca-z-index-modal);background:var(--ca-overlay-color);position:fixed;inset:0}.ca-drawer__panel{background:var(--ca-surface-card);max-width:100vw;max-height:100dvh;box-shadow:var(--ca-shadow-lg);flex-direction:column;display:flex;position:absolute}.ca-drawer__panel.right{top:0;bottom:0;right:0}.ca-drawer__panel.left{top:0;bottom:0;left:0}.ca-drawer__panel.bottom{border-radius:var(--ca-radius-xl) var(--ca-radius-xl) 0 0;bottom:0;left:0;right:0}.ca-drawer__header{justify-content:space-between;align-items:center;gap:var(--ca-space-4);padding:var(--ca-space-4) var(--ca-space-5);border-bottom:1px solid var(--ca-border-color);display:flex}.ca-drawer__title{color:var(--ca-text-primary);font-size:var(--ca-font-size-lg);font-weight:600}.ca-drawer__close{color:var(--ca-text-placeholder);background:0 0;border:0;padding:0}.ca-drawer__close:hover{color:var(--ca-text-regular)}.ca-drawer__body{padding:var(--ca-space-5);color:var(--ca-text-regular);font-size:var(--ca-font-size-md);flex:1;overflow-y:auto}.ca-drawer__footer{justify-content:flex-end;gap:var(--ca-space-3);padding:var(--ca-space-4) var(--ca-space-5);border-top:1px solid var(--ca-border-color);display:flex}.ca-drawer-enter-active,.ca-drawer-leave-active{transition:opacity .2s}.ca-drawer-enter-active .ca-drawer__panel,.ca-drawer-leave-active .ca-drawer__panel{transition:transform .24s}.ca-drawer-enter-from,.ca-drawer-leave-to{opacity:0}.ca-drawer-enter-from .ca-drawer__panel.right,.ca-drawer-leave-to .ca-drawer__panel.right{transform:translate(100%)}.ca-drawer-enter-from .ca-drawer__panel.left,.ca-drawer-leave-to .ca-drawer__panel.left{transform:translate(-100%)}.ca-drawer-enter-from .ca-drawer__panel.bottom,.ca-drawer-leave-to .ca-drawer__panel.bottom{transform:translateY(100%)}@media (prefers-reduced-motion:reduce){.ca-drawer-enter-active,.ca-drawer-leave-active,.ca-drawer-enter-active .ca-drawer__panel,.ca-drawer-leave-active .ca-drawer__panel{transition:none}}.ca-empty{text-align:center;justify-items:center;gap:6px;padding:32px 16px;display:grid}.ca-empty__icon{background:var(--ca-surface-sunken);width:58px;height:58px;color:var(--ca-color-neutral-300);border-radius:50%;place-items:center;display:grid}.ca-empty__title{color:var(--ca-text-regular);font-size:var(--ca-font-size-md)}.ca-empty__desc{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs)}.ca-empty__action{margin-top:var(--ca-space-2)}.ca-modal{z-index:var(--ca-z-index-modal);padding:var(--ca-space-5);background:var(--ca-overlay-color);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;display:grid;position:fixed;inset:0}.ca-modal__panel{border-radius:var(--ca-radius-xl);background:var(--ca-surface-card);width:min(520px,100%);max-height:calc(100dvh - 64px);box-shadow:var(--ca-shadow-lg);flex-direction:column;display:flex;overflow:hidden}.ca-modal__header{justify-content:space-between;align-items:flex-start;gap:var(--ca-space-4);padding:var(--ca-space-5) var(--ca-space-5) 0;display:flex}.ca-modal__title{color:var(--ca-text-primary);font-size:var(--ca-font-size-lg);font-weight:600}.ca-modal__close{color:var(--ca-text-placeholder);background:0 0;border:0;padding:0}.ca-modal__close:hover{color:var(--ca-text-regular)}.ca-modal__body{padding:var(--ca-space-4) var(--ca-space-5);color:var(--ca-text-regular);font-size:var(--ca-font-size-md);line-height:var(--ca-line-height);flex:1;overflow-y:auto}.ca-modal__footer{justify-content:flex-end;gap:var(--ca-space-3);padding:var(--ca-space-4) var(--ca-space-5) var(--ca-space-5);display:flex}.ca-modal__button{min-height:var(--ca-control-height-md);padding:0 var(--ca-space-4);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-regular);font-family:inherit;font-size:var(--ca-font-size-md)}.ca-modal__button--primary{background:var(--ca-color-primary);color:var(--ca-color-primary-contrast);border-color:#0000}.ca-modal__button--primary:disabled{opacity:.6}.ca-modal-enter-active,.ca-modal-leave-active{transition:opacity .2s}.ca-modal-enter-active .ca-modal__panel,.ca-modal-leave-active .ca-modal__panel{transition:transform .2s}.ca-modal-enter-from,.ca-modal-leave-to{opacity:0}.ca-modal-enter-from .ca-modal__panel,.ca-modal-leave-to .ca-modal__panel{transform:translateY(10px)scale(.98)}@media (prefers-reduced-motion:reduce){.ca-modal-enter-active,.ca-modal-leave-active,.ca-modal-enter-active .ca-modal__panel,.ca-modal-leave-active .ca-modal__panel{transition:none}}.ca-page-header{justify-content:space-between;align-items:flex-start;gap:var(--ca-space-4);padding-bottom:var(--ca-space-4);display:flex}.ca-page-header--bordered{border-bottom:1px solid var(--ca-border-color)}.ca-page-header__main{align-items:center;gap:var(--ca-space-3);min-width:0;display:flex}.ca-page-header__back{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);width:28px;height:28px;color:var(--ca-text-secondary);place-items:center;display:grid}.ca-page-header__back:hover{border-color:var(--ca-color-primary);color:var(--ca-color-primary-text)}.ca-page-header__text{min-width:0}.ca-page-header__title{color:var(--ca-text-primary);font-size:var(--ca-font-size-xl);font-weight:600;line-height:1.3}.ca-page-header__desc{color:var(--ca-text-secondary);font-size:var(--ca-font-size-sm);margin-top:2px}.ca-page-header__actions{align-items:center;gap:var(--ca-space-2);flex-shrink:0;display:flex}.ca-pagination{align-items:center;gap:var(--ca-space-1);flex-wrap:wrap;display:flex}.ca-pagination__total{margin-right:var(--ca-space-2);color:var(--ca-text-secondary);font-size:var(--ca-font-size-sm)}.ca-pagination__item,.ca-pagination__arrow{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-sm);background:var(--ca-surface-card);min-width:28px;height:28px;color:var(--ca-text-regular);font-family:inherit;font-size:var(--ca-font-size-sm);font-variant-numeric:tabular-nums;place-items:center;padding:0 6px;display:inline-grid}.ca-pagination__item:hover:not(:disabled),.ca-pagination__arrow:hover:not(:disabled){border-color:var(--ca-color-primary);color:var(--ca-color-primary-text)}.ca-pagination__item--active{border-color:var(--ca-color-primary);background:var(--ca-color-primary);color:var(--ca-color-primary-contrast);font-weight:500}.ca-pagination__item--active:hover:not(:disabled){color:var(--ca-color-primary-contrast)}.ca-pagination__item:disabled,.ca-pagination__arrow:disabled{color:var(--ca-text-placeholder);cursor:not-allowed}.ca-pagination__ellipsis{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-sm);padding:0 4px}.ca-search-form{gap:var(--ca-space-3);padding:var(--ca-space-4);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-lg);background:var(--ca-surface-card);display:grid}.ca-search-form__fields{gap:var(--ca-space-3);display:grid}.ca-search-form__fields--collapsed{overflow:hidden}.ca-search-form__actions{justify-content:flex-end;align-items:center;gap:var(--ca-space-2);display:flex}.ca-search-form__button{min-height:var(--ca-control-height-md);padding:0 var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-regular);font-family:inherit;font-size:var(--ca-font-size-sm);align-items:center;gap:5px;display:inline-flex}.ca-search-form__button:hover:not(:disabled){border-color:var(--ca-color-primary);color:var(--ca-color-primary-text)}.ca-search-form__button--primary{background:var(--ca-color-primary);color:var(--ca-color-primary-contrast);border-color:#0000}.ca-search-form__button--primary:hover:not(:disabled){background:var(--ca-color-primary-hover);color:var(--ca-color-primary-contrast)}.ca-search-form__button:disabled{opacity:.6;cursor:not-allowed}.ca-search-form__toggle{color:var(--ca-text-secondary);font-family:inherit;font-size:var(--ca-font-size-sm);background:0 0;border:0;align-items:center;gap:3px;padding:0;display:inline-flex}.ca-search-form__toggle:hover{color:var(--ca-color-primary-text)}.ca-search-form__arrow{transition:transform .16s}.ca-search-form__arrow--open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.ca-search-form__arrow{transition:none}}.ca-side-menu{--ca-side-menu-icon:16px;--ca-side-menu-font-size:18px;--ca-side-menu-sub-font-size:17px;--ca-side-menu-deep-font-size:16px;--ca-side-menu-item-height:50px;--ca-side-menu-sub-item-height:48px;--ca-side-menu-deep-item-height:46px;gap:2px;display:grid}.ca-side-menu__item{align-items:center;gap:var(--ca-space-2);min-height:var(--ca-side-menu-item-height);padding-right:var(--ca-space-4);color:var(--ca-text-menu);font-family:inherit;font-size:var(--ca-side-menu-font-size);text-align:left;background:0 0;border:0;border-radius:0;transition:background-color .18s,color .18s;display:flex;position:relative}.ca-side-menu__item:hover:not(:disabled){background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text)}.ca-side-menu__icon{width:var(--ca-side-menu-icon);height:var(--ca-side-menu-icon);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.ca-side-menu__icon[data-size="14"]{width:14px;height:14px}.ca-side-menu__tail{align-items:center;gap:var(--ca-space-1);flex-shrink:0;margin-left:auto;display:inline-flex}.ca-side-menu__arrow{color:var(--ca-text-placeholder);flex-shrink:0;justify-content:center;align-items:center;transition:transform .18s;display:inline-flex}.ca-side-menu__item:where([data-level="1"]){color:var(--ca-text-menu-sub);font-size:var(--ca-side-menu-sub-font-size);min-height:var(--ca-side-menu-sub-item-height)}.ca-side-menu__item:where(:not([data-level="0"]):not([data-level="1"])){color:var(--ca-text-menu-deep);font-size:var(--ca-side-menu-deep-font-size);min-height:var(--ca-side-menu-deep-item-height)}.ca-side-menu__item--branch{color:var(--ca-color-primary-text)}.ca-side-menu__item--active{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text);font-weight:600}.ca-side-menu__item--disabled{color:var(--ca-text-placeholder);cursor:not-allowed}.ca-side-menu__item--active:after{content:"";background:currentColor;width:2px;position:absolute;top:9px;bottom:9px;left:0}.ca-side-menu__item--open .ca-side-menu__arrow{transform:rotate(180deg)}.ca-side-menu__item--active .ca-side-menu__arrow,.ca-side-menu__item--branch .ca-side-menu__arrow{color:currentColor}.ca-side-menu__label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ca-side-menu__badge{border-radius:var(--ca-radius-full);background:var(--ca-color-danger-soft);min-width:18px;color:var(--ca-color-danger-text);font-size:var(--ca-font-size-xs);text-align:center;padding:2px;font-style:normal}@media (prefers-reduced-motion:reduce){.ca-side-menu__item,.ca-side-menu__arrow{transition:none}}.ca-skeleton{gap:var(--ca-space-2);width:100%;display:grid}.ca-skeleton--avatar{grid-template-columns:40px 1fr;align-items:center}.ca-skeleton--card{gap:var(--ca-space-3)}.ca-skeleton span{border-radius:var(--ca-radius-sm);background:linear-gradient(90deg, var(--ca-skeleton-base) 25%, var(--ca-skeleton-highlight) 37%, var(--ca-skeleton-base) 63%);background-size:400% 100%;height:12px;animation:1.4s infinite ca-skeleton-shine;display:block}.ca-skeleton__avatar{border-radius:50%;width:40px;height:40px}.ca-skeleton__block{border-radius:var(--ca-radius-lg);height:96px}.ca-skeleton__lines{gap:var(--ca-space-2);display:grid}@keyframes ca-skeleton-shine{0%{background-position:100%}to{background-position:0}}@media (prefers-reduced-motion:reduce){.ca-skeleton span{animation:none}}.ca-statistic{gap:4px;display:grid}.ca-statistic--card{padding:var(--ca-space-4);border-radius:var(--ca-radius-lg);background:var(--ca-surface-card);box-shadow:var(--ca-shadow-md)}.ca-statistic__label{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs)}.ca-statistic__value{color:var(--ca-text-primary);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600;line-height:1.2}.ca-statistic__value small{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);margin-left:4px;font-weight:400}.ca-statistic__hint{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs)}.ca-statistic--primary .ca-statistic__value{color:var(--ca-color-primary-text)}.ca-statistic--success .ca-statistic__value{color:var(--ca-color-success-text)}.ca-statistic--warning .ca-statistic__value{color:var(--ca-color-warning-text)}.ca-statistic--danger .ca-statistic__value{color:var(--ca-color-danger-text)}.ca-statistic--info .ca-statistic__value{color:var(--ca-color-info-text)}.ca-table{width:100%;display:block}.ca-table__scroll{overflow-x:auto}.ca-table table{border-collapse:separate;border-spacing:0;width:100%;min-width:520px;font-size:var(--ca-font-size-sm)}.ca-table th{padding:var(--ca-space-2) var(--ca-space-3);background:var(--ca-surface-sunken);color:var(--ca-text-secondary);text-align:left;white-space:nowrap;border-bottom:1px solid var(--ca-border-color);font-weight:500}.ca-table th:first-child{border-top-left-radius:var(--ca-radius-md)}.ca-table th:last-child{border-top-right-radius:var(--ca-radius-md)}.ca-table th button{color:inherit;font-family:inherit;font-size:inherit;background:0 0;border:0;align-items:center;gap:4px;padding:0;display:inline-flex}.ca-table th button:hover{color:var(--ca-color-primary-text)}.ca-table__sort-idle{color:var(--ca-color-neutral-300)}.ca-table td{padding:var(--ca-space-3);color:var(--ca-text-regular);border-bottom:1px solid var(--ca-border-color);vertical-align:middle}.ca-table--compact th,.ca-table--compact td{padding:var(--ca-space-1) var(--ca-space-2)}.ca-table--stripe tbody tr:nth-child(2n){background:var(--ca-surface-sunken)}.ca-table__row{transition:background-color .16s}.ca-table__row:hover{background:var(--ca-color-primary-soft)}.ca-table__row{cursor:pointer}.ca-table--left{text-align:left}.ca-table--center{text-align:center}.ca-table--right{text-align:right;font-variant-numeric:tabular-nums}.ca-table__state{padding:var(--ca-space-6);color:var(--ca-text-secondary);text-align:center}.ca-table__spinner{vertical-align:-2px;border:2px solid;border-right-color:#0000;border-radius:50%;width:12px;height:12px;margin-right:6px;animation:.7s linear infinite ca-table-spin;display:inline-block}.ca-table__empty{padding:var(--ca-space-2) 0}@keyframes ca-table-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.ca-table__spinner{animation-duration:2s}}.ca-toast-container{z-index:var(--ca-z-index-message);top:var(--ca-space-5);gap:var(--ca-space-2);pointer-events:none;width:min(360px,100vw - 32px);display:grid;position:fixed;left:50%;transform:translate(-50%)}.ca-toast{align-items:flex-start;gap:var(--ca-space-2);padding:var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-lg);background:var(--ca-surface-card);box-shadow:var(--ca-shadow-popup);pointer-events:auto;display:flex}.ca-toast--primary{color:var(--ca-color-primary-text)}.ca-toast--success{color:var(--ca-color-success-text)}.ca-toast--warning{color:var(--ca-color-warning-text)}.ca-toast--danger{color:var(--ca-color-danger-text)}.ca-toast__body{flex:1;min-width:0}.ca-toast__body b{color:var(--ca-text-primary);font-size:var(--ca-font-size-md);font-weight:500;display:block}.ca-toast__body p{color:var(--ca-text-secondary);font-size:var(--ca-font-size-sm);line-height:var(--ca-line-height);margin-top:2px}.ca-toast__close{color:var(--ca-text-placeholder);background:0 0;border:0;flex-shrink:0;padding:0}.ca-toast__close:hover{color:var(--ca-text-secondary)}.ca-toast-move-enter-active,.ca-toast-move-leave-active{transition:opacity .2s,transform .2s}.ca-toast-move-enter-from,.ca-toast-move-leave-to{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){.ca-toast-move-enter-active,.ca-toast-move-leave-active{transition:none}}.ca-agenda{padding:var(--ca-space-4) var(--ca-space-4) var(--ca-space-3);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-lg);background:var(--ca-surface-card);display:grid}.ca-agenda__head{justify-content:space-between;align-items:center;gap:var(--ca-space-2);display:flex}.ca-agenda__heading{color:var(--ca-text-primary);font-size:var(--ca-font-size-md);font-weight:600}.ca-agenda__link{color:var(--ca-color-primary-text);font-family:inherit;font-size:var(--ca-font-size-xs);background:0 0;border:0;padding:0}.ca-agenda__link:hover{color:var(--ca-color-primary-hover)}.ca-agenda__month{margin:var(--ca-space-3) 0 var(--ca-space-2);color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);justify-content:space-between;align-items:center;display:flex}.ca-agenda__count{color:var(--ca-text-placeholder)}.ca-agenda__strip{grid-template-columns:22px repeat(7,1fr) 22px;align-items:center;gap:3px;display:grid}.ca-agenda__arrow{color:var(--ca-text-placeholder);border-radius:var(--ca-radius-sm);background:0 0;border:0;place-items:center;padding:0;display:grid}.ca-agenda__arrow:hover{color:var(--ca-color-primary-text);background:var(--ca-color-primary-soft)}.ca-agenda__date{border-radius:var(--ca-radius-sm);color:var(--ca-text-placeholder);background:0 0;border:0;justify-items:center;gap:3px;padding:5px 0;font-family:inherit;display:grid}.ca-agenda__date small{font-size:var(--ca-font-size-xs)}.ca-agenda__date>b{color:var(--ca-text-regular);font-size:var(--ca-font-size-sm);font-weight:500}.ca-agenda__date--has-event:not(.ca-agenda__date--selected)>b{color:var(--ca-color-primary-text)}.ca-agenda__date:hover{background:var(--ca-color-primary-soft)}.ca-agenda__date--selected{background:var(--ca-color-primary);color:var(--ca-color-primary-contrast)}.ca-agenda__date--selected>b{color:var(--ca-color-primary-contrast)}.ca-agenda__list{gap:var(--ca-space-2);margin-top:var(--ca-space-3);min-height:96px;display:grid}.ca-agenda__item{grid-template-columns:12px 1fr;gap:9px;display:grid}.ca-agenda__dot{background:var(--ca-color-primary);border-radius:50%;width:6px;height:6px;margin:6px 0 0 3px}.ca-agenda__item--done .ca-agenda__dot{background:var(--ca-color-neutral-300)}.ca-agenda__card{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-sunken);padding:7px 9px}.ca-agenda__card-head{justify-content:space-between;align-items:center;gap:6px;display:flex}.ca-agenda__time{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);font-variant-numeric:tabular-nums}.ca-agenda__detail{color:var(--ca-color-primary-text);font-family:inherit;font-size:var(--ca-font-size-xs);background:0 0;border:0;padding:0}.ca-agenda__card p{color:var(--ca-text-regular);font-size:var(--ca-font-size-sm);line-height:var(--ca-line-height);margin-top:3px}.ca-agenda__location{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);margin-top:3px;display:block}.ca-agenda__item--done .ca-agenda__card p{color:var(--ca-text-placeholder)}.ca-agenda__empty{place-items:center;gap:var(--ca-space-1);padding:var(--ca-space-4) 0;color:var(--ca-text-placeholder);text-align:center;display:grid}.ca-agenda__empty p{color:var(--ca-text-secondary);font-size:var(--ca-font-size-sm)}.ca-agenda__empty span{font-size:var(--ca-font-size-xs)}.ca-agenda__footer{margin-top:var(--ca-space-3);padding-top:var(--ca-space-2);border-top:1px dashed var(--ca-border-color);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);align-items:center;gap:6px;display:flex}.ca-agenda__footer i{background:var(--ca-color-neutral-300);border-radius:50%;width:5px;height:5px}.ca-student-picker{gap:var(--ca-space-3);display:grid}.ca-student-picker__search{align-items:center;gap:var(--ca-space-2);padding:0 var(--ca-space-3);min-height:var(--ca-control-height-md);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-md);background:var(--ca-surface-card);color:var(--ca-text-placeholder);display:flex}.ca-student-picker__search:focus-within{border-color:var(--ca-color-primary);box-shadow:0 0 0 3px var(--ca-color-primary-soft)}.ca-student-picker__input{min-width:0;color:var(--ca-text-primary);font-family:inherit;font-size:var(--ca-font-size-md);background:0 0;border:0;outline:none;flex:1}.ca-student-picker__input::placeholder{color:var(--ca-text-placeholder)}.ca-student-picker__count{color:var(--ca-color-primary-text);font-size:var(--ca-font-size-xs);flex-shrink:0}.ca-student-picker__list{gap:2px;max-height:320px;display:grid;overflow-y:auto}.ca-student-picker__item{align-items:center;gap:var(--ca-space-2);width:100%;padding:var(--ca-space-2);border-radius:var(--ca-radius-md);text-align:left;background:0 0;border:0;font-family:inherit;display:flex}.ca-student-picker__item:hover{background:var(--ca-surface-sunken)}.ca-student-picker__item--selected{background:var(--ca-color-primary-soft)}.ca-student-picker__info{gap:2px;min-width:0;display:grid}.ca-student-picker__info b{color:var(--ca-text-primary);font-size:var(--ca-font-size-md);font-weight:500}.ca-student-picker__info small{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs)}.ca-student-picker__loading{padding:var(--ca-space-5);color:var(--ca-text-secondary);font-size:var(--ca-font-size-sm);text-align:center}.ca-timetable{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-lg);background:var(--ca-surface-card);flex-direction:column;display:flex;overflow:hidden}.ca-timetable__toolbar{justify-content:space-between;align-items:center;gap:var(--ca-space-3);padding:var(--ca-space-3) var(--ca-space-4);border-bottom:1px solid var(--ca-border-color);display:flex}.ca-timetable__tabs{gap:var(--ca-space-4);display:flex}.ca-timetable__tab{color:var(--ca-text-secondary);font-family:inherit;font-size:var(--ca-font-size-sm);background:0 0;border:0;padding:0 0 7px;position:relative}.ca-timetable__tab--active{color:var(--ca-text-primary);font-weight:600}.ca-timetable__tab--active:after{content:"";background:var(--ca-color-primary);border-radius:2px;height:2px;position:absolute;bottom:0;left:0;right:0}.ca-timetable__week{align-items:center;gap:var(--ca-space-2);color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);display:flex}.ca-timetable__week b{color:var(--ca-text-primary);font-variant-numeric:tabular-nums;font-weight:600}.ca-timetable__nav{border-radius:var(--ca-radius-sm);width:21px;height:21px;color:var(--ca-text-placeholder);background:0 0;border:0;place-items:center;padding:0;display:grid}.ca-timetable__nav:hover{background:var(--ca-color-primary-soft);color:var(--ca-color-primary-text)}.ca-timetable__today{width:auto;padding:0 var(--ca-space-2);border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-sm);color:var(--ca-text-secondary);font-family:inherit;font-size:var(--ca-font-size-xs);background:0 0}.ca-timetable__today:hover{border-color:var(--ca-color-primary);color:var(--ca-color-primary-text)}.ca-timetable__meta{align-items:center;gap:var(--ca-space-2);padding:var(--ca-space-3) var(--ca-space-4) var(--ca-space-2);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);display:flex}.ca-timetable__meta>span{align-items:center;gap:var(--ca-space-2);display:flex}.ca-timetable__divider{background:var(--ca-border-color);width:1px;height:10px}.ca-timetable__select{border:1px solid var(--ca-border-color);border-radius:var(--ca-radius-sm);background:var(--ca-surface-card);color:var(--ca-text-secondary);font-family:inherit;font-size:var(--ca-font-size-xs);padding:3px 6px}.ca-timetable__count b{color:var(--ca-color-primary-text);font-weight:600}.ca-timetable__scroll{overflow-x:auto}.ca-timetable__table{border-collapse:collapse;table-layout:fixed;width:100%}.ca-timetable__table th,.ca-timetable__table td{padding:0}.ca-timetable__table thead th{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);text-align:center;padding:0 0 7px;font-weight:400}.ca-timetable__col--group{width:44px}.ca-timetable__col--period{width:76px}.ca-timetable__period-head{text-align:center;padding:0 0 7px}.ca-timetable__table thead th span{display:block}.ca-timetable__table thead th b{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);font-variant-numeric:tabular-nums;margin-top:2px;font-weight:500;display:block}.ca-timetable__day--today b{color:var(--ca-color-primary-text)}.ca-timetable__group{color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);writing-mode:vertical-rl;text-align:center;border-right:1px solid var(--ca-border-color);font-weight:400}.ca-timetable__period{text-align:left;padding:0 6px 0 4px}.ca-timetable__period span{color:var(--ca-text-secondary);font-size:var(--ca-font-size-xs);display:block}.ca-timetable__period small{color:var(--ca-text-placeholder);font-variant-numeric:tabular-nums;margin-top:1px;font-size:11px;display:block}.ca-timetable__table td{border-bottom:1px solid var(--ca-border-color);height:40px}.ca-timetable__row--afternoon td,.ca-timetable__row--afternoon th{border-top:6px solid #0000}.ca-timetable__cell--weekend{background:var(--ca-surface-sunken)}.ca-timetable__cell--today{background:var(--ca-color-primary-soft)}.ca-timetable__lesson{border-radius:var(--ca-radius-sm);text-align:center;border:0;gap:1px;width:100%;height:100%;padding:5px 3px;font-family:inherit;display:grid}.ca-timetable__lesson b{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.3;overflow:hidden}.ca-timetable__lesson span{opacity:.85;font-size:11px}.ca-timetable__lesson--blue{color:var(--ca-color-primary-text);background:var(--ca-color-primary-soft)}.ca-timetable__lesson--green{color:var(--ca-color-success-text);background:var(--ca-color-success-soft)}.ca-timetable__lesson--orange{color:var(--ca-color-warning-text);background:var(--ca-color-warning-soft)}.ca-timetable__lesson:hover{filter:brightness(.97)}.ca-timetable__footer{justify-content:space-between;align-items:center;gap:var(--ca-space-3);padding:var(--ca-space-2) var(--ca-space-4) var(--ca-space-3);color:var(--ca-text-placeholder);font-size:var(--ca-font-size-xs);display:flex}.ca-timetable__legend{width:7px;height:7px;margin-left:var(--ca-space-2);border-radius:2px;display:inline-block}.ca-timetable__legend--blue{background:var(--ca-color-primary)}.ca-timetable__legend--green{background:var(--ca-color-success)}.ca-timetable__legend--orange{background:var(--ca-color-warning)}.ca-loading[data-v-ea638a9d]{z-index:var(--ca-z-index-message,3000);pointer-events:none;background:0 0;place-items:center;display:grid;position:fixed;inset:0}.ca-loading__box[data-v-ea638a9d]{border-radius:var(--ca-radius-lg,12px);color:#fff;min-width:92px;box-shadow:var(--ca-shadow-lg,0 12px 30px #1e3d5f1f);background:#16283dcc;justify-items:center;gap:10px;padding:18px 20px;display:grid}.ca-loading__spinner[data-v-ea638a9d]{border:2px solid #ffffff5c;border-top-color:#fff;border-radius:50%;width:26px;height:26px;animation:.8s linear infinite ca-loading-spin-ea638a9d}.ca-loading__text[data-v-ea638a9d]{font-size:var(--ca-font-size-sm,12px);line-height:1}@keyframes ca-loading-spin-ea638a9d{to{transform:rotate(360deg)}}.ca-loading-fade-enter-active[data-v-ea638a9d],.ca-loading-fade-leave-active[data-v-ea638a9d]{transition:opacity .18s}.ca-loading-fade-enter-from[data-v-ea638a9d],.ca-loading-fade-leave-to[data-v-ea638a9d]{opacity:0}@media (prefers-reduced-motion:reduce){.ca-loading__spinner[data-v-ea638a9d]{animation-duration:2.4s}.ca-loading-fade-enter-active[data-v-ea638a9d],.ca-loading-fade-leave-active[data-v-ea638a9d]{transition:none}}.ca-toast-list[data-v-a58555ed]{z-index:var(--ca-z-index-message,3000);pointer-events:none;justify-items:center;gap:8px;width:min(320px,100vw - 32px);display:grid;position:fixed;top:12%;left:50%;transform:translate(-50%)}.ca-toast[data-v-a58555ed]{border-radius:var(--ca-radius-md,8px);color:#fff;max-width:100%;font-size:var(--ca-font-size-md,14px);box-shadow:var(--ca-shadow-lg,0 12px 30px #1e3d5f1f);background:#16283de6;align-items:center;gap:8px;padding:11px 16px;display:inline-flex}.ca-toast__icon[data-v-a58555ed]{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:18px;height:18px;display:grid}.ca-toast.success .ca-toast__icon[data-v-a58555ed]{background:var(--ca-color-success,#2fae85)}.ca-toast.danger .ca-toast__icon[data-v-a58555ed]{background:var(--ca-color-danger,#e8695f)}.ca-toast.warning .ca-toast__icon[data-v-a58555ed]{background:var(--ca-color-warning,#f59a3c)}.ca-toast.primary .ca-toast__icon[data-v-a58555ed]{background:var(--ca-color-primary,#0878fa)}.ca-toast__text[data-v-a58555ed]{gap:2px;min-width:0;line-height:1.5;display:grid}.ca-toast__text small[data-v-a58555ed]{opacity:.82;font-size:12px}.ca-toast-move-enter-active[data-v-a58555ed],.ca-toast-move-leave-active[data-v-a58555ed]{transition:opacity .2s,transform .2s}.ca-toast-move-enter-from[data-v-a58555ed],.ca-toast-move-leave-to[data-v-a58555ed]{opacity:0;transform:translateY(-8px)}@media (prefers-reduced-motion:reduce){.ca-toast-move-enter-active[data-v-a58555ed],.ca-toast-move-leave-active[data-v-a58555ed]{transition:none}}.ca-overlay[data-v-c8314f57]{z-index:var(--ca-z-index-modal,2000);background:var(--ca-overlay-color,#16283d66);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.ca-overlay__panel[data-v-c8314f57]{border-radius:var(--ca-radius-xl,16px);background:var(--ca-surface-card,#fff);width:min(420px,100%);box-shadow:var(--ca-shadow-lg,0 12px 30px #1e3d5f1f);overflow:hidden}.ca-overlay__header[data-v-c8314f57]{padding:22px 24px 0}.ca-overlay__title[data-v-c8314f57]{color:var(--ca-text-primary,#2f3d4c);font-size:var(--ca-font-size-lg,16px);text-align:center;font-weight:600}.ca-overlay__body[data-v-c8314f57]{color:var(--ca-text-regular,#4d5f70);font-size:var(--ca-font-size-md,14px);text-align:center;padding:12px 24px 4px;line-height:1.7}.ca-overlay__footer[data-v-c8314f57]{gap:12px;padding:18px 24px 22px;display:flex}.ca-overlay__button[data-v-c8314f57]{min-height:var(--ca-control-height-lg,42px);border:1px solid var(--ca-border-color,#e6eef6);border-radius:var(--ca-radius-md,8px);background:var(--ca-surface-card,#fff);color:var(--ca-text-regular,#4d5f70);font-size:var(--ca-font-size-md,14px);flex:1}.ca-overlay__button--primary[data-v-c8314f57]{background:var(--ca-color-primary,#0878fa);color:#fff;border-color:#0000}.ca-overlay__button--primary[data-v-c8314f57]:hover:not(:disabled){background:var(--ca-color-primary-hover,#0069e0)}.ca-overlay__button[data-v-c8314f57]:disabled{opacity:.6;cursor:not-allowed}:root{font-family:var(--ca-font-family);color:var(--ca-text-primary);background:var(--ca-surface-page);font-synthesis:none;font-optical-sizing:auto;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;--blue:var(--ca-color-primary);--sidebar:192px;--border:var(--ca-border-color);--muted:var(--ca-text-secondary)}*{box-sizing:border-box}body{min-width:360px;margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:0;transition:background-color .18s,color .18s,transform .18s}button:active{transform:scale(.98)}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:3px}button:disabled{cursor:not-allowed}h1,h2,h3,p{margin:0}.sr-only{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.app-shell{min-height:100dvh}.topbar{background:var(--ca-color-primary);height:72px;color:var(--ca-color-primary-contrast);z-index:40;align-items:center;gap:28px;padding:0 24px;display:flex;position:fixed;inset:0 0 auto}.topbar:after{content:"";background:inherit;z-index:-1;height:28px;position:absolute;top:72px;left:0;right:0}.brand{flex-shrink:0;align-items:center;gap:12px;width:288px;display:flex}.brand strong{letter-spacing:.4px;font-size:18px;font-weight:600}.brand span{opacity:.85;margin-top:5px;font-size:12px;display:block}.top-nav{gap:34px;height:100%;display:flex}.top-nav button{color:var(--ca-color-primary-contrast);opacity:.76;white-space:nowrap;padding:0;font-size:15px;position:relative}.top-nav button.active{opacity:1;font-weight:500}.top-nav button.active:after{content:"";background:currentColor;border-radius:2px;height:3px;position:absolute;bottom:13px;left:0;right:0}.top-nav button:hover{opacity:1}.top-actions{align-items:center;gap:17px;margin-left:auto;display:flex}.search-box{background:#ffffff17;border-radius:5px;align-items:center;gap:7px;width:145px;padding:7px 10px;display:flex}.search-box input{width:100%;min-width:0;color:var(--ca-color-primary-contrast);background:0 0;border:0;font-size:12px}.search-box input::placeholder{color:var(--ca-color-primary-contrast);opacity:.7}.top-switch{color:var(--ca-color-primary-contrast);align-items:center;gap:5px;display:flex}.top-switch button{color:inherit;opacity:.75;border-radius:4px;padding:2px 7px;font-size:12px;line-height:1.5}.top-switch button:hover{opacity:1}.top-switch button.active{color:var(--ca-color-primary);opacity:1;background:#fff;font-weight:600}.notification{color:var(--ca-color-primary-contrast);padding:4px;display:flex;position:relative}.notification i{background:#ffd185;border-radius:50%;width:5px;height:5px;position:absolute;top:1px;right:2px}.profile{color:var(--ca-color-primary-contrast);white-space:nowrap;align-items:center;gap:8px;padding:0;font-size:12px;display:flex}.avatar{color:#3272bd;background:#e4f1ff;border:2px solid #ffffff85;border-radius:50%;place-items:center;width:28px;height:28px;font-size:12px;display:grid}.sidebar{width:var(--sidebar);z-index:41;background:var(--ca-surface-card);border-radius:0 16px 0 0;flex-direction:column;padding-top:13px;display:flex;position:fixed;top:72px;bottom:0;left:0;overflow:hidden}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto}.school-switch{color:var(--ca-text-secondary);align-items:center;gap:7px;padding:15px 17px 22px;font-size:12px;display:flex}.school-switch>svg:first-child{color:var(--ca-color-primary)}.school-switch>svg:last-child{margin-left:auto}.sidebar-foot{gap:15px;margin-top:auto;padding:19px 18px 15px;display:grid}.sidebar-foot button{color:var(--ca-text-secondary);align-items:center;gap:12px;padding:0 3px;font-size:13px;display:flex}.version{color:var(--ca-text-placeholder);margin-top:7px;font-size:12px}.main-content{margin-left:var(--sidebar);z-index:42;pointer-events:none;padding:72px 20px 0;position:relative}.workspace{background:var(--ca-surface-page);pointer-events:auto;border-radius:15px 15px 0 0;max-width:1560px;min-height:calc(100dvh - 72px);margin:0 auto;padding:0 17px 12px}.breadcrumb{min-height:45px;color:var(--ca-text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}.breadcrumb>div,.breadcrumb>div>span{align-items:center;gap:7px;display:flex}.breadcrumb>div>svg{color:var(--blue)}.breadcrumb b{color:var(--ca-text-regular);font-weight:400}.breadcrumb small{border:1px solid var(--ca-border-color);border-radius:3px;margin-left:8px;padding:1px 4px}.home-grid{grid-template-columns:minmax(0,1fr) 310px;gap:16px;display:grid}.primary-column,.secondary-column{align-content:start;gap:16px;display:grid}.welcome-panel{background:var(--ca-color-primary-soft);border:1px solid var(--ca-border-color);border-radius:7px;min-height:155px;padding:21px 20px 17px;position:relative;overflow:hidden}.welcome-copy{z-index:1;position:relative}.welcome-copy h1{color:var(--ca-text-primary);font-size:17px;font-weight:600}.welcome-copy h1>span{color:var(--ca-text-secondary);margin-left:12px;font-size:13px;font-weight:400}.welcome-copy p{color:var(--ca-text-secondary);max-width:calc(100% - 95px);margin-top:7px;font-size:13px;line-height:1.7}.summary-stats{grid-template-columns:repeat(4,1fr);gap:8px;width:calc(100% - 100px);margin-top:23px;display:grid}.summary-stats button{text-align:left;align-items:center;gap:8px;padding:0;display:flex}.summary-stats button:hover strong{color:var(--blue)}.summary-stats button>div>span{color:var(--ca-text-secondary);white-space:nowrap;font-size:12px;display:block}.summary-stats strong{color:var(--ca-text-primary);font-variant-numeric:tabular-nums;font-size:23px;font-weight:500;line-height:1.25;display:block}.stat-icon{color:#fff;background:var(--tone);border-radius:50%;flex-shrink:0;place-items:center;width:31px;height:31px;display:grid}:root[data-ca-theme=dark] .stat-icon.blue,:root[data-ca-theme=dark] .shortcut-icon.blue{--tone:var(--ca-color-blue-500)}:root[data-ca-theme=dark] .stat-icon.green,:root[data-ca-theme=dark] .shortcut-icon.green{--tone:var(--ca-color-green-500)}:root[data-ca-theme=dark] .stat-icon.orange,:root[data-ca-theme=dark] .shortcut-icon.orange{--tone:var(--ca-color-orange-500)}:root[data-ca-theme=dark] .stat-icon.amber,:root[data-ca-theme=dark] .shortcut-icon.amber{--tone:var(--ca-color-amber-500)}:root[data-ca-theme=dark] .stat-icon.red,:root[data-ca-theme=dark] .shortcut-icon.red{--tone:var(--ca-color-red-500)}:root[data-ca-theme=dark] .stat-icon.cyan,:root[data-ca-theme=dark] .shortcut-icon.cyan{--tone:var(--ca-color-cyan-500)}.book-art{width:150px;height:96px;position:absolute;bottom:18px;right:24px}.book-shadow{background:var(--ca-border-color);filter:blur(4px);border-radius:50%;height:12px;position:absolute;bottom:4px;left:6px;right:6px}.book-pages{background:var(--ca-surface-card);border:2px solid var(--ca-border-color-strong);width:66px;height:70px;position:absolute;bottom:12px}.book-pages.left-page{border-radius:5px 2px 2px 6px;left:6px;transform:skewY(6deg)}.book-pages.right-page{border-radius:2px 5px 6px 2px;right:6px;transform:skewY(-6deg)}.book-pages i{background:var(--ca-border-color);border-radius:2px;height:2px;margin:9px 9px 0;display:block}.book-spark{background:#ffd185;border-radius:50%;width:7px;height:7px;position:absolute}.book-spark.one{top:6px;right:22px}.book-spark.two{background:#9ed3ff;top:24px;left:8px}.guide-panel{background:linear-gradient(135deg, var(--ca-color-blue-500), var(--ca-color-blue-300));color:#fff;border-radius:7px;min-height:155px;padding:26px 22px;position:relative;overflow:hidden}.guide-panel h2{font-size:16px;font-weight:600}.guide-panel p{opacity:.9;margin-top:7px;font-size:13px}.primary-button{color:var(--ca-color-blue-600);background:#fff;border-radius:5px;align-items:center;gap:5px;margin-top:19px;padding:7px 12px;font-size:13px;font-weight:600;display:inline-flex}.guide-art{width:120px;position:absolute;top:0;bottom:0;right:0}.guide-orbit{border:1px dashed #fff5;border-radius:50%;width:120px;height:120px;position:absolute;top:10px;right:-30px}.mini-screen{background:#ffffff26;border:1px solid #fff5;border-radius:6px;gap:4px;width:74px;height:52px;padding:8px;display:grid;position:absolute;top:46px;right:22px}.mini-screen i{background:#fff6;border-radius:2px;height:3px;display:block}.guide-person{color:#fffc;position:absolute;bottom:8px;right:8px}.guide-bubble{color:#fffd;position:absolute;top:18px;right:66px}.shortcut-section{padding:17px 19px 14px}.shortcut-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin-top:16px;display:grid}.shortcut{border-radius:5px;flex-direction:column;align-items:center;gap:9px;padding:2px 4px 5px;font-size:13px;display:flex}.shortcut:hover{background:var(--ca-surface-sunken);color:var(--blue)}.shortcut-icon{border-radius:6px;place-items:center;width:38px;height:38px;display:grid;position:relative}.shortcut-icon:before{content:"";background:var(--tone);opacity:.82;border-radius:4px;position:absolute;inset:6px}.shortcut-icon svg{color:#fff;stroke-width:1.7px;width:20px;height:20px;position:relative}.shortcut-empty{color:var(--muted);text-align:center;grid-column:1/-1;padding:15px;font-size:12px}.campus-overview{padding:16px 19px}.overview-stats{grid-template-columns:repeat(4,1fr);margin-top:17px;display:grid}.overview-stats>div{border-left:1px solid var(--ca-border-color);padding-left:20px}.overview-stats>div:first-child{border-left:0;padding-left:0}.overview-stats span{color:var(--ca-text-secondary);font-size:12px;display:block}.overview-stats b{color:var(--ca-text-primary);margin-top:8px;font-size:21px;font-weight:500;display:block}.overview-stats small{color:var(--ca-text-placeholder);margin-left:5px;font-size:12px;font-weight:400}.files-panel{padding:17px 16px 6px}.file-item{text-align:left;border-bottom:1px solid var(--ca-border-color);align-items:center;gap:10px;width:100%;padding:14px 0;display:flex}.file-item:last-child{border-bottom:0}.file-icon{border-radius:4px;flex-shrink:0;place-items:center;width:28px;height:32px;display:grid}.file-item>div{flex:1;min-width:0}.file-item b{white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:400;display:block;overflow:hidden}.file-item small{color:var(--ca-text-placeholder);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.file-item>i{background:var(--ca-color-danger);border-radius:50%;flex-shrink:0;width:4px;height:4px}.file-item:hover b{color:var(--blue)}.service-note{color:var(--ca-text-placeholder);justify-content:center;align-items:center;gap:6px;font-size:12px;display:flex}.page-footer{text-align:center;color:var(--ca-text-placeholder);justify-content:center;padding:21px 0 6px;font-size:12px;display:flex}.modal-backdrop{background:var(--ca-overlay-color);z-index:100;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.dialog{background:var(--ca-surface-card);width:min(480px,100%);box-shadow:var(--ca-shadow-popup);border-radius:9px;padding:23px}.dialog header{justify-content:space-between;align-items:start;gap:20px;display:flex}.dialog h2{font-size:18px;font-weight:500}.dialog header button{color:var(--ca-text-secondary);padding:0}.dialog p{color:var(--ca-text-regular);margin:19px 0;font-size:14px;line-height:1.9}.dialog footer{justify-content:flex-end;gap:15px;margin-top:20px;font-size:13px;display:flex}.shortcut-options{grid-template-columns:1fr 1fr;gap:13px;display:grid}.shortcut-options label{align-items:center;gap:8px;font-size:13px;display:flex}.shortcut-options input{accent-color:var(--blue)}.mobile-menu,.sidebar-mobile-head,.backdrop{display:none}@media (width>=1550px){.home-grid{grid-template-columns:minmax(0,1fr) 350px}.welcome-panel{min-height:165px}.summary-stats{width:77%}}@media (width<=1200px){.topbar{gap:18px}.brand{width:246px}.top-nav{gap:23px}.search-box{display:none}.home-grid{grid-template-columns:minmax(0,1fr) 280px;gap:12px}.summary-stats{z-index:1;width:100%;position:relative}.book-art{opacity:.5;bottom:61px;right:0;transform:scale(.7)rotate(-16deg)}.welcome-copy p{max-width:90%}.welcome-copy h1>span{display:none}.main-content{padding-left:15px;padding-right:15px}.workspace{padding-left:13px;padding-right:13px}.primary-column,.secondary-column{gap:12px}}@media (width<=1000px){:root{--sidebar:184px}.school-switch{padding-left:13px;padding-right:13px;font-size:12px}.brand{width:235px}.top-nav{gap:20px}.top-nav button{font-size:12px}.top-actions{gap:10px}.home-grid{grid-template-columns:minmax(0,1fr) 260px}.summary-stats{gap:3px}.summary-stats button{gap:5px}.stat-icon{width:26px;height:26px}.welcome-panel{padding:18px 13px}.shortcut-section{padding:16px 10px 12px}.guide-panel{padding:21px 13px}.guide-art{opacity:.8;right:-15px}}@media (width<=850px){.top-nav{display:none}.home-grid{grid-template-columns:minmax(0,1fr)}.guide-panel{display:none}.welcome-copy h1>span{display:inline}.book-art{opacity:1;bottom:25px;right:20px;transform:rotate(-16deg)}.summary-stats{width:calc(100% - 100px)}.welcome-panel{padding:21px 20px}.secondary-column{grid-template-columns:minmax(0,1fr);display:grid}.breadcrumb>span{font-size:11px}}@media (width<=620px){.topbar{gap:8px;height:60px;padding:0 12px}.topbar:after{display:none}.mobile-menu{color:#fff;place-items:center;padding:3px;display:grid}.brand{gap:7px;width:auto}.brand>svg{width:28px}.brand strong{font-size:15px}.brand span{margin-top:3px;font-size:10px}.profile>span:not(.avatar),.profile>svg{display:none}.top-actions{gap:9px}.sidebar{z-index:80;border-radius:0 12px 12px 0;width:230px;transition:transform .2s;top:0;transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-mobile-head{justify-content:space-between;align-items:center;padding:12px 17px;font-size:14px;display:flex}.backdrop{z-index:70;background:var(--ca-overlay-color);display:block;position:fixed;inset:0}.top-switch{gap:3px}.top-switch>svg{display:none}.top-switch button{padding:2px 5px;font-size:11px}.main-content{z-index:auto;margin-left:0;padding:72px 10px 0}.workspace{min-height:calc(100dvh - 72px);padding:0 10px 10px}.breadcrumb{min-height:36px;font-size:11px}.breadcrumb>span{display:none}.welcome-panel{min-height:168px;padding:18px 13px}.welcome-copy h1{font-size:16px}.welcome-copy h1>span{display:none}.welcome-copy p{max-width:90%;font-size:12px}.book-art{display:none}.summary-stats{width:100%;margin-top:24px}.summary-stats strong{font-size:21px}.summary-stats button>div>span{font-size:11px}.stat-icon{width:25px;height:25px}.stat-icon svg{width:15px}.shortcut-grid{grid-template-columns:repeat(3,1fr);row-gap:17px}.shortcut-section{padding:16px}.overview-stats{grid-template-columns:repeat(2,1fr);row-gap:20px}.overview-stats>div:nth-child(3){border-left:0;padding-left:0}.page-footer{font-size:11px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
