@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";:root{--bg-primary: #f8f9fc;--bg-card: #ffffff;--bg-sidebar: #0f1225;--bg-sidebar-hover: rgba(255, 255, 255, .06);--bg-sidebar-active: rgba(99, 132, 255, .15);--text-primary: #1a1d2e;--text-secondary: #5f6580;--text-tertiary: #9498b3;--text-sidebar: rgba(255, 255, 255, .55);--text-sidebar-active: #fff;--accent: #5b6ef5;--accent-hover: #4a5ce3;--accent-subtle: rgba(91, 110, 245, .08);--green: #22c55e;--green-bg: rgba(34, 197, 94, .1);--red: #ef4444;--red-bg: rgba(239, 68, 68, .1);--orange: #f59e0b;--orange-bg: rgba(245, 158, 11, .1);--purple: #8b5cf6;--purple-bg: rgba(139, 92, 246, .1);--border: #e8eaf0;--border-light: #f1f2f6;--shadow-sm: 0 1px 2px rgba(15, 18, 37, .04);--shadow-md: 0 2px 8px rgba(15, 18, 37, .06), 0 1px 2px rgba(15, 18, 37, .04);--shadow-lg: 0 8px 24px rgba(15, 18, 37, .08), 0 2px 8px rgba(15, 18, 37, .04);--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--sidebar-width: 240px;--transition: .2s cubic-bezier(.4, 0, .2, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:DM Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);background-image:linear-gradient(180deg,#141736,#0f1225);color:#fff;display:flex;flex-direction:column;padding:0;position:fixed;height:100vh;z-index:100;border-right:1px solid rgba(255,255,255,.04)}.sidebar-header{padding:28px 24px 24px;border-bottom:1px solid rgba(255,255,255,.06)}.sidebar-header h2{font-size:1.05rem;font-weight:600;letter-spacing:-.01em;color:#fff}.nav-links{flex:1;padding:16px 12px;display:flex;flex-direction:column;gap:2px}.nav-links a{display:flex;align-items:center;padding:10px 16px;color:var(--text-sidebar);text-decoration:none;font-size:.9rem;font-weight:450;border-radius:var(--radius-sm);transition:all var(--transition);letter-spacing:.01em}.nav-links a:hover{background:var(--bg-sidebar-hover);color:#ffffffd9}.nav-links a.active{background:var(--bg-sidebar-active);color:var(--text-sidebar-active);font-weight:500}.logout-btn{margin:12px;padding:10px 16px;background:#ef44441a;color:#fff9;border:1px solid rgba(239,68,68,.15);border-radius:var(--radius-sm);cursor:pointer;font-size:.85rem;font-family:inherit;transition:all var(--transition);letter-spacing:.01em}.logout-btn:hover{background:#ef444433;color:#ffffffd9;border-color:#ef44444d}.content{flex:1;margin-left:var(--sidebar-width);padding:32px 40px;max-width:100%}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background:var(--bg-sidebar);background-image:radial-gradient(ellipse at 30% 20%,rgba(91,110,245,.12) 0%,transparent 60%),radial-gradient(ellipse at 70% 80%,rgba(139,92,246,.08) 0%,transparent 60%),linear-gradient(180deg,#141736,#0f1225)}.login-form{background:var(--bg-card);padding:44px 40px;border-radius:var(--radius-lg);width:380px;text-align:center;box-shadow:var(--shadow-lg),0 0 0 1px #ffffff0d}.login-form h1{font-size:1.4rem;font-weight:700;margin-bottom:28px;color:var(--text-primary);letter-spacing:-.02em}.form-group{margin-bottom:18px;text-align:left}.form-group label{display:block;font-size:.8rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px;letter-spacing:.02em;text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.92rem;font-family:inherit;background:var(--bg-card);color:var(--text-primary);transition:all var(--transition);outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.form-group input::placeholder{color:var(--text-tertiary)}.primary-btn{display:block;width:100%;padding:11px 20px;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:.92rem;font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition);letter-spacing:.01em}.primary-btn:hover{background:var(--accent-hover);box-shadow:0 2px 8px #5b6ef540;transform:translateY(-1px)}.primary-btn:active{transform:translateY(0)}.primary-btn:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.success-btn{padding:9px 20px;background:var(--green);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;font-weight:600;font-family:inherit;transition:all var(--transition)}.success-btn:hover{background:#16a34a;box-shadow:0 2px 8px #22c55e40;transform:translateY(-1px)}.danger-btn{padding:9px 20px;background:var(--red);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;font-weight:600;font-family:inherit;transition:all var(--transition)}.danger-btn:hover{background:#dc2626;box-shadow:0 2px 8px #ef444440;transform:translateY(-1px)}.back-btn{padding:8px 18px;background:transparent;color:var(--accent);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;margin-bottom:16px;font-size:.88rem;font-family:inherit;font-weight:500;transition:all var(--transition)}.back-btn:hover{border-color:var(--accent);background:var(--accent-subtle)}.sm-btn{padding:5px 12px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:.8rem;font-weight:600;font-family:inherit;color:#fff;margin:0 2px;transition:all var(--transition)}.sm-btn:hover{transform:translateY(-1px)}.sm-btn.success{background:var(--green)}.sm-btn.success:hover{box-shadow:0 2px 6px #22c55e4d}.sm-btn.danger{background:var(--red)}.sm-btn.danger:hover{box-shadow:0 2px 6px #ef44444d}.loading{text-align:center;padding:48px;color:var(--text-tertiary);font-size:.92rem}.error-msg{color:var(--red);font-size:.85rem;margin:8px 0;font-weight:500}h1{font-size:1.5rem;font-weight:700;margin-bottom:20px;color:var(--text-primary);letter-spacing:-.02em}h2{font-size:1.05rem;font-weight:600;margin:20px 0 12px;color:var(--text-secondary);letter-spacing:-.01em}.widgets{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:28px}.widget{background:var(--bg-card);padding:22px 24px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:all var(--transition)}.widget:hover{box-shadow:var(--shadow-md)}.widget.alert{border-left:3px solid var(--purple);background:linear-gradient(135deg,var(--bg-card) 0%,var(--purple-bg) 100%)}.widget.warning{border-left:3px solid var(--red);background:linear-gradient(135deg,var(--bg-card) 0%,var(--red-bg) 100%)}.widget-value{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;color:var(--text-primary)}.widget-label{font-size:.8rem;font-weight:500;color:var(--text-tertiary);margin-top:4px;text-transform:uppercase;letter-spacing:.04em}.chart{display:flex;align-items:flex-end;gap:8px;background:var(--bg-card);padding:24px;border-radius:var(--radius-md);height:200px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.chart-bar-container{flex:1;display:flex;flex-direction:column;align-items:center}.chart-bar{width:100%;max-width:36px;background:linear-gradient(180deg,var(--accent) 0%,#7c8cf8 100%);border-radius:5px 5px 0 0;min-height:2px;transition:all .4s cubic-bezier(.4,0,.2,1)}.chart-bar:hover{background:linear-gradient(180deg,var(--accent-hover) 0%,var(--accent) 100%);filter:brightness(1.1)}.chart-label{font-size:.7rem;color:var(--text-tertiary);margin-top:6px;font-weight:500}.data-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.data-table th{text-align:left;padding:14px 18px;background:var(--bg-primary);font-weight:600;font-size:.78rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.data-table td{padding:14px 18px;border-top:1px solid var(--border-light);font-size:.9rem;color:var(--text-primary)}.data-table tr.clickable{cursor:pointer;transition:background var(--transition)}.data-table tr.clickable:hover{background:var(--accent-subtle)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:600;margin-right:4px;letter-spacing:.02em;text-transform:uppercase}.badge.active{background:var(--green-bg);color:var(--green)}.badge.inactive{background:var(--red-bg);color:var(--red)}.badge.unactivated{background:var(--orange-bg);color:var(--orange)}.badge.overdue{background:var(--red-bg);color:var(--red)}.badge.waiting{background:var(--purple-bg);color:var(--purple)}.toolbar{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap;align-items:center}.toolbar input{padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;font-family:inherit;width:260px;background:var(--bg-card);color:var(--text-primary);transition:all var(--transition);outline:none}.toolbar input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.toolbar input::placeholder{color:var(--text-tertiary)}.filters{display:flex;gap:4px}.filter-btn{padding:7px 14px;border:1px solid var(--border);background:var(--bg-card);border-radius:var(--radius-sm);font-size:.8rem;font-weight:500;font-family:inherit;cursor:pointer;color:var(--text-secondary);transition:all var(--transition)}.filter-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 1px 4px #5b6ef533}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:20px}.pagination button{padding:7px 18px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;font-family:inherit;font-weight:500;color:var(--text-primary);transition:all var(--transition)}.pagination button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.pagination button:disabled{opacity:.35;cursor:not-allowed}.pagination span{font-size:.88rem;color:var(--text-secondary);font-weight:500}.student-header{display:flex;align-items:center;gap:12px;margin-bottom:20px}.student-info{background:var(--bg-card);border-radius:var(--radius-md);padding:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);margin-bottom:20px}.info-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-light);font-size:.9rem}.info-row:last-child{border-bottom:none}.info-row .token{font-size:.75rem;font-family:SF Mono,Fira Code,monospace;color:var(--text-tertiary);background:var(--bg-primary);padding:2px 8px;border-radius:4px}.actions{margin-bottom:24px;display:flex;gap:8px;flex-wrap:wrap}.sale-card{background:var(--bg-card);border-radius:var(--radius-md);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light);transition:box-shadow var(--transition)}.sale-card:hover{box-shadow:var(--shadow-md)}.sale-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.sale-amounts{display:flex;gap:20px;font-size:.85rem;color:var(--text-secondary);margin-bottom:14px}.payments-table{width:100%;border-collapse:collapse;font-size:.85rem}.payments-table th{text-align:left;padding:10px 12px;background:var(--bg-primary);font-weight:600;font-size:.78rem;color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.04em}.payments-table td{padding:10px 12px;border-top:1px solid var(--border-light)}.receipt-actions{display:flex;align-items:center;gap:4px}.receipt-amount{font-size:.8rem;color:var(--text-tertiary);margin-right:4px;font-weight:500}.checkbox-label{display:flex;align-items:center;gap:10px;margin-bottom:14px;cursor:pointer;font-size:.92rem;color:var(--text-primary)}.checkbox-label input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.settings-section{background:var(--bg-card);padding:24px;border-radius:var(--radius-md);margin-bottom:16px;box-shadow:var(--shadow-sm);border:1px solid var(--border-light)}.settings-section h2{margin-top:0}.sheet-list{display:flex;gap:8px;flex-wrap:wrap}.sheet-btn{padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;font-size:.88rem;font-family:inherit;font-weight:500;color:var(--text-secondary);transition:all var(--transition)}.sheet-btn:hover{border-color:var(--accent);color:var(--accent)}.sheet-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.mapping-row{display:flex;align-items:center;gap:12px;margin-bottom:10px}.mapping-row label{width:140px;font-size:.88rem;color:var(--text-secondary);font-weight:500}.mapping-row select{flex:1;padding:8px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:inherit;font-size:.9rem;background:var(--bg-card);color:var(--text-primary);outline:none;transition:all var(--transition)}.mapping-row select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-subtle)}.preview-stats{background:var(--bg-primary);padding:18px;border-radius:var(--radius-sm);margin:14px 0;border:1px solid var(--border-light)}.preview-stats div{padding:4px 0;font-size:.88rem;color:var(--text-secondary)}.import-result{background:var(--green-bg);padding:24px;border-radius:var(--radius-md);border:1px solid rgba(34,197,94,.2)}.modal-overlay{position:fixed;inset:0;background:#0f122599;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal{background:var(--bg-card);padding:28px;border-radius:var(--radius-lg);width:440px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:var(--shadow-lg);border:1px solid var(--border-light);animation:slideUp .25s ease}.modal h2{margin-top:0;margin-bottom:20px;font-size:1.15rem}.modal-actions{display:flex;gap:10px;margin-top:20px}.modal-actions .primary-btn,.modal-actions .danger-btn{flex:1}.modal-actions .back-btn{margin-bottom:0}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.page-header h1{margin-bottom:0}.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition)}.sortable:hover{color:var(--accent)}.burger-btn{display:none;position:fixed;top:14px;left:14px;z-index:1001;background:var(--bg-sidebar);color:#fff;border:none;border-radius:var(--radius-sm);padding:8px 12px;font-size:1.2rem;cursor:pointer;box-shadow:var(--shadow-md)}.sidebar-overlay{display:none}@media(max-width:768px){.burger-btn{display:block}.sidebar{transform:translate(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);z-index:1000}.sidebar.open{transform:translate(0);box-shadow:4px 0 24px #0f12254d}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0f122580;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999}.sidebar-overlay.open{display:block}.content{margin-left:0;padding:64px 16px 20px}.toolbar{flex-direction:column;align-items:stretch}.toolbar input{width:100%}.filters{flex-wrap:wrap}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}::selection{background:#5b6ef533;color:var(--text-primary)}.students-page .data-table th:nth-child(1),.students-page .data-table td:nth-child(1){width:14%}.students-page .data-table th:nth-child(2),.students-page .data-table td:nth-child(2){width:15%}.students-page .data-table td:nth-child(2){color:var(--accent);font-weight:500}.students-page .data-table th:nth-child(3),.students-page .data-table td:nth-child(3){width:18%;font-size:.84rem;color:var(--text-secondary)}.students-page .data-table th:nth-child(4),.students-page .data-table td:nth-child(4){width:13%;font-weight:600}.students-page .data-table th:nth-child(5),.students-page .data-table td:nth-child(5){width:18%}.students-page .data-table th:nth-child(6),.students-page .data-table td:nth-child(6){width:22%}.next-pay-info{display:flex;align-items:center;gap:6px}.next-pay-amount{font-size:.8rem;color:var(--text-tertiary);font-weight:500}.detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.detail-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.85rem;font-family:inherit;font-weight:500;color:var(--text-primary);cursor:pointer;transition:all var(--transition)}.detail-action-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.detail-action-btn.danger:hover{border-color:var(--red);color:var(--red);background:var(--red-bg)}.detail-action-btn.small{padding:6px 12px;font-size:.82rem}.action-icon{font-size:.9rem}.pending-receipts-section{margin-bottom:24px}.pending-receipts-section h2{color:var(--purple)}.receipt-card{background:var(--bg-card);border:1px solid var(--border-light);border-left:3px solid var(--purple);border-radius:var(--radius-md);padding:16px 20px;margin-bottom:10px;box-shadow:var(--shadow-sm)}.receipt-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.receipt-meta{font-size:.84rem;color:var(--text-secondary);font-weight:400}.receipt-date{font-size:.8rem;color:var(--text-tertiary);white-space:nowrap}.receipt-method{font-size:.84rem;color:var(--text-secondary);margin-top:6px}.receipt-file-link{display:inline-block;font-size:.84rem;color:var(--accent);margin-top:6px;text-decoration:none}.receipt-file-link:hover{text-decoration:underline}.receipt-card-actions{display:flex;gap:8px;margin-top:12px}.receipt-card-actions .success-btn,.receipt-card-actions .danger-btn{padding:7px 20px;font-size:.85rem}.sales-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.sales-header h2{margin:0}.sale-card-top{display:flex;justify-content:space-between;align-items:center;cursor:pointer;padding:4px 0}.sale-card-info{flex:1;min-width:0}.sale-card-title{display:flex;align-items:center;gap:10px;margin-bottom:8px}.sale-card-title strong{font-size:1rem}.sale-progress-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}.sale-progress-bar{flex:1;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.sale-progress-fill{height:100%;background:var(--green);border-radius:3px;transition:width .4s ease}.sale-progress-text{font-size:.8rem;font-weight:600;color:var(--text-tertiary);min-width:36px;text-align:right}.sale-chevron{font-size:1.5rem;color:var(--text-tertiary);transition:transform .2s ease;margin-left:12px;flex-shrink:0}.sale-chevron.open{transform:rotate(90deg)}.sale-expanded{border-top:1px solid var(--border-light);margin-top:12px;padding-top:12px}.sale-toolbar{margin-bottom:12px}.payment-list{display:flex;flex-direction:column;gap:8px}.payment-row{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-sm);padding:12px 16px;transition:all var(--transition)}.payment-row:hover{border-color:var(--border)}.payment-row.status-overdue{border-left:3px solid var(--red)}.payment-row.status-waiting_confirmation{border-left:3px solid var(--purple)}.payment-row.status-paid{opacity:.7}.payment-row-main{display:flex;justify-content:space-between;align-items:center}.payment-row-left{display:flex;align-items:center;gap:10px}.payment-row-date{font-size:.9rem;font-weight:500}.payment-row-right{display:flex;align-items:center;gap:4px;font-size:.9rem}.payment-row-paid{font-weight:600;color:var(--text-primary)}.payment-row-separator,.payment-row-total{color:var(--text-tertiary)}.payment-row-actions{display:flex;gap:6px;margin-top:10px;flex-wrap:wrap}.payment-action{padding:5px 12px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.8rem;font-family:inherit;font-weight:500;color:var(--text-secondary);cursor:pointer;transition:all var(--transition)}.payment-action:hover{border-color:var(--accent);color:var(--accent)}.payment-action.green:hover{border-color:var(--green);color:var(--green)}.payment-action.red:hover{border-color:var(--red);color:var(--red)}.payment-receipts-history{margin-top:8px;padding-top:8px;border-top:1px dashed var(--border-light)}.receipt-history-item{display:flex;align-items:center;gap:8px;font-size:.82rem;padding:3px 0}.receipt-history-date{color:var(--text-tertiary);margin-left:auto}.add-sale-payment-row{display:flex;gap:10px;align-items:flex-end;margin-bottom:10px}.remove-payment-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:var(--red-bg);color:var(--red);border:1px solid transparent;border-radius:var(--radius-sm);font-size:1.1rem;cursor:pointer;flex-shrink:0;transition:all var(--transition)}.remove-payment-btn:hover{background:var(--red);color:#fff}.dashboard-panels{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:8px}.dashboard-panel{min-width:0}.dashboard-panel h2{margin-top:16px;margin-bottom:10px}.dashboard-panel .data-table{font-size:.85rem}.dashboard-panel .data-table th,.dashboard-panel .data-table td{padding:10px 14px}.tg-col{color:var(--accent);font-weight:500}@media(max-width:1100px){.dashboard-panels{grid-template-columns:1fr}}
