@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap");:root{--primary:#0052ff;--primary-light:#3b82f6;--primary-dark:#0042f3;--primary-glow:rgba(0,82,255,.12);--primary-50:rgba(0,82,255,.04);--primary-100:rgba(0,82,255,.08);--secondary:#208400;--secondary-light:#6abf1a;--accent:#14b8a6;--danger:#ef4444;--danger-light:#fca5a5;--success:#16a34a;--warning:#f59e0b;--bg-primary:#f0f4f9;--bg-secondary:#fff;--bg-tertiary:#e8edf4;--bg-card:#fff;--bg-glass:hsla(0,0%,100%,.6);--text-primary:#1a2236;--text-secondary:#4b5c78;--text-muted:#8896ab;--border:rgba(30,60,110,.1);--border-hover:rgba(30,60,110,.2);--shadow-sm:0 1px 3px rgba(0,0,0,.05);--shadow-md:0 4px 16px rgba(0,0,0,.07);--shadow-lg:0 10px 30px rgba(0,0,0,.09);--shadow-card:0 1px 4px rgba(0,0,0,.04),0 4px 16px rgba(0,82,255,.04);--shadow-glow:0 4px 20px rgba(0,82,255,.12);--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:24px;--transition:all 0.2s cubic-bezier(0.4,0,0.2,1);--transition-slow:all 0.3s cubic-bezier(0.4,0,0.2,1)}*{margin:0;padding:0;box-sizing:border-box}body,html{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--bg-primary);color:var(--text-primary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--primary-dark)}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);position:relative;overflow:hidden}.auth-container:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 50%,rgba(0,82,255,.06) 0,transparent 50%),radial-gradient(circle at 70% 50%,rgba(32,132,0,.04) 0,transparent 50%);animation:float 20s ease-in-out infinite}@keyframes float{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(2%,-2%) rotate(1deg)}50%{transform:translate(-1%,3%) rotate(-1deg)}75%{transform:translate(3%,1%) rotate(.5deg)}}.auth-card{position:relative;width:100%;max-width:440px;padding:48px 40px;background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);z-index:1}.auth-logo{text-align:center;margin-bottom:8px}.auth-logo-img{width:80px;height:80px;object-fit:contain;margin-bottom:8px;border-radius:var(--radius-md)}.auth-logo h1{font-size:2.2rem;font-weight:800;background:linear-gradient(135deg,var(--primary),var(--primary-light),var(--secondary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.5px}.auth-logo p{color:var(--text-secondary);font-size:.9rem;margin-top:4px}.auth-title{text-align:center;font-size:1.3rem;font-weight:600;margin-bottom:32px;color:var(--text-primary)}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.85rem;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-family:inherit;transition:var(--transition);outline:none}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.form-group input::placeholder{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;font-size:.95rem;font-weight:600;font-family:inherit;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);text-decoration:none;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;box-shadow:0 2px 8px rgba(0,82,255,.25)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,82,255,.3);color:#fff}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-secondary:hover{background:var(--border-hover);border-color:var(--border-hover)}.btn-danger{background:linear-gradient(135deg,var(--danger),#dc2626);color:#fff}.btn-danger:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,.3);color:#fff}.btn-sm{padding:8px 16px;font-size:.85rem}.btn-full{width:100%}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.auth-footer{text-align:center;margin-top:24px;font-size:.9rem;color:var(--text-secondary)}.auth-footer a{font-weight:600}.auth-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--danger);padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:20px;text-align:center}.btn-google{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 24px;font-size:.95rem;font-weight:600;font-family:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition);background:#fff;color:var(--text-primary);box-shadow:var(--shadow-sm)}.btn-google:hover{background:#f8f9fa;border-color:var(--border-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-google:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.auth-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--text-muted);font-size:.85rem}.auth-divider:after,.auth-divider:before{content:"";flex:1 1;height:1px;background:var(--border)}.auth-page{display:flex;min-height:100vh}.auth-page-bg{flex:1 1;background:url(/images/login.webp) 50%/cover no-repeat;position:relative}.auth-form-panel{width:480px;min-height:100vh;display:flex;flex-direction:column;justify-content:center;background:#fff;padding:48px 44px;position:relative;box-shadow:-4px 0 30px rgba(0,0,0,.06);overflow-y:auto}.auth-topbar{text-align:center;margin-bottom:28px}.auth-topbar-brand{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:1.8rem;font-weight:700;color:var(--text-primary);text-decoration:none;transition:var(--transition);width:100%}.auth-topbar-brand:hover{opacity:.7;color:var(--text-primary)}.auth-topbar-logo{width:80px;height:80px;object-fit:contain;border-radius:16px}.auth-form-card{width:100%;max-width:380px}.auth-form-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:4px}.auth-form-subtitle{font-size:.88rem;color:var(--text-secondary);margin-bottom:24px;line-height:1.5}.auth-page .form-group input{background:var(--bg-tertiary);border:1px solid var(--border)}.auth-page .form-group input:focus{background:#fff;border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.auth-page .form-group label{color:var(--text-secondary);font-weight:600}.auth-page .btn-google{background:#fff;border:1px solid var(--border)}.auth-page .btn-google:hover{background:var(--bg-tertiary)}.auth-page .auth-divider:after,.auth-page .auth-divider:before{background:var(--border)}.auth-page .auth-footer a{color:var(--primary);font-weight:600}.auth-page .auth-footer a:hover{color:var(--primary-dark)}@media (max-width:768px){.auth-page{flex-direction:column}.auth-page-bg{flex:none;height:200px;min-height:200px}.auth-form-panel{width:100%;min-height:auto;padding:32px 24px 48px;box-shadow:0 -4px 20px rgba(0,0,0,.06)}.auth-topbar{position:relative;padding:0 0 20px}.auth-form-card{max-width:100%}}.login-success-msg{background:rgba(76,223,107,.1);border:1px solid rgba(76,223,107,.3);color:var(--success);padding:12px 16px;border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:20px;text-align:center}.password-rules{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-direction:column;gap:4px}.password-rules li{display:flex;align-items:center;gap:8px;font-size:.8rem;transition:var(--transition)}.password-rules .rule-icon{font-weight:700;width:16px;text-align:center;flex-shrink:0}.password-rules .rule-pass{color:var(--success)}.password-rules .rule-fail{color:var(--text-muted)}.dashboard-layout{display:flex;min-height:100vh}.sidebar{width:260px;background:var(--bg-secondary);border-right:1px solid var(--border);box-shadow:2px 0 20px rgba(0,30,80,.04);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:var(--transition-slow)}.sidebar-header{padding:24px 20px;border-bottom:1px solid var(--border)}.sidebar-logo{display:flex;align-items:center;gap:10px}.sidebar-logo-img{width:36px;height:36px;object-fit:contain;border-radius:8px}.sidebar-header h1{font-size:1.5rem;font-weight:800;color:var(--primary)}.sidebar-header p{font-size:.75rem;color:var(--text-muted);margin-top:2px;text-transform:uppercase;letter-spacing:1px}.sidebar-nav{flex:1 1;padding:16px 12px;display:flex;flex-direction:column;gap:4px}.sidebar-nav a,.sidebar-nav button{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.9rem;font-weight:500;transition:var(--transition);text-decoration:none;border:none;background:none;cursor:pointer;width:100%;text-align:left;font-family:inherit}.sidebar-nav a:hover,.sidebar-nav button:hover{background:var(--bg-tertiary);color:var(--text-primary)}.sidebar-nav a.active{background:var(--primary-100);color:var(--primary);font-weight:600;border-left:3px solid var(--primary);padding-left:13px}.sidebar-nav .nav-icon{font-size:1.2rem;width:24px;text-align:center}.sidebar-user{padding:16px 20px;border-top:1px solid var(--border);display:flex;align-items:center;gap:12px}.sidebar-user-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:#fff;flex-shrink:0}.sidebar-user-info{flex:1 1;overflow:hidden}.sidebar-user-info .name{font-size:.85rem;font-weight:600;color:var(--text-primary)}.sidebar-user-info .email,.sidebar-user-info .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-info .email{font-size:.75rem;color:var(--text-muted)}.main-content{flex:1 1;margin-left:260px;padding:32px;min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px;flex-wrap:wrap;gap:16px}.page-header h2{font-size:1.8rem;font-weight:700;color:var(--text-primary)}.page-header p{font-size:.9rem;color:var(--text-secondary);margin-top:4px}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;transition:var(--transition);box-shadow:var(--shadow-card)}.card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:20px;gap:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:16px;gap:16px;margin-bottom:32px}.stat-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px 26px;position:relative;overflow:hidden;transition:var(--transition);box-shadow:var(--shadow-card);animation:fadeInUp .4s ease both}.stat-card:first-child{animation-delay:0s}.stat-card:nth-child(2){animation-delay:.06s}.stat-card:nth-child(3){animation-delay:.12s}.stat-card:nth-child(4){animation-delay:.18s}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;border-radius:4px 4px 0 0}.stat-card.income:before{background:linear-gradient(90deg,var(--primary),var(--primary-light))}.stat-card.expense:before{background:linear-gradient(90deg,var(--danger),#f87171)}.stat-card.balance:before{background:linear-gradient(90deg,var(--secondary),var(--secondary-light))}.stat-card.students:before{background:linear-gradient(90deg,var(--accent),#fbbf24)}.stat-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-glow)}.stat-card.income:hover{box-shadow:0 4px 20px rgba(0,82,255,.14)}.stat-card.expense:hover{box-shadow:0 4px 20px rgba(239,68,68,.14)}.stat-card.balance:hover{box-shadow:0 4px 20px rgba(32,132,0,.14)}.stat-card.students:hover{box-shadow:0 4px 20px rgba(20,184,166,.14)}.stat-card .stat-icon{font-size:1.5rem;margin-bottom:10px;display:block}.stat-card .stat-label{font-size:.78rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;font-weight:600;margin-bottom:6px}.stat-card .stat-value{font-size:1.9rem;font-weight:800;color:var(--text-primary);letter-spacing:-.5px}.stat-card .stat-value.income-value{color:var(--primary)}.stat-card .stat-value.expense-value{color:var(--danger)}.stat-card .stat-value.balance-value{color:var(--secondary)}.table-container{overflow:hidden;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);box-shadow:var(--shadow-card)}.table-container>div{overflow-x:auto}table{width:100%;border-collapse:collapse}thead{background:var(--bg-tertiary)}th{text-align:left;font-size:.78rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:2px solid var(--border)}td,th{padding:14px 18px}td{font-size:.9rem;color:var(--text-primary);border-bottom:1px solid rgba(30,60,110,.06)}tr:last-child td{border-bottom:none}tr:hover td{background:var(--primary-50)}.badge{display:inline-flex;align-items:center;padding:5px 12px;border-radius:100px;font-size:.75rem;font-weight:600;letter-spacing:.3px;gap:4px}.badge-success{background:rgba(34,197,94,.12);color:var(--success);border:1px solid rgba(34,197,94,.15)}.badge-danger{background:rgba(239,68,68,.1);color:var(--danger);border:1px solid rgba(239,68,68,.15)}.badge-warning{background:rgba(245,158,11,.1);color:var(--warning);border:1px solid rgba(245,158,11,.15)}.badge-info{background:rgba(99,102,241,.1);color:var(--secondary-light);border:1px solid rgba(99,102,241,.15)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease;padding:20px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);border:1px solid var(--border);border-radius:20px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 16px 48px rgba(0,0,0,.12),0 4px 16px rgba(0,0,0,.06);animation:slideUp .25s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.modal-header h3{font-size:1.1rem;font-weight:600}.modal-close{width:32px;height:32px;border-radius:50%;background:var(--bg-tertiary);border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;transition:var(--transition)}.modal-close:hover{background:var(--danger);color:#fff}.modal-body{padding:24px}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);display:flex;justify-content:flex-end;gap:12px}.payment-matrix{overflow-x:auto}.payment-matrix table{min-width:600px}.payment-matrix th{font-size:.75rem;padding:10px 12px;text-align:center}.payment-matrix th:first-child{text-align:left;min-width:180px}.payment-matrix td{text-align:center;padding:8px 12px}.payment-matrix td:first-child{text-align:left;font-weight:500}.payment-cell{flex-direction:column;gap:4px}.payment-btn,.payment-cell{display:flex;align-items:center}.payment-btn{width:36px;height:36px;border-radius:50%;border:2px solid var(--border);background:transparent;cursor:pointer;transition:var(--transition);justify-content:center;font-size:1rem}.payment-btn.paid{background:var(--primary);border-color:var(--primary);color:#fff}.payment-btn:hover{border-color:var(--primary);transform:scale(1.1)}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted);animation:fadeInUp .4s ease both}.empty-state .empty-icon{font-size:3.5rem;margin-bottom:16px;display:inline-block;animation:gentle-bounce 2s ease-in-out infinite}@keyframes gentle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.empty-state h3{font-size:1.1rem;color:var(--text-secondary);margin-bottom:8px}.empty-state p{font-size:.9rem;margin-bottom:24px;max-width:320px;margin-left:auto;margin-right:auto}.image-upload{position:relative;border:2px dashed var(--border);border-radius:var(--radius-sm);padding:20px;text-align:center;cursor:pointer;transition:var(--transition)}.image-upload:hover{border-color:var(--primary);background:var(--primary-glow)}.image-upload input[type=file]{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.image-upload .upload-icon{font-size:2rem;color:var(--text-muted);margin-bottom:8px}.image-upload .upload-text{font-size:.85rem;color:var(--text-secondary)}.image-preview{position:relative;margin-top:12px;border-radius:var(--radius-sm);overflow:hidden}.image-preview img{width:100%;max-height:200px;object-fit:cover;border-radius:var(--radius-sm)}.image-preview .remove-image{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:50%;background:var(--danger);border:none;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem}.spinner{width:20px;height:20px;border-top:2px solid var(--border);border:2px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loading-page{justify-content:center;min-height:400px;flex-direction:column;gap:16px;color:var(--text-muted)}.actions-bar,.loading-page{display:flex;align-items:center}.actions-bar{gap:12px;flex-wrap:wrap}.toast-container{position:fixed;top:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px}.toast{padding:14px 20px;border-radius:var(--radius-sm);font-size:.9rem;font-weight:500;box-shadow:var(--shadow-lg);animation:slideIn .3s ease,fadeOut .3s ease 2.7s forwards;min-width:280px}.toast-success{background:var(--primary-dark);color:#fff;border-left:4px solid var(--primary-light)}.toast-error{background:#991b1b;color:#fff;border-left:4px solid var(--danger)}@keyframes slideIn{0%{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.mobile-menu-btn{display:none;position:fixed;top:16px;left:16px;z-index:200;width:44px;height:44px;border-radius:var(--radius-sm);background:var(--bg-secondary);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:1.4rem;align-items:center;justify-content:center}@media (max-width:768px){.mobile-menu-btn{display:flex}.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.main-content{margin-left:0;padding:72px 16px 24px}.page-header h2{font-size:1.4rem}.stats-grid{grid-template-columns:1fr 1fr}.card-grid{grid-template-columns:1fr}.modal{margin:16px}}@media (max-width:480px){.stats-grid{grid-template-columns:1fr}}.classroom-card{position:relative;cursor:pointer}.classroom-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow);border-color:var(--primary)}.classroom-card .card-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.classroom-card .card-icon{width:48px;height:48px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:#fff}.classroom-card .card-actions{display:flex;gap:4px}.classroom-card .card-action-btn{width:32px;height:32px;border-radius:50%;background:transparent;border:none;color:var(--text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--transition)}.classroom-card .card-action-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.classroom-card .card-action-btn.delete:hover{background:rgba(239,68,68,.15);color:var(--danger)}.classroom-card h3{font-size:1.1rem;font-weight:600;margin-bottom:4px}.classroom-card .card-meta{font-size:.85rem;color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.classroom-card .card-stats{display:flex;gap:16px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.classroom-card .card-stat{font-size:.8rem;color:var(--text-secondary)}.classroom-card .card-stat strong{color:var(--text-primary);font-weight:600}.classroom-hero{background:linear-gradient(135deg,rgba(16,185,129,.08),rgba(99,102,241,.06));border:1px solid var(--border);border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.classroom-hero:before{content:"";position:absolute;top:-40px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,rgba(16,185,129,.1) 0,transparent 70%);pointer-events:none}.classroom-hero-top{display:flex;align-items:center;gap:20px;margin-bottom:24px}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;font-weight:500;text-decoration:none;transition:var(--transition);white-space:nowrap;flex-shrink:0}.btn-back:hover{border-color:var(--border-hover);color:var(--text-primary);background:var(--bg-card)}.classroom-hero-title{display:flex;align-items:center;gap:16px}.classroom-hero-icon{width:52px;height:52px;border-radius:var(--radius-md);background:linear-gradient(135deg,var(--primary),var(--primary-dark));display:flex;align-items:center;justify-content:center;font-size:1.6rem;box-shadow:0 4px 12px rgba(16,185,129,.3);flex-shrink:0}.classroom-hero-title h1{font-size:1.9rem;font-weight:800;color:var(--text-primary);letter-spacing:-.5px;line-height:1.2}.classroom-hero-title p{font-size:.9rem;color:var(--text-muted);margin-top:2px}.classroom-hero-stats{display:flex;align-items:center;gap:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:0;overflow:hidden}.hero-stat{display:flex;align-items:center;gap:14px;padding:16px 24px;flex:1 1;transition:var(--transition)}.hero-stat:hover{background:rgba(148,163,184,.05)}.hero-stat-icon{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}.hero-stat-icon.students-icon{background:rgba(245,158,11,.15)}.hero-stat-icon.income-icon{background:rgba(16,185,129,.15)}.hero-stat-icon.expense-icon{background:rgba(239,68,68,.15)}.hero-stat-icon.balance-icon{background:rgba(99,102,241,.15)}.hero-stat-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}.hero-stat-value.income{color:var(--primary)}.hero-stat-value.danger{color:var(--danger)}.hero-stat-label{font-size:.75rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.5px;margin-top:1px}.hero-stat-divider{width:1px;height:40px;background:var(--border);flex-shrink:0}.classroom-tab-nav{display:flex;gap:6px;margin-bottom:28px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:6px;overflow-x:auto}.classroom-tab-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;border-radius:8px;font-size:.9rem;font-weight:500;color:var(--text-secondary);transition:var(--transition);border:none;background:none;cursor:pointer;font-family:inherit;white-space:nowrap}.classroom-tab-btn:hover{color:var(--text-primary);background:var(--bg-tertiary)}.classroom-tab-btn.active{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-weight:600;box-shadow:0 2px 8px rgba(16,185,129,.3)}.tab-emoji{font-size:1rem}.tab-label{font-size:.88rem}.classroom-tabs{display:flex;gap:4px;margin-bottom:32px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:4px;overflow-x:auto}.classroom-tabs a,.classroom-tabs button{padding:10px 20px;border-radius:6px;font-size:.85rem;font-weight:500;color:var(--text-secondary);text-decoration:none;transition:var(--transition);border:none;background:none;cursor:pointer;font-family:inherit;white-space:nowrap}.classroom-tabs a:hover,.classroom-tabs button:hover{color:var(--text-primary);background:var(--bg-tertiary)}.classroom-tabs a.active,.classroom-tabs button.active{background:var(--primary);color:#fff;font-weight:600}.student-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);transition:var(--transition)}.student-item:last-child{border-bottom:none}.student-item:hover{background:rgba(0,82,255,.04)}.student-info{gap:14px}.student-avatar,.student-info{display:flex;align-items:center}.student-avatar{width:42px;height:42px;border-radius:12px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));border:none;justify-content:center;font-weight:700;font-size:.85rem;color:#fff;box-shadow:0 2px 8px rgba(0,82,255,.2);flex-shrink:0}.student-details h4{font-size:.95rem;font-weight:600}.student-details p{font-size:.8rem;color:var(--text-muted)}.student-actions{display:flex;gap:8px}.expense-item{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.expense-item:last-child{border-bottom:none}.expense-info{gap:14px}.expense-icon,.expense-info{display:flex;align-items:center}.expense-icon{width:42px;height:42px;border-radius:var(--radius-sm);background:rgba(239,68,68,.1);justify-content:center;font-size:1.1rem}.expense-details h4{font-size:.95rem;font-weight:600}.expense-details p{font-size:.8rem;color:var(--text-muted)}.expense-amount{font-size:1.1rem;font-weight:700;color:var(--danger)}.expense-actions{display:flex;align-items:center;gap:12px}.photo-indicator{width:32px;height:32px;border-radius:50%;background:rgba(0,82,255,.1);border:none;color:var(--primary);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem;transition:var(--transition)}.photo-indicator:hover{background:rgba(99,102,241,.3)}.image-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.85);display:flex;align-items:center;justify-content:center;z-index:2000;cursor:pointer;padding:40px}.image-modal-overlay img{max-width:100%;max-height:90vh;border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.classroom-selector{display:flex;align-items:center;gap:10px}.classroom-selector label{font-size:.85rem;color:var(--text-muted);font-weight:500;white-space:nowrap}.classroom-selector select{padding:10px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-size:.95rem;font-family:inherit;outline:none;cursor:pointer;min-width:250px;transition:var(--transition)}.classroom-selector select:focus,.classroom-selector select:hover{border-color:var(--primary)}@media (max-width:768px){.classroom-hero{padding:20px}.classroom-hero-stats{flex-wrap:wrap}.hero-stat{flex:1 1 40%}.hero-stat-divider{display:none}.classroom-hero-title h1{font-size:1.4rem}.classroom-tab-btn .tab-label{display:none}.classroom-tab-btn{padding:10px 16px}}.btn-share{background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border:none;padding:8px 16px;border-radius:10px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-share:hover{opacity:.9;transform:translateY(-1px)}.btn-share.copied{background:linear-gradient(135deg,#10b981,#059669)}.consulta-page{min-height:100vh;background:linear-gradient(170deg,#f8fafc,#eef2f7 40%,#f0f4f9);display:flex;align-items:flex-start;justify-content:center;padding:48px 16px 32px;position:relative;font-family:Inter,sans-serif}.consulta-bg{position:fixed;inset:0;background:radial-gradient(ellipse 70% 50% at 30% 10%,rgba(0,82,255,.04) 0,transparent 60%),radial-gradient(ellipse 50% 40% at 80% 90%,rgba(16,185,129,.03) 0,transparent 60%);pointer-events:none;z-index:0}.consulta-container{width:100%;max-width:620px;position:relative;z-index:1;display:flex;flex-direction:column;gap:20px}.consulta-header{text-align:center;padding:8px 0 4px}.consulta-logo-img{width:56px;height:56px;object-fit:contain;border-radius:14px;margin-bottom:10px;box-shadow:0 2px 12px rgba(0,82,255,.1)}.consulta-header h1{font-size:1.6rem;font-weight:700;color:#1a2236;margin:0 0 4px;letter-spacing:-.3px}.consulta-header p{color:#6b7c93;font-size:.9rem;margin:0;font-weight:400}.consulta-card{background:#fff;border:1px solid rgba(0,30,80,.08);border-radius:16px;padding:28px 28px 24px;box-shadow:0 1px 3px rgba(0,0,0,.04),0 4px 16px rgba(0,30,80,.04)}.consulta-card h2{color:#1a2236;font-size:1rem;font-weight:600;margin:0 0 4px}.consulta-hint{color:#6b7c93;font-size:.85rem;margin:0 0 18px;line-height:1.5}.consulta-form{display:flex;gap:10px}.consulta-input-group{flex:1 1;display:flex;align-items:center;background:#f5f7fa;border:1px solid rgba(0,30,80,.1);border-radius:10px;padding:0 14px;gap:10px;transition:border-color .2s,box-shadow .2s}.consulta-input-group:focus-within{border-color:#0052ff;box-shadow:0 0 0 3px rgba(0,82,255,.08);background:#fff}.consulta-input-icon{font-size:1rem;opacity:.7}.consulta-input{flex:1 1;background:none;border:none;outline:none;color:#1a2236;font-size:.95rem;font-family:Inter,sans-serif;padding:12px 0;letter-spacing:.5px}.consulta-input::placeholder{color:#9caabb;letter-spacing:0}.consulta-btn{background:#0052ff;color:#fff;border:none;border-radius:10px;padding:12px 20px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;display:flex;align-items:center;gap:6px}.consulta-btn:hover:not(:disabled){background:#0042d6;box-shadow:0 2px 8px rgba(0,82,255,.25)}.consulta-btn:disabled{opacity:.5;cursor:not-allowed}.consulta-spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(1turn)}}.consulta-error{margin-top:14px;background:#fef2f2;border:1px solid #fecaca;color:#b91c1c;border-radius:10px;padding:12px 16px;font-size:.85rem;font-weight:500}.consulta-results{display:flex;flex-direction:column;gap:16px;animation:fadeInUp .3s ease}.consulta-student-card{background:#fff;border:1px solid rgba(0,30,80,.08);border-radius:14px;padding:20px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px rgba(0,0,0,.03)}.consulta-student-card h2{color:#1a2236;font-size:1.05rem;margin:0 0 3px;font-weight:600}.consulta-student-card p{color:#6b7c93;font-size:.78rem;margin:0;line-height:1.5}.consulta-student-avatar{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,#0052ff,#3b82f6);color:#fff;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0}.consulta-summary{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.consulta-pill{border-radius:12px;padding:14px;display:flex;align-items:center;gap:10px;border:1px solid transparent}.consulta-pill.total{background:#f0f4ff;border-color:#dbe4ff}.consulta-pill.paid{background:#ecfdf5;border-color:#d1fae5}.consulta-pill.pending{background:#fffbeb;border-color:#fef3c7}.pill-icon{font-size:1.25rem}.pill-value{font-size:.95rem;font-weight:700;color:#1a2236}.pill-label{font-size:.68rem;color:#6b7c93;margin-top:1px;text-transform:uppercase;letter-spacing:.3px;font-weight:500}.section-title{font-size:.85rem;font-weight:600;margin:0 0 8px;padding-left:2px;letter-spacing:.2px}.paid-title{color:#059669}.pending-title{color:#d97706}.consulta-items-card{background:#fff;border:1px solid rgba(0,30,80,.08);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,.03)}.consulta-item{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid #f1f5f9;gap:12px}.consulta-item:last-child{border-bottom:none}.consulta-item.paid-item{border-left:3px solid #10b981}.consulta-item.pending-item{border-left:3px solid #f59e0b}.item-info{display:flex;flex-direction:column;gap:2px;min-width:0}.item-name{color:#1a2236;font-weight:600;font-size:.88rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.item-date{color:#8896ab;font-size:.75rem}.item-notes{color:#6b7c93;font-size:.75rem}.item-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.item-amount{font-weight:700;font-size:.92rem}.paid-amount{color:#059669}.pending-amount{color:#d97706}.item-badge{font-size:.62rem;font-weight:600;padding:2px 8px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.paid-badge{background:#ecfdf5;color:#059669}.pending-badge{background:#fffbeb;color:#d97706}.consulta-empty{background:#fff;border:1px solid rgba(0,30,80,.08);border-radius:12px;padding:32px;text-align:center;color:#6b7c93;box-shadow:0 1px 3px rgba(0,0,0,.03)}.consulta-reset{background:#fff;border:1px solid rgba(0,30,80,.1);color:#6b7c93;border-radius:10px;padding:10px 18px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;align-self:flex-start}.consulta-reset:hover{background:#f5f7fa;color:#1a2236;border-color:rgba(0,30,80,.18)}.consulta-footer{text-align:center;color:#9caabb;font-size:.72rem;padding:4px 0 8px;font-weight:400}@media (max-width:480px){.consulta-page{padding:24px 12px 20px}.consulta-form{flex-direction:column}.consulta-summary{grid-template-columns:1fr}.consulta-card{padding:20px}.consulta-header h1{font-size:1.3rem}}.landing{min-height:100vh;background:var(--bg-primary);overflow-x:hidden}.landing-nav{position:fixed;top:0;left:0;right:0;z-index:100;background:hsla(0,0%,100%,.7);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.landing-nav-inner{max-width:1200px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:space-between}.landing-nav-brand{display:flex;align-items:center;gap:10px;font-size:1.3rem;font-weight:800;color:var(--text-primary);text-decoration:none}.landing-nav-logo{width:34px;height:34px;object-fit:contain;border-radius:8px}.landing-nav-actions{display:flex;gap:10px}.landing-hero{position:relative;min-height:85vh;display:flex;align-items:center;justify-content:flex-end;overflow:hidden;background:url(/images/fondoMain.webp) 50%/cover no-repeat;padding:80px 48px 60px}.landing-hero-bg{position:absolute;inset:0;background:linear-gradient(90deg,transparent 0,rgba(240,244,249,.6) 35%,rgba(240,244,249,.92) 60%,rgba(240,244,249,.98) 80%);pointer-events:none}@keyframes heroFloat{0%,to{transform:scale(1) translate(0)}33%{transform:scale(1.05) translate(1%,-1%)}66%{transform:scale(.98) translate(-1%,1%)}}.landing-hero-content{position:relative;max-width:520px;text-align:right}.landing-hero-badge{display:inline-block;padding:6px 18px;border-radius:100px;background:rgba(0,82,255,.1);border:1px solid rgba(0,82,255,.25);color:var(--primary);font-size:.85rem;font-weight:600;margin-bottom:28px;letter-spacing:.3px}.landing-hero h1{font-size:2.4rem;font-weight:700;line-height:1.2;color:var(--text-primary);margin-bottom:16px;letter-spacing:-.3px}.landing-gradient-text{background:linear-gradient(135deg,var(--primary),var(--primary-light),var(--secondary-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.landing-hero-subtitle{font-size:1rem;color:var(--text-secondary);line-height:1.7;margin:0 0 28px auto;max-width:480px}.landing-hero-cta{display:flex;gap:16px;justify-content:flex-end;flex-wrap:wrap}.btn-lg{padding:14px 32px;font-size:1.05rem}.landing-features{padding:100px 32px;max-width:1200px;margin:0 auto}.landing-section-header{text-align:center;margin-bottom:60px}.landing-section-header h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.landing-section-header p{font-size:1.05rem;color:var(--text-secondary);max-width:550px;margin:0 auto}.landing-features-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:20px;gap:20px}.landing-feature-card{background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-md);padding:28px 24px;transition:var(--transition-slow)}.landing-feature-card:hover{border-color:var(--primary);transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,82,255,.1)}.landing-feature-icon{font-size:2rem;margin-bottom:16px}.landing-feature-card h3{font-size:1.05rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.landing-feature-card p{font-size:.88rem;color:var(--text-secondary);line-height:1.6}.landing-steps{padding:80px 32px 100px;max-width:900px;margin:0 auto}.landing-steps-grid{display:flex;align-items:center;gap:0}.landing-step{flex:1 1;text-align:center;padding:32px 20px;background:var(--bg-card);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-md);position:relative}.landing-step-number{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;font-size:1.1rem;font-weight:700;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;box-shadow:0 4px 15px rgba(0,82,255,.25)}.landing-step h3{font-size:1rem;font-weight:600;color:var(--text-primary);margin-bottom:8px}.landing-step p{font-size:.85rem;color:var(--text-secondary);line-height:1.6}.landing-step-connector{width:40px;height:2px;background:linear-gradient(90deg,var(--primary),var(--primary-light));flex-shrink:0}.landing-cta{padding:40px 32px 100px;max-width:800px;margin:0 auto}.landing-cta-card{text-align:center;padding:60px 40px;background:linear-gradient(135deg,rgba(0,82,255,.06),rgba(32,132,0,.04));border:1px solid rgba(0,82,255,.15);border-radius:var(--radius-xl);position:relative;overflow:hidden}.landing-cta-card:before{content:"";position:absolute;inset:0;border-radius:var(--radius-xl);padding:1px;background:linear-gradient(135deg,rgba(0,82,255,.2),rgba(32,132,0,.15));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.landing-cta-card h2{font-size:1.8rem;font-weight:700;color:var(--text-primary);margin-bottom:12px}.landing-cta-card p{font-size:1rem;color:var(--text-secondary);margin-bottom:32px}.landing-footer{border-top:1px solid var(--border);padding:24px 32px}.landing-footer-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.landing-footer-brand{display:flex;align-items:center;gap:8px;font-size:1rem;font-weight:700;color:var(--text-secondary)}.landing-footer-logo{width:28px;height:28px;object-fit:contain;border-radius:6px}.landing-footer p{font-size:.8rem;color:var(--text-muted)}@media (max-width:1024px){.landing-features-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.landing-hero{padding:120px 20px 60px;align-items:flex-end;justify-content:center}.landing-hero-bg{background:linear-gradient(0deg,rgba(240,244,249,.96) 0,rgba(240,244,249,.5) 50%,transparent 75%)}.landing-hero-content{text-align:center;max-width:100%}.landing-hero h1{font-size:1.9rem}.landing-hero-subtitle{font-size:.95rem;margin:0 auto 24px}.landing-hero-cta{justify-content:center}.landing-features{padding:60px 20px}.landing-features-grid{grid-template-columns:1fr;gap:16px}.landing-steps{padding:40px 20px 60px}.landing-steps-grid{flex-direction:column;gap:0}.landing-step-connector{width:2px;height:30px}.landing-step{width:100%}.landing-cta{padding:20px 20px 60px}.landing-cta-card{padding:40px 24px}.landing-cta-card h2{font-size:1.4rem}.landing-footer-inner{flex-direction:column;gap:12px;text-align:center}.landing-nav-inner{padding:12px 16px}.landing-nav-brand span{display:none}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.classroom-card{animation:fadeInUp .35s ease both}.card-grid .classroom-card:first-child{animation-delay:0s}.card-grid .classroom-card:nth-child(2),.card-grid .classroom-card:nth-child(3){animation-delay:.06s}.card-grid .classroom-card:nth-child(4),.card-grid .classroom-card:nth-child(5){animation-delay:.12s}.card-grid .classroom-card:nth-child(6){animation-delay:.18s}.student-item{animation:fadeInUp .3s ease both}.student-item:first-child{animation-delay:0s}.student-item:nth-child(2){animation-delay:.03s}.student-item:nth-child(3){animation-delay:.06s}.student-item:nth-child(4){animation-delay:.09s}.student-item:nth-child(5){animation-delay:.12s}.btn-logout{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 16px;font-size:.85rem;font-weight:500;font-family:inherit;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-sm);background:rgba(239,68,68,.05);color:var(--danger);cursor:pointer;transition:var(--transition)}.btn-logout:hover{background:rgba(239,68,68,.1);border-color:rgba(239,68,68,.3)}.students-counter{display:inline-flex;align-items:center;gap:6px;font-size:.85rem;color:var(--text-muted);font-weight:500;padding:6px 14px;background:var(--bg-tertiary);border-radius:100px}