.faculty-dashboard{padding:20px;max-width:1200px;margin:0 auto}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.stat-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:20px;text-align:center;box-shadow:0 2px 4px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.stat-card h3{font-size:.9rem;margin-bottom:8px;font-weight:500;color:#666}.stat-number{font-size:1.8rem;font-weight:700;margin:0;color:#333}.leave-balance-section{margin-bottom:30px}.leave-balance-section h3{color:#333;margin-bottom:15px;font-size:1.2rem;font-weight:600}.dashboard-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.action-card{background:#fff;padding:25px;border-radius:15px;box-shadow:0 4px 15px #00000014;transition:transform .3s ease,box-shadow .3s ease;text-align:center}.action-card:hover{transform:translateY(-5px);box-shadow:0 8px 25px #0000001f}.action-card h3{color:#333;margin-bottom:10px;font-size:1.2rem}.action-card p{color:#666;margin-bottom:20px;line-height:1.5}.primary-btn{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 25px;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #667eea4d}.primary-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #667eea66}.primary-btn:active{transform:translateY(0)}@keyframes float{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-20px) rotate(180deg)}}@media(max-width:768px){.faculty-dashboard{padding:15px}.dashboard-stats{grid-template-columns:1fr;gap:15px}.balance-cards{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:15px}.dashboard-actions{grid-template-columns:1fr;gap:15px}.stat-number{font-size:2rem}.balance-amount{font-size:1.8rem}.card-header{padding:15px 15px 12px}.card-body{padding:15px}}@media(max-width:480px){.balance-cards{grid-template-columns:1fr}.stat-number{font-size:1.8rem}.balance-amount{font-size:1.6rem}}:root{color:#17202a;background:#f4f7f8;font-family:Inter,Segoe UI,Arial,sans-serif}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit;font-size:16px}button{align-items:center;background:#146c75;border:0;border-radius:6px;color:#fff;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;min-height:40px;padding:0 14px}button:disabled{cursor:not-allowed;opacity:.55}button.ghost{background:transparent;border:1px solid #c9d4d8;color:#17202a;min-width:40px;padding:0}button.danger{background:#b42318}input,select{border:1px solid #c9d4d8;border-radius:6px;min-height:40px;padding:0 10px;width:100%}header{align-items:center;background:#102a43;color:#fff;display:grid;gap:16px;grid-template-columns:1fr auto auto;padding:14px 24px}.auth{align-items:center;display:flex;justify-content:center;min-height:100vh;padding:18px;background:linear-gradient(135deg,#d9e2dc,#ece3f5)}.login-container{width:100%;max-width:400px}.login-form{background:#fff;box-shadow:0 20px 40px #0000001a;padding:40px;width:100%}.login-header{text-align:center;margin-bottom:32px}.login-header h1{color:#2c3e50;font-size:28px;font-weight:700;margin:0 0 8px}.login-header p{color:#7f8c8d;font-size:14px;margin:0}.form-group{margin-bottom:20px}.form-group label{display:block;color:#34495e;font-size:14px;font-weight:600;margin-bottom:8px}.form-group input{border:2px solid #e1e8ed;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .3s ease;width:100%}.form-group input:focus{border-color:#667eea;outline:none}.form-group input:disabled{background-color:#f8f9fa;opacity:.7}.error-message{background:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:14px;margin-bottom:20px;padding:12px;text-align:center}.login-button{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;color:#fff;font-size:16px;font-weight:600;padding:14px 20px;width:100%;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #667eea4d}.login-button:disabled{opacity:.7;cursor:not-allowed;transform:none}.login-footer{text-align:center;margin-top:24px}.login-footer p{color:#7f8c8d;font-size:12px;margin:0}.login{max-width:320px;width:100%}.loginShell{align-items:stretch;display:grid;grid-template-columns:minmax(280px,1fr) minmax(320px,440px);max-width:980px;min-height:560px;width:100%}.loginBrand{align-content:end;background:#ffffff1a;border:1px solid rgb(255 255 255 / 20%);border-radius:8px 0 0 8px;color:#fff;display:grid;gap:22px;padding:38px}.brandMark{align-items:center;background:#ffffff29;border:1px solid rgb(255 255 255 / 24%);border-radius:8px;display:inline-flex;height:58px;justify-content:center;width:58px}.loginBrand p{font-size:15px;margin:0 0 8px;opacity:.88}.loginBrand h1{font-size:clamp(32px,5vw,54px);line-height:1.02;margin:0;max-width:480px}.loginCard{background:#fff;border-radius:0 8px 8px 0;box-shadow:0 24px 70px #102a434d;display:flex;flex-direction:column;justify-content:center;padding:42px}.loginTitle h2{font-size:30px}.dashboard-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:20px;text-align:center;box-shadow:0 2px 4px #0000001a}.stat-card h3{color:#7f8c8d;font-size:14px;font-weight:600;margin:0 0 10px;text-transform:uppercase;letter-spacing:.5px}.stat-number{color:#2c3e50;font-size:32px;font-weight:700;margin:0}.dashboard-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.action-card{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.action-card h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 10px}.action-card p{color:#7f8c8d;font-size:14px;margin:0 0 20px;line-height:1.5}.primary-btn{background:#3498db;border:none;color:#fff;padding:12px 24px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:background-color .3s ease}.primary-btn:hover{background:#2980b9}.secondary-btn{background:#95a5a6;border:none;color:#fff;padding:8px 16px;border-radius:4px;font-size:12px;cursor:pointer;margin-right:8px}.danger-btn{background:#e74c3c;border:none;color:#fff;padding:8px 16px;border-radius:4px;font-size:12px;cursor:pointer}.approve-btn{background:#27ae60;border:none;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;margin-right:4px}.recommend-btn{background:#f39c12;border:none;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer;margin-right:4px}.reject-btn{background:#e74c3c;border:none;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;cursor:pointer}.status{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:uppercase}.status.approved{background:#d4edda;color:#155724}.status.recommended{background:#cce5ff;color:#004085}.role-badge{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:600;text-transform:capitalize}.leave-balance-cards{margin-top:30px}.leave-balance-cards h3{color:#2c3e50;font-size:18px;font-weight:600;margin-bottom:16px}.balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.balance-card{background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:0;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease}.balance-card:hover{transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.card-header{background:#f8f9fa;padding:12px 16px;border-bottom:1px solid #e9ecef}.card-header h4{margin:0;color:#2c3e50;font-size:16px;font-weight:600}.card-body{padding:16px;text-align:center}.balance-number{font-size:28px;font-weight:700;color:#2c3e50;margin:0 0 8px;display:block}.balance-label{font-size:12px;color:#7f8c8d;display:block;margin-top:4px}.balance-card.casual .card-header{background:#e3f2fd}.balance-card.casual .balance-number{color:#1976d2}.balance-card.medical .card-header{background:#10b981}.balance-card.medical .balance-number{color:#059669}.balance-card.earned .card-header{background:#f59e0b}.balance-card.earned .balance-number{color:#d97706}.balance-card.compensatory .card-header{background:#6366f1}.balance-card.compensatory .balance-number{color:#4f46e5}.role-badge.faculty{background:#e3f2fd;color:#1565c0}.role-badge.coordinator{background:#f3e5f5;color:#7b1fa2}.role-badge.dean{background:#e8f5e8;color:#2e7d32}.role-badge.admin{background:#fce4ec;color:#c2185b}.table-container{overflow-x:auto;margin-top:20px}.table-container table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.table-container th{background:#f8f9fa;color:#2c3e50;font-weight:600;text-align:left;padding:12px 16px;border-bottom:2px solid #e1e8ed;font-size:14px}.table-container td{padding:12px 16px;border-bottom:1px solid #e1e8ed;font-size:14px}.table-container tr:hover{background:#f8f9fa}.no-data{text-align:center;color:#7f8c8d;font-style:italic;padding:40px}.modal{background:#fff;border-radius:8px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #e1e8ed}.modal-header h3{margin:0;color:#2c3e50}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#7f8c8d;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#2c3e50}.modal-body{padding:20px}.panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.panel-header h2{margin:0;color:#2c3e50}.leave-form{max-width:600px}.form-group select{border:2px solid #e1e8ed;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .3s ease;width:100%;background:#fff}.form-group select:focus{border-color:#667eea;outline:none}.form-group textarea{border:2px solid #e1e8ed;border-radius:8px;font-size:16px;padding:12px 16px;transition:border-color .3s ease;width:100%;min-height:100px;resize:vertical;font-family:inherit}.form-group textarea:focus{border-color:#667eea;outline:none}.notifications-section{margin-top:30px;background:#fff;border:1px solid #e1e8ed;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.notifications-section h3{color:#2c3e50;font-size:18px;font-weight:600;margin:0 0 15px}.notifications-list{max-height:400px;overflow-y:auto}.notification-item{padding:15px;border-bottom:1px solid #f0f0f0;transition:background-color .3s ease}.notification-item:hover{background-color:#f8f9fa}.notification-item:last-child{border-bottom:none}.notification-title{color:#2c3e50;font-weight:600;font-size:14px;margin-bottom:5px}.notification-message{color:#7f8c8d;font-size:13px;line-height:1.4;margin-bottom:8px}.notification-time{color:#95a5a6;font-size:12px;font-style:italic}.no-notifications{text-align:center;padding:40px 20px;color:#7f8c8d;font-style:italic}.loginTitle p{color:#52616b;line-height:1.5;margin:0 0 26px}.field{display:grid;gap:8px;margin-bottom:16px}.field span{color:#344854;font-size:14px;font-weight:600}.inputIcon{align-items:center;border:1px solid #c9d4d8;border-radius:8px;display:grid;gap:10px;grid-template-columns:auto 1fr;min-height:48px;padding:0 12px}.inputIcon svg{color:#52616b}.inputIcon input{border:0;min-height:46px;padding:0}.inputIcon input:focus{outline:0}.inputIcon:focus-within{border-color:#146c75;box-shadow:0 0 0 3px #146c7524}.loginButton{font-weight:700;min-height:48px;width:100%}.loginError{background:#fff2f0;border:1px solid #ffdad6;border-radius:8px;margin:0 0 16px;padding:10px 12px}.loginHint{color:#52616b;font-size:13px;margin:16px 0 0;text-align:center}.layout{display:grid;gap:18px;margin:0 auto;max-width:1180px;padding:24px}.sessionBar{align-items:center;background:#e9f5f6;border:1px solid #b8d9dd;border-radius:8px;display:flex;gap:12px;justify-content:space-between;padding:12px 16px}.sessionBar span{color:#52616b}.sessionBar strong{color:#102a43}.tabs{background:#fff;border:1px solid #dce5e8;border-radius:8px;display:flex;gap:8px;padding:8px}.tabs button{background:transparent;color:#17202a;min-width:110px}.tabs button.active{background:#146c75;color:#fff}.panel{background:#fff;border:1px solid #dce5e8;border-radius:8px;padding:18px}.panel h2{margin-top:0}.grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.row{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.filters{display:grid;gap:12px;grid-template-columns:minmax(220px,1fr) repeat(auto-fit,minmax(170px,220px));margin-bottom:14px}.stats{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.stat{background:#fff;border:1px solid #dce5e8;border-radius:8px;padding:16px}.stat span{color:#52616b;display:block;text-transform:capitalize}.stat strong{display:block;font-size:30px;margin-top:6px}table{border-collapse:collapse;width:100%}th,td{border-bottom:1px solid #e5ecef;padding:12px;text-align:left;vertical-align:top}th{color:#52616b;font-size:14px}.actions{display:flex;flex-wrap:wrap;gap:8px}.actions button:not(.danger):not(:first-child){background:#f39c12;color:#fff}.actions button:not(.danger):not(:first-child):hover{background:#e67e22}.modalBackdrop{align-items:center;background:#102a4373;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;padding:18px;position:fixed;z-index:10}.modal{max-width:760px;width:min(760px,100%)}.modalHeader{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.modalHeader h2{margin:0}.badge{border-radius:999px;display:inline-block;font-size:13px;padding:4px 9px}.pending{background:#fff4ce;color:#7a4d00}.approved{background:#d8f3dc;color:#1b5e20}.rejected{background:#ffdad6;color:#7a271a}.success{color:#146c43}.error{color:#b42318}.note{border-bottom:1px solid #e5ecef;margin:0;padding:10px 0}@media(max-width:720px){header{grid-template-columns:1fr}.auth{padding:18px}.loginShell{grid-template-columns:1fr;min-height:auto}.loginBrand{border-radius:8px 8px 0 0;padding:28px}.loginBrand h1{font-size:32px}.loginCard{border-radius:0 0 8px 8px;padding:28px}table{display:block;overflow-x:auto}}@media(max-width:420px){.auth{padding:0}.loginBrand,.loginCard{border-radius:0}.loginCard{padding:24px 18px}}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{display:flex;flex:1}.sidebar{background:#fff;border-right:1px solid #dce5e8;padding:20px 0;width:250px}.sidebar a{display:block;padding:12px 24px;color:#52616b;text-decoration:none;transition:background .2s}.sidebar a:hover{background:#f4f7f8}.sidebar a.active{background:#146c75;color:#fff;border-left:3px solid #146c75}.content{flex:1;padding:24px;overflow-y:auto}.loader-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px}.loader{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid #146c75;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.pagination,.pagination-controls{display:flex;justify-content:center;align-items:center;gap:16px;margin:20px 0}.page-info{color:#52616b;font-weight:500}.leave-item{display:flex;justify-content:space-between;align-items:center;padding:12px;border-bottom:1px solid #e5ecef}.leave-item small{color:#52616b}.notification{padding:12px;border-bottom:1px solid #e5ecef}.notification strong{display:block;margin-bottom:4px}.notification p{margin:0;color:#52616b}.no-data{text-align:center;color:#52616b;padding:40px}.access-denied{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;text-align:center}.access-denied h2{color:#b42318;margin-bottom:16px}.quick-actions{display:flex;gap:12px;flex-wrap:wrap}.leave-card{border:1px solid #dce5e8;border-radius:8px;padding:16px;margin-bottom:16px}.leave-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.leave-header h3{margin:0}.leave-details p{margin:8px 0}.leave-actions{margin-top:12px}.extended{background:#e3f2fd;color:#1565c0}.profile-page{display:grid;gap:24px;max-width:800px}.profile-page .panel{margin-bottom:0}.profile-page .grid{grid-template-columns:1fr;gap:16px}.profile-page label{display:block;margin-bottom:6px;color:#344854;font-weight:600;font-size:14px}.profile-page input:disabled{background:#f4f7f8;color:#52616b;cursor:not-allowed}.account-info{display:grid;gap:16px}.info-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e5ecef}.info-item:last-child{border-bottom:none}.info-item .label{color:#52616b;font-weight:500}.info-item .value{color:#17202a;font-weight:600}.help-section{background:#f8f9fa;border:1px solid #e5ecef;border-radius:8px;padding:16px;margin-bottom:16px}.help-section h4{margin:0 0 12px;color:#344854;font-size:14px;font-weight:600}.columns-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:8px;margin-bottom:16px}.columns-grid span{background:#fff;border:1px solid #dce5e8;border-radius:4px;padding:6px 8px;font-size:12px;font-family:monospace;text-align:center}.validation-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.validation-grid div{font-size:13px;line-height:1.4}.validation-grid strong{color:#344854}.demo-links{display:flex;gap:12px;margin-top:16px;flex-wrap:wrap}.demo-link{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;background:#146c75;color:#fff;text-decoration:none;border-radius:6px;font-size:13px;transition:background .2s}.template-button{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;background:#28a745;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:background .2s;margin-top:12px;width:100%;justify-content:center}.template-button:hover{background:#218838}@media(max-width:720px){.main-content{flex-direction:column}.sidebar{width:100%;border-right:none;border-bottom:1px solid #dce5e8}.sidebar a{padding:12px 16px}.content{padding:16px}.filters{grid-template-columns:1fr}.pagination,.pagination-controls{flex-direction:column;gap:8px}}.recommend-btn{background:#17a2b8;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;margin-right:4px}.recommend-btn:hover{background:#138496}.approve-btn{background:#28a745;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px;margin-right:4px}.approve-btn:hover{background:#218838}.reject-btn{background:#dc3545;color:#fff;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:12px}.reject-btn:hover{background:#c82333}.status{padding:2px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.status.recommended{background:#d4edda;color:#155724}.status.rejected{background:#f8d7da;color:#721c24}.status.pending{background:#fff3cd;color:#856404}.status.approved{background:#d1ecf1;color:#0c5460}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:20px;box-shadow:0 4px 20px #0000001a;max-width:400px;width:90%;max-height:80vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.modal-header h3{margin:0;color:#34495e}.close-btn{background:none;border:none;font-size:24px;cursor:pointer;color:#6c757d;padding:0}.close-btn:hover{color:#34495e}.modal-body{margin-bottom:20px}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:600;color:#34495e}.form-group select{width:100%;padding:8px;border:1px solid #c9d4d8;border-radius:4px;font-size:14px}.form-actions{display:flex;gap:10px;justify-content:flex-end}.save-btn{background:#146c75;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px}.save-btn:hover{background:#0d7f5a}.cancel-btn{background:#6c757d;color:#fff;border:none;padding:8px 16px;border-radius:4px;cursor:pointer;font-size:14px}.cancel-btn:hover{background:#5a6268}.role-btn{background:#f8f9fa;color:#34495e;border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:12px}.role-btn:hover{background:#e9ecef}.role-badge{padding:4px 8px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase}.role-badge.faculty{background:#e3f2fd;color:#1a1e3a}.role-badge.coordinator{background:#d4edda;color:#155724}.role-badge.dean{background:#fff3cd;color:#856404}.role-badge.admin{background:#dc3545;color:#fff}.department-select-wrapper{position:relative}.department-search{margin-bottom:8px}.department-search-input{width:100%;padding:8px 12px;border:1px solid #dce5e8;border-radius:6px;font-size:14px;transition:border-color .3s ease}.department-search-input:focus{outline:none;border-color:#146c75;box-shadow:0 0 0 3px #146c751a}.department-select{width:100%;padding:8px 12px;border:1px solid #dce5e8;border-radius:6px;font-size:14px;background:#fff;transition:border-color .3s ease}.department-select:focus{outline:none;border-color:#146c75;box-shadow:0 0 0 3px #146c751a}.department-select.searchable{padding-right:40px}.error-message{color:#e74c3c;font-size:12px;margin-top:4px;display:block}
