:root{color-scheme:light dark;--tg-bg: #f7f7f8;--tg-text: #171717;--tg-hint: #70757d;--tg-link: #2481cc;--tg-button: #2481cc;--tg-button-text: #ffffff;--tg-secondary-bg: #ffffff;--tg-section-bg: #ffffff;--border: rgba(120, 120, 128, .22);--planned: #2f80ed;--completed: #239b56;--cancelled: #8b96a8;--missed: #d64545}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--tg-bg);color:var(--tg-text);font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.app-shell{max-width:980px;min-height:100vh;margin:0 auto;padding:14px;padding-bottom:calc(86px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:5;margin:-14px -14px 12px;padding:14px;background:color-mix(in srgb,var(--tg-bg) 92%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border)}.topbar h1{min-width:0;margin:0;font-size:20px;line-height:1.2;text-transform:capitalize}.title-row{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:12px}.segments,.nav-row{display:grid;gap:8px}.segments{grid-template-columns:repeat(3,1fr);padding:3px;background:var(--tg-secondary-bg);border:1px solid var(--border);border-radius:8px}.segments button,.nav-row button,.create-button,.sheet-actions button,.icon-button,.form-actions button,.duration-choices button{min-height:38px;border:0;border-radius:7px;color:var(--tg-text);background:transparent}.segments button.active{color:var(--tg-button-text);background:var(--tg-button)}.nav-row{grid-template-columns:44px 1fr 44px;margin-top:10px}.nav-row button,.today-button,.create-button{background:var(--tg-secondary-bg);border:1px solid var(--border)}.create-button{display:none;flex:0 0 auto;padding:0 13px;color:var(--tg-button-text);background:var(--tg-button);border-color:transparent;font-weight:700}.mobile-create-button{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:12;min-height:48px;padding:0 18px;color:var(--tg-button-text);background:var(--tg-button);border:0;border-radius:999px;box-shadow:0 10px 28px #0000003d;font:inherit;font-weight:800}.state-text,.error-text,.empty-day,.center-screen p{color:var(--tg-hint)}.error-text{color:var(--missed)}.days-list{display:grid;gap:12px}.day-section{padding:12px;background:var(--tg-section-bg);border:1px solid var(--border);border-radius:8px}.day-section header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-weight:700;text-transform:capitalize}.day-section header b{color:var(--tg-link);font-size:12px}.lesson-list{display:grid;gap:8px}.lesson{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px;width:100%;min-height:62px;padding:10px;text-align:left;color:var(--tg-text);background:var(--tg-secondary-bg);border:1px solid var(--border);border-left:4px solid var(--planned);border-radius:8px}.lesson-time{font-weight:800;color:var(--planned)}.lesson-main{min-width:0}.lesson-main strong,.lesson-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lesson-main small,.lesson-status{margin-top:3px;color:var(--tg-hint);font-size:12px}.lesson-status{grid-column:2}.lesson-completed{border-left-color:var(--completed)}.lesson-completed .lesson-time{color:var(--completed)}.lesson-cancelled{border-left-color:var(--cancelled);opacity:.72}.lesson-cancelled .lesson-time{color:var(--cancelled)}.lesson-missed{border-left-color:var(--missed)}.lesson-missed .lesson-time{color:var(--missed)}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:hidden;background:var(--tg-section-bg);border:1px solid var(--border);border-radius:8px}.month-weekday,.month-cell{min-width:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.month-weekday:nth-child(7n),.month-cell:nth-child(7n){border-right:0}.month-weekday{padding:8px 2px;color:var(--tg-hint);font-size:11px;text-align:center}.month-cell{min-height:82px;padding:5px}.month-cell.muted{opacity:.42}.month-cell-title{margin-bottom:4px;font-size:12px;font-weight:700}.month-lessons{display:grid;gap:3px}.month-dot{overflow:hidden;width:100%;padding:3px 4px;border:0;border-radius:5px;color:#fff;font-size:10px;line-height:1.15;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:var(--planned)}.month-dot.lesson-completed{background:var(--completed)}.month-dot.lesson-cancelled{background:var(--cancelled)}.month-dot.lesson-missed{background:var(--missed)}.more-lessons{color:var(--tg-hint);font-size:10px}.sheet-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;background:#00000052}.sheet{width:100%;max-height:88vh;padding:10px 16px 16px;overflow:auto;background:var(--tg-bg);border-radius:14px 14px 0 0}.sheet-handle{width:42px;height:4px;margin:0 auto 12px;background:var(--border);border-radius:999px}.sheet-header{display:flex;gap:12px;align-items:flex-start;justify-content:space-between}.sheet-header h2{margin:0;font-size:22px}.sheet-header p{margin:4px 0 0;color:var(--tg-hint)}.icon-button{width:38px;background:var(--tg-secondary-bg);border:1px solid var(--border);font-size:24px}.details{display:grid;gap:8px;margin:16px 0}.details div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid var(--border)}.details dt{color:var(--tg-hint)}.details dd{min-width:0;margin:0}.sheet-actions{display:grid;gap:8px}.sheet-actions button{color:var(--tg-button-text);background:var(--tg-button)}.sheet-actions button:disabled{opacity:.55}.lesson-form{display:grid;gap:12px;margin-top:16px}.form-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.form-field{display:grid;gap:6px}.form-field span{color:var(--tg-hint);font-size:13px}.form-field input,.form-field select,.form-field textarea{width:100%;min-height:40px;padding:9px 10px;color:var(--tg-text);background:var(--tg-secondary-bg);border:1px solid var(--border);border-radius:7px;font:inherit}.form-field textarea{min-height:76px;resize:vertical}.duration-choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.duration-choices button{background:var(--tg-secondary-bg);border:1px solid var(--border)}.duration-choices button.active{color:var(--tg-button-text);background:var(--tg-button);border-color:transparent}.form-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;margin-top:2px}.form-actions .primary{color:var(--tg-button-text);background:var(--tg-button)}.form-actions .secondary{background:var(--tg-secondary-bg);border:1px solid var(--border)}.form-actions button:disabled,.duration-choices button:disabled,.form-field input:disabled,.form-field select:disabled,.form-field textarea:disabled{opacity:.58}.center-screen{display:grid;min-height:100vh;place-content:center;padding:24px;text-align:center}.center-screen h1{margin:0 0 8px}@media(min-width:720px){.app-shell{padding-bottom:14px}.create-button{display:inline-block}.mobile-create-button{display:none}.days-list{grid-template-columns:repeat(2,minmax(0,1fr))}.sheet{max-width:560px;margin:0 auto;border-radius:14px 14px 0 0}}
