@import"https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@400;500;600;700&display=swap";:root{font-family:Inter,system-ui,sans-serif;line-height:1.5;font-weight:400;--primary: #2563EB;--primary-hover: #1D4ED8;--primary-light: #eff6ff;--admin-theme: #1e3a8a;--faculty-theme: #334155;--student-theme: #1e40af;--student-theme-gradient: #1e40af;--student-theme-light: #eff6ff;--bg: #F9FAFB;--card-bg: #ffffff;--surface: #ffffff;--surface-hover: #f1f5f9;--text-main: #1f2937;--text-muted: #6b7280;--text-light: #9ca3af;--border: #D1D5DB;--border-light: #f3f4f6;--danger: #991b1b;--danger-light: #fef2f2;--warning: #92400e;--warning-light: #fffbeb;--success: #166534;--sidebar-bg: #111827;--sidebar-text: #d1d5db;--sidebar-hover: #1f2937;--sidebar-active: #374151;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .04), 0 2px 4px -1px rgba(0, 0, 0, .02);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .05), 0 4px 6px -2px rgba(0, 0, 0, .03);--shadow-glow: none;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-full: 9999px;--transition: all .3s cubic-bezier(.4, 0, .2, 1)}[data-theme=dark]{--bg: #111827;--card-bg: rgba(31, 41, 55, 1);--surface: #1f2937;--surface-hover: #374151;--text-main: #f3f4f6;--text-muted: #9ca3af;--text-light: #6b7280;--border: #374151;--border-light: #1f2937;--student-theme-light: rgba(37, 99, 235, .15);--primary-light: rgba(37, 99, 235, .15);--danger-light: rgba(153, 27, 27, .25);--warning-light: rgba(146, 64, 14, .25);--sidebar-bg: #030712;--sidebar-text: #9ca3af;--sidebar-hover: #1f2937;--sidebar-active: #374151;--shadow-md: 0 1px 3px 0 rgba(0, 0, 0, .5);--shadow-lg: 0 4px 6px -1px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;max-width:100vw;overflow-x:hidden;background-color:var(--bg);color:var(--text-main);transition:background-color .3s ease,color .3s ease}body{min-height:100vh}.dashboard-fade-in{animation:fadeIn .4s ease-out forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.modern-card{transition:var(--transition)}.modern-card:hover{box-shadow:var(--shadow-lg),var(--shadow-glow);transform:translateY(-2px)}#root{width:100%;max-width:100vw;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}h1,h2,h3,h4,h5,h6{margin:0 0 .5rem;line-height:1.2;font-weight:600}a{text-decoration:none;color:inherit;transition:opacity .2s}button{cursor:pointer;border:none;outline:none;font-family:inherit;background:none}.data-table-container{width:100%;overflow-x:auto;overflow-y:visible}.data-table{width:100%;min-width:600px}.form-card{max-width:100%;overflow-x:hidden}.form-group,.form-group input,.form-group select,.form-group textarea{max-width:100%}.app-root{width:100%;min-height:100vh}.home-container{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.home-header{text-align:center;margin-bottom:2rem}.home-header h1{font-size:3.5rem;color:var(--primary);margin-bottom:.5rem}.home-header h2{font-size:1.75rem;color:var(--text-muted);font-weight:400}.auth-options{display:flex;gap:1.5rem;margin-top:2.5rem;justify-content:center}.auth-options .btn-primary,.auth-options .btn-secondary{padding:1rem 3rem;font-size:1.35rem;min-width:160px}.form-card{background:var(--card-bg);padding:2.5rem;border-radius:12px;box-shadow:var(--shadow-lg);width:100%;max-width:400px}.form-title{text-align:center;margin-bottom:1.5rem;color:var(--text-main);font-size:1.8rem;font-weight:700}.form-group{margin-bottom:1.5rem;text-align:left}.form-group label{display:block;font-size:1.1rem;font-weight:600;margin-bottom:.5rem;color:var(--text-main)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.85rem;border:1px solid #D1D5DB;border-radius:6px;font-size:1.1rem;background-color:#f9fafb;color:var(--text-main);transition:all .2s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#2563eb;outline:none;background-color:#fff;box-shadow:0 0 0 3px #2563eb26}.btn-primary,.action-btn{display:inline-block;background-color:var(--primary);color:#fff;padding:.75rem 1.75rem;border-radius:6px;font-size:1rem;font-weight:600;transition:all .2s ease;text-align:center;border:none}.btn-primary:hover,.action-btn:hover{background-color:var(--primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{display:inline-block;background-color:#fff;color:var(--text-main);padding:.75rem 1.75rem;border:1px solid var(--border);border-radius:6px;font-size:1rem;font-weight:500;transition:all .2s}.btn-secondary:hover{background-color:var(--bg);border-color:var(--text-muted);transform:translateY(-1px)}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.page-header h1{font-size:1.8rem;color:var(--text-main)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.dashboard-card{background:var(--card-bg);padding:1.75rem;border-radius:10px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:transform .2s,box-shadow .2s}.dashboard-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.card-title{display:block;font-size:1rem;font-weight:600;margin-bottom:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.card-value{font-size:2.75rem;font-weight:700;color:var(--text-main)}.request-form-card{background:var(--card-bg);padding:2.5rem;border-radius:10px;box-shadow:var(--shadow-md);margin-top:1rem;border:1px solid var(--border)}.form-actions{margin-top:2rem;display:flex;justify-content:flex-end}.home-footer{margin-top:auto;padding-top:2rem;color:var(--text-muted);font-size:.9rem}.cr-badge{background-color:var(--student-theme);color:#fff;font-size:.75rem;padding:.25rem .6rem;border-radius:9999px;font-weight:600;vertical-align:middle}.icon-btn{background:none;border:none;padding:8px;border-radius:4px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;justify-content:center}.icon-btn:hover{background-color:#0000000d}.edit-btn{color:#3182ce;margin-right:.5rem}.edit-btn:hover{background-color:#ebf8ff}.delete-btn{color:#e53e3e}.delete-btn:hover{background-color:#fff5f5}.admin-container{display:flex;min-height:100vh;width:100vw;background-color:#f5f7fa;color:#333}.admin-sidebar{width:260px;background-color:#1a202c;color:#fff;display:flex;flex-direction:column;padding:1rem;box-shadow:2px 0 5px #0000001a;position:fixed;top:0;left:0;height:100vh}.admin-sidebar h2{font-size:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #2d3748;color:#63b3ed}.sidebar-nav{display:flex;flex-direction:column;gap:.5rem;flex:1}.nav-item{display:block;padding:.8rem 1rem;color:#cbd5e0;text-decoration:none;border-radius:6px;transition:all .2s}.nav-item:hover,.nav-item.active{background-color:#2d3748;color:#fff;transform:translate(5px)}.sidebar-footer{margin-top:auto;padding-top:1rem;border-top:1px solid #2d3748}.admin-content{flex:1;padding:2rem;overflow-y:auto;margin-left:260px}.page-header{margin-bottom:2rem;display:flex;justify-content:space-between;align-items:center}.page-header h1{font-size:2rem;color:#2d3748}.action-btn{background-color:#3182ce;color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;cursor:pointer;font-size:1rem}.action-btn:hover{background-color:#2b6cb0}.data-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d;overflow:hidden}.data-table{width:100%;border-collapse:collapse}.data-table th{background-color:#f7fafc;border-bottom:2px solid #edf2f7;padding:1.25rem;text-align:left;font-weight:600;color:#4a5568;font-size:1.1rem}.data-table td{padding:1.25rem;border-bottom:1px solid #edf2f7;color:#4a5568;font-size:1.1rem}.data-table tr:hover{background-color:#f7fafc}.status-badge{padding:.25rem .6rem;border-radius:9999px;font-size:.85rem;font-weight:500}.status-active{background-color:#c6f6d5;color:#22543d}.status-inactive{background-color:#fed7d7;color:#822727}.form-card{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:600px;margin:0 auto}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#4a5568;text-align:left;font-size:1.1rem}.form-group input,.form-group select{width:100%;padding:.85rem;border:1px solid #e2e8f0;border-radius:6px;font-size:1.1rem;box-sizing:border-box}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:2rem}.cancel-btn{background-color:#cbd5e0;color:#4a5568;border:none;padding:.6rem 1.2rem;border-radius:6px;cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-bottom:3rem}.stat-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000000d;transition:transform .2s,box-shadow .2s;cursor:pointer;display:flex;flex-direction:column}.stat-card:hover{transform:translateY(-5px);box-shadow:0 10px 15px #0000001a}.stat-card h3{margin:0;font-size:1.3rem;color:#718096}.stat-value{font-size:3.5rem;font-weight:700;margin:.5rem 0}.stat-subtitle{font-size:1rem;color:#a0aec0}.recent-activity{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000000d}.status-item{display:flex;align-items:center;gap:.8rem;padding:.8rem 0;border-bottom:1px solid #edf2f7}.status-dot{width:10px;height:10px;border-radius:50%}.status-dot.healthy{background-color:#48bb78}.status-dot.warning{background-color:#ecc94b}.amrita-timetable-container{padding:1.5rem;background-color:#f5f5f5;min-height:100vh}.timetable-header{background:linear-gradient(135deg,#6b9e4d,#4a7c3a);color:#fff;text-align:center;padding:1rem;margin-bottom:1rem;border-radius:8px 8px 0 0}.timetable-header h2{margin:0;font-size:1.8rem;font-weight:700;letter-spacing:2px}.timetable-config{background-color:#f9e79f;padding:1rem;border:2px solid #d4a017;margin-bottom:1rem}.config-row{display:flex;gap:2rem;margin-bottom:.5rem;flex-wrap:wrap}.config-item{display:flex;gap:.5rem;align-items:center}.config-item label{font-weight:700}.timetable-grid-wrapper{overflow:hidden;background-color:#fff;border:2px solid #333;box-shadow:0 4px 6px #0000001a}.timetable-grid{width:100%;border-collapse:collapse}.timetable-grid th,.timetable-grid td{border:1px solid #333;padding:.5rem;text-align:center;vertical-align:middle}.timetable-grid thead th{background-color:#6b9e4d;color:#fff;font-weight:700;font-size:.9rem}.time-header{font-size:.75rem;font-weight:400;white-space:nowrap}.day-cell{background-color:#f9e79f;font-weight:700;position:sticky;left:0;z-index:10}.timetable-cell{min-height:50px;font-size:.8rem;transition:all .2s;padding:.25rem}.timetable-cell:hover{box-shadow:inset 0 0 0 2px #4a7c3a;cursor:pointer}.lunch-break-cell{background:linear-gradient(135deg,#00bcd4,#0097a7);color:#fff;font-weight:700;font-size:.85rem;writing-mode:vertical-rl;text-orientation:mixed;padding:.25rem}.course-tables{margin-top:2rem;display:flex;flex-direction:column;gap:1.5rem}.course-table-section h3{background-color:#6b9e4d;color:#fff;padding:.75rem;margin:0 0 .5rem;border-radius:4px}.course-info-table{width:100%;border-collapse:collapse;background-color:#fff;box-shadow:0 2px 4px #0000001a}.course-info-table th,.course-info-table td{border:1px solid #ddd;padding:.75rem;text-align:left}.course-info-table th{background-color:#6b9e4d;color:#fff;font-weight:700}.course-info-table tbody tr:nth-child(2n){background-color:#f9f9f9}.course-info-table tbody tr:hover{background-color:#e8f5e9}.loading-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;z-index:1000}@media(max-width:768px){.amrita-timetable-container{padding:.5rem}.timetable-header h2{font-size:1.2rem}.config-row{flex-direction:column;gap:.5rem}.timetable-grid{font-size:.75rem}.timetable-cell{min-width:unset;min-height:40px;padding:.15rem}}.faculty-container{display:flex;min-height:100vh;width:100vw;background-color:var(--bg);color:var(--text-main);overflow-x:hidden}.faculty-sidebar{width:280px;background:#0f172a;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:100;transition:var(--transition);color:var(--sidebar-text)}.faculty-sidebar h2{font-size:1.25rem;font-family:Inter,sans-serif;font-weight:700;margin-bottom:1.5rem;padding:0 1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);color:#fff;text-transform:uppercase;letter-spacing:.05em}.faculty-content{flex:1;padding:2.5rem;margin-left:280px;width:calc(100% - 280px);min-height:100vh;transition:var(--transition)}.faculty-dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-bottom:2rem}.timetable-view{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem}.request-card{background:#fff;border-left:5px solid #ecc94b;padding:1rem;margin-bottom:1rem;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;align-items:center}.request-actions button{margin-left:.5rem;padding:.8rem;font-size:1rem}.accept-btn{background-color:#48bb78;color:#fff;border:none;border-radius:4px}.reject-btn{background-color:#f56565;color:#fff;border:none;border-radius:4px}.form-card{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 4px 6px #0000000d;max-width:10000px;margin:auto}.leave-status-list{display:flex;flex-direction:column;gap:1rem}.leave-status-card{background:#fff;border-left:5px solid #63b3ed;padding:1rem 1.25rem;border-radius:8px;box-shadow:0 2px 4px #0000000d;display:flex;justify-content:space-between;align-items:center;gap:1.5rem}.leave-status-main h4{margin:0 0 .4rem}.leave-dates{margin:0 0 .3rem;color:#4a5568;font-size:.95rem}.leave-reason{margin:0 0 .3rem;color:#2d3748;font-size:.9rem}.leave-meta{margin:0;color:#718096;font-size:.85rem}.leave-status-side{display:flex;align-items:center}.status-badge{display:inline-block;padding:.35rem .75rem;border-radius:999px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.status-approved{background:#c6f6d5;color:#276749}.status-pending{background:#fefcbf;color:#744210}.status-rejected{background:#fed7d7;color:#9b2c2c}.timetable-view .data-table{border-collapse:collapse;width:100%;border:1px solid #cbd5e0}.timetable-view th,.timetable-view td{padding:1rem;text-align:center;border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0}.timetable-view th:last-child,.timetable-view td:last-child{border-right:none}.timetable-view th{background-color:#1a202c;color:#bee3f8;text-align:left}.break-cell{background-color:#0bc5ea;color:#000;width:40px;padding:0;vertical-align:middle;border:1px solid #000}.break-label{writing-mode:vertical-rl;text-orientation:mixed;transform:rotate(180deg);white-space:nowrap;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin:0 auto;font-size:.9rem}.logout-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background-color:#fff!important;color:#1e293b;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #0000000d}.logout-btn:hover{background-color:#fff5f5!important;color:#e53e3e}.student-container{display:flex;min-height:100vh;width:100vw;background-color:var(--bg);color:var(--text-main);overflow-x:hidden}.student-sidebar{width:280px;background:#0f172a;border-right:1px solid var(--border);display:flex;flex-direction:column;padding:1.5rem 0;position:fixed;top:0;left:0;height:100vh;overflow-y:auto;z-index:100;transition:var(--transition);color:var(--sidebar-text)}.student-sidebar h2{font-size:1.25rem;font-family:Inter,sans-serif;font-weight:700;margin-bottom:1.5rem;padding:0 1.5rem 1rem;border-bottom:1px solid rgba(255,255,255,.05);color:#fff;text-transform:uppercase;letter-spacing:.05em}.student-content{flex:1;padding:2.5rem;margin-left:280px;width:calc(100% - 280px);min-height:100vh;transition:var(--transition)}.nav-item{display:flex;align-items:center;padding:.85rem 1.5rem;margin-bottom:0;border-radius:0;color:var(--sidebar-text);text-decoration:none;font-weight:500;transition:all .2s;border-left:3px solid transparent}.nav-item:hover{background-color:var(--sidebar-hover);color:#fff}.nav-item.active{background:var(--sidebar-active);color:#fff;font-weight:600;border-left:3px solid var(--primary)}.sidebar-nav{flex:1;display:flex;flex-direction:column;gap:.25rem}.sidebar-footer{padding:1.5rem;border-top:1px solid rgba(255,255,255,.05);display:flex;flex-direction:column;gap:1rem}.theme-toggle-btn{display:flex;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;padding:.75rem 1rem;background-color:transparent;color:var(--sidebar-text);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);cursor:pointer;font-weight:500;transition:var(--transition)}.theme-toggle-btn:hover{background-color:var(--sidebar-hover);color:#fff}.logout-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.75rem 1rem;background-color:#fff;color:#1e293b;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:all .2s;box-shadow:0 2px 4px #0000000d}.logout-btn:hover{background-color:#fff5f5;color:#e53e3e}.student-timetable{background:var(--card-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:none;border:1px solid var(--border)}.student-timetable th{background-color:var(--surface-hover);color:var(--text-main);font-weight:600;padding:1rem;text-align:center;border-bottom:2px solid var(--border);border-right:1px solid var(--border)}.student-timetable td{padding:1rem;border-bottom:1px solid var(--border);border-right:1px solid var(--border)}.student-timetable th:last-child,.student-timetable td:last-child{border-right:none}.student-timetable table{border-collapse:collapse;width:100%}.request-form-card{background:#fff;padding:2rem;border-top:5px solid #d69e2e;border-radius:8px;box-shadow:0 4px 6px #0000000d}.cr-badge{background-color:#fbd38d;color:#744210;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:700;margin-left:auto}.notification-icon-btn{background:none;border:none;cursor:pointer;position:relative;padding:8px;border-radius:50%;transition:background-color .2s}.notification-icon-btn:hover{background-color:#0000000d}.notification-badge{position:absolute;top:0;right:0;background-color:#e53e3e;color:#fff;border-radius:50%;width:18px;height:18px;font-size:.7rem;display:flex;align-items:center;justify-content:center;font-weight:700}.notification-dropdown{position:absolute;top:100%;right:0;margin-top:10px;width:320px;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;border:1px solid #e2e8f0;z-index:50;overflow:hidden}.notification-header{padding:12px 16px;border-bottom:1px solid #e2e8f0;font-weight:600;color:#2d3748;background-color:#f7fafc}.notification-list{max-height:300px;overflow-y:auto}.notification-item{padding:12px 16px;border-bottom:1px solid #edf2f7;transition:background-color .2s}.notification-item:hover{background-color:#f7fafc}.note-text{font-size:.9rem;color:#2d3748;margin-bottom:4px}.note-time{font-size:.75rem;color:#718096}.notification-empty{padding:24px;text-align:center;color:#718096;font-size:.9rem}.clear-all-btn{width:100%;padding:10px;background-color:#fff;border:none;border-top:1px solid #e2e8f0;color:#e53e3e;font-weight:500;font-size:.9rem;cursor:pointer;transition:background-color .2s}.clear-all-btn:hover{background-color:#fff5f5}.class-popover{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:5px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);border-radius:var(--radius-md);padding:.75rem;width:max-content;min-width:150px;z-index:50;display:flex;flex-direction:column;gap:.4rem;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;pointer-events:none}.class-block:hover .class-popover{opacity:1;visibility:visible}
