:root{--plt-primary:#2563eb;--plt-primary-dark:#1d4ed8;--plt-primary-light:#eff6ff;--plt-accent:#06b6d4;--plt-accent-light:#ecfeff;--plt-black:#1a1a1a;--plt-charcoal:#2d2d3a;--plt-green:#10b981;--plt-green-light:#ecfdf5;--plt-info:#3b82f6;--plt-info-light:#eff6ff;--plt-red:#ef4444;--plt-red-light:#fef2f2;--plt-purple:#8b5cf6;--plt-gray-50:#fafafa;--plt-gray-100:#f5f5f5;--plt-gray-200:#e5e5e5;--plt-gray-300:#d4d4d4;--plt-gray-400:#a3a3a3;--plt-gray-500:#737373;--plt-gray-600:#525252;--plt-gray-700:#404040;--plt-gray-800:#262626;--plt-gray-900:#171717;--sidebar-width:260px;--header-height:56px;--gradient-sidebar:linear-gradient(180deg, #1a1a1a 0%, #2d2d3a 100%);--gradient-hero:linear-gradient(135deg, #2563eb 0%, #06b6d4 100%);--gradient-student:linear-gradient(135deg, #2563eb 0%, #60a5fa 100%);--gradient-login-admin:linear-gradient(135deg, #1a1a1a 0%, #2d2d3a 100%);--gradient-login-student:linear-gradient(135deg, #2563eb 0%, #06b6d4 100%);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 10px 30px #0000001f;--shadow-primary:0 4px 14px #2563eb4d}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.btn-brand{background:var(--plt-primary);color:#fff;border-radius:var(--radius-md);border:none;font-weight:600;transition:all .2s}.btn-brand:hover{background:var(--plt-primary-dark);color:#fff;box-shadow:var(--shadow-primary);transform:translateY(-1px)}.btn-brand-outline{border:2px solid var(--plt-primary);color:var(--plt-primary);border-radius:var(--radius-md);background:0 0;font-weight:600;transition:all .2s}.btn-brand-outline:hover{background:var(--plt-primary);color:#fff}.text-brand{color:var(--plt-primary)}.text-brand-dark{color:var(--plt-primary-dark)}.bg-brand{background-color:var(--plt-primary)}.bg-brand-light{background-color:var(--plt-primary-light)}.card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:none;transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.badge-status{border-radius:50px;padding:.35em .75em;font-size:.75rem;font-weight:500}.bg-active{background-color:var(--plt-green)!important}.bg-inactive{background-color:var(--plt-gray-500)!important}.bg-pending{background-color:var(--plt-accent)!important;color:#fff!important}.bg-paid,.bg-present{background-color:var(--plt-green)!important}.bg-absent{background-color:var(--plt-red)!important}.sidebar{width:var(--sidebar-width);background:var(--gradient-sidebar);z-index:1000;height:100vh;transition:transform .3s;position:fixed;top:0;left:0;overflow-y:auto}.sidebar-brand{height:var(--header-height);border-bottom:1px solid #ffffff1a;align-items:center;padding:0 1rem;display:flex}.sidebar-brand .brand-icon{color:var(--plt-primary);margin-right:.5rem;font-size:1.5rem}.sidebar-brand h4{color:#fff;letter-spacing:.5px;margin:0;font-size:1.1rem;font-weight:700}.sidebar-nav{padding:.5rem 0}.sidebar-nav .nav-item{margin:.1rem .5rem}.sidebar-nav .nav-link{color:#ffffffb3;border-radius:var(--radius-sm);align-items:center;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:all .2s;display:flex}.sidebar-nav .nav-link:hover{color:#fff;background:#ffffff14}.sidebar-nav .nav-link.active{background:var(--plt-primary);color:#fff;box-shadow:0 2px 8px #2563eb4d}.sidebar-nav .nav-link i{text-align:center;width:1.5rem;font-size:1.25rem}.nav-header{color:#ffffffb3;font-size:inherit;letter-spacing:normal;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;margin-top:.25rem;padding:.75rem 1rem;font-weight:600;transition:color .2s;display:flex}.nav-header:hover{color:#fffc}.nav-header .nav-group-chevron{font-size:.6rem;transition:transform .2s}.nav-header.open .nav-group-chevron{transform:rotate(180deg)}.nav-header.open{color:var(--plt-primary)}.nav-group-items{display:none}.nav-group-items.show{display:block}.nav-group-items .nav-link.active{border-left:3px solid var(--plt-accent);padding-left:calc(1rem - 3px)}.main-content{margin-left:var(--sidebar-width);background:var(--plt-gray-50);min-height:100vh}.main-header{height:var(--header-height);border-bottom:1px solid var(--plt-gray-200);z-index:100;background:#fff;justify-content:space-between;align-items:center;padding:0 1.5rem;display:flex;position:sticky;top:0}.toggle-sidebar{color:var(--plt-gray-600);border-radius:var(--radius-sm);background:0 0;border:none;padding:.5rem;font-size:1.5rem;transition:background .2s}.toggle-sidebar:hover{background:var(--plt-gray-100)}.user-menu .dropdown-toggle:after{display:none}.user-dropdown{background:var(--plt-gray-100);color:var(--plt-gray-800);border-radius:50px;align-items:center;gap:.5rem;padding:.4rem .75rem;text-decoration:none;transition:background .2s;display:flex}.user-dropdown:hover{background:var(--plt-gray-200);color:var(--plt-gray-800)}.user-dropdown .badge{background:var(--plt-primary)!important}.page-content{padding:1.5rem}.page-header{margin-bottom:1.5rem}.page-header h1{color:var(--plt-gray-800);margin:0;font-size:1.5rem;font-weight:700}.card-header{border-bottom:1px solid var(--plt-gray-200);background:#fff;padding:1rem 1.25rem;font-weight:600}.table{margin-bottom:0}.table th{color:var(--plt-gray-500);text-transform:uppercase;letter-spacing:.05rem;border-top:none;font-size:.8rem;font-weight:600}.table td{vertical-align:middle}.stat-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:none;transition:all .3s;overflow:hidden}.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-card .card-body{padding:1.25rem}.stat-card .stat-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;display:flex}.stat-card .stat-icon.orange{background:var(--plt-primary-light);color:var(--plt-primary)}.stat-card .stat-icon.green{background:var(--plt-green-light);color:var(--plt-green)}.stat-card .stat-icon.blue{background:var(--plt-info-light);color:var(--plt-info)}.stat-card .stat-icon.gold{background:var(--plt-accent-light);color:var(--plt-accent)}.stat-card h6{color:var(--plt-gray-500);margin-bottom:.25rem;font-size:.8rem;font-weight:500}.stat-card h3{color:var(--plt-gray-800);margin-bottom:0;font-weight:700}.data-table{border-radius:var(--radius-lg);overflow:hidden}.data-table .table-responsive{border-radius:var(--radius-lg)}.data-table .table thead th{background:var(--plt-gray-50);border-bottom:2px solid var(--plt-gray-200);padding:.875rem 1rem}.data-table .table tbody td{border-bottom:1px solid var(--plt-gray-100);padding:.875rem 1rem}.data-table .table tbody tr:hover{background:var(--plt-orange-light)}.data-table .table tbody tr:last-child td{border-bottom:none}.btn-group-actions .btn{border-radius:var(--radius-sm);padding:.35rem .5rem}@media (width<=991.98px){.sidebar{transform:translate(-100%)}.sidebar.show{transform:translate(0)}.main-content{margin-left:0}.sidebar-overlay{z-index:999;background:#00000080;width:100%;height:100%;display:none;position:fixed;top:0;left:0}.sidebar-overlay.show{display:block}.page-content{padding:1rem}}@media (width<=575.98px){.page-header h1{font-size:1.25rem}.stat-card .card-body{padding:1rem}}.student-nav{border-bottom:3px solid var(--plt-primary);background:#fff;box-shadow:0 2px 10px #0000000f}.student-nav .nav-brand{color:var(--plt-primary);font-size:1.2rem;font-weight:700;text-decoration:none}.student-nav .nav-brand:hover{color:var(--plt-primary-dark)}.student-nav .nav-link{color:var(--plt-gray-600);border-radius:var(--radius-sm);padding:.5rem .75rem;font-weight:500;transition:all .2s}.student-nav .nav-link:hover{color:var(--plt-primary);background:var(--plt-primary-light)}.student-nav .nav-link.active{color:var(--plt-primary);font-weight:600}.student-stat-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:none;transition:all .2s}.student-stat-card:hover{box-shadow:var(--shadow-md)}.student-stat-card .fs-3{color:var(--plt-primary);font-weight:700}.student-page-header{margin-bottom:1.5rem}.student-page-header h1{color:var(--plt-gray-800);margin:0;font-size:1.5rem;font-weight:600}.home-nav{background:#fff;box-shadow:0 2px 10px #0000000f}.home-nav .navbar-brand{color:var(--plt-primary);font-size:1.3rem;font-weight:800}.home-nav .navbar-brand .brand-icon{color:var(--plt-accent)}.hero{background:var(--gradient-hero);color:#fff;padding:100px 0 80px;position:relative;overflow:hidden}.hero:before{content:"";background:#ffffff0d;border-radius:50%;width:600px;height:600px;animation:6s ease-in-out infinite heroFloat;position:absolute;top:-50%;right:-20%}.hero:after{content:"";background:#ffffff08;border-radius:50%;width:400px;height:400px;animation:8s ease-in-out infinite reverse heroFloat;position:absolute;bottom:-30%;left:-10%}@keyframes heroFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.hero h1{z-index:1;margin-bottom:1rem;font-size:3rem;font-weight:800;position:relative}.hero p{opacity:.9;z-index:1;font-size:1.2rem;position:relative}.hero .btn-hero{color:var(--plt-primary);z-index:1;background:#fff;border:none;border-radius:50px;padding:.875rem 2.5rem;font-size:1.1rem;font-weight:700;transition:all .3s;position:relative;box-shadow:0 4px 15px #00000026}.hero .btn-hero:hover{color:var(--plt-primary-dark);transform:translateY(-2px);box-shadow:0 8px 25px #0003}.about-section{background:#fff;padding:80px 0}.about-section h2{color:var(--plt-gray-800);margin-bottom:1.5rem;font-size:2rem;font-weight:700}.about-section .about-text{color:var(--plt-gray-600);font-size:1.05rem;line-height:1.8}.about-section .about-image{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);object-fit:cover;width:100%;height:300px}.about-section .about-image-placeholder{border-radius:var(--radius-xl);background:var(--gradient-hero);color:#fff;justify-content:center;align-items:center;width:100%;height:300px;font-size:4rem;display:flex}.advantages-section{background:var(--plt-gray-50);padding:80px 0}.advantages-section h2{color:var(--plt-gray-800);text-align:center;margin-bottom:3rem;font-size:2rem;font-weight:700}.advantage-card{border-radius:var(--radius-lg);text-align:center;box-shadow:var(--shadow-sm);background:#fff;height:100%;padding:2rem 1.5rem;transition:all .3s}.advantage-card:hover{transform:translateY(-4px);box-shadow:0 8px 25px #2563eb1f}.advantage-card .advantage-icon{border-radius:var(--radius-md);background:var(--plt-primary-light);width:64px;height:64px;color:var(--plt-primary);justify-content:center;align-items:center;margin:0 auto 1.25rem;font-size:1.75rem;display:flex}.advantage-card h5{color:var(--plt-gray-800);margin-bottom:.75rem;font-weight:700}.advantage-card p{color:var(--plt-gray-500);margin-bottom:0;font-size:.9rem;line-height:1.6}.team-section{background:#fff;padding:80px 0}.team-section h2{color:var(--plt-gray-800);text-align:center;margin-bottom:3rem;font-size:2rem;font-weight:700}.team-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;height:100%;transition:all .3s;overflow:hidden}.team-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px)}.team-card .team-photo{object-fit:cover;background:var(--plt-primary-light);width:100%;height:200px}.team-card .team-photo-placeholder{background:var(--gradient-student);color:#fff;justify-content:center;align-items:center;width:100%;height:200px;font-size:3rem;display:flex}.team-card .team-info{text-align:center;padding:1.25rem}.team-card .team-info h5{color:var(--plt-gray-800);margin-bottom:.25rem;font-weight:700}.team-card .team-info .team-title{color:var(--plt-primary);margin-bottom:.5rem;font-size:.85rem;font-weight:600}.team-card .team-info p{color:var(--plt-gray-500);margin-bottom:0;font-size:.85rem}.qualifications-section{background:var(--plt-gray-50);padding:80px 0}.qualifications-section h2{color:var(--plt-gray-800);text-align:center;margin-bottom:3rem;font-size:2rem;font-weight:700}.qualification-card{border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;height:100%;transition:all .3s;overflow:hidden}.qualification-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.qualification-card img{object-fit:cover;width:100%;height:160px}.qualification-card .qual-placeholder{background:var(--plt-accent-light);width:100%;height:160px;color:var(--plt-accent);justify-content:center;align-items:center;font-size:2.5rem;display:flex}.qualification-card .qual-info{text-align:center;padding:1rem}.qualification-card .qual-info h6{color:var(--plt-gray-800);margin-bottom:.25rem;font-weight:600}.qualification-card .qual-info p{color:var(--plt-gray-500);margin-bottom:0;font-size:.8rem}.home-footer{background:var(--plt-black);color:#ffffffb3;padding:2rem 0}.home-footer .footer-brand{color:var(--plt-primary);font-weight:700}.login-page{justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.login-page.admin-login{background:var(--gradient-login-admin)}.login-page.student-login{background:var(--gradient-login-student)}.login-card{border-radius:var(--radius-xl);background:#fff;width:100%;max-width:420px;overflow:hidden;box-shadow:0 20px 60px #0000004d}.login-header{text-align:center;color:#fff;padding:2.5rem 2rem}.login-header.admin{background:var(--gradient-login-admin)}.login-header.student{background:var(--gradient-login-student)}.login-header .login-icon{color:var(--plt-accent);margin-bottom:1rem;font-size:3rem}.login-header h3{margin:0;font-size:1.5rem;font-weight:700}.login-header p{opacity:.7;margin:.5rem 0 0;font-size:.85rem}.login-body{padding:2rem}.login-body .form-floating{margin-bottom:1rem}.login-body .form-control{border-radius:var(--radius-md);border:2px solid var(--plt-gray-200);padding:.875rem 1rem}.login-body .form-control:focus{border-color:var(--plt-primary);box-shadow:0 0 0 3px #2563eb1a}.btn-login{border-radius:var(--radius-md);color:#fff;border:none;width:100%;padding:.875rem;font-size:1rem;font-weight:700;transition:all .3s}.btn-login.admin{background:var(--gradient-login-admin)}.btn-login.admin:hover{opacity:.9;box-shadow:0 4px 12px #0000004d}.btn-login.student{background:var(--plt-primary)}.btn-login.student:hover{background:var(--plt-primary-dark);box-shadow:var(--shadow-primary)}.login-footer{text-align:center;padding:1rem 2rem 1.5rem}.login-footer a{color:var(--plt-gray-500);font-size:.9rem;text-decoration:none;transition:color .2s}.login-footer a:hover{color:var(--plt-primary)}.error-message{color:var(--plt-red);margin-top:.25rem;font-size:.875rem}
