:root{--app-background:#e9eef5;--app-surface:#ffffff;--app-surface-muted:#f4f7fb;--app-text:#152033;--app-text-muted:#6f7c90;--app-text-subtle:#8c97a8;--app-accent:#1e88ff;--app-accent-text:#ffffff;--app-danger:#e14b4b;--app-border:#dfe6ef}*{box-sizing:border-box}body,html{min-height:100%;margin:0}html{overscroll-behavior-x:none}body,html{overflow-x:hidden}body{min-width:320px;min-height:100dvh;overflow-y:auto;background:var(--app-background);color:var(--app-text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}.app-loading{display:grid;min-height:100dvh;padding:24px;place-items:center;font-size:16px;line-height:1.45;text-align:center}ol,ul{margin:0;padding:0;list-style:none}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.group-selector{display:grid;width:min(100%,560px);min-height:100dvh;margin:0 auto;padding:max(36px,calc(env(safe-area-inset-top) + 20px)) 16px max(32px,env(safe-area-inset-bottom));place-items:center;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}.group-selector-content{width:min(100%,360px)}.group-selector-animation{width:min(100%,172px);height:172px;margin:0 auto 18px}.group-selector-details{text-align:center}.group-selector-details h1{margin:0;font-size:24px;letter-spacing:-.03em;line-height:1.2}.group-selector-details>p{margin:8px 0 20px;color:var(--app-text-muted);font-size:15px;line-height:1.4}.group-list{display:grid;gap:10px}.group-list button{width:100%;min-height:52px;border:0;border-radius:14px;background:var(--app-accent);color:var(--app-accent-text);cursor:pointer;font:inherit;font-size:17px;font-weight:650}.group-list button:focus-visible{outline:2px solid var(--app-accent);outline-offset:3px}.group-list button:disabled{cursor:wait;opacity:.65}.group-selector-message{margin-bottom:0!important}.group-selector-message.is-error{color:var(--app-danger)!important}.schedule-page{width:min(100%,560px);min-height:100dvh;margin:0 auto;overflow-x:hidden;padding:0 16px max(32px,env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.calendar{overflow:hidden;margin:0 -16px;padding:0 16px 20px;background:var(--app-surface);border-bottom:1px solid var(--app-border)}.calendar-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;text-align:center}.calendar-header h2{margin:0;font-size:20px;line-height:32px}.calendar-navigation-button{display:grid;width:44px;height:44px;padding:0;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--app-accent);cursor:pointer}.calendar-navigation-button svg,.group-name svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.calendar-navigation-button:focus-visible,.group-name:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.group-name{display:flex;max-width:100%;min-height:36px;margin:6px auto 18px;padding:4px 4px 4px 12px;align-items:center;justify-content:center;gap:2px;border:0;border-radius:10px;background:transparent;color:var(--app-text-muted);cursor:pointer;font:inherit;font-size:17px;text-align:center}.group-name span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-name svg{flex:0 0 auto;width:18px;height:18px}.calendar-days{display:grid;grid-template-columns:repeat(7,minmax(38px,1fr));gap:4px}.horizontal-pager{width:100%;overflow:hidden;touch-action:pan-y}.horizontal-pager-page{display:none}.horizontal-pager-page:nth-child(2){display:block}.calendar-day{display:grid;width:100%;min-height:68px;padding:0;place-items:center;align-content:center;gap:6px;border:0;border-radius:14px;background:none;color:var(--app-text-subtle);cursor:pointer;font:inherit;font-size:13px}.calendar-day:focus-visible{outline:2px solid var(--app-accent);outline-offset:2px}.calendar-day span{color:var(--app-text);font-size:17px;font-variant-numeric:tabular-nums}.calendar-day.is-selected{background:var(--app-accent)}.calendar-day.is-selected,.calendar-day.is-selected span{color:var(--app-accent-text)}.lessons{overflow:clip;padding-top:28px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}.section-heading h2{margin:0;font-size:20px;letter-spacing:-.02em}.section-heading span{color:var(--app-text-muted);font-size:14px}.lesson-list{display:grid;gap:10px}.lessons-pager,.lessons-pager .horizontal-pager-page,.lessons-pager .lesson-status{min-height:max(280px,calc(100dvh - 300px))}.lesson-status{display:grid;margin:0;place-items:center;color:var(--app-text-muted);font-size:15px;text-align:center}.lesson-loading-spinner{width:30px;height:30px;border:3px solid var(--app-border);border-top-color:var(--app-accent);border-radius:50%;animation:lesson-loading-spin .8s linear infinite}@keyframes lesson-loading-spin{to{transform:rotate(1turn)}}.lesson-card{display:grid;gap:10px;padding:18px 16px;border-radius:16px;background:var(--app-surface)}.lesson-card-top{display:flex;align-items:center;justify-content:space-between;gap:16px;color:var(--app-text-subtle);font-size:14px}.lesson-card time{color:inherit;font-variant-numeric:tabular-nums;font-weight:500;line-height:1.45}.lesson-card h3{margin:0;font-size:18px;line-height:1.35;overflow-wrap:anywhere}.lesson-card-details{display:grid;gap:4px}.lesson-teacher{margin:0;color:var(--app-text-muted);font-size:15px;line-height:1.4;overflow-wrap:anywhere}@media (prefers-reduced-motion:reduce){.horizontal-pager{scroll-behavior:auto}.lesson-loading-spinner{animation:none}}@media (max-width:380px){.calendar-days{gap:0}.lesson-card{gap:8px}}