:root{font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--tg-theme-text-color,#111827);background:var(--tg-theme-bg-color,#f3f4f6);font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px}button,input,select{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;padding-bottom:86px}header{position:sticky;top:0;z-index:20;padding:calc(12px + env(safe-area-inset-top)) 16px 12px;background:var(--tg-theme-bg-color,#fff);border-bottom:1px solid #e5e7eb}header div{display:flex;align-items:center;justify-content:space-between;gap:12px}header small{color:#6b7280}main{max-width:1120px;margin:auto}.page{padding:16px}.page h2{margin:8px 0}.muted{color:#6b7280}.bottom-nav{position:fixed;z-index:50;bottom:0;left:0;right:0;display:flex;overflow:auto;gap:4px;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--tg-theme-bg-color,#fff);border-top:1px solid #e5e7eb}.bottom-nav a{min-width:max-content;padding:10px 12px;border-radius:12px;text-decoration:none;color:inherit;font-size:13px}.bottom-nav a.active{background:var(--tg-theme-button-color,#2563eb);color:var(--tg-theme-button-text-color,#fff)}.toolbar,.segmented{display:flex;gap:8px}.toolbar button,.segmented button{border:0;border-radius:10px;padding:9px 12px;background:#e5e7eb}.segmented{margin:14px 0}.segmented button{flex:1}.segmented .active{background:#111827;color:#fff}.state{min-height:180px;display:flex;align-items:center;justify-content:center;gap:10px}.error{color:#b91c1c}.spinner{width:20px;height:20px;border:3px solid #d1d5db;border-top-color:#111827;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.day-list,.cards{display:grid;gap:10px}.lesson{width:100%;text-align:left;border:0;border-left:4px solid #2563eb;background:#fff;padding:10px;border-radius:10px;display:grid;gap:3px;box-shadow:0 1px 2px #0001}.lesson span{font-size:13px}.status-completed{border-left-color:#16a34a}.status-cancelled,.status-missed{border-left-color:#9ca3af;opacity:.7}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));overflow:auto;gap:8px}.week-grid section{min-height:340px;background:#f9fafb;padding:8px;border-radius:12px}.week-grid h4{position:sticky;top:0;margin:0 0 8px;padding:6px}.week-grid .lesson{margin-bottom:7px}.month-grid{display:grid;grid-template-columns:repeat(7,minmax(120px,1fr));overflow:auto;border:1px solid #e5e7eb}.month-grid>div{min-height:130px;padding:6px;border-right:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;background:#fff}.month-grid .outside{opacity:.45}.month-grid small{float:right}.month-grid .lesson{margin-top:5px;padding:5px;font-size:11px}.hero-card,.person-card,.stat-card,.preview{background:#fff;border-radius:16px;padding:16px;display:grid;gap:8px;box-shadow:0 1px 3px #0001}.hero-card b{font-size:26px}.inline-form{display:flex;gap:8px;margin:12px 0}.inline-form input{flex:1}.form{display:grid;gap:14px;max-width:680px}.form label{display:grid;gap:6px;font-weight:600}.form input,.form select,.inline-form input{border:1px solid #d1d5db;background:#fff;border-radius:12px;padding:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.form .check{display:flex;grid-template-columns:auto 1fr;align-items:center}.primary,.inline-form button{border:0;border-radius:12px;padding:12px 16px;background:var(--tg-theme-button-color,#2563eb);color:var(--tg-theme-button-text-color,#fff);font-weight:700}.error-box,.success-box{padding:12px;border-radius:12px}.error-box{background:#fee2e2;color:#991b1b}.success-box{background:#dcfce7;color:#166534}.stat-card strong{font-size:24px}@media(max-width:700px){.week-grid{grid-template-columns:repeat(7,190px)}.month-grid{grid-template-columns:repeat(7,120px)}header small{display:none}.page{padding:12px}.form-row{grid-template-columns:1fr}}.filters{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.filters select,.inline-controls select,.inline-controls input,.invite-row input,.modal input,.modal select{border:1px solid #d1d5db;border-radius:10px;padding:10px;background:#fff;min-width:0}.inline-controls,.invite-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-controls select,.invite-row input{flex:1}.person-card button,.modal-actions button,.inline-controls button,.invite-row button{border:0;border-radius:10px;padding:9px 11px;background:#e5e7eb}.danger-link{justify-self:start;background:transparent!important;color:#b91c1c!important;padding-left:0!important}.danger{width:100%;border:1px solid #fecaca!important;background:#fff!important;color:#b91c1c!important;border-radius:12px;padding:12px}.modal-backdrop{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;background:#0007;display:flex;align-items:flex-end;justify-content:center;padding-top:40px}.modal{width:min(640px,100%);max-height:92vh;overflow:auto;background:var(--tg-theme-bg-color,#fff);border-radius:20px 20px 0 0;padding:18px calc(18px + env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));box-shadow:0 -10px 40px #0003}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-head h3{margin:0}.modal-head button{border:0;background:transparent;font-size:20px}.detail-grid{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:18px 0}.detail-grid span{color:#6b7280}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.compact{padding:12px 0}.day-open{border:0;background:transparent;font-weight:700;padding:2px 4px;border-radius:6px}.day-open:hover{background:#e5e7eb}@media(min-width:701px){.modal-backdrop{align-items:center;padding:20px}.modal{border-radius:20px}}@media(max-width:700px){.filters{grid-template-columns:1fr}.inline-form{display:grid;grid-template-columns:1fr 100px}.inline-form button{grid-column:1/-1}}:root{color-scheme:light;background:#f3f4f6!important;color:#111827!important}html,body,#root,.app-shell{background:#f3f4f6!important;color:#111827!important}header,.bottom-nav,.modal{background:#fff!important;color:#111827!important}.lesson,.hero-card,.person-card,.stat-card,.preview,.month-grid>div,.week-grid section{background:#fff!important;color:#111827!important}input,select,textarea{background:#fff!important;color:#111827!important}.bottom-nav a{color:#111827}.bottom-nav a.active,.primary,.inline-form button{background:#2563eb!important;color:#fff!important}
