.page-container,.page-content{width:100%}.shared-card{background:var(--color-bg-card);border-radius:var(--radius-sm);border:1px solid var(--color-border);padding:var(--space-lg);margin-bottom:var(--space-md);transition:transform var(--transition-base),box-shadow var(--transition-base);height:100%}.shared-card--section{background:var(--color-bg-section);box-shadow:none;border:none}.shared-card--flush{padding:0;margin-bottom:0;overflow:hidden}.shared-card--header{position:sticky;top:0;z-index:100;border:0;background:none;padding:0;margin:0;border-radius:0;margin-bottom:var(--space-xs)}.shared-card__header_content{top:0;display:flex;align-items:center;justify-content:space-between;background-color:var(--color-bg-app);padding:var(--space-sm) 0;overflow:hidden}.shared-card-header-spacer{height:var(--space-md);min-height:var(--space-md);background:var(--color-bg-app);border-radius:0;pointer-events:none}.shared-card__title-header{font-size:var(--font-size-3xl);margin-bottom:0;color:var(--color-text-header)}.shared-card__title-sub{font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.shared-card__header-actions{display:flex;align-items:center;gap:var(--space-sm)}.shared-card--hoverable:hover{transform:translateY(-.25rem);box-shadow:var(--shadow-card-hover)}.shared-card--clickable{cursor:pointer}.shared-card__title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--space-lg)}@media(max-width:768px){.shared-card__header_content{flex-direction:column;align-items:flex-start;gap:var(--space-sm);padding:var(--space-md) 0 var(--space-md) 0}.shared-card__title-header{font-size:var(--font-size-2xl)}.shared-card__header-actions{width:100%;flex-wrap:wrap;gap:var(--space-sm)}.shared-card__header-actions>*{min-height:2.75rem}}@media(max-width:639px){.shared-card{padding:var(--space-md)}}.shared-form-group{margin-bottom:var(--space-lg)}.shared-form-group__label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-base)}.shared-form-group__required{color:var(--color-danger)}.shared-form-group__hint{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-bottom:var(--space-sm);font-style:italic}.shared-form-group--compact{margin-bottom:var(--space-md)}.shared-form-group--compact .shared-form-group__label{font-size:var(--font-size-sm);margin-bottom:var(--space-xs)}.shared-form-group--compact .shared-form-group__hint{font-size:var(--font-size-xs);margin-bottom:var(--space-xs)}.shared-input{display:block;width:100%;padding:.625rem .75rem;font-size:var(--font-size-base);border:2px solid var(--color-border-input);border-radius:var(--radius-md);background-color:var(--color-bg-input);color:var(--color-text-input, FieldText);transition:border-color var(--transition-slow);font-family:var(--font-family);box-sizing:border-box}.shared-input:focus{outline:none;border-color:var(--color-border-input-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 25%,transparent)}.shared-input:disabled{background-color:var(--color-bg-input-disabled);cursor:not-allowed;opacity:.6}select.shared-input{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.shared-input--sm{padding:.375rem .625rem;font-size:var(--font-size-sm)}.shared-input--md{padding:.625rem .75rem;font-size:var(--font-size-base)}.shared-input--lg{padding:.875rem 1rem;font-size:var(--font-size-lg)}.shared-input--full{width:100%}.shared-input--error{border-color:var(--color-danger)}.shared-input--error:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 25%,transparent)}.shared-input--textarea{resize:vertical;min-height:3.75rem}.shared-input--inline{display:inline-block;width:auto}.shared-input--select{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto;cursor:pointer}.shared-input__error{display:block;font-size:var(--font-size-sm);color:var(--color-danger);margin-top:var(--space-xs, .25rem)}.shared-input__helper{display:block;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--space-xs, .25rem)}.shared-form-group input[type=text],.shared-form-group input[type=email],.shared-form-group input[type=password],.shared-form-group input[type=url],.shared-form-group input[type=number],.shared-form-group input[type=date],.shared-form-group input[type=time],.shared-form-group textarea,.shared-form-group select{display:block;width:100%;padding:.625rem .75rem;font-size:var(--font-size-base);border:2px solid var(--color-border-input);border-radius:var(--radius-md);background-color:var(--color-bg-input);transition:border-color var(--transition-slow);font-family:var(--font-family)}.shared-form-group input:focus,.shared-form-group textarea:focus,.shared-form-group select:focus{outline:none;border-color:var(--color-border-input-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 25%,transparent)}.shared-form-group input:disabled,.shared-form-group textarea:disabled,.shared-form-group select:disabled{background-color:var(--color-bg-input-disabled);cursor:not-allowed;opacity:.6}.shared-form-group input[type=file]{display:block;width:100%;padding:.75rem .9375rem;font-size:var(--font-size-base);border:2px solid var(--color-border-input);border-radius:var(--radius-md);background-color:var(--color-bg-input);cursor:pointer;transition:border-color var(--transition-slow)}.shared-form-group input[type=file]:hover:not(:disabled){border-color:var(--color-action)}@media(max-width:639px){.shared-input,.shared-input--sm,.shared-input--md,.shared-input--lg,.shared-form-group input,.shared-form-group textarea,.shared-form-group select,.shared-search__input,.shared-search--sm .shared-search__input{font-size:1rem}.shared-input:not(.shared-input--textarea):not(textarea),.shared-form-group input:not([type=file]),.shared-form-group select,.shared-search__input{min-height:var(--touch-target)}.shared-input--textarea,.shared-form-group textarea{min-height:5.5rem}}@keyframes shared-spin{to{transform:rotate(360deg)}}@keyframes shared-fade-in{0%{opacity:0}to{opacity:1}}@keyframes shared-slide-up{0%{opacity:0;transform:translateY(1.25rem)}to{opacity:1;transform:translateY(0)}}.shared-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-weight:var(--font-weight-semibold);line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast)}.shared-btn:disabled{opacity:.5;cursor:not-allowed}.shared-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shared-btn--sm{min-height:2rem;padding:0 .625rem;font-size:.8125rem}.shared-btn--md{min-height:2.25rem;padding:0 .9rem;font-size:var(--font-size-sm)}.shared-btn--lg{min-height:2.75rem;padding:0 1.25rem;font-size:.95rem}.shared-btn--primary{background-color:var(--color-action);border-color:var(--color-action);color:var(--text-on-action)}.shared-btn--primary:hover:not(:disabled){background-color:var(--color-action-hover);border-color:var(--color-action-hover)}.shared-btn--accent{background-color:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.shared-btn--accent:hover:not(:disabled){background-color:var(--accent-hover);border-color:var(--accent-hover)}.shared-btn--neutral{background-color:var(--surface-card);border-color:var(--border-default);color:var(--text-primary)}.shared-btn--neutral:hover:not(:disabled){background-color:var(--surface-hover);border-color:var(--border-strong)}.shared-btn--quiet{background-color:transparent;color:var(--text-secondary)}.shared-btn--quiet:hover:not(:disabled){background-color:var(--surface-hover);color:var(--text-primary)}.shared-btn--danger{background-color:var(--danger);border-color:var(--danger);color:var(--ink-light)}.shared-btn--danger:hover:not(:disabled){background-color:color-mix(in srgb,var(--danger) 85%,var(--ink-dark));border-color:color-mix(in srgb,var(--danger) 85%,var(--ink-dark))}.shared-btn--danger-quiet{background-color:transparent;color:var(--danger)}.shared-btn--danger-quiet:hover:not(:disabled){background-color:var(--danger-soft);color:var(--danger-on-soft)}.shared-btn--dashed{background-color:transparent;border:1px dashed var(--border-strong);color:var(--text-secondary);font-weight:var(--font-weight-medium)}.shared-btn--dashed:hover:not(:disabled){border-style:solid;border-color:var(--accent);color:var(--accent)}.shared-btn--itslearning{background-color:var(--color-itslearning);color:var(--ink-dark);border-color:var(--color-itslearning)}.shared-btn--itslearning:hover:not(:disabled){background-color:var(--color-itslearning-hover);border-color:var(--color-itslearning-hover)}.shared-btn--loading{position:relative}.shared-btn__spinner{width:.85em;height:.85em;border:2px solid color-mix(in srgb,currentColor 30%,transparent);border-top-color:currentColor;border-radius:50%;animation:shared-spin .6s linear infinite;flex:none}.shared-btn__text--loading{opacity:.7}.shared-btn--block{width:100%}@media(pointer:coarse){.shared-btn--sm{min-height:2.5rem;padding:0 .8rem}.shared-btn--md{min-height:var(--touch-target);padding:0 1.05rem}.shared-btn--lg{min-height:3rem}}.shared-choice{display:grid;grid-template-columns:1fr;gap:.6rem}@media(min-width:640px){.shared-choice{grid-template-columns:repeat(var(--shared-choice-cols, 2),minmax(0,1fr))}}.shared-choice__card{display:flex;align-items:flex-start;gap:.65rem;padding:.75rem .85rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);color:var(--text-primary);font-family:inherit;text-align:left;cursor:pointer;min-width:0;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.shared-choice__card:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-strong)}.shared-choice__card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shared-choice__card:disabled{opacity:.5;cursor:not-allowed}.shared-choice__card--selected{border-color:var(--accent);background:var(--accent-soft)}.shared-choice__card--selected:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.shared-choice--danger .shared-choice__card{background:transparent}.shared-choice--danger .shared-choice__card--selected,.shared-choice--danger .shared-choice__card--selected:hover:not(:disabled){background:var(--surface-card);border-color:var(--danger)}.shared-choice--sm{gap:.4rem}.shared-choice--sm .shared-choice__card{align-items:center;gap:.45rem;padding:.4rem .6rem}.shared-choice--sm .shared-choice__icon{width:1.25rem;height:1.25rem;font-size:.9rem}.shared-choice--sm .shared-choice__title{font-size:.82rem;font-weight:var(--font-weight-medium)}.shared-choice__icon{display:flex;align-items:center;justify-content:center;flex:none;width:2rem;height:2rem;border-radius:var(--radius-md);font-size:1.15rem;line-height:1}.shared-choice__text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.shared-choice__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.shared-choice__hint{font-size:.78rem;color:var(--text-secondary);line-height:1.35}@media(pointer:coarse){.shared-choice__card{min-height:var(--touch-target);padding:.85rem}}.shared-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:none;padding:0;line-height:0;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);transition:color .12s ease,background .12s ease,border-color .12s ease}.shared-icon-btn:disabled{opacity:.5;cursor:default}.shared-icon-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shared-icon-btn--sm{width:1.375rem;height:1.375rem;font-size:.95rem}.shared-icon-btn--md{width:2.25rem;height:2.25rem;font-size:1.05rem}.shared-icon-btn--round{border-radius:var(--radius-full)}.shared-icon-btn--default{border:1px solid var(--border-default);background:var(--surface-card)}.shared-icon-btn--default:hover:not(:disabled),.shared-icon-btn--default:focus-visible{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:var(--surface-sunken);outline:none}.shared-icon-btn--danger{border:1px solid var(--border-default);background:var(--surface-card)}.shared-icon-btn--danger:hover:not(:disabled),.shared-icon-btn--danger:focus-visible{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,transparent);background:color-mix(in srgb,var(--danger) 10%,transparent);outline:none}.shared-icon-btn--quiet{border:1px solid transparent;background:none}.shared-icon-btn--quiet:hover:not(:disabled),.shared-icon-btn--quiet:focus-visible{background:var(--surface-hover);color:var(--text-primary)}.shared-icon-btn--dashed{border:1px dashed var(--border-default);background:none}.shared-icon-btn--dashed:hover:not(:disabled),.shared-icon-btn--dashed:focus-visible{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);outline:none}@media(pointer:coarse){.shared-icon-btn--sm{width:2.25rem;height:2.25rem}.shared-icon-btn--md{width:var(--touch-target);height:var(--touch-target)}}.shared-link-btn{display:inline-flex;align-items:center;gap:.3rem;border:0;background:none;color:var(--accent);font:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-sm);transition:background-color var(--transition-fast),color var(--transition-fast)}.shared-link-btn:hover:not(:disabled){text-decoration:underline}.shared-link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shared-link-btn:disabled{opacity:.5;cursor:not-allowed;text-decoration:none}.shared-link-btn--muted{color:var(--text-secondary)}.shared-link-btn--muted:hover:not(:disabled){color:var(--text-primary)}.shared-link-btn--danger{color:var(--danger)}.shared-link-btn--danger:hover:not(:disabled){color:var(--danger-on-soft)}.shared-link-btn--sm{padding:.15rem .35rem;font-size:.8125rem}.shared-link-btn--md{padding:.2rem .4rem;font-size:var(--font-size-sm)}.shared-link-btn--sm:hover:not(:disabled),.shared-link-btn--md:hover:not(:disabled){background:var(--surface-hover)}.shared-link-btn--inline{padding:0;border-radius:0}@media(pointer:coarse){.shared-link-btn--sm,.shared-link-btn--md{min-height:2.25rem;padding-inline:.5rem}}.shared-menu-btn{flex:none}.shared-menu-btn--open{background:var(--surface-hover);color:var(--text-primary)}.shared-seg{display:inline-flex;flex:none;border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden}.shared-seg__item{display:inline-flex;align-items:center;justify-content:center;border:none;border-right:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary);font-family:inherit;font-weight:var(--font-weight-medium);line-height:1.2;white-space:nowrap;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-fast),color var(--transition-fast)}.shared-seg__item:last-child{border-right:none}.shared-seg__item:hover:not(:disabled):not([aria-pressed=true]):not([aria-selected=true]){background:var(--surface-hover);color:var(--text-primary)}.shared-seg__item[aria-pressed=true],.shared-seg__item[aria-selected=true]{background:var(--accent);color:var(--text-on-accent);font-weight:var(--font-weight-semibold)}.shared-seg__item:disabled{opacity:.5;cursor:not-allowed}.shared-seg__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.shared-seg--sm .shared-seg__item{min-height:2rem;padding:0 .625rem;font-size:.8125rem}.shared-seg--md .shared-seg__item{min-height:2.25rem;padding:0 .9rem;font-size:var(--font-size-sm)}.shared-seg--block{display:flex;width:100%}.shared-seg--block .shared-seg__item{flex:1 1 0;min-width:0}.shared-seg--stacked .shared-seg__item{flex-direction:column;gap:.2rem;padding:.4rem .3rem;font-size:.7rem;line-height:1.2}@media(pointer:coarse){.shared-seg--sm .shared-seg__item{min-height:2.5rem;padding:0 .8rem}.shared-seg--md .shared-seg__item{min-height:var(--touch-target);padding:0 1.05rem}.shared-seg--stacked .shared-seg__item{padding:.5rem .4rem}}.shared-switch{display:inline-flex;align-items:center;justify-content:center;min-width:var(--touch-target);min-height:var(--touch-target);cursor:pointer;flex:none}.shared-switch:has(input:disabled){cursor:not-allowed;opacity:.5}.shared-switch input{position:absolute;opacity:0;width:0;height:0}.shared-switch__track{position:relative;display:block;width:2.75rem;height:1.625rem;border-radius:var(--radius-full);background:var(--border-strong);transition:background-color var(--transition-base)}.shared-switch__knob{position:absolute;top:.1875rem;left:.1875rem;width:1.25rem;height:1.25rem;border-radius:var(--radius-full);background:var(--surface-card);box-shadow:var(--shadow-sm);transition:transform var(--transition-base)}.shared-switch input:checked+.shared-switch__track{background:var(--color-action)}.shared-switch input:checked+.shared-switch__track .shared-switch__knob{transform:translate(1.125rem)}.shared-switch input:focus-visible+.shared-switch__track{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){.shared-switch__track,.shared-switch__knob{transition:none}}.shared-badge{display:inline-flex;align-items:center;gap:.25rem;flex:none;font-weight:var(--font-weight-bold);border-radius:var(--radius-full);white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.4}.shared-badge--sm{font-size:.68rem;padding:1px .4375rem}.shared-badge--md{font-size:.72rem;padding:.125rem .5rem}.shared-badge--neutral{background:var(--surface-sunken);color:var(--text-secondary)}.shared-badge--primary{background:var(--accent-soft);color:var(--accent-on-soft)}.shared-badge--purple{background:var(--color-purpile-soft);color:var(--color-purpile-on-soft)}.shared-badge--blue{background:var(--info-soft);color:var(--info-on-soft)}.shared-badge--green{background:var(--success-soft);color:var(--success-on-soft)}.shared-badge--amber{background:var(--warning-soft);color:var(--warning-on-soft)}.shared-badge--danger{background:var(--danger-soft);color:var(--danger-on-soft)}@media(max-width:640px),(pointer:coarse){.shared-badge--sm,.shared-badge--md{font-size:.78rem;padding:.1875rem .5625rem}}.shared-chip{display:inline-flex;align-items:center;gap:.25rem;font:inherit;font-size:.82rem;line-height:1.5;border-radius:var(--radius-full);white-space:nowrap}.shared-chip--sm{padding:1px .5rem}.shared-chip--md{padding:.3125rem .6875rem}.shared-chip--neutral{border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-primary)}.shared-chip--outline{border:1px solid var(--border-default);background:var(--surface-card);color:var(--text-secondary)}.shared-chip--blue{border:1px solid transparent;background:var(--info-soft);color:var(--info-on-soft)}.shared-chip--purple{border:1px solid transparent;background:var(--color-purpile-soft);color:var(--color-purpile-on-soft)}button.shared-chip{cursor:pointer}button.shared-chip:hover:not(:disabled),button.shared-chip:focus-visible{border-color:color-mix(in srgb,var(--accent) 50%,transparent);outline:none}button.shared-chip:disabled{opacity:.5;cursor:default}.shared-chip--active{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent);font-weight:var(--font-weight-semibold)}.shared-chip--tinted{border:1px solid var(--chip-color);color:var(--chip-color);background:color-mix(in srgb,var(--chip-color) 13%,transparent)}.shared-chip--tinted.shared-chip--active{border-color:var(--chip-color);background:var(--chip-color);color:var(--ink-light);font-weight:var(--font-weight-semibold)}button.shared-chip--tinted:hover:not(:disabled),button.shared-chip--tinted:focus-visible{border-color:var(--chip-color);background:color-mix(in srgb,var(--chip-color) 22%,transparent)}button.shared-chip--tinted.shared-chip--active:hover:not(:disabled),button.shared-chip--tinted.shared-chip--active:focus-visible{background:color-mix(in srgb,var(--chip-color) 85%,var(--ink-dark))}.shared-chip__remove{display:inline-flex;align-items:center;justify-content:center;width:.9375rem;height:.9375rem;margin-right:-.1875rem;padding:0;border:none;border-radius:var(--radius-full);background:transparent;color:inherit;font-size:1rem;line-height:1;cursor:pointer;opacity:.65}.shared-chip__remove:hover:not(:disabled){opacity:1;background:color-mix(in srgb,currentColor 22%,transparent)}.shared-chip__remove:disabled{opacity:.3;cursor:default}.shared-menu{position:relative;display:inline-flex}.shared-menu__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-tooltip)}.shared-menu__list{position:fixed;z-index:calc(var(--z-tooltip) + 1);display:flex;flex-direction:column;min-width:8.125rem;padding:.25rem;border:1px solid var(--border-default);border-radius:var(--radius-lg);background:var(--surface-card);box-shadow:var(--shadow-lg)}.shared-menu__item{font:inherit;font-size:.85rem;text-align:left;padding:.4375rem .625rem;border:none;border-radius:var(--radius-md);background:none;color:inherit;cursor:pointer;white-space:nowrap}.shared-menu__item:hover,.shared-menu__item:focus-visible{background:var(--surface-sunken);outline:none}.shared-menu__item:disabled{color:var(--color-text-muted);cursor:default}.shared-menu__item:disabled:hover{background:none}.shared-menu__sep{height:1px;margin:.25rem 0;background:var(--border-subtle)}.shared-menu__label{padding:.3rem .625rem .15rem;font-size:.72rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}.shared-menu__check{display:inline-block;width:1rem;margin-right:.4rem;text-align:center}.shared-menu__item--danger{color:var(--danger)}.shared-menu__item--danger:hover,.shared-menu__item--danger:focus-visible{background:color-mix(in srgb,var(--danger) 10%,transparent)}.shared-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.shared-pagination__pages{display:flex;align-items:center;gap:.2rem;margin-inline:auto}.shared-pagination__pages .shared-btn{min-width:2rem;padding-inline:.4rem;font-variant-numeric:tabular-nums}.shared-pagination__gap{padding:0 .15rem;color:var(--text-muted);-webkit-user-select:none;user-select:none}.shared-pagination__label,.shared-pagination__range{font-size:var(--font-size-sm);color:var(--text-secondary);white-space:nowrap;font-variant-numeric:tabular-nums}.shared-pagination__label{padding:0 .4rem}@media(pointer:coarse){.shared-pagination__pages .shared-btn{min-width:var(--touch-target)}}@media(max-width:639px){.shared-pagination{justify-content:center}.shared-pagination__pages{order:-1;width:100%;justify-content:center}}.shared-table-container{background:var(--color-bg-card);border-radius:var(--radius-lg);overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;box-shadow:var(--shadow-md);margin-bottom:var(--space-lg)}.shared-table{width:100%;border-collapse:collapse}@media(max-width:1023px){.shared-table-container .shared-table{min-width:40rem}.shared-table th,.shared-table td{padding:.625rem .75rem}}@media(max-width:639px){.shared-table th{font-size:var(--font-size-xs)}.shared-table th,.shared-table td{padding:.5625rem .625rem}}.shared-table thead{background-color:var(--color-table-head-bg);color:var(--color-table-head-text)}.shared-table th{padding:.9375rem;text-align:left;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);text-transform:uppercase;letter-spacing:.5px;-webkit-user-select:none;user-select:none}.shared-table__th--sortable{cursor:pointer}.shared-table__th--sortable:hover{background-color:color-mix(in srgb,var(--color-table-head-text) 10%,transparent)}.shared-table__sort-icon{margin-left:.5rem;color:var(--color-text-light);display:inline-block;transition:color var(--transition-base)}.shared-table td{padding:.9375rem;border-bottom:1px solid var(--color-table-border)}.shared-table tbody tr:hover{background-color:var(--color-table-row-hover)}.shared-table tbody tr:last-child td{border-bottom:none}.shared-table__empty{text-align:center;padding:var(--space-xl)!important;color:var(--color-text-secondary)}.shared-table tbody tr.row-danger{background-color:var(--color-table-row-danger)}.shared-table tbody tr.row-danger:hover{background-color:var(--color-table-row-danger-hover)}.shared-table-container--flush{background:none;box-shadow:none;border-radius:0;margin-bottom:0}.shared-table-container--flush .shared-table thead th{position:sticky;top:0;z-index:1}.shared-table--sm th{padding:.45rem .6rem;font-size:var(--font-size-xs);letter-spacing:.04em}.shared-table--sm td{padding:.4rem .6rem;font-size:var(--font-size-sm)}@media(max-width:1023px){.shared-table-container .shared-table--sm th,.shared-table-container .shared-table--sm td{padding:.45rem .6rem}}:root{--modal-header-bg: var(--surface-page)}:root[data-theme=dark]{--modal-header-bg: var(--surface-raised)}.shared-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--shadow-color) 50%,transparent);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:shared-fade-in .2s ease-out}.shared-modal{background:var(--color-bg-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);width:90%;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;animation:shared-slide-up .3s ease-out}.shared-modal--sm{max-width:25rem}.shared-modal--md{max-width:37.5rem}.shared-modal--lm{max-width:47.5rem}.shared-modal--lg{min-width:37.5rem;max-width:50rem;height:90vh}.shared-modal--xl{max-width:75%;min-width:50rem;height:90vh}.shared-modal__header{display:flex;justify-content:space-between;align-items:flex-start;padding:.75rem;background:var(--modal-header-bg);flex:0 0 auto}.shared-modal__title{margin:0;font-size:var(--font-size-2xl);color:var(--modal-header-text, var(--color-text-primary));min-width:0;overflow:hidden;text-overflow:ellipsis}.shared-modal--tinted-header .shared-modal__header-actions{--color-text-secondary: var(--modal-header-text);--text-secondary: var(--modal-header-text);--text-primary: var(--modal-header-text);--color-text-primary: var(--modal-header-text);--surface-hover: var(--modal-header-hover);--color-bg-hover: var(--modal-header-hover);--accent: var(--modal-header-text)}.shared-modal__header-actions{display:flex;align-items:center;gap:var(--space-md, .75rem);flex:0 0 auto;font-size:var(--font-size-2xl);min-height:calc(var(--font-size-2xl) * 1.5);min-height:1lh}.shared-modal__close,.shared-modal__fullscreen,.shared-modal__header-toggle{background:none;border:none;font-size:1.5rem;color:var(--modal-header-text, var(--text-secondary));cursor:pointer;padding:0;width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-base);line-height:1}.shared-modal__close:hover{color:var(--modal-header-text, var(--color-danger));background-color:var(--modal-header-hover, var(--color-bg-section))}.shared-modal__fullscreen:hover,.shared-modal__header-toggle:hover{color:var(--modal-header-text, var(--color-text-primary));background-color:var(--modal-header-hover, var(--color-bg-section))}.shared-modal__header-toggle[aria-pressed=true]{color:var(--color-primary)}.shared-modal--fullscreen{width:100%!important;height:100%!important;max-width:100%!important;max-height:100%!important;min-width:0!important;border-radius:0!important}.shared-modal--peek-header{position:relative}.shared-modal__peek-zone{position:absolute;top:0;left:0;right:0;height:.5rem;z-index:3}@media(hover:none){.shared-modal__peek-zone{display:none}}.shared-modal__peek-catcher{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3}.shared-modal__header-slot{display:contents}.shared-modal--peek-header .shared-modal__header-slot{display:grid;grid-template-rows:1fr;flex:0 0 auto;transition:grid-template-rows .2s ease-out;overflow:hidden;position:relative;z-index:4}.shared-modal--peek-header .shared-modal__header-slot:not(:focus-within):has(>.shared-modal__header--hidden){grid-template-rows:0fr}.shared-modal--peek-header .shared-modal__header-slot:not(:focus-within):has(>.shared-modal__header--hidden)>.shared-modal__header{padding-block:0;border-bottom-width:0}.shared-modal--peek-header .shared-modal__header{min-height:0;align-self:start;transition:padding-block .2s ease-out,border-bottom-width .2s ease-out}.shared-modal__peek-handle{position:absolute;top:0;transform:translate(-50%);z-index:5;width:3.5rem;height:1.25rem;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:0 0 var(--radius-md, .5rem) var(--radius-md, .5rem);background:color-mix(in srgb,var(--color-bg-card) 80%,transparent);color:var(--color-text-secondary);cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent}@media(pointer:coarse){.shared-modal__peek-handle{width:4.5rem;height:1.75rem;background:color-mix(in srgb,var(--color-bg-card) 92%,transparent);box-shadow:var(--shadow-sm)}}.shared-modal__peek-handle:hover,.shared-modal__peek-handle:focus-visible{background:var(--color-bg-card);color:var(--color-text-primary)}.shared-modal__peek-handle:active{cursor:grabbing}.shared-modal__body{--modal-body-padding: 1.5625rem;padding:var(--modal-body-padding);flex:1;min-height:0;overflow:auto}.shared-modal__footer{display:flex;justify-content:flex-end;gap:var(--space-md);padding:1.25rem 1.5625rem;border-top:1px solid var(--color-border);flex:0 0 auto}@media(max-width:1023px){.shared-modal--lg,.shared-modal--xl{min-width:0;max-width:92vw}}@media(max-width:639px){.shared-modal-overlay{align-items:flex-end}.shared-modal,.shared-modal--sm,.shared-modal--md,.shared-modal--lg,.shared-modal--xl{width:100%;min-width:0;max-width:100%;border-radius:var(--radius-lg) var(--radius-lg) 0 0;animation:shared-slide-up .25s ease-out}.shared-modal--sm,.shared-modal--md{max-height:92vh;height:auto}.shared-modal--lg,.shared-modal--xl{height:92vh}.shared-modal__header,.shared-modal__footer{padding:1rem}.shared-modal__body{--modal-body-padding: 1rem}.shared-modal__footer{flex-wrap:wrap;padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}.shared-modal__body--flush{--modal-body-padding: 0rem}.modal-route__actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.modal-route__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-sm);flex-wrap:wrap;width:100%}.modal-route__error{margin-right:auto;color:var(--danger);font-size:var(--font-size-sm)}.modal-route .page-container,.modal-route .page-content{width:100%;max-width:none}.modal-route .shared-modal__body{overflow-y:auto}.modal-route.shared-modal--lg,.modal-route.shared-modal--xl{height:auto;max-height:90vh}.modal-route .tabs--sticky{top:0}.shared-message{--msg-hue: var(--info);--msg-wash: var(--info-soft);--msg-ink: var(--info-on-soft);display:flex;align-items:flex-start;gap:var(--space-sm);padding:.75rem .875rem;margin-bottom:var(--space-md);background:color-mix(in srgb,var(--msg-wash) 72%,var(--surface-card));border:1px solid color-mix(in srgb,var(--msg-hue) 26%,transparent);border-radius:var(--radius-lg);color:var(--color-text-primary);font-size:var(--font-size-md);font-weight:var(--font-weight-normal);line-height:1.5;animation:shared-message-in .18s ease-out}.shared-message--success{--msg-hue: var(--success);--msg-wash: var(--success-soft);--msg-ink: var(--success-on-soft)}.shared-message--error{--msg-hue: var(--danger);--msg-wash: var(--danger-soft);--msg-ink: var(--danger-on-soft)}.shared-message--warning{--msg-hue: var(--warning);--msg-wash: var(--warning-soft);--msg-ink: var(--warning-on-soft)}.shared-message--info{--msg-hue: var(--info);--msg-wash: var(--info-soft);--msg-ink: var(--info-on-soft)}.shared-message__icon{display:flex;flex:none;align-items:center;height:1.5rem;color:var(--msg-ink);font-size:1.25rem;line-height:0}.shared-message__body{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.shared-message__title{font-weight:var(--font-weight-semibold);line-height:1.4}.shared-message__text{overflow-wrap:anywhere}.shared-message__body>p{margin:0}.shared-message__dismiss{display:flex;flex:none;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin:-.125rem -.25rem 0 0;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);font-size:1rem;line-height:0;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.shared-message__dismiss:hover{background:color-mix(in srgb,var(--msg-hue) 16%,transparent);color:var(--color-text-primary)}.shared-message__dismiss:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.shared-message a{color:var(--msg-ink);font-weight:var(--font-weight-semibold);text-decoration:underline;text-underline-offset:.15em;border-radius:var(--radius-xs)}.shared-message a:hover{color:color-mix(in srgb,var(--msg-ink) 80%,var(--color-text-primary))}.shared-message a:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}@keyframes shared-message-in{0%{opacity:0;transform:translateY(-.25rem)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.shared-message{animation:none}}@media(max-width:639px){.shared-message{padding:.625rem .75rem;font-size:var(--font-size-sm)}}.wm-msg{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.5rem 0;font-size:.82rem;color:var(--color-text-secondary)}.wm-msg--error{color:var(--danger)}.wm-msg__text{line-height:1.35}.eb-fallback{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1rem;font-size:.85rem;color:var(--color-text-secondary)}.eb-fallback__text{line-height:1.35}.shared-spinner-wrapper{display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.shared-spinner-fullpage{display:flex;justify-content:center;align-items:center;padding:var(--space-xl);width:100%;min-height:12.5rem}.shared-spinner{border-radius:50%;animation:shared-spin .8s linear infinite}.shared-spinner--sm{width:1rem;height:1rem;border:2px solid var(--color-border-light);border-top-color:var(--color-action)}.shared-spinner--md{width:1.5rem;height:1.5rem;border:3px solid var(--color-border-light);border-top-color:var(--color-action)}.shared-spinner--lg{width:2.5rem;height:2.5rem;border:4px solid var(--color-border-light);border-top-color:var(--color-action)}.shared-spinner__text{font-size:var(--font-size-base);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}.shared-stat-card{background:var(--color-bg-card);border-radius:var(--radius-lg);border:solid 1px var(--color-border);text-align:center;transition:transform var(--transition-base),box-shadow var(--transition-base)}.shared-stat-card-normal{padding:1.5625rem}.shared-stat-card-small{padding:.9375rem}.shared-stat-card-bg-page{box-shadow:var(--shadow-md)}.shared-stat-card--hoverable:hover{transform:translateY(-.125rem);box-shadow:var(--shadow-lg)}.shared-stat-card--clickable{cursor:pointer}.shared-stat-card__value{font-size:2.5rem;font-weight:var(--font-weight-bold);margin-bottom:var(--space-sm);color:var(--color-text-primary)}.shared-stat-card__value--success{color:var(--color-success)}.shared-stat-card__value--danger{color:var(--color-danger)}.shared-stat-card__value--info{color:var(--color-info)}.shared-stat-card__value--warning{color:var(--color-warning)}.shared-stat-card__label{font-size:var(--font-size-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}@media(max-width:768px){.shared-stat-card{padding:var(--space-md, 1rem)}.shared-stat-card__value{font-size:1.75rem}.shared-stat-card__label{font-size:var(--font-size-xs, .75rem);letter-spacing:.3px}}@media(max-width:480px){.shared-stat-card{padding:var(--space-sm, .75rem)}.shared-stat-card__value{font-size:1.4rem}}.shared-form{width:100%}.shared-form--vertical{display:flex;flex-direction:column}.shared-form--horizontal{display:flex;flex-direction:row;flex-wrap:wrap;align-items:flex-start}.shared-form--horizontal>*{flex:1;min-width:12.5rem}.shared-form--spacing-sm>*+*{margin-top:var(--space-sm)}.shared-form--spacing-md>*+*{margin-top:var(--space-md)}.shared-form--spacing-lg>*+*{margin-top:var(--space-lg)}.shared-form--horizontal.shared-form--spacing-sm{gap:var(--space-sm)}.shared-form--horizontal.shared-form--spacing-md{gap:var(--space-md)}.shared-form--horizontal.shared-form--spacing-lg{gap:var(--space-lg)}.shared-form--horizontal>*+*{margin-top:0}.tabs{margin-bottom:var(--space-md);position:relative}.tabs__list{display:flex;align-items:center;gap:var(--space-sm);padding:0;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.tabs__group.shared-seg--block{flex:1 1 auto}.tabs__tab{-webkit-user-select:none;user-select:none;position:relative}.tabs__tab:not(.tabs__tab--stretch){flex-shrink:0}.tabs__tab[aria-selected=true] .tabs__drag-handle,.tabs__tab[aria-selected=true] .tabs__edit-btn{color:inherit}.tabs__hamburger{display:none}.tabs__tab[draggable=true]{cursor:grab}.tabs__tab[draggable=true]:active{cursor:grabbing;opacity:.7}.tabs__drag-handle{display:flex;align-items:center;color:var(--color-text-muted);flex-shrink:0;margin-right:var(--space-xs)}.tabs__label{pointer-events:none}.tabs__edit-btn{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.125rem;margin-left:var(--space-xs);border-radius:var(--radius-sm);display:flex;align-items:center;opacity:0;transition:opacity var(--transition-base),color var(--transition-base);flex-shrink:0}.tabs__tab:hover .tabs__edit-btn{opacity:1}.tabs__add-btn{flex-shrink:0}.tabs--sticky{position:sticky;top:calc(var(--dtb-height, 3.125rem) + var(--page-header-height, 6.5rem) - var(--space-xl));z-index:99;margin-bottom:var(--space-md)}.tabs__sticky-content{background-color:var(--color-bg-app);padding:var(--space-sm) 0;overflow:hidden}.tabs-sticky-spacer{height:var(--space-md);min-height:var(--space-md);background:var(--color-bg-app);pointer-events:none}@media(max-width:768px){.tabs__hamburger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--space-sm) var(--space-md);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);color:var(--text-primary);margin-bottom:var(--space-sm, .25rem)}.tabs__hamburger:hover{background-color:var(--surface-hover)}.tabs__hamburger-label{flex:1;text-align:left}.tabs__hamburger-icon{display:flex;align-items:center;transition:transform var(--transition-base)}.tabs__hamburger-icon--open{transform:rotate(90deg)}.tabs--sticky .tabs__sticky-content{overflow:visible}.tabs__list{display:none;flex-direction:column;align-items:stretch;gap:var(--space-xs);overflow:visible;position:absolute;left:0;right:0;z-index:200}.tabs__list--open{display:flex}.tabs__group,.tabs__group.shared-seg--block{flex:0 0 auto;width:100%;flex-direction:column;box-shadow:var(--shadow-lg)}.tabs .tabs__group .tabs__tab{border-right:none;border-bottom:1px solid var(--border-default);justify-content:flex-start;white-space:normal;padding:var(--space-md) var(--space-lg)}.tabs .tabs__group .tabs__tab:last-child{border-bottom:none}.tabs__edit-btn{opacity:1}.tabs__add-btn{width:100%}}.rte{position:relative;display:flex;flex-direction:column;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-card);overflow:hidden}.rte.is-drag-over{border-color:var(--color-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-primary) 25%,transparent)}.rte-toolbar{display:flex;flex:none;flex-wrap:nowrap;align-items:center;gap:.125rem;min-width:0;padding:var(--space-sm);background:var(--surface-sunken);border-bottom:1px solid var(--color-border);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.rte-toolbar::-webkit-scrollbar{display:none}.rte-toolbar__ruler{position:absolute;top:0;left:0;display:flex;align-items:center;gap:.125rem;visibility:hidden;pointer-events:none;white-space:nowrap}.rte-toolbar__more{margin-left:auto;flex:none}.rte-toolbar__more-glyph{display:inline-block;width:1.5rem;margin-right:.35rem;text-align:center;opacity:.8}.rte-toolbar__btn{width:auto;min-width:2.25rem;padding:0 .5rem;font-size:var(--font-size-sm);flex-shrink:0;user-select:none;-webkit-user-select:none}.rte-toolbar__btn.is-active{background:var(--color-primary);color:#fff}.rte-toolbar__btn:disabled{opacity:.4;cursor:not-allowed}.rte-toolbar__sep{width:1px;height:1.75rem;margin:0 .25rem;flex:none;background:var(--color-border)}.rte__content{flex:1;min-height:0;padding:var(--space-md);overflow-y:auto;overflow-x:hidden}.rte__content .tiptap{outline:none;min-height:100%;line-height:1.6;overflow-wrap:anywhere}.rte__content .tiptap p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:var(--color-text-secondary);opacity:.5;pointer-events:none}.rte__content .tiptap h1{font-size:1.7em;font-weight:var(--font-weight-bold);margin:.5em 0}.rte__content .tiptap h2{font-size:1.4em;font-weight:var(--font-weight-bold);margin:.5em 0}.rte__content .tiptap h3{font-size:1.2em;font-weight:var(--font-weight-semibold);margin:.5em 0}.rte__content .tiptap p{margin:0 0 .6em}.rte__content .tiptap a{color:var(--color-primary);text-decoration:underline;cursor:pointer}.rte__content .tiptap img{max-width:100%;height:auto;border-radius:var(--radius-md);margin:var(--space-sm) 0}.rte__content .tiptap blockquote{border-left:4px solid var(--color-primary);padding-left:var(--space-md);margin:var(--space-md) 0;color:var(--color-text-secondary);font-style:italic}.rte__content .tiptap ul,.rte__content .tiptap ol{padding-left:1.5em;margin:var(--space-sm) 0}.rte__content .tiptap li{margin:var(--space-xs) 0}.rte__content .tiptap hr{border:none;border-top:2px solid var(--color-border);margin:var(--space-md) 0}.rte__content .tiptap code{background:var(--surface-sunken);padding:.125rem .375rem;border-radius:var(--radius-sm);font-family:monospace;font-size:.9em}.rte__overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--color-bg-card) 82%,transparent);color:var(--color-primary);font-weight:var(--font-weight-semibold);pointer-events:none}.ss{position:relative;display:inline-block;min-width:10rem}.ss--md{font-size:var(--font-size-base)}.ss--sm{font-size:var(--font-size-sm)}.ss__control{display:flex;align-items:center;justify-content:space-between;gap:.4rem;width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--surface-card);color:var(--color-text-primary);cursor:pointer;text-align:left;font-family:var(--font-family)}.ss--sm .ss__control{height:2rem;padding:0 .6rem;font-size:var(--font-size-sm)}.ss--md .ss__control{min-height:2.5rem;padding:0 .75rem;font-size:var(--font-size-base)}.ss__control:hover:not(:disabled){border-color:var(--color-border-input-focus, var(--color-primary))}.ss__control:disabled{opacity:.6;cursor:not-allowed}.ss--open .ss__control{border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 25%,transparent)}.ss__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ss__value--placeholder{color:var(--color-text-secondary)}.ss__caret{flex-shrink:0;font-size:.7em;color:var(--color-text-secondary)}.ss__menu{position:absolute;z-index:50;top:calc(100% + .25rem);left:0;right:0;min-width:100%;background:var(--surface-card);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:.375rem;display:flex;flex-direction:column;gap:.375rem}.ss__search{width:100%;box-sizing:border-box;padding:.375rem .625rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-family:var(--font-family);background:var(--surface-card);color:var(--color-text-primary)}.ss__search:focus{outline:none;border-color:var(--color-primary)}.ss__list{max-height:16.25rem;overflow-y:auto;display:flex;flex-direction:column;gap:.125rem}.ss__option{display:block;flex-shrink:0;width:100%;text-align:left;border:none;background:transparent;color:var(--color-text-primary);padding:.5625rem .75rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-sm);line-height:1.4;font-family:var(--font-family);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ss__option--active{background:var(--surface-hover)}.ss__option--selected{color:var(--color-primary);font-weight:var(--font-weight-medium)}.ss__empty{padding:.625rem;text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dtp,.dtp-panel,.dtp-sheet{--dtp-cell: 2.25rem;--dtp-row: 2.25rem}.dtp{position:relative;display:inline-flex;flex-direction:column;min-width:12rem}.dtp--full{display:flex;width:100%}@media(pointer:coarse){.dtp,.dtp-panel,.dtp-sheet{--dtp-cell: 2.75rem;--dtp-row: 2.75rem}}.dtp__control{position:relative;display:flex;align-items:center;width:100%;border:2px solid var(--color-border-input);border-radius:var(--radius-md);background-color:var(--color-bg-input);transition:border-color var(--transition-slow);box-sizing:border-box}.dtp__control:hover:not(:has(.dtp__trigger:disabled)){border-color:var(--color-border-input-focus, var(--color-action))}.dtp__control:focus-within{border-color:var(--color-border-input-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 25%,transparent)}.dtp__control--error{border-color:var(--color-danger)}.dtp__control--error:focus-within{box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 25%,transparent)}.dtp__trigger{display:flex;align-items:center;gap:.5rem;flex:1;min-width:0;border:none;background:none;font-family:var(--font-family);color:var(--color-text-primary);text-align:left;cursor:pointer}.dtp__control--sm .dtp__trigger{padding:.375rem .625rem;font-size:var(--font-size-sm)}.dtp__control--md .dtp__trigger{padding:.625rem .75rem;font-size:var(--font-size-base)}.dtp__control--lg .dtp__trigger{padding:.875rem 1rem;font-size:var(--font-size-lg)}.dtp__trigger:disabled{cursor:not-allowed}.dtp--disabled .dtp__control{background-color:var(--color-bg-input-disabled);opacity:.6}.dtp__icon{display:flex;flex-shrink:0;color:var(--color-text-secondary)}.dtp__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtp__value--placeholder{color:var(--color-text-secondary)}.dtp__clear{flex-shrink:0;border:none;background:none;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;padding:0 .625rem;align-self:stretch;cursor:pointer;border-radius:var(--radius-md)}.dtp__clear:hover{color:var(--color-text-primary);background:var(--surface-hover)}.dtp-panel{background:var(--surface-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text-primary);font-family:var(--font-family)}.dtp-panel--popover{position:fixed;z-index:var(--z-modal);animation:shared-fade-in var(--transition-fast);display:flex;flex-direction:column}.dtp-panel--popover>.dtp-panel__body{min-height:0;overflow:auto}.dtp-panel--inline{position:static;box-shadow:none;width:fit-content;max-width:100%}.dtp-panel__body{display:flex;padding:var(--space-sm);gap:var(--space-sm)}.dtp-panel__body--split{flex-wrap:wrap}.dtp-panel__body--split>.dtp-panel__time{border-left:1px solid var(--color-border);padding-left:var(--space-sm)}.dtp-panel__time{display:flex;align-items:stretch;min-width:0}.dtp-panel__foot{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border-top:1px solid var(--color-border)}.dtp-panel__preview{flex:1;min-width:0;font-size:var(--font-size-sm);color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtp-panel__btn{border:1px solid var(--color-border);background:var(--surface-card);color:var(--color-text-primary);border-radius:var(--radius-md);padding:.4rem .9rem;min-height:2.25rem;font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer}.dtp-panel__btn:hover:not(:disabled){background:var(--surface-hover)}.dtp-panel__btn:disabled{opacity:.5;cursor:not-allowed}.dtp-panel__btn--primary{background:var(--color-action);border-color:var(--color-action);color:var(--text-on-action)}.dtp-panel__btn--primary:hover:not(:disabled){background:var(--color-action-hover);border-color:var(--color-action-hover)}.dtp-quick{display:flex;gap:var(--space-xs);padding:var(--space-sm) var(--space-sm) 0}.dtp-quick__btn{border:1px solid var(--color-border);background:transparent;color:var(--color-text-primary);border-radius:var(--radius-full);padding:.25rem .75rem;min-height:1.875rem;font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer}.dtp-quick__btn:hover:not(:disabled){background:var(--surface-hover)}.dtp-quick__btn:disabled{opacity:.45;cursor:not-allowed}.dtp-quick__btn--clear{margin-left:auto;color:var(--color-text-secondary)}.dtp-cal{--dtp-cols: repeat(7, var(--dtp-cell));display:flex;flex-direction:column;gap:.125rem;-webkit-user-select:none;user-select:none}.dtp-cal--weeks{--dtp-cols: 1.75rem repeat(7, var(--dtp-cell))}.dtp-cal--lg{--dtp-cell: 2.75rem}.dtp-cal__head{display:flex;align-items:center;gap:.25rem;padding-bottom:.25rem}.dtp-cal__nav{display:flex;align-items:center;justify-content:center;width:var(--dtp-cell);height:var(--dtp-cell);flex-shrink:0;border:none;background:transparent;color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer}.dtp-cal__nav:hover:not(:disabled){background:var(--surface-hover)}.dtp-cal__nav:disabled{opacity:.35;cursor:not-allowed}.dtp-cal__title{position:relative;flex:1;display:flex;align-items:center;justify-content:center;min-width:0}.dtp-cal__caption{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);text-transform:capitalize;pointer-events:none;white-space:nowrap}.dtp-cal__select{position:absolute;top:0;right:0;bottom:0;left:0;width:55%;opacity:0;cursor:pointer;font-family:var(--font-family)}.dtp-cal__select--year{left:auto;right:0;width:45%}.dtp-cal__title:hover .dtp-cal__caption{color:var(--color-action)}.dtp-cal__weekdays,.dtp-cal__grid{display:grid;grid-template-columns:var(--dtp-cols);gap:.125rem;justify-content:center}.dtp-cal__weekday,.dtp-cal__weeknum{display:flex;align-items:center;justify-content:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);height:1.5rem}.dtp-cal__weeknum{height:var(--dtp-cell);opacity:.7}.dtp-cal__day{display:flex;align-items:center;justify-content:center;width:var(--dtp-cell);height:var(--dtp-cell);border:none;background:transparent;color:var(--color-text-primary);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color var(--transition-fast)}.dtp-cal__day:hover:not(:disabled){background:var(--surface-hover)}.dtp-cal__day:focus-visible{outline:2px solid var(--color-action);outline-offset:-2px}.dtp-cal__day:disabled{opacity:.3;cursor:not-allowed}.dtp-cal__day--outside{color:var(--color-text-secondary);opacity:.55}.dtp-cal__day--weekend:not(.dtp-cal__day--selected){color:var(--color-text-secondary)}.dtp-cal__day--today{font-weight:var(--font-weight-semibold);box-shadow:inset 0 0 0 1px var(--color-border-input-focus, var(--color-action))}.dtp-cal__day--selected{background:var(--color-action);color:var(--text-on-action);font-weight:var(--font-weight-semibold);box-shadow:none}.dtp-cal__day--selected:hover:not(:disabled){background:var(--color-action-hover)}.dtp-times{position:relative;display:flex;flex-direction:column;gap:.125rem;overflow-y:auto;max-height:calc(var(--dtp-cell) * 7 + 2.25rem);padding-right:.25rem;scrollbar-width:thin}.dtp-times__item{flex-shrink:0;min-width:4.5rem;min-height:var(--dtp-row);padding:0 .75rem;border:none;background:transparent;color:var(--color-text-primary);border-radius:var(--radius-md);font-family:var(--font-family);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;text-align:center;cursor:pointer}.dtp-times__item:hover:not(:disabled){background:var(--surface-hover)}.dtp-times__item:disabled{opacity:.3;cursor:not-allowed}.dtp-times__item--selected{background:var(--color-action);color:var(--text-on-action);font-weight:var(--font-weight-semibold)}.dtp-times__item--selected:hover:not(:disabled){background:var(--color-action-hover)}.dtp-wheel{position:relative;display:flex;align-items:center;justify-content:center;gap:.25rem;padding:0 var(--space-sm);--dtp-wheel-visible: 5}.dtp-wheel--lg{--dtp-wheel-visible: 5}.dtp-wheel__col{position:relative;z-index:1;height:calc(var(--dtp-row) * var(--dtp-wheel-visible));overflow-y:auto;scroll-snap-type:y mandatory;scrollbar-width:none;padding-block:calc(var(--dtp-row) * ((var(--dtp-wheel-visible) - 1) / 2));overscroll-behavior:contain;touch-action:pan-y}.dtp-wheel__col::-webkit-scrollbar{display:none}.dtp-wheel__col:focus-visible{outline:2px solid var(--color-action);border-radius:var(--radius-md)}.dtp-wheel__item{display:flex;align-items:center;justify-content:center;height:var(--dtp-row);min-width:3rem;scroll-snap-align:center;font-size:var(--font-size-base);font-variant-numeric:tabular-nums;color:var(--color-text-secondary);cursor:pointer;transition:color var(--transition-fast),transform var(--transition-fast)}.dtp-wheel__item--active{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}.dtp-wheel__sep{position:relative;z-index:1;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.dtp-wheel__highlight{position:absolute;left:var(--space-sm);right:var(--space-sm);top:50%;height:var(--dtp-row);transform:translateY(-50%);border-radius:var(--radius-md);background:var(--surface-hover);pointer-events:none}.dtp-step{display:flex;align-items:flex-start;justify-content:center;gap:.5rem;padding:var(--space-sm)}.dtp-step__field{display:flex;flex-direction:column;align-items:center;gap:.25rem}.dtp-step__btn{display:flex;align-items:center;justify-content:center;width:100%;min-width:3.5rem;min-height:var(--dtp-row);border:1px solid var(--color-border);background:var(--surface-card);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer}.dtp-step__btn:hover{background:var(--surface-hover)}.dtp-step__btn:active{background:var(--color-action);border-color:var(--color-action);color:var(--text-on-action)}.dtp-step__value{width:3.5rem;padding:.25rem;border:1px solid transparent;border-radius:var(--radius-md);background:transparent;color:var(--color-text-primary);font-family:var(--font-family);font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;text-align:center}.dtp-step__value:focus{outline:none;border-color:var(--color-action);background:var(--color-bg-input)}.dtp-step__label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.dtp-step__sep{font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);padding-top:calc(var(--dtp-row) + .4rem)}.dtp-dial{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-sm)}.dtp-dial__readout{display:flex;align-items:baseline;gap:.125rem;font-variant-numeric:tabular-nums}.dtp-dial__unit{border:none;background:transparent;color:var(--color-text-secondary);font-family:var(--font-family);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:1;padding:.25rem .5rem;border-radius:var(--radius-md);cursor:pointer}.dtp-dial__unit--active{color:var(--color-action);background:var(--surface-hover)}.dtp-dial__colon{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.dtp-dial__face{position:relative;width:16rem;height:16rem;border-radius:50%;background:var(--surface-hover);touch-action:none;cursor:pointer;-webkit-user-select:none;user-select:none}.dtp-dial--lg .dtp-dial__face{width:17rem;height:17rem}.dtp-dial__face:focus-visible{outline:2px solid var(--color-action);outline-offset:2px}.dtp-dial__num{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border-radius:50%;font-size:var(--font-size-base);font-variant-numeric:tabular-nums;color:var(--color-text-primary);pointer-events:none}.dtp-dial__num--inner{width:2rem;height:2rem;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.dtp-dial__num--active{color:var(--text-on-action);font-weight:var(--font-weight-semibold)}.dtp-dial__hand{position:absolute;left:50%;bottom:50%;width:2px;transform-origin:bottom center;background:var(--color-action);pointer-events:none}.dtp-dial__knob{position:absolute;top:0;left:50%;width:2.25rem;height:2.25rem;transform:translate(-50%,-50%);border-radius:50%;background:var(--color-action)}.dtp-dial__center{position:absolute;top:50%;left:50%;width:.5rem;height:.5rem;transform:translate(-50%,-50%);border-radius:50%;background:var(--color-action);pointer-events:none}.dtp-sheet__overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--shadow-color) 45%,transparent);animation:shared-fade-in var(--transition-fast)}.dtp-sheet{display:flex;flex-direction:column;width:min(30rem,100%);max-height:90dvh;overflow:hidden;background:var(--surface-card);color:var(--color-text-primary);font-family:var(--font-family);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:var(--shadow-lg);padding-bottom:env(safe-area-inset-bottom,0);animation:shared-slide-up var(--transition-base)}.dtp-sheet__grip{width:2.5rem;height:.25rem;margin:.5rem auto 0;border-radius:var(--radius-full);background:var(--color-border)}.dtp-sheet__head{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md) 0}.dtp-sheet__title{flex:1;font-weight:var(--font-weight-semibold);font-size:var(--font-size-lg)}.dtp-sheet__close{width:var(--touch-target);height:var(--touch-target);border:none;background:transparent;color:var(--color-text-secondary);font-size:1.75rem;line-height:1;border-radius:var(--radius-md);cursor:pointer}.dtp-sheet__close:hover{background:var(--surface-hover)}.dtp-sheet .dtp-panel__body,.dtp-sheet .dtp-panel__body--split{flex-direction:column;align-items:center;padding:var(--space-sm) var(--space-md);gap:var(--space-md)}.dtp-sheet .dtp-panel__body--split>.dtp-panel__time{border-left:none;border-top:1px solid var(--color-border);padding-left:0;padding-top:var(--space-md);width:100%;justify-content:center}.dtp-sheet .dtp-panel__body{flex:1;min-height:0;overflow-y:auto}.dtp-sheet .dtp-quick{padding:var(--space-sm) var(--space-md) 0;flex-shrink:0}.dtp-sheet .dtp-panel__foot{padding:var(--space-md);flex-shrink:0}.dtp-sheet .dtp-panel__btn{min-height:var(--touch-target);padding:.5rem 1.25rem}.dtp-sheet .dtp-quick__btn{min-height:2.25rem}.dtp-sheet .dtp-times{max-height:calc(var(--dtp-row) * 5);width:100%;align-items:center}.dtp-sheet .dtp-panel__body:not(.dtp-panel__body--split) .dtp-times{max-height:calc(var(--dtp-row) * 9)}.dtp-sheet .dtp-times__item{width:100%;max-width:12rem}.dtp-sheet .dtp-wheel__item,.dtp-sheet .dtp-step__btn{min-width:4.5rem}@media(max-height:600px){.dtp-panel--popover{max-height:85dvh;overflow-y:auto}}.shared-checkbox{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none}.shared-checkbox--disabled{opacity:.6;cursor:not-allowed}.shared-checkbox__input{width:1rem;height:1rem;accent-color:var(--color-action);cursor:pointer;margin:0}.shared-checkbox--disabled .shared-checkbox__input{cursor:not-allowed}.shared-checkbox__label{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:1.4}@media(max-width:639px){.shared-checkbox{min-height:var(--touch-target)}.shared-checkbox__input{width:1.25rem;height:1.25rem}}.shared-checkbox-group{display:flex;flex-direction:column;gap:var(--space-sm)}.shared-checkbox-group--horizontal{flex-direction:row;flex-wrap:wrap}.shared-checkbox-group__label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-base);width:100%}.shared-radio-option{display:inline-flex;align-items:center;gap:var(--space-sm);cursor:pointer;-webkit-user-select:none;user-select:none;padding:var(--space-sm) var(--space-md);border:none;transition:all var(--transition-base)}.shared-radio-option--disabled{opacity:.6;cursor:not-allowed}.shared-radio-option__input{width:1rem;height:1rem;accent-color:var(--color-action);cursor:pointer;margin:0}.shared-radio-option--disabled .shared-radio-option__input{cursor:not-allowed}.shared-radio-option__label{font-size:var(--font-size-base);color:var(--color-text-primary);line-height:1.4}.shared-radio-group{display:flex;flex-direction:column;gap:var(--space-sm)}.shared-radio-group--horizontal{flex-direction:row;flex-wrap:wrap}.shared-radio-group__label{display:block;margin-bottom:var(--space-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-base);width:100%}.shared-search{position:relative;display:inline-flex;align-items:center}.shared-search--full{width:100%}.shared-search__icon{position:absolute;left:.75rem;color:var(--color-text-secondary);pointer-events:none;flex-shrink:0}.shared-search__input{display:block;width:100%;padding:.625rem .75rem .625rem 2.25rem;font-size:var(--font-size-base);border:2px solid var(--color-border-input);border-radius:var(--radius-md);background-color:var(--color-bg-input);transition:border-color var(--transition-slow);font-family:var(--font-family);box-sizing:border-box}.shared-search__input:focus{outline:none;border-color:var(--color-border-input-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--border-focus) 25%,transparent)}.shared-search__input:disabled{background-color:var(--color-bg-input-disabled);cursor:not-allowed;opacity:.6}.shared-search--sm .shared-search__input{padding:.375rem .625rem .375rem 2rem;font-size:var(--font-size-sm)}.shared-search--sm .shared-search__icon{left:.625rem}.shared-search--lg .shared-search__input{padding:.875rem 1rem .875rem 2.625rem;font-size:var(--font-size-lg)}.shared-search--lg .shared-search__icon{left:.875rem}.shared-selectable-list{list-style:none;margin:0;padding:var(--space-xs) 0;overflow-y:auto;background:var(--color-bg-card)}.shared-selectable-list__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);cursor:pointer;font-weight:var(--font-weight-medium);color:var(--color-text-primary);border-left:3px solid transparent;transition:background var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);-webkit-user-select:none;user-select:none}.shared-selectable-list--sm .shared-selectable-list__item{font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-md)}.shared-selectable-list--md .shared-selectable-list__item{font-size:var(--font-size-base);padding:.625rem var(--space-md)}.shared-selectable-list--lg .shared-selectable-list__item{font-size:var(--font-size-lg);padding:.75rem var(--space-md)}.shared-selectable-list__item:hover{background:var(--color-primary-light)}.shared-selectable-list__item:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px}.shared-selectable-list__item.is-active{background:var(--color-primary-light);border-left-color:var(--color-primary);color:var(--color-primary);font-weight:var(--font-weight-semibold)}.shared-selectable-list__item.is-partial:not(.is-active){border-left-color:var(--color-warning)}.shared-selectable-list__item.is-full:not(.is-active){border-left-color:var(--color-success)}.shared-selectable-list__label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.shared-selectable-list__badge{flex-shrink:0;padding:.0625rem var(--space-sm);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:var(--color-border);color:var(--color-text-secondary);transition:background var(--transition-fast),color var(--transition-fast);min-width:2rem;text-align:center}.shared-selectable-list__item.is-partial .shared-selectable-list__badge{background:var(--color-warning-bg);color:var(--color-warning-text)}.shared-selectable-list__item.is-full .shared-selectable-list__badge{background:var(--color-success-bg);color:var(--color-success-text)}.shared-selectable-list__empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-lg) var(--space-md);font-style:italic;font-size:var(--font-size-sm)}.shared-file{display:flex;flex-direction:column;gap:var(--space-sm);width:100%}.shared-file__drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);width:100%;min-height:7.5rem;padding:var(--space-lg) var(--space-md);border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:var(--surface-sunken);color:var(--text-secondary);font:inherit;text-align:center;cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base),color var(--transition-base)}.shared-file__drop:hover:not(:disabled),.shared-file__drop--over{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-on-soft)}.shared-file__drop:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.shared-file__drop:disabled{cursor:not-allowed;opacity:.6}.shared-file__drop--filled{min-height:0;padding:var(--space-md)}.shared-file__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.shared-file__sub{font-weight:var(--font-weight-normal)}.shared-file__hint{font-size:var(--font-size-xs);color:var(--text-muted)}.shared-file__input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);border:0}.shared-file__list{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0;list-style:none}.shared-file__item{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);font-size:var(--font-size-sm);color:var(--text-primary)}.shared-file__item-icon{flex:0 0 auto;color:var(--text-secondary)}.shared-file__name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shared-file__size{flex:0 0 auto;color:var(--text-muted);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums}.shared-file__rejected{margin:0;font-size:var(--font-size-sm);color:var(--danger)}@media(pointer:coarse){.shared-file__drop{min-height:var(--touch-target);padding:var(--space-lg)}}.user-group-selection-modal__choices{margin-bottom:var(--space-sm)}.user-group-selection-modal__content{display:flex;flex-direction:column;gap:.85rem;max-height:70vh;overflow:hidden}.user-group-selection-modal__content--inline{max-height:none;overflow:visible}.user-group-selection-modal__search{margin-bottom:.5rem}.user-group-selection-modal__results{max-height:12.5rem;overflow-y:auto;border:1px solid var(--border-default);border-radius:.5rem;padding:.5rem}.user-group-selection-modal__results-list{list-style:none;padding:0;margin:0}.user-group-selection-modal__result-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-radius:.375rem;transition:background-color .2s}.user-group-selection-modal__result-item:hover{background-color:var(--surface-hover)}.user-group-selection-modal__result-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.user-group-selection-modal__result-name{font-weight:500;color:var(--text-primary)}.user-group-selection-modal__result-email{font-size:.875rem;color:var(--text-secondary)}.user-group-selection-modal__list-actions{display:flex;align-items:center;gap:var(--space-md);margin-bottom:.5rem}.user-group-selection-modal__count{margin-left:auto;font-size:.875rem;color:var(--text-secondary)}.user-group-selection-modal__list{max-height:20rem;overflow-y:auto;border:1px solid var(--border-default);border-radius:.5rem}.user-group-selection-modal__list-item{display:flex;width:100%;align-items:center;gap:.75rem;padding:.625rem .75rem;border-bottom:1px solid var(--border-default);transition:background-color .2s}.user-group-selection-modal__list-item:last-child{border-bottom:none}.user-group-selection-modal__list-item:hover{background-color:var(--surface-hover)}.user-group-selection-modal__list-item--selected{background-color:var(--info-soft)}.user-group-selection-modal__list-item-info{display:flex;flex-direction:column;gap:.125rem}.user-group-selection-modal__list-item-name{color:var(--text-primary)}.user-group-selection-modal__list-item-sub{font-size:.875rem;color:var(--text-secondary)}.user-group-selection-modal__list::-webkit-scrollbar{width:.5rem}.user-group-selection-modal__list::-webkit-scrollbar-track{background:var(--surface-sunken);border-radius:.25rem}.user-group-selection-modal__list::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:.25rem}.user-group-selection-modal__selected{flex:1;overflow-y:auto;border:1px solid var(--border-default);border-radius:.5rem;padding:1rem;background-color:var(--surface-sunken)}.user-group-selection-modal__selected-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.user-group-selection-modal__selected-section{margin-bottom:1.5rem}.user-group-selection-modal__selected-section:last-child{margin-bottom:0}.user-group-selection-modal__selected-subtitle{font-size:.875rem;font-weight:600;margin:0 0 .5rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.user-group-selection-modal__selected-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.5rem}.user-group-selection-modal__selected-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background-color:var(--surface-card);border:1px solid var(--border-default);border-radius:.375rem;transition:all .2s}.user-group-selection-modal__selected-item:hover{border-color:var(--accent-soft);box-shadow:var(--shadow-sm)}.user-group-selection-modal__selected-info{display:flex;flex-direction:column;gap:.25rem;flex:1}.user-group-selection-modal__selected-name{font-weight:500;color:var(--text-primary)}.user-group-selection-modal__selected-email{font-size:.875rem;color:var(--text-secondary)}.user-group-selection-modal__remove-btn{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background:none;border:1px solid var(--border-default);border-radius:.375rem;cursor:pointer;font-size:1.5rem;color:var(--text-secondary);transition:all .2s;line-height:1}.user-group-selection-modal__remove-btn:hover{background-color:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.user-group-selection-modal__message{text-align:center;color:var(--text-secondary);padding:1rem;margin:0}.user-group-selection-modal__hint{display:block;margin-top:.35rem;font-size:.85em;color:var(--text-tertiary, var(--text-secondary))}.user-group-selection-modal__origin{display:inline-block;margin-left:.5rem;padding:.05rem .4rem;border-radius:.75rem;font-size:.7rem;font-weight:600;letter-spacing:.02em;vertical-align:middle;white-space:nowrap;background-color:var(--surface-sunken);color:var(--text-secondary);border:1px solid var(--border-default)}.user-group-selection-modal__origin--webuntis{background-color:var(--info-soft);color:var(--info-on-soft);border-color:transparent}.user-group-selection-modal__origin--itslearning{background-color:var(--success-soft);color:var(--success-on-soft);border-color:transparent}.user-group-selection-modal__entry-meta{font-size:.8rem;color:var(--text-tertiary, var(--text-secondary))}.user-group-selection-modal__problem{display:flex;flex-direction:column;gap:.15rem;margin:0 0 .5rem;padding:.4rem .6rem;border-radius:.375rem;background-color:var(--warning-soft);color:var(--warning-on-soft);font-size:.8rem}.user-group-selection-modal__results::-webkit-scrollbar,.user-group-selection-modal__selected::-webkit-scrollbar{width:.5rem}.user-group-selection-modal__results::-webkit-scrollbar-track,.user-group-selection-modal__selected::-webkit-scrollbar-track{background:var(--surface-sunken);border-radius:.25rem}.user-group-selection-modal__results::-webkit-scrollbar-thumb,.user-group-selection-modal__selected::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:.25rem}.user-group-selection-modal__results::-webkit-scrollbar-thumb:hover,.user-group-selection-modal__selected::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.user-group-selection-modal__exclusion{border:1px solid var(--danger-soft);border-radius:.5rem;padding:.85rem;background-color:var(--danger-soft);display:flex;flex-direction:column;gap:.7rem}.user-group-selection-modal__exclusion-hint{font-size:.8rem;color:var(--danger-on-soft);margin:0}.user-group-selection-modal__exclusion-list{display:flex;flex-direction:column;gap:.5rem}.user-group-selection-modal__exclusion .user-group-selection-modal__results,.user-group-selection-modal__exclusion .user-group-selection-modal__list,.user-group-selection-modal__exclusion .user-group-selection-modal__selected{background-color:var(--surface-card);border-color:var(--border-default)}.user-group-selection-modal__selected-item--excluded{background-color:var(--danger-soft)!important;border-color:var(--danger-soft)!important}.user-group-selection-modal__selected-item--excluded:hover{border-color:var(--danger)!important}.user-group-selection-modal__selected-item--excluded .user-group-selection-modal__selected-name{color:var(--danger-on-soft)}.user-group-selection-modal__selected-options{display:flex;align-items:center;gap:var(--space-sm, .5rem);flex:none;flex-wrap:wrap;justify-content:flex-end;margin-left:var(--space-sm, .5rem)}.user-group-selection-modal__option-check{display:inline-flex;align-items:center;gap:.35rem;color:var(--text-secondary);font-size:.8rem;white-space:nowrap;cursor:pointer}.user-group-selection-modal__selected-note{font-size:.75rem;color:var(--text-secondary)}@media(max-width:639px){.user-group-selection-modal__selected-item{flex-wrap:wrap}.user-group-selection-modal__selected-options{margin-left:0;width:100%;justify-content:flex-start}}.token-auto{position:relative;min-width:0}.token-auto__field{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem;min-height:2.25rem;padding:.25rem .4rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);cursor:text}.token-auto__field:focus-within{border-color:var(--accent);outline:2px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:-1px}.token-auto.is-disabled .token-auto__field{opacity:.6;cursor:not-allowed}.token-auto__input{flex:1;min-width:8rem;border:0;background:none;color:var(--text-primary);font:inherit;padding:.2rem .1rem}.token-auto__input:focus{outline:none}.token-auto__mark{margin-left:.3rem;padding:0 .25rem;border-radius:var(--radius-sm, .25rem);background:color-mix(in srgb,var(--warning, #b8860b) 18%,transparent);color:var(--text-secondary);font-size:.68rem;text-transform:uppercase;letter-spacing:.03em;cursor:help}.token-auto__hint{margin:.25rem 0 0;font-size:.78rem;color:var(--danger)}.token-auto__searching{position:absolute;right:.5rem;top:.55rem;font-size:.75rem;color:var(--text-secondary);pointer-events:none}.token-auto__list{position:absolute;z-index:30;left:0;right:0;margin:.2rem 0 0;padding:.2rem;list-style:none;max-height:15rem;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-overlay, var(--surface-card));box-shadow:var(--shadow-md, 0 8px 24px rgb(0 0 0 / 18%))}.token-auto__option{display:flex;align-items:baseline;gap:.5rem;width:100%;padding:.35rem .5rem;border:0;border-radius:var(--radius-sm, .35rem);background:none;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.token-auto__option.is-active{background:var(--surface-hover)}.token-auto__option-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-auto__option-sub{flex:none;font-size:.78rem;color:var(--text-secondary)}.token-auto__option-origin{flex:none;padding:0 .3rem;border-radius:var(--radius-sm, .25rem);background:var(--surface-sunken);color:var(--text-secondary);font-size:.7rem}.fp-modal .shared-modal__body{display:flex;flex-direction:column;overflow:hidden}.fp{display:flex;flex-direction:column;flex:1;min-height:0}.fp__intro{margin:0 0 .5rem;color:var(--text-secondary)}.fp__target{margin:0 0 .5rem}.fp__bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.fp__crumbs{display:flex;align-items:center;flex-wrap:wrap;gap:.25rem;flex:1;min-width:8rem}.fp__crumb{display:inline-flex;align-items:center;gap:.25rem}.fp__sep{color:var(--text-secondary)}.fp__filter{max-width:11rem}.fp__newfolder{display:flex;align-items:center;gap:.4rem;margin-top:.5rem}.fp__hint{margin:.5rem 0 0;color:var(--text-secondary);font-size:.85rem}.fp__gap{margin:.5rem 0 0;color:var(--warning, var(--text-secondary));font-size:.85rem}.fp__chosen{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.5rem;max-height:5.5rem;overflow-y:auto}.fp__loading{display:flex;justify-content:center;padding:2rem 0}.fp__empty{color:var(--text-secondary);padding:.75rem .25rem}.fp__list{margin-top:.5rem;padding-top:.35rem;border-top:1px solid var(--border-subtle);flex:1;min-height:0;overflow-y:auto}.fp__list--list .fp__row{display:flex;align-items:center;gap:.35rem}.fp__list--list .fp__name{display:flex;align-items:center;gap:.55rem;flex:1;min-width:0;padding:.45rem .5rem;border:0;border-radius:.375rem;background:none;color:var(--text-primary);font:inherit;text-align:left;cursor:pointer}.fp__list--list .fp__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fp__meta{flex:0 0 auto;color:var(--text-secondary);font-size:.8rem;white-space:nowrap}.fp__list--grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.5rem}.fp__list--grid .fp__row{position:relative;display:flex}.fp__list--grid .fp__name{display:flex;flex-direction:column;align-items:center;gap:.35rem;width:100%;padding:.75rem .4rem;border:1px solid transparent;border-radius:.5rem;background:none;color:var(--text-primary);font:inherit;text-align:center;cursor:pointer}.fp__list--grid .fp__label{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;font-size:.85rem;line-height:1.25}.fp__list--grid .fp__pick{position:absolute;top:.3rem;left:.3rem}.fp__name:hover:not(:disabled){background:var(--surface-hover)}.fp__name:disabled{cursor:default}.fp__row--blocked{opacity:.45}.fp__row--blocked .fp__name{cursor:not-allowed}.fp__row--chosen .fp__name{background:var(--surface-selected);border-color:var(--accent)}.fp__pick{display:inline-flex;align-items:center;padding:.25rem;cursor:pointer}.fp__pick input{width:1.1rem;height:1.1rem;accent-color:var(--accent);cursor:pointer}@media(max-width:40rem){.fp__filter{max-width:100%}}.member-mgmt__list{list-style:none;margin:var(--space-sm) 0 0;padding:0}.member-mgmt__empty{color:var(--text-secondary);padding:var(--space-sm) 0}.member-mgmt__row{border-bottom:1px solid var(--border-subtle);padding:.35rem 0}.member-mgmt__row:last-child{border-bottom:0}.member-mgmt__line{display:flex;align-items:center;gap:var(--space-sm);min-height:2rem}.member-mgmt__name{flex:1;min-width:0;overflow-wrap:anywhere}.member-mgmt__note{color:var(--text-secondary);font-style:normal;font-size:.85rem}.member-mgmt__confirm{margin:.35rem 0 .15rem;padding:var(--space-sm);border-radius:.4rem;background:var(--surface-sunken)}.member-mgmt__confirm p{margin:0 0 var(--space-sm);font-size:.9rem}.member-mgmt__confirm-actions,.member-mgmt__add-actions{display:flex;justify-content:flex-end;gap:var(--space-xs)}.member-mgmt__add{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle)}.member-mgmt__add-title{margin:0 0 var(--space-sm);font-size:.95rem}.member-mgmt__add-actions{margin-top:var(--space-sm)}.shared-by-note{margin:var(--space-2, .5rem) 0 0;font-size:var(--font-size-sm, .875rem);line-height:1.45;color:var(--text-secondary)}.entity-card{position:relative;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);transition:transform var(--transition-base),box-shadow var(--transition-base)}.entity-card--openable:hover,.entity-card--openable:focus-within{transform:translateY(-.25rem);box-shadow:var(--shadow-card-hover)}.entity-card--muted,.entity-card--disabled{box-shadow:var(--shadow-sm)}.entity-card--muted .entity-card__title,.entity-card--muted .entity-card__main,.entity-card--muted .entity-card__subtitle,.entity-card--muted .entity-card__description,.entity-card--muted .entity-card__fields,.entity-card--muted .entity-card__foot,.entity-card--disabled .entity-card__title,.entity-card--disabled .entity-card__icon,.entity-card--disabled .entity-card__subtitle,.entity-card--disabled .entity-card__description,.entity-card--disabled .entity-card__fields,.entity-card--disabled .entity-card__foot{color:var(--text-muted)}.entity-card--muted .entity-card__badges,.entity-card--disabled .entity-card__badges{opacity:.75}.entity-card--disabled{border-style:dashed;border-color:var(--border-default);cursor:default}.entity-card--danger{border-color:var(--danger)}.entity-card__head{display:flex;align-items:flex-start;gap:var(--space-sm)}.entity-card__icon{flex:none;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;font-size:1.5rem;line-height:1}.entity-card__icon-img{width:100%;height:100%;object-fit:contain}.entity-card__heading{flex:1;min-width:0}.entity-card__title{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--text-primary);line-height:1.25;overflow-wrap:anywhere}.entity-card__main{display:block;width:100%;padding:0;border:none;background:none;font:inherit;color:inherit;text-align:left;text-decoration:none;cursor:pointer}.entity-card__main:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit}.entity-card__main:focus-visible{outline:none}.entity-card__main:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.entity-card__subtitle{margin:.15rem 0 0;font-size:var(--font-size-sm);color:var(--text-secondary)}.entity-card__preview{aspect-ratio:4 / 3;overflow:hidden;border-radius:var(--radius-sm);background:var(--surface-sunken, rgba(0, 0, 0, .04))}.entity-card__preview img{width:100%;height:100%;object-fit:cover;display:block}.entity-card__badges{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.entity-card__badges .shared-badge{display:inline-flex;align-items:center;gap:.3rem}.entity-card__badges .shared-badge svg{width:.85em;height:.85em;flex:none}.entity-card__description{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.entity-card__bottom{margin-top:auto;display:flex;flex-direction:column;gap:var(--space-xs)}.entity-card__fields{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-xs) var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);font-size:var(--font-size-sm);color:var(--text-secondary)}.entity-card__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs);color:var(--text-secondary)}.entity-card__field{display:inline-flex;align-items:center;gap:.25rem}.entity-card__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);padding-top:var(--space-xs)}.entity-card__actions,.entity-card__head .shared-menu{position:relative;z-index:1}.entity-card--tinted-header .entity-card__head{margin:calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) 0;padding:var(--space-md) var(--space-lg);background:var(--entity-card-header-bg);color:var(--entity-card-header-text);border-radius:var(--radius-xl) var(--radius-xl) 0 0;--color-text-primary: var(--entity-card-header-text);--text-primary: var(--entity-card-header-text);--color-text-secondary: var(--entity-card-header-text);--text-secondary: var(--entity-card-header-text);--surface-hover: var(--entity-card-header-hover);--color-bg-hover: var(--entity-card-header-hover);--accent: var(--entity-card-header-text)}.entity-card--tinted-header .entity-card__title,.entity-card--tinted-header .entity-card__subtitle,.entity-card--tinted-header .entity-card__icon,.entity-card--tinted-header .entity-card__icon *{color:var(--entity-card-header-text)}.entity-card__people{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}.entity-card__person{padding:.1rem .45rem;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:10rem}.entity-card__person--more{font-variant-numeric:tabular-nums;cursor:default}.entity-list{display:flex;flex-direction:column;gap:var(--space-sm)}.entity-list__bar{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.entity-list__search{flex:1 1 14rem;max-width:24rem}.entity-list__tools{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-sm)}.entity-list__tools .shared-form-group{margin-bottom:0}.entity-list__views{margin-left:auto}.entity-list__views .shared-seg__item{display:inline-flex;align-items:center;gap:.35rem}.entity-list__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.entity-list__body{display:flex;flex-direction:column;justify-content:flex-start;flex:1;min-height:12rem;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.entity-list--flush>.entity-list__body{background:none;border:none;border-radius:0;min-height:0;overflow:visible}.entity-list--flush .entity-list__grid{background:none;padding:0}.entity-list__grid{flex:1;display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--entity-min, 20rem),1fr));gap:var(--space-md);padding:var(--space-md);align-content:start;background:var(--surface-sunken)}.entity-list__empty,.entity-list__body>.shared-spinner-wrapper{margin-block:auto}.entity-list__empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);text-align:center;padding:3rem 1.5rem;color:var(--text-secondary)}.entity-list__empty p{margin:0}.entity-list__empty-hint{font-size:var(--font-size-sm)}.entity-table{width:100%;border-collapse:collapse}.entity-table thead th{text-align:left;font-weight:var(--font-weight-semibold);font-size:.82rem;text-transform:uppercase;letter-spacing:.02em;color:var(--text-secondary);padding:.6rem 1rem;border-bottom:1px solid var(--border-default);white-space:nowrap}.entity-table thead th:not(:first-child){width:1%}.entity-table thead th:last-child{width:3rem}.entity-table__th--sort{cursor:pointer;-webkit-user-select:none;user-select:none}.entity-table__th--sort:hover{color:var(--text-primary)}.entity-table__arrow{margin-left:.35rem;font-size:.7rem}.entity-table tbody td{padding:.55rem 1rem;border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);vertical-align:middle;white-space:nowrap}.entity-table tbody tr:last-child td{border-bottom:none}.entity-table tbody tr:hover{background:var(--surface-hover)}.entity-row--muted td:not(.entity-row__actions),.entity-row--disabled .entity-row__name,.entity-row--disabled td:not(.entity-row__actions){color:var(--text-muted)}.entity-row__namecell{display:flex;align-items:center;gap:var(--space-xs);min-width:0}.entity-row__icon{flex:none;display:flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;font-size:1rem;line-height:1}.entity-row__icon-img{width:100%;height:100%;object-fit:contain}.entity-row__text{display:flex;flex-direction:column;min-width:0}.entity-row__name{padding:0;border:none;background:none;font:inherit;font-weight:var(--font-weight-medium);color:var(--text-primary);text-align:left;text-decoration:none;cursor:pointer;overflow:hidden;text-overflow:ellipsis}.entity-row__name:hover{color:var(--accent)}.entity-row__subtitle{font-size:var(--font-size-xs);color:var(--text-secondary)}.entity-row__actions{display:flex;gap:var(--space-xs)}.entity-row__menu{text-align:right}.entity-row__menu>*{vertical-align:middle}@media(max-width:639px){.entity-table thead th:not(:first-child):not(:last-child):not(.entity-table__th--actions),.entity-table tbody td:not(:first-child):not(:last-child):not(.entity-row__actions){display:none}.entity-list__grid{grid-template-columns:1fr}.entity-list__search{max-width:none}}.access-denied{display:flex;justify-content:center;align-items:center;padding:3rem 1rem}.access-denied__box{text-align:center;display:flex;flex-direction:column;align-items:center;gap:1.25rem;max-width:30rem}.access-denied__message{font-size:1rem;color:var(--text-primary);line-height:1.6;margin:0}.shared-qr{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-md) 0}.shared-qr__code{width:100%;max-width:min(100%,55vh)}.shared-qr__code svg{display:block;width:100%;height:auto;max-width:100%}.shared-qr__tools{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-sm)}.shared-qr__swatch{width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--color-border);border-radius:50%;cursor:pointer}.shared-qr__swatch--active{box-shadow:0 0 0 2px var(--color-bg-card),0 0 0 4px var(--color-primary)}.shared-qr__swatch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.shared-qr__swatch--custom{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:none;overflow:hidden}.shared-qr__swatch--custom::-webkit-color-swatch-wrapper{padding:0}.shared-qr__swatch--custom::-webkit-color-swatch,.shared-qr__swatch--custom::-moz-color-swatch{border:none;border-radius:50%}.shared-qr__file{display:none}.shared-qr__value{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:center;overflow-wrap:anywhere}.atp-body{display:flex;flex-direction:column;gap:var(--space-md)}.atp-summary{display:flex;flex-direction:column;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);background:var(--color-bg-subtle, var(--color-bg-hover));border:1px solid var(--color-border)}.atp-summary__label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.atp-summary__value{font-size:var(--font-size-sm);word-break:break-all}.atp-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.atp-course-picker{margin-top:var(--space-sm)}.atp-full-select{display:block;width:100%}.atp-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.375rem,1fr));gap:var(--space-sm)}.atp-course-card{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--border-default);border-left:4px solid var(--itsl-course-accent, var(--accent));border-radius:var(--radius-md);background:var(--itsl-course-fill, color-mix(in srgb, var(--itsl-course-accent, var(--accent)) 10%, var(--surface-card)));color:var(--text-primary);cursor:pointer;text-align:left;font-family:inherit;transition:box-shadow .12s ease,filter .12s ease}:root[data-theme=dark] .atp-course-card{background:color-mix(in srgb,var(--itsl-course-accent, var(--accent)) 22%,var(--surface-card));border-left-color:color-mix(in srgb,var(--itsl-course-accent, var(--accent)) 65%,var(--ink-light))}.atp-course-card:hover:not(:disabled){filter:brightness(.97)}:root[data-theme=dark] .atp-course-card:hover:not(:disabled){filter:brightness(1.15)}.atp-course-card:disabled{opacity:.6;cursor:default}.atp-course-card--selected{box-shadow:0 0 0 2px var(--itsl-course-accent, var(--color-primary)) inset}.atp-course-card__badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:var(--radius-sm);background:var(--itsl-course-accent, var(--accent));color:var(--ink-light);font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase}.atp-course-card__text{display:flex;flex-direction:column;min-width:0}.atp-course-card__title{font-size:var(--font-size-sm);font-weight:500;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.atp-course-card__code{font-size:.72rem;color:var(--color-text-muted, var(--color-text-secondary))}.group-filter{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-sm)}.group-filter__label{color:var(--color-text-muted);font-size:var(--font-size-sm)}.group-filter__name{overflow-wrap:anywhere}.snapshots__new{display:grid;grid-template-columns:1fr auto;gap:var(--space-md);align-items:end;margin-bottom:var(--space-lg)}.snapshots__new .shared-form-group{margin-bottom:0}.snapshots__new .snapshots__note{grid-column:1 / -1}.snapshots__note{margin:var(--space-xs) 0 0;color:var(--text-secondary);font-size:var(--font-size-sm)}.snapshots__meta{color:var(--text-secondary);font-size:var(--font-size-sm)}.snapshots__skipped{color:var(--color-warning-text, var(--text-secondary));font-size:var(--font-size-sm)}.snapshots{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.snapshot{padding:var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--surface-raised, var(--bg-secondary))}.snapshot__head{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.snapshot__message{flex:1 1 auto;min-width:0;overflow-wrap:anywhere}.snapshot__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm)}.snapshot__files{margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--border-color)}.snapshot__filelist{list-style:none;margin:var(--space-xs) 0 0;padding:0}.snapshot__file{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;padding:var(--space-2xs) 0}.snapshot__path{flex:1 1 12rem;min-width:0;overflow-wrap:anywhere;font-family:var(--font-mono, monospace);font-size:var(--font-size-sm)}.task-page__heading{margin:var(--space-2xl) 0 var(--space-md);font-size:var(--font-size-2xl);color:var(--text-primary)}.task-page__heading:first-of-type{margin-top:var(--space-lg)}.task-form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-md);margin:var(--space-md) 0;align-items:end}.task-form__section{margin-top:var(--space-lg)}.task-form__title{margin:0 0 var(--space-xs);font-size:var(--font-size-lg);color:var(--text-primary)}.task-form__hint{margin:var(--space-xs) 0 var(--space-md);font-size:var(--font-size-sm);color:var(--text-secondary)}.task-modal__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.task-modal__empty,.task-modal__meta{margin:0 0 var(--space-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.task-sub{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-card);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.task-sub--open{border-color:var(--border-strong);box-shadow:var(--shadow-sm)}.task-sub__head{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);border:none;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.task-sub__head:hover{background:var(--surface-hover)}.task-sub__head:focus-visible{outline:2px solid var(--border-focus);outline-offset:-2px}.task-sub__caret{flex:none;display:flex;color:var(--text-muted)}.task-sub__title{flex:1;min-width:0;display:flex;flex-direction:column;gap:.125rem}.task-sub__name{font-weight:var(--font-weight-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-modal__names{font-size:var(--font-size-sm);color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-sub__panel{padding:var(--space-md);border-top:1px solid var(--border-subtle);background:var(--surface-sunken)}.task-sub__foot{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-xs);margin-top:var(--space-sm)}.task-stand{display:flex;gap:var(--space-sm);align-items:flex-start;padding:var(--space-sm);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card)}.task-stand+.task-stand{margin-top:var(--space-sm)}.task-stand__body{flex:1;min-width:0}.task-stand__line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.task-stand__title{color:var(--text-primary)}.task-stand__people{margin-top:.125rem;font-size:var(--font-size-sm);color:var(--text-primary)}.task-modal__thumb{width:6rem;height:4.5rem;flex:none;object-fit:contain;background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm)}.task-modal__thumb--sm{width:3.5rem;height:2.625rem}.task-modal__actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.task-modal__pending{margin-top:var(--space-lg);padding-top:var(--space-sm);border-top:1px solid var(--border-subtle);font-size:var(--font-size-sm);color:var(--text-secondary)}@media(max-width:39.9375rem){.task-modal__thumb{width:3.5rem;height:2.625rem}}.task-withdraw{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border-subtle)}.task-withdraw .task-modal__meta{margin-bottom:var(--space-sm)}.task-detail__head{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-md);padding-bottom:var(--space-md);border-bottom:1px solid var(--border-subtle)}.task-detail__description{margin:0;color:var(--text-primary);white-space:pre-wrap}.task-detail__facts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--text-secondary)}.task-detail__due--over{color:var(--danger-text, var(--color-danger));font-weight:600}.task-detail__progress{display:flex;align-items:center;gap:var(--space-sm)}.task-detail__bar{flex:1;height:.5rem;border-radius:999px;background:var(--border-subtle);overflow:hidden}.task-detail__bar-fill{height:100%;background:var(--accent);transition:width .2s ease}.task-detail__count{flex:none;font-size:var(--font-size-sm);color:var(--text-secondary)}.shared-zoom-frame{position:absolute;top:0;right:0;bottom:0;left:0;width:calc(100% / var(--frame-scale, 1));height:calc(100% / var(--frame-scale, 1));transform:var(--frame-transform, none);transform-origin:0 0;border:0}.shared-zoom-stage{position:relative;flex:1;min-height:0;overflow:hidden}.nav-icon{--nav-icon-size: 1.25rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;color:var(--text-secondary)}.nav-icon svg{width:var(--nav-icon-size);height:var(--nav-icon-size);display:block}.module-shell{position:relative;min-height:calc(100vh - var(--dtb-height, 3.125rem));background:var(--color-bg-app)}.module-content{min-height:calc(100vh - var(--dtb-height, 3.125rem));background:var(--color-bg-app);overflow-x:hidden;box-sizing:border-box;padding:0 var(--space-xl) var(--space-xl);transition:padding-left var(--transition-slow, .25s ease)}.module-shell--with-nav .module-content{padding-left:calc(var(--nav-w) + var(--space-xl))}.module-nav{position:fixed;top:var(--dtb-height, 3.75rem);left:0;bottom:0;z-index:100;width:var(--nav-w);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:.25rem;padding:1rem .75rem;background:var(--surface-card);border-right:1px solid var(--border-subtle);transition:width var(--transition-slow, .25s ease)}.module-nav__home{display:flex;align-items:center;gap:.6rem;width:100%;min-height:2.75rem;padding:1.35rem .8rem .6rem;margin-top:auto;border:none;border-top:1px solid var(--border-subtle);border-radius:.625rem;background:transparent;color:var(--text-primary);font-size:.92rem;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.module-nav__home:hover{background:var(--accent-soft);color:var(--accent)}.module-nav__home-icon{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;color:var(--accent)}.module-nav__header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.6rem .6rem .7rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-nav__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.4rem}.module-nav__item{width:100%;min-height:2.75rem;display:flex;align-items:center;gap:.6rem;text-align:left;padding:.6rem .8rem;border:none;border-radius:.625rem;background:transparent;color:var(--text-primary);font-size:.9rem;cursor:pointer;transition:background .12s ease,color .12s ease}.module-nav__item:hover{background:var(--surface-hover)}.module-nav__item--disabled{opacity:.5;cursor:not-allowed}.module-nav__item--disabled:hover{background:transparent}.module-nav__heading{margin-top:.65rem;padding:.55rem .8rem .2rem;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.module-nav__heading:first-child{margin-top:0;border-top:0}.module-nav__item:hover .nav-icon,.module-nav__group-toggle:hover .nav-icon,.module-nav__item--active .nav-icon{color:inherit}.module-nav__item-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.module-nav__group{display:contents}.module-nav__group-toggle{width:100%;min-height:2.75rem;display:flex;align-items:center;gap:.6rem;text-align:left;padding:.6rem .8rem;border:none;border-radius:.625rem;background:transparent;color:var(--text-primary);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s ease,color .12s ease}.module-nav__group-toggle:hover{background:var(--surface-hover)}.module-nav__group-chevron{flex-shrink:0;color:var(--text-secondary);transition:transform .18s ease}.module-nav__group-toggle--open .module-nav__group-chevron{transform:rotate(90deg)}.module-nav__sublist{list-style:none;margin:.15rem 0 0;padding:0;display:flex;flex-direction:column;gap:.2rem}.module-nav__item--sub{min-height:2.4rem;padding-top:.5rem;padding-bottom:.5rem;padding-left:1.6rem;font-size:.8rem}.module-nav__item--sub .nav-icon,.module-nav__group-toggle--sub .nav-icon{--nav-icon-size: 1.05rem}.module-nav__group-toggle--sub{min-height:2.4rem;padding-top:.5rem;padding-bottom:.5rem;font-size:.8rem;font-weight:500}.module-nav__top:empty,.module-nav__extra:empty{display:none}.module-nav__top{margin-bottom:.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.6rem}.module-nav__extra{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.6rem}.module-nav__item--active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-collapse-toggle{display:flex;align-items:center;gap:.6rem;width:100%;min-height:2.5rem;margin-top:.35rem;padding:.5rem .8rem;border:none;border-radius:.625rem;background:transparent;color:var(--text-secondary);font-size:.82rem;cursor:pointer;transition:background .12s ease,color .12s ease}.nav-collapse-toggle:hover{background:var(--surface-hover);color:var(--text-primary)}.nav-collapse-toggle .nav-icon{--nav-icon-size: 1.15rem}@media(max-width:1023px){.nav-collapse-toggle{display:none}}@media(min-width:1024px){:root[data-nav-collapsed] .module-nav{padding-left:.375rem;padding-right:.375rem;gap:.2rem}:root[data-nav-collapsed] .module-nav__heading{padding:0;margin:.45rem .25rem}:root[data-nav-collapsed] .module-nav__heading span,:root[data-nav-collapsed] .module-nav__item-label,:root[data-nav-collapsed] .module-nav__header,:root[data-nav-collapsed] .module-nav__home span:not(.module-nav__home-icon),:root[data-nav-collapsed] .nav-collapse-toggle span:not(.nav-icon){display:none}:root[data-nav-collapsed] .module-nav__item,:root[data-nav-collapsed] .module-nav__group-toggle,:root[data-nav-collapsed] .module-nav__home,:root[data-nav-collapsed] .nav-collapse-toggle{justify-content:center;padding-left:0;padding-right:0;gap:0}:root[data-nav-collapsed] .module-nav__sublist{display:none}:root[data-nav-collapsed] .module-nav__group-chevron{display:none}:root[data-nav-collapsed] .module-nav__top,:root[data-nav-collapsed] .module-nav__extra{display:none}}.module-nav-toggle{display:none;align-items:center;gap:.6rem;width:100%;padding:.7rem 1rem;position:sticky;top:var(--dtb-height, 3.75rem);z-index:90;background:var(--surface-card);border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-weight:600;font-size:.95rem;cursor:pointer}.module-nav-backdrop{position:fixed;inset:var(--dtb-height, 3.75rem) 0 0 0;background:color-mix(in srgb,var(--shadow-color) 45%,transparent);z-index:99}@media(min-width:1024px){.module-nav-backdrop{display:none}}@media(max-width:1023px){.module-nav-toggle{display:flex}.module-content,.module-shell--with-nav .module-content{padding:0 var(--space-lg) var(--space-lg)}.module-nav{width:min(82vw,20rem);transform:translate(-100%);transition:transform .22s ease;border-right:none;box-shadow:var(--shadow-xl);z-index:110}.module-nav--open{transform:translate(0)}}@media(max-width:639px){.module-content,.module-shell--with-nav .module-content{padding:0 var(--space-md) var(--space-md)}}.perm-intro{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--space-md);max-width:70ch}.perm-muted{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.perm-sync-cell{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.perm-sync-warn{color:var(--warning-on-soft);font-size:var(--font-size-sm)}.perm-empty{color:var(--color-text-secondary);text-align:center;padding:var(--space-xl) var(--space-md);font-style:italic}.perm-empty-inline{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-sm)}.perm-editor{display:flex;flex-direction:column;gap:1.25rem;height:100%;min-height:0}.perm-editor__fields{display:flex;gap:var(--space-md);flex-shrink:0}.perm-editor__field{flex:1}.perm-picker{display:flex;flex-direction:column;flex:1;min-height:0;border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.perm-picker__header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:.625rem var(--space-md);background:var(--color-bg-card);border-bottom:1px solid var(--color-border);flex-shrink:0}.perm-picker__title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);white-space:nowrap}.perm-picker__count{margin-left:var(--space-sm);font-weight:var(--font-weight-normal);color:var(--color-text-secondary)}.perm-picker__search{flex:1;max-width:17.5rem}.perm-picker__loading{display:flex;align-items:center;justify-content:center;padding:var(--space-xl);flex:1}.perm-picker__body{display:grid;grid-template-columns:12.5rem 1fr;flex:1;min-height:0;overflow:hidden}@media(max-width:1023px){.perm-picker__body{grid-template-columns:1fr;overflow:visible}}.perm-picker__modules{border-right:1px solid var(--color-border);overflow-y:auto}.perm-picker__perms{display:flex;flex-direction:column;overflow:hidden;background:var(--color-bg-card)}.perm-picker__select-all{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);cursor:pointer;flex-shrink:0;background:var(--color-bg-card)}.perm-picker__select-all input[type=checkbox]{width:.9375rem;height:.9375rem;accent-color:var(--color-action);cursor:pointer;flex-shrink:0}.perm-picker__perm-list{overflow-y:auto;flex:1;padding:var(--space-xs) 0}.perm-picker__perm-row{display:flex;align-items:flex-start;gap:.625rem;padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast);border-radius:0}.perm-picker__perm-row:hover{background:var(--color-primary-light)}.perm-picker__perm-row input[type=checkbox]{width:.9375rem;height:.9375rem;margin-top:.125rem;accent-color:var(--color-action);cursor:pointer;flex-shrink:0}.perm-picker__perm-info{display:flex;flex-direction:column;gap:.125rem}.perm-picker__perm-id{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-family:var(--font-family-mono)}.perm-picker__perm-desc{font-size:var(--font-size-xs);color:var(--color-text-secondary);line-height:1.4}.perm-picker__perm-details{margin-top:.1875rem;font-size:var(--font-size-xs);color:var(--color-text-tertiary);line-height:1.5;max-width:60ch}.perm-viewer__super-note{color:var(--color-warning-text);font-style:italic;padding:var(--space-sm)}.perm-page{display:flex;flex-direction:column;height:100%;min-height:calc(100vh - var(--dtb-height, 3.75rem))}.perm-page__message{padding-top:var(--space-sm)}.perm-page__body{flex:1;min-height:0;display:flex;flex-direction:column;padding-top:var(--space-md)}.perm-filter-row{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-md)}.perm-filter-row>*:first-child{flex:1 1 16rem}.perm-split{display:grid;grid-template-columns:minmax(0,18rem) minmax(0,1fr);gap:var(--space-md);flex:1;min-height:0}.perm-pane{display:flex;flex-direction:column;min-height:0;background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.perm-split--wide{grid-template-columns:minmax(0,27rem) minmax(0,1fr)}.perm-pane--master{padding:var(--space-md);gap:var(--space-sm)}.perm-pane--detail{overflow:hidden}.perm-pane__scroll{flex:1;min-height:0;overflow-y:auto}.perm-pane__empty{margin:auto;padding:var(--space-xl);color:var(--color-text-muted);font-style:italic}@media(max-width:1023px){.perm-split{grid-template-columns:1fr}.perm-pane--master{max-height:18rem}.perm-pane--detail{min-height:25rem}}.perm-detail{display:flex;flex-direction:column;height:100%;min-height:0}.perm-detail__loading{display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.perm-detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-lg) var(--space-sm)}.perm-detail__title h2{margin:0;font-size:var(--font-size-lg)}.perm-detail__desc{margin:.15rem 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.perm-detail__counts{display:flex;flex-wrap:wrap;gap:var(--space-md);margin-top:var(--space-xs);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-detail__counts strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold)}.perm-detail__tabs{padding:0 var(--space-lg)}.perm-detail__body{display:flex;flex-direction:column;gap:var(--space-md);flex:1;min-height:0;overflow-y:auto;padding:var(--space-md) var(--space-lg) var(--space-lg)}.perm-rights{display:flex;flex-direction:column;gap:var(--space-xs)}.perm-rights__group{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.perm-rights__head{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:.45rem var(--space-sm);border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.perm-rights__head:hover{background:var(--surface-hover)}.perm-rights__caret{width:.75rem;font-size:.7rem;color:var(--color-text-muted)}.perm-rights__name{flex:1;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.perm-rights__list{margin:0;padding:0;list-style:none;border-top:1px solid var(--border-subtle)}.perm-rights__row{display:flex;align-items:baseline;gap:var(--space-sm);padding:.3rem var(--space-sm) .3rem 1.9rem;border-bottom:1px solid var(--border-subtle)}.perm-rights__row:last-child{border-bottom:none}.perm-rights__id{font-family:var(--font-mono, monospace);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.perm-rights__desc{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-assign{display:flex;flex-direction:column;gap:var(--space-lg)}.perm-assign__roles{display:flex;flex-direction:column;gap:var(--space-sm)}.perm-assign__roles-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.perm-assign__roles-head h4{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.perm-assign__chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.perm-rights__via{margin-left:auto;padding-left:var(--space-sm);font-size:.68rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:12rem}.perm-list__filters{display:flex;flex-wrap:wrap;gap:var(--space-xs);align-items:center;flex-shrink:0}.perm-list__meta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);flex-shrink:0;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-list__loading{display:flex;align-items:center;justify-content:center;height:7.5rem}.perm-list__row{cursor:pointer}.perm-list__row.is-active{background:var(--accent-soft)}.perm-list__name{display:block;font-weight:var(--font-weight-medium)}.perm-list__sub{display:block;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-list__cell-muted{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.perm-user__badges{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.perm-user__section{display:flex;flex-direction:column;gap:var(--space-sm)}.perm-user__section h4{margin:0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.perm-user__section-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.perm-user__chips{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.perm-fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(11rem,1fr));gap:var(--space-sm) var(--space-md)}.perm-field{display:flex;flex-direction:column;gap:.1rem;min-width:0}.perm-field__label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.perm-field__value{font-size:var(--font-size-sm);overflow-wrap:anywhere}.perm-field__value--mono{font-family:var(--font-mono, monospace);font-size:.75rem}.perm-user__linked,.perm-user__profiles{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}.perm-user__linked li,.perm-user__profile{display:flex;align-items:center;gap:var(--space-sm);padding:.4rem var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.perm-user__linked li{flex-direction:column;align-items:flex-start;gap:.1rem}.perm-user__linked-name{font-weight:var(--font-weight-medium)}.perm-user__linked-sub{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-user__profile-source{flex:1;font-size:var(--font-size-xs);color:var(--color-text-muted)}.perm-user__profile.is-super{background:var(--color-warning-bg);border-color:var(--color-warning)}.perm-user__profile.is-excluded strong{text-decoration:line-through;opacity:.55}.perm-list__dots{display:inline-flex;gap:.25rem;align-items:center}.perm-dot{width:.5rem;height:.5rem;border-radius:var(--radius-full);border:1px solid var(--color-border)}.perm-dot--on{background:var(--color-success);border-color:var(--color-success)}.perm-dot--warn{background:var(--color-warning);border-color:var(--color-warning)}.perm-dot--off{background:none}.perm-acct{display:flex;flex-direction:column;gap:var(--space-md)}.perm-acct__list{display:flex;flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none}.perm-acct__row{display:flex;flex-direction:column;gap:.15rem;padding:.5rem var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md)}.perm-acct__row.is-derived{margin-left:var(--space-lg);border-style:dashed}.perm-acct__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.perm-acct__name{margin-right:auto;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.perm-acct__meta{display:flex;flex-wrap:wrap;gap:.15rem var(--space-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.perm-acct__note{margin:.15rem 0 0;font-size:var(--font-size-xs);color:var(--color-text-muted)}.perm-acct__aside h4{margin:0 0 var(--space-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.perm-acct__actions{display:flex;align-items:center;gap:var(--space-xs)}.plm-layout{display:grid;grid-template-columns:13.75rem 1fr;gap:var(--space-md);height:100%;min-height:0}.plm-center{display:flex;align-items:center;justify-content:center;height:100%}.plm-hint{color:var(--color-text-secondary);text-align:center}.plm-classes{border-right:1px solid var(--color-border);padding-right:var(--space-sm);overflow-y:auto;min-height:0}.plm-class-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.125rem}.plm-class-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-xs);padding:.4rem var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);background:none;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary);text-align:left}.plm-class-btn:hover{background:var(--surface-sunken)}.plm-class-btn.is-active{background:var(--accent-soft);border-color:var(--accent);font-weight:var(--font-weight-medium)}.plm-class-name{font-weight:var(--font-weight-medium)}.plm-class-meta{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.plm-detail{overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-sm)}.plm-detail-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);position:sticky;top:0;z-index:3;background:var(--surface-card);padding-top:.125rem;padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.plm-detail-header h3{margin:0;font-size:var(--font-size-md)}.plm-sub{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.plm-rows{display:flex;flex-direction:column;gap:.35rem}.plm-row{display:grid;grid-template-columns:minmax(8.75rem,1fr) minmax(18.75rem,1.6fr);gap:var(--space-sm);align-items:start;padding:.5rem var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md)}.plm-student{display:flex;flex-direction:column;gap:.1rem;min-width:0}.plm-student-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.plm-student-sub{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.plm-parents{display:flex;flex-direction:column;gap:.4rem;min-width:0}.plm-badges{display:flex;flex-wrap:wrap;gap:.3rem;align-items:center}.plm-badges-empty{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.plm-badge{display:inline-flex;align-items:center;gap:.25rem;max-width:100%;font-size:var(--font-size-xs);padding:.12rem .15rem .12rem .5rem;border-radius:999px;border:1px solid var(--color-border);background:var(--surface-sunken);color:var(--color-text-primary)}.plm-badge.is-saved{background:var(--success-soft);color:var(--success-on-soft);border-color:var(--success-soft)}.plm-badge.is-pending{background:var(--accent-soft);color:var(--accent);border-style:dashed;border-color:var(--accent)}.plm-badge-check{font-weight:var(--font-weight-bold)}.plm-badge-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plm-badge-remove{color:inherit;opacity:.7}.plm-badge-remove:hover{opacity:1;background:var(--danger-soft);color:var(--danger)}.plm-parent-add{display:flex;align-items:center;gap:var(--space-xs)}.plm-add-select.ss{flex:1;min-width:0;display:block}@media(max-width:720px){.plm-layout{grid-template-columns:1fr;grid-template-rows:auto 1fr}.plm-classes{border-right:none;border-bottom:1px solid var(--color-border);padding-right:0;padding-bottom:var(--space-sm);max-height:30vh}.plm-row{grid-template-columns:1fr}}.lh-header-actions{display:flex;gap:var(--space-sm);align-items:center}.lh-filters{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:center;margin-bottom:var(--space-md)}.lh-date{width:14rem}.lh-table-wrap{overflow-x:auto}.lh-pagination{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);margin-top:var(--space-md)}.lh-count{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.sysinfo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(18.75rem,1fr));gap:var(--space-md)}@media(max-width:639px){.sysinfo-grid{grid-template-columns:1fr}}.sysinfo-card{display:flex;flex-direction:column;gap:var(--space-sm)}.sysinfo-row{display:flex;justify-content:space-between;align-items:center;padding:.35rem 0;border-bottom:1px solid var(--border-default);font-size:var(--font-size-sm)}.sysinfo-row:last-of-type{border-bottom:none}.sysinfo-row__label{color:var(--color-text-secondary)}.sysinfo-row__value{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.sysinfo-row__value code{font-family:monospace;font-size:.85em}.sysinfo-bar{height:.5rem;background:var(--border-default);border-radius:.25rem;overflow:hidden;margin-top:var(--space-sm)}.sysinfo-bar__fill{height:100%;border-radius:.25rem;transition:width .4s ease}.sysinfo-bar__fill--success{background:var(--success)}.sysinfo-bar__fill--warning{background:var(--warning)}.sysinfo-bar__fill--danger{background:var(--danger)}.sysinfo-error{color:var(--danger);padding:var(--space-md)}.sysinfo-blocking{margin-top:var(--space-md)}.sysinfo-blocking__status{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.sysinfo-blocking__meta,.sysinfo-blocking__hint{color:var(--text-secondary);font-size:var(--font-size-sm)}.sysinfo-blocking__hint{margin:var(--space-sm) 0 0;line-height:1.5}.sysinfo-blocking__hint code{font-family:monospace;font-size:.9em;background:var(--surface-sunken);border-radius:var(--radius-sm);padding:.1em .35em}.sysinfo-blocking__list{list-style:none;margin:var(--space-md) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-sm)}.sysinfo-block{border:1px solid var(--border-default);border-left:3px solid var(--warning);border-radius:var(--radius-md);padding:var(--space-sm);background:var(--surface-sunken)}.sysinfo-block--fresh{border-left-color:var(--danger)}.sysinfo-block__head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm)}.sysinfo-block__time{color:var(--text-primary);font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.sysinfo-block__greenlet{color:var(--text-secondary);font-family:monospace;font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.sysinfo-block__frames{margin:var(--space-sm) 0 0;padding:0;color:var(--text-secondary);font-family:monospace;font-size:var(--font-size-xs);line-height:1.45;white-space:pre;overflow-x:auto}.sched-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22.5rem,1fr));gap:var(--space-md)}@media(max-width:639px){.sched-grid{grid-template-columns:1fr}}.sched-card{display:flex;flex-direction:column;gap:var(--space-md)}.sched-job{padding-bottom:var(--space-md);border-bottom:1px solid var(--border-default)}.sched-job:last-child{padding-bottom:0;border-bottom:none}.sched-job__head{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.sched-job__task{font-weight:var(--font-weight-medium);color:var(--color-text-primary);font-size:var(--font-size-sm)}.sched-job__meta-value--action{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.sched-job__run{flex:none;margin:-1px 0}.sched-job .sched-job__run--busy:disabled{opacity:1;color:var(--accent)}.sched-job__run--busy svg{animation:sched-spin 1.1s linear infinite}@keyframes sched-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.sched-job__run--busy svg{animation:none}}.sched-job__meta{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.sched-job__meta-item{display:flex;flex-direction:column;gap:.125rem}.sched-job__meta-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.sched-job__meta-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.sched-job__message{margin:var(--space-sm) 0 0;font-size:.78rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sched-job__message--error{color:var(--danger);white-space:normal}.sched-sessions{list-style:none;margin:var(--space-sm) 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem}.sched-session{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-sm);font-size:.78rem}.sched-session__name{color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.sched-session__value{font-weight:var(--font-weight-medium);white-space:nowrap}.sched-session__age{color:var(--color-text-tertiary, var(--color-text-secondary));white-space:nowrap;font-variant-numeric:tabular-nums}@media(max-width:639px){.sched-session__age{display:none}}.sched-session--ok .sched-session__value{color:var(--success)}.sched-session--warn .sched-session__value{color:var(--warning)}.sched-session--error .sched-session__value{color:var(--danger)}.sched-badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.72rem;font-weight:var(--font-weight-medium);white-space:nowrap}.sched-badge--ok{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.sched-badge--error{background:color-mix(in srgb,var(--danger) 15%,transparent);color:var(--danger)}.sched-badge--warn{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning)}.sched-badge--neutral{background:var(--border-default);color:var(--color-text-secondary)}.sched-running{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.sched-running--on{color:var(--success)}.sched-running--off{color:var(--color-text-secondary)}.sched-error{color:var(--danger);padding:var(--space-md)}.sched-empty{color:var(--color-text-secondary);padding:var(--space-md)}.webuntis-settings-grid{display:flex;flex-direction:column;gap:var(--space-md)}.webuntis-card{max-width:40rem}.webuntis-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.webuntis-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.webuntis-save-row{display:flex;justify-content:flex-end;max-width:40rem}.webuntis-alert{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.webuntis-alert--success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.webuntis-alert--error{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent)}.webuntis-alert__note{margin-top:var(--space-xs);padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,currentColor 20%,transparent);opacity:.85}.webuntis-alert--warn{background:color-mix(in srgb,var(--warning) 10%,transparent);color:var(--warning-on-soft);border:1px solid color-mix(in srgb,var(--warning) 30%,transparent)}.webuntis-alert--action{display:flex;align-items:center;gap:var(--space-md);justify-content:space-between}.webuntis-alert--action>:first-child{flex:1}.webuntis-alert--action>:last-child{flex:none}.webuntis-sync-bar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--color-bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-default)}.webuntis-sync-stats{display:flex;gap:var(--space-lg);flex-wrap:wrap}.webuntis-stat{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.webuntis-stat strong{color:var(--color-text-primary);font-size:var(--font-size-base)}.webuntis-stat--ok strong{color:var(--success)}.webuntis-stat--warn strong{color:var(--warning-on-soft)}.webuntis-stat--excluded strong{color:var(--color-purpile)}.webuntis-stat--pending strong{color:var(--warning-on-soft)}.webuntis-stat--mismatch strong{color:var(--danger)}.webuntis-filter-row{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap}.webuntis-table-card{overflow-x:auto}.webuntis-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.webuntis-table th{text-align:left;padding:.5rem .75rem;font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--border-default);white-space:nowrap}.webuntis-table td{padding:.6rem .75rem;border-bottom:1px solid var(--border-default);vertical-align:middle}.webuntis-table tbody tr:last-child td{border-bottom:none}.webuntis-table tbody tr:hover{background:var(--surface-hover)}.webuntis-row--unmapped td{opacity:.7}.webuntis-table__empty{text-align:center;color:var(--color-text-secondary);padding:2rem!important}.webuntis-table__actions-col{width:1%;white-space:nowrap}.webuntis-table__actions{display:flex;align-items:center;gap:var(--space-xs, .25rem);white-space:nowrap}.webuntis-username{font-size:var(--font-size-sm);background:var(--surface-sunken);padding:.1rem .35rem;border-radius:.25rem}.webuntis-muted{color:var(--color-text-secondary)}.webuntis-badge{display:inline-flex;align-items:center;gap:.35rem;font-size:var(--font-size-xs, .75rem);padding:.2rem .6rem;border-radius:999px;font-weight:var(--font-weight-medium, 500)}.webuntis-badge--none{background:color-mix(in srgb,var(--shadow-color) 6%,transparent);color:var(--color-text-secondary)}.webuntis-badge--excluded{background:color-mix(in srgb,var(--color-purpile) 10%,transparent);color:var(--color-purpile-on-soft)}.webuntis-badge--role-excluded{background:var(--color-teal-soft);color:var(--color-teal-on-soft)}.webuntis-badge--mapped{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)}.webuntis-badge--mismatch{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger-on-soft);margin-left:.35rem;cursor:help}.webuntis-badge__type{opacity:.7;font-weight:400}.webuntis-type-badge{display:inline-block;font-size:var(--font-size-xs, .75rem);padding:.15rem .5rem;border-radius:999px;font-weight:var(--font-weight-medium, 500)}.webuntis-type-badge--teacher{background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent)}.webuntis-type-badge--student{background:color-mix(in srgb,var(--warning) 12%,transparent);color:var(--warning-on-soft)}.webuntis-type-badge--parent{background:color-mix(in srgb,var(--color-purpile) 12%,transparent);color:var(--color-purpile-on-soft)}.webuntis-role-cell{white-space:nowrap}.webuntis-role-cell .webuntis-type-badge+.webuntis-type-badge{margin-left:.25rem}.webuntis-fullname{font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary)}.webuntis-fullname--pending{color:var(--text-secondary)}.webuntis-person-detail{display:block;font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);margin-top:.1rem}.webuntis-pending-label{display:inline-block;margin-left:.4rem;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning-on-soft);padding:.1rem .35rem;border-radius:.25rem;vertical-align:middle}.webuntis-confidence{display:inline-block;font-size:.75rem;font-weight:600;padding:.15rem .45rem;border-radius:999px}.webuntis-confidence--high{background:color-mix(in srgb,var(--success) 13%,transparent);color:var(--success-on-soft)}.webuntis-confidence--medium{background:color-mix(in srgb,var(--warning) 15%,transparent);color:var(--warning-on-soft)}.webuntis-confidence--low{background:color-mix(in srgb,var(--danger) 12%,transparent);color:var(--danger-on-soft)}.webuntis-row--pending{background:color-mix(in srgb,var(--warning) 4%,transparent)}.webuntis-row--pending td:first-child{border-left:3px solid var(--warning)}.webuntis-row--active{background:color-mix(in srgb,var(--accent) 7%,transparent)!important;animation:webuntis-pulse 1.2s ease-in-out infinite}.webuntis-row--active td:first-child{border-left:3px solid var(--accent)}.webuntis-row--excluded{background:color-mix(in srgb,var(--color-purpile) 3%,transparent);opacity:.8}.webuntis-row--excluded td:first-child{border-left:3px solid color-mix(in srgb,var(--color-purpile) 55%,transparent)}.webuntis-row--mismatch{background:color-mix(in srgb,var(--danger) 5%,transparent)}.webuntis-row--mismatch td:first-child{border-left:3px solid var(--danger)}.webuntis-row--role-excluded{background:color-mix(in srgb,var(--color-teal) 6%,transparent);opacity:.7}.webuntis-row--role-excluded td:first-child{border-left:3px solid color-mix(in srgb,var(--color-teal) 45%,transparent)}@keyframes webuntis-pulse{0%,to{opacity:1}50%{opacity:.65}}.webuntis-row-spinner{margin-left:.375rem;vertical-align:middle}.webuntis-processing-label{font-size:var(--font-size-sm, .875rem);color:var(--accent);font-style:italic}.webuntis-progress{margin:0 0 var(--space-md, 1rem);padding:var(--space-sm, .5rem) var(--space-md, 1rem);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md)}.webuntis-progress__bar{height:.375rem;background:var(--border-default);border-radius:999px;overflow:hidden;margin-bottom:.375rem}.webuntis-progress__fill{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent));border-radius:999px;transition:width .3s ease}.webuntis-progress__label{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm, .875rem);color:var(--text-secondary)}.webuntis-progress__user code{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);padding:1px .3125rem;border-radius:.25rem;font-size:.8rem}.webuntis-catalog-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.4rem;padding:0 .3rem;margin-left:.3125rem;background:var(--border-default);color:var(--text-secondary);border-radius:999px;font-size:.72rem;font-weight:600;line-height:1}.shared-seg__item[aria-pressed=true] .webuntis-catalog-count{background:color-mix(in srgb,var(--accent) 20%,transparent);color:var(--accent)}.webuntis-catalog-search{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.webuntis-catalog-total{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary);white-space:nowrap}.webuntis-color-chip{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:.25rem;font-size:.75rem;font-family:monospace;font-weight:600;letter-spacing:.03em;border:1px solid color-mix(in srgb,var(--shadow-color) 10%,transparent)}.webuntis-sync-buttons{display:flex;gap:var(--space-sm, .5rem)}.webuntis-alias-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--color-bg-card);border-radius:var(--radius-md);border:1px solid var(--border-default)}.webuntis-alias-toolbar__left,.webuntis-alias-toolbar__right{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.webuntis-alias-col-header{min-width:14rem}.webuntis-alias-col-hint{font-weight:400;opacity:.6;font-size:.78em}.webuntis-alias-col{min-width:14rem}.webuntis-alias-cell{display:flex;flex-direction:column;gap:.25rem}.webuntis-alias-input{width:100%;padding:.3rem .5rem;font-size:var(--font-size-sm, .875rem);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--color-text-primary);outline:none;transition:border-color .15s,box-shadow .15s}.webuntis-alias-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent)}.webuntis-alias-input::placeholder{color:var(--text-secondary);font-style:italic}.webuntis-alias-suggest-btn{display:inline-flex;align-items:center;gap:.25rem;padding:.2rem .5rem;font-size:.75rem;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--accent);cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.webuntis-alias-suggest-btn:hover{background:color-mix(in srgb,var(--accent) 15%,transparent);border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.webuntis-stat--pending{color:var(--warning-on-soft)}.webuntis-ai-hint{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary);margin-bottom:var(--space-md, 1rem);line-height:1.5}.webuntis-form-field{display:flex;flex-direction:column;gap:.25rem}.webuntis-label{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary)}.webuntis-select{padding:.45rem .65rem;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--surface-card);color:var(--color-text-primary);font-size:var(--font-size-sm, .875rem)}.webuntis-range{width:100%;accent-color:var(--accent)}.webuntis-helper{font-size:var(--font-size-xs, .75rem);color:var(--text-secondary)}.webuntis-helper--warn{color:var(--warning-on-soft);margin-top:var(--space-xs)}.webuntis-checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm, .875rem);color:var(--color-text-primary);cursor:pointer;-webkit-user-select:none;user-select:none}.webuntis-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--shadow-color) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md)}.webuntis-modal{background:var(--surface-card);border-radius:var(--radius-lg);box-shadow:0 8px 32px color-mix(in srgb,var(--shadow-color) 18%,transparent);width:100%;max-width:30rem;display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-lg);max-height:80vh}.webuntis-modal__header h3{margin:0 0 .25rem;font-size:var(--font-size-lg)}.webuntis-modal__sub{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.webuntis-modal__list{overflow-y:auto;flex:1;margin-top:var(--space-xs, .25rem);border:1px solid var(--border-default);border-radius:var(--radius-md);max-height:20rem}.webuntis-modal__empty{padding:1.5rem;text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.webuntis-modal__item{padding:.6rem .75rem;cursor:pointer;border-bottom:1px solid var(--border-default);transition:background .1s}.webuntis-modal__item:last-child{border-bottom:none}.webuntis-modal__item:hover{background:var(--surface-hover)}.webuntis-modal__item--selected{background:rgba(var(--color-primary-rgb, 99,102,241),.1)}.webuntis-modal__item-name{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium, 500)}.webuntis-modal__item-meta{display:block;font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);margin-top:.1rem}.webuntis-modal__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-xs, .25rem)}.webuntis-modal__item--static{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem .5rem;cursor:default}.webuntis-modal__item--static:hover{background:none}.webuntis-modal__item--static .webuntis-modal__item-name{flex:1 1 40%}.webuntis-modal__item-actions{display:flex;gap:var(--space-xs, .25rem);margin-left:auto}.webuntis-family{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;min-width:12rem}.webuntis-family__entry{display:inline-flex;align-items:center;gap:.25rem;font-size:var(--font-size-xs, .75rem)}.webuntis-family__entry--pending .webuntis-family__name{color:var(--color-text-secondary)}.webuntis-family__act{background:none;border:1px solid var(--border-default);border-radius:.25rem;line-height:1;padding:.05rem .25rem;cursor:pointer;color:var(--color-text-secondary)}.webuntis-family__act:hover:not(:disabled){background:var(--surface-hover);color:var(--color-text-primary)}.webuntis-family__act:disabled{opacity:.5;cursor:default}.webuntis-family__act--off:hover:not(:disabled){color:var(--danger, #dc2626);border-color:var(--danger, #dc2626)}.webuntis-family>button{margin-top:.15rem}.wu-sync-status{display:flex;flex-direction:column;gap:var(--space-md, 1rem)}.wu-sync-badge{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium, 500);padding:.25rem .75rem;border-radius:999px;width:fit-content}.wu-sync-badge--running{background:color-mix(in srgb,var(--success) 15%,transparent);color:var(--success)}.wu-sync-badge--running:before{content:"";display:inline-block;width:.5rem;height:.5rem;border-radius:50%;background:var(--success);animation:wu-pulse 1.4s ease-in-out infinite}.wu-sync-badge--stopped{background:color-mix(in srgb,var(--text-muted) 15%,transparent);color:var(--color-text-secondary)}@keyframes wu-pulse{0%,to{opacity:1}50%{opacity:.3}}.wu-sync-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md, 1rem)}@media(max-width:1023px){.wu-sync-grid{grid-template-columns:1fr}}.wu-sync-section{background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:var(--space-sm, .75rem) var(--space-md, 1rem);display:flex;flex-direction:column;gap:var(--space-xs, .375rem)}.wu-sync-section-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold, 600);margin:0 0 var(--space-xs, .375rem);color:var(--color-text-primary)}.wu-sync-row{display:flex;justify-content:space-between;font-size:var(--font-size-sm);gap:var(--space-sm, .5rem)}.wu-sync-row--error .wu-sync-label,.wu-sync-row--error .wu-sync-value{color:var(--danger)}.wu-sync-label{color:var(--color-text-secondary);flex-shrink:0}.wu-sync-value{font-variant-numeric:tabular-nums;text-align:right}.wu-sync-error-msg{font-size:var(--font-size-xs, .75rem);color:var(--danger);background:color-mix(in srgb,var(--danger) 8%,transparent);border-radius:var(--radius-sm);padding:.25rem .5rem;margin-top:.25rem;word-break:break-word}.wu-sync-actions{display:flex;gap:var(--space-sm, .5rem);flex-wrap:wrap}.wu-role-filter{display:flex;flex-direction:column;gap:1rem}.wu-role-filter__section{display:flex;flex-direction:column;gap:.4rem}.wu-role-filter__heading{font-size:var(--font-size-sm, .875rem);font-weight:var(--font-weight-semibold, 600);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0}.wu-role-filter__chips{display:flex;flex-wrap:wrap;gap:.4rem}.wu-role-filter__summary{display:flex;align-items:center;flex-wrap:wrap;gap:.4rem;font-size:var(--font-size-sm, .875rem);margin-top:.25rem}.wu-role-tag{background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);border-radius:.25rem;padding:.1rem .45rem;font-size:.8rem;font-weight:500}.wu-role-tag--stale{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning-on-soft)}.wu-role-clear{font-size:.8rem;margin-left:.25rem}.sd-form{display:flex;flex-direction:column;gap:.85rem}.sd-alert{padding:.6rem .85rem;border-radius:8px;font-size:.9rem}.sd-alert--success{background:color-mix(in srgb,var(--success, #16a34a) 12%,transparent);color:var(--success, #16a34a)}.sd-alert--error{background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent);color:var(--danger, #dc2626)}.sd-hint{color:var(--text-secondary);font-size:.9rem;line-height:1.5;margin:0 0 .6rem}.sd-helper{color:var(--text-secondary);font-size:.82rem}.sd-helper--warn{color:var(--danger, #dc2626)}.sd-chips{display:flex;flex-wrap:wrap;gap:.4rem}.sd-chips__heading{font-size:.85rem;margin:.6rem 0 .3rem;color:var(--text-secondary)}.sd-actions{display:flex;gap:.6rem;margin-top:.75rem;flex-wrap:wrap}.sd-field{display:flex;flex-direction:column;gap:.3rem}.sd-label{font-size:.85rem;font-weight:600}.sd-select,.sd-range{width:100%}.sd-progress{margin:.5rem 0}.sd-progress__bar{height:8px;border-radius:4px;background:var(--border-color, #e5e7eb);overflow:hidden}.sd-progress__fill{height:100%;background:var(--accent, #2563eb);transition:width .2s}.sd-table{width:100%;border-collapse:collapse;font-size:.9rem}.sd-table th,.sd-table td{text-align:left;padding:.45rem .6rem;border-bottom:1px solid var(--border-color, #eee)}.sd-table th{color:var(--text-secondary);font-weight:600}.sd-badge{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.75rem}.sd-badge--rule{background:color-mix(in srgb,#16a34a 15%,transparent);color:#16a34a}.sd-badge--ai{background:color-mix(in srgb,#4f46e5 15%,transparent);color:#4f46e5}.sd-badge--manual{background:color-mix(in srgb,#6b7280 15%,transparent);color:#6b7280}.sd-badge--pending{background:color-mix(in srgb,#ca8a04 18%,transparent);color:#ca8a04}.sd-filter-bar{display:flex;gap:.5rem;align-items:center;margin:.5rem 0;flex-wrap:wrap}.nc-admin__hint{color:var(--color-text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--space-sm)}.nc-admin__muted{color:var(--color-text-secondary);font-size:var(--font-size-sm);white-space:nowrap}.nc-admin__warn{color:var(--color-warning-text, var(--color-warning));font-size:var(--font-size-sm);margin-top:2px}.nc-admin__stats{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.nc-admin__stats>*{flex:1 1 8rem}.nc-admin__note{padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);border-left:3px solid var(--color-warning, var(--color-border));border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:1.5}.nc-admin__note strong{color:var(--color-text-primary)}.nc-admin__cmd{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);margin-top:var(--space-sm)}.nc-admin__note code,.nc-admin__cmd code{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-xs, .75rem);padding:2px var(--space-xs);border-radius:var(--radius-sm, 6px);background:var(--color-bg-page, var(--color-bg-hover));color:var(--color-text-primary);-webkit-user-select:all;user-select:all}.nc-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.nc-form__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.nc-form__hint{font-size:var(--font-size-sm, .875rem);color:var(--text-secondary);margin-bottom:var(--space-md, 1rem);line-height:1.5}.nc-alert{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);max-width:40rem}.nc-alert--success{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.nc-alert--error{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent)}.nc-check{display:flex;align-items:flex-start;gap:var(--space-sm, .5rem);margin-bottom:var(--space-md, 1rem);cursor:pointer}.nc-check input{margin-top:.2rem;flex:none}.nc-check__hint{display:block;font-size:var(--font-size-sm, .875rem);color:var(--text-secondary);line-height:1.4}.nc-form__row{display:flex;flex-wrap:wrap;gap:var(--space-sm);align-items:flex-start}.nc-form__row>*:first-child{flex:1 1 16rem}.nc-form__narrow{flex:0 0 8.5rem}.nc-admin__toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-bottom:var(--space-sm)}.nc-admin__search{min-width:16rem}.nc-admin__age{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.nc-admin__age-input{width:5.5rem;padding:var(--space-xs) var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-sm, 6px);background:var(--color-bg-input, var(--color-bg-card));color:var(--color-text-primary);font:inherit}.nc-admin__bulk{position:sticky;top:0;z-index:1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);padding:var(--space-sm);margin-bottom:var(--space-sm);border-radius:var(--radius-sm, 6px);background:var(--color-primary-soft, var(--color-bg-subtle));font-size:var(--font-size-sm)}.nc-admin__bulk>span{margin-right:auto}.nc-admin__table-wrap{overflow-x:auto}.nc-admin__table{width:100%;border-collapse:collapse}.nc-admin__table th,.nc-admin__table td{padding:var(--space-sm);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.nc-admin__table th{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium, 500);white-space:nowrap}.nc-admin__table tr.is-selected{background:var(--color-primary-soft, var(--color-bg-subtle))}.nc-admin__check{width:1px}.nc-admin__name{font-weight:var(--font-weight-medium, 500)}.nc-admin__uid{font-family:var(--font-family-mono, monospace);font-size:var(--font-size-xs, .75rem);color:var(--color-text-secondary);word-break:break-all}.nc-admin__state{display:flex;gap:var(--space-xs);flex-wrap:wrap}.nc-admin__empty{padding:var(--space-lg) 0;color:var(--color-text-secondary);text-align:center}.nc-admin__form{display:flex;flex-direction:column;gap:var(--space-sm)}.nc-admin__list,.nc-admin__failures{margin:0;padding-left:var(--space-lg);max-height:30vh;overflow-y:auto;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.nc-admin__list code,.nc-admin__failures code{font-family:var(--font-family-mono, monospace);color:var(--color-text-primary)}.school-hint,.school-empty,.school-class__meta{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.school-empty{padding:var(--space-md) 0}.school-table{width:100%;border-collapse:collapse}.school-table th,.school-table td{padding:var(--space-sm);border-bottom:1px solid var(--color-border);text-align:left;vertical-align:middle}.school-table th{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium, 500)}.school-table tr.is-active{background:var(--color-primary-soft, var(--color-bg-subtle))}.school-table__empty{padding:var(--space-lg) 0;color:var(--color-text-secondary);text-align:center}.school-table__actions-head{text-align:right}.school-table__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap;justify-content:flex-end}.school-form{display:flex;flex-direction:column;gap:var(--space-sm)}.school-form__row{display:flex;gap:var(--space-sm);flex-wrap:wrap}.school-preview{margin:0;padding-left:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.school-steps{display:flex;flex-direction:column;gap:var(--space-xs);max-height:40vh;overflow-y:auto}.school-step{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle);border-left:3px solid var(--color-border)}.school-step.is-running{border-left-color:var(--color-primary)}.school-step.is-done{border-left-color:var(--color-success, var(--color-primary))}.school-step.is-warning{border-left-color:var(--color-warning, var(--color-border))}.school-step__name{font-weight:var(--font-weight-medium, 500);font-size:var(--font-size-sm)}.school-step__text{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.school-step__error{color:var(--color-danger-text, var(--color-danger));font-size:var(--font-size-sm)}.school-progress{width:100%;height:4px;margin-top:var(--space-xs)}.school-admin{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:var(--space-md);align-items:start}@media(max-width:900px){.school-admin{grid-template-columns:1fr}}.school-admin__list{position:sticky;top:var(--space-md)}.school-admin__editor{display:flex;flex-direction:column;gap:var(--space-md)}.school-classes{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);max-height:60vh;overflow-y:auto}.school-class{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);border:none;border-radius:var(--radius-sm, 6px);background:transparent;text-align:left;cursor:pointer;color:var(--color-text-primary)}.school-class:hover{background:var(--color-bg-hover)}.school-class.is-active{background:var(--color-primary-soft, var(--color-bg-subtle));box-shadow:inset 3px 0 0 var(--color-primary)}.school-class__name{display:flex;align-items:center;gap:var(--space-xs);font-weight:var(--font-weight-medium, 500)}.school-facts{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.school-facts code{font-family:var(--font-family-mono, monospace);color:var(--color-text-primary)}.school-error{color:var(--color-danger-text, var(--color-danger));font-size:var(--font-size-sm)}.school-teachers{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-xs)}.school-teachers h4{margin:0}.school-teachers__rows{display:flex;flex-direction:column;gap:var(--space-xs)}.school-teachers__row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle)}.school-teachers__label{flex:1}.school-teachers__add{display:flex;gap:var(--space-xs);align-items:center;max-width:36rem}.school-teachers__add .ss{flex:1}.school-save{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-md)}.cal-admin{display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:var(--space-md);align-items:start}@media(max-width:900px){.cal-admin{grid-template-columns:1fr}}.cal-admin__list{position:sticky;top:var(--space-md)}.cal-admin__classes{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);max-height:100vh;overflow-y:auto}.cal-admin__class{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm);border:none;border-radius:var(--radius-sm, 6px);background:transparent;text-align:left;cursor:pointer;color:var(--color-text-primary)}.cal-admin__class:hover{background:var(--color-bg-hover)}.cal-admin__class.is-active{background:var(--color-primary-soft, var(--color-bg-subtle));box-shadow:inset 3px 0 0 var(--color-primary)}.cal-admin__class-name{display:flex;align-items:center;gap:var(--space-xs);font-weight:var(--font-weight-medium, 500)}.cal-admin__class-meta,.cal-admin__hint,.cal-admin__empty{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-admin__empty{padding:var(--space-md) 0}.cal-admin__editor{display:flex;flex-direction:column;gap:var(--space-md)}.cal-admin__row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.cal-admin__facts{display:flex;flex-direction:column;gap:2px;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-admin__facts code{font-family:var(--font-family-mono, monospace);color:var(--color-text-primary)}.cal-admin__actions{display:flex;gap:var(--space-xs);flex-wrap:wrap}.cal-admin__actions--bar{margin-bottom:var(--space-sm)}.cal-admin__error{color:var(--color-danger-text, var(--color-danger));font-size:var(--font-size-sm)}.cal-admin__save{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.cal-admin__preview{margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-admin__preview.is-strong{color:var(--color-warning-text, var(--color-text-primary));font-weight:var(--font-weight-medium, 500)}.cal-admin__preview-names{color:var(--color-text-secondary)}.cal-acl{margin-bottom:var(--space-lg)}.cal-acl__head{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-sm)}.cal-acl__head h4{margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold)}.cal-acl__rows{display:flex;flex-direction:column;gap:2px;margin-bottom:var(--space-sm)}.cal-acl__row,.cal-share__row,.cal-status__row{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle);flex-wrap:wrap}.cal-acl__label,.cal-share__label,.cal-status__name{display:flex;align-items:center;gap:var(--space-xs);flex:1;min-width:0}.cal-acl__add{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.cal-acl__add>*:nth-child(2){min-width:220px}.cal-share__rows,.cal-status__rows{display:flex;flex-direction:column;gap:2px;margin:var(--space-sm) 0}.cal-share__level,.cal-share__meta,.cal-status__meta,.cal-status__shares{font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex;align-items:center;gap:var(--space-xs)}.cal-check{margin-top:var(--space-sm)}.cal-check__head{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap}.cal-check__reasons{margin:var(--space-xs) 0 0;padding-left:var(--space-lg);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-status__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-md);margin-bottom:var(--space-md)}.cal-admin__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));gap:var(--space-sm);margin:var(--space-sm) 0}.cal-admin__errors{margin:var(--space-sm) 0;padding-left:var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-admin__errors li{margin-bottom:2px}.cal-admin code{padding:0 4px;border-radius:var(--radius-sm, 4px);background:var(--color-bg-subtle);font-size:var(--font-size-xs)}.cal-kinds__group{display:flex;flex-direction:column;gap:2px}.cal-kinds__group+.cal-kinds__group{margin-top:var(--space-sm)}.cal-kinds__group-title{margin:0 0 2px;padding:0 var(--space-sm);color:var(--accent);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.04em}.cal-kinds__views{display:flex;flex-wrap:wrap;gap:var(--space-md);margin:var(--space-sm) 0}.cal-kinds__view{display:flex;align-items:center;gap:var(--space-xs);cursor:pointer}.cal-kinds__perms{margin-top:var(--space-md)}.cal-kinds__perms h4{margin:0 0 2px;font-size:var(--font-size-sm);color:var(--color-text-primary)}.cal-kinds__chips{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs);margin:var(--space-xs) 0 var(--space-sm)}.cal-kinds__chip-x{margin-left:4px;border:none;background:transparent;color:inherit;font-size:inherit;line-height:1;cursor:pointer}.cal-kinds__audience{display:flex;flex-direction:column;gap:var(--space-sm, .5rem);align-items:flex-start;margin-top:var(--space-sm, .5rem)}.todo-list{display:flex;flex-direction:column;gap:var(--space-sm, .5rem)}.todo-head{display:flex;flex-direction:column;gap:.1rem}.todo-head .wv-widget__title{flex:1 1 8rem}.todo-head .shared-seg{margin-left:auto}.todo-group{display:flex;flex-direction:column}.todo-group+.todo-group{border-top:1px solid var(--border-default)}.todo-group__header{padding:.375rem 0 .25rem;font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-secondary)}.todo-group__rows{display:flex;flex-direction:column}.todo-list .wv-exam-row{padding:.5rem 0}.todo-group__header--overdue{color:var(--danger-on-soft, var(--color-danger))}.todo-row__right{gap:.5rem}.todo-row--done .wv-exam-row__center,.todo-row--done .wv-exam-row__left{opacity:.55}.todo-row--done .todo-row__name{text-decoration:line-through}.todo-row__name{font-weight:600;font-size:.95rem;text-align:left}.todo-badge--done{background:var(--success-soft, var(--surface-sunken));color:var(--success-on-soft, var(--color-text-secondary))}.todo-detail{display:flex;flex-direction:column;gap:.75rem}.todo-detail__title{font-size:1.05rem;font-weight:600;margin:0}.todo-detail__due{margin:0;font-size:.9rem;color:var(--color-text-secondary)}.todo-detail__done{color:var(--success-on-soft, var(--color-text-secondary));font-weight:600}.todo-detail__text{margin:0;white-space:pre-wrap}.todo-detail__fields{display:grid;grid-template-columns:auto 1fr;gap:.375rem 1rem;margin:0;font-size:.9rem}.todo-detail__field{display:contents}.todo-detail__field dt{color:var(--color-text-secondary)}.todo-detail__field dd{margin:0}.todo-detail__hint{margin:0;font-size:.85rem;color:var(--color-text-secondary)}.todo-detail__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.wv-dayov{display:flex;flex-direction:column;gap:.25rem}.wv-dayov__date-bar{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.wv-dayov__date-label{font-size:.9rem;font-weight:600;color:var(--color-text, inherit);text-transform:capitalize}.wv-dayov__row{border:1px solid var(--border-default);border-left:3px solid var(--wv-period-hue, transparent);border-radius:.375rem;background:var(--surface-card);overflow:hidden}:root[data-theme=dark] .wv-dayov__row{border-left-color:color-mix(in srgb,var(--wv-period-hue, transparent) 70%,var(--ink-light))}.wv-dayov__row+.wv-dayov__row{margin-top:.25rem}.wv-dayov__row--now{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.wv-dayov__row--past{opacity:.55}.wv-dayov__row--cancelled .wv-dayov__subject{text-decoration:line-through}.wv-dayov__row-head{display:flex;align-items:center;gap:.625rem;width:100%;min-height:3.5rem;padding:.5rem .6875rem;background:none;border:none;cursor:pointer;font-size:.9rem;text-align:left;color:inherit;touch-action:manipulation}.wv-dayov__row-head:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);outline-offset:-2px}.wv-dayov__chevron{color:var(--color-text-secondary);font-size:.7rem;width:.8em;flex:none}.wv-dayov__time{flex:none;width:3.2rem;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.wv-dayov__time b{display:block;font-size:.86rem;font-weight:650;color:var(--color-text, inherit)}.wv-dayov__time span{display:block;font-size:.78rem}.wv-dayov__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.wv-dayov__title{display:flex;align-items:center;gap:.375rem;min-width:0}.wv-dayov__subject{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-dayov__meta{font-size:.78rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-dayov__signals{flex:none;display:flex;align-items:center;gap:.3125rem}.wv-dayov__room{color:var(--color-text-secondary);white-space:nowrap}.shared-rail__card{border-top:3px solid var(--wv-period-hue, var(--border-default))}:root[data-theme=dark] .shared-rail__card{border-top-color:color-mix(in srgb,var(--wv-period-hue, transparent) 70%,var(--ink-light))}.wv-dayov__card--past{opacity:.55}.wv-dayov__card--cancelled .wv-dayov__card-subject{text-decoration:line-through}.wv-dayov__card-time{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;font-size:.76rem;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.wv-dayov__card-past{font-style:italic}.wv-dayov__card-subject{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;font-size:1rem;font-weight:680}.wv-dayov__card-meta{font-size:.78rem;color:var(--color-text-secondary);overflow-wrap:anywhere}.shared-rail__card .wv-dayov__signals{flex-wrap:wrap;margin-top:.25rem}.wv-dayov__summary{height:100%;display:flex;flex-direction:column;gap:.1875rem;padding:.6rem .7rem;border:1px dashed var(--border-default);border-radius:.5rem}.wv-dayov__summary-title{font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-secondary)}.wv-dayov__summary-line{font-size:.8rem;color:var(--color-text-secondary)}.wv-dayov__pane{margin-top:.625rem;background:var(--surface-card);border:1px solid var(--border-default);border-radius:.5rem;overflow:hidden}.wv-dayov__pane-head{display:flex;align-items:center;gap:.625rem;flex-wrap:wrap;padding:.5rem .75rem;border-bottom:1px solid var(--border-default);background:color-mix(in srgb,var(--accent) 7%,transparent)}.wv-dayov__pane-title{font-weight:700}.wv-dayov__pane-sub{font-size:.8rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-dayov__pane .wv-dayov__actions{margin-left:auto}.wv-dayov__pane .wv-dayov__detail{border-top:none}.wv-dayov__actions{display:flex;gap:.375rem;flex-wrap:wrap}.wv-dayov__action-icon{line-height:1}.wv-dayov__actions--stacked{flex-wrap:nowrap;overflow-x:auto;padding-bottom:.125rem;margin-bottom:.125rem}.wv-dayov__actions--stacked .shared-btn{flex-direction:column;gap:.125rem;flex:none;min-width:4.25rem;padding-block:.4375rem;font-size:.74rem;line-height:1.15}.wv-dayov__actions--stacked .wv-dayov__action-icon{font-size:1.05rem}.wv-dayov__detail{padding:.75rem;border-top:1px solid var(--border-default);background:color-mix(in srgb,var(--surface-sunken) 55%,transparent);display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.75rem}.wv-dayov__detail--fixed{grid-template-columns:repeat(var(--wv-detail-cols, 1),minmax(0,1fr))}@media(min-width:992px){.wv-dayov__detail{grid-auto-rows:1fr}}.wv-inline-panel{display:flex;flex-direction:column;gap:.5rem}.wv-dayov__sec{padding:.6875rem .8125rem .75rem}.wv-dayov__sec+.wv-dayov__sec{border-top:1px solid color-mix(in srgb,var(--border-default) 55%,transparent)}.wv-dayov__sec-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;min-height:1.75rem;margin-bottom:.4375rem}.wv-dayov__sec-head>:last-child{margin-left:auto}.wv-dayov__sec-head>.wv-dayov__sec-title{margin-left:0}.wv-dayov__sec-head>.shared-icon-btn:first-of-type{margin-left:auto}.wv-dayov__sec-head>.shared-icon-btn~.shared-icon-btn{margin-left:0}.wv-dayov__sec-title{display:inline-flex;align-items:center;gap:.375rem;margin:0;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary)}.wv-dayov__text{margin:0;font-size:.9rem;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.wv-dayov__muted{margin:0;font-size:.86rem;color:var(--color-text-secondary);font-style:italic}.wv-dayov__sec--warn{background:color-mix(in srgb,var(--warning) 8%,transparent)}.wv-dayov__missing{margin:0;font-size:.86rem;font-weight:500;color:var(--warning-on-soft)}.wv-dayov__place,.wv-detail__panel{display:flex;flex-direction:column;gap:.5rem}.wv-detail__panel-title{margin:0;font-size:.95rem;font-weight:650}.wv-dayov__hw-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.wv-dayov__hw{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.wv-dayov__hw-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.wv-dayov__hw-text{font-size:.88rem;overflow-wrap:anywhere}.wv-dayov__hw-remark{font-size:.8rem;color:var(--color-text-secondary)}.wv-dayov__hw-due{font-size:.76rem;color:var(--color-text-secondary)}.wv-dayov__hw-due--today{font-weight:600;color:var(--warning-on-soft)}.wv-dayov__hw-actions{display:flex;gap:.375rem;flex:none}.shared-icon-btn.wv-dayov__act{color:var(--wv-act-on)}.shared-icon-btn.wv-dayov__act:hover:not(:disabled),.shared-icon-btn.wv-dayov__act:focus-visible{color:var(--wv-act-on);border-color:color-mix(in srgb,var(--wv-act) 45%,transparent);background:color-mix(in srgb,var(--wv-act) 10%,transparent)}.wv-dayov__act--write{--wv-act: var(--success);--wv-act-on: var(--success-on-soft)}.wv-dayov__act--look{--wv-act: var(--warning);--wv-act-on: var(--warning-on-soft)}.wv-dayov__act--del{--wv-act: var(--danger);--wv-act-on: var(--danger-on-soft)}.wv-hwweek{display:flex;flex-direction:column;gap:.5rem}.wv-hwweek__group-head{display:flex;align-items:center;gap:.5rem;width:100%;padding:.5rem .625rem;border:1px solid var(--border-default);border-radius:var(--radius-md, .5rem);background:var(--surface-subtle, transparent);font:inherit;text-align:left;cursor:pointer}.wv-hwweek__group-head:hover:not(:disabled){border-color:var(--border-strong, var(--border-default))}.wv-hwweek__group-head:disabled{cursor:default;background:transparent;border-color:transparent;padding-left:0}.wv-hwweek__group-head--open{border-bottom-left-radius:0;border-bottom-right-radius:0}.wv-hwweek__caret{width:.75rem;color:var(--color-text-secondary)}.wv-hwweek__group-name{flex:1 1 auto;font-weight:600}.wv-hwweek__group-head--open~.wv-hwweek__day,.wv-hwweek__group-head--open~.wv-dayov__muted{padding:.5rem .625rem 0}.wv-hwweek__day+.wv-hwweek__day{margin-top:.75rem}.wv-hwweek__day-title{margin:0 0 .375rem;padding-bottom:.25rem;border-bottom:1px solid var(--border-default);font-size:.8rem;font-weight:700;color:var(--color-text-secondary)}.wv-hwweek__day-title--today{color:var(--warning-on-soft)}.wv-dayov__course-btn{display:block;width:100%}.wv-net-modal .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.wv-net-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem}.wv-net-head .wv-dayov__text{min-width:0}.wv-net-head>button{flex:none}.wv-net-list{list-style:none;margin:.375rem 0 0;padding:0;display:flex;flex-direction:column;gap:.25rem;flex:1;min-height:0;overflow-y:auto}.wv-net{display:flex;align-items:center;gap:.5rem;font-size:.86rem;min-height:1.75rem;flex:none}.wv-net__dot{flex:none;width:.5rem;height:.5rem;border-radius:50%;background:var(--color-text-secondary)}.wv-net__dot--on{background:var(--success)}.wv-net__dot--off{background:var(--danger)}.wv-net__dot--mixed{background:var(--warning)}.wv-net--away{opacity:.55}.wv-net__name{min-width:0;overflow-wrap:anywhere}.wv-net__meta{margin-left:auto;flex:none;font-size:.74rem;color:var(--color-text-secondary);white-space:nowrap}.wv-net-progress{margin-top:.5rem;display:flex;flex-direction:column;gap:.25rem}.wv-net-progress__bar{height:.25rem;border-radius:.125rem;background:var(--border-default);overflow:hidden}.wv-net-progress__fill{height:100%;background:var(--accent);border-radius:.125rem;transition:width .25s ease}.wv-net-progress__line{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;font-size:.78rem}.wv-net-progress__text{min-width:0}.wv-net-actions{display:flex;align-items:center;justify-content:flex-end;gap:.375rem;flex-wrap:wrap}.wv-svc-modal .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.wv-svc-list{list-style:none;margin:.375rem 0 0;padding:0;display:flex;flex-direction:column;gap:.375rem;flex:1;min-height:0;overflow-y:auto}.wv-svc{display:flex;align-items:center;gap:.5rem;font-size:.86rem;flex:none;flex-wrap:wrap}.wv-svc__body{display:flex;flex-direction:column;min-width:6rem;flex:1 1 8rem;min-height:0}.wv-svc__name{overflow-wrap:anywhere}.wv-svc__meta{font-size:.74rem;color:var(--color-text-secondary);overflow-wrap:anywhere}.wv-svc--person{align-items:flex-start}.wv-svc__check{display:flex;align-items:center;min-height:1.25rem;flex:none}.wv-svc__chips{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem;flex:1 1 10rem;min-width:0}.wv-svc-pick{display:flex;align-items:center;gap:.5rem;font-size:.8rem;flex:none;padding-bottom:.25rem;border-bottom:1px solid var(--border-default)}.wv-svc-pick__all{display:flex;align-items:center;gap:.35rem;cursor:pointer}.wv-svc-assign{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;flex:none;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border-default)}.wv-cb__text{color:var(--color-text-secondary);overflow-wrap:anywhere}.wv-cb__filter{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;flex:none}.wv-cb__filter .wv-dayov__text{margin:0}.wv-cb__filter .ss{flex:0 1 14rem}.wv-cb__filter--pair{justify-content:flex-start}.wv-cb__form{display:flex;flex-direction:column;flex:1;min-height:0}.wv-cb__field{display:flex;flex-direction:column;gap:.25rem;flex:none;margin-bottom:.625rem}.wv-cb__field--grow{flex:1 1 auto;min-height:6rem}.wv-cb__pickbar{display:flex;align-items:center;gap:.375rem;flex-wrap:wrap;flex:none;padding:.25rem 0 .375rem}.wv-cb__pickbar .wv-dayov__muted{margin-left:auto}.wv-cb__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(10.5rem,1fr));gap:.375rem;align-content:start;flex:1;min-height:0;overflow-y:auto;margin-top:.25rem;padding:2px}.wv-cb__card{display:flex;align-items:center;gap:.5rem;min-height:2.75rem;padding:.375rem .625rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transition:background var(--transition-base),border-color var(--transition-base)}.wv-cb__card:hover{border-color:var(--accent)}.wv-cb__card--on{border-color:var(--accent);background:var(--surface-selected)}.wv-cb__card:focus-within{outline:2px solid var(--accent);outline-offset:1px}.wv-cb__card-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.wv-cb__card-mark{flex:none;width:1.125rem;height:1.125rem;border:2px solid var(--border-default);border-radius:50%;position:relative}.wv-cb__card--on .wv-cb__card-mark{border-color:var(--accent);background:var(--accent)}.wv-cb__card--on .wv-cb__card-mark:after{content:"";position:absolute;left:.28rem;top:.08rem;width:.25rem;height:.5rem;border:solid var(--text-on-accent);border-width:0 2px 2px 0;transform:rotate(45deg)}.wv-cb__card-name{min-width:0;font-size:.86rem;line-height:1.2;overflow-wrap:anywhere}.wv-cb__form .shared-form-group{flex:none}.wv-dayov__todo-line{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.wv-dayov__rooms{display:inline-flex;align-items:center;gap:.375rem;flex-wrap:wrap;min-width:0}.wv-dayov__room-pin{color:var(--color-text-secondary)}.wv-dayov__room-empty{color:var(--color-text-secondary);font-style:italic;font-size:.82rem}.wv-dayov__pick-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.375rem}.wv-dayov__pick{display:flex;align-items:center;gap:.625rem;width:100%;padding:.625rem .75rem;border:1px solid var(--border-default);border-radius:.5rem;background:var(--surface-card);color:inherit;font:inherit;text-align:left;cursor:pointer}button.wv-dayov__pick:hover,button.wv-dayov__pick:focus-visible{border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:var(--surface-sunken);outline:none}.wv-dayov__pick:disabled{opacity:.6;cursor:default}.wv-dayov__pick--check{cursor:pointer}.wv-dayov__pick--picked{border-color:color-mix(in srgb,var(--accent) 50%,transparent);background:var(--surface-sunken)}.wv-dayov__pick-scroll{max-height:22rem;overflow-y:auto;padding-right:.125rem}.wv-dayov__pick-search{margin-bottom:.625rem}.wv-dayov__pick-main{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}.wv-dayov__pick-name{font-weight:600;overflow-wrap:anywhere}.wv-dayov__pick-sub{font-size:.8rem;color:var(--color-text-secondary);overflow-wrap:anywhere}.wv-dayov__pick-meta{flex:none;font-size:.78rem;color:var(--color-text-secondary);white-space:nowrap}.wv-dayov__pick-spin,.wv-dayov__inline-spin{flex:none;width:.875rem;height:.875rem;border-radius:50%;border:2px solid color-mix(in srgb,var(--accent) 35%,transparent);border-top-color:var(--accent);animation:wv-dayov-spin .7s linear infinite;display:inline-block}@keyframes wv-dayov-spin{to{transform:rotate(360deg)}}.wv-dayov__inline-load{display:inline-flex;align-items:center;gap:.4375rem;color:var(--color-text-secondary);font-size:.86rem}.wv-dayov__res-tabs{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.625rem}.wv-dayov__res-groups{display:flex;flex-direction:column;gap:.5rem}.wv-dayov__res-group{display:flex;flex-direction:column;gap:.1875rem}.wv-dayov__res-group-title{font-size:.74rem;font-weight:600;color:var(--color-text-secondary)}.wv-dayov__res-chips{display:flex;flex-wrap:wrap;gap:.3125rem}@media(max-width:640px),(pointer:coarse){.wv-dayov{gap:.375rem}.wv-dayov__row-head{min-height:4rem;padding:.625rem .75rem;gap:.6875rem;font-size:.95rem}.wv-dayov__detail{padding:.625rem .625rem 0;gap:.625rem}.wv-dayov__sec{padding:.75rem .8125rem .8125rem}.wv-dayov__text{font-size:.95rem}.wv-dayov__muted{font-size:.9rem}.wv-dayov__sec-title{font-size:.74rem}.wv-dayov__hw-text{font-size:.95rem}.wv-dayov__hw-remark{font-size:.86rem}.wv-dayov__hw-due{font-size:.82rem}}@media(max-width:400px){.wv-dayov__row-head{gap:.5rem;padding-inline:.5rem}.wv-dayov__time{width:2.9rem}.wv-dayov__time b{font-size:.82rem}}.wv-detail__summary{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.75rem;margin-bottom:.75rem;border-bottom:1px solid var(--border-default)}.wv-detail__row{display:flex;gap:.5rem;align-items:baseline;font-size:.9rem}.wv-detail__row--muted{color:var(--text-secondary);font-style:italic}.wv-detail__badge{font-size:.72rem;font-weight:700;padding:.125rem .5rem;border-radius:999px;background:var(--warning-soft);color:var(--warning-on-soft)}.wv-detail__itsl{display:flex;flex-direction:column;gap:.375rem;margin-bottom:.75rem}.wv-detail__itsl-label{font-size:.72rem;font-weight:700;text-transform:uppercase;color:var(--accent)}.wv-detail__body{display:flex;flex-direction:column;gap:1rem}.wv-detail__section{display:flex;flex-direction:column;gap:.25rem}.wv-detail__heading{margin:0;font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-secondary)}.wv-detail__text{margin:0;white-space:pre-wrap;line-height:1.45}.wv-detail__muted{margin:0;color:var(--text-muted);font-style:italic;font-size:.88rem}.wv-detail__empty{padding:1rem 0;text-align:center;color:var(--text-muted)}.wv-detail__list,.wv-detail__students{margin:0;padding-left:1.125rem;display:flex;flex-direction:column;gap:.125rem}.wv-detail__students{list-style:none;padding-left:0}.wv-detail__student--absent{color:var(--danger-on-soft)}.wv-detail__absent-tag{margin-left:.375rem;font-size:.7rem;font-weight:700;padding:1px .375rem;border-radius:999px;background:var(--danger-soft);color:var(--danger-on-soft)}.wv-detail__student-class{color:var(--text-secondary);font-size:.85em}.wv-detail__absent-reason{color:var(--text-muted);font-style:italic;font-size:.85em}.wv-detail__absent-tag--unexcused{background:var(--danger-soft);color:var(--danger-on-soft)}.wv-detail__section-head{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.wv-detail__edit{display:flex;flex-direction:column;gap:.5rem;margin-top:.5rem}.wv-detail__edit-actions{display:flex;gap:.5rem}.wv-att__list{list-style:none;margin:.25rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.wv-att__item{position:relative;border-radius:.5rem;overflow:hidden;touch-action:pan-y}.wv-att__swipe{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;padding:0 .9rem;font-size:.82rem;font-weight:700;letter-spacing:.01em;color:var(--text-inverse, #fff)}.wv-att__swipe--from-left{justify-content:flex-start}.wv-att__swipe--from-right{justify-content:flex-end}.wv-att__swipe--present{background:color-mix(in srgb,var(--success) 72%,transparent)}.wv-att__swipe--absent{background:color-mix(in srgb,var(--danger) 72%,transparent)}.wv-att__swipe--late{background:color-mix(in srgb,var(--warning) 76%,transparent)}.wv-att__swipe--armed{filter:saturate(1.25) brightness(1.06)}.wv-att__row{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;padding:.4rem .6rem;border:1px solid var(--border-default);border-radius:.5rem;border-left-width:3px;background:var(--surface-card);transition:transform .16s ease-out}.wv-att__row--present{border-left-color:var(--success)}.wv-att__row--late{border-left-color:var(--warning-on-soft);background:color-mix(in srgb,var(--warning) 8%,var(--surface-card))}.wv-att__row--absent{border-left-color:var(--danger);background:color-mix(in srgb,var(--danger) 7%,var(--surface-card))}.wv-att__main{display:flex;flex-direction:column;gap:.05rem;min-width:0;flex:1}.wv-att__name{font-size:.86rem;font-weight:600;line-height:1.25;overflow-wrap:anywhere}.wv-att__sub{display:flex;align-items:baseline;flex-wrap:wrap;gap:.35rem;font-size:.74rem;line-height:1.3;color:var(--text-secondary)}.wv-att__state{font-size:.74rem;font-weight:700;white-space:nowrap}.wv-att__state--late{color:var(--warning-on-soft)}.wv-att__state--absent{color:var(--danger-on-soft)}.wv-att__meta{font-size:.8rem;color:var(--text-secondary)}.wv-att__meta--ok{color:var(--success-on-soft)}.wv-att__meta--warn{color:var(--danger-on-soft)}.wv-att__actions{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.wv-att__iconbtn--late{background:color-mix(in srgb,var(--warning) 14%,transparent);color:var(--warning-on-soft);border-color:color-mix(in srgb,var(--warning) 28%,transparent)}.wv-att__iconbtn--late:hover:not(:disabled){background:color-mix(in srgb,var(--warning) 24%,transparent)}.wv-att__iconbtn--absent{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger-on-soft);border-color:color-mix(in srgb,var(--danger) 24%,transparent)}.wv-att__iconbtn--absent:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 20%,transparent)}.wv-att__check{display:flex;align-items:center;justify-content:space-between;gap:.6rem;flex-wrap:wrap;padding:.5rem .7rem;border-radius:.5rem;margin-bottom:.6rem}.wv-att__check--done{background:color-mix(in srgb,var(--success) 10%,transparent);color:var(--success-on-soft)}.wv-att__check--open{background:var(--surface-card);color:var(--text-secondary)}.wv-att__check-label{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600}.wv-att__check-hint{font-size:.78rem;font-weight:400;color:var(--text-secondary)}.wv-att__late-edit{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}.wv-att__time{width:6.5rem}.wv-att__hint{display:flex;align-items:center;gap:.35rem;margin:0 0 .4rem;font-size:.75rem;color:var(--text-secondary)}.wv-att__footer .wv-att__check-label{margin-right:auto}.wv-att__check-label--done{color:var(--success-on-soft)}.wv-detail__title{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap;min-width:0}.wv-detail__title-subject{font-weight:700}.wv-detail__title-sub{font-size:.82rem;font-weight:400;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-detail__title .wv-dayov__signals{align-self:center}.wv-detail__footer{width:100%}.wv-icon{display:inline-flex;align-items:center;flex:none;color:var(--color-text-secondary)}.wv-icon>svg{width:1.15em;height:1.15em;display:block}.shared-badge .wv-icon{color:inherit}.shared-badge .wv-icon>svg{width:1em;height:1em}.wv-dayov__sec-icon>svg{width:1.35em;height:1.35em}.wv-dayov__summary-line{display:flex;align-items:center;gap:.375rem}.wv-sg__hint{margin:0 0 .625rem;font-size:.8rem;color:var(--color-text-secondary)}.wv-sg__tools{display:flex;align-items:center;gap:.5rem;margin-bottom:.625rem}.wv-sg__tools .shared-search{flex:1 1 auto;min-width:0}.wv-sg__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.25rem}.wv-sg__item{border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-card);transition:background var(--transition-base),border-color var(--transition-base)}.wv-sg__item--on{border-color:var(--accent);background:var(--surface-selected)}.wv-sg__item .shared-checkbox{display:flex;align-items:center;gap:.625rem;width:100%;min-height:2.5rem;padding:.25rem .625rem;cursor:pointer}.wv-sg__person{display:flex;flex-direction:column;line-height:1.3;min-width:0}.wv-sg__name{font-size:.875rem}.wv-sg__meta{font-size:.75rem;color:var(--color-text-secondary)}.wv-sg__switch{margin:.75rem 0 0}.wv-sg__footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;width:100%;flex-wrap:wrap}.wv-sg__count{font-size:.8rem;color:var(--color-text-secondary)}.wv-sg__diff{font-weight:700;color:var(--color-text-primary)}.wv-sg__footer-actions{display:flex;align-items:center;gap:.5rem;margin-left:auto}.wv-sg__group+.wv-sg__group{margin-top:.75rem}.wv-sg__group-title{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;margin:0 0 .25rem;padding-bottom:.1875rem;border-bottom:1px solid var(--border-default);font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--color-text-secondary)}.wv-sg__group-count{font-weight:400;text-transform:none;letter-spacing:0}.app-widget{display:flex;flex-direction:column;height:100%;min-height:0}.app-widget__body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.85rem}@media(max-width:1023px){.app-widget{height:auto}.app-widget__body{overflow:visible}}.app-widget__grid{display:grid;gap:.75rem;align-content:start}.app-widget__tile-wrap{position:relative}.app-widget__tile{width:100%;display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.75rem .4rem;border:1px solid var(--border-subtle);border-radius:.75rem;background:var(--surface-card);cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;text-align:center}.app-widget__tile:hover{transform:translateY(-.125rem);border-color:var(--accent);box-shadow:0 4px 14px color-mix(in srgb,var(--shadow-color) 8%,transparent)}.app-widget__tile--edit{cursor:default}.app-widget__tile--edit:hover{transform:none;box-shadow:none}.app-widget__tile--disabled{opacity:.5;cursor:not-allowed}.app-widget__tile--disabled:hover{transform:none;box-shadow:none;border-color:var(--border-color)}.app-widget__tile--drag{cursor:grab;touch-action:none}.app-widget__tile--drag:active{cursor:grabbing}.app-widget__icon{width:2.875rem;height:2.875rem;display:flex;align-items:center;justify-content:center;border-radius:.75rem;background:var(--accent-soft);color:var(--accent);font-size:1.5rem;line-height:1}.app-widget__img{width:1.875rem;height:1.875rem;object-fit:contain}.app-widget__label{font-size:.78rem;font-weight:500;color:var(--text-primary);width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-widget__tile--add{border-style:dashed;color:var(--text-secondary)}.app-widget__tile--add .app-widget__icon{background:transparent;border:1px dashed var(--border-default);color:var(--text-secondary)}.app-widget__remove{position:absolute;top:-.375rem;right:-.375rem;width:1.25rem;height:1.25rem;border-radius:50%;border:none;background:var(--danger);color:var(--ink-light);font-size:.9rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.app-widget__error{margin-top:.5rem;padding:.4rem .6rem;border-radius:8px;font-size:.82rem;color:var(--danger, #dc2626);background:color-mix(in srgb,var(--danger, #dc2626) 12%,transparent)}.app-widget__empty{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-secondary);font-size:.85rem;text-align:center}.app-widget__picker{position:fixed;top:0;right:0;bottom:0;left:0;background:color-mix(in srgb,var(--shadow-color) 45%,transparent);display:flex;align-items:center;justify-content:center;z-index:1000}.app-widget__picker-panel{width:min(27.5rem,92vw);max-height:70vh;background:var(--surface-card);border-radius:.875rem;box-shadow:0 12px 40px color-mix(in srgb,var(--shadow-color) 25%,transparent);display:flex;flex-direction:column;overflow:hidden}.app-widget__picker-head{display:flex;align-items:center;justify-content:space-between;padding:.9rem 1.1rem;font-weight:600;border-bottom:1px solid var(--border-subtle)}.app-widget__picker-close{border:none;background:transparent;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--text-secondary)}.app-widget__picker-list{overflow-y:auto;padding:.5rem}.app-widget__picker-msg{padding:1.5rem;text-align:center;color:var(--text-secondary);font-size:.85rem}.app-widget__picker-create{margin:.4rem;padding:.6rem;border:1px dashed var(--border-default);border-radius:.625rem;background:transparent;color:var(--accent);font-weight:600;cursor:pointer}.app-widget__picker-create:hover{background:var(--accent-soft)}.app-widget__create{display:flex;flex-direction:column;gap:.5rem;padding:.7rem;border-top:1px solid var(--border-subtle)}.app-widget__create-title{font-weight:600;font-size:.9rem}.app-widget__create-error{color:var(--danger);font-size:.8rem}.app-widget__create-input{width:100%;padding:.5rem .6rem;border:1px solid var(--border-default);border-radius:.5rem;font-size:.85rem}.app-widget__create-input:focus{outline:none;border-color:var(--accent)}.app-widget__create-icon-row{display:flex;align-items:center;gap:.6rem}.app-widget__create-icon-btn{min-width:4rem}.app-widget__create-actions{display:flex;justify-content:flex-end;gap:.6rem}.mail-widget{display:flex;flex-direction:column;gap:.15rem}.mail-widget__count-row{display:flex;align-items:center;gap:.6rem}.mail-widget__icon{width:1.5rem;height:1.5rem;flex:none;color:var(--text-secondary)}.mail-widget__count{font-size:2.25rem;font-weight:700;line-height:1.1;color:var(--text-primary);font-variant-numeric:tabular-nums}.mail-widget__count--zero{color:var(--text-secondary);font-weight:600}.mail-widget__label{display:block;margin:0;color:var(--text-secondary);font-size:.9rem}.mail-widget__meta{display:block;margin:.15rem 0 0;color:var(--text-tertiary, var(--text-secondary));font-size:.8rem}.mail-widget__stale{display:block;margin:.35rem 0 0;color:var(--warning, var(--text-secondary));font-size:.78rem}.mail-widget__error{padding:.5rem 0;color:var(--danger);font-size:.9rem}.mail-widget__notice{display:flex;flex-direction:column;align-items:flex-start;gap:.4rem;padding:.25rem 0}.mail-widget__notice-text{margin:0;color:var(--text-secondary);font-size:.9rem;line-height:1.4}.mail-widget__open{display:block;width:100%;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;border-radius:var(--radius-md, .5rem)}.mail-widget__open:hover .mail-widget__count{color:var(--accent)}.mail-widget__open:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.mail-widget__footer{display:flex;margin-top:auto;padding-top:.5rem}.mail-widget__ext{width:.85em;height:.85em;flex:none}.mail-modal-shell .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.mail-modal{display:grid;grid-template-columns:min(15rem,20%) min(24rem,32%) 1fr;gap:var(--space-md, 1rem);grid-template-rows:minmax(0,1fr);align-items:stretch;flex:1;min-height:0}.mail-modal--narrow{grid-template-columns:auto min(24rem,32%) 1fr}.mail-modal__list,.mail-modal__reader{min-width:0;min-height:0;overflow-x:hidden}.mail-modal__list{display:flex;flex-direction:column;overflow-y:hidden}.mail-modal__reader{overflow-y:auto;border-left:1px solid var(--border-default);padding-left:var(--space-md, 1rem)}.mail-modal__placeholder{margin:0;padding:2rem 0;color:var(--text-secondary);text-align:center}.mail-folders{min-width:0;min-height:0;border-right:1px solid var(--border-default);padding-right:.5rem;overflow-y:auto;overflow-x:hidden}.mail-folders__head{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:0 0 .35rem .35rem}.mail-folders__title{font-size:.72rem;font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted, var(--text-secondary))}.mail-folders__list{list-style:none;margin:0;padding:0}.mail-folders__row{display:flex;align-items:center;padding-left:calc(var(--depth, 0) * .85rem)}.mail-folders__twisty,.mail-folders__twisty-space{flex:none;width:1.15rem;height:1.15rem}.mail-folders__twisty{display:inline-flex;align-items:center;justify-content:center;border:0;background:none;padding:0;color:var(--text-secondary);cursor:pointer;transition:transform var(--transition-fast, .15s)}.mail-folders__twisty svg{width:.8rem;height:.8rem}.mail-folders__twisty.is-open{transform:rotate(90deg)}.mail-folders__item{display:flex;align-items:center;gap:.45rem;flex:1;min-width:0;padding:.3rem .4rem;border:0;border-radius:var(--radius-sm, .35rem);background:none;color:var(--text-primary);font:inherit;font-size:.88rem;text-align:left;cursor:pointer}.mail-folders__item:hover{background:var(--surface-hover)}.mail-folders__item.is-active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:var(--font-weight-semibold)}.mail-folders__item--container{color:var(--text-secondary);cursor:default}.mail-folders__icon{width:1rem;height:1rem;flex:none}.mail-folders__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-folders__count,.mail-folders__rail-count{flex:none;font-size:.75rem;font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;color:var(--accent)}.mail-folders--rail{display:flex;flex-direction:column;align-items:center;gap:.15rem;padding-right:.35rem}.mail-folders__rail-item{display:flex;flex-direction:column;align-items:center;gap:.1rem;width:2.5rem;padding:.35rem 0;border:0;border-radius:var(--radius-sm, .35rem);background:none;color:var(--text-secondary);cursor:pointer}.mail-folders__rail-item:hover{background:var(--surface-hover)}.mail-folders__rail-item.is-active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent)}.mail-folders__item.is-dropover,.mail-folders__rail-item.is-dropover{background:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:inset 0 0 0 2px var(--accent);color:var(--accent)}.mail-move__subject{margin:0 0 .6rem;font-size:.85rem;color:var(--text-secondary);overflow-wrap:anywhere}.mail-move__list{list-style:none;margin:.6rem 0 0;padding:0;max-height:45vh;overflow-y:auto;overflow-x:hidden}.mail-move__item{display:block;width:100%;padding:.35rem .5rem;padding-left:calc(.5rem + var(--depth, 0) * .85rem);border:0;border-radius:var(--radius-sm, .35rem);background:none;color:var(--text-primary);font:inherit;font-size:.9rem;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-move__item:hover{background:var(--surface-hover)}.mail-move__item.is-chosen{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:var(--font-weight-semibold)}.mail-move__item--container{color:var(--text-secondary);cursor:default}.mail-move__empty{margin:.8rem 0 0;color:var(--text-secondary);font-size:.9rem}.mail-modal__items{list-style:none;margin:0;padding:0;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.mail-modal__item-row{display:flex;align-items:center;gap:.25rem;min-width:0;border-bottom:1px solid var(--border-default)}.mail-modal__item-row:hover{background:var(--surface-sunken)}.mail-modal__item-row .mail-menu{flex:none}.mail-modal__item{display:flex;flex-direction:column;gap:.1rem;flex:1;min-width:0;padding:.5rem .6rem;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}.mail-modal__item.is-open{background:var(--surface-sunken)}.mail-modal__item-top{display:flex;align-items:center;gap:.4rem;min-width:0;font-size:.82rem;color:var(--text-secondary)}.mail-modal__sender{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-modal__when{flex:none}.mail-modal__clip,.mail-modal__replied{flex:none;width:.85rem;height:.85rem;color:var(--text-secondary)}.mail-modal__subject{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.mail-modal__item.is-unread .mail-modal__subject{font-weight:700}.mail-modal__item.is-unread .mail-modal__sender{font-weight:600}.mail-modal__item:not(.is-unread) .mail-modal__subject{color:var(--text-secondary)}.mail-modal__item-row{position:relative}.mail-modal__item-row:has(.is-unread):before{content:"";position:absolute;top:.35rem;bottom:.35rem;left:0;width:3px;border-radius:0 2px 2px 0;background:var(--accent)}.mail-modal__empty,.mail-modal__error{padding:1rem 0;color:var(--text-secondary)}.mail-modal__error{color:var(--danger)}.mail-view__title-row{display:flex;align-items:flex-start;gap:.4rem;min-width:0}.mail-view__back{flex:none;margin-top:.15rem}.mail-view__subject{flex:1;min-width:0;margin:.3rem 0 .5rem;font-size:1.05rem;overflow-wrap:anywhere}.mail-view__meta{display:grid;grid-template-columns:auto 1fr;gap:.1rem .6rem;margin:0 0 .7rem;font-size:.84rem}.mail-view__meta dt{color:var(--text-secondary)}.mail-view__meta dd{margin:0;min-width:0;overflow-wrap:anywhere}.mail-view__addr-name{font-weight:600}.mail-view__addr-mail{color:var(--text-secondary)}.mail-view__blocked{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap;padding:.5rem .7rem;margin-bottom:.5rem;border:1px solid var(--border-default);border-radius:var(--radius-sm, .35rem);background:var(--surface-sunken);font-size:.82rem;color:var(--text-secondary)}.mail-view{display:flex;flex-direction:column;min-height:100%}.mail-view__head,.mail-view__blocked,.mail-view__attachments{flex:none}.mail-view__frame{width:100%;flex:1;min-height:18rem;border:1px solid var(--border-default);border-radius:var(--radius-sm, .35rem);background:#fff}.mail-view__attachments{margin-top:.8rem}.mail-view__attachments h4{margin:0 0 .3rem;font-size:.9rem}.mail-view__attachments ul{list-style:none;margin:0;padding:0}.mail-view__attachments li{display:flex;align-items:center;gap:.5rem;padding:.15rem 0}.mail-view__att-size{font-size:.78rem;color:var(--text-secondary)}.mail-view__error{padding:1rem 0;color:var(--danger)}@media(min-width:1024px)and (max-width:1279px){.mail-modal-shell .shared-modal__body{--modal-body-padding: 1rem}.mail-modal,.mail-modal--narrow{gap:.6rem}.mail-folders{padding-right:.35rem}.mail-folders__row{padding-left:calc(var(--depth, 0) * .6rem)}.mail-folders__item{gap:.35rem;padding:.22rem .3rem;font-size:.78rem}.mail-folders__icon{width:.85rem;height:.85rem}.mail-folders__count{font-size:.68rem}.mail-folders__twisty,.mail-folders__twisty-space{width:.9rem;height:.9rem}.mail-modal__item{padding:.3rem .4rem;gap:0}.mail-modal__item-top{gap:.3rem;font-size:.72rem}.mail-modal__subject{font-size:.8rem}.mail-modal__clip,.mail-modal__replied{width:.75rem;height:.75rem}.mail-modal__search{gap:.3rem}.mail-modal__search-note{font-size:.72rem}.mail-compose__field>span{width:3.6rem}}@media(max-width:1023px){.mail-modal,.mail-modal--narrow{grid-template-columns:auto minmax(0,1fr)}.mail-modal--reading .mail-modal__list{display:none}.mail-modal:not(.mail-modal--reading) .mail-modal__reader{display:none}.mail-modal__reader{border-left:0;padding-left:0}.mail-folders:not(.mail-folders--rail){display:none}}@media(max-width:639px){.mail-modal,.mail-modal--narrow{grid-template-columns:1fr}.mail-modal--reading .mail-modal__list{display:block}.mail-folders,.mail-folders:not(.mail-folders--rail){display:block;border-right:0;padding-right:0}.mail-modal__reader{border-left:0;padding-left:0}}.mail-modal__toolbar{display:flex;align-items:center;gap:.7rem;margin-bottom:.6rem}.mail-modal__sent{font-size:.82rem;color:var(--success, var(--text-secondary))}.mail-view__actions{display:flex;gap:.4rem;margin:0 0 .6rem;flex-wrap:wrap}.mail-compose{display:flex;flex-direction:column;gap:.5rem;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.mail-compose__head,.mail-compose__field,.mail-compose__subject-row,.mail-compose__more,.mail-compose__actions{flex:none}.mail-compose__head{display:flex;align-items:center;gap:.5rem}.mail-compose__head h3{margin:0;font-size:1.05rem}.mail-compose__field{display:flex;align-items:center;gap:.6rem}.mail-compose__field>span{flex:none;width:4.5rem;font-size:.84rem;color:var(--text-secondary)}.mail-compose__field>.shared-input,.mail-compose__field>.token-auto{flex:1;min-width:0}.mail-compose__more{display:flex;gap:.3rem}.mail-compose__more .shared-btn>span{display:inline-flex;align-items:center;gap:.3rem}.mail-compose__subject-row{display:flex;align-items:center;gap:.6rem}.mail-compose__subject-row .mail-compose__field{flex:1;min-width:0}.mail-compose__format{display:flex;justify-content:flex-end;flex:none}.mail-compose__editor{flex:1;min-height:12rem}.mail-attach{flex:none;display:flex;flex-direction:column;gap:.4rem}.mail-attach__actions{display:flex;gap:.4rem;flex-wrap:wrap}.mail-attach__input{display:none}.mail-attach__list{list-style:none;margin:0;padding:0}.mail-attach__item{display:flex;align-items:center;gap:.5rem;padding:.25rem .4rem;border-radius:var(--radius-sm, .35rem);background:var(--surface-sunken);margin-top:.25rem;font-size:.85rem}.mail-attach__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mail-attach__size,.mail-attach__origin{flex:none;font-size:.78rem;color:var(--text-secondary)}.mail-attach__error{margin:0;font-size:.82rem;color:var(--danger)}.mail-compose__body{width:100%;flex:1;min-height:8rem;resize:none;padding:.6rem;border:1px solid var(--border-default);border-radius:var(--radius-sm, .35rem);background:var(--surface-card);color:var(--text-primary);font:inherit;line-height:1.5}.mail-compose__error{color:var(--danger);font-size:.85rem}.mail-compose__actions{display:flex;align-items:center;justify-content:space-between;gap:.7rem;flex-wrap:wrap}.mail-compose__actions>div{display:flex;gap:.4rem;flex-wrap:wrap}.mail-compose__note{font-size:.78rem;color:var(--text-secondary)}@media(max-width:639px){.mail-compose__field{flex-direction:column;align-items:stretch;gap:.2rem}.mail-compose__field>span{width:auto}.mail-compose__subject-row{flex-direction:column;align-items:stretch;gap:.3rem}}@media(max-height:860px){.mail-compose{gap:.35rem}.mail-compose__head h3{font-size:.95rem}.mail-compose__field>span{font-size:.8rem}.mail-compose__editor{min-height:8rem}.mail-compose__body{min-height:6rem}.mail-compose__note{font-size:.74rem}}.mail-modal__search{display:flex;align-items:center;gap:.4rem;margin-bottom:.4rem}.mail-modal__search .shared-search{flex:1;min-width:0}.mail-modal__search-note{margin:0 0 .5rem;font-size:.78rem;color:var(--text-secondary)}.mail-settings__grid{display:grid;grid-template-columns:12rem minmax(0,1fr);gap:var(--space-md, 1rem);height:100%;min-height:0;align-items:stretch}.mail-settings__nav{min-width:0;border-right:1px solid var(--border-default);padding-right:.5rem;overflow-y:auto}.mail-settings__nav ul{list-style:none;margin:0;padding:0}.mail-settings__nav-item{display:block;width:100%;padding:.4rem .5rem;border:0;border-radius:var(--radius-sm, .35rem);background:none;color:var(--text-primary);font:inherit;font-size:.9rem;text-align:left;cursor:pointer}.mail-settings__nav-item:hover{background:var(--surface-hover)}.mail-settings__nav-item.is-active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:var(--font-weight-semibold)}.mail-settings__panel{display:flex;flex-direction:column;gap:.7rem;min-width:0;min-height:0;overflow-y:auto;overflow-x:hidden}.mail-settings__title{margin:0;font-size:1.05rem}.mail-settings__section{display:flex;flex-direction:column;gap:.7rem;min-height:0;flex:1}.mail-settings__lead,.mail-settings__hint{margin:0;font-size:.85rem;line-height:1.5;color:var(--text-secondary)}.mail-settings__notice{display:flex;flex-direction:column;gap:.6rem}.mail-settings__chooser{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.7rem;flex:none}@media(max-width:639px){.mail-settings__chooser{grid-template-columns:1fr}}.mail-settings__actions{display:flex;align-items:center;justify-content:flex-end;gap:.7rem;flex:none}.mail-settings__saved{font-size:.82rem;color:var(--success, var(--text-secondary))}.mail-settings .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}@media(max-width:639px){.mail-settings__grid{grid-template-columns:1fr;grid-template-rows:auto 1fr}.mail-settings__nav{border-right:0;border-bottom:1px solid var(--border-default);padding-right:0;padding-bottom:.4rem}.mail-settings__nav ul{display:flex;gap:.3rem;overflow-x:auto}}.mail-source .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.mail-source__subject{margin:0 0 .2rem;font-weight:600;overflow-wrap:anywhere}.mail-source__note{margin:0 0 .6rem;font-size:.8rem;color:var(--text-secondary)}.mail-source__text{flex:1;min-height:0;margin:0;padding:.7rem .8rem;overflow:auto;background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-md);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}.mail-source__actions{display:flex;justify-content:flex-end;gap:.5rem}.shared-optbtn{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--border-default);border-radius:.4rem;background:var(--surface-card);color:var(--color-text, inherit);font:inherit;line-height:1.2;cursor:pointer;text-align:left;transition:background-color .12s ease,border-color .12s ease}.shared-optbtn--sm{min-height:2rem;padding:.3125rem .625rem;font-size:.82rem}.shared-optbtn--md{min-height:2.5rem;padding:.4375rem .8125rem;font-size:.9rem}.shared-optbtn:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--border-default));background:var(--surface-sunken)}.shared-optbtn:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.shared-optbtn:disabled{opacity:.6;cursor:default}.shared-optbtn--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-card));color:var(--accent);font-weight:600}.shared-optbtn--active:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 16%,var(--surface-card))}.shared-optbtn__icon{display:inline-flex;flex:none;font-size:1.125rem}.shared-optbtn__icon>svg{width:1.125em;height:1.125em;display:block}.shared-optbtn__label{min-width:0}.shared-optbtn__hint{color:var(--color-text-secondary);font-weight:400;font-size:.92em;white-space:nowrap}.shared-optbtn--active .shared-optbtn__hint{color:color-mix(in srgb,var(--accent) 75%,var(--color-text-secondary))}.shared-optbtn--stacked{flex-direction:column;gap:.125rem;min-width:4.25rem;padding-block:.4375rem;font-size:.74rem;text-align:center}.shared-optbtn--stacked .shared-optbtn__icon{font-size:1.25rem}@media(pointer:coarse){.shared-optbtn--sm{min-height:2.5rem}.shared-optbtn--md{min-height:var(--touch-target)}}.itsl-account-modal .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.itsl-modal-panel{flex:1;min-height:0;overflow-y:auto;padding-top:.85rem}.itsl-modal-view{display:flex;flex-direction:column;gap:var(--space-md, .85rem)}.itsl-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1rem}.itsl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(20rem,1fr));gap:1rem}.itsl-connect__intro{margin:0 0 .75rem;line-height:1.5}.itsl-connect__form{display:flex;flex-direction:column;gap:.85rem}.itsl-connect__manual{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-default)}.itsl-connect__intro code{background:var(--surface-sunken);padding:.1em .35em;border-radius:.25rem;font-size:.9em;word-break:break-all}.itsl-account__meta{display:grid;grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:1rem 0 0}.itsl-account__meta dt{font-weight:600;color:var(--text-secondary)}.itsl-account__meta dd{margin:0;word-break:break-word}.itsl-widget__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.itsl-widget__item{display:flex;flex-direction:column;gap:.15rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-default)}.itsl-widget__item:last-child{border-bottom:none;padding-bottom:0}.itsl-widget__meta{font-size:.8rem;color:var(--text-secondary)}.itsl-widget__empty,.itsl-widget__error,.itsl-widget__reauth{padding:.5rem 0;color:var(--text-secondary);font-size:.9rem}.itsl-widget__error{color:var(--danger)}.itsl-courses{display:flex;flex-direction:column;gap:.5rem}.itsl-courses__toolbar{display:flex;justify-content:flex-end}.itsl-course-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9.375rem,1fr));gap:.5rem;padding:.5rem}.itsl-course-card{display:flex;align-items:center;gap:.5rem;padding:.5rem .6rem;border:1px solid var(--border-default);border-left-width:4px;border-left-color:var(--itsl-course-accent, var(--accent));border-radius:.5rem;background:var(--itsl-course-fill, color-mix(in srgb, var(--itsl-course-accent, var(--accent)) 10%, var(--surface-card)));text-decoration:none;color:var(--text-primary);min-width:0}:root[data-theme=dark] .itsl-course-card{background:color-mix(in srgb,var(--itsl-course-accent, var(--accent)) 22%,var(--surface-card));border-left-color:color-mix(in srgb,var(--itsl-course-accent, var(--accent)) 65%,var(--ink-light))}a.itsl-course-card,.itsl-course-card--btn{cursor:pointer}a.itsl-course-card:hover,.itsl-course-card--btn:hover{filter:brightness(.97)}:root[data-theme=dark] a.itsl-course-card:hover,:root[data-theme=dark] .itsl-course-card--btn:hover{filter:brightness(1.15)}.itsl-course-card--btn:focus-visible{outline:2px solid var(--itsl-course-accent, var(--accent));outline-offset:1px}.itsl-course-card--now{outline:2px solid var(--itsl-course-accent, var(--accent));outline-offset:0}.itsl-course-card__img{width:2.25rem;height:2.25rem;border-radius:.375rem;object-fit:cover;flex:0 0 auto}.itsl-course-card__badge{width:2.25rem;height:2.25rem;border-radius:.375rem;flex:0 0 auto;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;text-transform:uppercase;color:var(--ink-light);background:var(--itsl-course-accent, var(--accent))}.itsl-course-card__text{display:flex;flex-direction:column;min-width:0;flex:1 1 auto}.itsl-course-card__title{font-size:.85rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itsl-course-card__code{font-size:.72rem;color:var(--text-secondary)}.itsl-course-card__unread{flex:0 0 auto;min-width:1.125rem;height:1.125rem;padding:0 .3125rem;display:inline-flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;color:var(--ink-light);background:var(--danger);border-radius:999px}.itsl-course-card__now{flex:0 0 auto;font-size:.66rem;font-weight:700;text-transform:uppercase;color:var(--ink-light);background:var(--itsl-course-accent, var(--accent));padding:.1rem .4rem;border-radius:999px}.itsl-link-list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}.itsl-link-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .7rem;border:1px solid var(--border-default);border-left-width:4px;border-left-color:var(--itsl-course-accent, var(--border-default));border-radius:.5rem;background:var(--itsl-course-fill, color-mix(in srgb, var(--itsl-course-accent, var(--surface-card)) 10%, var(--surface-card)));color:var(--text-primary)}:root[data-theme=dark] .itsl-link-row{background:color-mix(in srgb,var(--itsl-course-accent, var(--surface-card)) 22%,var(--surface-card));border-left-color:color-mix(in srgb,var(--itsl-course-accent, var(--border-default)) 65%,var(--ink-light))}.itsl-link-row__subject{display:flex;flex-direction:column;min-width:0;flex:0 1 17rem}.itsl-link-row__title{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itsl-link-row__code{font-size:.75rem;color:var(--text-secondary);display:flex;flex-wrap:wrap;align-items:baseline;gap:0 .4rem}.itsl-link-row__classes{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itsl-link-row__classes:before{content:"· "}.itsl-link-row__course{flex:1 1 12rem;min-width:0;display:flex;align-items:baseline;flex-wrap:wrap;gap:.25rem .5rem}.itsl-link-row__course-name{font-weight:600;overflow-wrap:anywhere}.itsl-link-row__course-code{font-size:.75rem;color:var(--text-secondary)}.itsl-link-row__course-none{color:var(--text-secondary);font-style:italic}.itsl-link-row__suggestion{font-size:.7rem;font-weight:700;text-transform:uppercase;color:var(--text-secondary);border:1px solid var(--border-default);border-radius:999px;padding:.05rem .4rem}.itsl-link-row__state{flex:0 0 auto;font-size:.8rem}.itsl-link-row__state--ok{color:var(--success);font-weight:600}.itsl-link-row__actions{flex:0 0 auto;display:flex;align-items:center;justify-content:flex-end;gap:.5rem}@media(max-width:900px){.itsl-link-row{flex-wrap:wrap}.itsl-link-row__subject,.itsl-link-row__course{flex:1 1 100%}.itsl-link-row__subject{flex-basis:100%}.itsl-link-row__classes{max-width:100%}}.itsl-picker__lesson{margin:0 0 .6rem;color:var(--text-secondary)}.itsl-picker__list{list-style:none;margin:.75rem 0 0;padding:0;display:flex;flex-direction:column;gap:.35rem}.itsl-picker__item{width:100%;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:.15rem;padding:.5rem .7rem;border:1px solid var(--border-default);border-left-width:4px;border-left-color:var(--itsl-course-accent, var(--border-default));border-radius:.5rem;background:var(--itsl-course-fill, color-mix(in srgb, var(--itsl-course-accent, var(--surface-card)) 10%, var(--surface-card)));color:var(--text-primary);font:inherit}:root[data-theme=dark] .itsl-picker__item{background:color-mix(in srgb,var(--itsl-course-accent, var(--surface-card)) 22%,var(--surface-card));border-left-color:color-mix(in srgb,var(--itsl-course-accent, var(--border-default)) 65%,var(--ink-light))}.itsl-picker__item:hover{border-color:var(--accent)}.itsl-picker__item.is-selected{outline:2px solid var(--accent);outline-offset:1px}.itsl-picker__item--none{border-left-color:var(--border-default);background:var(--surface-card)}.itsl-picker__title{font-weight:600;overflow-wrap:anywhere}.itsl-picker__meta{display:flex;align-items:center;gap:.5rem;font-size:.75rem;color:var(--text-secondary)}.itsl-picker__badge{font-weight:700;text-transform:uppercase;font-size:.65rem;border:1px solid currentColor;border-radius:999px;padding:.05rem .4rem}.itsl-picker__empty{color:var(--text-secondary);padding:.5rem .2rem}.itsl-cm__plans{display:flex;flex-direction:column;gap:.85rem}.itsl-cm__subtabs{align-self:flex-start}.itsl-todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.1rem}.itsl-todo{display:flex;align-items:baseline;gap:.55rem;padding:.45rem .25rem;border-radius:.375rem}.itsl-todo:hover{background:var(--surface-card)}.itsl-todo--done{opacity:.6}.itsl-todo--done .itsl-todo__title{text-decoration:line-through}.itsl-todo__dot{flex:0 0 auto;width:.5rem;height:.5rem;border-radius:50%;background:var(--info);transform:translateY(-.1rem)}.itsl-todo__dot--overdue{background:var(--danger)}.itsl-todo__dot--done{background:var(--text-secondary)}.itsl-todo__body{display:flex;align-items:baseline;justify-content:space-between;gap:.6rem;flex-wrap:wrap;flex:1;min-width:0}.itsl-todo__title{overflow-wrap:anywhere}.itsl-todo__meta{display:flex;align-items:center;gap:.4rem;flex:0 0 auto}.itsl-todo__due{font-size:.78rem;color:var(--text-secondary);white-space:nowrap}.itsl-todo__due--overdue{color:var(--danger);font-weight:600}.itsl-plan-list{display:flex;flex-direction:column;gap:.75rem}.itsl-plan{border:1px solid var(--border-default);border-radius:.625rem;padding:.75rem .85rem;background:var(--surface-card)}.itsl-plan__head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.itsl-plan__title{font-weight:600}.itsl-plan__head-right{flex:0 0 auto;display:flex;align-items:center;gap:.35rem}.itsl-plan__dates{flex:0 0 auto;font-size:.78rem;color:var(--text-secondary)}.itsl-plan__desc{margin-top:.4rem;font-size:.85rem;line-height:1.45;color:var(--text-secondary)}.itsl-plan__desc :where(p,ul,ol){margin:.35rem 0}.itsl-plan__desc :where(ul,ol){padding-left:1.25rem}.itsl-el-list{list-style:none;margin:.55rem 0 0;padding:0;display:flex;flex-direction:column;gap:.1rem}.itsl-el-list--flat{margin-top:0}.itsl-el{display:flex;align-items:center;gap:.55rem;padding:.35rem .25rem;border-radius:.375rem}.itsl-el:hover{background:var(--surface-card)}.itsl-el__icon{width:1.25rem;height:1.25rem;flex:0 0 auto;object-fit:contain}.itsl-el__icon--ph{border-radius:.25rem;background:var(--border-default)}.itsl-el__link{flex:1 1 auto;min-width:0;font-size:.87rem;color:var(--text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.itsl-el__link:hover{color:var(--accent);text-decoration:underline}.itsl-el__type{flex:0 0 auto;font-size:.72rem;color:var(--text-secondary)}.itsl-el__tag{flex:0 0 auto;font-size:.68rem;font-weight:700;color:var(--ink-light);background:var(--warning);padding:.1rem .4rem;border-radius:999px}.itsl-el__link--btn{border:none;background:none;margin:0;padding:0;font:inherit;text-align:left;cursor:pointer;display:flex;align-items:center;gap:.4rem}.itsl-el__link--btn:disabled{cursor:progress;opacity:.75}.itsl-el__title-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.itsl-el__spin{flex:0 0 auto;width:.75rem;height:.75rem;border-radius:50%;border:2px solid var(--border-default);border-top-color:var(--accent);animation:itsl-spin .6s linear infinite}@keyframes itsl-spin{to{transform:rotate(360deg)}}.itsl-res{display:flex;flex-direction:column;gap:.6rem}.itsl-res__crumbs{display:flex;flex-wrap:wrap;align-items:center;font-size:.8rem;gap:.15rem}.itsl-res__crumb-wrap{display:inline-flex;align-items:center;gap:.15rem}.itsl-res__crumb{padding:.1rem .2rem}.itsl-res__crumb--current{color:var(--text-secondary);cursor:default;font-weight:600}.itsl-res__crumb--current:hover{background:none}.itsl-res__sep,.itsl-el--hidden .itsl-el__title-text,.itsl-el--hidden .itsl-el__type{color:var(--text-secondary)}.itsl-el--hidden .itsl-el__icon{opacity:.45}.itsl-el__tag--hidden{background:var(--text-secondary)}.itsl-el__vis{flex:0 0 auto;color:var(--text-secondary)}.itsl-el__vis:hover:not(:disabled){color:var(--text-primary)}.itsl-el--hidden .itsl-el__vis{color:var(--accent)}.itsl-page{display:grid;gap:1rem;align-items:start}.itsl-page--onecolumn{grid-template-columns:1fr}.itsl-page--twocolumns{grid-template-columns:1fr 1fr}.itsl-page--twocolumnswideleft{grid-template-columns:2fr 1fr}.itsl-page--twocolumnswideright{grid-template-columns:1fr 2fr}.itsl-page--threecolumns{grid-template-columns:1fr 1fr 1fr}@media(max-width:640px){.itsl-page{grid-template-columns:1fr!important}}.itsl-page__col{display:flex;flex-direction:column;gap:1rem;min-width:0}.itsl-page-block{border:1px solid var(--border-default);border-left:3px solid var(--border-default);border-radius:.5rem;padding:.7rem .85rem;background:var(--surface-card)}.itsl-page-block__title{margin:0 0 .45rem;font-size:.95rem;font-weight:700;color:var(--text-primary)}.itsl-page-block__body{font-size:.87rem;line-height:1.5;color:var(--text-primary);overflow-wrap:anywhere}.itsl-page-block__body :where(img){max-width:100%;height:auto}.itsl-page-block__body :where(table){max-width:100%}.itsl-page-block--default{border-left-color:var(--border-default)}.itsl-page-block--green{border-left-color:var(--success)}.itsl-page-block--red{border-left-color:var(--danger)}.itsl-page-block--blue{border-left-color:var(--accent-hover)}.itsl-page-block--yellow{border-left-color:#f1c40f}.itsl-page-block--orange{border-left-color:#e67e22}.itsl-page-block--purple{border-left-color:#8e44ad}.itsl-page-block--gray,.itsl-page-block--grey{border-left-color:#95a5a6}.itsl-link-row__shared{font-weight:600;color:var(--success);white-space:nowrap}.itsl-link-row__private{font-weight:600;color:var(--warning);white-space:nowrap}.shared-rail{display:flex;align-items:stretch;gap:.5rem;overflow-x:auto;padding:3px;margin:-3px;scrollbar-width:thin}.shared-rail__card{flex:1 1 12rem;min-width:10.5rem;max-width:20rem;display:flex;flex-direction:column;gap:.15rem;padding:.6rem .7rem;border:1px solid var(--border-default);border-radius:.5rem;background:var(--surface-card);color:inherit;font:inherit;text-align:left;cursor:pointer;scroll-margin:.5rem}.shared-rail__card:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--border-default))}.shared-rail__card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.shared-rail__card--active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-card));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 22%,transparent)}.shared-rail__card:disabled{opacity:.55;cursor:default}.shared-rail__trailing{flex:1 1 11rem;min-width:9rem;max-width:17rem}@media(pointer:coarse){.shared-rail__card{padding:.7rem .75rem}}.shared-form-actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.wv-hwform{display:flex;flex-direction:column;gap:.375rem}.wv-hwform__hint{margin:0;font-size:.76rem;color:var(--color-text-secondary);font-style:italic}.shared-text-edit__subtitle{margin:0 0 .5rem;font-size:.82rem;color:var(--color-text-secondary)}.shared-text-edit__actions{display:flex;gap:.5rem;justify-content:flex-end;flex-wrap:wrap}.shared-text-edit__form{display:flex;flex-direction:column;gap:.625rem}.cal-list{display:flex;flex-direction:column;gap:var(--space-md)}.cal-list__group{display:flex;flex-direction:column;gap:2px}.cal-list__group-title{margin:0 0 var(--space-xs);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.cal-list__row{display:flex}.cal-list__label{display:flex;align-items:center;gap:var(--space-xs);width:100%;padding:4px var(--space-xs);border-radius:var(--radius-sm, 6px);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary)}.cal-list__label:hover{background:var(--color-bg-hover)}.cal-list__check{accent-color:var(--color-primary);flex:none}.cal-list__swatch{position:relative;flex:none;width:12px;height:12px;border-radius:3px;background:var(--cal-swatch)}.cal-list__swatch input{position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;width:calc(100% + 8px);height:calc(100% + 8px);opacity:0;cursor:pointer;border:none;padding:0}.cal-list__name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-list__name--off{color:var(--color-text-secondary)}.cal-list__via{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.cal-list__badge{flex:none;padding:0 4px;border-radius:var(--radius-sm, 4px);background:var(--color-bg-subtle);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.cal-list__empty{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-sm)}.cal-toolbar__nav,.cal-toolbar__actions{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.cal-toolbar__range{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary)}.cal-chip{display:flex;align-items:baseline;gap:4px;width:100%;padding:1px 4px;border:none;border-left:3px solid var(--cal-hue);border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--cal-hue) 12%,var(--color-bg-card));color:var(--color-text-primary);font-size:var(--font-size-xs);text-align:left;cursor:pointer;overflow:hidden}.cal-chip:hover{background:color-mix(in srgb,var(--cal-hue) 24%,var(--color-bg-card))}.cal-chip--allday{background:color-mix(in srgb,var(--cal-hue) 22%,var(--color-bg-card));border-left-width:0}.cal-chip__time{flex:none;font-variant-numeric:tabular-nums;opacity:.75}.cal-chip__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-marker{display:flex;align-items:center;gap:4px;width:100%;padding:1px 4px;border:none;background:transparent;color:var(--color-text-primary);font-size:var(--font-size-xs);text-align:left;cursor:pointer;overflow:hidden}.cal-marker:hover{background:var(--color-bg-hover)}.cal-marker__dot{flex:none;width:7px;height:7px;border-radius:999px;background:var(--cal-hue)}.cal-marker__time{flex:none;font-variant-numeric:tabular-nums;opacity:.75}.cal-marker__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cal-row{list-style:none}.cal-row__btn{display:flex;align-items:baseline;gap:var(--space-sm);width:100%;padding:var(--space-xs) var(--space-sm);border:none;border-left:3px solid var(--cal-hue);border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-primary);text-align:left;cursor:pointer}.cal-row__btn:hover{background:var(--color-bg-hover)}.cal-row__time{flex:none;min-width:9ch;font-variant-numeric:tabular-nums;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-row__body{display:flex;flex-direction:column;min-width:0}.cal-row__title{font-weight:var(--font-weight-medium, 500);overflow:hidden;text-overflow:ellipsis}.cal-row__meta{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.cal-month{display:flex;flex-direction:column;gap:2px}.cal-month__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-secondary);text-align:center}.cal-month__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-auto-rows:minmax(88px,auto);gap:2px}.cal-cell{display:flex;flex-direction:column;gap:2px;min-width:0;padding:2px;border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle);cursor:pointer}.cal-cell:hover{background:var(--color-bg-hover)}.cal-cell--outside{opacity:.55}.cal-cell--today{box-shadow:inset 0 0 0 2px var(--color-primary)}.cal-cell__head{align-self:flex-end;padding:0 2px;border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer}.cal-cell__num--today{display:inline-block;min-width:1.4em;border-radius:999px;background:var(--color-primary);color:var(--color-text-on-primary, #fff);text-align:center;font-weight:var(--font-weight-semibold, 600)}.cal-cell__events{display:flex;flex-direction:column;gap:1px;min-width:0}.cal-cell__more{border:none;background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);text-align:left;cursor:pointer;padding:0 4px}.cal-cell__more:hover{text-decoration:underline}.cal-weekgrid{--cal-hour-h: 38px;--cal-gutter: 3.4rem}.cal-weekgrid__scroll{overflow-x:auto}.cal-weekgrid__inner{min-width:46rem}.cal-weekgrid__row{display:grid;grid-template-columns:var(--cal-gutter) repeat(7,minmax(0,1fr));gap:2px}.cal-weekgrid__head{padding-bottom:2px;background:var(--color-bg-card)}.cal-weekgrid__gutter,.cal-weekgrid__times{position:sticky;left:0;z-index:3;min-width:0;background:var(--color-bg-card)}.cal-weekgrid__gutter--label{display:flex;align-items:center;justify-content:flex-end;padding-right:var(--space-xs);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.cal-weekgrid__dayhead{display:flex;align-items:baseline;justify-content:center;gap:4px;min-width:0;padding:2px;border:none;border-radius:var(--radius-sm, 6px);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer}.cal-weekgrid__dayhead:hover{background:var(--color-bg-hover)}.cal-weekgrid__date{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary)}.cal-weekgrid__dayhead.is-today .cal-weekgrid__date{min-width:1.6em;border-radius:999px;background:var(--color-primary);color:var(--color-text-on-primary, #fff);text-align:center}.cal-weekgrid__alldaycell{display:flex;flex-direction:column;gap:1px;min-width:0;padding:1px;border-radius:var(--radius-sm, 4px);background:var(--color-bg-subtle)}.cal-weekgrid__alldaycell.is-today{background:var(--color-bg-hover)}.cal-weekgrid__allday{margin-bottom:2px}.cal-weekgrid__times{display:grid;grid-auto-rows:var(--cal-hour-h);padding-right:var(--space-xs)}.cal-weekgrid__time{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-variant-numeric:tabular-nums;line-height:1.2;text-align:right}.cal-weekgrid__col{position:relative;display:grid;grid-auto-rows:var(--cal-hour-h);min-width:0;border-radius:var(--radius-sm, 6px);background:var(--color-bg-subtle);overflow:hidden}.cal-weekgrid__col.is-today{box-shadow:inset 0 0 0 2px var(--color-primary)}.cal-weekgrid__slot{border:none;border-top:1px solid var(--color-border);background:transparent;cursor:pointer}.cal-weekgrid__slot:first-child{border-top-color:transparent}.cal-weekgrid__slot:hover{background:var(--color-bg-hover)}.cal-weekgrid__now{position:absolute;left:0;right:0;z-index:1;height:0;border-top:2px solid var(--color-danger, #ef4444);pointer-events:none}.cal-weekgrid__event{position:absolute;z-index:1;display:flex;flex-direction:column;padding:0 3px;border:none;border-left:3px solid var(--cal-hue);border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--cal-hue) 18%,var(--color-bg-card));color:var(--color-text-primary);font-size:var(--font-size-xs);line-height:1.25;text-align:left;cursor:pointer;overflow:hidden}.cal-weekgrid__event:hover{z-index:2;background:color-mix(in srgb,var(--cal-hue) 30%,var(--color-bg-card))}.cal-weekgrid__event-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--font-weight-medium, 500)}.cal-weekgrid__event-time{font-variant-numeric:tabular-nums;opacity:.75}.cal-weekgrid__marker{position:absolute;left:0;right:0;z-index:3;display:flex;align-items:center;height:0;padding:0;border:none;border-top:2px dotted var(--cal-hue);background:transparent;color:var(--color-text-primary);font-size:var(--font-size-xs);cursor:pointer;pointer-events:none}.cal-weekgrid__marker-title{max-width:100%;padding:0 4px;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--cal-hue) 30%,var(--color-bg-card));line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:auto}@media(max-width:720px){.cal-weekgrid{--cal-hour-h: 34px}.cal-month__grid{grid-auto-rows:minmax(64px,auto)}}.cal-day{display:flex;flex-direction:column;gap:var(--space-sm)}.cal-day__title{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary)}.cal-day__list{display:flex;flex-direction:column;gap:2px;margin:0;padding:0}.cal-listitem{list-style:none}.cal-day__empty{padding:var(--space-lg);border:1px dashed var(--color-border);border-radius:var(--radius-md, 8px);background:transparent;color:var(--color-text-secondary);cursor:pointer}.cal-detail{display:grid;grid-template-columns:max-content 1fr;gap:var(--space-xs) var(--space-md);margin:0}.cal-detail dt{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-detail dd{margin:0;color:var(--color-text-primary)}.cal-detail__text{white-space:pre-wrap}.cal-detail__files{display:flex;flex-direction:column;gap:var(--space-xs);margin:0;padding:0;list-style:none}.cal-detail__files a{overflow-wrap:anywhere}.cal-detail__files a:before{content:"📎";margin-right:var(--space-xs)}.cal-detail__dot{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;background:var(--cal-hue)}.cal-detail__hint{margin:var(--space-md) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-editor__row{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:flex-end}.cal-editor__row>*{flex:1 1 12rem}.cal-editor__switch{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-text-primary)}.cal-conflict{display:grid;grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:var(--space-md);margin-top:var(--space-md)}.cal-conflict h4{margin:0 0 var(--space-xs);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-conflict__title{margin:0;font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary)}.cal-conflict__meta{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cal-empty{margin:0;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-overlay-band{display:flex;flex-direction:column;gap:1px;min-width:0;padding:2px}:root{--wv-event-w: 42%}.wv-grid__cell--shared .wv-grid__cell-inner{width:calc(100% - var(--wv-event-w));min-width:0}.cal-overlay-col{display:flex;flex-direction:column;gap:1px;min-width:0;padding:2px 2px 2px 0;justify-self:end;width:var(--wv-event-w);overflow:hidden}.cal-overlay-col--wide{width:100%;padding-left:2px}.cal-overlay-tile{display:flex;align-items:stretch;overflow:hidden}.cal-overlay-tile>*{min-width:0;height:100%}.cal-overlay-tile .cal-chip{align-items:flex-start}.cal-overlay-tile .cal-chip__title{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;line-clamp:3}.cal-popover-host{position:relative}.cal-popover{position:absolute;z-index:30;top:calc(100% + 4px);right:0;display:flex;flex-direction:column;gap:var(--space-xs);min-width:15rem;max-height:60vh;overflow-y:auto;padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--surface-raised, var(--color-bg-card));box-shadow:var(--shadow-lg, 0 8px 24px rgba(0, 0, 0, .18))}.cal-sub__lead{margin:0 0 var(--space-md);color:var(--color-text-primary)}.cal-sub__hint,.cal-sub__navhint{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-sub__navhint{margin:0 0 var(--space-xs);font-weight:var(--font-weight-semibold, 600);text-transform:uppercase;letter-spacing:.04em;font-size:var(--font-size-xs)}.cal-sub__navhint--field{margin-top:var(--space-lg);color:var(--color-text-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium, 500);text-transform:none;letter-spacing:0}.cal-sub__dialog-lead{margin:0 0 var(--space-lg);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-sub__copy{display:flex;align-items:flex-end;gap:var(--space-sm);margin-bottom:var(--space-md)}.cal-sub__copy>*:first-child{flex:1 1 auto;min-width:0}.cal-sub__copy .shared-form-group{margin-bottom:0}.cal-sub__qr{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xs);margin:var(--space-md) 0}.cal-sub__qr>div{padding:var(--space-xs);border-radius:var(--radius-md, 8px);background:#fff;line-height:0}.cal-guide{display:grid;grid-template-columns:1fr;gap:var(--space-lg);align-items:start}@media(min-width:60rem){.cal-guide{grid-template-columns:repeat(2,minmax(0,1fr))}}.cal-sub__steps{margin:0;padding-left:var(--space-lg);color:var(--color-text-primary)}.cal-sub__steps li{margin-bottom:var(--space-xs)}.cal-sub__fresh{padding:var(--space-md);margin-bottom:var(--space-md);border-radius:var(--radius-md, 8px);background:var(--color-bg-subtle)}.cal-sub__choice{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);margin:var(--space-md) 0;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-subtle)}.cal-sub__name{width:100%;max-width:24rem}.cal-sub__choice .cal-list{display:block;width:100%;columns:2 15rem;column-gap:var(--space-lg)}.cal-sub__choice .cal-list__group{break-inside:avoid;margin-bottom:var(--space-md)}.cal-sub__choice .cal-list__group-title{color:var(--color-text-primary)}.cal-sub__choice--plain{margin:0;padding:0;border:none;background:transparent}.cal-sub__choice--plain .cal-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));align-items:start;gap:var(--space-xs) var(--space-lg);max-height:40vh;overflow-y:auto;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-md, 8px);background:var(--color-bg-subtle)}.cal-sub__choice--plain .cal-list__group{margin-bottom:0}.cal-sub__actions{display:flex;justify-content:flex-start;margin:var(--space-md) 0}.cal-sub__tokens{list-style:none;margin:0;padding:0}.cal-sub__tokens li{display:flex;flex-direction:column;gap:2px;padding:var(--space-sm) 0;border-bottom:1px solid var(--color-border)}.cal-sub__token-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)}.cal-sub__token-keys{color:var(--color-text-secondary);font-size:var(--font-size-xs)}.cal-sub__tokens li.is-revoked{opacity:.55}.cal-sub__token-label{flex:1 1 auto;font-weight:var(--font-weight-medium, 500);color:var(--color-text-primary)}.cal-sub__token-meta{color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-toolbar__target{display:flex;align-items:center;gap:var(--space-xs);flex-wrap:wrap;min-width:0}.cal-toolbar__target .ss{min-width:12rem}@media(max-width:639px){.cal-toolbar__target{width:100%}.cal-toolbar__target .ss{flex:1 1 100%;min-width:0}}.cal-compare-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;height:100%;padding:2px;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--danger) calc(12% + var(--cal-compare-share, 0) * 45%),transparent);color:var(--color-text-primary);font-variant-numeric:tabular-nums;line-height:1.05;overflow:hidden;border:none;cursor:pointer;font-family:inherit;text-align:center}.cal-compare-block:hover,.cal-compare-block:focus-visible{outline:1px solid var(--accent);outline-offset:-1px}.cal-compare-block__count{font-size:.8rem;font-weight:600}.cal-compare-block__of{font-size:.55rem;color:var(--color-text-secondary);white-space:nowrap}.cal-compare-detail__count{margin:0 0 var(--space-sm);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.cal-compare-detail__list{display:flex;flex-direction:column;gap:1px;margin:0;padding:0;list-style:none}.cal-compare-detail__row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-md);padding:.35rem .25rem;border-bottom:1px solid var(--border-subtle)}.cal-compare-detail__row:last-child{border-bottom:none}.cal-compare-detail__name{flex:none;font-size:var(--font-size-sm)}.cal-compare-detail__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-secondary);font-size:var(--font-size-sm);text-align:right}.cal-compare-detail__title--blank{color:var(--color-text-muted, var(--color-text-secondary));font-style:italic}.wv-act__row{display:flex;flex-wrap:wrap;gap:.75rem}.wv-act__field{display:flex;flex-direction:column;gap:.25rem;flex:1 1 11.25rem;min-width:0;margin-bottom:.75rem}.wv-act__field--time{flex:0 0 6.875rem}.wv-act__label{font-size:.8rem;font-weight:600;color:var(--text-secondary)}.wv-act__input{width:100%;box-sizing:border-box;padding:.5rem .625rem;border:1px solid var(--border-default);border-radius:.5rem;background:var(--surface-card);color:var(--text-primary);font-size:.92rem}.wv-act__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.wv-act__chips{display:flex;flex-wrap:wrap;gap:.375rem;max-height:8.25rem;overflow-y:auto;padding:.125rem}.wv-act__picked{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;padding:.125rem}.wv-act__chip--conflict{border-style:dashed!important;opacity:.85}.wv-act__hint{margin:-.25rem 0 .5rem;font-size:.8rem;color:var(--text-secondary);font-style:italic}.wv-act__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}.wv-act__confirm{margin:0 0 .75rem;font-weight:600}.wv-act__summary{margin:0;display:grid;gap:.375rem}.wv-act__summary>div{display:flex;gap:.5rem}.wv-act__summary dt{flex:0 0 5.625rem;color:var(--text-secondary);font-size:.85rem}.wv-act__summary dd{margin:0;font-weight:500}.tt-widget__source{display:flex;justify-content:flex-start}.tt-widget__body--agenda{flex:1 1 auto;min-height:0;overflow-y:auto;padding:.5rem .6rem}.tt-agenda{display:flex;flex-direction:column;gap:.6rem}.tt-agenda__day{display:flex;flex-direction:column;gap:.25rem}.tt-agenda__head{position:sticky;top:0;z-index:1;display:flex;align-items:baseline;gap:.375rem;margin:0;padding:.125rem 0;background:var(--surface-card);font-size:.78rem;font-weight:600}.tt-agenda__date{color:var(--color-text-secondary);font-weight:400;font-variant-numeric:tabular-nums}.tt-agenda__lesson{list-style:none}.tt-agenda__lesson .wv-period{padding:.25rem .4rem;font-size:.78rem;gap:.25rem .5rem}.wv-header-sub{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.wv-overview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(17.5rem,1fr));gap:var(--space-md, 1rem);margin-top:var(--space-md, 1rem)}.wv-nav-tile{display:flex;align-items:center;gap:var(--space-md, 1rem);padding:var(--space-lg, 1.5rem) var(--space-md, 1rem);background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;text-align:left;transition:box-shadow .15s,border-color .15s,transform .1s;width:100%}.wv-nav-tile:hover{border-color:var(--accent);box-shadow:0 4px 16px color-mix(in srgb,var(--shadow-color) 8%,transparent);transform:translateY(-1px)}.wv-nav-tile__icon{flex-shrink:0;width:3rem;height:3rem;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.wv-nav-tile__icon svg{width:1.75rem;height:1.75rem}.wv-nav-tile__icon--timetable{background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success-on-soft)}.wv-nav-tile__icon--exams{background:color-mix(in srgb,var(--color-purpile) 12%,transparent);color:var(--color-purpile-on-soft)}.wv-nav-tile__body{flex:1;display:flex;flex-direction:column;gap:.25rem}.wv-nav-tile__title{font-size:var(--font-size-base, 1rem);font-weight:var(--font-weight-semibold, 600);color:var(--color-text-primary)}.wv-nav-tile__desc{font-size:var(--font-size-sm, .875rem);color:var(--color-text-secondary)}.wv-nav-tile__chevron{flex-shrink:0;width:1.25rem;height:1.25rem;color:var(--color-text-secondary)}.wv-controls-card{margin-top:var(--space-sm, .5rem)}.wv-controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-md, 1rem)}.wv-selector{display:flex;align-items:center;gap:var(--space-sm, .5rem);flex-wrap:wrap}.wv-selector__select{padding:.35rem .7rem;font-size:var(--font-size-sm, .875rem);border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--color-text-primary);min-width:13.75rem;max-width:22.5rem}.wv-selector .ss{min-width:13.75rem;max-width:22.5rem}@media(max-width:639px){.wv-selector{flex-direction:column;align-items:stretch}.wv-selector .shared-seg{align-self:flex-start}.wv-selector__select,.wv-selector .ss{min-width:0;max-width:100%;width:100%}.wv-overview-grid{grid-template-columns:1fr}.wv-week-nav{margin-left:0;width:100%;justify-content:space-between}}.wv-week-nav{display:flex;align-items:center;gap:var(--space-sm, .5rem);margin-left:auto;flex-wrap:wrap}.wv-week-label{font-size:var(--font-size-sm, .875rem);font-weight:500;white-space:nowrap}.wv-message{padding:var(--space-lg, 1.5rem);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm, .875rem)}.wv-message--error{color:var(--danger);background:color-mix(in srgb,var(--danger) 6%,transparent);border-radius:var(--radius-md)}.wv-timetable-area{margin-top:var(--space-sm, .5rem)}.wv-days-row{display:flex;flex-wrap:wrap;gap:var(--space-md, 1rem)}.wv-day{flex:1 1 12.5rem;min-width:11.875rem;background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.wv-day--today{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 20%,transparent)}.wv-day__head{display:flex;align-items:center;gap:.375rem;padding:.5rem .75rem;background:var(--surface-sunken);border-bottom:1px solid var(--border-default)}.wv-day--today .wv-day__head{background:color-mix(in srgb,var(--accent) 10%,transparent)}.wv-day__weekday{font-weight:600;font-size:.85rem}.wv-day__date{font-size:.78rem;color:var(--color-text-secondary);margin-left:auto}.wv-day__badge{font-size:.65rem;font-weight:700;background:var(--accent);color:var(--ink-light);padding:1px .375rem;border-radius:999px}.wv-day__periods{display:flex;flex-direction:column;gap:.25rem;padding:.5rem}.wv-day__empty{font-size:.78rem;color:var(--color-text-secondary);padding:.5rem .25rem;text-align:center}.wv-period,.wv-grid__period,.wv-period-chip{background-color:var(--wv-period-bg, transparent);border-left:3px solid var(--wv-period-hue, transparent);color:var(--wv-period-text, inherit)}:root[data-theme=dark] .wv-period,:root[data-theme=dark] .wv-grid__period,:root[data-theme=dark] .wv-period-chip{background-color:color-mix(in srgb,var(--wv-period-hue, transparent) 28%,var(--surface-card));border-left-color:color-mix(in srgb,var(--wv-period-hue, var(--border-default)) 70%,var(--ink-light));color:color-mix(in srgb,var(--wv-period-hue, var(--text-primary)) 32%,var(--ink-light))}.wv-period{border-radius:.3125rem;padding:.375rem .5rem;display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .5rem;font-size:.8rem}.wv-period__time{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.wv-period__subject{font-weight:600;flex:1;min-width:3.75rem}.wv-period__room,.wv-period__detail{font-size:.75rem;color:inherit;opacity:.8}.wv-period-chip{display:flex;align-items:baseline;gap:.25rem;width:100%;min-width:0;padding:1px 4px;border:none;border-left:3px solid var(--wv-period-hue, transparent);border-radius:var(--radius-sm, 6px);font-family:inherit;font-size:var(--font-size-xs);line-height:1.35;text-align:left;cursor:default}.wv-period-chip--clickable{cursor:pointer}.wv-period-chip--clickable:hover{filter:brightness(.97)}.wv-period-chip__time{flex-shrink:0;font-variant-numeric:tabular-nums;opacity:.75}.wv-period-chip__subject{font-weight:var(--font-weight-medium, 500);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.wv-period__badge{font-size:.68rem;font-weight:700;padding:1px .3125rem;border-radius:999px;background:color-mix(in srgb,var(--shadow-color) 8%,transparent)}.wv-period__info{font-size:.72rem;font-style:italic;width:100%}.wv-exams-area{margin-top:var(--space-sm, .5rem)}.wv-exams-list{display:flex;flex-direction:column;gap:var(--space-md, 1rem)}.wv-exam-month{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:hidden}.wv-exam-month__header{padding:.625rem 1rem;background:var(--surface-sunken);border-bottom:1px solid var(--border-default);font-weight:600;font-size:.9rem}.wv-exam-month__rows{display:flex;flex-direction:column}.wv-exam-row{display:flex;align-items:flex-start;gap:var(--space-md, 1rem);padding:.75rem 1rem;border-bottom:1px solid var(--border-default)}.wv-exam-row:last-child{border-bottom:none}.wv-exam-row__left{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;min-width:5rem}.wv-exam-row__date{font-weight:700;font-size:.9rem}.wv-exam-row__weekday{font-size:.75rem;color:var(--color-text-secondary)}.wv-exam-row__time{font-size:.78rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-exam-row__center{flex:1;display:flex;flex-direction:column;gap:.1875rem}.wv-exam-row__subject{font-weight:600;font-size:.95rem}.wv-exam-row__desc{font-size:.82rem;color:var(--color-text-secondary);font-style:italic}.wv-exam-row__meta{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.125rem}.wv-exam-row__meta-item{font-size:.78rem;color:var(--color-text-secondary)}.wv-exam-row__right{flex-shrink:0;display:flex;align-items:center}.wv-exam-badge{font-size:.72rem;font-weight:700;padding:.1875rem .5rem;border-radius:999px;background:var(--surface-sunken);color:var(--color-text-secondary);white-space:nowrap}.wv-exam-badge--today{background:var(--danger-soft);color:var(--danger-on-soft)}.wv-exam-badge--urgent,.wv-exam-badge--soon{background:var(--warning-soft);color:var(--warning-on-soft)}.wv-grid{display:grid;border:1px solid var(--border-default);border-radius:var(--radius-lg);overflow:auto;background:var(--border-default);gap:1px;margin-top:var(--space-sm, .5rem)}.wv-grid__time-col{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.375rem .25rem;background:var(--surface-sunken);min-width:3.375rem;gap:1px}.wv-grid__time-col--head{min-height:2.75rem}.wv-grid__day-head{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.5rem .375rem;background:var(--surface-sunken);text-align:center;min-width:6.875rem;min-height:2.75rem;gap:.125rem}.wv-grid__day-head--today{background:color-mix(in srgb,var(--accent) 12%,var(--surface-sunken))}.wv-grid__day-weekday{font-weight:600;font-size:.82rem}.wv-grid__day-date{font-size:.73rem;color:var(--color-text-secondary)}.wv-grid__day-head--weekend{min-width:0;padding-inline:.25rem}.wv-grid__day-head--weekend .wv-grid__day-date{font-size:.66rem}.wv-grid__day-tag{display:inline-block;margin-right:.25rem;padding:0 .25rem;border-radius:999px;background:color-mix(in srgb,var(--shadow-color) 12%,transparent);color:var(--color-text-secondary);font-size:.6rem;font-weight:700;line-height:1.5;vertical-align:middle}.wv-grid__event-tagged{display:flex;align-items:center;gap:.125rem;min-width:0}.wv-grid__event-tagged>.wv-grid__day-tag{margin-right:0;flex:none}.wv-grid__event-tagged>:not(.wv-grid__day-tag){flex:1 1 auto;min-width:0}.wv-grid__slot-num{font-size:.82rem;font-weight:700;color:var(--color-text-primary);line-height:1}.wv-grid__slot-time{font-size:.62rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;line-height:1}.wv-grid__slot-sep{font-size:.58rem;color:var(--color-text-secondary);line-height:1}.wv-grid__cell{padding:.1875rem;min-height:3.625rem;background:var(--surface-card)}.wv-grid__cell--today{background:color-mix(in srgb,var(--accent) 4%,var(--surface-card))}.wv-grid__cell--bookable{cursor:pointer;display:flex;align-items:center;justify-content:center;touch-action:pan-y;-webkit-tap-highlight-color:transparent}.wv-grid__cell-add{font-size:1.1rem;font-weight:600;line-height:1;color:var(--accent);opacity:0;transition:opacity .12s ease;pointer-events:none}.wv-grid__cell--bookable:hover,.wv-grid__cell--bookable:focus-visible{background:color-mix(in srgb,var(--accent) 8%,var(--surface-card));outline:none}.wv-grid__cell--bookable:hover .wv-grid__cell-add,.wv-grid__cell--bookable:focus-visible .wv-grid__cell-add{opacity:.9}@media(hover:none){.wv-grid__cell-add{opacity:.35}}.wv-grid__cell--span .wv-grid__cell-inner{justify-content:center}.wv-grid__period{height:100%;min-height:3.25rem;padding:.25rem .375rem;border-radius:.25rem;display:flex;flex-direction:column;gap:.125rem;overflow:hidden}.wv-grid__period-subject{font-size:.78rem;font-weight:700;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-grid__period-badge{font-size:.62rem;font-weight:700;padding:1px .25rem;border-radius:999px;background:color-mix(in srgb,var(--shadow-color) 10%,transparent);align-self:flex-start;line-height:1.4;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-grid__period-meta{font-size:.65rem;opacity:.85;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-grid__period-course{display:inline-flex;align-items:center;gap:.2rem;align-self:flex-start;max-width:100%;margin-top:auto;padding:1px .3rem;border-radius:999px;font-size:.62rem;font-weight:600;line-height:1.4;color:var(--itsl-course-accent, var(--text-secondary));background:color-mix(in srgb,var(--itsl-course-accent, currentColor) 14%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:none}:root[data-theme=dark] .wv-grid__period-course{background:color-mix(in srgb,var(--itsl-course-accent, currentColor) 26%,transparent);color:var(--text-primary)}.wv-grid__period-course--link:hover{text-decoration:underline}.wv-grid__period-course-glyph{font-size:.66rem;line-height:1}.wv-grid__period-info{font-size:.62rem;font-style:italic;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-grid__period-exam{display:inline-flex;align-items:center;gap:.2rem;align-self:flex-start;flex:none;max-width:100%;padding:1px .3rem;border:none;border-radius:999px;font:inherit;font-size:.62rem;font-weight:600;line-height:1.4;color:inherit;background:color-mix(in srgb,var(--shadow-color) 10%,transparent);opacity:.55;cursor:pointer;overflow:hidden;transition:opacity .12s ease}.wv-grid__period-exam:hover,.wv-grid__period-exam:focus-visible{opacity:1;outline:none;background:color-mix(in srgb,var(--shadow-color) 18%,transparent)}.wv-grid__period-exam-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(hover:none){.wv-grid__period-exam{opacity:.75}}.wv-exam{display:flex;flex-direction:column;gap:.75rem}.wv-exam__line{margin:0;line-height:1.5}.wv-exam__line--muted{color:var(--text-secondary);font-size:.85rem}.wv-exam__hint{margin:0;color:var(--text-secondary);font-size:.8rem;line-height:1.5}.wv-exam__actions{display:flex;justify-content:flex-end;gap:.5rem}.wv-exam__times{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.75rem}.wv-grid__cell-inner{display:flex;flex-direction:column;gap:.1875rem;height:100%}.wv-grid__nav{display:flex;align-items:center;justify-content:center;gap:.25rem;padding:.125rem 0 1px;margin-top:auto}.wv-grid__nav-btn{display:flex;align-items:center;justify-content:center;width:1.125rem;height:1.125rem;padding:0;font-size:.9rem;line-height:1;border:1px solid var(--border-default);border-radius:.25rem;background:var(--surface-card);color:var(--color-text-secondary);cursor:pointer;transition:background .1s,color .1s,border-color .1s}.wv-grid__nav-btn:hover:not(:disabled){background:var(--accent);color:var(--ink-light);border-color:var(--accent)}.wv-grid__nav-btn:disabled{opacity:.3;cursor:default}.wv-grid__nav-indicator{font-size:.62rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;min-width:1.5rem;text-align:center}.wv-grid__time-col--pause{justify-content:center;min-height:unset;padding-top:1px;padding-bottom:1px;opacity:.6}.wv-grid__pause-time{font-size:.58rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;line-height:1}.wv-grid__cell--pause{min-height:1.125rem;padding:0;background:repeating-linear-gradient(90deg,transparent,transparent 6px,color-mix(in srgb,var(--shadow-color) 4%,transparent) 6px,color-mix(in srgb,var(--shadow-color) 4%,transparent) 7px)}.wv-grid__cell--pause-filled{padding:1px 2px}.wv-grid__cell--pause.wv-grid__cell--bookable{min-height:1.375rem}.wv-grid__cell--pause.wv-grid__cell--bookable .wv-grid__cell-add{font-size:.85rem}.wv-dashboard-header-actions{display:flex;align-items:center;gap:var(--space-sm, .5rem);flex-wrap:wrap}.wv-layout-selector{display:flex;align-items:center;gap:.25rem}.wv-layout-selector__label{font-size:.78rem;color:var(--color-text-secondary);margin-right:.125rem}.wv-rows{display:flex;flex-direction:column;gap:var(--space-md, 1rem);margin-top:var(--space-md, 1rem)}.wv-row{display:flex;flex-direction:column;gap:.5rem}.wv-row--edit{border:1px dashed var(--border-default);border-radius:.625rem;padding:.5rem}.wv-row__controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.125rem 0 .25rem}.wv-row__layout-group{display:flex;align-items:center;gap:.5rem;flex:1}.wv-row__remove-btn{padding:.25rem .625rem;border:1px solid var(--danger-soft);border-radius:.375rem;background:transparent;color:var(--danger);font-size:.78rem;cursor:pointer;white-space:nowrap;transition:background .15s}.wv-row__remove-btn:hover{background:var(--danger-soft)}.wv-dashboard-grid{display:flex;flex-wrap:wrap;align-content:flex-start;gap:var(--space-md, 1rem);align-items:stretch}.wv-column>div:last-of-type{flex:1;display:flex;flex-direction:column}.wv-column>div:last-of-type>.wv-widget{flex:1;height:auto}.wv-column{flex:1;min-width:min(23rem,100%);display:flex;flex-direction:column;gap:var(--space-md, 1rem);min-height:5rem;border-radius:.5rem;transition:background .15s,outline .15s}.wv-column--over{background:color-mix(in srgb,var(--accent) 5%,transparent);outline:2px dashed color-mix(in srgb,var(--accent) 30%,transparent)}.wv-widget{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;min-height:7.5rem}.wv-widget--edit{border:2px dashed var(--accent)}.wv-widget--single{height:17.5rem}.wv-widget--double{height:35rem}.wv-widget--triple{height:52.5rem}.wv-widget--quad{height:70rem}.wv-widget--auto{height:auto}.wv-widget--auto .wv-widget__body{flex:0 0 auto;overflow:visible}.wv-column>div:last-of-type>.wv-widget--auto{flex:0 0 auto}.wv-widget__edit-bar{display:flex;align-items:center;flex-wrap:wrap;padding:.35rem .7rem;background:color-mix(in srgb,var(--accent) 7%,transparent);border-bottom:1px solid color-mix(in srgb,var(--accent) 18%,transparent);gap:.375rem}.wv-widget__edit-label{font-size:.75rem;font-weight:600;color:var(--accent);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-widget__edit-actions{display:flex;gap:.25rem;flex-shrink:0}.wv-widget__edit-actions button{width:2rem;height:2rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;color:var(--color-text-primary)}.wv-widget__edit-actions button:disabled{opacity:.25;cursor:default}.wv-widget__drag-handle{cursor:grab;padding:.1875rem .375rem;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.1rem;border-radius:.25rem;touch-action:none;flex-shrink:0;display:flex;align-items:center;justify-content:center;min-height:2rem;min-width:1.75rem;-webkit-tap-highlight-color:transparent}.wv-widget__drag-handle:hover{background:color-mix(in srgb,var(--shadow-color) 6%,transparent)}.wv-widget__drag-handle:active{cursor:grabbing}.wv-widget--overlay{border:2px dashed var(--accent)!important;box-shadow:0 8px 24px color-mix(in srgb,var(--accent) 25%,transparent);cursor:grabbing;opacity:.92;pointer-events:none}.wv-widget__head{display:flex;flex-direction:column;padding:.55rem .8rem;gap:.25rem}.wv-widget__head-top{display:flex;align-items:center;gap:.5rem}.wv-widget__grid-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.wv-widget__week-nav{display:flex;align-items:center;gap:.25rem;flex:1}.wv-widget__week-btn{padding:.125rem .4375rem;border:1px solid var(--border-default);border-radius:.25rem;background:var(--surface-card);cursor:pointer;font-size:.78rem;color:var(--color-text-secondary);min-height:1.625rem;display:flex;align-items:center}.wv-widget__week-btn--today{font-size:.72rem}.wv-widget__week-label{font-size:.75rem;color:var(--color-text-secondary);flex:1;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wv-widget__body--grid{overflow-x:auto!important;padding:0}.wv-widget__body--grid .wv-grid__time-col{padding:.1875rem .125rem;min-width:2.75rem}.wv-widget__body--grid .wv-grid__time-col--head{min-height:2.25rem}.wv-widget__body--grid .wv-grid__day-head{min-width:0;min-height:2.25rem;padding:.25rem}.wv-widget__body--grid .wv-grid__cell{min-height:3rem}.wv-widget__body--grid .wv-grid__period{min-height:2.625rem;padding:.1875rem .3125rem}.wv-widget__body--grid .wv-grid__period-meta{font-size:.6rem}.wv-widget__body--grid .wv-grid__time-col--pause{min-height:unset;height:.5rem;padding:0}.wv-widget__body--grid .wv-grid__cell--pause{min-height:.5rem}.wv-widget__body--grid .wv-grid__cell--pause.wv-grid__cell--bookable{min-height:.9rem}.wv-widget__body--grid .wv-grid__cell--pause.wv-grid__cell--bookable .wv-grid__cell-add{font-size:.7rem}.wv-widget__title{font-size:.85rem;font-weight:600;color:var(--color-text-primary);flex:1}.wv-widget__date{font-weight:400;color:var(--color-text-secondary)}.wv-widget__class-row{padding:.45rem .8rem;border-bottom:1px solid var(--border-default);background:var(--surface-sunken)}.wv-widget__class-select{width:100%;padding:.4rem .6rem;font-size:.82rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--color-text-primary);min-height:2.375rem}.wv-widget__body{padding:.6rem .8rem;flex:1;overflow-y:auto;overflow-x:hidden}.wv-widget__msg{font-size:.82rem;color:var(--color-text-secondary);padding:.5rem 0}.wv-widget__msg--error{color:var(--danger)}.wv-widget__footer{padding:.4rem .8rem;border-top:1px solid var(--border-default);background:var(--surface-sunken)}.wv-widget__link{font-size:.78rem}.wv-widget-periods{display:flex;flex-direction:column;gap:.25rem}.wv-widget-period{display:flex;align-items:center;gap:.5rem;padding:.3125rem .4375rem;border-radius:.3125rem;font-size:.8rem;border-left:3px solid transparent}.wv-widget-period--cancelled{opacity:.55;text-decoration:line-through}.wv-widget-period__time{white-space:nowrap;color:var(--color-text-secondary);font-variant-numeric:tabular-nums;font-size:.75rem;min-width:5.25rem;flex-shrink:0}.wv-widget-period__subject{flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-widget-period__room{color:var(--color-text-secondary);font-size:.73rem;flex-shrink:0}.wv-widget-exams{display:flex;flex-direction:column}.wv-widget-exam{display:flex;gap:.625rem;align-items:flex-start;padding:.375rem 0;border-bottom:1px solid var(--border-default)}.wv-widget-exam:last-child{border-bottom:none}.wv-widget-exam__date{flex-shrink:0;min-width:3.875rem;font-size:.75rem;color:var(--color-text-secondary);line-height:1.3}.wv-widget-exam__right{flex:1;display:flex;flex-direction:column;gap:.1875rem}.wv-widget-exam__subject{font-size:.82rem;font-weight:500;color:var(--color-text-primary)}.wv-add-widget-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.375rem;padding:1.5rem 1rem;background:transparent;border:2px dashed var(--border-default);border-radius:var(--radius-md);cursor:pointer;color:var(--color-text-secondary);font-size:.85rem;min-height:7.5rem;transition:border-color .15s,color .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;width:100%}.wv-add-widget-btn:hover,.wv-add-widget-btn:focus,.wv-add-widget-btn--active{border-color:var(--accent);color:var(--accent)}.wv-add-widget-btn__plus{font-size:1.8rem;line-height:1}.wv-add-panel{background:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);padding:1rem;margin-top:var(--space-md, 1rem)}.wv-add-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.wv-add-panel__title{font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.wv-add-panel__close{width:1.75rem;height:1.75rem;border:none;background:transparent;color:var(--color-text-secondary);cursor:pointer;font-size:1.15rem;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;touch-action:manipulation}.wv-add-panel__close:hover{background:var(--surface-hover)}.wv-dashboard-nav-section{margin-top:1.5rem}.wv-dashboard-nav-label{font-size:.78rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.6rem}.wv-homework-list{display:flex;flex-direction:column}.wv-homework-item{display:flex;gap:.625rem;align-items:flex-start;padding:.4375rem 0;border-bottom:1px solid var(--border-default)}.wv-homework-item:last-child{border-bottom:none}.wv-homework-item--done{opacity:.45}.wv-homework-item__left{flex-shrink:0;min-width:4.25rem;display:flex;flex-direction:column;gap:.125rem}.wv-homework-item__due-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary)}.wv-homework-item__date-day{font-size:.72rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-homework-item__subject{font-size:.78rem;font-weight:700;color:var(--accent);word-break:break-word;line-height:1.2}.wv-homework-item__classes{font-size:.7rem;color:var(--color-text-secondary)}.wv-homework-item__right{flex:1;display:flex;flex-direction:column;gap:.1875rem;min-width:0}.wv-homework-item__text{font-size:.82rem;color:var(--color-text-primary);line-height:1.4;word-break:break-word}.wv-homework-item__remark{font-size:.75rem;color:var(--color-text-secondary);font-style:italic}.wv-homework-item__teacher{font-size:.72rem;color:var(--color-text-secondary)}.wv-homework-item__time{font-size:.7rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-homework-item__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;margin-top:1px}.wv-homework-item__due{font-size:.72rem;color:var(--color-text-secondary)}.wv-classbook-list{display:flex;flex-direction:column}.wv-classbook-item{display:flex;gap:.625rem;align-items:flex-start;padding:.4375rem 0;border-bottom:1px solid var(--border-default)}.wv-classbook-item:last-child{border-bottom:none}.wv-classbook-item__date{flex-shrink:0;min-width:3.875rem;display:flex;flex-direction:column;gap:1px}.wv-classbook-item__date-main{font-size:.8rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.wv-classbook-item__weekday{font-size:.7rem;color:var(--color-text-secondary)}.wv-classbook-item__time{font-size:.7rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.wv-classbook-item__teacher{font-size:.75rem;color:var(--color-text-secondary)}.wv-classbook-item__staff{font-size:.76rem;color:var(--color-text-secondary);font-style:italic;white-space:pre-line;word-break:break-word;border-left:2px solid var(--border-default);padding-left:.375rem;margin-top:.125rem}.wv-classbook-item__body{flex:1;display:flex;flex-direction:column;gap:.1875rem;min-width:0}.wv-classbook-item__row{display:flex;flex-wrap:wrap;gap:.3125rem;align-items:center}.wv-classbook-item__student{font-size:.82rem;font-weight:600;color:var(--color-text-primary)}.wv-classbook-item__subject{font-size:.75rem;color:var(--color-text-secondary);background:var(--surface-sunken);border-radius:.25rem;padding:1px .3125rem}.wv-classbook-item__category{font-size:.72rem;font-weight:600;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:.25rem;padding:1px .3125rem}.wv-classbook-item__reason{font-size:.78rem;color:var(--color-text-secondary)}.wv-classbook-item__meta{font-size:.72rem;color:var(--color-text-tertiary, var(--color-text-secondary));word-break:break-word}.wv-classbook-item__text{font-size:.78rem;color:var(--color-text-secondary);font-style:italic;word-break:break-word}.wv-abs-status{font-size:.72rem;font-weight:600;border-radius:.25rem;padding:1px .3125rem;color:var(--color-text-secondary);background:var(--surface-sunken)}.wv-abs-status--ok{color:var(--success-on-soft);background:var(--success-soft)}.wv-abs-status--warn{color:var(--danger-on-soft);background:var(--danger-soft)}.wv-abs-status--open{color:var(--warning-on-soft);background:var(--warning-soft)}.wv-abs-actions{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}.wv-abs-edit{display:flex;flex-wrap:wrap;gap:.5rem;align-items:flex-end;margin-top:.375rem;padding:.5rem;border:1px solid var(--border-default);border-radius:.375rem;background:var(--surface-sunken)}.wv-abs-edit__field{display:flex;flex-direction:column;gap:.1875rem;font-size:.72rem;color:var(--color-text-secondary)}.wv-abs-edit__field--wide{flex:1 1 12rem}.wv-abs-edit__field select,.wv-abs-edit__field input{font-size:.8rem;padding:.25rem .375rem;border:1px solid var(--border-default);border-radius:.25rem;background:var(--surface-raised);color:var(--color-text-primary)}.wv-abs-edit__actions{display:flex;gap:.375rem}@media(max-width:1023px){.wv-dashboard-grid{flex-direction:column}.wv-column{flex:none!important;width:100%}.wv-widget,.wv-widget--single,.wv-widget--double,.wv-widget--triple,.wv-widget--quad{height:auto;overflow:visible}.wv-widget--single{min-height:17.5rem}.wv-widget--double{min-height:35rem}.wv-widget--triple{min-height:52.5rem}.wv-widget--quad{min-height:70rem}.wv-widget__body{flex:0 0 auto;overflow:visible}.wv-column>div:last-of-type>.wv-widget{flex:0 0 auto;height:auto}.wv-widget__drag-handle{min-height:2.75rem;min-width:2.75rem;font-size:1.3rem}}.wv-grid__period--clickable,.wv-period--clickable{cursor:pointer}.wv-grid__period--clickable:hover,.wv-period--clickable:hover{filter:brightness(.97);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--shadow-color) 12%,transparent)}:root[data-theme=dark] .wv-grid__period--clickable:hover,:root[data-theme=dark] .wv-period--clickable:hover{filter:brightness(1.18);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ink-light) 18%,transparent)}.wv-grid__period--clickable:focus-visible,.wv-period--clickable:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.wv-grid__period-badge--room,.wv-period__badge--room{background:var(--info-soft);color:var(--info-on-soft)}.wv-grid__period-badge--exam,.wv-period__badge--exam{background:var(--color-purpile-soft);color:var(--color-purpile-on-soft);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wv-grid__period-meta--org{font-style:italic;opacity:.7}.wv-account__intro{margin:0 0 1rem;line-height:1.5;color:var(--text-secondary)}.wv-account__form{display:flex;flex-direction:column;gap:.75rem;max-width:26.25rem;margin-top:.75rem}.wv-account__actions{display:flex;gap:.5rem;margin-top:.25rem}.wv-modal-view{display:flex;flex-direction:column;gap:var(--space-md, .75rem);height:100%;min-height:0;overflow-y:auto}.wv-modal-view .wv-controls-card{flex:0 0 auto;height:auto}.wv-modal-view .wv-timetable-area,.wv-modal-view .wv-exams-area{flex:1 1 auto;min-height:10rem;overflow-y:auto}.wv-modal-toolbar{display:flex;justify-content:flex-end;flex:0 0 auto}.cal-overlay-col>.shared-menu,.wv-grid__cell-inner>.shared-menu{flex:none;display:flex}.cal-overlay-col>.shared-menu>.wv-grid__more-btn,.wv-grid__cell-inner>.shared-menu>.wv-grid__more-btn{width:100%}.wv-grid__more-btn{align-self:stretch;padding:0 4px;border:none;border-radius:var(--radius-sm, 4px);background:color-mix(in srgb,var(--shadow-color) 8%,transparent);color:var(--color-text-secondary);font-size:.7rem;font-weight:600;line-height:1.4;cursor:pointer}.wv-grid__more-btn:hover,.wv-grid__more-btn--open{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--color-text-primary)}.wv-overflow__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(9.5rem,1fr));grid-auto-rows:minmax(4rem,auto);gap:var(--space-xs);max-width:min(34rem,calc(100vw - 2rem));max-height:min(22rem,60vh);overflow-y:auto;padding:var(--space-xs)}.wv-overflow__grid--compact{grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));grid-auto-rows:minmax(3.25rem,auto);max-width:min(26rem,calc(100vw - 2rem))}.wv-prefs{display:flex;flex-direction:column;gap:2px;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.wv-prefs__row{display:flex;align-items:center;gap:var(--space-xs)}.wv-prefs__label{flex:none;min-width:5rem;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.wv-prefs__btn{padding:1px 6px;border:1px solid transparent;border-radius:var(--radius-sm, 4px);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);cursor:pointer}.wv-prefs__btn:hover{background:var(--color-bg-hover)}.wv-prefs__btn.is-active{border-color:var(--color-primary);color:var(--color-text-primary)}.wg-widget__title-input{flex:1 1 8rem;min-width:0;padding:.2rem .45rem;border:1px solid var(--border-default);border-radius:.375rem;font-size:.8rem;background:var(--surface-card);color:var(--text-primary)}.wg-widget__title-input:focus{outline:none;border-color:var(--accent)}.wg-widget__title-bar{padding:.55rem .85rem;font-weight:600;font-size:.9rem;color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.wv-insert-widget-btn{display:flex;align-items:center;gap:.5rem;width:100%;padding:.125rem 0;border:none;background:transparent;cursor:pointer;color:var(--text-secondary);font-size:.75rem;font-weight:600;opacity:.45;transition:opacity .15s,color .15s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.wv-insert-widget-btn:before,.wv-insert-widget-btn:after{content:"";flex:1 1 auto;height:0;border-top:2px dashed var(--border-default)}.wv-insert-widget-btn:hover,.wv-insert-widget-btn:focus-visible{opacity:1;color:var(--accent);outline:none}.wv-insert-widget-btn:hover:before,.wv-insert-widget-btn:hover:after,.wv-insert-widget-btn:focus-visible:before,.wv-insert-widget-btn:focus-visible:after{border-color:var(--accent)}.wv-insert-widget-btn__label{flex:0 0 auto;white-space:nowrap}.nav-icon-picker{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.nav-icon-picker__label{font-size:.85rem;font-weight:600;color:var(--text-primary)}.nav-icon-picker__group{display:flex;flex-direction:column;gap:.3rem}.nav-icon-picker__group-label{font-size:.7rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted, var(--text-secondary))}.nav-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:.35rem}.nav-icon-picker__item{display:flex;align-items:center;justify-content:center;aspect-ratio:1;min-height:2.5rem;border:1px solid var(--border-subtle);border-radius:.5rem;background:var(--surface-card);color:var(--text-secondary);cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.nav-icon-picker__item:hover{border-color:var(--accent);color:var(--accent)}.nav-icon-picker__item:focus-visible{outline:2px solid var(--border-focus);outline-offset:1px}.nav-icon-picker__item--active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.dash-home{position:relative;min-height:calc(100vh - var(--dtb-height, 3.125rem));background:var(--surface-page)}.dash-home__nav{position:fixed;top:var(--dtb-height, 3.125rem);left:0;bottom:0;z-index:100;width:var(--nav-w);display:flex;flex-direction:column;gap:.25rem;padding:1rem .75rem;overflow-y:auto;background:var(--surface-card);border-right:1px solid var(--border-subtle)}.dash-home__nav-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);padding:.3rem .5rem .6rem}.dash-home__nav-edit-toggle{display:flex;align-items:center;justify-content:center;width:1.875rem;height:1.875rem;flex-shrink:0;border:none;border-radius:.5rem;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.9rem;transition:background .12s ease,color .12s ease}.dash-home__nav-edit-toggle:hover{background:var(--surface-hover);color:var(--accent)}.dash-home__nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.dash-home__nav-item{display:flex;align-items:center;gap:.2rem}.dash-home__nav-link{flex:1 1 auto;min-width:0;min-height:2.75rem;display:flex;align-items:center;gap:.6rem;text-align:left;padding:.6rem .8rem;border:none;border-radius:.625rem;background:transparent;color:var(--text-primary);font-size:.92rem;cursor:pointer;transition:background .12s ease,color .12s ease}.dash-home__nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dash-home__nav-link:hover .nav-icon,.dash-home__nav-item--active .nav-icon{color:inherit}.dash-home__nav-initial{flex-shrink:0;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:700;line-height:1;color:var(--text-secondary)}.dash-home__nav-link:hover .dash-home__nav-initial,.dash-home__nav-item--active .dash-home__nav-initial{color:inherit}.dash-home__nav-link:hover{background:var(--surface-hover)}.dash-home__nav-item--active .dash-home__nav-link{background:var(--accent-soft);color:var(--accent);font-weight:600}.dash-home__nav-item-actions{display:flex;gap:.125rem;flex-shrink:0}.dash-home__nav-item-actions button{width:1.875rem;height:1.875rem;display:flex;align-items:center;justify-content:center;border:none;border-radius:.375rem;background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.85rem;transition:background .12s ease,color .12s ease}.dash-home__nav-item-actions button:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.dash-home__nav-item-actions button:disabled{opacity:.35;cursor:default}.dash-home__nav-edit{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:.4rem}.dash-home__nav .nav-collapse-toggle{margin-top:auto;padding-top:.6rem;border-top:1px solid var(--border-subtle);border-radius:0}@media(min-width:1024px){:root[data-nav-collapsed] .dash-home__nav{padding-left:.375rem;padding-right:.375rem}:root[data-nav-collapsed] .dash-home__nav-label,:root[data-nav-collapsed] .dash-home__nav-header span,:root[data-nav-collapsed] .dash-home__nav-item-actions,:root[data-nav-collapsed] .dash-home__nav-edit{display:none}:root[data-nav-collapsed] .dash-home__nav-link{justify-content:center;padding-left:0;padding-right:0;gap:0}:root[data-nav-collapsed] .dash-home__nav-header{justify-content:center;padding-left:0;padding-right:0}}.dash-home__main{min-height:calc(100vh - var(--dtb-height, 3.125rem));margin-left:var(--nav-w);padding:.75rem 1.5rem 2.5rem}.dash-home__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.dash-home__greeting{font-size:1.35rem;font-weight:700;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-primary)}.dash-home__actions{display:flex;gap:.5rem;flex-wrap:wrap;flex-shrink:0}.dash-home__empty{padding:2.5rem;text-align:center;color:var(--text-secondary)}.dash-home__modal-footer{display:flex;align-items:center;justify-content:space-between;width:100%;gap:.5rem}.dash-home__modal-footer-right{display:flex;gap:.5rem;margin-left:auto}.dash-home__nav-toggle{display:none;align-items:center;gap:.6rem;width:100%;padding:.7rem 1rem;position:sticky;top:var(--dtb-height, 3.125rem);z-index:90;background:var(--surface-card);border:none;border-bottom:1px solid var(--border-subtle);color:var(--text-primary);font-weight:600;font-size:.95rem;cursor:pointer}.dash-home__nav-backdrop{position:fixed;inset:var(--dtb-height, 3.125rem) 0 0 0;background:color-mix(in srgb,var(--shadow-color) 45%,transparent);z-index:99}@media(min-width:1024px){.dash-home__nav-backdrop{display:none}}@media(max-width:1023px){.dash-home__nav-toggle{display:flex}.dash-home__main{margin-left:0}.dash-home__nav{width:min(82vw,20rem);transform:translate(-100%);transition:transform .22s ease;border-right:none;box-shadow:var(--shadow-xl);z-index:110}.dash-home__nav--open{transform:translate(0)}}@media(min-width:640px)and (max-width:1023px){.dash-home__main{padding:.75rem 1.1rem 2.25rem}}@media(max-width:639px){.dash-home__main{padding:.75rem .85rem 2rem}.dash-home__greeting{font-size:1.1rem}.dash-home__toolbar{gap:.6rem;flex-wrap:nowrap}}.lam-modal .shared-modal__body{display:flex;flex-direction:column;min-height:0;overflow:hidden}.lam-panel{flex:1;min-height:0;overflow-y:auto;padding-top:.85rem}.lam-section{display:flex;flex-direction:column;gap:var(--space-md, .85rem)}.lam-intro{margin:0;line-height:1.55;color:var(--text-secondary)}.lam-hint{margin:0;font-size:.85rem;line-height:1.45;color:var(--text-tertiary, var(--text-secondary))}.lam-consent{display:flex;flex-direction:column;gap:.35rem}.lam-consent__note{margin:0 0 .35rem;padding-left:1.75rem;font-size:.85rem;line-height:1.45;color:var(--text-tertiary, var(--text-secondary))}.lam-state{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.lam-state__name{min-width:8rem;font-weight:600;color:var(--text-primary)}.lam-state__note{margin:-.35rem 0 0;padding-left:8.5rem;font-size:.85rem;line-height:1.45;color:var(--text-secondary)}@media(max-width:40rem){.lam-state__note{padding-left:0}}.lam-state__hint{font-size:.82rem;color:var(--text-secondary)}.lam-status{display:inline-flex;align-items:center;gap:.4rem;padding:.25rem .6rem;border-radius:999px;font-size:.85rem;font-weight:600;border:1px solid transparent}.lam-status:before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}.lam-status--ok{color:var(--success);background:var(--success-soft);border-color:var(--success-soft)}.lam-status--warn{color:var(--warning);background:var(--warning-soft);border-color:var(--warning-soft)}.lam-status--err{color:var(--danger);background:var(--danger-soft);border-color:var(--danger-soft)}.lam-status--none{color:var(--text-secondary);background:var(--surface-sunken);border-color:var(--border-default)}.lam-2fa{display:flex;flex-direction:column;gap:.65rem;padding:.85rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken)}.lam-otp-devices{display:flex;flex-direction:column;gap:.4rem;margin-bottom:.85rem}.lam-otp-devices__label{font-size:.85rem;color:var(--text-secondary)}.lam-otp-device{display:flex;align-items:center;gap:.5rem;padding:.5rem .65rem;border:1px solid var(--border-default);border-radius:var(--radius-md);background:var(--surface-sunken);cursor:pointer}.lam-otp-device:has(input:checked){border-color:var(--primary)}.lam-rules{list-style:none;margin:.85rem 0 0;padding:0;display:flex;flex-direction:column;gap:.3rem}.lam-rule{display:flex;align-items:baseline;gap:.5rem;font-size:.85rem;line-height:1.4}.lam-rule--ok{color:var(--success)}.lam-rule--open{color:var(--text-secondary)}.lam-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:.35rem}.dtb{position:sticky;top:0;z-index:200;display:flex;align-items:center;gap:1rem;height:var(--dtb-height);padding:0 calc(1rem + env(safe-area-inset-right)) 0 calc(1rem + env(safe-area-inset-left));background:var(--surface-card);border-bottom:1px solid var(--border-subtle);box-shadow:var(--shadow-sm)}.dtb__left{flex:1 1 0;display:flex;align-items:center;gap:.5rem;min-width:0}.dtb__center{flex:0 1 22.5rem;display:flex;justify-content:center}.dtb__right{flex:1 1 0;display:flex;align-items:center;justify-content:flex-end}.dtb__home{display:flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease}.dtb__home:hover{background:var(--accent-soft);color:var(--accent)}.dtb__brand{display:flex;align-items:center;gap:.6rem;border:none;background:transparent;cursor:pointer;padding:.25rem .4rem;border-radius:.625rem;min-width:0}.dtb__brand:hover{background:var(--surface-hover)}.dtb__logo{height:2.25rem;width:auto;max-width:100%;object-fit:contain;display:block}.dtb__brand-text{font-weight:700;font-size:1.05rem;color:var(--text-primary);white-space:nowrap}@media(max-width:639px){.dtb__brand-text{display:none}.dtb__logo{height:2rem}}.dtb__search-toggle{display:none;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;flex-shrink:0;border:none;border-radius:50%;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .12s ease,color .12s ease}.dtb__search-toggle:hover{background:var(--accent-soft);color:var(--accent)}@media(max-width:1023px){.dtb__center{display:none}.dtb__search-toggle{display:flex}}.dtb-search{position:relative;width:100%}.dtb-search__icon{position:absolute;left:.75rem;top:50%;transform:translateY(-50%);color:var(--text-secondary);pointer-events:none}.dtb-search__input{width:100%;height:2.5rem;padding:0 .9rem 0 2.4rem;border:1px solid var(--border-default);border-radius:1.25rem;background:var(--surface-sunken);font-size:.9rem;color:var(--text-primary)}.dtb-search__input:focus{outline:none;border-color:var(--accent);background:var(--surface-card)}.dtb-search__results{position:absolute;top:calc(100% + .375rem);left:0;right:0;margin:0;padding:.35rem;list-style:none;background:var(--surface-card);border:1px solid var(--border-subtle);border-radius:.75rem;box-shadow:var(--shadow-lg);max-height:22.5rem;overflow-y:auto}.dtb-search__empty{padding:.75rem;text-align:center;color:var(--text-secondary);font-size:.85rem}.dtb-search__result{width:100%;display:flex;align-items:center;gap:.65rem;padding:.5rem .6rem;border:none;border-radius:.5625rem;background:transparent;cursor:pointer;text-align:left}.dtb-search__result:hover{background:var(--surface-hover)}.dtb-search__result-icon{width:2rem;height:2rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:.5rem;background:var(--accent-soft);color:var(--accent)}.dtb-search__result-img{width:1.25rem;height:1.25rem;object-fit:contain}.dtb-search__result-label{flex:1 1 auto;font-size:.88rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtb-search__result-kind{font-size:.72rem;color:var(--text-secondary);flex-shrink:0}.dtb__account{position:relative}.dtb__account-btn{width:2.5rem;height:2.5rem;border-radius:var(--radius-full)}.dtb__account-btn:hover{background:var(--accent-soft);color:var(--accent)}.dtb-menu__user{display:flex;align-items:center;gap:.6rem;padding:.5rem .625rem .6rem;min-width:13.5rem}.dtb-menu__avatar{display:flex;align-items:center;justify-content:center;width:2.125rem;height:2.125rem;flex-shrink:0;border-radius:var(--radius-full);background:var(--accent-soft);color:var(--accent)}.dtb-menu__user-text{display:flex;flex-direction:column;min-width:0}.dtb-menu__user-name{font-size:.9rem;font-weight:var(--font-weight-semibold);color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtb-menu__user-sub{font-size:.75rem;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dtb-menu__action{display:flex;align-items:center;gap:.6rem;width:100%;padding:.55rem .625rem;font:inherit;font-size:.9rem;font-weight:var(--font-weight-semibold);text-align:left;border:1px solid transparent;border-radius:var(--radius-md);background:none;cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease}.dtb-menu__action-icon{display:flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;flex-shrink:0;border-radius:var(--radius-md)}.dtb-menu__action-text{flex:1 1 auto}.dtb-menu__action-chevron{flex-shrink:0;opacity:.6}.dtb-menu__action--accent{color:var(--accent);background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 25%,transparent)}.dtb-menu__action--accent .dtb-menu__action-icon{background:color-mix(in srgb,var(--accent) 18%,transparent)}.dtb-menu__action--accent:hover,.dtb-menu__action--accent:focus-visible{background:color-mix(in srgb,var(--accent) 20%,transparent);border-color:var(--accent);outline:none}.dtb-menu__action--danger{color:var(--danger-on-soft);background:var(--danger-soft);border-color:color-mix(in srgb,var(--danger) 25%,transparent)}.dtb-menu__action--danger .dtb-menu__action-icon{background:color-mix(in srgb,var(--danger) 15%,transparent)}.dtb-menu__action--danger:hover,.dtb-menu__action--danger:focus-visible{background:color-mix(in srgb,var(--danger) 22%,transparent);border-color:var(--danger);outline:none}.dtb-theme,.dtb-scale{padding:.45rem .7rem .55rem;min-width:12rem}.dtb-theme__label,.dtb-scale__label{display:block;margin-bottom:.35rem;font-size:.72rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-muted)}.dtb-logout-footer{display:flex;gap:.5rem;justify-content:flex-end;width:100%}.dtb-search--block{width:100%;margin-bottom:.75rem}.dtb-search__results--static{position:static;margin:0;padding:0;border:none;box-shadow:none;border-radius:0;max-height:60vh}.dtb__date-sim{display:inline-flex;align-items:center;gap:.35rem;margin-left:.6rem;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:700;white-space:nowrap;color:var(--warning-on-soft);background:var(--warning-soft);border:1px solid color-mix(in srgb,var(--warning) 45%,transparent)}.dtb__date-sim:before{content:"";width:.45rem;height:.45rem;border-radius:50%;background:currentColor}@media(max-width:640px){.dtb__date-sim{display:none}}.dgd-intro{color:var(--text-secondary);font-size:.9rem;margin:.5rem 0 1rem;max-width:64ch}.dgd-empty{color:var(--text-secondary);text-align:center;padding:1rem}.dgd-list{display:flex;flex-direction:column;gap:.6rem}.dgd-item{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.dgd-item__name{font-weight:600;color:var(--text-primary)}.dgd-item__meta{font-size:.8rem;color:var(--text-secondary)}.dgd-item__actions{display:flex;gap:.4rem}.dgd-editor-meta{display:flex;flex-direction:column;gap:.85rem}.dgd-meta-row{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}.dgd-meta-label{min-width:5.625rem;font-weight:600;font-size:.85rem;color:var(--text-primary)}.dgd-meta-row--top{align-items:flex-start}.dgd-group-picker{flex:1 1 16.25rem;min-width:16.25rem}.ths-intro__text,.ths-intro__note{margin:0;color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.6}.ths-intro__note{margin-top:var(--space-sm);color:var(--text-muted);font-size:var(--font-size-xs)}.ths-themebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-md);margin-top:var(--space-md)}.ths-themebar__dot{width:.375rem;height:.375rem;border-radius:var(--radius-full);background:var(--accent)}.ths-themebar__meta{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--font-size-sm);color:var(--text-secondary)}.ths-groups,.ths-side{display:flex;flex-direction:column;gap:var(--space-lg)}.ths-group__hint{margin:0 0 var(--space-md);color:var(--text-secondary);font-size:var(--font-size-sm);line-height:1.5}.ths-group__tokens{display:flex;flex-direction:column}.ths-token{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-md);padding:var(--space-sm) 0;border-bottom:1px solid var(--border-subtle)}.ths-token:last-child{border-bottom:none}.ths-token--changed{margin-left:calc(-1 * var(--space-sm));padding-left:calc(var(--space-sm) - .1875rem);border-left:3px solid var(--accent)}.ths-token__swatch{display:block;width:2.625rem;height:2.625rem;flex-shrink:0;border-radius:var(--radius-md);border:1px solid var(--border-default);overflow:hidden;cursor:pointer}.ths-token__swatch input[type=color]{width:200%;height:200%;margin:-25%;padding:0;border:none;background:none;cursor:pointer}.ths-token__body{min-width:0}.ths-token__head{display:flex;align-items:baseline;gap:var(--space-sm)}.ths-token__label{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--text-primary)}.ths-token__reset{font-size:var(--font-size-xs)}.ths-token__name{display:block;font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--text-muted)}.ths-token__hint{margin:.15rem 0 0;font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.4}.ths-token__value{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}.ths-token__hex{width:11ch;padding:.35rem .5rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-primary);font-family:var(--font-family-mono);font-size:var(--font-size-sm);text-align:center}.ths-token__hex:focus{outline:none;border-color:var(--border-focus)}.ths-token__hex--invalid{border-color:var(--danger)}.ths-token__error{font-size:var(--font-size-xs);color:var(--danger);white-space:nowrap}@media(max-width:639px){.ths-token{grid-template-columns:auto 1fr;grid-template-areas:"swatch body" "value value"}.ths-token__swatch{grid-area:swatch}.ths-token__body{grid-area:body}.ths-token__value{grid-area:value;align-items:stretch}.ths-token__hex{width:100%}}.ths-audit{list-style:none;margin:var(--space-md) 0 0;padding:0}.ths-audit__row{display:grid;grid-template-columns:2.125rem 1fr auto auto;align-items:center;gap:var(--space-sm);padding:.4rem 0;border-bottom:1px solid var(--border-subtle)}.ths-audit__row:last-child{border-bottom:none}.ths-audit__row--fail{background:var(--danger-soft)}.ths-audit__sample{display:flex;align-items:center;justify-content:center;width:2.125rem;height:1.625rem;border:1px solid;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold)}.ths-audit__label{font-size:var(--font-size-sm);color:var(--text-primary)}.ths-audit__ratio{font-family:var(--font-family-mono);font-size:var(--font-size-xs);color:var(--text-secondary)}.ths-audit__note{margin:var(--space-md) 0 0;font-size:var(--font-size-xs);color:var(--text-muted);line-height:1.5}.ths-preview__surface{padding:var(--space-md);border-radius:var(--radius-lg);background:var(--surface-page)}.ths-preview__card{padding:var(--space-md);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-sm)}.ths-preview__title{margin:0 0 var(--space-sm);font-size:var(--font-size-base);color:var(--text-primary)}.ths-preview__text{margin:0 0 var(--space-md);font-size:var(--font-size-sm);color:var(--text-primary)}.ths-preview__muted{color:var(--text-muted)}.ths-preview__row{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.ths-preview__input{width:100%;margin-bottom:var(--space-md);padding:.45rem .6rem;border:1px solid var(--border-default);border-radius:var(--radius-sm);background:var(--surface-sunken);color:var(--text-primary);font:inherit;font-size:var(--font-size-sm)}.ths-preview__input:focus{outline:none;border-color:var(--border-focus)}.ths-preview__table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.ths-preview__table th{padding:.4rem .5rem;background:var(--color-table-head-bg);color:var(--color-table-head-text);text-align:left;font-weight:var(--font-weight-semibold)}.ths-preview__table td{padding:.4rem .5rem;border-bottom:1px solid var(--border-subtle);color:var(--text-primary)}.ths-preview__table-alt td{background:var(--surface-sunken)}.appmgmt-intro{color:var(--text-secondary);font-size:.85rem;line-height:1.5;margin:0 0 var(--space-md);max-width:78ch}.appmgmt-intro code{background:var(--surface-sunken);padding:.05rem .3rem;border-radius:var(--radius-sm);font-size:.85em}.appmgmt-section{display:flex;align-items:center;gap:var(--space-sm);margin:var(--space-lg) 0 var(--space-sm)}.appmgmt-section:first-of-type{margin-top:var(--space-sm)}.appmgmt-section__title{margin:0;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-secondary)}.appmgmt-section__count{min-width:1.4rem;padding:.05rem .4rem;border-radius:var(--radius-full);background:var(--surface-sunken);color:var(--text-secondary);font-size:.72rem;font-weight:600;text-align:center}.appmgmt-list{margin-bottom:var(--space-md)}.appmgmt-empty{margin:0;padding:var(--space-lg);text-align:center;font-size:.85rem;color:var(--text-secondary)}.appmgmt-row{display:flex;align-items:center;gap:.7rem;padding:.55rem .75rem;border-top:1px solid var(--border-subtle);transition:background var(--transition-base, .12s ease)}.appmgmt-row:first-child{border-top:none}.appmgmt-row:hover{background:var(--surface-sunken)}.appmgmt-row__icon{width:2.125rem;height:2.125rem;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.appmgmt-row__icon img{width:1.375rem;height:1.375rem;object-fit:contain}.appmgmt-row__text{min-width:0;flex:1 1 auto}.appmgmt-row__name{display:flex;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appmgmt-row__tag{flex-shrink:0;font-size:.65rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--text-secondary);background:var(--surface-sunken);padding:.05rem .4rem;border-radius:var(--radius-full)}.appmgmt-row__meta{display:flex;align-items:center;gap:.4rem;margin-top:.1rem;font-size:.74rem;color:var(--text-secondary);min-width:0}.appmgmt-row__meta>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appmgmt-row__meta a{color:inherit;text-decoration:none}.appmgmt-row__meta a:hover{color:var(--accent);text-decoration:underline}.appmgmt-row__meta code{flex-shrink:0;background:var(--surface-sunken);padding:.05rem .3rem;border-radius:var(--radius-sm)}.appmgmt-row:hover .appmgmt-row__meta code,.appmgmt-row:hover .appmgmt-row__tag{background:var(--surface-card)}.appmgmt-row__actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.appmgmt-color-input{width:2.125rem;height:1.875rem;padding:0;border:1px solid var(--border-default);border-radius:var(--radius-md);background:none;cursor:pointer;flex-shrink:0}.appmgmt-color-preview{width:1.875rem;height:1.875rem;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-lg)}.appmgmt-color-preview img{width:1.125rem;height:1.125rem;object-fit:contain}.appmgmt-row__header-dot{width:.7rem;height:.7rem;flex-shrink:0;border-radius:var(--radius-full);border:1px solid var(--border-default)}.appmgmt-header-preview{display:inline-flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-width:9rem;height:1.875rem;padding:0 .5rem;border-radius:var(--radius-md);font-size:.78rem;font-weight:600}.appmgmt-header-preview__title{max-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appmgmt-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-sm);width:100%}.appmgmt-field{display:flex;align-items:center;gap:var(--space-sm);margin-top:.6rem;flex-wrap:wrap}.appmgmt-field__label{min-width:3.75rem;font-size:.82rem;font-weight:600;color:var(--text-primary)}.appmgmt-field__control{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.appmgmt-color-toggle{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;cursor:pointer;color:var(--text-secondary)}.appmgmt-icon-btn{display:flex;align-items:center;justify-content:center;min-width:4.625rem;height:2.375rem;padding:0 .7rem;border:1px dashed var(--border-default);border-radius:var(--radius-lg);background:var(--surface-sunken);cursor:pointer;font-size:.82rem;color:var(--text-secondary)}.appmgmt-icon-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.appmgmt-icon-btn img{max-width:1.5rem;max-height:1.5rem;object-fit:contain}@media(max-width:640px){.appmgmt-row{flex-wrap:wrap}.appmgmt-row__actions{margin-left:auto}}.assistant-admin__stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:1rem;margin-bottom:1.5rem}.assistant-admin__detail-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(23.75rem,1fr));gap:1rem;margin-bottom:1.5rem}.assistant-admin__section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.assistant-admin__section-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin:0 0 1rem}.assistant-admin__section-header .assistant-admin__section-title{margin-bottom:0}.assistant-admin__form-title{font-size:1rem;font-weight:600;margin:0 0 1rem;color:var(--text-primary)}.assistant-admin__form-actions{display:flex;gap:.5rem;margin-top:1rem}.assistant-admin__inline-row{display:flex;gap:.5rem;align-items:flex-end}.assistant-admin__inline-row>*:first-child{flex:1}.assistant-admin__item-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.assistant-admin__item-name{font-size:1rem;font-weight:600;margin:0 0 .25rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.assistant-admin__item-meta{font-size:.8125rem;color:var(--text-secondary);margin:0}.assistant-admin__item-actions{display:flex;gap:.375rem;flex-shrink:0;flex-wrap:wrap}.assistant-admin__badge{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.assistant-admin__badge--active{background-color:var(--success-soft);color:var(--success)}.assistant-admin__badge--inactive{background-color:var(--color-neutral-100, var(--surface-sunken));color:var(--text-secondary)}.assistant-admin__status-text--success{color:var(--success)}.assistant-admin__status-text--error{color:var(--danger)}.assistant-admin__text-sm{font-size:.875rem;margin:.25rem 0;color:var(--text-primary)}.assistant-admin__text-sm--info{color:var(--accent)}.assistant-admin__empty{text-align:center;color:var(--text-secondary);font-size:.875rem;padding:1.5rem 0;margin:0}.assistant-admin__plain-list{margin:0;padding-left:1.25rem;list-style:disc}.assistant-admin__plain-list li{margin:.15rem 0}.assistant-admin__label-checkbox{display:flex;align-items:center;gap:.5rem;font-size:.875rem;cursor:pointer;margin-bottom:.75rem}.assistant-admin__config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(13.75rem,1fr));gap:.75rem;align-items:end}.assistant-admin__pipeline-actions{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap;align-items:center}.assistant-admin__ws-status{font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:999px;margin-left:auto}.assistant-admin__ws-status--ok{background:var(--success-soft);color:var(--success)}.assistant-admin__ws-status--off{background:var(--danger-soft);color:var(--danger)}.assistant-admin__pipeline-feed{max-height:30rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;line-height:1.5}.assistant-admin__pipeline-event{display:flex;align-items:baseline;gap:.5rem;padding:.2rem .4rem;border-radius:.25rem;border-left:3px solid transparent}.assistant-admin__pipeline-event--info{border-left-color:var(--accent)}.assistant-admin__pipeline-event--success{border-left-color:var(--success);background:var(--success-soft)}.assistant-admin__pipeline-event--warning{border-left-color:var(--warning);background:var(--warning-soft)}.assistant-admin__pipeline-event--error{border-left-color:var(--danger);background:var(--danger-soft)}.assistant-admin__pipeline-event-time{color:var(--text-secondary);flex-shrink:0;min-width:5.5em}.assistant-admin__pipeline-event-badge{display:inline-block;padding:.05rem .4rem;border-radius:.25rem;font-size:.68rem;font-weight:700;text-transform:uppercase;flex-shrink:0;background:var(--surface-sunken);color:var(--text-secondary)}.assistant-admin__pipeline-event-badge--fetch{background:var(--info-soft);color:var(--info-on-soft)}.assistant-admin__pipeline-event-badge--chunk{background:var(--color-purpile-soft);color:var(--color-purpile)}.assistant-admin__pipeline-event-badge--embed{background:var(--color-purpile-soft);color:var(--color-purpile-on-soft)}.assistant-admin__pipeline-event-badge--store{background:var(--success-soft);color:var(--success-on-soft)}.assistant-admin__pipeline-event-badge--worker{background:var(--accent-soft);color:var(--accent-on-soft)}.assistant-admin__pipeline-event-badge--error{background:var(--danger-soft);color:var(--danger)}.assistant-admin__pipeline-event-source{color:var(--text-secondary);font-weight:600;flex-shrink:0}.assistant-admin__pipeline-event-msg{flex:1;word-break:break-word}.assistant-admin__progress-bar-wrap{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.assistant-admin__progress-bar{flex:1;height:.5rem;background:var(--surface-sunken);border-radius:999px;overflow:hidden}.assistant-admin__progress-bar-fill{height:100%;background:var(--accent);border-radius:999px;transition:width .3s ease}.assistant-admin__progress-bar-label{font-size:.75rem;color:var(--text-secondary);flex-shrink:0;min-width:8em}.assistant-admin__logs-container{max-height:30rem;overflow-y:auto;display:flex;flex-direction:column;gap:.375rem}.assistant-admin__log-entry{display:flex;align-items:baseline;gap:.625rem;font-size:.8125rem;line-height:1.5}.assistant-admin__log-badge{display:inline-block;padding:.1rem .45rem;border-radius:.25rem;font-size:.7rem;font-weight:700;text-transform:uppercase;flex-shrink:0}.assistant-admin__log-badge--error{background-color:var(--danger-soft);color:var(--danger)}.assistant-admin__log-badge--success{background-color:var(--success-soft);color:var(--success)}.assistant-admin__log-message{flex:1;color:var(--text-primary);word-break:break-word}.assistant-admin__log-time{color:var(--text-secondary);white-space:nowrap;flex-shrink:0}.assistant-admin__log-filters{display:flex;align-items:flex-end;gap:1rem;margin-bottom:1rem;flex-wrap:wrap}.assistant-admin__log-filter-group{display:flex;flex-direction:column;gap:.25rem}.assistant-admin__log-filter-label{font-size:.75rem;font-weight:600;color:var(--text-secondary)}.assistant-admin__log-filter-select,.assistant-admin__log-filter-input{padding:.375rem .625rem;border:1px solid var(--border-default);border-radius:.375rem;font-size:.8125rem;min-width:9.375rem;background:var(--surface-card);color:var(--text-primary)}.assistant-admin__log-filter-select:focus,.assistant-admin__log-filter-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 15%,transparent)}.assistant-admin__log-pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid var(--border-default)}.assistant-admin__log-pagination-info{font-size:.8125rem;color:var(--text-secondary)}.assistant-admin__source-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.5rem}.assistant-admin__tag-chip{display:inline-flex;align-items:center;padding:.2rem .6rem;font-size:.75rem;border-radius:999px;border:1px solid var(--border-default);background:var(--surface-sunken);color:var(--text-secondary);cursor:pointer;transition:background-color .15s,border-color .15s,color .15s}.assistant-admin__tag-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.assistant-admin__tag-chip--active{background:var(--accent);color:var(--ink-light);border-color:var(--accent)}.assistant-admin__tag-chip--active:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--ink-light)}.assistant-admin__tag-chip--readonly{cursor:default;pointer-events:none}.assistant-admin__tag-chip--readonly:hover{background:var(--accent);border-color:var(--accent);color:var(--ink-light)}.assistant-admin__info-card{border-left:3px solid var(--accent);margin-bottom:1rem}.assistant-admin__debug-issues{background:var(--danger-soft);border:1px solid var(--danger);border-radius:.375rem;padding:.75rem 1rem;margin-bottom:1rem}.assistant-admin__text-sm--warning{color:var(--danger);font-weight:600}.assistant-admin__issue-list{margin:.5rem 0 0 1.25rem;padding:0;font-size:.8125rem}.assistant-admin__issue-list li{margin-bottom:.25rem}.assistant-admin__link{color:var(--accent);text-decoration:none;font-size:.8125rem}.assistant-admin__link:hover{text-decoration:underline}.aa-field-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(12.5rem,1fr));gap:1rem;margin-bottom:1rem}.rd-assign__folder{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.rd-assign__folder-label{color:var(--text-secondary);font-size:.9rem}.rd-assign__folder-value{flex:1;min-width:8rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rd-assign__hint{margin:.35rem 0 0;color:var(--text-secondary);font-size:.85rem}.rd-folder{display:flex;flex-direction:column;gap:.15rem}.rd-folder__none{opacity:.7}.rd-folder__name{overflow-wrap:anywhere}.rd-folder__state{font-size:.85em;color:var(--text-secondary)}.rd-folder__state--ok{color:var(--success, #2e7d32)}.rd-folder__state--running{color:var(--info, #1565c0)}.rd-folder__state--error{color:var(--danger, #c0392b)}.rd-folder__error{font-size:.8em;color:var(--danger, #c0392b);overflow-wrap:anywhere}.rd-detail__grid{display:grid;grid-template-columns:minmax(8rem,max-content) 1fr;gap:.5rem 1rem;align-items:baseline}.rd-detail__term{color:var(--text-secondary)}.rd-detail__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}@media(max-width:600px){.rd-detail__grid{grid-template-columns:1fr;gap:.15rem 0}.rd-detail__term{margin-top:.5rem}}.rd-iconpicker{display:flex;flex-direction:column;gap:.75rem}.rd-iconpicker__current{display:flex;align-items:center;gap:.75rem;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-md, .5rem);background:var(--color-bg-section)}.rd-iconpicker__current-text{display:flex;flex-direction:column;line-height:1.3;margin-right:auto}.rd-iconpicker__current-text span{color:var(--text-secondary);font-size:.85rem}.rd-icon-preview{line-height:1;object-fit:contain}.rd-icon-preview--empty{color:var(--text-muted)}.rd-iconpicker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(2.5rem,1fr));gap:.35rem}.rd-iconpicker__option{aspect-ratio:1;font-size:1.35rem;line-height:1;border:1px solid var(--color-border);border-radius:var(--radius-sm, .35rem);background:var(--color-bg-card);cursor:pointer}.rd-iconpicker__option:hover{border-color:var(--accent)}.rd-iconpicker__option.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 35%,transparent)}.rd-iconpicker__row{display:flex;align-items:flex-end;gap:.5rem;flex-wrap:wrap}.rd-iconpicker__row--ai>*:first-child{flex:1 1 16rem}.rd-iconpicker__upload{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.rd-iconpicker__hint{margin:0;color:var(--text-secondary);font-size:.85rem}.alp-modal .shared-modal__body{display:flex;flex-direction:column;gap:var(--space-md, .85rem)}.alp-text{margin:0;line-height:1.55;color:var(--text-secondary)}.alp-text strong{color:var(--text-primary)}.alp-text--quiet{font-size:.9em}.alp-text--ok{color:var(--success, #16a34a)}.alp-text--err{color:var(--danger, #dc2626)}.app{min-height:100vh}.container{display:flex;height:100vh;overflow:hidden}.sidebar{width:15.625rem;background-color:var(--color-sidebar-bg);color:var(--color-sidebar-text);display:flex;flex-direction:column;transition:width var(--transition-slow);position:relative}.sidebar.collapsed{width:3.75rem}.sidebar.locked{pointer-events:none;opacity:.7}.toggle-btn{background:none;border:none;color:var(--color-sidebar-text);cursor:pointer;padding:var(--space-md);display:flex;align-items:left;justify-content:left}.toggle-btn:hover{background-color:var(--color-sidebar-hover)}.sidebar-paragraph{padding:var(--space-md);font-size:var(--font-size-sm);color:var(--color-sidebar-muted);text-transform:uppercase;letter-spacing:1px;border-bottom:1px solid var(--color-sidebar-divider)}.sidebar.collapsed .sidebar-paragraph{display:none}.sidebar-menu{flex:1;overflow-y:auto}.sidebar-menu ul{list-style:none;padding:0;margin:0}.sidebar-menu li{border-bottom:1px solid var(--border-subtle)}.menu-item{padding:var(--space-md);cursor:pointer;display:flex;align-items:center;gap:.75rem;transition:background-color var(--transition-base)}.menu-item:hover{background-color:var(--color-sidebar-hover)}.menu-item.active{background-color:var(--color-sidebar-active);border-left:3px solid var(--color-sidebar-active-border)}.submenu-toggle-icon{margin-left:auto;flex-shrink:0}.submenu{list-style:none;padding:0;margin:0;background-color:var(--color-sidebar-sub-menu-bg);animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:31.25rem}}.submenu-item{border-bottom:1px solid var(--border-subtle)}.submenu-link{padding:.75rem 1rem .75rem 3rem;cursor:pointer;display:block;transition:background-color var(--transition-base);color:var(--color-sidebar-sub-menu-text);font-size:var(--font-size-sm)}.submenu-link:hover{background-color:var(--color-sidebar-hover);color:var(--color-sidebar-text)}.submenu-link.active{background-color:var(--color-sidebar-active);color:var(--color-sidebar-text);font-weight:var(--font-weight-medium);border-left:3px solid var(--color-primary)}.sidebar.collapsed .submenu{display:none}.icon-inline{width:1.5rem;height:1.5rem;flex-shrink:0}.sidebar.collapsed .menu-item{justify-content:center}.sidebar.collapsed .menu-item span{display:none}.timeline{padding:var(--space-md);min-height:6.25rem;border-top:1px solid var(--color-sidebar-divider)}.user-info{padding:var(--space-md);border-top:1px solid var(--color-sidebar-divider);display:flex;align-items:center;gap:.75rem}.logout-btn{margin-left:auto;background:none;border:none;cursor:pointer;padding:.5rem;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all .2s ease;border-radius:.25rem}.logout-btn:hover{background-color:var(--color-sidebar-hover);color:var(--color-text-primary)}.logout-btn:active{transform:scale(.95)}.user-logo{width:2rem;height:2rem;border-radius:50%}.sidebar.collapsed .user-info p{display:none}.sidebar.collapsed .logout-btn{margin-left:0}.content{flex:1;overflow-y:auto;background-color:var(--surface-page)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:color-mix(in srgb,var(--shadow-color) 70%,transparent);display:flex;justify-content:center;align-items:center;z-index:var(--z-modal)}.modal-content{background:var(--color-bg-card);padding:var(--space-xl);border-radius:var(--radius-lg);max-width:31.25rem;text-align:center}.btn-neutral{background-color:var(--color-primary);color:var(--color-text-on-dark);border:none;padding:.75rem 1.5rem;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--font-size-base);margin-top:var(--space-md)}.btn-neutral:hover{background-color:var(--color-primary-hover)}.module-container{padding:var(--space-xl)}.module-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin-bottom:var(--space-xl);color:var(--color-text-primary)}.module-content{background:var(--color-bg-app);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-md)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(12.5rem,1fr));gap:var(--space-lg)}.grid-row{display:grid;grid-template-rows:repeat(auto-fill,minmax(12.5rem,1fr));gap:var(--space-lg)}@media(max-width:500px){.grid{grid-template-columns:1fr}}.grid-lg{display:grid;grid-template-columns:repeat(auto-fit,minmax(25rem,1fr));gap:var(--space-lg)}@media(max-width:800px){.grid-lg{grid-template-columns:1fr}}.grid-lg-2to1{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-lg)}@media(max-width:900px){.grid-lg-2to1{grid-template-columns:1fr}}.app-card{background:var(--color-bg-card);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm);transition:transform var(--transition-base),box-shadow var(--transition-base)}.app-card:hover{transform:translateY(-.25rem);box-shadow:var(--shadow-card-hover)}.app-link{text-decoration:none;color:inherit;display:flex;flex-direction:column;align-items:center;gap:1rem}.app-icon{width:5rem;height:5rem;object-fit:contain}.app-name{font-weight:var(--font-weight-semibold);color:var(--color-text-primary);text-align:center}:root{color-scheme:light;--ui-scale: 1;--color-action: #2c9c32;--color-action-hover: rgb(56, 180, 75);--color-action-shadow: rgb(146, 181, 153);--color-selection: #2c9c32a2;--color-selection-hover: rgba(56, 180, 75, .666);--color-selection-shadow: rgb(146, 181, 153);--color-purpile: #9b59b6;--color-purpile-hover: #8e44ad;--color-purpile-soft: #f3e8fb;--color-purpile-on-soft: #6d28d9;--color-teal: #14b8a6;--color-teal-soft: #e3f6f4;--color-teal-on-soft: #0f766e;--color-itslearning: #f1b11b;--color-itslearning-hover: #c98f06;--color-table-head-bg: #34495e;--color-table-head-text: #ffffff;--ink-light: #ffffff;--ink-dark: #1d2939;--color-bg-page: 245, 246, 248;--surface-page: #f5f6f8;--surface-card: #ffffff;--surface-raised: #ffffff;--surface-sunken: #f1f3f5;--surface-hover: #eff1f4;--surface-selected: #e8f0f6;--text-primary: #1d2939;--text-secondary: #667085;--text-muted: #78839a;--text-on-accent: #ffffff;--text-on-action: var(--text-on-accent);--border-default: #dee2e6;--border-subtle: #e9ebef;--border-strong: #c7ced8;--border-focus: #2c9c32;--accent: #1a5984;--accent-hover: #2980b9;--accent-soft: #e8f0f6;--accent-on-soft: #1a5984;--success: #27ae60;--success-soft: #d4edda;--success-on-soft: #155724;--danger: #e74c3c;--danger-soft: #f8d7da;--danger-on-soft: #721c24;--warning: #f39c12;--warning-soft: #fff3cd;--warning-on-soft: #856404;--info: #3498db;--info-soft: #e7f3ff;--info-on-soft: #1b4f72;--sidebar-bg: #ffffff;--sidebar-text: #353535;--sidebar-hover: #dce7f2;--sidebar-active: #9dbfdd;--shadow-color: #101828;--dtb-height: 3.125rem;--radius-xs: .125rem;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-full: 9999px;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--font-family: "Inter", system-ui, sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-md: .95rem;--font-size-base: 1rem;--font-size-lg: 1.1rem;--font-size-xl: 1.3rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--z-dropdown: 100;--z-sticky: 200;--z-modal: 1000;--z-tooltip: 1100;--touch-target: max(44px, 2.75rem);--space-page: 1.5rem;--nav-w: clamp(11rem, 15vw, 15rem)}:root[data-nav-collapsed]{--nav-w: 3.25rem}:root[data-theme=dark]{color-scheme:dark;--color-action: #3ecf4a;--color-action-hover: #5ada63;--color-action-shadow: rgba(62, 207, 74, .35);--color-selection: rgba(62, 207, 74, .55);--color-selection-hover: rgba(90, 218, 99, .6);--color-selection-shadow: rgba(62, 207, 74, .35);--color-purpile: #b678cf;--color-purpile-hover: #c78ede;--color-purpile-soft: #2b1b3d;--color-purpile-on-soft: #d0a9e8;--color-teal: #2dd4bf;--color-teal-soft: #0d2f2c;--color-teal-on-soft: #7fe0d5;--color-itslearning: #f5c14a;--color-itslearning-hover: #ffd66e;--color-table-head-bg: #2a313b;--color-table-head-text: #e6e9ef;--color-bg-page: 20, 23, 28;--surface-page: #14171c;--surface-card: #1b1f26;--surface-raised: #232830;--surface-sunken: #101318;--surface-hover: #262c35;--surface-selected: #1e3448;--text-primary: #e6e9ef;--text-secondary: #a7b0bf;--text-muted: #7d8797;--text-on-accent: #0d1b26;--border-default: #333a45;--border-subtle: #272d36;--border-strong: #4a5361;--border-focus: #3ecf4a;--accent: #4a9fd5;--accent-hover: #6cb6e4;--accent-soft: #16344b;--accent-on-soft: #8ec5e8;--success: #3ecf6d;--success-soft: #12301f;--success-on-soft: #7ee2a0;--danger: #f2695a;--danger-soft: #3a1a17;--danger-on-soft: #ffa79b;--warning: #f0a93a;--warning-soft: #3a2a0e;--warning-on-soft: #f6c977;--info: #54aee8;--info-soft: #122e42;--info-on-soft: #9ad2f4;--sidebar-bg: #1b1f26;--sidebar-text: #d4d9e1;--sidebar-hover: #262c35;--sidebar-active: #2f4457;--shadow-color: #000000}:root{--color-primary: var(--accent);--color-primary-hover: var(--accent-hover);--color-primary-light: var(--accent-soft);--color-primary-border: var(--accent);--color-primary-soft: var(--accent-soft);--color-primary-dark: var(--accent-hover);--color-primary-bg: var(--accent-soft);--primary: var(--accent);--primary-dark: var(--accent-hover);--primary-soft: var(--accent-soft);--color-success: var(--success);--color-success-hover: var(--success);--color-success-bg: var(--success-soft);--color-success-soft: var(--success-soft);--color-success-light: var(--success-soft);--color-success-text: var(--success-on-soft);--color-success-border: var(--success-soft);--color-danger: var(--danger);--color-danger-hover: var(--danger);--color-danger-dark: var(--danger);--color-danger-bg: var(--danger-soft);--color-danger-soft: var(--danger-soft);--color-danger-light: var(--danger-soft);--color-danger-text: var(--danger-on-soft);--color-danger-border: var(--danger-soft);--color-error: var(--danger);--color-warning: var(--warning);--color-warning-hover: var(--warning);--color-warning-bg: var(--warning-soft);--color-warning-soft: var(--warning-soft);--color-warning-light: var(--warning-soft);--color-warning-text: var(--warning-on-soft);--color-warning-border: var(--warning-soft);--color-info: var(--info);--color-info-bg: var(--info-soft);--color-info-text: var(--info-on-soft);--color-info-border: var(--info-soft);--color-text-primary: var(--text-primary);--color-text: var(--text-primary);--color-text-header: var(--text-primary);--color-text-secondary: var(--text-secondary);--color-text-muted: var(--text-muted);--color-text-light: var(--text-muted);--color-text-tertiary: var(--text-muted);--text-tertiary: var(--text-muted);--color-text-on-dark: var(--text-on-accent);--color-bg-app: var(--surface-page);--color-bg-body: var(--surface-card);--color-bg-card: var(--surface-card);--color-bg-section: var(--surface-card);--color-bg-input: var(--surface-card);--color-bg-input-disabled: var(--surface-sunken);--color-bg-subtle: var(--surface-sunken);--color-bg-hover: var(--surface-hover);--color-bg: var(--surface-card);--color-bg-primary: var(--surface-card);--color-bg-secondary: var(--surface-sunken);--color-bg-tertiary: var(--surface-sunken);--color-background: var(--surface-card);--color-background-secondary: var(--surface-sunken);--color-background-hover: var(--surface-hover);--color-card-bg: var(--surface-card);--color-surface: var(--surface-card);--color-surface-alt: var(--surface-sunken);--color-surface-secondary: var(--surface-sunken);--surface: var(--surface-card);--card-bg: var(--surface-card);--bg-primary: var(--surface-card);--bg-secondary: var(--surface-sunken);--bg-subtle: var(--surface-sunken);--input-bg: var(--surface-card);--code-bg: var(--surface-sunken);--badge-bg: var(--surface-sunken);--row-hover: var(--surface-hover);--color-sidebar-bg: var(--sidebar-bg);--color-sidebar-text: var(--sidebar-text);--color-sidebar-muted: var(--text-muted);--color-sidebar-hover: var(--sidebar-hover);--color-sidebar-active: var(--sidebar-active);--color-sidebar-active-border: var(--accent);--color-sidebar-divider: var(--border-subtle);--color-sidebar-sub-menu-bg: var(--sidebar-bg);--color-sidebar-sub-menu-text: var(--text-secondary);--color-table-row-hover: var(--surface-hover);--color-table-border: var(--border-subtle);--color-table-row-danger: var(--danger-soft);--color-table-row-danger-hover: var(--danger-soft);--color-border: var(--border-default);--color-border-light: var(--border-subtle);--color-border-subtle: var(--border-subtle);--color-border-input: var(--border-default);--color-border-hover: var(--border-strong);--color-border-input-focus: var(--border-focus);--border: var(--border-default);--border-color: var(--border-default);--shadow-sm: 0 1px 3px color-mix(in srgb, var(--shadow-color) 12%, transparent);--shadow-md: 0 2px 8px color-mix(in srgb, var(--shadow-color) 16%, transparent);--shadow-lg: 0 4px 16px color-mix(in srgb, var(--shadow-color) 22%, transparent);--shadow-xl: 0 8px 24px color-mix(in srgb, var(--shadow-color) 28%, transparent);--shadow-card-hover: 0 6px 16px color-mix(in srgb, var(--shadow-color) 22%, transparent)}:root[data-theme=dark]{--shadow-sm: 0 1px 3px color-mix(in srgb, var(--shadow-color) 40%, transparent);--shadow-md: 0 2px 8px color-mix(in srgb, var(--shadow-color) 50%, transparent);--shadow-lg: 0 4px 16px color-mix(in srgb, var(--shadow-color) 60%, transparent);--shadow-xl: 0 8px 24px color-mix(in srgb, var(--shadow-color) 70%, transparent);--shadow-card-hover: 0 6px 16px color-mix(in srgb, var(--shadow-color) 60%, transparent)}@media(min-width:640px)and (max-width:1023px){:root{--space-page: 1.25rem}}@media(max-width:639px){:root{--space-page: .85rem}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/Inter/InterVariable.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/Inter/InterVariable-Italic.woff2) format("woff2")}*{box-sizing:border-box;margin:0;padding:0}html{font-size:calc(var(--ui-scale, 1) * 100%)}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--color-bg-app);color:var(--color-text-primary);font-size:var(--font-size-base);line-height:1.5;font-optical-sizing:auto;font-feature-settings:"cv02","cv03","cv04","cv11"}code{font-family:var(--font-family-mono)}.loading{display:flex;justify-content:center;align-items:center;height:100vh;font-size:var(--font-size-2xl);color:var(--color-text-primary)}.is-mobile-only{display:none!important}.is-tablet-up,.is-desktop-only{display:revert}@media(max-width:1023px){.is-desktop-only{display:none!important}}@media(max-width:639px){.is-mobile-only{display:revert!important}.is-tablet-up{display:none!important}}.table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
