@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap";:root{--primary: #2563EB;--primary-hover: #1D4ED8;--bg-main: #F9FAFB;--bg-surface: #FFFFFF;--bg-sidebar: #FFFFFF;--text-primary: #111827;--text-secondary: #6B7280;--border: #E5E7EB;--divider: #F3F4F6;--status-success-bg: #E6FFFA;--status-success-text: #047857;--status-warning-bg: #FFFAF0;--status-warning-text: #B7791F;--status-warning-border: #FEEBC8;--status-gray-bg: #F3F4F6;--status-gray-text: #4B5563;--status-error-bg: #FEF2F2;--status-error-text: #DC2626;--header-height: 64px;--sidebar-width: 256px}*{box-sizing:border-box}body{margin:0;font-family:Inter,sans-serif;background-color:var(--bg-main);color:var(--text-primary);-webkit-font-smoothing:antialiased}button{font-family:inherit}h1,h2,h3,h4,h5,h6{margin:0}a{text-decoration:none;color:inherit}.page-container{display:flex;flex-direction:column;gap:24px}.page-header{display:flex;justify-content:space-between;align-items:flex-start}.page-header h1{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.page-subtitle{color:var(--text-secondary);font-size:14px}.btn-primary{background:var(--primary);color:#fff;border:none;padding:10px 20px;border-radius:8px;font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.btn-primary:hover{background:var(--primary-hover)}.btn-icon-outline{border:1px solid var(--border);background:#fff;width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary)}.control-bar{background:var(--bg-surface);padding:16px;border-radius:12px;border:1px solid var(--border);display:flex;justify-content:space-between}.search-box{position:relative;width:320px}.search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#9ca3af}.search-box input{width:100%;padding:10px 10px 10px 40px;border:1px solid var(--border);border-radius:8px;font-size:14px;outline:none;transition:border-color .2s}.search-box input:focus{border-color:var(--primary)}.filters{display:flex;gap:12px}.dropdown{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid var(--border);padding:8px 16px;border-radius:8px;font-size:14px;color:var(--text-secondary);background:#f9fafb;cursor:pointer;min-width:160px}.table-container{background:var(--bg-surface);border-radius:12px;border:1px solid var(--border);overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:16px;background:#f9fafb;color:#6b7280;font-size:12px;font-weight:600;text-transform:uppercase;border-bottom:1px solid var(--border)}.data-table td{padding:16px;border-bottom:1px solid var(--divider);vertical-align:middle}.pagination{padding:16px;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--border)}.pagination-controls{display:flex;gap:4px}.page-btn{width:32px;height:32px;border:1px solid var(--border);background:#fff;border-radius:6px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-secondary)}.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.status-badge{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:500;display:inline-block;white-space:nowrap}.status-badge.active,.status-badge.studying{background:var(--status-success-bg);color:var(--status-success-text)}.status-badge.leave,.status-badge.waiting{background:var(--status-warning-bg);color:var(--status-warning-text)}.status-badge.retired,.status-badge.paused{background:var(--status-error-bg);color:var(--status-error-text)}.status-badge.neutral{background:var(--status-gray-bg);color:var(--status-gray-text)}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(prefers-reduced-motion:no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.topbar{height:var(--header-height);background:var(--bg-surface);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 32px}.topbar-search{position:relative;width:480px}.search-icon-global{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:#9ca3af;font-size:16px}.topbar-search input{width:100%;height:44px;padding:10px 16px 10px 44px;border:none;background:#f3f4f6;border-radius:8px;font-size:14px;outline:none;color:var(--text-primary)}.topbar-search input::placeholder{color:#9ca3af}.topbar-actions{display:flex;align-items:center;gap:20px}.icon-btn{background:none;border:none;cursor:pointer;color:#64748b;position:relative;display:flex;align-items:center;justify-content:center;padding:8px}.icon-btn:hover{color:var(--primary)}.badge-dot{position:absolute;top:6px;right:8px;width:6px;height:6px;background:#ef4444;border-radius:50%}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);flex-shrink:0;background:var(--bg-sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100vh;position:sticky;top:0}.sidebar-header{height:80px;display:flex;align-items:center;padding:0 24px;gap:12px;border-bottom:1px solid transparent}.logo-icon{width:40px;height:40px;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:24px}.logo-title{font-weight:700;font-size:16px;color:var(--text-primary)}.logo-subtitle{font-size:12px;color:var(--text-secondary)}.sidebar-nav{padding:24px 16px;flex:1;display:flex;flex-direction:column;gap:4px}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:var(--text-secondary);border-radius:8px;font-size:14px;font-weight:500;transition:all .2s}.nav-item:hover{background:var(--bg-main);color:var(--primary)}.nav-item.active{background:#eff6ff;color:var(--primary)}.sidebar-footer{padding:24px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:4px}.nav-item.logout{color:#ef4444}@media(max-width:768px){.sidebar{position:fixed;top:0;left:0;height:100vh;z-index:50;background:#fff;transform:translate(-100%);transition:transform .3s ease-in-out;box-shadow:2px 0 8px #0000001a}.sidebar.open{transform:translate(0)}.sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:40;display:none}.sidebar-overlay.open{display:block}.mobile-close-btn{display:block!important;font-size:20px;padding:8px}}.dashboard-container{display:flex;flex-direction:column;gap:24px}.dashboard-header h1{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.dashboard-subtitle{color:var(--text-secondary);font-size:14px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.dashboard-stat-card{background:#fff;padding:24px;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;gap:16px}.stat-card-top{display:flex;justify-content:space-between;align-items:center}.stat-icon-wrapper{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center}.stat-change{font-size:12px;font-weight:600;padding:4px 8px;border-radius:6px}.stat-change.increase{background:#dcfce7;color:#166534}.stat-change.neutral{background:#f3f4f6;color:#4b5563}.stat-change.warning{background:#ffedd5;color:#c2410c}.stat-value-large{font-size:32px;font-weight:700;color:var(--text-primary)}.charts-section{display:grid;grid-template-columns:2fr 1fr;gap:24px}.chart-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.chart-header h3{font-size:16px;font-weight:600;color:var(--text-primary)}.chart-filter{background:#f3f4f6;padding:4px 12px;border-radius:6px;font-size:12px;color:#4b5563;font-weight:500}.flex-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.pie-wrapper{width:100%;height:200px;position:relative;display:flex;align-items:center;justify-content:center}.pie-label-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center}.pie-total{font-size:24px;font-weight:700;color:var(--text-primary)}.pie-sub{font-size:12px;color:var(--text-secondary)}.chart-legend{width:100%;margin-top:16px}.legend-item{display:flex;align-items:center;justify-content:space-between;padding:8px 0;font-size:13px;color:#4b5563}.legend-dot{width:10px;height:10px;border-radius:50%;margin-right:8px;display:inline-block}.legend-text{flex:1}.legend-val{font-weight:600;color:var(--text-primary)}.bottom-section{display:flex;flex-direction:column;gap:24px}.section-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;min-height:200px}.card-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.card-header-row h3{font-size:16px;font-weight:600;color:var(--text-primary)}.view-all{font-size:12px;color:var(--primary);font-weight:500}.simple-table{width:100%;border-collapse:collapse}.simple-table th{text-align:left;font-size:11px;color:#6b7280;text-transform:uppercase;padding:12px 16px;border-bottom:1px solid var(--divider);background-color:#f9fafb;font-weight:600}.simple-table td{padding:16px;border-bottom:1px solid #F3F4F6;color:#374151;font-size:14px}.simple-table tr:last-child td{border-bottom:none}.notification-item.urgent{background:#fef2f2;border:1px solid #FECACA;border-radius:8px;padding:16px;display:flex;gap:12px}.notif-title{font-weight:600;color:#991b1b;font-size:14px}.notif-desc{font-size:13px;color:#7f1d1d;margin-top:4px}.notif-time{font-size:11px;color:#991b1b;margin-top:8px;opacity:.8}.finance-page{display:flex;flex-direction:column;gap:24px;padding:24px;background-color:#f8fafc;min-height:100vh}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;padding:24px;border-radius:8px;width:400px;box-shadow:0 4px 6px -1px #0000001a}.modal-content h3{margin-top:0;margin-bottom:20px;color:#1e293b}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-size:14px;font-weight:500;color:#475569}.form-group input,.form-group select{width:100%;padding:8px 12px;border:1px solid #E2E8F0;border-radius:6px;font-size:14px;outline:none}.form-group input:focus,.form-group select:focus{border-color:#2563eb}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px}.finance-header{display:flex;justify-content:space-between;align-items:flex-start}.breadcrumb-finance{font-size:13px;color:var(--text-secondary);margin-bottom:8px}.finance-header h1{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:4px}.finance-subtitle{font-size:14px;color:var(--text-secondary)}.header-actions{display:flex;gap:12px}.btn-primary-blue{background:#2563eb;color:#fff;border:none;padding:10px 16px;border-radius:8px;font-weight:600;display:flex;align-items:center;gap:8px;cursor:pointer}.finance-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.f-stat-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:16px}.f-stat-top{display:flex;justify-content:space-between;align-items:flex-start}.f-stat-label{font-size:13px;font-weight:500;color:var(--text-secondary);max-width:70%}.f-stat-icon{width:36px;height:36px;border-radius:8px;display:flex;align-items:center;justify-content:center}.f-stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.f-stat-meta{display:flex;align-items:center;gap:8px;font-size:12px}.f-change{font-weight:600;display:flex;align-items:center;gap:2px}.f-change.positive{color:#16a34a}.f-change.negative{color:#dc2626}.f-sub{color:var(--text-secondary);display:flex;align-items:center}.f-sub.warning-text{color:#ea580c;font-weight:500}.finance-charts-row{display:grid;grid-template-columns:2fr 1fr;gap:24px}.chart-container{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px}.chart-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.chart-header-row h3{font-size:16px;font-weight:600;color:var(--text-primary)}.chart-legend-custom{display:flex;gap:16px;font-size:12px;color:var(--text-secondary)}.legend-dot{width:8px;height:8px;border-radius:50%;margin-right:6px;display:inline-block}.legend-dot.blue{background:#2563eb}.legend-dot.gray{background:#e2e8f0}.cost-list{display:flex;flex-direction:column;gap:20px}.cost-row-top{display:flex;justify-content:space-between;font-size:13px;margin-bottom:6px}.cost-label{color:var(--text-secondary)}.cost-val-bold{font-weight:600;color:var(--text-primary)}.cost-percent{font-weight:400;color:var(--text-secondary)}.progress-bg{width:100%;height:6px;background:#f1f5f9;border-radius:4px;overflow:hidden}.progress-bar{height:100%;border-radius:4px}.transactions-section{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px}.table-actions-row{display:flex;gap:12px}.btn-outline-sm{border:1px solid var(--border);background:#fff;padding:6px 12px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:6px;cursor:pointer;color:var(--text-secondary)}.btn-primary-blue-sm{background:#2563eb;color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:13px;display:flex;align-items:center;gap:6px;cursor:pointer}.trans-table{width:100%;border-collapse:collapse}.trans-table th{text-align:left;font-size:11px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;padding:12px;border-bottom:1px solid var(--border);background:#f9fafb}.trans-table th:first-child{border-top-left-radius:8px}.trans-table th:last-child{border-top-right-radius:8px}.trans-table td{padding:16px 12px;border-bottom:1px solid var(--border);font-size:13px}.trx-id{font-weight:600;color:var(--text-primary)}.trx-main{font-weight:500;color:var(--text-primary)}.trx-sub{font-size:12px;color:var(--text-secondary);margin-top:2px}.trx-type-badge{padding:4px 8px;border-radius:4px;font-size:11px;font-weight:500}.trx-type-badge.income{background:#eff6ff;color:#2563eb}.trx-type-badge.expense{background:#f8fafc;color:#64748b}.trx-amount.income{color:#16a34a;font-weight:600}.trx-amount.expense{color:#1f2937;font-weight:600}.status-badge-sm{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:500}.status-badge-sm.completed{background:#dcfce7;color:#166534}.status-badge-sm.pending{background:#fef3c7;color:#d97706}.teacher-dashboard{display:flex;flex-direction:column;gap:24px}.welcome-banner{display:flex;justify-content:space-between;align-items:flex-end}.welcome-title{font-size:24px;font-weight:700;color:var(--text-primary);margin-bottom:8px}.welcome-sub{color:var(--text-secondary);font-size:14px}.welcome-actions{display:flex;gap:12px}.btn-outline{background:#fff;border:1px solid var(--border);padding:8px 16px;border-radius:8px;font-weight:600;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px}.btn-primary-light{background:#eff6ff;border:1px solid #BFDBFE;color:#2563eb;padding:8px 16px;border-radius:8px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:14px}.t-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.t-stat-card{background:#fff;padding:20px;border-radius:12px;border:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.t-stat-top{display:flex;justify-content:space-between;align-items:flex-start}.t-stat-label{font-size:13px;color:var(--text-secondary);font-weight:500}.t-stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center}.t-stat-value{font-size:28px;font-weight:700;color:var(--text-primary)}.t-stat-sub{font-size:12px;color:#10b981;font-weight:500}.t-stat-sub.warning-text{background:#fef2f2;color:#dc2626;padding:2px 8px;border-radius:4px;width:fit-content}.dashboard-columns{display:grid;grid-template-columns:2fr 1fr;gap:24px}.column-main{background:#fff;border:1px solid var(--border);border-radius:12px;padding:24px}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.section-header h3{font-size:16px;font-weight:700;display:flex;align-items:center;gap:10px}.section-icon-blue{color:#2563eb}.section-icon-orange{color:#f97316}.link-action{font-size:13px;color:var(--primary);font-weight:500}.schedule-list{position:relative;padding-left:12px}.schedule-item{position:relative;padding-left:24px;padding-bottom:24px}.timeline-dot{position:absolute;left:0;top:0;width:6px;height:6px;background:#2563eb;border-radius:50%;margin-top:6px}.timeline-line{position:absolute;left:2px;top:14px;bottom:0;width:2px;background:#e5e7eb}.schedule-time{font-size:11px;font-weight:600;color:#2563eb;text-transform:uppercase;margin-bottom:8px}.schedule-card{display:flex;justify-content:space-between;align-items:center;background:#f8fafc;padding:16px;border-radius:12px;border:1px solid #E2E8F0}.schedule-info h4{font-size:15px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.schedule-room{font-size:13px;color:var(--text-secondary)}.schedule-actions{display:flex;align-items:center;gap:12px}.avatar-group{display:flex;align-items:center}.avatar-group img{width:28px;height:28px;border-radius:50%;border:2px solid white;margin-left:-8px}.avatar-group img:first-child{margin-left:0}.avatar-more{width:28px;height:28px;border-radius:50%;background:#e2e8f0;color:#64748b;font-size:10px;display:flex;align-items:center;justify-content:center;border:2px solid white;margin-left:-8px;font-weight:600}.btn-primary-sm{background:var(--primary);color:#fff;border:none;padding:6px 12px;border-radius:6px;font-size:12px;font-weight:600;cursor:pointer}.btn-icon-sm{background:none;border:none;cursor:pointer;font-size:16px;color:#9ca3af}.column-side{display:flex;flex-direction:column;gap:24px}.side-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px}.todo-list{display:flex;flex-direction:column;gap:16px;margin-bottom:16px}.todo-item{display:flex;gap:12px;align-items:flex-start}.todo-check{margin-top:4px;width:16px;height:16px;accent-color:var(--primary)}.todo-title{font-size:14px;color:var(--text-primary);font-weight:500;line-height:1.4}.todo-deadline{font-size:11px;color:#6b7280;margin-top:2px}.deadline-high{color:#dc2626;font-weight:500}.add-task-btn{width:100%;background:none;border:1px dashed var(--border);padding:8px;border-radius:8px;color:var(--text-secondary);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.add-task-btn:hover{background:#f9fafb;color:var(--text-primary)}.badge-new{background:#fee2e2;color:#dc2626;font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.notif-box{display:flex;gap:12px;padding:12px;background:#f8fafc;border-radius:8px;margin-bottom:12px}.notif-icon-box{background:#dbeafe;color:#2563eb;width:28px;height:28px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.notif-icon-box.success{background:#dcfce7;color:#166534}.notif-box-title{font-weight:600;font-size:13px;color:var(--text-primary)}.notif-box-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}.notif-box-time{font-size:10px;color:#9ca3af;margin-top:4px}.teacher-info-cell{display:flex;align-items:center;gap:12px}.teacher-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover}.teacher-name{font-weight:600;font-size:14px;color:var(--text-primary)}.teacher-id{font-size:12px;color:var(--text-secondary)}.specialty-badge{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:20px;font-size:12px;width:fit-content}.specialty-badge.coach{background:#f3f4f6;color:#374151}.specialty-badge.master{background:#eff6ff;color:#1d4ed8}.sc-icon{font-size:16px}.role-text{font-weight:600}.elo-text{font-size:11px;opacity:.8}.class-count{display:flex;align-items:center;gap:4px}.count-number{background:#f3f4f6;padding:2px 8px;border-radius:4px;font-weight:600;font-size:14px}.contact-row{display:flex;align-items:center;gap:6px;font-size:13px;color:#4b5563;margin-bottom:4px}.c-icon{width:16px;text-align:center}.stats-row{display:flex;gap:24px}.stat-card{flex:1;background:var(--bg-surface);padding:24px;border-radius:12px;border:1px solid var(--border);display:flex;justify-content:space-between;align-items:flex-start}.stat-content{display:flex;flex-direction:column;gap:8px}.stat-label{font-size:14px;color:var(--text-secondary)}.stat-value{font-size:28px;font-weight:700;color:var(--text-primary)}.stat-trend{font-size:12px;font-weight:500}.stat-trend.positive{color:var(--status-success-text)}.stat-warning{font-size:12px;font-weight:500;color:#b7791f}.stat-sub{font-size:12px;color:var(--text-secondary)}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px}.bg-blue{background:#eff6ff}.bg-green{background:#e6fffa}.bg-orange{background:#fffaf0}@media(max-width:768px){.page-header{flex-direction:row;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.page-header>div:first-child{flex:1;overflow:hidden}.page-header h1{font-size:18px;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-subtitle{display:none}.control-bar{padding:0;background:transparent;border:none;flex-direction:column;gap:12px}.search-box{width:100%;box-shadow:0 1px 3px #0000000d}.search-box input{border:none;background:#fff;padding-top:12px;padding-bottom:12px}.filters{display:flex;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;gap:8px;width:100%;-webkit-overflow-scrolling:touch;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.dropdown{min-width:auto;white-space:nowrap;padding:8px 16px;background:#fff;border-radius:20px;border:1px solid #E5E7EB;box-shadow:0 1px 2px #0000000d;font-size:13px;flex-shrink:0}.table-container{background:transparent;border:none;border-radius:0;box-shadow:none;overflow-x:auto;margin:0 -16px}.data-table{min-width:100%;border-collapse:separate;border-spacing:0 8px}.data-table thead{display:none}.data-table tbody tr{background:#fff}.data-table th,.data-table td{background:#fff;padding:12px 16px;font-size:13px;border-bottom:1px solid #F3F4F6;white-space:nowrap}.data-table th:first-child,.data-table td:first-child{position:sticky;left:0;z-index:10;border-right:2px solid #F3F4F6}.data-table th:first-child{z-index:20}.page-container{gap:12px;padding-bottom:24px}.topbar{padding:0 16px;height:56px}.topbar-search{display:none!important}.topbar-actions{gap:12px}}
