@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400..800&family=Material+Symbols+Rounded:wght,FILL@400..700,0..1&display=swap";.app-shell{min-height:100svh;padding:calc(12px + var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px)) var(--page-gutter) calc(24px + var(--tg-safe-area-inset-bottom,0px));flex-direction:column;gap:16px;display:flex}.app-shell--with-nav{padding-bottom:calc(96px + var(--tg-safe-area-inset-bottom,0px))}.app-shell>*{min-width:0}.auth-shell{justify-content:center}.auth-card{border-radius:var(--md-shape-xl-increased);background:var(--md-surface-container-low);text-align:center;justify-items:center;gap:20px;padding:32px 24px;display:grid}.auth-card--loading{align-content:center;min-height:240px}.auth-card .primary-button{width:100%}.auth-caption{color:var(--md-on-surface);margin:0;font-size:1.125rem;font-weight:700;line-height:1.5rem}.unauthorized-card h1{font-size:1.75rem}.lead{max-width:38ch;color:var(--md-on-surface-variant)}.stack-list,.schedule-page,.teachers-page,.teacher-page,.teacher-section,.statistics-page,.statistics-detail-page,.point-history-page,.point-media-page,.fine-page,.fine-history{grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;display:grid}.helper-text{color:var(--md-on-surface-variant);font-size:.875rem;line-height:1.25rem}.card-label{letter-spacing:.04em;color:var(--md-on-surface-variant);font-size:.75rem;font-weight:700;line-height:1rem}.page-header{align-content:center;gap:2px;min-height:56px;padding:4px 4px 0;display:grid}.page-title{letter-spacing:-.01em;color:var(--md-on-surface);overflow-wrap:break-word;margin:0;font-size:1.75rem;font-weight:800;line-height:2.25rem}.page-subtitle{color:var(--md-on-surface-variant);margin:0;font-size:.875rem;line-height:1.25rem}.list-card{border-radius:var(--md-shape-lg-increased);background:var(--md-surface-container-low);color:var(--md-on-surface);border:0;padding:16px}.notice-card{border-radius:var(--md-shape-lg);background:var(--md-surface-container-high);color:var(--md-on-surface);padding:14px 16px}.notice-card.danger{background:var(--md-error-container);color:var(--md-on-error-container)}.fine-feedback{background:var(--md-primary-container);color:var(--md-on-primary-container)}.room-card--placeholder{text-align:center;min-height:140px;color:var(--md-on-surface-variant);align-content:center;place-items:center;gap:16px;padding:32px 24px;display:grid}.room-card--placeholder strong{font-size:1rem;font-weight:700}.grouped-cards{grid-template-columns:minmax(0,1fr);gap:2px;display:grid}.grouped-cards>.list-card{border-radius:var(--md-shape-xs)}.grouped-cards>.list-card:first-child{border-top-left-radius:var(--md-shape-lg-increased);border-top-right-radius:var(--md-shape-lg-increased)}.grouped-cards>.list-card:last-child{border-bottom-left-radius:var(--md-shape-lg-increased);border-bottom-right-radius:var(--md-shape-lg-increased)}.teacher-item,.schedule-card--button,.point-history-entry{isolation:isolate;width:100%;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-radius .35s var(--md-spring-fast-spatial), background-color .2s var(--md-spring-default-effects);border:0;position:relative;overflow:hidden}.teacher-item:after,.schedule-card--button:after,.point-history-entry:after{content:"";z-index:-1;opacity:0;pointer-events:none;transition:opacity .15s var(--md-spring-fast-effects);background:currentColor;position:absolute;inset:0}@media (hover:hover){.teacher-item:hover:after,.schedule-card--button:hover:after,.point-history-entry:hover:after{opacity:.08}}.teacher-item:active:after,.schedule-card--button:active:after,.point-history-entry:active:after{opacity:.12}.grouped-cards>.teacher-item:active,.grouped-cards>.schedule-card--button:active,.grouped-cards>.point-history-entry:active{border-radius:var(--md-shape-lg-increased)}.teacher-item:focus-visible,.schedule-card--button:focus-visible,.point-history-entry:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px;z-index:1}.primary-button,.secondary-button{border-radius:var(--md-shape-full);text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;min-width:0;min-height:56px;transition:border-radius .35s var(--md-spring-fast-spatial), background-color .2s var(--md-spring-default-effects), box-shadow .2s var(--md-spring-default-effects);border:0;justify-content:center;align-items:center;gap:8px;padding:0 24px;font-size:1rem;font-weight:700;line-height:1.25rem;text-decoration:none;display:inline-flex}.primary-button{background:var(--md-primary);color:var(--md-on-primary)}.secondary-button{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.primary-button:not(:disabled):active,.secondary-button:not(:disabled):active{border-radius:var(--md-shape-lg)}@media (hover:hover){.primary-button:not(:disabled):hover,.secondary-button:not(:disabled):hover{box-shadow:0 1px 3px #0000002e}}.primary-button:focus-visible,.secondary-button:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}.primary-button:disabled,.secondary-button:disabled{background:color-mix(in srgb, var(--md-on-surface) 12%, transparent);color:color-mix(in srgb, var(--md-on-surface) 38%, transparent);cursor:default}.primary-button .material-symbols-rounded,.secondary-button .material-symbols-rounded{font-size:22px}.button-row{grid-template-columns:repeat(auto-fit,minmax(min(100%,136px),1fr));gap:8px;display:grid}.button-row>.primary-button,.button-row>.secondary-button{white-space:nowrap;padding-inline:12px}.icon-button{border-radius:var(--md-shape-full);block-size:48px;inline-size:48px;color:var(--md-on-surface-variant);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-radius .35s var(--md-spring-fast-spatial), background-color .2s var(--md-spring-default-effects);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.icon-button:not(:disabled):active{border-radius:var(--md-shape-md);background:color-mix(in srgb, currentColor 12%, transparent)}.icon-button:disabled{opacity:.38;cursor:default}.icon-button--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.filter-bar,.filter-scroll{min-width:0;max-width:none}.filter-scroll{scrollbar-width:none;overscroll-behavior-x:contain;margin-inline:calc(var(--page-gutter) * -1);padding:2px var(--page-gutter);overflow-x:auto}.filter-scroll::-webkit-scrollbar{display:none}.filter-chips{gap:8px;width:max-content;display:flex}.filter-chip{border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-md);min-height:36px;color:var(--md-on-surface-variant);white-space:nowrap;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-radius .35s var(--md-spring-fast-spatial), background-color .2s var(--md-spring-default-effects);background:0 0;flex:none;align-items:center;gap:6px;padding:0 16px;font-size:.875rem;font-weight:700;display:inline-flex}.filter-chip.active{border-radius:var(--md-shape-full);background:var(--md-secondary-container);color:var(--md-on-secondary-container);border-color:#0000;padding-left:10px}.filter-chip.active:before{content:"check";font-family:Material Symbols Rounded;font-size:18px;font-weight:400;line-height:1}.filter-chip:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}.fine-field{gap:6px;min-width:0;display:grid}.fine-field>.helper-text{letter-spacing:.02em;color:var(--md-on-surface-variant);padding-inline:4px;font-size:.75rem;font-weight:700;line-height:1rem}.fine-field input{border:1px solid var(--md-outline);border-radius:var(--md-shape-md);width:100%;min-width:0;min-height:56px;color:var(--md-on-surface);transition:border-color .15s var(--md-spring-fast-effects), box-shadow .15s var(--md-spring-fast-effects);background:0 0;margin:0;padding:0 16px;font-size:1rem}.fine-field input:focus{border-color:var(--md-primary);box-shadow:inset 0 0 0 1px var(--md-primary);outline:none}.fine-field input:disabled{opacity:.6}.teacher-item__avatar{border-radius:var(--md-shape-full);background:var(--md-primary-container);block-size:44px;inline-size:44px;color:var(--md-on-primary-container);object-fit:cover;flex:none;place-items:center;font-size:1rem;font-weight:800;display:grid;overflow:hidden}.teacher-item__avatar--large{border-radius:var(--md-shape-xl);background:var(--md-tertiary-container);block-size:72px;inline-size:72px;color:var(--md-on-tertiary-container);font-size:1.5rem}.teacher-item__avatar,.profile-m3__avatar{position:relative}.avatar-image{border-radius:inherit;object-fit:cover;block-size:100%;inline-size:100%;position:absolute;inset:0}.teacher-item__avatar--small{block-size:24px;inline-size:24px;font-size:.625rem}.avatar-with-badge{flex:none;display:inline-grid;position:relative}.avatar-with-badge__badge{border:3px solid var(--md-surface-container-low);border-radius:var(--md-shape-full);background:var(--md-error-container);block-size:28px;inline-size:28px;color:var(--md-on-error-container);place-items:center;display:grid;position:absolute;bottom:-4px;right:-4px}.avatar-with-badge__badge .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 600;font-size:15px}.teacher-item{min-height:72px;color:var(--md-on-surface);justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.teacher-item--split{gap:16px;padding:0 0 0 16px}.teacher-item__main{min-width:0;min-height:72px;color:inherit;font:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex:auto;justify-content:space-between;align-self:stretch;align-items:center;gap:12px;padding:12px 16px 12px 0;display:flex}.teacher-item__main:focus-visible{outline:none}.teacher-item--split:has(.teacher-item__main:focus-visible){outline:3px solid var(--md-secondary);outline-offset:-3px}.teacher-item__identity{flex:auto;align-items:center;gap:16px;min-width:0;display:flex}.teacher-item__copy{flex:auto;min-width:0}.teacher-item__copy strong{overflow-wrap:break-word;font-size:1rem;line-height:1.5rem}.teacher-item__trailing{color:var(--md-on-surface-variant);flex:none}.statistics-item__meta{flex:none;align-items:center;gap:8px;display:flex}.statistics-item__points,.statistics-summary__points{border-radius:var(--md-shape-full);background:var(--md-primary-container);min-width:48px;color:var(--md-on-primary-container);text-align:center;font-variant-numeric:tabular-nums;padding:4px 12px;font-size:1rem;font-weight:800}.statistics-item__points.is-negative,.statistics-summary__points.is-negative{background:var(--md-error-container);color:var(--md-on-error-container)}.teacher-summary{border-radius:var(--md-shape-xl);gap:16px;padding:20px;display:grid}.teacher-summary__lead{align-items:center;gap:16px;min-width:0;display:flex}.teacher-summary__copy{gap:2px;min-width:0;display:grid}.teacher-summary__copy strong{overflow-wrap:break-word;font-size:1.375rem;font-weight:800;line-height:1.75rem}.statistics-summary{gap:16px;display:grid}.statistics-summary__side{border-radius:var(--md-shape-lg);background:var(--md-surface-container-highest);justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:8px 8px 8px 16px;display:flex}.statistics-summary__side .helper-text{font-weight:700}.statistics-summary__points{padding:6px 16px;font-size:1.5rem}.teacher-contact{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.teacher-contact__phone{border-radius:var(--md-shape-full);background:var(--md-surface-container-highest);align-items:center;gap:4px;min-width:0;min-height:56px;padding:0 4px 0 20px;display:flex}.teacher-contact__number{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--md-on-surface);font-variant-numeric:tabular-nums;-webkit-user-select:text;user-select:text;flex:auto;font-size:1rem;font-weight:700;text-decoration:none;overflow:hidden}.teacher-contact__number:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px;border-radius:var(--md-shape-xs)}.teacher-contact__copy{block-size:44px;inline-size:44px}.teacher-contact__copy .material-symbols-rounded{font-size:20px}.teacher-contact__call{inline-size:56px;padding:0}.teacher-contact__call .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 500;font-size:24px}.teacher-contact__empty{color:var(--md-on-surface-variant);align-items:center;gap:8px;font-size:.875rem;display:flex}.teacher-contact__empty .material-symbols-rounded{font-size:20px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;block-size:1px;inline-size:1px;position:absolute;overflow:hidden}.teacher-section__header{gap:2px;padding:0 4px;display:grid}.teacher-section__header h2{font-size:1.25rem;line-height:1.75rem}.schedule-card{min-height:80px;color:var(--md-on-surface);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:12px;display:grid}.schedule-card__time{border-radius:var(--md-shape-lg);background:var(--md-primary-container);min-width:64px;color:var(--md-on-primary-container);font-variant-numeric:tabular-nums;justify-items:center;gap:2px;padding:10px 6px;display:grid}.schedule-card__clock{font-size:1rem;font-weight:800;line-height:1.25rem}.schedule-card__clock+.schedule-card__clock{opacity:.78;font-weight:500}.schedule-card__details{gap:2px;min-width:0;display:grid}.schedule-card__details strong{overflow-wrap:break-word;font-size:1rem;line-height:1.5rem}.schedule-card__teacher{min-width:0;color:var(--md-on-surface);align-items:center;gap:6px;font-size:.875rem;line-height:1.25rem;display:flex}.schedule-card__trailing{color:var(--md-on-surface-variant)}.schedule-card:not(.schedule-card--button){grid-template-columns:auto minmax(0,1fr)}.fine-summary{border-radius:var(--md-shape-xl);gap:16px;padding:20px;display:grid}.fine-summary__lead,.fine-rule__header{align-items:center;gap:12px;min-width:0;display:flex}.fine-summary__copy,.fine-rule__copy{gap:2px;min-width:0;display:grid}.fine-summary__copy strong{overflow-wrap:break-word;font-size:1.25rem;font-weight:800;line-height:1.75rem}.fine-summary__copy p{color:var(--md-on-surface-variant);overflow-wrap:break-word;font-size:.875rem}.fine-badge{border-radius:var(--md-shape-lg);background:var(--md-primary-container);block-size:48px;inline-size:48px;color:var(--md-on-primary-container);flex:none;place-items:center;display:grid}.fine-badge .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 500}.fine-badge--warning{background:var(--md-warning-container);color:var(--md-on-warning-container)}.fine-badge--danger{background:var(--md-error-container);color:var(--md-on-error-container)}.fine-meta{flex-wrap:wrap;gap:8px;display:flex}.fine-meta__item{border-radius:var(--md-shape-sm);background:var(--md-surface-container-highest);min-width:0;max-width:100%;min-height:32px;color:var(--md-on-surface);overflow-wrap:break-word;align-items:center;gap:6px;padding:0 12px 0 8px;font-size:.875rem;font-weight:700;display:inline-flex}.fine-meta__item .material-symbols-rounded{color:var(--md-primary);font-size:18px}.fine-rule{gap:12px;display:grid}.fine-rule__copy strong{font-size:1rem;line-height:1.5rem}.fine-rule__controls{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:8px;display:grid}.fine-rule__controls .primary-button{padding-inline:12px;font-size:.9375rem}.fine-history__header h2{padding:0 4px;font-size:1.25rem;line-height:1.75rem}.fine-history__item{min-height:72px;color:var(--md-on-surface);justify-content:space-between;align-items:center;gap:16px;display:flex}.fine-history__copy,.fine-history__main{flex:auto;gap:2px;min-width:0;display:grid}.fine-history__copy strong,.fine-history__main strong{overflow-wrap:break-word;font-size:1rem;line-height:1.5rem}.fine-history__main .helper-text{overflow-wrap:break-word}.fine-history__side{text-align:right;flex:0 auto;justify-items:end;gap:4px;max-width:45%;display:grid}.fine-history__meta{color:var(--md-on-surface-variant);overflow-wrap:break-word;font-size:.75rem;line-height:1rem}.fine-history__points{font-variant-numeric:tabular-nums;color:var(--md-on-surface);flex:none;font-size:1.0625rem;font-weight:800}.fine-history__points.is-negative{color:var(--md-error)}.fine-history__points.is-positive{color:var(--md-success)}.fine-history__points.is-warning{color:var(--md-warning)}.media-attachment-icon{color:var(--md-primary);flex-shrink:0}.point-history-entry__name{align-items:center;gap:6px;display:inline-flex}.point-history-group{gap:8px;display:grid}.point-history-date-header{top:calc(8px + var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));z-index:5;border-radius:var(--md-shape-full);background:var(--md-surface-container-highest);min-height:32px;color:var(--md-on-surface);border:0;justify-self:center;align-items:center;gap:4px;padding:0 14px;font-size:.8125rem;font-weight:700;display:inline-flex;position:sticky}button.point-history-date-header{cursor:pointer;-webkit-tap-highlight-color:transparent;justify-content:space-between;justify-self:stretch;min-height:48px;padding:0 12px 0 20px;font-size:.9375rem}.point-history-range{gap:12px;display:grid}.point-history-range__copy{gap:2px;display:grid}.point-history-range__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.point-media-summary{gap:6px;display:grid}.point-media-summary__row{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.point-media-summary__row strong,.point-media-summary__reason{overflow-wrap:break-word;flex:auto;min-width:0}.point-media-summary__row .fine-history__points,.point-media-summary__footer{text-align:right;overflow-wrap:break-word;flex:none;max-width:50%}.point-media-upload{border-radius:var(--md-shape-xl);gap:12px;display:grid}.point-media-upload>strong{font-size:1.125rem;font-weight:800}.point-media-upload__picker{min-width:0;display:grid}.point-media-upload__input{display:none}.point-media-upload__button{text-overflow:ellipsis;white-space:nowrap;width:100%;min-width:0;line-height:56px;display:block;overflow:hidden}.point-media-upload__progress-container{gap:8px;display:grid}.point-media-upload__progress-info{justify-content:space-between;align-items:center;gap:12px;font-size:.875rem;font-weight:700;display:flex}.point-media-upload__progress-percentage{font-variant-numeric:tabular-nums;color:var(--md-primary)}.point-media-upload__progress-track{border-radius:var(--md-shape-full);background:var(--md-secondary-container);height:6px;position:relative;overflow:hidden}.point-media-upload__progress-track:after{content:"";background:var(--md-primary);border-radius:50%;block-size:4px;inline-size:4px;position:absolute;top:1px;right:1px}.point-media-upload__progress-fill{z-index:1;border-radius:var(--md-shape-full);background:var(--md-primary);height:100%;box-shadow:4px 0 0 var(--md-surface-container-low);transition:width .3s var(--md-spring-default-effects);position:relative}.point-media-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;display:grid}.point-media-card{border-radius:var(--md-shape-xl);gap:12px;padding:8px 8px 12px;display:grid}.point-media-card__preview-wrap{border-radius:var(--md-shape-lg-increased);background:var(--md-surface-container-highest);overflow:hidden}.point-media-card__preview{object-fit:cover;width:100%;max-height:320px;display:block}.point-media-card__audio{width:100%;display:block}.point-media-card__file{color:var(--md-on-surface-variant);overflow-wrap:break-word;padding:16px;font-weight:700}.point-media-card__meta{gap:2px;padding:0 8px;display:grid}.point-media-card__meta .helper-text{overflow-wrap:break-word}.point-media-card__actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.point-media-card__actions>a,.point-media-card__actions>button{min-height:48px;padding-inline:12px;font-size:.875rem}@media (width<=360px){:root{--page-gutter:12px}.fine-rule__controls,.point-history-range__grid,.point-media-card__actions{grid-template-columns:minmax(0,1fr)}.fine-summary,.teacher-summary{padding:16px}.teacher-contact{gap:6px}.teacher-contact__phone{gap:2px;padding:0 2px 0 14px}.teacher-contact__number{letter-spacing:-.01em;font-size:.875rem}.teacher-contact__copy{block-size:40px;inline-size:40px}.teacher-contact__call{inline-size:48px;min-height:48px}.schedule-card{gap:12px}}.m3-state{isolation:isolate;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-radius .35s var(--md-spring-fast-spatial), background-color .2s var(--md-spring-default-effects), color .2s var(--md-spring-default-effects), transform .35s var(--md-spring-fast-spatial);position:relative;overflow:hidden}.m3-state:after{content:"";z-index:-1;border-radius:inherit;opacity:0;pointer-events:none;transition:opacity .15s var(--md-spring-fast-effects);background:currentColor;position:absolute;inset:0}@media (hover:hover){.m3-state:not(:disabled):hover:after{opacity:.08}}.m3-state:not(:disabled):focus-visible:after,.m3-state:not(:disabled):active:after{opacity:.12}.m3-state:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}.m3-state:disabled{cursor:default}.m3-headline{letter-spacing:-.01em;color:var(--md-on-surface);margin:0;font-size:1.75rem;font-weight:800;line-height:2.25rem}.m3-subheader{letter-spacing:.01em;color:var(--md-primary);margin:0;padding:0 4px;font-size:.875rem;font-weight:800;line-height:1.25rem}.m3-body-small{color:var(--md-on-surface-variant);font-size:.8125rem;line-height:1.125rem}.m3-page{color:var(--md-on-surface);grid-template-columns:minmax(0,1fr);align-content:start;gap:16px;display:grid}.m3-top-bar{justify-content:space-between;align-items:center;gap:8px;min-height:64px;padding-left:4px;display:flex}.m3-top-bar__titles{gap:2px;min-width:0;display:grid}.m3-icon-button{border-radius:var(--md-shape-full);block-size:48px;inline-size:48px;color:var(--md-on-surface-variant);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid}.m3-icon-button:not(:disabled):active{border-radius:var(--md-shape-md)}.m3-icon-button--error{border-radius:var(--md-shape-md);background:var(--md-error-container);block-size:40px;inline-size:40px;color:var(--md-on-error-container)}.m3-icon-button:disabled{opacity:.38}.m3-spin{animation:.7s linear infinite spin}.m3-button{border-radius:var(--md-shape-full);letter-spacing:.01em;border:0;justify-content:center;align-items:center;gap:8px;min-height:40px;padding:0 20px 0 16px;font-size:.875rem;font-weight:700;display:inline-flex}.m3-button:not(:disabled):active{border-radius:var(--md-shape-sm)}.m3-button .material-symbols-rounded{font-size:20px}.m3-button--tonal{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.m3-segmented{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:2px;display:grid}.m3-segmented__item{border-radius:var(--md-shape-sm);background:var(--md-surface-container-highest);min-height:48px;color:var(--md-on-surface-variant);white-space:nowrap;text-overflow:ellipsis;border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.9375rem;font-weight:700;display:inline-flex;overflow:hidden}.m3-segmented__item:first-child{border-radius:var(--md-shape-full) var(--md-shape-sm) var(--md-shape-sm) var(--md-shape-full)}.m3-segmented__item:last-child{border-radius:var(--md-shape-sm) var(--md-shape-full) var(--md-shape-full) var(--md-shape-sm)}.m3-segmented__item.is-selected{border-radius:var(--md-shape-full);background:var(--md-primary);color:var(--md-on-primary)}.m3-chip-row{scrollbar-width:none;overscroll-behavior-x:contain;margin-inline:calc(var(--page-gutter) * -1);padding:2px var(--page-gutter);gap:8px;display:flex;overflow-x:auto}.m3-chip-row::-webkit-scrollbar{display:none}.m3-chip{border:1px solid var(--md-outline-variant);border-radius:var(--md-shape-md);min-height:36px;color:var(--md-on-surface-variant);white-space:nowrap;background:0 0;flex:none;align-items:center;gap:6px;padding:0 16px;font-size:.875rem;font-weight:700;display:inline-flex}.m3-chip.is-selected{border-radius:var(--md-shape-full);background:var(--md-secondary-container);color:var(--md-on-secondary-container);border-color:#0000;padding-left:10px}.m3-chip .material-symbols-rounded{font-size:18px}.m3-assist-chip{border-radius:var(--md-shape-full);background:var(--md-tertiary-container);min-height:32px;color:var(--md-on-tertiary-container);font-variant-numeric:tabular-nums;align-items:center;gap:8px;padding:0 12px 0 10px;font-size:.875rem;font-weight:800;display:inline-flex}.m3-live-dot{block-size:8px;inline-size:8px;animation:m3-live-pulse 2s var(--md-spring-default-effects) infinite;background:currentColor;border-radius:50%}@keyframes m3-live-pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 45%, transparent)}70%{box-shadow:0 0 0 6px #0000}}.m3-list{gap:2px;display:grid}.m3-list-item{border-radius:var(--md-shape-xs);background:var(--md-surface-container-low);width:100%;min-height:72px;color:var(--md-on-surface);text-align:left;border:0;align-items:center;gap:16px;padding:12px 16px;display:flex}.m3-list>.m3-list-item:first-child{border-top-left-radius:var(--md-shape-lg-increased);border-top-right-radius:var(--md-shape-lg-increased)}.m3-list>.m3-list-item:last-child{border-bottom-left-radius:var(--md-shape-lg-increased);border-bottom-right-radius:var(--md-shape-lg-increased)}.m3-list>.m3-list-item:not(:disabled):active{border-radius:var(--md-shape-lg-increased)}.m3-list-item__leading{border-radius:var(--md-shape-md);background:var(--md-primary-container);block-size:40px;inline-size:40px;color:var(--md-on-primary-container);flex:none;place-items:center;display:grid}.m3-list-item__leading .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 500}.m3-list-item__leading--plain{color:var(--md-on-surface-variant);background:0 0}.m3-list-item__leading--plain .material-symbols-rounded{font-variation-settings:"FILL" 0, "wght" 500}.m3-list-item__content{flex:auto;gap:2px;min-width:0;display:grid}.m3-list-item__headline{color:inherit;overflow-wrap:break-word;font-size:1rem;font-weight:700;line-height:1.5rem}.m3-list-item__supporting{color:var(--md-on-surface-variant);text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;overflow:hidden}.m3-list-item__trailing{color:var(--md-on-surface-variant);flex:none}.m3-list-item--error,.m3-list-item--error .m3-list-item__leading--plain{color:var(--md-error)}.m3-list-item:disabled{opacity:.6}.m3-card{border-radius:var(--md-shape-lg-increased);background:var(--md-surface-container-highest);color:var(--md-on-surface);text-align:left;border:0}button.m3-card:not(:disabled):active{border-radius:var(--md-shape-xl)}.m3-card--outlined{border:1px solid var(--md-outline-variant);background:var(--md-surface-container-lowest)}.m3-card--low{background:var(--md-surface-container-low)}.m3-card--error{background:var(--md-error-container);color:var(--md-on-error-container);padding:16px}.m3-card--success{background:var(--md-primary-container);color:var(--md-on-primary-container);padding:16px}.m3-empty{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.m3-empty__icon{border-radius:var(--md-shape-xl);background:var(--md-tertiary-container);block-size:72px;inline-size:72px;color:var(--md-on-tertiary-container);place-items:center;display:grid;transform:rotate(-8deg)}.m3-empty__icon .material-symbols-rounded{font-size:36px;transform:rotate(8deg)}.m3-empty__title{font-size:1.0625rem;font-weight:800;line-height:1.5rem}.m3-empty .m3-button{margin-top:4px}.m3-progress,.loader{background:var(--md-primary-container);border:0;border-radius:50%;flex:none;place-items:center;block-size:48px;inline-size:48px;animation:none;display:grid;position:relative}.m3-progress:before,.loader:before{content:"";background:var(--md-primary);block-size:30px;inline-size:30px;animation:m3-morph 2.4s var(--md-spring-default-spatial) infinite, spin 2.4s linear infinite}@keyframes m3-morph{0%,to{border-radius:50%;scale:1}20%{border-radius:30%;scale:.92}40%{border-radius:50% 50% 18%;scale:1}60%{border-radius:42% 58% 70% 30%/45% 45% 55% 55%;scale:.9}80%{border-radius:8px;scale:.85}}.m3-search,.teachers-search{border-radius:var(--md-shape-full);background:var(--md-surface-container-high);min-height:56px;color:var(--md-on-surface-variant);transition:border-radius .35s var(--md-spring-fast-spatial);align-items:center;gap:12px;padding:0 4px 0 16px;display:flex}.m3-search:focus-within,.teachers-search:focus-within{border-radius:var(--md-shape-lg);outline:2px solid var(--md-primary);outline-offset:-2px}.m3-search input,.teachers-search input{min-width:0;min-height:48px;color:var(--md-on-surface);background:0 0;border:0;outline:none;flex:auto;padding:0;font-size:1rem}.m3-search input::placeholder,.teachers-search input::placeholder{color:var(--md-on-surface-variant)}.m3-search input::-webkit-search-cancel-button{display:none}.teachers-search input::-webkit-search-cancel-button{display:none}:is(.m3-search:not(:has(.m3-icon-button)),.teachers-search){padding-right:16px}.m3-scrim{z-index:40;background:color-mix(in srgb, var(--md-scrim) 32%, transparent);cursor:pointer;opacity:0;border:0;width:100%;padding:0;position:fixed;inset:0}.m3-scrim.is-open{animation:m3-fade-in .25s var(--md-spring-default-effects) forwards}.m3-scrim.is-closing{pointer-events:none;animation:m3-fade-out .2s var(--md-spring-default-effects) forwards}.m3-sheet{inset-inline:0;z-index:41;overscroll-behavior:contain;width:min(100%,640px);max-height:min(85svh,680px);padding:0 0 calc(16px + var(--tg-safe-area-inset-bottom,0px));border-radius:var(--md-shape-xl-increased) var(--md-shape-xl-increased) 0 0;background:var(--md-surface-container-low);color:var(--md-on-surface);margin-inline:auto;position:fixed;bottom:0;overflow:auto;transform:translateY(100%)}.m3-sheet.is-open{animation:m3-sheet-in .5s var(--md-spring-default-spatial) forwards}.m3-sheet.is-closing{animation:m3-sheet-out .2s var(--md-motion-emphasized-accelerate) forwards}.m3-sheet__handle{border-radius:var(--md-shape-full);background:color-mix(in srgb, var(--md-on-surface-variant) 40%, transparent);block-size:4px;inline-size:32px;margin:16px auto 0}.m3-sheet__header{justify-content:space-between;align-items:center;gap:8px;padding:12px 12px 8px 24px;display:flex}.m3-sheet__title{color:var(--md-on-surface);margin:0;font-size:1.375rem;font-weight:800;line-height:1.75rem}.m3-sheet__options{gap:2px;padding:0 12px;display:grid}.m3-sheet__option{border-radius:var(--md-shape-lg);width:100%;min-height:56px;color:var(--md-on-surface);text-align:left;background:0 0;border:0;align-items:center;gap:16px;padding:8px 16px;font-size:1rem;font-weight:700;display:flex}.m3-sheet__option.is-selected{border-radius:var(--md-shape-full);background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.m3-sheet__option-icon{color:var(--md-on-surface-variant)}.m3-sheet__option.is-selected .m3-sheet__option-icon{color:inherit;font-variation-settings:"FILL" 1, "wght" 500}.m3-sheet__option-label{flex:auto;min-width:0}.m3-sheet__radio{color:var(--md-on-surface-variant)}.m3-sheet__option.is-selected .m3-sheet__radio{color:var(--md-primary);font-variation-settings:"FILL" 1, "wght" 500}@keyframes m3-fade-in{0%{opacity:0}to{opacity:1}}@keyframes m3-fade-out{0%{opacity:1}to{opacity:0}}@keyframes m3-sheet-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes m3-sheet-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}.bottom-nav{inset-inline:0;z-index:30;width:min(100%,560px);padding:6px 4px calc(6px + var(--tg-safe-area-inset-bottom,0px));background:var(--md-surface-container);grid-template-columns:repeat(4,minmax(0,1fr));margin-inline:auto;display:grid;position:fixed;bottom:0}.nav-item{min-width:0;min-height:56px;color:var(--md-on-surface-variant);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:0;display:flex}.nav-item:focus-visible{outline:none}.nav-item:focus-visible .nav-indicator{outline:3px solid var(--md-secondary);outline-offset:2px}.nav-item.active{color:var(--md-on-surface)}.nav-indicator{border-radius:var(--md-shape-full);isolation:isolate;place-items:center;block-size:32px;inline-size:56px;display:grid;position:relative}.nav-indicator:before{content:"";z-index:-1;border-radius:inherit;background:var(--md-secondary-container);opacity:0;transition:transform .35s var(--md-spring-fast-spatial), opacity .15s var(--md-spring-fast-effects);position:absolute;inset:0;transform:scaleX(.3)}.nav-indicator:after{content:"";z-index:-1;border-radius:inherit;opacity:0;transition:opacity .15s var(--md-spring-fast-effects);background:currentColor;position:absolute;inset:0}@media (hover:hover){.nav-item:hover .nav-indicator:after{opacity:.08}}.nav-item:active .nav-indicator:after{opacity:.12}.nav-item.active .nav-indicator:before{opacity:1;transform:scaleX(1)}.nav-icon{transition:font-variation-settings .2s var(--md-spring-default-effects)}.nav-item.active .nav-icon{color:var(--md-on-secondary-container);font-variation-settings:"FILL" 1, "wght" 600}.nav-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.75rem;font-weight:600;line-height:1rem;overflow:hidden}.nav-item.active .nav-label{font-weight:800}.home-m3{padding-top:4px}.rooms-m3__grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;display:grid}.rooms-m3__card{background:var(--md-surface-container-high);align-content:space-between;gap:8px;min-width:0;min-height:96px;padding:14px;display:grid}.rooms-m3__icon{border-radius:var(--md-shape-md);background:var(--md-primary-container);block-size:32px;inline-size:32px;color:var(--md-on-primary-container);font-variation-settings:"FILL" 1, "wght" 500;place-items:center;font-size:20px;display:grid}.rooms-m3__number{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800;line-height:1.75rem}.lateness-m3__meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lateness-m3__list{gap:8px;display:grid}.lateness-m3__card{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:12px;display:grid}.lateness-m3__time{border-radius:var(--md-shape-lg);background:var(--md-primary-container);min-width:64px;color:var(--md-on-primary-container);font-variant-numeric:tabular-nums;justify-items:center;gap:2px;padding:10px 6px;display:grid}.lateness-m3__clock{font-size:1rem;font-weight:800;line-height:1.25rem}.lateness-m3__clock--end{opacity:.78;font-weight:500}.lateness-m3__badge{border-radius:var(--md-shape-full);background:var(--md-error);max-width:100%;color:var(--md-on-error);text-overflow:ellipsis;white-space:nowrap;justify-self:start;margin-block:2px;padding:0 8px;font-size:.6875rem;font-weight:800;line-height:1.125rem;overflow:hidden}.lateness-m3__details{gap:2px;min-width:0;display:grid}.lateness-m3__teacher{align-items:center;gap:6px;min-width:0;font-size:1rem;font-weight:800;line-height:1.5rem;display:flex}.lateness-m3__teacher>span:last-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lateness-m3__title{text-overflow:ellipsis;white-space:nowrap;font-size:.875rem;line-height:1.25rem;overflow:hidden}.lateness-m3__card .m3-icon-button{pointer-events:none}.profile-m3__header{border-radius:var(--md-shape-xl);align-items:center;gap:16px;padding:20px 12px 20px 20px;display:flex}.profile-m3__avatar{border-radius:var(--md-shape-xl);background:var(--md-tertiary-container);block-size:72px;inline-size:72px;color:var(--md-on-tertiary-container);flex:none;place-items:center;font-size:1.625rem;font-weight:800;display:grid;overflow:hidden}.profile-m3__identity{flex:auto;gap:2px;min-width:0;display:grid}.profile-m3__name{overflow-wrap:break-word;font-size:1.375rem;font-weight:800;line-height:1.75rem}.profile-m3__meta{color:var(--md-on-surface-variant);overflow-wrap:break-word;font-size:.875rem;line-height:1.25rem}.profile-m3__section{gap:8px;display:grid}.m3-sheet__section-title{color:var(--md-primary);margin:8px 0 4px;padding:0 28px;font-size:.875rem;font-weight:800;line-height:1.25rem}.accent-swatches{grid-template-columns:repeat(6,minmax(0,1fr));justify-items:center;gap:8px;padding:8px 24px 12px;display:grid}.accent-swatch{--swatch:#006b5e;--swatch-on:#fff;--swatch-container:#9ef2e0;aspect-ratio:1;border-radius:var(--md-shape-full);background:linear-gradient(135deg, var(--swatch) 0 50%, var(--swatch-container) 50% 100%);inline-size:100%;max-inline-size:52px;color:var(--swatch-on);border:0;place-items:center;padding:0;display:grid}.accent-swatch.is-selected{border-radius:var(--md-shape-lg);background:var(--swatch);box-shadow:0 0 0 3px var(--md-surface-container-low), 0 0 0 5px var(--swatch)}.accent-swatch__check{opacity:0;transition:opacity .15s var(--md-spring-fast-effects), transform .35s var(--md-spring-fast-spatial);transform:scale(.4)}.accent-swatch.is-selected .accent-swatch__check{opacity:1;transform:scale(1)}.accent-swatch[data-accent=blue]{--swatch:#0061a4;--swatch-container:#d1e4ff}.accent-swatch[data-accent=violet]{--swatch:#6750a4;--swatch-container:#eaddff}.accent-swatch[data-accent=rose]{--swatch:#984061;--swatch-container:#ffd9e2}.accent-swatch[data-accent=orange]{--swatch:#8b5000;--swatch-container:#ffdcbe}.accent-swatch[data-accent=green]{--swatch:#3b6939;--swatch-container:#bcf0b4}:root[data-theme=dark] .accent-swatch{--swatch:#82d5c4;--swatch-on:#003731;--swatch-container:#005047}:root[data-theme=dark] .accent-swatch[data-accent=blue]{--swatch:#9ecaff;--swatch-on:#003258;--swatch-container:#00497d}:root[data-theme=dark] .accent-swatch[data-accent=violet]{--swatch:#d0bcff;--swatch-on:#381e72;--swatch-container:#4f378b}:root[data-theme=dark] .accent-swatch[data-accent=rose]{--swatch:#ffb1c8;--swatch-on:#5e1133;--swatch-container:#7b2949}:root[data-theme=dark] .accent-swatch[data-accent=orange]{--swatch:#ffb870;--swatch-on:#4a2800;--swatch-container:#693c00}:root[data-theme=dark] .accent-swatch[data-accent=green]{--swatch:#a1d39a;--swatch-on:#0a390f;--swatch-container:#235024}.m3-button--filled{background:var(--md-primary);color:var(--md-on-primary);padding:0 20px}.m3-button:disabled{background:color-mix(in srgb, var(--md-on-surface) 12%, transparent);color:color-mix(in srgb, var(--md-on-surface) 38%, transparent)}.profile-m3__avatar-button{border-radius:var(--md-shape-xl);background:0 0;border:0;flex:none;padding:0;position:relative}.profile-m3__avatar-button:not(:disabled):active{border-radius:var(--md-shape-full)}.profile-m3__avatar-button .profile-m3__avatar{border-radius:inherit;transition:border-radius .35s var(--md-spring-fast-spatial)}.profile-m3__avatar-wrap{flex:none;display:grid;position:relative}.profile-m3__avatar-edit{z-index:1;cursor:pointer;border:3px solid var(--md-surface-container-low);border-radius:var(--md-shape-full);background:var(--md-primary);block-size:30px;inline-size:30px;color:var(--md-on-primary);place-items:center;padding:0;display:grid;position:absolute;bottom:-4px;right:-4px}.profile-m3__avatar-edit .material-symbols-rounded{font-variation-settings:"FILL" 1, "wght" 600;font-size:16px}.profile-m3__file-input{display:none}.photo-editor{z-index:50;padding-top:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px));padding-bottom:var(--tg-safe-area-inset-bottom,0px);background:var(--md-surface-container-lowest);color:var(--md-on-surface);animation:m3-editor-in .4s var(--md-spring-default-spatial);flex-direction:column;display:flex;position:fixed;inset:0}@keyframes m3-editor-in{0%{opacity:0;transform:translateY(48px)}to{opacity:1;transform:none}}.photo-editor__bar{align-items:center;gap:4px;min-height:64px;padding:8px 12px 8px 4px;display:flex}.photo-editor__title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:1.375rem;font-weight:800;line-height:1.75rem;overflow:hidden}.photo-editor__progress{border-radius:var(--md-shape-full);background:var(--md-secondary-container);height:4px;margin:0 16px;overflow:hidden}.photo-editor__progress>span{border-radius:inherit;background:var(--md-primary);height:100%;transition:width .2s var(--md-spring-default-effects);display:block}.photo-editor__body{min-height:0;padding:8px var(--page-gutter) 24px;flex:auto;align-content:start;justify-items:center;gap:16px;display:grid;overflow-y:auto}.photo-editor__stage{aspect-ratio:1;border-radius:var(--md-shape-xl-increased);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;background:#0b0f0e;width:min(100%,420px,100svh - 360px);min-width:min(100%,240px);position:relative;overflow:hidden}.photo-editor__stage.is-dragging{cursor:grabbing}.photo-editor__stage:focus-visible{outline:3px solid var(--md-secondary);outline-offset:3px}.photo-editor__image{transform-origin:50%;pointer-events:none;will-change:transform;max-width:none;position:absolute;top:50%;left:50%}.photo-editor__mask{pointer-events:none;border:2px solid #ffffffd9;border-radius:50%;position:absolute;box-shadow:0 0 0 999px #0000008c}.photo-editor__grid{border-radius:inherit;opacity:0;transition:opacity .2s var(--md-spring-default-effects);background:linear-gradient(90deg,#0000 calc(33.333% - .5px),#ffffff80 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff80 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px)),linear-gradient(#0000 calc(33.333% - .5px),#ffffff80 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff80 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px));position:absolute;inset:0}.photo-editor__stage.is-dragging .photo-editor__grid{opacity:1}.photo-editor__hint{color:var(--md-on-surface-variant);text-align:center;font-size:.8125rem;line-height:1.125rem}.photo-editor__error{border-radius:var(--md-shape-lg);background:var(--md-error-container);width:min(100%,420px);color:var(--md-on-error-container);padding:12px 16px;font-size:.875rem}.photo-editor__controls{gap:8px;width:min(100%,420px);display:grid}.photo-editor__slider{border-radius:var(--md-shape-full);background:var(--md-surface-container);min-height:48px;color:var(--md-on-surface-variant);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:0 12px;display:grid}.photo-editor__value{font-variant-numeric:tabular-nums;text-align:right;min-width:3ch;color:var(--md-on-surface);font-size:.875rem;font-weight:700}.photo-editor__slider input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:44px;margin:0}.photo-editor__slider input[type=range]::-webkit-slider-runnable-track{border-radius:var(--md-shape-full);background:var(--md-secondary-container);height:12px}.photo-editor__slider input[type=range]::-moz-range-track{border-radius:var(--md-shape-full);background:var(--md-secondary-container);height:12px}.photo-editor__slider input[type=range]::-moz-range-progress{border-radius:var(--md-shape-full);background:var(--md-primary);height:12px}.photo-editor__slider input[type=range]::-webkit-slider-thumb{border-radius:var(--md-shape-full);background:var(--md-primary);block-size:36px;inline-size:6px;box-shadow:0 0 0 4px var(--md-surface-container);appearance:none;border:0;margin-top:-12px}.photo-editor__slider input[type=range]::-moz-range-thumb{border-radius:var(--md-shape-full);background:var(--md-primary);block-size:36px;inline-size:6px;box-shadow:0 0 0 4px var(--md-surface-container);border:0}.photo-editor__slider input[type=range]:focus-visible{outline:none}.photo-editor__slider input[type=range]:focus-visible::-webkit-slider-thumb{outline:3px solid var(--md-secondary);outline-offset:2px}.photo-editor__tools{border-radius:var(--md-shape-full);background:var(--md-surface-container);grid-template-columns:repeat(5,minmax(0,1fr));justify-items:center;gap:2px;padding:4px;display:grid}.photo-editor__tool{inline-size:100%;max-inline-size:64px;color:var(--md-on-surface)}.photo-editor__tool.is-active{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}.photo-editor__icon--vertical{transform:rotate(90deg)}.m3-sheet__option.is-danger,.m3-sheet__option.is-danger .m3-sheet__option-icon{color:var(--md-error)}.zoomable-avatar{cursor:zoom-in;-webkit-tap-highlight-color:transparent;transition:transform .35s var(--md-spring-fast-spatial);background:0 0;border:0;border-radius:50%;flex:none;padding:0;display:inline-grid}:is(.zoomable-avatar:has(.teacher-item__avatar--large),.zoomable-avatar:has(.profile-m3__avatar)){border-radius:var(--md-shape-xl)}.zoomable-avatar:active{transform:scale(.92)}.zoomable-avatar:focus-visible{outline:3px solid var(--md-secondary);outline-offset:2px}.photo-viewer{z-index:60;padding:calc(var(--tg-safe-area-inset-top,0px) + var(--tg-content-safe-area-inset-top,0px)) 0 calc(16px + var(--tg-safe-area-inset-bottom,0px));grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0}.photo-viewer__scrim{background:#000000db;position:absolute;inset:0}.photo-viewer__bar{justify-content:flex-end;padding:8px 8px 0;display:flex;position:relative}.photo-viewer__button{color:#fff}.photo-viewer__figure{align-content:center;place-items:center;gap:16px;min-height:0;margin:0;padding:16px;display:grid;position:relative}.photo-viewer__image{border-radius:var(--md-shape-xl);object-fit:contain;transform-origin:50%;will-change:transform;width:auto;min-width:min(100%,240px);max-width:min(100%,560px);height:auto;max-height:calc(100svh - 260px);display:block;box-shadow:0 12px 40px #00000073}.photo-viewer__caption{color:#fff;text-align:center;overflow-wrap:break-word;max-width:100%;font-size:1.125rem;font-weight:800;line-height:1.5rem}.photo-viewer__actions{justify-content:center;padding:0 16px;display:flex;position:relative}.photo-viewer__action{min-height:48px;padding:0 24px 0 20px}.extra-lessons__count{border-radius:var(--md-shape-full);background:color-mix(in srgb, currentColor 14%, transparent);font-variant-numeric:tabular-nums;place-items:center;min-width:20px;height:20px;padding:0 6px;font-size:.75rem;display:inline-grid}.extra-lessons__title{font-size:1rem;font-weight:800;line-height:1.5rem}.extra-lessons__teacher{font-size:.875rem;font-weight:600;line-height:1.25rem}.extra-lessons__status{border-radius:var(--md-shape-full);background:var(--md-surface-container-highest);max-width:100%;color:var(--md-on-surface-variant);white-space:nowrap;justify-self:start;align-items:center;gap:6px;margin-block:2px;padding:0 8px;font-size:.6875rem;font-weight:800;line-height:1.125rem;display:inline-flex}.extra-lessons__status.is-in-progress{background:var(--md-primary);color:var(--md-on-primary)}.extra-lessons__status.is-upcoming{background:var(--md-tertiary-container);color:var(--md-on-tertiary-container)}.extra-lessons__status .m3-live-dot{block-size:6px;inline-size:6px}.extra-lessons__card.is-in-progress{border-color:var(--md-primary);box-shadow:inset 0 0 0 1px var(--md-primary)}.extra-lessons__card.is-finished .lateness-m3__time{background:var(--md-surface-container-highest);color:var(--md-on-surface-variant)}.extra-lessons__card.is-finished .extra-lessons__title,.extra-lessons__card.is-finished .extra-lessons__teacher{color:var(--md-on-surface-variant)}.phone-editor{gap:16px;padding:0 24px 8px;display:grid}.phone-editor__description{color:var(--md-on-surface-variant);font-size:.875rem;line-height:1.25rem}.phone-editor__field{border:1px solid var(--md-outline);border-radius:var(--md-shape-md);min-height:56px;transition:border-color .15s var(--md-spring-fast-effects), box-shadow .15s var(--md-spring-fast-effects);align-items:center;gap:12px;padding:0 16px;display:flex}.phone-editor__field:focus-within{border-color:var(--md-primary);box-shadow:inset 0 0 0 1px var(--md-primary)}.phone-editor__field.is-invalid{border-color:var(--md-error);box-shadow:inset 0 0 0 1px var(--md-error)}.phone-editor__prefix{border-right:1px solid var(--md-outline-variant);color:var(--md-on-surface-variant);font-variant-numeric:tabular-nums;padding-right:12px;font-size:1.125rem;font-weight:700}.phone-editor__field input{min-width:0;min-height:52px;color:var(--md-on-surface);letter-spacing:.02em;font-variant-numeric:tabular-nums;background:0 0;border:0;outline:none;flex:auto;padding:0;font-size:1.125rem;font-weight:700}.phone-editor__field input::placeholder{color:color-mix(in srgb, var(--md-on-surface-variant) 60%, transparent);font-weight:500}.phone-editor__error{color:var(--md-error);margin-top:-8px;padding:0 4px;font-size:.8125rem}.m3-snackbar{left:50%;bottom:calc(96px + var(--tg-safe-area-inset-bottom,0px));z-index:45;border-radius:var(--md-shape-sm);background:var(--md-inverse-surface);width:max-content;max-width:min(100% - 32px,528px);min-height:48px;color:var(--md-inverse-on-surface);animation:m3-snackbar-in .35s var(--md-spring-fast-spatial);align-items:center;gap:12px;padding:12px 16px;font-size:.875rem;font-weight:600;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 4px 12px #0003}.m3-snackbar .material-symbols-rounded{color:var(--md-primary-container);font-size:20px}@keyframes m3-snackbar-in{0%{opacity:0;transform:translate(-50%,16px)scale(.96)}to{opacity:1;transform:translate(-50%)}}:root{--md-primary:#006b5e;--md-on-primary:#fff;--md-primary-container:#9ef2e0;--md-on-primary-container:#00201b;--md-secondary:#4a635e;--md-on-secondary:#fff;--md-secondary-container:#cce8e1;--md-on-secondary-container:#06201b;--md-tertiary:#3f6375;--md-on-tertiary:#fff;--md-tertiary-container:#c3e8fd;--md-on-tertiary-container:#001f2a;--md-error:#ba1a1a;--md-on-error:#fff;--md-error-container:#ffdad6;--md-on-error-container:#410002;--md-warning:#8a5100;--md-warning-container:#ffdcbd;--md-on-warning-container:#2c1600;--md-success:#2f6b2c;--md-surface:#f4fbf8;--md-surface-dim:#d5dbd9;--md-on-surface:#161d1b;--md-on-surface-variant:#3f4946;--md-surface-container-lowest:#fff;--md-surface-container-low:#eff5f2;--md-surface-container:#e9efec;--md-surface-container-high:#e3eae7;--md-surface-container-highest:#dde4e1;--md-inverse-surface:#2b3230;--md-inverse-on-surface:#ecf2ef;--md-outline:#6f7976;--md-outline-variant:#bec9c5;--md-scrim:#000;--md-shape-xs:4px;--md-shape-sm:8px;--md-shape-md:12px;--md-shape-lg:16px;--md-shape-lg-increased:20px;--md-shape-xl:28px;--md-shape-xl-increased:32px;--md-shape-xxl:48px;--md-shape-full:999px;--md-spring-fast-spatial:cubic-bezier(.42, 1.67, .21, .9);--md-spring-default-spatial:cubic-bezier(.38, 1.21, .22, 1);--md-spring-fast-effects:cubic-bezier(.31, .94, .34, 1);--md-spring-default-effects:cubic-bezier(.34, .8, .34, 1);--md-motion-emphasized-decelerate:cubic-bezier(.05, .7, .1, 1);--md-motion-emphasized-accelerate:cubic-bezier(.3, 0, .8, .15);--page-gutter:16px;--sans:"Manrope", "Segoe UI", system-ui, sans-serif;--heading:var(--sans);--bg:var(--md-surface);--surface:var(--md-surface-container-low);--surface-soft:var(--md-surface-container);--surface-strong:var(--md-surface-container-high);--border:var(--md-outline-variant);--border-soft:var(--md-outline-variant);--field-border:var(--md-outline);--field-bg:transparent;--text:var(--md-on-surface-variant);--text-strong:var(--md-on-surface);--muted:var(--md-on-surface-variant);--accent:var(--md-primary);--accent-strong:var(--md-primary);--accent-soft:var(--md-secondary-container);--accent-contrast:var(--md-on-primary);--focus-ring:var(--md-secondary);--button-secondary-bg:var(--md-secondary-container);--button-secondary-border:transparent;font:16px/1.5 var(--sans);color:var(--md-on-surface);background:var(--md-surface);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root[data-theme=dark]{--md-primary:#82d5c4;--md-on-primary:#003731;--md-primary-container:#005047;--md-on-primary-container:#9ef2e0;--md-secondary:#b1ccc5;--md-on-secondary:#1c3530;--md-secondary-container:#334b47;--md-on-secondary-container:#cce8e1;--md-tertiary:#a7cce0;--md-on-tertiary:#0a3445;--md-tertiary-container:#264b5c;--md-on-tertiary-container:#c3e8fd;--md-error:#ffb4ab;--md-on-error:#690005;--md-error-container:#93000a;--md-on-error-container:#ffdad6;--md-warning:#ffb86e;--md-warning-container:#693c00;--md-on-warning-container:#ffdcbd;--md-success:#94d68a;--md-surface:#0e1513;--md-surface-dim:#0e1513;--md-on-surface:#dde4e1;--md-on-surface-variant:#bec9c5;--md-surface-container-lowest:#090f0e;--md-surface-container-low:#161d1b;--md-surface-container:#1a211f;--md-surface-container-high:#252b2a;--md-surface-container-highest:#2f3634;--md-inverse-surface:#dde4e1;--md-inverse-on-surface:#2b3230;--md-outline:#899390;--md-outline-variant:#3f4946}*{box-sizing:border-box}html{background:var(--md-surface);min-height:100%}body{background:var(--md-surface);min-height:100svh;color:var(--md-on-surface);margin:0;overflow-x:hidden}#root{width:min(100%,560px);min-height:100svh;margin:0 auto;position:relative}h1,h2,h3{font-family:var(--heading);color:var(--md-on-surface);letter-spacing:0;margin:0;line-height:1.2}h1{font-size:1.75rem;font-weight:800}h2{font-size:1.375rem;font-weight:700}p{margin:0}strong{color:inherit;font-weight:700;display:block}button,input,select,textarea{font:inherit}img,video{max-width:100%}.material-symbols-rounded{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;font-variation-settings:"FILL" 0, "wght" 500;-webkit-font-smoothing:antialiased;direction:ltr;flex-shrink:0;font-family:Material Symbols Rounded;font-size:24px;font-style:normal;font-weight:400;line-height:1;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}:root[data-accent=blue]{--md-primary:#0061a4;--md-on-primary:#fff;--md-primary-container:#d1e4ff;--md-on-primary-container:#001d36;--md-secondary:#535f70;--md-on-secondary:#fff;--md-secondary-container:#d7e3f7;--md-on-secondary-container:#101c2b;--md-tertiary:#6b5778;--md-on-tertiary:#fff;--md-tertiary-container:#f2daff;--md-on-tertiary-container:#251431;--md-surface:#f8f9ff;--md-surface-dim:#d8dae0;--md-on-surface:#191c20;--md-on-surface-variant:#43474e;--md-surface-container-lowest:#fff;--md-surface-container-low:#f2f3fa;--md-surface-container:#eceef4;--md-surface-container-high:#e6e8ee;--md-surface-container-highest:#e0e2e8;--md-inverse-surface:#2e3135;--md-inverse-on-surface:#eff0f7;--md-outline:#73777f;--md-outline-variant:#c3c7cf}:root[data-accent=blue][data-theme=dark]{--md-primary:#9ecaff;--md-on-primary:#003258;--md-primary-container:#00497d;--md-on-primary-container:#d1e4ff;--md-secondary:#bbc7db;--md-on-secondary:#253140;--md-secondary-container:#3b4858;--md-on-secondary-container:#d7e3f7;--md-tertiary:#d6bee4;--md-on-tertiary:#3b2948;--md-tertiary-container:#523f5f;--md-on-tertiary-container:#f2daff;--md-surface:#111418;--md-surface-dim:#111418;--md-on-surface:#e1e2e8;--md-on-surface-variant:#c3c7cf;--md-surface-container-lowest:#0c0e13;--md-surface-container-low:#191c20;--md-surface-container:#1d2024;--md-surface-container-high:#272a2f;--md-surface-container-highest:#32353a;--md-inverse-surface:#e1e2e8;--md-inverse-on-surface:#2e3135;--md-outline:#8d9199;--md-outline-variant:#43474e}:root[data-accent=violet]{--md-primary:#6750a4;--md-on-primary:#fff;--md-primary-container:#eaddff;--md-on-primary-container:#21005d;--md-secondary:#625b71;--md-on-secondary:#fff;--md-secondary-container:#e8def8;--md-on-secondary-container:#1d192b;--md-tertiary:#7d5260;--md-on-tertiary:#fff;--md-tertiary-container:#ffd8e4;--md-on-tertiary-container:#31111d;--md-surface:#fef7ff;--md-surface-dim:#ded8e1;--md-on-surface:#1d1b20;--md-on-surface-variant:#49454f;--md-surface-container-lowest:#fff;--md-surface-container-low:#f7f2fa;--md-surface-container:#f3edf7;--md-surface-container-high:#ece6f0;--md-surface-container-highest:#e6e0e9;--md-inverse-surface:#322f35;--md-inverse-on-surface:#f5eff7;--md-outline:#79747e;--md-outline-variant:#cac4d0}:root[data-accent=violet][data-theme=dark]{--md-primary:#d0bcff;--md-on-primary:#381e72;--md-primary-container:#4f378b;--md-on-primary-container:#eaddff;--md-secondary:#ccc2dc;--md-on-secondary:#332d41;--md-secondary-container:#4a4458;--md-on-secondary-container:#e8def8;--md-tertiary:#efb8c8;--md-on-tertiary:#492532;--md-tertiary-container:#633b48;--md-on-tertiary-container:#ffd8e4;--md-surface:#141218;--md-surface-dim:#141218;--md-on-surface:#e6e0e9;--md-on-surface-variant:#cac4d0;--md-surface-container-lowest:#0f0d13;--md-surface-container-low:#1d1b20;--md-surface-container:#211f26;--md-surface-container-high:#2b2930;--md-surface-container-highest:#36343b;--md-inverse-surface:#e6e0e9;--md-inverse-on-surface:#322f35;--md-outline:#938f99;--md-outline-variant:#49454f}:root[data-accent=rose]{--md-primary:#984061;--md-on-primary:#fff;--md-primary-container:#ffd9e2;--md-on-primary-container:#3e001d;--md-secondary:#74565f;--md-on-secondary:#fff;--md-secondary-container:#ffd9e2;--md-on-secondary-container:#2b151c;--md-tertiary:#7c5635;--md-on-tertiary:#fff;--md-tertiary-container:#ffdcc1;--md-on-tertiary-container:#2e1500;--md-surface:#fff8f8;--md-surface-dim:#e6d6d9;--md-on-surface:#22191c;--md-on-surface-variant:#514347;--md-surface-container-lowest:#fff;--md-surface-container-low:#fff0f2;--md-surface-container:#fbeaed;--md-surface-container-high:#f5e4e7;--md-surface-container-highest:#efdee1;--md-inverse-surface:#372e30;--md-inverse-on-surface:#fdedef;--md-outline:#837377;--md-outline-variant:#d5c2c6}:root[data-accent=rose][data-theme=dark]{--md-primary:#ffb1c8;--md-on-primary:#5e1133;--md-primary-container:#7b2949;--md-on-primary-container:#ffd9e2;--md-secondary:#e2bdc6;--md-on-secondary:#422931;--md-secondary-container:#5a3f47;--md-on-secondary-container:#ffd9e2;--md-tertiary:#efbd94;--md-on-tertiary:#48290c;--md-tertiary-container:#613f20;--md-on-tertiary-container:#ffdcc1;--md-surface:#191113;--md-surface-dim:#191113;--md-on-surface:#efdfe1;--md-on-surface-variant:#d5c2c6;--md-surface-container-lowest:#130c0e;--md-surface-container-low:#22191c;--md-surface-container:#261d20;--md-surface-container-high:#31282a;--md-surface-container-highest:#3c3235;--md-inverse-surface:#efdfe1;--md-inverse-on-surface:#372e30;--md-outline:#9e8c90;--md-outline-variant:#514347}:root[data-accent=orange]{--md-primary:#8b5000;--md-on-primary:#fff;--md-primary-container:#ffdcbe;--md-on-primary-container:#2c1600;--md-secondary:#725a42;--md-on-secondary:#fff;--md-secondary-container:#ffdcbe;--md-on-secondary-container:#291806;--md-tertiary:#58633a;--md-on-tertiary:#fff;--md-tertiary-container:#dce8b4;--md-on-tertiary-container:#161e01;--md-surface:#fff8f5;--md-surface-dim:#e6d7cd;--md-on-surface:#211a14;--md-on-surface-variant:#51443a;--md-surface-container-lowest:#fff;--md-surface-container-low:#fff1e7;--md-surface-container:#fbebe0;--md-surface-container-high:#f5e5da;--md-surface-container-highest:#efe0d5;--md-inverse-surface:#372f28;--md-inverse-on-surface:#fdeee3;--md-outline:#837468;--md-outline-variant:#d5c3b5}:root[data-accent=orange][data-theme=dark]{--md-primary:#ffb870;--md-on-primary:#4a2800;--md-primary-container:#693c00;--md-on-primary-container:#ffdcbe;--md-secondary:#e1c1a4;--md-on-secondary:#402c18;--md-secondary-container:#5a422c;--md-on-secondary-container:#ffdcbe;--md-tertiary:#c0cc9a;--md-on-tertiary:#2a3410;--md-tertiary-container:#414b24;--md-on-tertiary-container:#dce8b4;--md-surface:#19120c;--md-surface-dim:#19120c;--md-on-surface:#efe0d5;--md-on-surface-variant:#d5c3b5;--md-surface-container-lowest:#140d08;--md-surface-container-low:#211a14;--md-surface-container:#261e18;--md-surface-container-high:#312822;--md-surface-container-highest:#3c332c;--md-inverse-surface:#efe0d5;--md-inverse-on-surface:#372f28;--md-outline:#9d8e81;--md-outline-variant:#51443a}:root[data-accent=green]{--md-primary:#3b6939;--md-on-primary:#fff;--md-primary-container:#bcf0b4;--md-on-primary-container:#002204;--md-secondary:#52634f;--md-on-secondary:#fff;--md-secondary-container:#d5e8cf;--md-on-secondary-container:#101f10;--md-tertiary:#39656b;--md-on-tertiary:#fff;--md-tertiary-container:#bcebf1;--md-on-tertiary-container:#001f23;--md-surface:#f7fbf1;--md-surface-dim:#d7dbd2;--md-on-surface:#191d17;--md-on-surface-variant:#424940;--md-surface-container-lowest:#fff;--md-surface-container-low:#f1f5ec;--md-surface-container:#ecefe6;--md-surface-container-high:#e6e9e0;--md-surface-container-highest:#e0e4db;--md-inverse-surface:#2d322c;--md-inverse-on-surface:#eef2e9;--md-outline:#72796f;--md-outline-variant:#c2c9bd}:root[data-accent=green][data-theme=dark]{--md-primary:#a1d39a;--md-on-primary:#0a390f;--md-primary-container:#235024;--md-on-primary-container:#bcf0b4;--md-secondary:#b9ccb4;--md-on-secondary:#253423;--md-secondary-container:#3b4b39;--md-on-secondary-container:#d5e8cf;--md-tertiary:#a1ced5;--md-on-tertiary:#00363c;--md-tertiary-container:#1f4d53;--md-on-tertiary-container:#bcebf1;--md-surface:#10140f;--md-surface-dim:#10140f;--md-on-surface:#e0e4db;--md-on-surface-variant:#c2c9bd;--md-surface-container-lowest:#0b0f0a;--md-surface-container-low:#191d17;--md-surface-container:#1d211b;--md-surface-container-high:#272b25;--md-surface-container-highest:#323630;--md-inverse-surface:#e0e4db;--md-inverse-on-surface:#2d322c;--md-outline:#8c9388;--md-outline-variant:#424940}
