input,textarea,select,[contenteditable=true],[contenteditable=""],[contenteditable],.word-item,.lesson-topic,.group-header,.public-vocabulary-container{user-select:text!important;-webkit-user-select:text!important;-moz-user-select:text!important;-ms-user-select:text!important}label[for]{cursor:pointer}button,a,[role=button],[onclick]{cursor:pointer!important}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.login-container{height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px;box-sizing:border-box;overflow:hidden}.login-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px;max-height:90vh;animation:slideUp .6s ease-out;box-sizing:border-box}@keyframes slideUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:24px}.login-header h1{color:#2d3748;font-size:2rem;font-weight:700;margin:0 0 8px}.login-header p{color:#718096;margin:0;font-size:1rem}.login-form{margin-bottom:20px}.form-group{margin-bottom:16px}.form-group label{display:block;color:#2d3748;font-weight:600;margin-bottom:8px;font-size:.875rem}.form-group input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:all .2s ease;box-sizing:border-box}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input:disabled{background-color:#f7fafc;cursor:not-allowed}.login-button{width:100%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:.5px}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #667eea4d}.login-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.error-message{background-color:#fed7d7;color:#c53030;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.875rem;border:1px solid #feb2b2}.login-footer{text-align:center;padding-top:16px;border-top:1px solid #e2e8f0;font-size:.8rem;color:#718096}.login-footer p{margin:4px 0}.login-footer strong{color:#2d3748}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100vh;background-color:#f5f5f5}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #3498db;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}.loading-container p{color:#666;font-size:16px;margin:0}.dashboard{min-height:100vh;background-color:#f7fafc;padding:0}.dashboard-page-header{background:#fff;padding:2rem;border-bottom:1px solid #e2e8f0;margin-bottom:2rem;box-shadow:0 1px 3px #0000000d}.dashboard-page-header h1{color:#2d3748;margin:0 0 .5rem;font-size:2rem;font-weight:700}.dashboard-page-header p{color:#718096;margin:0;font-size:1rem}.dashboard-content{padding:0 2rem 2rem}.dashboard-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem;margin-bottom:2rem}.dashboard-revenue-section{margin-bottom:2rem}.dashboard-revenue-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.dashboard-revenue-header h3{margin:0}.dashboard-revenue-year-nav{display:flex;align-items:center;gap:.5rem}.dashboard-revenue-year-label{font-size:1.125rem;font-weight:600;color:#2d3748;min-width:3.25rem;text-align:center}.dashboard-revenue-year-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;height:2.25rem;padding:0 .5rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;color:#4a5568;font-size:1rem;cursor:pointer}.dashboard-revenue-year-btn:hover:not(:disabled){background:#f7fafc;border-color:#cbd5e0;color:#2d3748}.dashboard-revenue-year-btn:disabled{opacity:.4;cursor:not-allowed}.dashboard-revenue-chart{height:320px;width:100%;margin-top:.75rem}.dashboard-card{background:#fff;padding:.75rem 1rem;border-radius:12px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0}.dashboard-card h3{color:#2d3748;margin:0 0 .25rem;font-size:.85rem;font-weight:600}.dashboard-card-clickable{cursor:pointer;transition:transform .15s,box-shadow .15s}.card-stats{display:flex;flex-direction:column;align-items:center;text-align:center}.stat-number{font-size:1.5rem;font-weight:700;color:#667eea;line-height:1}.stat-number-alert{color:#e53e3e}.dashboard-card-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 12px #0000001a}.stat-label{font-size:.75rem;color:#a0aec0;text-transform:uppercase;letter-spacing:.5px;margin-top:.25rem}.weekly-calendar{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;padding:1.5rem;margin-bottom:2.5rem}.weekly-calendar-title{color:#2d3748;margin:0 0 1.25rem;font-size:1.25rem;font-weight:600}.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.week-day-column{border-right:1px solid #e2e8f0;min-height:140px;display:flex;flex-direction:column}.week-day-column:last-child{border-right:none}.week-day-column.today{background:#f0f4ff}.week-day-header{display:flex;flex-direction:column;align-items:center;padding:.75rem .5rem;border-bottom:1px solid #e2e8f0;background:#f7fafc}.week-day-column.today .week-day-header{background:#ebf0ff}.week-day-name{font-size:.75rem;font-weight:600;color:#718096;text-transform:uppercase;letter-spacing:.5px}.week-day-date{font-size:.8rem;color:#a0aec0;margin-top:2px}.week-day-date.today-date{background:#667eea;color:#fff;border-radius:12px;padding:1px 8px;font-weight:600}.week-day-lessons{flex:1;padding:.5rem .35rem;display:flex;flex-direction:column;gap:.35rem}.no-lessons{color:#cbd5e0;text-align:center;padding-top:1rem;font-size:1.1rem}.week-day-column.vacation{background:#fefce8;opacity:.75}.week-day-column.vacation.illness{background:#fee2e2}.vacation-label{text-align:center;padding-top:1rem;font-size:.85rem;color:#92400e;font-weight:500}.week-day-column.vacation.illness .vacation-label{color:#991b1b}.lesson-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .25rem;border-radius:6px;font-size:.75rem;border-left:3px solid #667eea;background:#f7fafc;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;min-height:2.6rem;box-sizing:border-box}.lesson-chip:hover{background:#edf2f7}.lesson-chip .lesson-time{font-weight:700;color:#2d3748;font-size:.8rem}.lesson-chip .lesson-group{color:#718096;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.consultation-chip{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.4rem .25rem;border-radius:6px;font-size:.75rem;border-left:3px solid #d97706;background:#fffbeb;cursor:pointer;transition:background .15s ease;min-height:2.6rem;box-sizing:border-box}.consultation-chip:hover{background:#fef3c7}.consultation-chip .lesson-time{font-weight:700;color:#92400e;font-size:.8rem}.consultation-chip .lesson-group{color:#78350f;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;text-align:center}.lesson-chip.placeholder,.consultation-chip.placeholder{visibility:hidden;pointer-events:none;min-height:2.6rem}.lesson-chip.exists{background:#f0fff4;border-left-width:4px}.lesson-chip.exists .lesson-time{color:#276749}.lesson-chip.exists .lesson-group:after{content:" ✓";color:#48bb78;font-weight:700}.lesson-chip.exists:hover{background:#e6ffed}.lesson-chip.level-a0{border-left-color:#38b2ac}.lesson-chip.level-a1{border-left-color:#48bb78}.lesson-chip.level-a2{border-left-color:#68d391}.lesson-chip.level-b1{border-left-color:#667eea}.lesson-chip.level-b2{border-left-color:#805ad5}.lesson-chip.level-c1{border-left-color:#d53f8c}.lesson-chip.level-c2{border-left-color:#e53e3e}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:1rem;padding:1rem}.dashboard-content{padding:1rem}.dashboard-grid{grid-template-columns:repeat(2,1fr)}.week-grid{grid-template-columns:1fr}.week-day-column{border-right:none;border-bottom:1px solid #e2e8f0;min-height:auto}.week-day-column:last-child{border-bottom:none}.week-day-header{flex-direction:row;gap:.5rem}.week-day-lessons{flex-direction:row;flex-wrap:wrap}}.student-vacations-week{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000000d;border:1px solid #e2e8f0;padding:1.5rem;margin-top:1.5rem}.vacation-list{display:flex;flex-direction:column;gap:.5rem}.vacation-row{display:flex;align-items:center;gap:1rem;padding:.6rem .75rem;border-radius:6px;background:#f8fafc;border:1px solid #edf2f7}.vacation-student{font-weight:600;color:#2d3748;min-width:200px}.vacation-period{color:#718096;font-size:.9rem}.vacation-type-tag{font-size:.75rem;font-weight:500;padding:2px 8px;border-radius:4px;background:#ebf8ff;color:#2b6cb0}.vacation-type-tag.illness{background:#fff5f5;color:#c53030}.vacation-edit-btn{margin-left:auto;background:none;border:none;cursor:pointer;font-size:1rem;color:#a0aec0;padding:2px 6px;border-radius:4px;transition:color .15s,background .15s}.vacation-edit-btn:hover{color:#4a5568;background:#edf2f7}.students-container{max-width:1200px;margin:0 auto;padding:2rem}.students-filters{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem}.filter-row{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}.search-group{display:flex;gap:.5rem;flex:1;min-width:300px}.search-input{flex:1;padding:12px 16px;border:2px solid #e2e8f0;border-radius:6px;font-size:14px;height:44px;transition:all .2s ease;background:#fff;box-sizing:border-box}.search-input::placeholder{color:#9ca3af;opacity:1}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.filter-group{display:flex;gap:.5rem;align-items:center}.filter-select{padding:12px 16px;border:2px solid #e2e8f0;border-radius:6px;font-size:14px;background:#fff;min-width:150px;height:44px;transition:all .2s ease;box-sizing:border-box}.filter-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.results-summary{margin-bottom:1rem;color:#6b7280;font-size:.875rem}.students-table-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow-x:auto;margin-bottom:1.5rem}.students-table{width:100%;border-collapse:collapse;table-layout:auto;min-width:700px;display:table}.students-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.students-table th,.students-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle;word-wrap:break-word;overflow-wrap:break-word;font-size:.875rem}.students-table td{font-weight:400}.students-table th:nth-child(1),.students-table td:nth-child(1){width:20%}.students-table th:nth-child(2),.students-table td:nth-child(2){width:7%}.students-table th:nth-child(3),.students-table td:nth-child(3){width:18%}.students-table th:nth-child(4),.students-table td:nth-child(4){width:14%}.students-table th:nth-child(5),.students-table td:nth-child(5){width:12%}.students-table th:nth-child(6),.students-table td:nth-child(6){width:14%}.students-table th:nth-child(7),.students-table td:nth-child(7){width:12%}.lessons-table .students-table th:nth-child(1),.lessons-table .students-table td:nth-child(1){width:8%}.lessons-table .students-table th:nth-child(2),.lessons-table .students-table td:nth-child(2){width:20%}.lessons-table .students-table th:nth-child(3),.lessons-table .students-table td:nth-child(3){width:15%}.lessons-table .students-table th:nth-child(4),.lessons-table .students-table td:nth-child(4){width:12%}.lessons-table .students-table th:nth-child(5),.lessons-table .students-table td:nth-child(5){width:15%}.lessons-table .students-table th:nth-child(6),.lessons-table .students-table td:nth-child(6){width:12%}.lessons-table .students-table th:nth-child(7),.lessons-table .students-table td:nth-child(7){width:15%}.vocabulary-table .students-table th:nth-child(1),.vocabulary-table .students-table td:nth-child(1){width:20%}.vocabulary-table .students-table th:nth-child(2),.vocabulary-table .students-table td:nth-child(2){width:8%}.vocabulary-table .students-table th:nth-child(3),.vocabulary-table .students-table td:nth-child(3){width:18%}.vocabulary-table .students-table th:nth-child(4),.vocabulary-table .students-table td:nth-child(4){width:15%}.vocabulary-table .students-table th:nth-child(5),.vocabulary-table .students-table td:nth-child(5){width:19%}.vocabulary-table .students-table th:nth-child(6),.vocabulary-table .students-table td:nth-child(6){width:15%}.students-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.students-table tbody tr:hover{background:transparent}.students-table tbody tr:last-child td{border-bottom:none}.contacts .contact-text{color:#374151;font-size:.875rem;word-break:break-word}.no-contacts{color:#9ca3af;font-style:italic;font-size:.875rem}.action-buttons{display:flex;gap:.25rem}.btn-icon{min-width:2.5rem;height:2rem;padding:0 .5rem;border:1px solid #e5e7eb;border-radius:4px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;font-size:.875rem;position:relative;background:#fff;color:#6b7280}.btn-icon:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a;border-color:#d1d5db;background:#f9fafb}.btn-icon:after{content:attr(data-tooltip);position:absolute;bottom:150%;left:50%;transform:translate(-50%);background:#1f2937;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;white-space:nowrap;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:1000}.btn-icon:before{content:"";position:absolute;bottom:135%;left:50%;transform:translate(-50%);border:4px solid transparent;border-top-color:#1f2937;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;pointer-events:none;z-index:1000}.btn-icon:hover:after,.btn-icon:hover:before{opacity:1;visibility:visible}.no-students{text-align:center;padding:3rem 2rem;color:#6b7280}.no-students p{margin:0 0 1rem;font-size:1.125rem}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem}.pagination-info{color:#6b7280;font-size:.875rem}.loading-overlay{position:relative;display:flex;justify-content:center;padding:1rem}@media(max-width:768px){.students-container{padding:1rem}.filter-row{flex-direction:column;align-items:stretch}.search-group{min-width:unset}.students-table-container{overflow-x:auto}.students-table{min-width:600px}.pagination{flex-direction:column;gap:.5rem}}@media(max-width:640px){.students-table th,.students-table td{padding:.75rem .5rem;font-size:.8rem}.students-table th{font-size:.75rem}.action-buttons{flex-direction:column}.students-table th:nth-child(1),.students-table td:nth-child(1){width:25%!important}.students-table th:nth-child(2),.students-table td:nth-child(2){width:10%!important}.students-table th:nth-child(3),.students-table td:nth-child(3){width:25%!important}.students-table th:nth-child(4),.students-table td:nth-child(4){width:15%!important}.students-table th:nth-child(5),.students-table td:nth-child(5){width:10%!important}.students-table th:nth-child(6),.students-table td:nth-child(6){width:15%!important}.lessons-table .students-table th:nth-child(1),.lessons-table .students-table td:nth-child(1){width:10%!important}.lessons-table .students-table th:nth-child(2),.lessons-table .students-table td:nth-child(2){width:20%!important}.lessons-table .students-table th:nth-child(3),.lessons-table .students-table td:nth-child(3){width:15%!important}.lessons-table .students-table th:nth-child(4),.lessons-table .students-table td:nth-child(4){width:15%!important}.lessons-table .students-table th:nth-child(5),.lessons-table .students-table td:nth-child(5){width:15%!important}.lessons-table .students-table th:nth-child(6),.lessons-table .students-table td:nth-child(6){width:10%!important}.lessons-table .students-table th:nth-child(7),.lessons-table .students-table td:nth-child(7){width:15%!important}.vocabulary-table .students-table th:nth-child(1),.vocabulary-table .students-table td:nth-child(1){width:25%!important}.vocabulary-table .students-table th:nth-child(2),.vocabulary-table .students-table td:nth-child(2){width:10%!important}.vocabulary-table .students-table th:nth-child(3),.vocabulary-table .students-table td:nth-child(3){width:20%!important}.vocabulary-table .students-table th:nth-child(4),.vocabulary-table .students-table td:nth-child(4){width:15%!important}.vocabulary-table .students-table th:nth-child(5),.vocabulary-table .students-table td:nth-child(5){width:15%!important}.vocabulary-table .students-table th:nth-child(6),.vocabulary-table .students-table td:nth-child(6){width:15%!important}.groups-table .students-table th:nth-child(1),.groups-table .students-table td:nth-child(1){width:20%!important}.groups-table .students-table th:nth-child(2),.groups-table .students-table td:nth-child(2){width:12%!important}.groups-table .students-table th:nth-child(3),.groups-table .students-table td:nth-child(3){width:18%!important}.groups-table .students-table th:nth-child(4),.groups-table .students-table td:nth-child(4){width:18%!important}.groups-table .students-table th:nth-child(5),.groups-table .students-table td:nth-child(5){width:17%!important}.groups-table .students-table th:nth-child(6),.groups-table .students-table td:nth-child(6){width:15%!important}}.inline-select{transition:background-color .2s ease;border-radius:4px}.inline-select:hover{background-color:#71b4ff6b!important}.stats-overview{margin-bottom:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1rem}.stat-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem;text-align:center}.stat-card h3{font-size:2rem;font-weight:700;color:#0056b3;margin:0 0 .5rem}.stat-card p{color:#6c757d;margin:0;font-size:.9rem}.filter-label{font-size:.8rem;color:#6c757d;margin-bottom:.25rem;display:block}.form-container{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:2rem;margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-label{display:block;margin-bottom:.5rem;font-weight:600;color:#374151;font-size:.875rem}.required{color:#dc2626}.form-input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s ease}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-input.disabled{background-color:#f9fafb;color:#6b7280;cursor:not-allowed}.form-input-readonly{padding:0;color:#374151;font-size:1rem;line-height:1.5;font-weight:500}.form-help{display:block;margin-top:.5rem;color:#6b7280;font-size:.875rem;line-height:1.4}.btn-link-small{background:none;border:none;color:#667eea;text-decoration:underline;cursor:pointer;font-size:.875rem;padding:0;margin-left:.25rem}.btn-link-small:hover{color:#5a67d8;text-decoration:none}.form-textarea{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;resize:vertical;font-family:inherit;transition:border-color .2s ease}.form-textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.vocabulary-section{border-top:1px solid #e5e7eb;padding-top:2rem;margin-top:2rem}.vocabulary-section h3{color:#1f2937;margin-bottom:1.5rem;font-size:1.25rem}.vocabulary-section h4{color:#374151;margin-bottom:1rem;font-size:1rem;font-weight:600}.existing-vocabulary{margin-bottom:2rem}.vocabulary-list{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.vocabulary-item{display:flex;align-items:center;gap:.5rem;background:#f3f4f6;padding:.5rem .75rem;border-radius:6px;border:1px solid #e5e7eb}.vocabulary-item .vocabulary-word{font-weight:400;color:#374151}.add-vocabulary{background:#f9fafb;padding:1.5rem;border-radius:6px;border:1px solid #e5e7eb}.btn-danger{background-color:#dc2626;color:#fff;border:none;padding:.25rem .5rem;border-radius:4px;cursor:pointer;font-size:.875rem;transition:background-color .2s ease}.btn-danger:hover{background-color:#b91c1c}.btn-danger:disabled{background-color:#9ca3af;cursor:not-allowed}.word-preview{margin-top:.75rem;padding:.75rem;background:#f0f9ff;border:1px solid #e0f2fe;border-radius:6px}.preview-label{display:block;color:#0369a1;font-weight:500;margin-bottom:.5rem;font-size:.8rem}.preview-words{display:flex;flex-wrap:wrap;gap:.375rem}.preview-word{background:#dbeafe;color:#1d4ed8;padding:.25rem .5rem;border-radius:4px;font-size:.875rem;font-weight:400;border:1px solid #bfdbfe}.groups-table .students-table th:nth-child(1),.groups-table .students-table td:nth-child(1){width:20%}.groups-table .students-table th:nth-child(2),.groups-table .students-table td:nth-child(2){width:10%}.groups-table .students-table th:nth-child(3),.groups-table .students-table td:nth-child(3){width:15%}.groups-table .students-table th:nth-child(4),.groups-table .students-table td:nth-child(4){width:15%}.groups-table .students-table th:nth-child(5),.groups-table .students-table td:nth-child(5){width:25%}.groups-table .students-table th:nth-child(6),.groups-table .students-table td:nth-child(6){width:15%}.badge{display:inline-block;padding:4px 8px;font-size:12px;font-weight:500;border-radius:4px;text-transform:capitalize}.badge-default{background:#e5e7eb;color:#6b7280}.badge-info{background:#dbeafe;color:#1e40af}.badge-success{background:#d1fae5;color:#065f46}.badge-danger{background:#fee2e2;color:#991b1b}.schedule-info{text-align:left;font-size:14px;color:#4a5568;line-height:1.4}.table-schedule-item{padding:.125rem 0;line-height:1.4;white-space:nowrap;background:none;border:none;box-shadow:none;border-radius:0;cursor:default;font-size:inherit;color:inherit;display:block}.courses-table .students-table th:nth-child(1),.courses-table .students-table td:nth-child(1){width:65%}.courses-table .students-table th:nth-child(2),.courses-table .students-table td:nth-child(2){width:20%}.courses-table .students-table th:nth-child(3),.courses-table .students-table td:nth-child(3){width:15%}.students-list{margin-top:1rem}.section-description{color:#6b7280;font-size:.875rem;margin-bottom:1rem;line-height:1.5}.students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:.75rem;margin-bottom:1rem}.students-grid .student-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border:2px solid #e5e7eb;border-radius:8px;cursor:pointer!important;transition:all .2s ease;background:#fff;-webkit-user-select:none;user-select:none;position:relative;transform:translateY(0)}.students-grid .student-item:hover{border-color:#cbd5e1;box-shadow:0 4px 12px #00000026;transform:translateY(-1px)}.students-grid .student-item:active{transform:translateY(0);box-shadow:0 2px 6px #0000001a}.students-grid .student-item.present{border-color:#22c55e;background:#f0fdf4}.students-grid .student-item.present:hover{border-color:#16a34a;background:#dcfce7}.students-grid .student-item.absent{border-color:#ef4444;background:#fef2f2}.students-grid .student-item.absent:hover{border-color:#dc2626;background:#fee2e2}.students-grid .student-item.disabled{border-color:#d1d5db;background:#f3f4f6;color:#9ca3af;cursor:not-allowed!important;opacity:.8}.students-grid .student-item.disabled:hover{border-color:#d1d5db;background:#f3f4f6;box-shadow:none;transform:translateY(0)}.student-name{font-weight:400;color:#374151;flex:1;display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.student-status{font-size:.875rem;font-weight:400;white-space:nowrap}.students-grid .student-item.present .student-status{color:#16a34a}.students-grid .student-item.absent .student-status{color:#dc2626}.absence-summary{background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:.75rem;margin-top:1rem}.absence-summary p{margin:0;color:#92400e;font-size:.875rem;line-height:1.5}.loading-text,.no-students{color:#6b7280;font-style:italic;padding:1rem 0;text-align:center}@media(max-width:640px){.students-grid{grid-template-columns:1fr;gap:.5rem}.student-item{padding:.5rem .75rem}.student-status{font-size:.75rem}}.group-form-container{padding:0;max-width:none;margin:0;background-color:#f7fafc;min-height:100vh;text-align:left}.btn-secondary{background:#f7fafc;color:#4a5568;border:1.5px solid #e2e8f0;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover{background:#edf2f7;border-color:#cbd5e0;transform:translateY(-1px)}.group-form{background:#fff;border-radius:12px;box-shadow:0 4px 6px #0000001a;overflow:hidden;margin:0 2rem 2rem}.form-section{padding:20px 25px;border-bottom:1px solid #e2e8f0}.form-section:last-child{border-bottom:none}.form-section h2{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0 0 14px;text-align:left}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h2,.section-header h3{margin:0}.chapter-actions{display:flex;align-items:center;gap:8px}.chapter-actions .btn-secondary{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;line-height:1}.section-footer{margin-top:12px}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#4a5568;font-size:13px;text-align:left}.consultation-recordings{display:flex;flex-direction:column;gap:10px}.consultation-recordings-add{align-self:flex-start}.consultation-recordings-empty{margin:0;color:#777;font-size:14px}.consultation-recordings-list{list-style:none;padding:0;margin:0;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.consultation-recordings-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #e2e8f0}.consultation-recordings-item:last-child{border-bottom:none}.consultation-recordings-meta{color:#777;font-size:13px}.consultation-recordings-delete{margin-left:auto;background:none;border:none;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:4px;line-height:1}.consultation-recordings-delete:hover{background:#fee2e2}.form-input,.form-select{width:100%;padding:7px 12px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:14px;line-height:1.4;background:#f8f9fb;transition:all .2s ease;box-sizing:border-box}.form-select{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%234a5568' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-size:10px 6px;background-repeat:no-repeat;padding-right:32px}.form-input::placeholder{color:#9ca3af;opacity:1}textarea.form-input,.form-input[type=textarea],.form-input.textarea{height:auto;min-height:60px;resize:vertical}.form-input[type=checkbox],.form-input[type=radio]{width:auto}.form-input:focus,.form-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea14;background:#fff}.form-input.error,.form-select.error{border-color:#e53e3e}.form-input.error:focus,.form-select.error:focus{border-color:#e53e3e;box-shadow:0 0 0 3px #e53e3e1a}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-row-compact{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-row-compact.three-columns{grid-template-columns:1fr 1fr 1fr}.form-row-compact .form-group{margin-bottom:15px}.error-text{color:#e53e3e;font-size:12px;margin-top:4px;display:block}.schedule-error{margin-bottom:15px;padding:8px 12px;background:#fed7d7;border-radius:6px;border-left:4px solid #e53e3e}.btn-add-schedule{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-add-schedule:hover{transform:translateY(-1px);box-shadow:0 2px 8px #48bb784d}.schedules-list{display:flex;flex-direction:column;gap:12px}.schedule-table{width:100%;border-collapse:collapse;background:#fff;border:1px solid #e2e8f0;border-radius:6px;overflow:hidden}.schedule-table th{background:#f7fafc;color:#4a5568;font-weight:600;font-size:14px;padding:12px;text-align:left;border-bottom:2px solid #e2e8f0}.schedule-table td{padding:12px;border-bottom:1px solid #e2e8f0}.schedule-table tr:last-child td{border-bottom:none}.schedule-table .form-input,.schedule-table .form-select{width:100%;margin:0;padding:7px 12px;border:1.5px solid #e2e8f0;border-radius:6px;font-size:14px}.schedule-table .form-input:focus,.schedule-table .form-select:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea14}.schedule-table .btn-remove-schedule{width:24px;height:24px;font-size:14px;margin:0}.schedule-row-new{background-color:#f0f9ff!important;border-left:3px solid #3b82f6}.schedule-row-new td{background-color:#f0f9ff}.schedule-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px;margin-bottom:0;position:relative}.grid-12{display:grid;grid-template-columns:repeat(12,1fr);gap:15px}.col-span-9{grid-column:span 9}.col-span-3{grid-column:span 3}@media(max-width:1024px){.col-span-9{grid-column:span 8}.col-span-3{grid-column:span 4}}@media(max-width:768px){.grid-12{grid-template-columns:1fr}.col-span-9,.col-span-3{grid-column:auto}}.thumb-preview-23{width:200px;height:300px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;display:flex;align-items:center;justify-content:center}.thumb-preview-23 img{width:100%;height:100%;object-fit:cover}.thumb-preview-empty{color:#9ca3af;font-size:.9rem}.schedule-form{display:grid;grid-template-columns:2fr 2fr auto;gap:12px;align-items:end}.schedule-form .form-group{margin-bottom:0}.btn-remove-schedule{background:#fed7d7;color:#c53030;border:none;width:32px;height:32px;border-radius:50%;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;flex-shrink:0}.btn-remove-schedule:hover{background:#feb2b2;transform:scale(1.1)}.students-list{display:flex;flex-direction:column;gap:12px}.student-item{background:#f7fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px;position:relative}.student-item-quitted{background:#f5f5f5;border-color:#d1d5db;opacity:.7}.student-item-quitted .student-info,.student-item-quitted .student-header h4{color:#6b7280}.student-item-quitted .student-details p{color:#9ca3af}.quit-date-inline{font-weight:400;color:#9ca3af;font-size:.9rem;margin-left:.5rem}.student-form{position:relative}.student-form .form-row{margin-bottom:10px}.student-form .form-group textarea{resize:vertical;min-height:60px;font-family:inherit;height:auto}.student-form .btn-remove-schedule{position:absolute;top:-8px;right:-8px;z-index:1}.form-actions{padding:16px 25px;background:#f7fafc;display:flex;justify-content:flex-end;gap:10px}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:8px 18px;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.hidden-file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.btn-upload{background:linear-gradient(135deg,#06b6d4,#3b82f6);color:#fff;border:none;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-upload:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 14px #3b82f659}.btn-upload:disabled{opacity:.6;cursor:not-allowed}.btn-icon-danger{background:#fee2e2;color:#dc2626;border:none;width:36px;height:36px;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease,transform .2s ease}.btn-icon-danger:hover{background:#fecaca;transform:translateY(-1px)}.error-message{background-color:#fed7d7;color:#c53030;padding:12px 16px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;border-left:4px solid #c53030}.close-error{background:none;border:none;color:#c53030;font-size:20px;cursor:pointer;padding:0;margin-left:10px}.minimal-list-editor .list-preview{margin-top:8px}.minimal-list-editor .plain-text p{margin:4px 0;line-height:1.35}.minimal-list-editor ul{margin:6px 0 6px 1.2em;padding-left:1.2em}.minimal-list-editor li{margin:2px 0}@media(max-width:768px){.group-form-container{padding:15px}.group-form-header{flex-direction:column;gap:15px;align-items:stretch}.group-form-header h1{font-size:1.5rem}.form-section{padding:15px}.form-row,.schedule-form{grid-template-columns:1fr;gap:10px}.schedule-item{padding:10px}.schedule-table{font-size:13px}.schedule-table th,.schedule-table td{padding:8px}.student-item{padding:10px}.btn-remove-schedule{justify-self:center;margin-top:8px;position:static}.form-actions{padding:15px 20px;flex-direction:column}.form-actions button{width:100%}}@media(max-width:480px){.group-form-header{text-align:center}.section-header{flex-direction:column;gap:10px;align-items:stretch}.section-header h2{text-align:center}.btn-add-schedule{align-self:center}}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;margin-bottom:.75rem}.checkbox-label-inline{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;margin-bottom:0;width:auto;max-width:fit-content}.checkbox-input{width:1rem!important;height:1rem;cursor:pointer;accent-color:#667eea;flex-shrink:0;min-width:1rem}.checkbox-text{font-size:1rem;color:#333}.student-info{width:100%}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.student-header h4{margin:0;color:#2d3748;font-size:1rem;display:flex;align-items:center;gap:.25rem;flex-wrap:wrap}.student-status{font-size:.8rem}.status-active{color:#38a169;font-weight:500}.status-quit{color:#e53e3e;font-weight:500}.student-details{margin-bottom:.75rem}.student-details p{margin:.15rem 0;font-size:.8rem;color:#4a5568}.student-quit-section{border-top:1px solid #e2e8f0;padding-top:.75rem}.quit-date-input{margin-top:.5rem}.quit-date-input label{display:block;margin-bottom:.375rem;font-weight:500;color:#4a5568;font-size:.8rem}.quit-date-controls{display:flex;flex-direction:column;gap:.375rem}.quit-date-controls .form-input{max-width:180px;font-size:.875rem}.quit-actions{display:flex;gap:.375rem}.student-actions{display:flex;gap:.375rem;justify-content:flex-end;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.page-header{background:#fff;padding:1rem 2rem;border-bottom:1px solid #e2e8f0;margin-bottom:1.5rem;box-shadow:0 1px 3px #0000000d;display:flex;justify-content:space-between;align-items:center}.page-header-content{flex:1}.page-header-content h1{color:#2d3748;font-size:1.35rem;font-weight:700;margin:0 0 .15rem;text-align:left}.page-header-content p{color:#718096;margin:0;font-size:.8rem;text-align:left}.btn-small{padding:.5rem 1rem;font-size:.875rem;border-radius:6px;border:none;cursor:pointer;transition:all .2s ease;font-weight:500}.btn-edit{background:#3b82f6;color:#fff}.btn-edit:hover:not(:disabled){background:#2563eb;transform:translateY(-1px)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){background:#b91c1c;transform:translateY(-1px)}.detail-block{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:1.25rem;margin:0 2rem 1.25rem}.detail-block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.detail-block-header h3{font-size:1rem;font-weight:600;color:#4a5568;margin:0}.btn-outline-sm{padding:5px 12px;font-size:.8rem;font-weight:500;border-radius:6px;border:1px solid #cbd5e0;background:transparent;color:#4a5568;cursor:pointer;transition:all .2s ease}.btn-outline-sm:hover{background:#edf2f7;border-color:#a0aec0}.schedule-item .form-group,.student-item .form-group{margin-bottom:8px}.schedule-item .form-group:last-child,.student-item .form-group:last-child{margin-bottom:0}label.checkbox-control{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 14px;border:1.5px solid #e2e8f0;border-radius:6px;background:#f7fafc;transition:all .2s ease;-webkit-user-select:none;user-select:none;margin-bottom:0;width:fit-content}label.checkbox-control:hover{border-color:#667eea;background:#eef2ff}label.checkbox-control:has(input:checked){border-color:#667eea;background:#eef2ff}label.checkbox-control input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;cursor:pointer;accent-color:#667eea;flex-shrink:0;margin:0}.checkbox-control__label{font-size:13px;font-weight:500;color:#2d3748}.checkbox-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:4px}.consultation-edit{display:flex;flex-direction:column;gap:16px;padding:0 2rem 2rem}.consultation-edit__card{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:20px 22px;box-shadow:0 1px 2px #0f172a0a}.consultation-edit__card-title{font-size:1.1rem;font-weight:600;color:#111827;margin:0 0 14px}.consultation-edit__card .form-group{max-width:400px;margin-bottom:16px}.consultation-edit__card .form-group+.form-group>label:first-child{margin-top:2px}.consultation-edit__card .form-row-compact .form-group{max-width:none}.consultation-edit__card .checkbox-row{max-width:400px}.consultation-edit__actions{display:flex;justify-content:flex-end;gap:10px;padding:0 4px}.filter-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:8px;margin-bottom:12px}.filter-bar .form-input,.filter-bar .form-select,.filter-bar .search-input{height:30px;padding:0 8px;border:1px solid #e2e8f0;border-radius:5px;font-size:12px;line-height:30px;background:#f8f9fb;box-sizing:border-box;width:auto}.filter-bar .form-select{padding-right:26px;background-position:right 8px center}.filter-bar .search-input{width:140px;flex:none}.filter-bar .form-input[type=date]{width:120px}.filter-bar .form-input:focus,.filter-bar .form-select:focus,.filter-bar .search-input:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea14;background:#fff;outline:none}.filter-bar .btn-primary,.filter-bar .btn-secondary{height:30px;padding:0 12px;font-size:12px;line-height:30px;display:inline-flex;align-items:center}.filter-bar .filter-sep{color:#cbd5e0;font-size:12px;-webkit-user-select:none;user-select:none}.btn-create-student{background:transparent;color:#059669;border:1.5px solid #a7f3d0;padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-create-student:hover{background:#ecfdf5;border-color:#059669}.form-select--muted{color:#9ca3af}.form-select--muted option{color:#111827}.tooltip-portal{position:fixed;background:#fbbf24;color:#1f2937;padding:5px 10px;border-radius:4px;font-size:12px;white-space:nowrap;pointer-events:none;z-index:99999}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1f2937}.modal-close{background:none;border:none;font-size:1.5rem;color:#9ca3af;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#f3f4f6;color:#1f2937}.modal-body{padding:20px}.modal-body p{margin:0;color:#4b5563;line-height:1.6}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:20px;border-top:1px solid #e5e7eb}.modal-footer .btn-primary,.modal-footer .btn-secondary{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.modal-footer .btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.modal-footer .btn-primary:hover{opacity:.9}.modal-footer .btn-danger{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;background:#ef4444;color:#fff}.modal-footer .btn-danger:hover{background:#dc2626}.modal-footer .btn-secondary{background:#f3f4f6;color:#4b5563;border:1px solid #d1d5db}.modal-footer .btn-secondary:hover{background:#e5e7eb}.public-layout{min-height:100vh;display:flex;flex-direction:column;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:#333}.public-header{background:#f8f9fa;border-bottom:1px solid #e9ecef;padding:.5rem 0}.public-header-content{width:100%;display:flex;justify-content:center}.public-header-wrapper{max-width:700px;width:100%;text-align:left}.public-logo{color:#333;font-size:1rem;font-weight:500;margin:0}.public-main{flex:1;padding:2rem 0;width:100%;box-sizing:border-box;display:flex;justify-content:center}.public-footer{background:#f8f9fa;padding:1rem 0;border-top:1px solid #e9ecef}.public-footer-content{max-width:1200px;margin:0;padding:0 2rem;text-align:left}.public-footer p{color:#666;margin:0;font-size:.9rem}@media(max-width:768px){.public-header-wrapper{padding:0 1rem}.public-main{padding:1rem}}.public-vocabulary-container{min-height:60vh;max-width:700px;width:100%;margin:0;line-height:1.6;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;text-align:left}.group-header{border-bottom:1px solid #a2a9b1;padding-bottom:.5rem;margin-bottom:1.5rem;text-align:left}.group-header h1{color:#000;font-size:1.8rem;margin:0 0 .25rem;font-weight:400;font-family:Georgia,Times New Roman,serif;line-height:1.3;text-align:left}.group-meta{color:#54595d;font-size:.8rem;display:flex;gap:.5rem}.group-level,.word-count{font-style:normal;font-size:.9rem}.lessons-list{margin-bottom:1rem}.lesson-section{margin-bottom:2rem}.lesson-header{margin-bottom:.5rem;padding-bottom:.25rem;display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;text-align:left}.lesson-header h2{color:#0645ad;font-size:1.25rem;margin:0;font-weight:600;font-family:Georgia,Times New Roman,serif}.lesson-topic{color:#54595d;font-style:italic;font-size:.875rem}.lesson-word-count{color:#54595d;font-size:.8rem;font-weight:400}.words-list{margin:.5rem 0 0 1.5rem;padding:0;list-style:disc}.word-item{margin:0 0 .3rem;padding:0;font-size:.95rem;line-height:1.4}.lesson-link{margin-top:.5rem;margin-left:1.5rem}.lesson-link a{color:#0645ad;text-decoration:none;font-size:.875rem}.lesson-link a:hover{text-decoration:underline}.error-card,.loading-card,.no-vocabulary-card,.groups-selection-card{background:#f8f9fa;border:1px solid #eaecf0;padding:1.5rem;margin:1.5rem 0;border-radius:2px}.error-card h2,.no-vocabulary-card h2,.groups-selection-card h2{color:#000;margin:0 0 .75rem;font-size:1.25rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.error-card p,.loading-card p,.no-vocabulary-card p{color:#54595d;font-size:.9rem;margin:0;line-height:1.6}.loading-spinner{width:20px;height:20px;border:2px solid #eaecf0;border-top:2px solid #0645ad;border-radius:50%;animation:spin 1s linear infinite;margin:0 auto .75rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.available-groups{margin-top:1.5rem}.available-groups h3{color:#000;margin-bottom:.75rem;font-size:1.125rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.groups-list{margin-left:0}.group-item{margin-bottom:.75rem;padding:1rem;border:1px solid #eaecf0;background:#f8f9fa;border-radius:2px}.group-item h4{color:#0645ad;margin:0 0 .25rem;font-size:1rem;font-family:Georgia,Times New Roman,serif;font-weight:600}.group-item p{color:#54595d;margin:0 0 .5rem;font-size:.875rem}.view-vocabulary-btn{color:#0645ad;text-decoration:none;font-size:.875rem}.view-vocabulary-btn:hover{text-decoration:underline}@media(max-width:768px){.group-header h1{font-size:1.2rem}.words-list,.lesson-link{margin-left:1rem}}@media(max-width:480px){.lesson-header{flex-direction:column;align-items:flex-start;gap:.25rem}}.data-table{width:100%;border-collapse:collapse;table-layout:fixed}.data-table th,.data-table td{padding:1rem;text-align:left;border-bottom:1px solid #e5e7eb;vertical-align:middle;word-wrap:break-word;overflow-wrap:break-word;font-size:.875rem}.data-table td{font-weight:400}.data-table th{background:#f9fafb;font-weight:600;color:#374151;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.data-table tbody tr:hover{background:#f9fafb}.data-table tbody tr:last-child td{border-bottom:none}.selected-student{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px}.clear-selection{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0 4px}.student-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 2px 8px #0000001a}.student-option{padding:8px 12px;cursor:pointer;border-bottom:1px solid #eee}.student-option.disabled{color:#999;cursor:not-allowed}.total-amount-display{padding:8px 12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:4px;font-weight:400;color:#2e7d32;font-size:16px}.large-modal .modal-content{max-width:800px;width:90vw}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.btn-download{background-color:#4caf50;color:#fff;border:none;border-radius:4px;padding:6px 8px;cursor:pointer;font-size:14px;transition:background-color .2s}.btn-download:hover{background-color:#45a049}.font-mono{font-family:Courier New,monospace}.text-center{text-align:center}.text-right{text-align:right}.action-buttons{display:flex;gap:8px;justify-content:center}.btn-action{padding:6px 8px;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:all .2s}.btn-action:hover{opacity:.8;transform:translateY(-1px)}.btn-outline{background-color:transparent;color:#666;border:1px solid #ddd;border-radius:4px;padding:8px 16px;cursor:pointer;font-size:14px;transition:all .2s}.btn-outline:hover{background-color:#f5f5f5;border-color:#bbb;color:#333}@media(max-width:768px){.form-grid{grid-template-columns:1fr}.large-modal .modal-content{width:95vw;margin:20px auto}.student-dropdown{max-height:150px}}.create-certificate-page{max-width:1200px;margin:0 auto;padding:20px;background-color:#fff;min-height:100vh}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:16px;border-bottom:1px solid #e0e0e0}.page-header h1{margin:0;color:#333;font-size:28px;font-weight:600}.btn-secondary{background-color:#6c757d;color:#fff;border:none;border-radius:4px;padding:10px 16px;cursor:pointer;font-size:14px;transition:all .2s;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover{background-color:#5a6268;transform:translateY(-1px)}.btn-primary{background-color:#007bff;color:#fff;border:none;border-radius:4px;padding:12px 24px;cursor:pointer;font-size:16px;font-weight:500;transition:all .2s}.btn-primary:hover:not(:disabled){background-color:#0056b3;transform:translateY(-1px)}.btn-primary:disabled{background-color:#6c757d;cursor:not-allowed;transform:none}.create-certificate-form{background-color:#f8f9fa;border-radius:8px;padding:32px;box-shadow:0 2px 4px #0000001a}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:32px}.form-group{display:flex;flex-direction:column}.form-group.full-width{grid-column:1 / -1}.form-group label{margin-bottom:8px;color:#333;font-weight:500;font-size:14px}.form-group input,.form-group select{padding:12px;border:1px solid #ddd;border-radius:4px;font-size:16px;transition:border-color .2s;background-color:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff40}.form-group input.error,.form-group select.error{border-color:#dc3545}.form-group input.valid-input{border-color:#28a745;border-width:2px}.form-group input.invalid-input{border-color:#dc3545;border-width:2px}.validation-indicator{margin-top:4px;margin-bottom:8px;font-size:12px}.small-icon{font-size:12px;font-weight:500}.valid{color:#28a745}.invalid{color:#dc3545}.checking{color:#6c757d}.error-text{color:#dc3545;font-size:12px;margin-top:4px}.error-message{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24;padding:12px 16px;border-radius:4px;margin-bottom:24px;display:flex;justify-content:space-between;align-items:center}.close-error{background:none;border:none;color:#721c24;font-size:18px;cursor:pointer;padding:0;line-height:1}.close-error:hover{opacity:.7}.student-selector{position:relative}.selected-student{display:flex;align-items:center;justify-content:space-between;padding:12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:4px;font-weight:500}.clear-selection{background:none;border:none;font-size:18px;cursor:pointer;color:#666;padding:0 4px;line-height:1}.clear-selection:hover{color:#d32f2f}.student-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #ddd;border-top:none;border-radius:0 0 4px 4px;max-height:200px;overflow-y:auto;z-index:1000;box-shadow:0 4px 8px #0000001a}.student-option{padding:12px;cursor:pointer;border-bottom:1px solid #eee;transition:background-color .2s}.student-option:hover{background-color:#f5f5f5}.student-option:last-child{border-bottom:none}.student-option.disabled{color:#999;cursor:not-allowed;font-style:italic}.student-option.disabled:hover{background-color:transparent}.total-amount-display{padding:12px;background-color:#e8f5e8;border:1px solid #4caf50;border-radius:4px;font-weight:700;color:#2e7d32;font-size:18px;text-align:center}.form-actions{display:flex;gap:16px;justify-content:flex-end;padding-top:24px;border-top:1px solid #e0e0e0}@media(max-width:768px){.create-certificate-page{padding:16px}.page-header{flex-direction:column;gap:16px;align-items:flex-start}.page-header h1{font-size:24px}.create-certificate-form{padding:24px 16px}.form-grid{grid-template-columns:1fr;gap:16px}.form-actions{flex-direction:column-reverse}.btn-primary,.btn-secondary{width:100%;justify-content:center}.student-dropdown{max-height:150px}}@media(max-width:480px){.create-certificate-page{padding:12px}.create-certificate-form{padding:16px}.page-header h1{font-size:20px}}.settings-container{max-width:900px;margin:0 auto;padding:1rem;background-color:#fff;min-height:100vh}.settings-header{margin-bottom:1rem;text-align:left}.settings-header h1{color:#2d3748;font-size:1.5rem;font-weight:600;margin-bottom:.25rem}.settings-header p{color:#718096;font-size:.9rem;margin:0}.error-message{display:flex;align-items:center;gap:.5rem;background-color:#fed7d7;color:#c53030;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid #feb2b2}.error-icon{font-size:1rem}.settings-section{padding:1rem 0;border-bottom:1px solid #e0e0e0;margin-bottom:1rem}.settings-section:last-child{border-bottom:none}.settings-section h2{color:#1a1a1a;font-size:1.1rem;font-weight:700;margin-bottom:1rem;text-align:left}.section-description{color:#666;margin-bottom:1rem;line-height:1.4;text-align:left}.profile-info{display:flex;flex-direction:column;gap:.5rem}.info-row{display:flex;align-items:center;gap:1rem;padding:.5rem 0;text-align:left}.info-row label{font-weight:600;color:#4a5568;min-width:80px}.info-row span{color:#2d3748}.role-badge{padding:.25rem .75rem;border-radius:20px;font-size:.875rem;font-weight:500;text-transform:capitalize}.role-badge.admin{background-color:#fed7e2;color:#b83280}.role-badge.user{background-color:#c6f6d5;color:#276749}.telegram-linked,.telegram-not-linked{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0}.linked-info,.not-linked-info{display:flex;align-items:center;gap:0;text-align:left}.status-icon{font-size:.85rem;margin-right:.5rem}.linked-details strong,.not-linked-info strong{display:flex;align-items:center;color:#2d3748;font-weight:600;margin-bottom:.25rem}.linked-details p,.not-linked-info p{color:#718096;margin:0;font-size:.9rem}.link-button,.unlink-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .2s ease;font-size:.9rem}.link-button{background-color:#4299e1;color:#fff}.link-button:hover:not(:disabled){background-color:#3182ce;transform:translateY(-1px)}.unlink-button{background-color:#e53e3e;color:#fff}.unlink-button:hover:not(:disabled){background-color:#c53030;transform:translateY(-1px)}.link-button:disabled,.unlink-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background-color:#fff;border-radius:12px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h3{color:#2d3748;font-size:1.1rem;font-weight:600;margin:0}.close-button{background:none;border:none;font-size:1.2rem;color:#a0aec0;cursor:pointer;padding:.25rem;line-height:1}.close-button:hover{color:#718096}.modal-body{padding:1.5rem}.instructions-text{color:#4a5568;line-height:1.6;margin-bottom:1.5rem}.link-container{margin:1.5rem 0}.link-display{display:flex;gap:.5rem;align-items:center;padding:1rem;background-color:#f7fafc;border:1px solid #e2e8f0;border-radius:8px}.link-display code{flex:1;background:none;color:#2d3748;font-family:Monaco,Courier New,monospace;font-size:.875rem;word-break:break-all}.copy-button{padding:.5rem 1rem;background-color:#4299e1;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;white-space:nowrap}.copy-button:hover{background-color:#3182ce}.step-by-step{margin:1.5rem 0}.step-by-step h4{color:#2d3748;font-size:1rem;font-weight:600;margin-bottom:.75rem}.step-by-step ol{color:#4a5568;padding-left:1.5rem;line-height:1.6}.step-by-step li{margin-bottom:.5rem}.security-note{background-color:#fef5e7;border:1px solid #f6ad55;border-radius:8px;padding:1rem;color:#744210;font-size:.9rem;line-height:1.5}.modal-footer{display:flex;gap:1rem;justify-content:flex-end;padding:1.5rem;border-top:1px solid #e2e8f0;background-color:#f7fafc}.open-telegram-button,.done-button{padding:.75rem 1.5rem;border:none;border-radius:8px;font-weight:600;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:all .2s ease}.open-telegram-button{background-color:#08c;color:#fff}.open-telegram-button:hover{background-color:#0077b3;transform:translateY(-1px)}.done-button{background-color:#38a169;color:#fff}.done-button:hover{background-color:#2f855a;transform:translateY(-1px)}@media(max-width:768px){.settings-container{margin:1rem;padding:1rem}.telegram-linked,.telegram-not-linked{flex-direction:column;gap:1rem;align-items:stretch}.link-button,.unlink-button{width:100%}.modal-content{margin:1rem;width:calc(100% - 2rem)}.modal-footer{flex-direction:column}.link-display{flex-direction:column;gap:1rem}.copy-button{align-self:stretch}}.sidebar{width:260px;height:100vh;background:linear-gradient(180deg,#2d3748,#1a202c);color:#fff;display:flex;flex-direction:column;position:fixed;left:0;top:0;z-index:100;box-shadow:2px 0 4px #0000001a}.sidebar-header{padding:20px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo h2{margin:0;font-size:1.5rem;font-weight:700;color:#fff;text-align:center}.sidebar-nav{flex:1;padding:20px 0;overflow-y:auto}.sidebar-menu{list-style:none;margin:0;padding:0}.sidebar-menu-item{margin-bottom:4px}.sidebar-menu-button{width:100%;background:none;border:none;color:#cbd5e0;padding:12px 20px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:all .2s ease;border-radius:0;font-size:14px;font-weight:500;text-align:left}.sidebar-menu-button:hover{background:#ffffff1a;color:#fff}.sidebar-menu-item.active .sidebar-menu-button{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-left:4px solid #48bb78}.sidebar-menu-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}.sidebar-menu-label{flex:1}.sidebar-menu-badge{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:#ffffff26;color:#ffffffb3;letter-spacing:.3px;line-height:1.4}.sidebar-notification-dot{background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.sidebar-scroll-indicator{position:sticky;bottom:0;display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 0;background:linear-gradient(to bottom,transparent,#1a202c 30%);border:none;cursor:pointer;animation:sidebar-scroll-pulse 2s ease-in-out infinite}.sidebar-scroll-indicator-dot{background:#ef4444;color:#fff;font-size:10px;font-weight:700;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}.sidebar-scroll-indicator-arrow{color:#ef4444;font-size:12px}@keyframes sidebar-scroll-pulse{0%,to{opacity:1}50%{opacity:.5}}.sidebar-section-divider{height:1px;background:#ffffff1a;margin:16px 20px}.sidebar-section-header{color:#ffffff80;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:8px 20px;margin-top:4px}.sidebar-footer{padding:20px;margin-top:16px;border-top:1px solid rgba(255,255,255,.1)}.sidebar-logout-button{width:100%;background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#feb2b2;padding:10px 16px;border-radius:6px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500}.sidebar-logout-button:hover{background:#ef444433;color:#fed7d7;border-color:#ef444480}.main-content{margin-left:260px;min-height:100vh;background-color:#f7fafc}@media(max-width:768px){.sidebar{width:100%;height:auto;position:relative;box-shadow:none}.main-content{margin-left:0}.sidebar-nav{padding:10px 0}.sidebar-menu-button{padding:10px 20px;font-size:16px}}@media(max-width:480px){.sidebar{width:100%}.sidebar-header{padding:15px}.sidebar-logo h2{font-size:1.25rem}.sidebar-footer{padding:15px}}.students-container .students-table-container.vocabulary-table{overflow-x:visible;overflow-y:visible}.consultations-row--has-recording td:first-child{box-shadow:inset 3px 0 #10b981}.recording-pill{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:500;line-height:1.4;white-space:nowrap;vertical-align:middle}.recording-pill--completed{background:#d1fae5;color:#065f46}.recording-pill--processing{background:#dbeafe;color:#1e40af}.recording-pill--pending{background:#fef3c7;color:#92400e}.recording-pill--failed{background:#fee2e2;color:#991b1b}.recording-pill--unknown{background:#e5e7eb;color:#374151}.btn-icon--upload{color:#2563eb;position:relative}.btn-icon--upload:hover{background:#eff6ff;color:#1d4ed8}.btn-icon--upload .btn-icon__mic{display:inline-block;font-size:16px;line-height:1}.btn-icon--upload .btn-icon__add{position:absolute;top:2px;right:2px;min-width:12px;height:12px;padding:0 2px;background:#2563eb;color:#fff;border-radius:999px;font-size:10px;font-weight:700;line-height:12px;text-align:center;box-shadow:0 0 0 1.5px #fff}.btn-icon--recording{color:#059669}.btn-icon--recording:hover{background:#ecfdf5;color:#047857}.status-help-icon{margin-left:6px;width:16px;height:16px;padding:0;border:1px solid #cbd5e1;border-radius:999px;background:transparent;color:#64748b;font-size:11px;font-weight:700;line-height:14px;cursor:pointer;vertical-align:middle}.status-help-icon:hover{background:#eef2ff;border-color:#667eea;color:#667eea}.inline-status-select{min-width:170px}.status-history__header{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:0;cursor:pointer;font-size:16px;font-weight:600;color:#1f2937;text-align:left}.status-history__chevron{display:inline-block;width:14px;color:#6b7280}.status-history__empty{margin:12px 0 0;color:#9ca3af;font-size:14px}.status-history__list{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column}.status-history__row{display:flex;align-items:baseline;gap:16px;padding:8px 0;border-top:1px solid #f0f1f4;font-size:14px}.status-history__row:first-child{border-top:none}.status-history__time{color:#6b7280;white-space:nowrap;min-width:150px}.status-history__change{color:#1f2937;flex:1}.status-history__actor{color:#6b7280;white-space:nowrap}.recording-upload{max-width:720px;margin:0 auto;padding:32px 24px 48px}.recording-upload__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.recording-upload__header h1{font-size:24px;font-weight:600;margin:0;color:#1a202c}.recording-upload__back{color:#6b7280;text-decoration:none;font-size:14px;padding:6px 10px;border-radius:6px;transition:background .12s ease,color .12s ease}.recording-upload__back:hover{background:#f3f4f6;color:#1f2937}.recording-upload__mode{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:6px;background:#f3f4f6;border-radius:12px;margin-bottom:20px}.recording-upload__mode-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;color:#4b5563;font:inherit;transition:background .12s ease,color .12s ease,box-shadow .12s ease,border-color .12s ease}.recording-upload__mode-btn:hover:not(:disabled){background:#fff;color:#1f2937}.recording-upload__mode-btn.is-active{background:#fff;color:#111827;border-color:#e5e7eb;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.recording-upload__mode-btn:disabled{cursor:not-allowed;opacity:.55}.recording-upload__mode-icon{font-size:22px;line-height:1}.recording-upload__mode-title{display:block;font-weight:600;font-size:14px}.recording-upload__mode-tag{display:inline-block;margin-left:6px;padding:1px 6px;background:#dbeafe;color:#1d4ed8;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle}.recording-upload__mode-sub{display:block;font-size:12px;color:#6b7280;margin-top:2px}.recording-upload__note{display:flex;gap:10px;padding:12px 14px;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#78350f;margin-bottom:20px;font-size:13px;line-height:1.5}.recording-upload__note:before{content:"💡";flex-shrink:0}.recording-upload__picker{position:relative;padding:40px 24px 32px;border:2px dashed #d1d5db;border-radius:12px;background:#fafafa;text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.recording-upload__picker:hover{border-color:#93c5fd;background:#f8fbff}.recording-upload__picker:focus-visible{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633}.recording-upload__picker.is-drag-over{border-color:#2563eb;background:#eff6ff;transform:scale(1.005)}.recording-upload__file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.recording-upload__picker-icon{font-size:40px;line-height:1;margin-bottom:12px}.recording-upload__picker-title{font-size:16px;font-weight:600;color:#1f2937}.recording-upload__picker-or{margin:10px 0;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#9ca3af}.recording-upload__pick-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 22px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:background .12s ease,transform .12s ease,box-shadow .12s ease;box-shadow:0 1px 2px #2563eb33}.recording-upload__pick-btn:hover{background:#1d4ed8;transform:translateY(-1px);box-shadow:0 4px 10px #2563eb40}.recording-upload__pick-btn:active{transform:translateY(0)}.recording-upload__hint{list-style:none;padding:0;margin:24px auto 0;max-width:480px;text-align:left;color:#6b7280;font-size:13px;line-height:1.6}.recording-upload__hint li{position:relative;padding-left:18px;margin-bottom:4px}.recording-upload__hint li:before{content:"•";position:absolute;left:4px;color:#9ca3af}.recording-upload__hint strong{color:#374151;font-weight:600}.recording-upload__progress{padding:20px 22px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 1px 3px #0f172a0a}.recording-upload__progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.recording-upload__progress-file{font-weight:600;font-size:14px;color:#1f2937;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.recording-upload__cancel-btn{padding:6px 14px;background:#fff;color:#b91c1c;border:1px solid #fecaca;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.recording-upload__cancel-btn:hover{background:#fef2f2;border-color:#f87171;color:#991b1b}.recording-upload__phase{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b5563;margin:10px 0 14px}.recording-upload__spinner{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:ru-spin .7s linear infinite}@keyframes ru-spin{to{transform:rotate(360deg)}}.recording-upload__bar{width:100%;height:10px;background:#f3f4f6;border-radius:999px;overflow:hidden}.recording-upload__bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#2563eb);border-radius:999px;transition:width .2s ease-out}.recording-upload__bar-fill.is-indeterminate{width:100%!important;background:linear-gradient(90deg,#3b82f640,#2563eb,#3b82f640);background-size:200% 100%;animation:ru-shimmer 1.4s linear infinite}@keyframes ru-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.recording-upload__progress-pct{margin-top:8px;font-size:12px;font-weight:500;color:#6b7280;text-align:right}.recording-upload__exists{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;margin-bottom:20px}.recording-upload__exists-icon{font-size:28px;line-height:1}.recording-upload__exists-body{flex:1}.recording-upload__exists-title{font-weight:600;font-size:15px;color:#065f46}.recording-upload__exists-sub{margin-top:4px;font-size:13px;color:#047857}.recording-upload__error{margin-top:16px;padding:12px 16px;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#991b1b;font-size:14px;line-height:1.5}@media(max-width:540px){.recording-upload{padding:20px 16px 32px}.recording-upload__mode{grid-template-columns:1fr}.recording-upload__picker{padding:32px 16px 28px}}.recording-detail{max-width:960px;margin:0 auto;padding:24px 24px 48px}.recording-detail__header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}.recording-detail__header h1{margin:4px 0 6px;font-size:26px;font-weight:600;color:#111827}.recording-detail__back{display:inline-block;color:#6b7280;text-decoration:none;font-size:13px;margin-bottom:4px}.recording-detail__back:hover{color:#1f2937;text-decoration:underline}.recording-detail__subtitle{display:flex;align-items:center;gap:6px;color:#6b7280;font-size:14px}.recording-detail__subtitle a{color:#2563eb;text-decoration:none}.recording-detail__subtitle a:hover{text-decoration:underline}.recording-detail__dot{color:#d1d5db}.recording-detail__status-pill{flex-shrink:0;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.02em;white-space:nowrap}.recording-detail__status-pill--completed{background:#d1fae5;color:#065f46}.recording-detail__status-pill--processing{background:#dbeafe;color:#1e40af}.recording-detail__status-pill--pending{background:#fef3c7;color:#92400e}.recording-detail__status-pill--failed{background:#fee2e2;color:#991b1b}.recording-detail__status-pill--uploading{background:#e0e7ff;color:#3730a3}.recording-detail__status-pill--unknown{background:#e5e7eb;color:#374151}.recording-detail__header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}.recording-detail__delete-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;background:#fff;color:#b91c1c;border:1px solid #fecaca;cursor:pointer;transition:background .15s ease,border-color .15s ease}.recording-detail__delete-btn:hover{background:#fef2f2;border-color:#f87171}.recording-detail__banner{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:10px;margin-bottom:20px}.recording-detail__banner-body{flex:1}.recording-detail__banner--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.recording-detail__error-detail{margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;white-space:pre-wrap;color:#7f1d1d}.recording-detail__banner-hint{margin-top:8px;font-size:13px;color:#7f1d1d}.recording-detail__audio-card{padding:14px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:20px;box-shadow:0 1px 2px #0f172a0a}.recording-detail__audio{width:100%;height:40px;display:block}.recording-detail__card{padding:20px 22px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;margin-bottom:20px;box-shadow:0 1px 2px #0f172a0a}.recording-detail__card-title{font-size:15px;font-weight:600;color:#111827;margin:0 0 4px}.recording-detail__card-hint{margin:0 0 14px;color:#6b7280;font-size:13px;line-height:1.5}.recording-detail__card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:4px}.recording-detail__card-head .recording-detail__card-title{margin:0}.transcription-mode__toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:6px;background:#f3f4f6;border-radius:12px;margin-top:12px}.transcription-mode__btn{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:transparent;border:1px solid transparent;border-radius:8px;cursor:pointer;text-align:left;color:#4b5563;font:inherit;transition:background .12s ease,color .12s ease,box-shadow .12s ease,border-color .12s ease}.transcription-mode__btn:hover:not(:disabled){background:#fff;color:#1f2937}.transcription-mode__btn.is-active{background:#fff;color:#111827;border-color:#e5e7eb;box-shadow:0 1px 2px #0f172a0a,0 1px 3px #0f172a0f}.transcription-mode__btn:disabled{cursor:not-allowed;opacity:.55}.transcription-mode__title{font-weight:600;font-size:13px}.transcription-mode__tag{display:inline-block;margin-left:6px;padding:1px 6px;background:#dbeafe;color:#1d4ed8;border-radius:4px;font-size:10px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;vertical-align:middle}.transcription-mode__sub{font-size:12px;color:#6b7280}.transcription-mode__rerun{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#fff;border:1px solid #d1d5db;border-radius:6px;color:#374151;font-size:12px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.transcription-mode__rerun:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af;color:#111827}.transcription-mode__rerun:disabled{cursor:not-allowed;opacity:.5}.transcription-mode__rerun svg{color:#2563eb}.channel-map{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:8px 16px;align-items:stretch;padding:14px 16px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.channel-map__row{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#fff;border-radius:8px;border:1px solid #e5e7eb}.channel-map__role{font-weight:600;font-size:13px;padding:3px 9px;border-radius:999px}.channel-map__row--teacher .channel-map__role{background:#e8f5e9;color:#2e7d32}.channel-map__row--client .channel-map__role{background:#fff3e0;color:#b35400}.channel-map__arrow{color:#9ca3af;font-size:14px}.channel-map__track{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;color:#374151;font-weight:500}.channel-map__swap{grid-column:2;grid-row:1 / 3;display:inline-flex;align-items:center;gap:8px;padding:0 18px;background:#fff;border:1px solid #d1d5db;border-radius:8px;color:#1f2937;font-size:13px;font-weight:600;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform .12s ease,box-shadow .12s ease;box-shadow:0 1px 2px #0f172a0a}.channel-map__swap:hover{background:#f3f4f6;border-color:#9ca3af;color:#111827}.channel-map__swap:active{transform:scale(.97)}.channel-map__swap svg{color:#2563eb}.channel-map__swap:hover svg{color:#1d4ed8}@media(max-width:540px){.channel-map{grid-template-columns:1fr}.channel-map__swap{grid-column:1;grid-row:auto;justify-content:center;padding:10px 18px}}.recording-detail__transcript-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.recording-detail__transcript-count{font-size:12px;color:#6b7280}.recording-detail__transcript-meta{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}.recording-detail__run-badge{display:inline-block;padding:2px 8px;background:#eef2ff;color:#4338ca;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.01em}.recording-detail__run-badge--muted{background:#f3f4f6;color:#6b7280;font-weight:500}.recording-detail__transcript-pending,.recording-detail__transcript-empty{display:flex;align-items:center;gap:10px;color:#6b7280;font-style:normal;margin:6px 0 0;font-size:14px}.recording-detail__spinner{width:14px;height:14px;border:2px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:rd-spin .7s linear infinite;display:inline-block}@keyframes rd-spin{to{transform:rotate(360deg)}}.recording-detail__segments{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:4px}.recording-detail__segment{position:relative;display:grid;grid-template-columns:56px 80px 1fr;gap:12px;align-items:start;padding:8px 36px 16px 6px;border-radius:6px;transition:background .12s ease}.recording-detail__segment:hover{background:#f9fafb}.recording-detail__segment-delete,.recording-detail__segment-add{position:absolute;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:#fff;border:1px solid #d1d5db;border-radius:4px;color:#6b7280;cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease,color .12s ease,border-color .12s ease}.recording-detail__segment:hover .recording-detail__segment-delete,.recording-detail__segment:hover .recording-detail__segment-add,.recording-detail__segment-delete:focus-visible,.recording-detail__segment-add:focus-visible{opacity:1}.recording-detail__segment-delete{top:6px;right:6px}.recording-detail__segment-delete:hover{background:#fef2f2;border-color:#fecaca;color:#b91c1c}.recording-detail__segment-add{bottom:6px;right:6px}.recording-detail__segment-add:hover{background:#eff6ff;border-color:#bfdbfe;color:#1d4ed8}@media(hover:none){.recording-detail__segment-delete,.recording-detail__segment-add{opacity:1}}.recording-detail__segment-time{background:#f3f4f6;border:none;color:#2563eb;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;cursor:pointer;padding:4px 6px;border-radius:4px;text-align:center;transition:background .12s ease,color .12s ease}.recording-detail__segment-time:hover{background:#dbeafe;color:#1d4ed8}.recording-detail__segment-speaker{font-weight:600;font-size:12px;padding:4px 8px;border-radius:4px;text-align:center;align-self:start}.recording-detail__segment-speaker--teacher{background:#e8f5e9;color:#2e7d32}.recording-detail__segment-speaker--client{background:#fff3e0;color:#b35400}.recording-detail__segment-speaker--mix{background:#e5e7eb;color:#374151}.recording-detail__segment-text{width:100%;min-height:32px;padding:6px 8px;border:1px solid transparent;border-radius:4px;font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;background:transparent;color:#111827}.recording-detail__segment-text:hover{border-color:#e5e7eb}.recording-detail__segment-text:focus{border-color:#3b82f6;background:#fff;outline:none;box-shadow:0 0 0 3px #3b82f626}.recording-detail__segment-form-wrap{list-style:none;padding:0;margin:0}.recording-detail__transcript-empty-wrap{display:flex;flex-direction:column;gap:12px;align-items:flex-start}.recording-detail__transcript-empty{margin:0}.recording-detail__add-first{align-self:flex-start;padding:6px 14px;background:#fff;border:1px dashed #9ca3af;border-radius:6px;color:#374151;font-size:13px;font-weight:500;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.recording-detail__add-first:hover:not(:disabled){background:#eff6ff;border-color:#2563eb;color:#1d4ed8}.recording-detail__add-first:disabled{cursor:not-allowed;opacity:.5}.add-segment{margin:6px 6px 10px 68px;background:#f9fafb;border:1px solid #d1d5db;border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:10px}.add-segment__row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.add-segment__speaker{display:inline-flex;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:2px}.add-segment__speaker-btn{background:transparent;border:none;padding:4px 10px;font-size:12px;font-weight:500;color:#4b5563;border-radius:4px;cursor:pointer;transition:background .12s ease,color .12s ease}.add-segment__speaker-btn:hover:not(:disabled){color:#111827}.add-segment__speaker-btn.is-active{background:#e0e7ff;color:#4338ca}.add-segment__speaker-btn:disabled{cursor:not-allowed;opacity:.6}.add-segment__time-wrap{display:inline-flex;align-items:center;gap:6px}.add-segment__time-label{font-size:12px;color:#6b7280;font-weight:500}.add-segment__time-input{width:80px;padding:4px 8px;border:1px solid #d1d5db;border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#111827}.add-segment__time-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb26}.add-segment__text{width:100%;padding:8px 10px;border:1px solid #d1d5db;border-radius:6px;font-family:inherit;font-size:14px;line-height:1.5;resize:vertical;background:#fff;color:#111827}.add-segment__text:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26}.add-segment__error{font-size:12px;color:#b91c1c}.add-segment__actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:600px){.recording-detail{padding:16px 14px 32px}.recording-detail__header{flex-direction:column;align-items:stretch}.recording-detail__segment{grid-template-columns:56px 1fr}.recording-detail__segment-speaker{grid-column:1 / -1;align-self:start;width:max-content}.recording-detail__segment-text{grid-column:1 / -1}.segmented{grid-template-columns:1fr}.add-segment{margin-left:12px;margin-right:12px}}.recordings{padding:24px}.recordings__header{margin-bottom:16px}.recordings__filters{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px;align-items:center}.recordings__filters input,.recordings__filters select{padding:6px 10px;border:1px solid #ccc;border-radius:4px}.recordings__error{padding:8px 12px;background:#fdecea;border:1px solid #f5c6cb;color:#b71c1c;border-radius:4px;margin-bottom:12px}.recordings__table{width:100%;border-collapse:collapse}.recordings__table th,.recordings__table td{padding:8px 12px;text-align:left;border-bottom:1px solid #eee}.recordings__table th{background:#f5f5f5;font-weight:600;font-size:13px;color:#555}.recordings__empty{text-align:center;color:#777;padding:24px}.recordings__pill{display:inline-block;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:500;text-transform:capitalize}.recordings__pill--pending,.recordings__pill--processing{background:#e3f2fd;color:#0d47a1}.recordings__pill--completed{background:#e8f5e9;color:#2e7d32}.recordings__pill--failed{background:#fdecea;color:#b71c1c}.recordings__pill--uploading{background:#f5f5f5;color:#555}.recordings__pagination{margin-top:16px;display:flex;align-items:center;gap:12px;justify-content:center}.recordings__pagination button{padding:4px 12px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer}.recordings__pagination button:disabled{opacity:.5;cursor:not-allowed}.rdp-root{--rdp-accent-color: blue;--rdp-accent-background-color: #f0f0ff;--rdp-day-height: 44px;--rdp-day-width: 44px;--rdp-day_button-border-radius: 100%;--rdp-day_button-border: 2px solid transparent;--rdp-day_button-height: 42px;--rdp-day_button-width: 42px;--rdp-selected-border: 2px solid var(--rdp-accent-color);--rdp-disabled-opacity: .5;--rdp-outside-opacity: .75;--rdp-today-color: var(--rdp-accent-color);--rdp-dropdown-gap: .5rem;--rdp-months-gap: 2rem;--rdp-nav_button-disabled-opacity: .5;--rdp-nav_button-height: 2.25rem;--rdp-nav_button-width: 2.25rem;--rdp-nav-height: 2.75rem;--rdp-range_middle-background-color: var(--rdp-accent-background-color);--rdp-range_middle-color: inherit;--rdp-range_start-color: white;--rdp-range_start-background: linear-gradient( var(--rdp-gradient-direction), transparent 50%, var(--rdp-range_middle-background-color) 50% );--rdp-range_start-date-background-color: var(--rdp-accent-color);--rdp-range_end-background: linear-gradient( var(--rdp-gradient-direction), var(--rdp-range_middle-background-color) 50%, transparent 50% );--rdp-range_end-color: white;--rdp-range_end-date-background-color: var(--rdp-accent-color);--rdp-week_number-border-radius: 100%;--rdp-week_number-border: 2px solid transparent;--rdp-week_number-height: var(--rdp-day-height);--rdp-week_number-opacity: .75;--rdp-week_number-width: var(--rdp-day-width);--rdp-weeknumber-text-align: center;--rdp-weekday-opacity: .75;--rdp-weekday-padding: .5rem 0rem;--rdp-weekday-text-align: center;--rdp-gradient-direction: 90deg;--rdp-animation_duration: .3s;--rdp-animation_timing: cubic-bezier(.4, 0, .2, 1)}.rdp-root[dir=rtl]{--rdp-gradient-direction: -90deg}.rdp-root[data-broadcast-calendar=true]{--rdp-outside-opacity: unset}.rdp-root{position:relative;box-sizing:border-box}.rdp-root *{box-sizing:border-box}.rdp-day{width:var(--rdp-day-width);height:var(--rdp-day-height);text-align:center}.rdp-day_button{background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;justify-content:center;align-items:center;display:flex;width:var(--rdp-day_button-width);height:var(--rdp-day_button-height);border:var(--rdp-day_button-border);border-radius:var(--rdp-day_button-border-radius)}.rdp-day_button:disabled{cursor:revert}.rdp-caption_label{z-index:1;position:relative;display:inline-flex;align-items:center;white-space:nowrap;border:0}.rdp-dropdown:focus-visible~.rdp-caption_label{outline:5px auto Highlight;outline:5px auto -webkit-focus-ring-color}.rdp-button_next,.rdp-button_previous{border:none;background:none;padding:0;margin:0;cursor:pointer;font:inherit;color:inherit;-moz-appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;position:relative;appearance:none;width:var(--rdp-nav_button-width);height:var(--rdp-nav_button-height)}.rdp-button_next:disabled,.rdp-button_next[aria-disabled=true],.rdp-button_previous:disabled,.rdp-button_previous[aria-disabled=true]{cursor:revert;opacity:var(--rdp-nav_button-disabled-opacity)}.rdp-chevron{display:inline-block;fill:var(--rdp-accent-color)}.rdp-root[dir=rtl] .rdp-nav .rdp-chevron{transform:rotate(180deg);transform-origin:50%}.rdp-dropdowns{position:relative;display:inline-flex;align-items:center;gap:var(--rdp-dropdown-gap)}.rdp-dropdown{z-index:2;opacity:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset-block-start:0;inset-block-end:0;inset-inline-start:0;width:100%;margin:0;padding:0;cursor:inherit;border:none;line-height:inherit}.rdp-dropdown_root{position:relative;display:inline-flex;align-items:center}.rdp-dropdown_root[data-disabled=true] .rdp-chevron{opacity:var(--rdp-disabled-opacity)}.rdp-month_caption{display:flex;align-content:center;height:var(--rdp-nav-height);font-weight:700;font-size:large}.rdp-root[data-nav-layout=around] .rdp-month,.rdp-root[data-nav-layout=after] .rdp-month{position:relative}.rdp-root[data-nav-layout=around] .rdp-month_caption{justify-content:center;margin-inline-start:var(--rdp-nav_button-width);margin-inline-end:var(--rdp-nav_button-width);position:relative}.rdp-root[data-nav-layout=around] .rdp-button_previous{position:absolute;inset-inline-start:0;top:0;height:var(--rdp-nav-height);display:inline-flex}.rdp-root[data-nav-layout=around] .rdp-button_next{position:absolute;inset-inline-end:0;top:0;height:var(--rdp-nav-height);display:inline-flex;justify-content:center}.rdp-months{position:relative;display:flex;flex-wrap:wrap;gap:var(--rdp-months-gap);max-width:fit-content}.rdp-month_grid{border-collapse:collapse}.rdp-nav{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;height:var(--rdp-nav-height)}.rdp-weekday{opacity:var(--rdp-weekday-opacity);padding:var(--rdp-weekday-padding);font-weight:500;font-size:smaller;text-align:var(--rdp-weekday-text-align);text-transform:var(--rdp-weekday-text-transform)}.rdp-week_number{opacity:var(--rdp-week_number-opacity);font-weight:400;font-size:small;height:var(--rdp-week_number-height);width:var(--rdp-week_number-width);border:var(--rdp-week_number-border);border-radius:var(--rdp-week_number-border-radius);text-align:var(--rdp-weeknumber-text-align)}.rdp-today:not(.rdp-outside){color:var(--rdp-today-color)}.rdp-selected{font-weight:700;font-size:large}.rdp-selected .rdp-day_button{border:var(--rdp-selected-border)}.rdp-outside{opacity:var(--rdp-outside-opacity)}.rdp-disabled:not(.rdp-selected){opacity:var(--rdp-disabled-opacity)}.rdp-hidden{visibility:hidden;color:var(--rdp-range_start-color)}.rdp-range_start{background:var(--rdp-range_start-background)}.rdp-range_start .rdp-day_button{background-color:var(--rdp-range_start-date-background-color);color:var(--rdp-range_start-color)}.rdp-range_middle{background-color:var(--rdp-range_middle-background-color)}.rdp-range_middle .rdp-day_button{border:unset;border-radius:unset;color:var(--rdp-range_middle-color)}.rdp-range_end{background:var(--rdp-range_end-background);color:var(--rdp-range_end-color)}.rdp-range_end .rdp-day_button{color:var(--rdp-range_start-color);background-color:var(--rdp-range_end-date-background-color)}.rdp-range_start.rdp-range_end{background:revert}.rdp-focusable{cursor:pointer}@keyframes rdp-slide_in_left{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes rdp-slide_in_right{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes rdp-slide_out_left{0%{transform:translate(0)}to{transform:translate(-100%)}}@keyframes rdp-slide_out_right{0%{transform:translate(0)}to{transform:translate(100%)}}.rdp-weeks_before_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_before_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-weeks_after_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_enter{animation:rdp-slide_in_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_exit{animation:rdp-slide_out_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_before_enter{animation:rdp-slide_in_right var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-root[dir=rtl] .rdp-weeks_after_exit{animation:rdp-slide_out_left var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}@keyframes rdp-fade_in{0%{opacity:0}to{opacity:1}}@keyframes rdp-fade_out{0%{opacity:1}to{opacity:0}}.rdp-caption_after_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_after_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_enter{animation:rdp-fade_in var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.rdp-caption_before_exit{animation:rdp-fade_out var(--rdp-animation_duration) var(--rdp-animation_timing) forwards}.student-vacation-period-picker{margin-bottom:8px}.student-vacation-period-picker__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px}.student-vacation-period-picker__title{font-weight:600;color:#4a5568;font-size:14px}.student-vacation-period-picker__duration{font-size:13px;font-weight:600;color:#5a67d8;background:linear-gradient(135deg,#667eea1f,#764ba21a);border:1px solid rgba(102,126,234,.25);padding:6px 12px;border-radius:999px}.student-vacation-period-picker__hint{margin:0 0 10px;font-size:13px;color:#718096;line-height:1.45}.student-vacation-period-picker__single-day{margin:0 0 12px;padding:8px 14px;font-size:13px;font-weight:600;color:#5a67d8;background:#f7fafc;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:border-color .2s ease,background .2s ease}.student-vacation-period-picker__single-day:hover:not(:disabled){border-color:#667eea;background:#667eea0f}.student-vacation-period-picker__single-day:disabled{opacity:.55;cursor:not-allowed}.student-vacation-period-picker__summary{margin:0 0 12px;font-size:14px;color:#2d3748;font-weight:500;letter-spacing:.01em}.student-vacation-period-picker__calendar-wrap{border:2px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);padding:12px 8px 16px;box-shadow:0 1px 3px #0000000f}.student-vacation-period-picker__calendar-wrap .student-vacation-period-picker__rdp{--rdp-accent-color: #667eea;--rdp-accent-background-color: rgba(102, 126, 234, .12);--rdp-day-height: 40px;--rdp-day-width: 40px;--rdp-day_button-height: 38px;--rdp-day_button-width: 38px;margin:0 auto}.student-vacation-period-picker__errors{margin-top:10px;display:flex;flex-direction:column;gap:4px}.student-vacation-period-picker__errors .error-text{display:block}.subscription-period-picker{margin-bottom:12px;display:flex;flex-direction:column;align-items:flex-start}.subscription-period-picker__header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:8px;width:100%;max-width:42rem}.subscription-period-picker__title{font-weight:600;color:#4a5568;font-size:14px}.subscription-period-picker__hint{margin:0 0 10px;font-size:13px;color:#718096;line-height:1.45;max-width:42rem}.subscription-period-picker__summary{margin:0 0 12px;font-size:14px;color:#2d3748;font-weight:500;width:100%;max-width:42rem}.subscription-period-picker__calendar-wrap{display:inline-block;width:fit-content;max-width:100%;box-sizing:border-box;vertical-align:top;border:2px solid #e2e8f0;border-radius:12px;background:linear-gradient(180deg,#fff,#f8fafc);padding:12px 8px 16px;box-shadow:0 1px 3px #0000000f}.subscription-period-picker__rdp{--rdp-accent-color: #667eea;--rdp-accent-background-color: rgba(102, 126, 234, .12);--rdp-day-height: 40px;--rdp-day-width: 40px;--rdp-day_button-height: 38px;--rdp-day_button-width: 38px;width:fit-content!important;max-width:100%;margin:0}.subscription-period-picker__rdp [class*=rdp-months],.subscription-period-picker__rdp [class*=rdp-month]{width:fit-content!important;max-width:100%}.subscription-period-picker__rdp .subscription-period-picker__day_busy{background:#71809638;color:#4a5568;border-radius:6px}.subscription-period-picker__rdp .subscription-period-picker__day_busy button{font-weight:600}.subscription-period-picker__errors{margin-top:10px;display:flex;flex-direction:column;gap:4px}.subscription-period-picker__errors .error-text{display:block}.contact-row-new{background:#fff5f5}.contact-status-new{color:#e53e3e;font-weight:600}.contact-status-processing{color:#d69e2e;font-weight:500}.contact-status-invalid{color:#a0aec0}.contact-status-consultation{color:#38a169;font-weight:500}.App-logo{height:40vmin;pointer-events:none}@media(prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin infinite 20s linear}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}input[type=date]{font-family:inherit;font-size:inherit;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;background-color:#fff;color:#374151;cursor:pointer}input[type=date]:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}input[type=date]:hover{border-color:#9ca3af}input[type=date]{min-width:140px;width:auto}.form-input[type=date]{width:100%;max-width:200px}.filter-select[type=date]{min-width:120px}input[type=date]:disabled{background-color:#f3f4f6;color:#9ca3af;cursor:not-allowed}input[type=date].error{border-color:#ef4444}input[type=date].error:focus{border-color:#ef4444;box-shadow:0 0 0 3px #ef44441a}
