:root,[data-theme=dark]{--bg-primary:#0a0a0f;--bg-secondary:#12121a;--bg-card:#ffffff08;--bg-card-hover:#ffffff0f;--border:#ffffff14;--text-primary:#fff;--text-secondary:#fff9;--text-muted:#fff6;--accent:#6366f1;--accent-hover:#818cf8;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--gradient:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%)}[data-theme=light]{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-card:#00000005;--bg-card-hover:#0000000a;--border:#00000014;--text-primary:#1a1a2e;--text-secondary:#1a1a2eb3;--text-muted:#1a1a2e80;--accent:#4f46e5;--accent-hover:#6366f1;--success:#16a34a;--warning:#d97706;--danger:#dc2626;--gradient:linear-gradient(135deg,#4f46e5 0%,#7c3aed 100%)}[data-theme=pink]{--bg-primary:#f5f7fa;--bg-secondary:#fff;--bg-card:#00000005;--bg-card-hover:#0000000a;--border:#ec489926;--text-primary:#1a1a2e;--text-secondary:#1a1a2eb3;--text-muted:#1a1a2e80;--accent:#ec4899;--accent-hover:#f472b6;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--gradient:linear-gradient(135deg,#ec4899 0%,#f472b6 100%)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow-x:clip}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;overscroll-behavior-x:none;width:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;line-height:1.6;position:relative;overflow-x:clip}.app{flex-direction:column;width:100%;min-height:100vh;display:flex;overflow-x:clip}.main{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:1rem}.nav{background:var(--bg-secondary);border-bottom:1px solid var(--border);z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:1rem;position:sticky;top:0}.nav-container{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.nav-logo{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.25rem;font-weight:700}.nav-links{gap:.5rem;display:flex}.nav-link{color:var(--text-secondary);border-radius:.375rem;justify-content:center;align-items:center;padding:.375rem 1rem;font-size:.875rem;text-decoration:none;transition:all .2s;display:inline-flex}.nav-link:hover,.nav-link.active{background:var(--bg-card);color:var(--text-primary)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;flex-direction:column;padding:1.25rem;transition:all .2s;display:flex}.card:hover{background:var(--bg-card-hover);border-color:#ffffff1f}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.card-title{font-size:1rem;font-weight:600}.card-subtitle{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.btn{cursor:pointer;border:none;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary{background:var(--gradient);color:#fff}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-secondary{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)}.btn-secondary:hover{background:var(--bg-card-hover)}.btn-icon{border-radius:.5rem;width:2.5rem;height:2rem;padding:0}.btn-success{background:var(--success);color:#fff}.btn-warning{background:var(--warning);color:#fff}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0}.btn-danger:hover{background:var(--danger);color:#fff}.form-group{margin-bottom:1rem}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.375rem;font-size:.75rem;font-weight:500;display:block}.form-input{background:var(--bg-secondary);border:1px solid var(--border);width:100%;color:var(--text-primary);border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem;transition:border-color .2s}.form-input:focus{border-color:var(--accent);outline:none}.form-input::placeholder{color:var(--text-muted)}select.form-input{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 1.5rem center;background-repeat:no-repeat;padding-right:3rem}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-input-invalid{border-color:var(--danger)!important}.form-hint{color:var(--text-muted);margin-top:.375rem;font-size:.75rem}.form-hint-error{color:var(--danger)}.badge{border-radius:9999px;align-items:center;gap:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:500;display:inline-flex}.badge-success{color:var(--success);background:#22c55e26}.badge-warning{color:var(--warning);background:#f59e0b26}.badge-muted{background:var(--bg-card);color:var(--text-muted);white-space:nowrap}.grid{gap:1rem;display:grid}.grid-2{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.page-title{font-size:1.5rem;font-weight:700}.schedule-day{margin-bottom:2rem}.schedule-date{color:var(--text-secondary);border-bottom:1px solid var(--border);margin-bottom:.75rem;padding-bottom:.5rem;scroll-margin-top:60px;font-size:.875rem;font-weight:600}.schedule-date.today{color:var(--accent);font-weight:800}.lesson-time{color:var(--accent);font-size:.875rem;font-weight:600}.lesson-student{font-weight:600}.lesson-subject{color:var(--text-secondary);font-size:.875rem}.lesson-price{color:var(--text-muted);font-size:.875rem}.lesson-actions{gap:.5rem;margin-top:auto;padding-top:.75rem;display:flex}.card .lesson-actions{flex-wrap:nowrap}.card .lesson-actions .btn{text-overflow:ellipsis;white-space:nowrap;flex-shrink:1;min-width:0;overflow:hidden}.lesson-status{flex-wrap:wrap;gap:.5rem;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:1rem;flex-direction:column;width:100%;max-width:480px;max-height:calc(100vh - 2rem);display:flex}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-title{font-size:1.125rem;font-weight:600}.modal-body{flex:1;padding:1rem 1.25rem;overflow-y:auto}.modal-footer{border-top:1px solid var(--border);flex-shrink:0;justify-content:flex-end;gap:.75rem;padding:.75rem 1.25rem;display:flex}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-state-icon{margin-bottom:1rem;font-size:3rem}.stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:.75rem;padding:1rem}.stat-value{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.stat-label{color:var(--text-muted);margin-top:.25rem;font-size:.75rem}.schedule-mobile-header,.schedule-week-nav{display:none}.schedule-week-nav-inline{justify-content:center;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.5rem 0;display:flex}.schedule-date-range{text-align:center;color:var(--text-primary);background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;justify-content:center;align-items:center;min-width:110px;padding:.375rem 1.25rem;font-size:1rem;font-weight:600;display:inline-flex}.month-nav-arrow-btn,.schedule-nav-arrow-btn{border-radius:.5rem;width:3rem;height:auto;padding:.625rem .75rem}.mobile-only{display:none!important}.desktop-only{display:flex}.week-strip,.month-days-strip{display:none}.month-days-strip::-webkit-scrollbar{display:none}.month-days-strip-day{border:1px solid var(--border);background:var(--bg-card);cursor:pointer;border-radius:.5rem;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;min-width:42px;padding:.5rem .375rem;transition:all .2s;display:flex}.month-days-strip-day:hover{background:var(--bg-card-hover);border-color:var(--accent)}.month-days-strip-day.selected{background:var(--accent);border-color:var(--accent);color:#fff}.month-days-strip-day.selected .month-days-strip-day-name,.month-days-strip-day.selected .month-days-strip-day-number{color:#fff}.month-days-strip-day.today:not(.selected){border-color:var(--accent);background:0 0}.month-days-strip-day.today:not(.selected) .month-days-strip-day-name,.month-days-strip-day.today:not(.selected) .month-days-strip-day-number{color:var(--accent)}.month-days-strip-day-name{color:var(--text-muted);text-transform:uppercase;font-size:.625rem;font-weight:500}.month-days-strip-day-number{color:var(--text-primary);font-size:1rem;font-weight:600}.month-days-strip-day.selected .month-days-strip-day-name{color:#fffc}.schedule-day,.schedule-date{scroll-margin-top:80px}@media (max-width:640px){.form-row{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:stretch}.nav-container{flex-direction:column;gap:.75rem}.nav-links{justify-content:center;width:100%}.schedule-desktop-header{display:none!important}.schedule-mobile-header{z-index:50;background:var(--bg-primary);border-bottom:1px solid var(--border);flex-direction:row;justify-content:space-between;align-items:center;gap:.5rem;margin:-1rem -1rem 1rem;padding:.75rem 1rem;display:flex;position:sticky;top:0}.schedule-mobile-header .page-title{margin:0}.schedule-mobile-header .btn-primary{white-space:nowrap;min-height:32px;padding:.375rem .625rem;font-size:.75rem}.schedule-week-nav-inline{background:0 0;justify-content:center;align-items:center;gap:.75rem;margin-bottom:.5rem;padding:.25rem 0;display:flex}.month-days-strip{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;z-index:45;background:var(--bg-primary);border-bottom:1px solid var(--border);gap:.25rem;margin-left:-1rem;margin-right:-1rem;padding:.5rem;position:sticky;top:52px;overflow-x:auto;display:flex!important}.month-days-strip::-webkit-scrollbar{display:none}.month-days-strip-day{flex-shrink:0;min-width:calc(14.2857vw - .357143rem);max-width:calc(14.2857vw - .357143rem);padding:.375rem .125rem}.schedule-nav-arrow-btn{width:3rem!important;min-width:3rem!important;font-size:1rem!important}.schedule-date-range{text-align:center;color:var(--text-primary);font-size:1rem;font-weight:600}.schedule-date{background:var(--bg-primary);z-index:40;border-radius:.5rem;position:sticky;top:52px;color:var(--text-primary)!important;border:none!important;margin-bottom:.75rem!important;padding:.75rem .5rem!important;font-size:1rem!important;font-weight:700!important}.schedule-day{scroll-margin-top:120px}.schedule-date.today{-webkit-text-fill-color:var(--accent);background:var(--bg-primary)!important;color:var(--accent)!important;font-weight:800!important}.share-page .schedule-date{background:0 0;position:static}.schedule-list .card{border-left:4px solid var(--border)!important;padding:.75rem .875rem .75rem 1rem!important}.schedule-list .card.lesson-completed{border-left-color:var(--success)!important}.schedule-list .card.lesson-cancelled{border-left-color:var(--danger)!important}.schedule-list .card:not(.lesson-completed):not(.lesson-cancelled){border-left-color:var(--accent)!important}.schedule-list .card-header{margin-bottom:.25rem!important}.schedule-list .lesson-time{font-size:1rem!important;font-weight:700!important}.schedule-list .lesson-student{margin-top:.125rem!important;font-size:1rem!important;font-weight:600!important}.schedule-list .lesson-status{display:none!important}.schedule-list .lesson-actions{gap:.375rem!important;padding-top:.5rem!important}.schedule-list .lesson-actions .btn-icon{width:2rem!important;height:2rem!important;padding:0!important;font-size:.75rem!important}.modal-overlay{touch-action:none;background:#000c;align-items:flex-end;padding:0;overflow:hidden}.modal{border-radius:1.25rem 1.25rem 0 0;flex-direction:column;max-height:90dvh;display:flex;overflow:hidden;width:100%!important;max-width:100%!important}.modal form{flex-direction:column!important;flex:1!important;min-height:0!important;display:flex!important;overflow:hidden!important}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:1rem 1.5rem}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem 1.5rem 2rem;overflow-y:auto}.modal-body .form-group{min-width:0;margin-bottom:1rem}.modal-body .form-input,.modal-body select.form-input,.modal-body textarea.form-input{box-sizing:border-box;border-radius:.75rem;width:100%;min-width:0;padding:.875rem 1rem;font-size:16px}.modal-body select.form-input{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='%23666' viewBox='0 0 16 16'%3E%3Cpath d='M8 11L3 6h10z'/%3E%3C/svg%3E");background-position:right 1.5rem center;background-repeat:no-repeat;padding-right:3rem}.modal-body .form-row{grid-template-columns:1fr 1fr!important;gap:.5rem!important;display:grid!important}.modal-body .form-row .form-group{min-width:0;margin-bottom:0;overflow:hidden}.modal-body .form-row .form-input{text-align:left;width:100%;min-width:0;padding:.75rem .5rem;font-size:16px;line-height:normal}.modal-body input[type=date],.modal-body input[type=time]{appearance:none;background-color:var(--bg-secondary);background-position:right .5rem center;background-repeat:no-repeat;background-size:16px 16px;padding-right:2rem}.modal-body input[type=date]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23bbb' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 0a.5.5 0 0 1 .5.5V1h8V.5a.5.5 0 0 1 1 0V1h1a2 2 0 0 1 2 2v11a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V3a2 2 0 0 1 2-2h1V.5a.5.5 0 0 1 .5-.5zM1 4v10a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V4H1z'/%3E%3C/svg%3E")}.modal-body input[type=time]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23bbb' viewBox='0 0 16 16'%3E%3Cpath d='M8 3.5a.5.5 0 0 0-1 0V9a.5.5 0 0 0 .252.434l3.5 2a.5.5 0 0 0 .496-.868L8 8.71V3.5z'/%3E%3Cpath d='M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm7-8A7 7 0 1 1 1 8a7 7 0 0 1 14 0z'/%3E%3C/svg%3E")}.modal-body input[type=date]::-webkit-date-and-time-value{text-align:left;margin-top:-1px}.modal-body input[type=time]::-webkit-date-and-time-value{text-align:left;margin-top:-1px}.mobile-submit-container{padding-bottom:max(.5rem,env(safe-area-inset-bottom));gap:.75rem;margin-top:1.5rem;display:flex}.mobile-submit-container .btn{border-radius:.75rem;padding:1rem;font-size:1rem}.modal-footer.desktop-only{display:none!important}.mobile-only{display:flex!important}.desktop-only,.hide-on-mobile{display:none!important}.swipe-container{will-change:transform;touch-action:pan-y;-webkit-user-select:none;user-select:none;overflow:hidden}.month-calendar{overflow:hidden}.recurring-block{padding:1.25rem!important}.recurring-block label{gap:1rem!important;min-height:48px!important}.recurring-block input[type=checkbox]{width:24px!important;height:24px!important}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.card{animation:.3s ease-out fadeIn}.search-input{max-width:300px}.lesson-completed{background:#22c55e0d;border-color:#22c55e80}.lesson-completed:hover{border-color:var(--success);background:#22c55e1a}.lesson-cancelled{opacity:.6;background:#9ca3af0d;border-color:#9ca3af33}.lesson-cancelled:hover{opacity:.7;background:#9ca3af1a;border-color:#9ca3af66}.lesson-cancelled .lesson-student,.lesson-cancelled .lesson-time,.lesson-cancelled .lesson-price{color:var(--text-muted);text-decoration:line-through}.badge-cancelled{color:#9ca3af;background:#9ca3af26}.month-calendar{flex-direction:column;gap:1rem;display:flex}.month-nav{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.month-nav.month-nav-centered{justify-content:center;gap:.5rem}.month-nav-buttons{align-items:center;gap:.5rem;display:flex}.month-nav-title{text-transform:capitalize;font-size:1.125rem;font-weight:600}.month-nav-title-btn{text-align:center;min-width:160px;font-size:1rem;font-weight:600}.calendar-filter{justify-content:center;align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.month-nav.month-nav-with-filter{grid-template-columns:1fr auto 1fr;align-items:center;gap:.5rem;width:100%;display:grid}.month-nav.month-nav-with-filter .month-nav-center{justify-content:center;align-items:center;gap:.5rem;display:flex}.month-nav.month-nav-with-filter .calendar-student-filter{justify-self:end}.calendar-student-filter{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;border-radius:.5rem;min-width:140px;max-width:200px;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;overflow:hidden}.calendar-student-filter:hover{border-color:var(--accent)}.calendar-student-filter:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #8b5cf633}.calendar-student-filter option{background:var(--bg-secondary);color:var(--text-primary)}.month-header{grid-template-columns:repeat(7,1fr);gap:.25rem;margin-bottom:.25rem;display:grid}.month-header-day{text-align:center;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;padding:.5rem;font-size:.75rem;font-weight:600}.month-grid{grid-template-columns:repeat(7,1fr);gap:.25rem;display:grid}.day-cell{background:var(--bg-card);border:1px solid var(--border);border-radius:.5rem;flex-direction:column;min-height:100px;display:flex;overflow:hidden}.day-cell.empty{background:0 0;border-color:#0000}.day-cell.is-today{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.day-cell.drag-over{background:var(--bg-card-hover);box-shadow:inset 0 0 0 2px var(--accent)}.day-cell-header{background:var(--bg-secondary);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.375rem .5rem;display:flex}.day-cell-date{font-size:.875rem;font-weight:600}.day-cell.is-today .day-cell-date{color:var(--accent)}.day-cell-add{cursor:pointer;border:1px solid var(--border);width:1.25rem;height:1.25rem;color:var(--text-muted);background:0 0;border-radius:.25rem;justify-content:center;align-items:center;font-size:.875rem;transition:all .2s;display:flex}.day-cell-add:hover{background:var(--accent);border-color:var(--accent);color:#fff}.day-cell-lessons{flex-direction:column;flex:1;gap:.25rem;padding:.25rem;display:flex;overflow:hidden}.day-cell-lessons.mode-full{gap:.25rem}.day-cell-lessons.mode-medium,.day-cell-lessons.mode-compact{gap:.125rem}.month-lesson.full{background:var(--bg-card-hover);border:1px solid var(--border);cursor:pointer;border-radius:.375rem;padding:.375rem;font-size:.75rem;transition:all .2s}.month-lesson.full .month-lesson-time{color:var(--accent);font-size:.7rem;font-weight:700;line-height:1.2}.month-lesson.full .month-lesson-student{white-space:nowrap;text-overflow:ellipsis;font-size:.7rem;font-weight:500;line-height:1.2;overflow:hidden}.month-lesson.medium{background:var(--bg-card-hover);border:1px solid var(--border);cursor:pointer;border-radius:.25rem;padding:.25rem;transition:all .2s}.month-lesson.medium .month-lesson-header-row{align-items:center;gap:.25rem;display:flex}.month-lesson.medium .month-lesson-time{color:var(--accent);font-size:.6rem;font-weight:700;line-height:1}.month-lesson.medium .month-lesson-student{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.6rem;font-weight:500;line-height:1;overflow:hidden}.month-lesson.medium .month-lesson-actions-inline{gap:.125rem;margin-top:.125rem;display:flex}.month-lesson.medium .btn-mini{width:1rem;height:1rem;font-size:.55rem}.month-lesson{cursor:pointer;transition:all .2s}.month-lesson.compact{background:var(--bg-card-hover);border:1px solid var(--border);cursor:pointer;border-radius:.25rem;padding:.125rem .25rem;transition:all .2s}.month-lesson.compact .month-lesson-header-row{align-items:center;gap:.25rem;display:flex}.month-lesson.compact .month-lesson-time{color:var(--accent);font-size:.55rem;font-weight:700;line-height:1}.month-lesson.compact .month-lesson-student{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.55rem;font-weight:500;line-height:1;overflow:hidden}.month-lesson.compact .month-lesson-badges .mini-badge{width:4px;height:4px}.month-lesson:hover{border-color:var(--accent);transform:translateY(-1px)}.month-lesson.completed{background:#22c55e0d;border-color:#22c55e80}.month-lesson.cancelled{opacity:.6;background:#9ca3af0d;border-style:dashed;border-color:#9ca3af33}.month-lesson.cancelled .month-lesson-student,.month-lesson.cancelled .month-lesson-time{color:var(--text-muted);text-decoration:line-through}.month-lesson.dragging{opacity:.5;cursor:grabbing}.month-lesson-header-row{align-items:center;gap:.25rem;width:100%;display:flex}.month-lesson-time{color:var(--accent);font-size:.65rem;font-weight:700;line-height:1}.month-lesson-student{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:.65rem;font-weight:500;line-height:1;overflow:hidden}.month-lesson-badges{gap:.125rem;display:flex}.day-cell.lessons-1 .month-lesson-badges,.day-cell.lessons-2 .month-lesson-badges{display:none}.mini-badge{border-radius:50%;width:5px;height:5px}.mini-badge.done{background:var(--success)}.mini-badge.pending{background:var(--text-muted)}.mini-badge.paid{background:var(--success)}.mini-badge.unpaid{background:var(--text-muted)}.month-lesson-actions{border-top:1px solid var(--border);justify-content:space-between;gap:.25rem;margin-top:.375rem;padding-top:.375rem;display:flex}.month-lesson.compact .month-lesson-actions{border-top:1px dashed #ffffff0d;gap:.125rem;margin-top:.125rem;padding-top:.125rem}.btn-mini{cursor:pointer;background:var(--bg-card);width:1.25rem;height:1.25rem;color:var(--text-secondary);border:1px solid #0000;border-radius:.125rem;justify-content:center;align-items:center;padding:0;font-size:.65rem;transition:all .2s;display:flex}.btn-mini:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border)}.btn-mini.btn-success{color:var(--success);background:#22c55e1a;border-color:#22c55e33}.btn-mini.btn-success:hover{background:var(--success);color:#fff}.btn-mini.btn-warning{color:var(--warning);background:#f59e0b1a;border-color:#f59e0b33}.btn-mini.btn-warning:hover{background:var(--warning);color:#fff}.btn-mini.btn-danger{color:var(--danger);border-color:#ef444433}.btn-mini.btn-danger:hover{background:var(--danger);color:#fff}.mini-badge.cancelled{background:#9ca3af}.more-lessons-btn{background:var(--bg-card);border:1px dashed var(--border);color:var(--text-muted);cursor:pointer;text-align:center;border-radius:.25rem;padding:.125rem .25rem;font-size:.6rem;font-weight:600;transition:all .2s}.more-lessons-btn:hover{background:var(--bg-card-hover);border-color:var(--accent);color:var(--accent)}@media (max-width:900px){.month-grid{grid-template-columns:repeat(7,1fr)}.day-cell{min-height:80px}.day-cell-lessons{max-height:100px}.month-lesson-student{font-size:.65rem}}@media (max-width:640px){.month-grid{grid-template-columns:repeat(7,1fr)}.day-cell{min-height:60px}.day-cell-header{padding:.25rem}.day-cell-date{font-size:.75rem}.day-cell-add{width:1rem;height:1rem;font-size:.75rem}.day-cell-lessons{max-height:80px;padding:.125rem}.month-lesson{padding:.25rem}.month-lesson-time,.month-lesson-student{font-size:.6rem}.month-header-day{padding:.25rem;font-size:.6rem}.month-nav.month-nav-with-filter{flex-wrap:nowrap;justify-content:center;align-items:center;gap:.25rem;display:flex}.month-nav.month-nav-with-filter>div:first-child{display:none}.month-nav.month-nav-with-filter .month-nav-center{flex-shrink:0;gap:.25rem;display:flex}.month-nav-arrow-btn{width:2rem!important;min-width:2rem!important;padding:.375rem!important;font-size:.875rem!important}.month-nav-title-btn{min-width:auto!important;padding:.375rem .5rem!important;font-size:.75rem!important}.calendar-student-filter{min-width:90px!important;max-width:110px!important;padding:.375rem .5rem!important;font-size:.75rem!important}}.auth-page{background:var(--bg-primary);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.auth-container{background:var(--bg-secondary);border:1px solid var(--border);border-radius:1.5rem;width:100%;max-width:400px;padding:2rem;box-shadow:0 25px 50px -12px #00000040}.auth-header{text-align:center;margin-bottom:2rem}.auth-logo{background:var(--gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.5rem;font-size:1.75rem;font-weight:700}.auth-subtitle{color:var(--text-secondary);font-size:.875rem}.auth-form{flex-direction:column;gap:1rem;display:flex}.auth-error{color:var(--danger);text-align:center;background:#ef44441a;border:1px solid #ef44444d;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem}.auth-test-notice{color:var(--success);text-align:center;background:#22c55e1a;border:1px solid #22c55e4d;border-radius:.5rem;padding:.75rem 1rem;font-size:.875rem}.code-input{text-align:center;letter-spacing:.5rem;font-weight:600;font-size:1.5rem!important}.auth-btn{cursor:pointer;border:none;border-radius:.75rem;justify-content:center;align-items:center;gap:.75rem;width:100%;margin-top:.5rem;padding:.875rem;font-size:1rem;font-weight:500;transition:all .2s;display:flex}.auth-btn svg{flex-shrink:0}.auth-btn-yandex{color:#fff;background:#fc3f1d}.auth-btn-yandex:hover{background:#e53512}.auth-btn-vk{color:#fff;background:#07f}.auth-btn-vk:hover{background:#06d}.auth-btn-apple{color:#fff;background:#000}.auth-btn-apple:hover{background:#333}[data-theme=light] .auth-btn-apple,[data-theme=pink] .auth-btn-apple{color:#fff;background:#000}.auth-btn-phone{background:var(--gradient);color:#fff;text-decoration:none}.auth-btn-phone:hover{opacity:.9}.auth-divider{text-align:center;color:var(--text-muted);align-items:center;margin:.5rem 0;font-size:.75rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";border-bottom:1px solid var(--border);flex:1}.auth-divider span{padding:0 .75rem}.auth-footer{text-align:center;color:var(--text-secondary);margin-top:1.5rem;font-size:.875rem}.auth-link{color:var(--accent);font-weight:500;text-decoration:none}.auth-link:hover{text-decoration:underline}.telegram-instructions{text-align:center;flex-direction:column;align-items:center;gap:1.5rem;padding:1rem 0;display:flex}.telegram-icon{color:var(--accent);animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.telegram-instructions h3{color:var(--text-primary);margin:0;font-size:1.125rem;font-weight:600}.instructions-list{text-align:left;width:100%;max-width:320px;color:var(--text-secondary);margin:0;padding-left:1.5rem;font-size:.875rem;line-height:1.8}.instructions-list li{margin-bottom:.5rem}.instructions-list strong{color:var(--text-primary);font-weight:600}.telegram-btn{color:#fff!important;background:#08c!important}.telegram-btn:hover{background:#069!important}.telegram-hint{color:var(--text-muted);background:var(--bg-card);border-radius:.5rem;justify-content:center;align-items:center;margin:-.5rem 0 .5rem;padding:.5rem;font-size:.75rem;display:flex}.attempts-warning{color:var(--warning);background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;margin-top:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;display:flex}.auth-error-blocked{font-weight:600;background:#ef444426!important;border-color:#ef444466!important}.telegram-login-wrapper{justify-content:center;align-items:center;min-height:48px;margin:.5rem 0;display:flex}.telegram-login-container{justify-content:center;align-items:center;display:flex}.telegram-login-container iframe{border-radius:8px!important}.profile-page{max-width:600px;margin:0 auto}.profile-card{background:var(--bg-card);border:1px solid var(--border);border-radius:1rem;margin-bottom:1.5rem;padding:1.5rem}.profile-card-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:1rem;font-size:.75rem;font-weight:600}.profile-info{flex-direction:column;gap:.75rem;display:flex}.profile-info-item{justify-content:space-between;align-items:center;display:flex}.profile-info-label{color:var(--text-secondary);font-size:.875rem}.profile-info-value{font-weight:500}.theme-options{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.theme-option{background:var(--bg-secondary);border:2px solid var(--border);cursor:pointer;border-radius:.75rem;flex-direction:column;align-items:center;gap:.5rem;padding:1rem;transition:all .2s;display:flex}.theme-option:hover{border-color:var(--accent)}.theme-option.active{border-color:var(--accent);background:#6366f11a}.theme-preview{border-radius:50%;justify-content:center;align-items:center;width:2.5rem;height:2.5rem;font-size:1.25rem;display:flex}.theme-preview.dark{background:linear-gradient(135deg,#0a0a0f,#12121a);border:1px solid #ffffff1a}.theme-preview.light{background:linear-gradient(135deg,#f5f7fa,#fff);border:1px solid #0000001a}.theme-preview.pink{background:linear-gradient(135deg,#fff5f8,#fce7f3);border:1px solid #ec489933}.theme-label{color:var(--text-secondary);font-size:.75rem;font-weight:500}.nav-user{align-items:center;gap:.5rem;display:flex}.nav-user-name{color:var(--text-secondary);font-size:.875rem}.nav-user-avatar{background:var(--gradient);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:2rem;height:2rem;font-size:.75rem;font-weight:600;display:flex}@media (max-width:480px){.main{padding:.75rem}.nav{padding:.75rem;position:sticky;top:0}.nav-container{gap:.5rem}.nav-links{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;justify-content:flex-start;gap:.5rem;width:100%;padding-bottom:4px;overflow-x:auto}.nav-links::-webkit-scrollbar{display:none}.nav-link{white-space:nowrap;background:var(--bg-card);border:1px solid var(--border);flex-shrink:0;padding:.5rem .75rem;font-size:.8rem}.nav-link.active{background:var(--gradient);color:#fff;border-color:#0000}.page-header{flex-flow:wrap;justify-content:space-between;align-items:center;gap:.375rem;margin-bottom:.75rem}.page-title{text-align:left;flex:auto;order:0;font-size:1rem}.page-header>.btn-primary,.page-header>button.btn-primary{white-space:nowrap;min-height:32px;padding:.375rem .625rem;font-size:.75rem;flex:none!important;order:0!important;width:auto!important;margin:0!important}.page-header>div[style*="display: flex"]{order:1;justify-content:center;align-items:center;width:100%;margin-top:.25rem;flex-wrap:nowrap!important;gap:.25rem!important}.page-header>div[style*="display: flex"] span{width:auto!important;margin:0!important;font-size:.75rem!important}.page-header>div[style*="display: flex"] .btn{width:auto;min-width:32px;min-height:32px;padding:.25rem .5rem;font-size:.7rem}.page-header>div[style*="display: flex"] .btn-icon{width:28px;height:28px;min-height:28px;padding:0}.card{border-radius:.75rem;padding:.875rem}.card-header{flex-direction:row;align-items:flex-start;gap:.5rem}.lesson-status{gap:.375rem;margin-top:.5rem}.badge{padding:.25rem .5rem;font-size:.75rem}.card .lesson-actions .btn-secondary,.card .lesson-actions .btn-danger{min-width:2.75rem;padding:.625rem .875rem}.lesson-actions{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.lesson-actions .btn{flex:none;justify-content:center;align-items:center;min-width:40px;height:40px;padding:.5rem;display:flex}.lesson-actions .btn:first-child{flex:1;min-width:100px}.lesson-price{color:var(--accent);font-size:.875rem;font-weight:600}.btn{min-height:40px;padding:.5rem .875rem;font-size:.875rem}.btn-icon{width:40px;height:40px}.stats{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;gap:.5rem;padding-bottom:.25rem;display:flex;overflow-x:auto}.stats::-webkit-scrollbar{display:none}.stat-card{text-align:center;flex:none;min-width:100px;padding:.75rem}.stat-card:first-child{margin-left:auto}.stat-card:last-child{margin-right:auto}.stat-value{margin-bottom:.125rem;font-size:1.125rem}.stat-label{margin-top:0;font-size:.65rem}.month-grid{gap:2px}.day-cell{min-height:65px}.month-header-day{padding:.25rem;font-size:.65rem}.month-lesson .month-lesson-badges,.month-lesson .month-lesson-actions,.month-lesson .month-lesson-actions-inline{display:none!important}.day-cell.lessons-1 .month-lesson .month-lesson-header-row,.day-cell.lessons-2 .month-lesson .month-lesson-header-row{flex-direction:column;align-items:flex-start;gap:.05rem}.day-cell.lessons-1 .month-lesson .month-lesson-student,.day-cell.lessons-2 .month-lesson .month-lesson-student{max-width:100%;font-size:.5rem}.day-cell.lessons-3 .month-lesson .month-lesson-student,.day-cell.lessons-4 .month-lesson .month-lesson-student{display:none!important}.month-lesson.full,.month-lesson.medium,.month-lesson.compact{padding:.1rem .2rem}.month-lesson .month-lesson-time{font-size:.55rem;font-weight:600}.month-nav{gap:.5rem;margin-bottom:.5rem}.month-nav-title{text-align:center;order:-1;width:100%;margin-bottom:.25rem;font-size:1rem}.month-nav-buttons{justify-content:space-between;gap:.5rem;width:100%}.month-nav-buttons .btn{flex:0 auto;min-width:auto;padding:.5rem .75rem}.month-nav-buttons .btn:nth-child(2){flex:1}.modal-overlay{touch-action:none;background:#000c;align-items:flex-end;padding:0;overflow:hidden}.modal{border-radius:1.25rem 1.25rem 0 0;flex-direction:column;max-height:85dvh;animation:.3s ease-out slideUp;display:flex;overflow:hidden;width:100%!important;max-width:100%!important}.modal form{flex-direction:column!important;flex:1!important;min-height:0!important;display:flex!important;overflow:hidden!important}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border);flex-shrink:0;padding:1rem}.modal-title{font-size:1rem}.modal-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;flex:1;min-height:0;padding:1rem 1rem 1.5rem;overflow-y:auto}.modal-footer{padding:1rem;padding-bottom:max(1rem,env(safe-area-inset-bottom));background:var(--bg-secondary);border-top:1px solid var(--border);flex-shrink:0}.modal-footer .btn{padding:.75rem;font-size:.875rem}.form-row{grid-template-columns:1fr;gap:.75rem}.form-group{margin-bottom:.75rem}.form-input{box-sizing:border-box;width:100%;max-width:100%;padding:.75rem;font-size:1rem}.form-label{margin-bottom:.375rem;font-size:.75rem}.empty-state{padding:2rem 1rem}.empty-state-icon{font-size:3rem}}.btn-share-link{text-align:center;justify-content:center;min-width:150px}.mobile-nav{background:var(--bg-secondary);border-top:1px solid var(--border);padding:.5rem 1.5rem;padding-left:max(1.5rem,env(safe-area-inset-left));padding-right:max(1.5rem,env(safe-area-inset-right));padding-bottom:max(1rem,calc(env(safe-area-inset-bottom) + .5rem));z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:none;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{color:var(--accent);opacity:.7;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.25rem;padding:.25rem .5rem;text-decoration:none;transition:all .2s;display:flex}.mobile-nav-item:hover,.mobile-nav-item:active{opacity:1}.mobile-nav-icon{width:1.5rem;height:1.5rem;color:inherit}.mobile-nav-label{text-align:center;color:inherit;font-size:.625rem;font-weight:500;line-height:1.2}@media (max-width:640px){.nav-desktop{display:none}.mobile-nav{justify-content:space-around;align-items:center;display:flex}.main{padding-bottom:calc(4.5rem + env(safe-area-inset-bottom))}}
