.login-page{align-items:center;background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;display:flex;justify-content:center;min-height:100vh;padding:20px;position:relative}.login-page:before{background:#00000080;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.login-container{background:#fff;border-radius:20px;box-shadow:0 20px 60px #0000004d;max-width:420px;padding:40px;position:relative;width:100%;z-index:1}.login-header{margin-bottom:32px;text-align:center}.login-logo{height:auto;margin-bottom:16px;max-width:200px}.login-header h1{color:#1f2937;font-size:24px;font-weight:800;margin:0 0 8px}.login-header p{color:#6b7280;font-size:14px;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.error-banner{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626}.error-banner,.warning-banner{align-items:center;display:flex;font-size:14px;gap:8px;padding:12px 16px}.warning-banner{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;color:#d97706}.form-group input{border:2px solid #e5e7eb;border-radius:8px;font-size:15px;padding:12px 16px;transition:all .3s ease}.form-group input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;outline:none}.form-group input:disabled{background-color:#f3f4f6;cursor:not-allowed}.login-btn{background:#3b82f6;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;padding:14px;transition:all .3s ease}.login-btn:hover:not(:disabled){background:#2563eb;box-shadow:0 10px 20px #3b82f64d;transform:translateY(-2px)}.login-btn:disabled{cursor:not-allowed;opacity:.6}.login-footer{border-top:1px solid #e5e7eb;margin-top:24px;padding-top:24px;text-align:center}.login-footer p{color:#6b7280;font-size:13px;font-weight:600;margin:0 0 8px}.demo-accounts{list-style:none;margin:0;padding:0}.demo-accounts li{color:#9ca3af;font-family:monospace;font-size:11px;margin:4px 0}@media (max-width:480px){.login-container{margin:10px;padding:24px}.login-logo{max-width:160px}.login-header h1{font-size:20px}}.admin-dashboard{background:#faf7f2;background:var(--warm-white);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;position:relative}.admin-dashboard:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.18;opacity:var(--bg-image-opacity);pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.users-management{animation:fadeIn .5s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.header-content h1{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0 0 6px}.stats-quick{display:flex;flex-shrink:0;gap:16px}.stat-item{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:10px;display:flex;flex-direction:column;min-width:80px;padding:12px 20px}.stat-number{color:#fff;font-size:28px;font-weight:700;line-height:1;margin-bottom:4px}.stat-label{color:#ffffffe6;font-size:11px;letter-spacing:.5px;text-align:center}.filters-section{animation:fadeInUp .5s ease;padding:24px}.filters-header{border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--divider-color);flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.filters-header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.filters-icon{flex-shrink:0;font-size:32px}.filters-header h3{color:#3d2416;color:var(--text-primary);font-size:16px;font-weight:700;letter-spacing:-.2px;margin:0 0 4px}.filters-subtitle{color:#5c3a2a;color:var(--text-secondary);font-size:12px;font-weight:500;margin:0}.filters-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:16px}.filter-group{gap:8px}.filter-group label{align-items:center;display:flex;gap:6px}.label-icon{font-size:14px}.input-wrapper,.select-wrapper{position:relative;width:100%}.search-input{background:#faf7f2;background:var(--bg-solid-primary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:#3d2416;font-size:13px;padding:11px 38px 11px 14px}.search-input:focus{background:#fff;border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 0 0 3px #b8533d1a}.search-input:hover{border-color:#c96a52;border-color:var(--brick-red-light)}.clear-input-btn{align-items:center;background:#7d6b5d;background:var(--text-tertiary);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:12px;height:20px;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%);transition:all .2s ease;width:20px}.clear-input-btn:hover{background:#c0392b;background:var(--color-error);transform:translateY(-50%) scale(1.1)}.filter-select{background:#faf7f2;background:var(--bg-solid-primary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);box-sizing:border-box;font-family:inherit;font-size:13px;padding:11px 34px 11px 14px;width:100%}.filter-select:focus{background:#fff;border-color:var(--brick-red-primary)}.filter-select:hover{border-color:#c96a52;border-color:var(--brick-red-light)}.select-arrow{color:#5c3a2a;color:var(--text-secondary);font-size:10px;pointer-events:none;position:absolute;right:12px;top:50%;transform:translateY(-50%)}.filters-footer{align-items:center;border-top:2px solid #d4c4b040;border-top:2px solid var(--divider-color);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;padding-top:16px}.btn-clear-filters{align-items:center;background:#f5e6d380;background:var(--bg-secondary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);border-radius:8px;color:#3d2416;color:var(--text-primary);cursor:pointer;display:flex;font-size:12px;font-weight:600;gap:8px;padding:10px 16px;transition:all .2s ease}.btn-clear-filters:hover{background:#f3f4f699;background:var(--hover-bg);border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);color:#b8533d;color:var(--brick-red-primary);transform:translateY(-2px)}.btn-icon{font-size:14px}.results-count{color:#5c3a2a;color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.2px}.results-count strong{color:#b8533d;color:var(--brick-red-primary);font-size:14px;font-weight:700}.table-container{animation:fadeInUp .5s ease .1s backwards;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#faf7f2b3;background:var(--bg-primary);border:none;border-radius:12px;box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);overflow:hidden}.users-table{border-collapse:collapse;font-size:13px;width:100%}.users-table thead{background:#ebe0d066}.users-table th,.users-table thead{border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--divider-color)}.users-table th{color:#5c3a2a;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.8px;padding:14px 18px;text-align:left;text-transform:uppercase;white-space:nowrap}.users-table tbody tr{border-bottom:1px solid #d4c4b040;border-bottom:1px solid var(--divider-color);transition:all .2s ease}.users-table tbody tr:hover{background:#ebe0d04d}.users-table tbody tr:last-child{border-bottom:none}.users-table td{padding:16px 18px;vertical-align:middle}.name-cell strong,.users-table td{color:#3d2416;color:var(--text-primary);font-size:13px}.name-cell strong{font-weight:600}.role-badge{color:#fff;display:inline-block}.role-badge,.status-badge{border-radius:6px;font-size:10px;padding:5px 10px;white-space:nowrap}.status-badge{align-items:center;display:inline-flex;font-weight:700;gap:4px}.status-badge.active{background:#27ae6026;color:#27ae60}.status-badge.inactive{background:#e67e2226;color:#e67e22}.status-badge.suspended{background:#c0392b26;color:#c0392b}.actions-cell{gap:6px}.action-btn,.actions-cell{align-items:center;display:flex}.action-btn{background:#f5e6d380;background:var(--bg-secondary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);border-radius:6px;color:#3d2416;color:var(--text-primary);cursor:pointer;font-size:14px;height:32px;justify-content:center;transition:all .2s ease;width:32px}.action-btn:hover:not(:disabled){border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);transform:translateY(-2px)}.action-btn:disabled{cursor:not-allowed;opacity:.4}.action-btn.delete:hover:not(:disabled){background:#c0392b1a;border-color:#c0392b;border-color:var(--color-error);color:#c0392b;color:var(--color-error)}.empty-state p:before{content:"📭";display:block;font-size:56px;margin-bottom:16px;opacity:.5}body.dark-mode .users-table thead{background:#2c231880}body.dark-mode .users-table tbody tr:hover{background:#2c231866}body.dark-mode .filter-select{background-color:#faf7f2;background-color:var(--bg-solid-primary)}body.dark-mode .filter-select:focus,body.dark-mode .search-input:focus{background-color:#faf7f2;background-color:var(--bg-solid-primary);box-shadow:0 0 0 3px #e0958026}body.dark-mode .status-badge.active{background:#2ecc7133;color:#2ecc71}body.dark-mode .status-badge.inactive{background:#e67e2233;color:#e67e22}body.dark-mode .status-badge.suspended{background:#e74c3c33;color:#e74c3c}@media (max-width:1200px){.filters-grid{grid-template-columns:1fr 1fr}.filter-group:first-child{grid-column:span 2}}@media (max-width:768px){.page-header{flex-direction:column;gap:16px;padding:24px 28px}.header-content{text-align:center;width:100%}.stats-quick{justify-content:center;width:100%}.filters-section{padding:20px}.filters-header{align-items:flex-start;flex-direction:column}.header-left{width:100%}.filters-grid{grid-template-columns:1fr}.filter-group:first-child{grid-column:span 1}.filters-footer{align-items:stretch;flex-direction:column}.btn-clear-filters{justify-content:center;width:100%}.results-count{text-align:center}.users-table thead{display:none}.users-table,.users-table tbody,.users-table td,.users-table tr{display:block;width:100%}.users-table tr{background:#faf7f2b3;background:var(--bg-primary);border:1px solid #d4c4b04d;border:1px solid var(--border-color);border-radius:10px;margin-bottom:12px;padding:16px}.users-table td{align-items:center;border:none;display:flex;font-size:12px;justify-content:space-between;padding:8px 0}.users-table td:before{color:#5c3a2a;color:var(--text-secondary);content:attr(data-label);font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.actions-cell{border-top:1px solid #d4c4b040;border-top:1px solid var(--divider-color);justify-content:flex-end;margin-top:12px;padding-top:12px}}@media (max-width:480px){.page-header{padding:20px 24px}.header-content h1{font-size:20px}.header-subtitle{font-size:12px}.stat-item{min-width:70px;padding:10px 16px}.stat-number{font-size:24px}.stat-label{font-size:10px}.filters-section{padding:16px}.filters-icon{font-size:28px}.filters-header h3{font-size:14px}.filters-subtitle{font-size:11px}.filter-select,.search-input{font-size:12px;padding:10px 12px}.search-input{padding-right:36px}.filter-select{padding-right:32px}.action-btn{font-size:13px;height:30px;width:30px}.role-badge,.status-badge{font-size:9px;padding:4px 8px}}.action-btn:focus-visible,.filter-select:focus-visible,.search-input:focus-visible{outline:2px solid #b8533d;outline:2px solid var(--brick-red-primary);outline-offset:2px}.create-user{animation:fadeIn .5s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.success-banner{animation:slideDown .5s ease;background:linear-gradient(135deg,#27ae60,#229954);border-left:4px solid #1e8449;border-radius:10px;box-shadow:0 8px 24px #27ae604d;color:#fff;gap:14px;left:50%;max-width:90%;padding:16px 28px;position:fixed;top:20px;transform:translateX(-50%);z-index:9999}.success-banner,.success-icon{align-items:center;display:flex}.success-icon{background:#fff3;border-radius:50%;flex-shrink:0;height:32px;justify-content:center;width:32px}.success-icon:before{content:"✓";font-size:20px;font-weight:700}.success-content h3{font-size:16px;font-weight:700;letter-spacing:.3px;margin:0 0 4px}.success-content p{font-size:13px;font-weight:500;margin:0;opacity:.95}.page-header{animation:fadeInUp .5s ease;gap:24px;justify-content:space-between;margin-bottom:24px;padding:28px 32px}.header-content,.page-header{align-items:center;display:flex}.header-content{gap:0}.header-subtitle{color:#fffffff2;font-size:13px;font-weight:500;letter-spacing:.2px;opacity:.9}.admin-info{align-items:flex-end;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff26;border:1px solid #fff3;border-radius:10px;display:flex;flex-direction:column;padding:12px 20px}.admin-label{font-size:11px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;opacity:.85;text-transform:uppercase}.admin-name{font-size:14px;font-weight:700}.form-container{animation:fadeInUp .5s ease .1s backwards;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#faf7f2b3;border:none;box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm)}.form-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(2,1fr);margin-bottom:28px}.form-group.full-width{grid-column:1/-1}.form-label{color:#5c3a2a;color:var(--text-secondary);font-size:11px;font-weight:700;gap:0;letter-spacing:.8px;text-transform:uppercase}.form-input,.form-select{background:#faf7f2;background:var(--bg-solid-primary);border:2px solid #d4c4b04d;box-sizing:border-box;color:#3d2416;font-size:13px;padding:11px 14px;transition:all .2s ease;width:100%}.form-input:focus,.form-select:focus{background:#fff;border-color:#b8533d;border-color:var(--brick-red-primary)}.form-input:hover,.form-select:hover{border-color:#c96a52;border-color:var(--brick-red-light)}.form-input::placeholder{color:#7d6b5d;font-size:13px}.form-input.error,.form-select.error{background:#c0392b0d;border-color:#c0392b}.form-input:disabled,.form-select:disabled{background:#ebe0d066}.form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%235C3A2A' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:10px;cursor:pointer;padding-right:34px}.error-message{font-size:11px;gap:6px;margin-top:4px}.error-message:before{align-items:center;background:#c0392b;background:var(--color-error);border-radius:50%;color:#fff;content:"!";display:flex;flex-shrink:0;font-size:12px;font-weight:700;height:16px;justify-content:center;width:16px}.radio-group{display:flex;gap:14px;padding:0}.radio-label{align-items:center;background:#f5e6d380;background:var(--bg-secondary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);border-radius:8px;color:#5c3a2a;color:var(--text-secondary);cursor:pointer;display:flex;flex:1 1;font-size:13px;font-weight:600;gap:10px;justify-content:center;padding:12px 18px;position:relative;transition:all .2s ease}.radio-label:hover{background:#f3f4f699;background:var(--hover-bg);border-color:#b8533d;border-color:var(--brick-red-primary)}.radio-label input[type=radio]{cursor:pointer;opacity:0;position:absolute}.radio-label:has(input[type=radio]:checked){background:#ebe0d080;background:var(--active-bg);border-color:#b8533d;border-color:var(--brick-red-primary);color:#b8533d;color:var(--brick-red-primary)}.radio-text{align-items:center;display:flex;font-weight:600;gap:6px;transition:all .2s ease}.status-dot{border-radius:50%;flex-shrink:0;height:8px;width:8px}.status-dot.active{background:#27ae60;background:var(--color-success)}.status-dot.inactive{background:#e67e22;background:var(--color-warning)}.form-info{align-items:flex-start;background:#b8533d0d;border:2px solid #b8533d26;border-left:4px solid #b8533d;border-left:4px solid var(--brick-red-primary);border-radius:8px;color:#3d2416;color:var(--text-primary);display:flex;gap:12px;margin-bottom:28px;padding:16px 20px}.info-icon{background:#b8533d;background:var(--brick-red-primary);border-radius:50%;color:#fff;font-size:14px;font-weight:700;height:24px;width:24px}.info-icon:before{content:"i"}.info-content{color:#5c3a2a;color:var(--text-secondary);font-size:12px;font-weight:500;line-height:1.6}.info-content strong{color:#3d2416;color:var(--text-primary);font-weight:700}.form-actions{border-top:2px solid #d4c4b040;padding-top:28px}.btn{border:2px solid #0000;border-radius:8px;display:flex;font-family:inherit;font-size:13px;font-weight:600;gap:8px;padding:12px 24px;position:relative;transition:all .2s ease}.btn:disabled{opacity:.5}.btn svg{stroke-width:2;height:16px;width:16px}.btn-primary{background:linear-gradient(135deg,var(--brick-red-primary) 0,var(--brick-red-dark) 100%);border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){box-shadow:0 4px 8px #5c3a2a1a;box-shadow:var(--shadow-md)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-secondary{background:#f5e6d380;border-color:#d4c4b04d;border-color:var(--border-color);color:#3d2416}.btn-secondary:hover:not(:disabled){background:#f3f4f699;background:var(--hover-bg);border-color:#c0392b;border-color:var(--color-error);box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);color:#c0392b;color:var(--color-error)}.btn-outline{background:#0000;border-color:#d4c4b04d;border-color:var(--border-color);color:#5c3a2a;color:var(--text-secondary)}.btn-outline:hover:not(:disabled){background:#f5e6d380;background:var(--bg-secondary);border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);color:#b8533d;color:var(--brick-red-primary);transform:translateY(-2px)}.btn-spinner{animation:spin .8s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}body.dark-mode .form-input:focus,body.dark-mode .form-select:focus{background-color:#faf7f2;background-color:var(--bg-solid-primary);box-shadow:0 0 0 3px #e0958026}body.dark-mode .form-select{background-color:#ebe0d0;background-color:var(--bg-solid-tertiary);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23D4C4B0' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:10px}@media (max-width:1024px){.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:1}}@media (max-width:768px){.page-header{padding:24px 28px}.header-content,.page-header{flex-direction:column;text-align:center}.header-content{width:100%}.admin-info{align-items:center;width:100%}.form-container{padding:24px}.form-grid{gap:18px}.radio-group{flex-direction:column;gap:10px}.radio-label{padding:14px 18px}.form-actions{flex-direction:column-reverse;gap:10px}.btn{justify-content:center;padding:14px 20px;width:100%}.success-banner{max-width:85%;padding:14px 24px}}@media (max-width:480px){.page-header{padding:20px 24px}.page-header h1{font-size:20px}.header-subtitle{font-size:12px}.form-container{padding:20px}.form-input,.form-select{font-size:12px;padding:10px 12px}.form-info{font-size:11px;padding:14px 18px}.btn{font-size:12px;padding:12px 18px}.status-dot{height:6px;width:6px}}.btn:focus-visible{outline:2px solid #b8533d;outline:2px solid var(--brick-red-primary);outline-offset:2px}.form-input:focus-visible,.form-select:focus-visible{outline:2px solid #b8533d;outline:2px solid var(--brick-red-primary);outline-offset:2px}:root{--bg-primary:#faf7f2b3;--bg-secondary:#f5e6d380;--bg-tertiary:#ebe0d066;--border-color:#d4c4b04d;--hover-bg:#f3f4f699;--active-bg:#ebe0d080;--divider-color:#d4c4b040}.audit-logs{animation:fadeIn .5s ease;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.page-header{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(135deg,#b8533d,#9b3d2f);background:linear-gradient(135deg,var(--brick-red-primary) 0,var(--brick-red-dark) 100%);border-bottom:4px solid #9b3d2f;border-bottom:4px solid var(--brick-red-dark);border-radius:12px;box-shadow:0 4px 8px #5c3a2a1a;box-shadow:var(--shadow-md);color:#fff;margin-bottom:28px;padding:32px 36px}.page-header h1{color:#fff;font-size:24px;font-weight:700;letter-spacing:-.3px;margin:0 0 6px}.page-subtitle{color:#fffffff2;font-size:13px;font-weight:500;letter-spacing:.2px;margin:0;opacity:.9}.error-message{align-items:center;background:#c0392b1a;border:2px solid #c0392b;border:2px solid var(--color-error);border-radius:10px;color:var(--color-error);display:flex;font-size:14px;font-weight:600;gap:10px;margin-bottom:20px;padding:14px 20px}.error-message:before{content:"⚠️";font-size:20px}.filters-section{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#faf7f2b3;background:var(--bg-primary);border:none;border-radius:12px;box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);margin-bottom:24px;overflow:hidden;padding:0}.filter-group{padding:20px 24px}.filter-group:first-child{border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--divider-color);padding-bottom:12px}.filters-row{grid-gap:16px;background:#0000;display:grid;gap:16px;grid-template-columns:2fr 1fr 1fr;padding:20px 24px}.filter-group label{color:var(--text-secondary);display:block;font-size:11px;font-weight:700;letter-spacing:.8px;margin-bottom:8px;text-transform:uppercase}.filter-input,.filter-select,.search-input{background:#faf7f2;background:var(--bg-solid-primary);border:2px solid #d4c4b04d;border:2px solid var(--border-color);border-radius:8px;box-sizing:border-box;color:#3d2416;color:var(--text-primary);font-family:inherit;font-size:13px;padding:11px 14px;transition:all .2s ease;width:100%}.search-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%235C3A2A' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E");background-position:12px;background-repeat:no-repeat;background-size:18px;padding-left:38px}.filter-input:focus,.filter-select:focus,.search-input:focus{background:#fff;border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 0 0 3px #b8533d1a;outline:none}.filter-input:hover,.filter-select:hover,.search-input:hover{border-color:#c96a52;border-color:var(--brick-red-light)}.search-input::placeholder{color:#7d6b5d;color:var(--text-tertiary);font-size:13px}.filter-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%235C3A2A' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:10px;padding-right:34px}.filter-input{cursor:pointer}.filter-input::-webkit-calendar-picker-indicator{cursor:pointer;filter:opacity(.6)}.logs-table-container{backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#faf7f2b3;background:var(--bg-primary);border:none;border-radius:12px;box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm);overflow:hidden}.logs-table{border-collapse:collapse;font-size:13px;width:100%}.logs-table thead{background:#ebe0d066}.logs-table th,.logs-table thead{border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--divider-color)}.logs-table th{color:#5c3a2a;color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.8px;padding:14px 18px;text-align:left;text-transform:uppercase}.logs-table tbody tr{border-bottom:1px solid #d4c4b040;border-bottom:1px solid var(--divider-color);transition:all .2s ease}.logs-table tbody tr:hover{background:#ebe0d04d}.logs-table tbody tr:last-child{border-bottom:none}.logs-table td{color:#3d2416;color:var(--text-primary);padding:16px 18px;vertical-align:middle}.action-badge{align-items:center;border-radius:6px;color:#fff;display:inline-flex;font-size:10px;font-weight:700;letter-spacing:.5px;padding:6px 12px;text-transform:uppercase;white-space:nowrap}.user-info{display:flex;flex-direction:column;gap:4px}.user-name{font-size:13px;font-weight:600}.log-details,.user-email{color:#5c3a2a;color:var(--text-secondary);font-size:12px}.log-details{line-height:1.5;max-width:300px}.date-cell{color:#5c3a2a;color:var(--text-secondary);font-size:12px;font-weight:500;white-space:nowrap}.empty-state{padding:60px 20px}.empty-icon{font-size:56px;margin-bottom:16px;opacity:.5}.empty-state h3{color:#3d2416;font-size:18px;margin:0 0 8px}.empty-state p{color:#5c3a2a}.loading-state{font-size:16px;padding:60px 20px}.loading-state:before{border:3px solid #d4c4b04d;border-top:3px solid var(--brick-red-primary);height:40px;width:40px}body.dark-mode{--bg-secondary:#2c231880;--bg-tertiary:#3d2e2366;--border-color:#4a3a2e4d;--divider-color:#4a3a2e40}body.dark-mode .logs-table thead{background:#2c231880}body.dark-mode .logs-table tbody tr:hover{background:#2c231866}body.dark-mode .search-input{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23D4C4B0' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.35-4.35'/%3E%3C/svg%3E")}body.dark-mode .filter-select,body.dark-mode .search-input{background-color:#ebe0d0;background-color:var(--bg-solid-tertiary)}body.dark-mode .filter-select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 12 12'%3E%3Cpath fill='%23D4C4B0' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;background-size:10px}body.dark-mode .filter-input{background-color:#ebe0d0;background-color:var(--bg-solid-tertiary);color-scheme:dark}body.dark-mode .filter-input:focus,body.dark-mode .filter-select:focus,body.dark-mode .search-input:focus{background-color:#faf7f2;background-color:var(--bg-solid-primary);box-shadow:0 0 0 3px #e0958026}@media (max-width:1200px){.filters-row{grid-template-columns:1fr 1fr}.filters-row .filter-group:first-child{grid-column:span 2}}@media (max-width:768px){.page-header{padding:24px 28px}.page-header h1{font-size:20px}.filter-group,.filters-row{padding:16px 20px}.filters-row{grid-template-columns:1fr}.filters-row .filter-group:first-child{grid-column:span 1}.logs-table,.logs-table-container{overflow-x:auto}.logs-table{display:block;white-space:nowrap}.logs-table thead{display:none}.logs-table tbody{display:block}.logs-table tbody tr{border:1px solid #d4c4b040;border:1px solid var(--divider-color);border-radius:8px;display:block;margin-bottom:16px;overflow:hidden}.logs-table td{align-items:center;border-bottom:1px solid #d4c4b040;border-bottom:1px solid var(--divider-color);display:flex;justify-content:space-between;padding:12px 16px}.logs-table td:last-child{border-bottom:none}.logs-table td:before{color:#5c3a2a;color:var(--text-secondary);content:attr(data-label);font-size:11px;font-weight:700;letter-spacing:.5px;margin-right:16px;text-transform:uppercase}.log-details,.logs-table td .action-badge,.logs-table td .user-info{text-align:right}.log-details{max-width:none}}@media (max-width:480px){.page-header{border-radius:10px;padding:20px 24px}.page-header h1{font-size:18px}.page-subtitle{font-size:12px}.filter-group,.filters-row{padding:14px 18px}.filter-input,.filter-select,.search-input{font-size:12px;padding:10px 12px}.search-input{background-position:10px;background-size:16px;padding-left:36px}.logs-table td{font-size:12px;padding:10px 14px}.action-badge{font-size:9px;padding:5px 10px}.empty-state{padding:40px 20px}.empty-icon{font-size:48px}.empty-state h3{font-size:16px}.empty-state p{font-size:13px}}.filter-input:focus-visible,.filter-select:focus-visible,.search-input:focus-visible{outline:2px solid #b8533d;outline:2px solid var(--brick-red-primary);outline-offset:2px}.secretar-dashboard{background:#faf7f2;background:var(--warm-white);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;position:relative}.secretar-dashboard:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.18;opacity:var(--bg-image-opacity);pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.logo-image{height:32px;max-width:120px}.stats-grid{grid-gap:20px;animation:fadeInUp .5s ease .1s backwards;display:grid;gap:20px;grid-template-columns:repeat(4,1fr);margin-bottom:36px}.stat-card{align-items:center;background:#faf7f259;border:none;border-radius:12px;box-shadow:0 4px 12px #5c3a2a0f;display:flex;flex-direction:column;gap:8px;overflow:hidden;padding:28px 24px;transition:all .25s ease}.stat-card:before{background:currentColor;content:"";height:4px;left:0;opacity:.85;position:absolute;right:0;top:0;transition:height .25s ease,opacity .25s ease}.stat-card.primary{color:#b8533d;color:var(--brick-red-primary)}.stat-card.success{color:#27ae60;color:var(--color-success)}.stat-card.warning{color:#d4a916;color:var(--academic-gold-dark)}.stat-card.danger{color:#c0392b;color:var(--color-error)}.stat-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#faf7f280;box-shadow:0 8px 20px #5c3a2a1a;transform:translateY(-3px)}.stat-card:hover:before{height:6px;opacity:1}.stat-value{color:#5c3a2a;color:var(--text-secondary);font-size:48px;font-weight:800;letter-spacing:-1px;line-height:1;margin-top:4px}.stat-label{color:#7d6b5d;color:var(--text-tertiary);font-size:12px;font-weight:600;letter-spacing:.8px;line-height:1.4;margin-top:4px;text-transform:uppercase}.roles-section{animation:fadeInUp .5s ease .2s backwards;margin-bottom:36px}.roles-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(4,1fr)}.role-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f259;border:none;border-radius:12px;box-shadow:0 4px 12px #5c3a2a0f;overflow:hidden;padding:24px 20px;position:relative;text-align:center;transition:all .25s ease}.role-card:before{background:currentColor;content:"";height:4px;left:0;opacity:.85;position:absolute;right:0;top:0;transition:height .25s ease,opacity .25s ease}.role-card.admin{color:#9b3d2f;color:var(--brick-red-dark)}.role-card.secretar{color:#d4a916;color:var(--academic-gold-dark)}.role-card.profesor{color:#b8533d;color:var(--brick-red-primary)}.role-card.student{color:#c96a52;color:var(--brick-red-light)}.role-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#faf7f280;box-shadow:0 8px 20px #5c3a2a1a;transform:translateY(-3px)}.role-card:hover:before{height:6px;opacity:1}.role-icon{align-items:center;background:#ffffff59;border-radius:12px;color:currentColor;display:flex;height:52px;justify-content:center;margin:0 auto 14px;transition:all .25s ease;width:52px}.role-card:hover .role-icon{background:#ffffff80;transform:scale(1.08)}.role-icon svg{stroke-width:2.5;height:28px;width:28px}.role-count{color:#3d2416;color:var(--text-primary);font-size:32px;font-weight:700;letter-spacing:-.5px;line-height:1.1;margin-bottom:6px}.role-label{color:#5c3a2a;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.6px;line-height:1.3;text-transform:uppercase}.quick-actions{animation:fadeInUp .5s ease .3s backwards}body.dark-mode .admin-dashboard{background:#f5e6d3;background:var(--bg-solid-secondary)}body.dark-mode .admin-dashboard:before{filter:brightness(.7) contrast(1.1)}body.dark-mode .action-card,body.dark-mode .role-card,body.dark-mode .stat-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1f181259}body.dark-mode .action-card:hover,body.dark-mode .role-card:hover,body.dark-mode .stat-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#1f181280;box-shadow:0 8px 24px #0006}body.dark-mode .role-count,body.dark-mode .stat-value{color:#3d2416;color:var(--deep-brown)}body.dark-mode .role-icon{background:#ffffff14}body.dark-mode .role-card:hover .role-icon{background:#ffffff1f}body.dark-mode .action-icon{background:#e0958026}body.dark-mode .action-card:hover .action-icon{background:#e0958040}@media (max-width:1200px){.roles-grid,.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{transform:translateX(-100%);width:280px;width:var(--sidebar-width)}.sidebar.open{transform:translateX(0)}.sidebar.closed{transform:translateX(-100%);width:280px;width:var(--sidebar-width)}.main-content,.main-content.sidebar-closed{margin-left:0}.top-bar{padding:0 20px}.page-title{font-size:18px}.page-content{padding:20px}.stats-grid{gap:16px;grid-template-columns:1fr}.roles-grid{gap:16px;grid-template-columns:repeat(2,1fr)}.actions-grid{gap:16px;grid-template-columns:1fr}.action-card,.role-card,.stat-card{padding:24px 20px}.stat-value{font-size:42px}.action-icon,.role-icon{height:48px;width:48px}.action-icon svg,.role-icon svg{height:24px;width:24px}.role-count{font-size:28px}:root{--bg-image-opacity:0.14}body.dark-mode{--bg-image-opacity:0.07}}@media (max-width:480px){.page-content{padding:16px}.welcome-section h2{font-size:20px}.welcome-section p{font-size:13px}.action-card,.role-card,.stat-card{padding:20px 16px}.stat-value{font-size:36px}.action-icon,.role-icon{height:44px;width:44px}.action-icon svg,.role-icon svg{height:22px;width:22px}.role-count{font-size:26px}.role-label,.stat-label{font-size:10px}.action-label{font-size:12px}.roles-grid{grid-template-columns:1fr}}.welcome-section{margin-bottom:32px}.welcome-section h2{margin:0 0 8px}.welcome-section p{font-size:15px}.dashboard-cards{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.dashboard-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#f9fafb8c;background:var(--bg-primary);border:2px solid #d4c4b040;border:2px solid var(--glass-border);border-radius:12px;box-shadow:0 4px 8px #5c3a2a1a;box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;gap:16px;padding:24px;transition:all .3s ease}.dashboard-card:hover{border-color:#c96a52;border-color:var(--color-primary-light);box-shadow:0 10px 20px #5c3a2a1f;box-shadow:var(--shadow-lg);transform:translateY(-4px)}.card-icon{align-items:center;border-radius:10px;display:flex;height:48px;justify-content:center;width:48px}.card-icon svg{stroke-width:2;height:28px;width:28px}.card-icon.subjects{background:#3498db26;color:#3498db}.card-icon.curriculum{background:#9b59b626;color:#9b59b6}.card-icon.groups{background:#2ecc7126;color:#2ecc71}.card-icon.schedule{background:#f1c40f26;color:#f1c40f}.card-icon.requests{background:#e67e2226;color:#e67e22}.card-icon.exams{background:#e74c3c26;color:#e74c3c}.dashboard-card h3{color:#3d2416;color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.dashboard-card p{color:#5c3a2a;color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.action-card,.role-card,.sidebar,.sidebar-footer,.sidebar-header,.stat-card,.top-bar,.user-profile{background:#faf7f2b3}body.dark-mode .action-card,body.dark-mode .role-card,body.dark-mode .sidebar,body.dark-mode .sidebar-footer,body.dark-mode .sidebar-header,body.dark-mode .stat-card,body.dark-mode .top-bar,body.dark-mode .user-profile{background:#1f181299}}.subject-management{margin:0 auto;max-width:1400px;overflow:hidden;padding:32px;position:relative}.subjects-header{gap:24px;margin-bottom:32px}.header-info h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.header-info p{color:var(--text-secondary);font-size:14px;margin:0}.btn-primary:hover{background:var(--color-primary-dark);box-shadow:var(--shadow-lg)}.btn-primary:active{transform:translateY(0)}.btn-add-subject{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-primary);border:2px solid var(--color-primary);border-radius:10px;box-shadow:var(--shadow-sm);color:var(--color-primary);cursor:pointer;display:inline-flex;font-size:15px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .3s ease;white-space:nowrap}.btn-add-subject svg{flex-shrink:0;height:20px;width:20px}.btn-add-subject:hover{background:var(--color-primary);box-shadow:var(--shadow-md);color:#fff;transform:translateY(-2px)}.btn-add-subject:active{transform:translateY(0)}.search-section{margin-bottom:24px;position:relative;z-index:1}.search-input-wrapper{align-items:center;display:flex;isolation:isolate;position:relative}.search-icon{color:var(--text-secondary);height:20px;left:16px;pointer-events:none;position:absolute;width:20px}.search-input{-webkit-appearance:none;appearance:none;background:var(--bg-primary);border:2px solid var(--glass-border);border-radius:12px;box-shadow:inset 0 1px 2px #0000000d;color:var(--text-primary);font-family:inherit;font-size:15px;padding:14px 48px;transition:all .2s ease;width:100%}.search-input::placeholder{color:var(--text-secondary);opacity:.6}.search-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #b8533d26,inset 0 1px 2px #0000000d;outline:none}body.dark-mode .search-input{background:#ffffff0d;border-color:#d4c4b040;box-shadow:inset 0 1px 3px #0000004d}body.dark-mode .search-input:focus{background:#ffffff14;border-color:var(--color-primary);box-shadow:0 0 0 3px #e0958033,inset 0 1px 3px #0000004d}body.dark-mode .search-input::placeholder{color:var(--text-secondary);opacity:.5}.clear-search{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;height:32px;justify-content:center;position:absolute;right:12px;transition:all .2s ease;width:32px}.clear-search:hover{background:var(--bg-secondary);color:var(--text-primary)}.clear-search svg{height:16px;width:16px}.search-results-info{background:#b8533d1a;border-left:3px solid var(--color-primary);border-radius:4px;color:var(--color-primary);font-size:13px;font-weight:500;margin-top:12px;padding:8px 16px}body.dark-mode .search-results-info{background:#e0958026;border-left-color:var(--color-primary);color:var(--color-primary)}.filter-section{background:var(--bg-secondary);border:2px solid var(--glass-border);border-radius:12px;gap:12px;margin-bottom:24px;padding:20px}.filter-label,.filter-section{align-items:center;display:flex}.filter-label{color:var(--text-primary);font-size:14px;font-weight:600;gap:8px;white-space:nowrap}.filter-label svg{color:var(--color-primary);height:20px;width:20px}.filter-select{background:var(--bg-primary);border:2px solid var(--glass-border);color:var(--text-primary);flex:1 1;font-size:14px;padding:10px 16px;transition:all .2s ease}.filter-select:focus,.filter-select:hover{border-color:var(--color-primary)}.filter-select:focus{box-shadow:0 0 0 3px #b8533d26}body.dark-mode .filter-select{background:#ffffff0d;border-color:#d4c4b040}body.dark-mode .filter-select:focus{background:#ffffff14;border-color:var(--color-primary);box-shadow:0 0 0 3px #e0958033}.clear-filter{align-items:center;background:#0000;border:2px solid var(--glass-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s ease;width:36px}.clear-filter:hover{background:var(--color-error);border-color:var(--color-error);color:#fff}.clear-filter svg{height:18px;width:18px}.empty-state{background:var(--bg-primary);border:2px solid var(--glass-border);padding:80px 20px}.empty-state h3{color:var(--text-primary);font-weight:600}.empty-state p{color:var(--text-secondary);margin:0 0 16px}.subjects-by-year{display:flex;flex-direction:column;gap:40px}.year-section{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-primary);border:2px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-md);padding:24px}.year-title{align-items:center;border-bottom:2px solid var(--divider-color);color:var(--color-primary);display:flex;font-size:24px;font-weight:700;gap:12px;margin:0 0 24px;padding-bottom:16px}.year-title svg{height:28px;width:28px}.semesters-container{display:flex;flex-direction:column;gap:32px}.semester-section{animation:fadeIn .4s ease}.semester-title{border-bottom:1px solid var(--divider-color);color:var(--text-primary);font-size:18px;justify-content:space-between;margin:0 0 16px;padding-bottom:12px}.subject-count{color:var(--text-tertiary);font-size:14px;font-weight:400}.subjects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr))}.subject-management .subjects-by-year .semester-section .subjects-grid .subject-card{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fff9!important;border:2px solid var(--glass-border);border-radius:10px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;padding:20px;transition:all .3s ease}.subject-management .subjects-by-year .semester-section .subjects-grid .subject-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg);transform:translateY(-4px)}body.dark-mode .subject-management .subjects-by-year .semester-section .subjects-grid .subject-card{background:#1e1e1eb3!important;border-color:#d4c4b033}.subject-header{gap:12px}.subject-code{background:#b8533d1a;color:var(--color-primary);font-weight:700;padding:4px 12px}.subject-credits{background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary);font-size:13px;font-weight:600;padding:4px 12px}.subject-name{color:var(--text-primary);font-size:16px;font-weight:600;margin:0 0 12px;min-height:44px}.subject-professors{align-items:flex-start;background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:6px;display:flex;gap:8px;margin-bottom:12px;padding:10px}.subject-professors svg{color:var(--color-primary);flex-shrink:0;height:16px;margin-top:2px;width:16px}.professors-list{color:var(--text-primary);display:flex;flex:1 1;flex-wrap:wrap;font-size:13px;gap:4px;line-height:1.6}.professor-badge{color:var(--text-primary);font-weight:500}.subject-info{flex-wrap:wrap;gap:8px}.info-badge{align-items:center;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);display:flex;font-size:12px;gap:6px;padding:4px 10px}.info-badge svg{height:14px;width:14px}.subject-actions{border-top:1px solid var(--divider-color);display:flex;gap:8px;margin-top:auto;padding-top:12px}.btn-icon{background:#ffffff80;border:2px solid var(--border-color);height:36px;padding:0;width:36px}.btn-icon svg{height:18px;width:18px}.btn-icon.edit{color:var(--color-primary)}.btn-icon.edit:hover{background:var(--color-primary);border-color:var(--color-primary);color:#fff;transform:scale(1.05)}.btn-icon.delete{color:var(--color-error)}.btn-icon.delete:hover{background:var(--color-error);border-color:var(--color-error);color:#fff;transform:scale(1.05)}.delete-confirm{align-items:center;animation:fadeIn .2s ease;background:#c0392b1a;border-radius:6px;display:flex;flex:1 1;gap:8px;padding:4px 8px}.delete-confirm span{color:var(--color-error);font-size:13px;font-weight:600}.delete-confirm .btn-icon{height:28px;width:28px}.delete-confirm .btn-icon.confirm{color:var(--color-success)}.delete-confirm .btn-icon.confirm:hover{background:var(--color-success);border-color:var(--color-success);color:#fff}.delete-confirm .btn-icon.cancel{color:var(--text-secondary)}.delete-confirm .btn-icon.cancel:hover{background:var(--text-secondary);border-color:var(--text-secondary);color:#fff}@media (max-width:768px){.subject-management{padding:20px}.subjects-header{align-items:stretch;flex-direction:column}.header-info h2{font-size:24px}.btn-primary{justify-content:center;width:100%}.subjects-grid{grid-template-columns:1fr}.year-title{font-size:20px}.semester-title{font-size:16px}}@media (max-width:480px){.subject-management{padding:16px}.header-info h2{font-size:20px}.subject-card,.year-section{padding:16px}}.subject-form{margin:0 auto;max-width:900px;padding:32px}.form-container{animation:fadeIn .4s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-primary);border:2px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-md);padding:32px}.form-header{border-bottom:2px solid var(--divider-color);margin-bottom:32px;padding-bottom:24px}.form-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0 0 8px}.form-header p{color:var(--text-secondary);font-size:14px;margin:0}.form{display:flex;flex-direction:column;gap:24px}.form-label{align-items:center;color:var(--text-primary);display:flex;font-size:14px;font-weight:600;gap:4px}.form-label.required:after{color:var(--color-error);content:"*";font-size:16px}.form-input,.form-select{background:#fff9;border:2px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:15px;padding:12px 16px;transition:all .3s ease}.form-input:focus,.form-select:focus{background:#fffc;border-color:var(--color-primary);box-shadow:0 0 0 3px #b8533d1a;outline:none}.form-input:disabled,.form-select:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.6}.form-input.error,.form-select.error{border-color:var(--color-error)}.form-input::placeholder{color:var(--text-tertiary);opacity:.6}.form-row{grid-gap:20px;gap:20px}@media (max-width:640px){.form-row{grid-template-columns:1fr}}.field-hint{color:var(--text-tertiary);font-size:12px;margin-top:-4px}.field-error{align-items:center;animation:shake .3s ease;color:var(--color-error);display:flex;font-size:12px;gap:4px}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}.summary-card{background:#f4d03f1a;border:2px solid #d4a9164d;border-radius:10px;margin-top:8px;padding:20px}.summary-card h4{align-items:center;color:var(--text-primary);display:flex;font-size:16px;font-weight:600;gap:8px;margin:0 0 16px}.summary-card h4:before{content:"👁️";font-size:18px}.summary-content{display:flex;flex-direction:column;gap:12px}.summary-item{align-items:center;border-bottom:1px solid var(--divider-color);justify-content:space-between;padding:8px 0}.summary-item:last-child{border-bottom:none}.summary-label{color:var(--text-secondary);font-size:13px}.summary-value{color:var(--text-primary);font-size:14px;font-weight:600;text-align:right}.professors-select{margin-top:8px}.professors-select.error{border:2px solid var(--color-error);border-radius:8px;padding:8px}.professors-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.professor-card{align-items:center;background:var(--bg-secondary);border:2px solid var(--glass-border);border-radius:8px;cursor:pointer;display:flex;gap:12px;padding:12px;transition:all .2s ease}.professor-card:hover{background:var(--bg-hover);border-color:var(--color-primary);box-shadow:var(--shadow-sm);transform:translateY(-2px)}.professor-card.selected{background:linear-gradient(135deg,#3b82f61a,#6366f11a);border-color:var(--color-primary)}.professor-checkbox{flex-shrink:0}.professor-checkbox input[type=checkbox]{accent-color:var(--color-primary)}.professor-info{flex:1 1;min-width:0}.professor-name{color:var(--text-primary);font-size:14px;font-weight:600;margin-bottom:2px}.professor-faculty{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.empty-state{background:var(--bg-secondary);color:var(--text-secondary);padding:40px 20px}.form-actions{border-top:2px solid var(--divider-color);gap:12px;margin-top:8px;padding-top:24px}.btn-secondary{align-items:center;border:2px solid var(--border-color);display:flex;gap:8px;transition:all .3s ease}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--text-secondary);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-secondary:disabled{opacity:.6}.btn-primary{background:var(--color-primary);box-shadow:var(--shadow-md);transition:all .3s ease}.btn-primary svg{height:20px;width:20px}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:var(--shadow-lg)}.btn-primary:disabled{opacity:.7}.spinner-small{animation:spin .6s linear infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:16px;width:16px}.loading-container{gap:16px;padding:80px 20px}.spinner{animation:spin .8s linear infinite;border:4px solid #b8533d1a;border-top:4px solid var(--color-primary);height:48px;width:48px}.loading-container p{color:var(--text-secondary);font-size:15px}.alert{animation:slideDown .3s ease;margin-bottom:24px;padding:16px}.alert-error{border:1px solid #c0392b4d}@media (max-width:768px){.subject-form{padding:20px}.form-container{padding:24px 20px}.form-header h2{font-size:24px}.form-actions{flex-direction:column-reverse}.form-actions button{justify-content:center;width:100%}}@media (max-width:480px){.subject-form{padding:16px}.form-container{padding:20px 16px}.form-header h2{font-size:20px}.summary-item{align-items:flex-start;flex-direction:column;gap:4px}.summary-value{text-align:left}}.curriculum-management{margin:0 auto;max-width:1400px;padding:2rem}.breadcrumbs{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;font-size:.95rem;gap:.5rem;margin-bottom:2rem;padding:1rem}.breadcrumb-item{background:none;border:none;border-radius:4px;color:#06c;cursor:pointer;font-size:.95rem;padding:.25rem .5rem;transition:all .2s}.breadcrumb-item:hover{background:#e3f2fd;color:#0052a3}.breadcrumb-item.active{color:#333;cursor:default;font-weight:600}.breadcrumb-separator{color:#999;-webkit-user-select:none;user-select:none}.curriculum-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:2rem}.curriculum-card{background:#fff;border:2px solid #e0e0e0;border-radius:12px;cursor:pointer;overflow:hidden;padding:2rem;position:relative;text-align:center;transition:all .3s ease}.curriculum-card:before{background:linear-gradient(90deg,#06c,#0052a3);content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transition:transform .3s ease}.curriculum-card:hover{border-color:#06c;box-shadow:0 8px 24px #0066cc26;transform:translateY(-4px)}.curriculum-card:hover:before{transform:scaleX(1)}.card-icon{filter:grayscale(.3);font-size:3rem;margin-bottom:1rem;transition:all .3s ease}.curriculum-card:hover .card-icon{filter:grayscale(0);transform:scale(1.1)}.card-title{color:#333;font-size:1.25rem;font-weight:600;margin-bottom:.5rem}.card-subtitle{color:#666;font-size:.9rem}.faculty-card:hover{border-color:#1976d2}.specialization-card:hover{border-color:#388e3c}.year-card:hover{border-color:#f57c00}.subjects-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem}.subjects-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;padding-bottom:1rem}.subjects-header h2{color:#333;font-size:1.75rem;margin:0}.semesters-grid{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(400px,1fr))}.semester-section{background:#f8f9fa;border-radius:8px;padding:1.5rem}.semester-title{align-items:center;color:#333;display:flex;font-size:1.25rem;font-weight:600;gap:.5rem;margin-bottom:1rem}.subject-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1rem;transition:all .2s ease}.subject-card:hover{border-color:#06c;box-shadow:0 4px 12px #0000001a}.subject-header{margin-bottom:.5rem}.subject-code{background:#e3f2fd;border-radius:4px;color:#06c}.subject-credits{color:#666;font-size:.85rem;font-weight:500}.subject-name{color:#333;font-size:1rem;font-weight:500}.empty-semester{color:#999;font-style:italic;padding:2rem;text-align:center}.edit-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem}.edit-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.edit-header h2{color:#333;font-size:1.75rem;margin:0}.current-subjects{margin-bottom:3rem}.current-subjects h3{color:#333;font-size:1.5rem;margin-bottom:1.5rem}.subjects-list.editable .subject-card{align-items:center;cursor:default;display:flex;justify-content:space-between}.subject-card.editable{background:#fff}.subject-info{gap:1rem}.btn-remove,.subject-info{align-items:center;display:flex}.btn-remove{background:#dc3545;border:none;border-radius:50%;color:#fff;cursor:pointer;flex-shrink:0;font-size:1rem;height:28px;justify-content:center;transition:all .2s;width:28px}.btn-remove:hover{background:#c82333;transform:scale(1.1)}.add-subjects-section{background:#f8f9fa;border-radius:8px;padding:2rem}.section-header h3{color:#333;font-size:1.25rem;margin:0}.create-subject-form{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:2rem;padding:1.5rem}.form-row{grid-gap:1rem;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1rem}.form-group label{color:#555;font-size:.9rem;font-weight:500}.form-group input,.form-group select{border:1px solid #ddd;font-size:.95rem;padding:.75rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus{border-color:#06c;box-shadow:0 0 0 3px #0066cc1a}.professor-search-container{position:relative;width:100%}.professor-search-input{border:1px solid #ddd;border-radius:6px;font-size:.95rem;padding:.75rem;transition:border-color .2s;width:100%}.professor-search-input:focus{border-color:#06c;box-shadow:0 0 0 3px #0066cc1a;outline:none}.professor-dropdown{background:#fff;border:1px solid #e0e0e0;border-radius:6px;box-shadow:0 4px 12px #00000026;left:0;margin-top:.5rem;max-height:300px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.professor-dropdown-item{border-bottom:1px solid #f0f0f0;cursor:pointer;padding:.75rem 1rem;transition:background .2s}.professor-dropdown-item:last-child{border-bottom:none}.professor-dropdown-item:hover{background:#f0f8ff}.professor-info{display:flex;flex-direction:column;gap:.25rem}.professor-name{color:#333;font-size:.95rem;font-weight:500}.professor-email{color:#666;font-size:.85rem}.professor-dropdown-empty{color:#999;font-style:italic;padding:1rem;text-align:center}.selected-professors{background:#f8f9fa;border-radius:6px;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;padding:.75rem}.selected-professor-tag{align-items:center;background:#fff;border:1px solid #06c;border-radius:20px;color:#06c;display:flex;font-size:.9rem;gap:.5rem;padding:.5rem .75rem;transition:all .2s}.selected-professor-tag:hover{background:#e3f2fd}.selected-professor-tag span{font-weight:500}.remove-professor-btn{align-items:center;background:none;border:none;border-radius:50%;color:#dc3545;cursor:pointer;display:flex;font-size:1rem;height:20px;justify-content:center;padding:0;transition:all .2s;width:20px}.remove-professor-btn:hover{background:#dc3545;color:#fff}.professors-selector{grid-gap:.75rem;background:#f8f9fa;border-radius:6px;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));max-height:300px;overflow-y:auto;padding:1rem}.professor-checkbox{align-items:center;background:#fff;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;display:flex;gap:.75rem;padding:.75rem;transition:all .2s}.professor-checkbox:hover{background:#f0f8ff;border-color:#06c}.professor-checkbox input[type=checkbox]{accent-color:#06c;cursor:pointer;height:18px;width:18px}.professor-checkbox span{color:#333;flex:1 1;font-size:.95rem}.no-professors{color:#999;font-style:italic;padding:1rem;text-align:center}.subjects-list.selectable{margin-top:1rem}.subject-card.selectable{align-items:center;background:#fff;border:2px solid #e0e0e0;cursor:pointer;display:flex;justify-content:space-between}.subject-card.selectable:hover{background:#f0f8ff;border-color:#06c}.subject-card.selectable.selected{background:#f0fff4;border-color:#28a745}.checkbox{align-items:center;border:2px solid #ddd;border-radius:4px;color:#28a745;display:flex;flex-shrink:0;font-size:1rem;height:24px;justify-content:center;width:24px}.subject-card.selected .checkbox{background:#28a745;border-color:#28a745;color:#fff}.subject-semester{background:#f0f0f0;border-radius:4px;color:#666;font-size:.85rem;padding:.25rem .5rem}.btn{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:.5rem;padding:.75rem 1.5rem;transition:all .2s}.btn-primary{background:#06c}.btn-primary:hover{background:#0052a3;box-shadow:0 4px 12px #0066cc4d}.btn-secondary{background:#6c757d}.btn-secondary:hover{background:#5a6268}.btn-success{background:#28a745}.btn-success:hover{background:#218838}.btn-large{font-size:1rem;justify-content:center;margin-top:1.5rem;padding:1rem 2rem;width:100%}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-back{background:#fff;border:2px solid #06c;border-radius:8px;bottom:2rem;box-shadow:0 4px 12px #00000026;color:#06c;cursor:pointer;font-size:.95rem;font-weight:500;left:2rem;padding:.75rem 1.5rem;position:fixed;transition:all .2s;z-index:100}.btn-back:hover{background:#06c;color:#fff;transform:translateX(-4px)}.alert{justify-content:space-between;margin-bottom:1.5rem;padding:1rem 1.5rem}.alert-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.alert button{align-items:center;background:none;border:none;border-radius:50%;color:inherit;cursor:pointer;display:flex;font-size:1.25rem;height:24px;justify-content:center;padding:0;transition:background .2s;width:24px}.alert button:hover{background:#0000001a}.loading-spinner{color:#666;font-size:1.1rem;padding:3rem;text-align:center}.empty-state{background:#f8f9fa;border:2px dashed #ddd;border-radius:8px;color:#999;padding:3rem}@media (max-width:768px){.curriculum-management{padding:1rem}.curriculum-grid,.semesters-grid{grid-template-columns:1fr}.edit-header,.section-header,.subjects-header{align-items:flex-start;flex-direction:column;gap:1rem}.form-row{grid-template-columns:1fr}.btn-back{bottom:1rem;left:1rem;right:1rem;width:calc(100% - 2rem)}.breadcrumbs,.subject-info{flex-wrap:wrap}.subject-info{gap:.5rem}}body.dark-mode .curriculum-management{color:#e0e0e0}body.dark-mode .curriculum-card,body.dark-mode .edit-container,body.dark-mode .subject-card,body.dark-mode .subjects-container{background:#2d2d2d;border-color:#444;color:#e0e0e0}body.dark-mode .card-title,body.dark-mode .subject-name,body.dark-mode h2,body.dark-mode h3{color:#e0e0e0}body.dark-mode .semester-section{background:#252525}body.dark-mode .breadcrumbs{background:#2d2d2d}body.dark-mode .form-group input,body.dark-mode .form-group select,body.dark-mode .professor-search-input{background:#2d2d2d;border-color:#444;color:#e0e0e0}body.dark-mode .professor-dropdown{background:#2d2d2d;border-color:#444}body.dark-mode .professor-dropdown-item{border-bottom-color:#444}body.dark-mode .professor-dropdown-item:hover{background:#353535}body.dark-mode .professor-name{color:#e0e0e0}body.dark-mode .professor-email{color:#999}body.dark-mode .selected-professors{background:#252525}body.dark-mode .selected-professor-tag{background:#2d2d2d;border-color:#06c;color:#4da3ff}body.dark-mode .selected-professor-tag:hover{background:#353535}body.dark-mode .professors-selector{background:#252525}body.dark-mode .professor-checkbox{background:#2d2d2d;border-color:#444}body.dark-mode .professor-checkbox:hover{background:#353535;border-color:#06c}body.dark-mode .professor-checkbox span{color:#e0e0e0}body.dark-mode .btn-back{background:#2d2d2d;border-color:#06c}.grade-management{width:100%}.grade-management-header{animation:fadeInUp .5s ease;border-bottom:2px solid #d4c4b040;margin-bottom:28px;padding-bottom:20px}.grade-management-header h2{color:#1a1410;font-size:24px;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:0 0 6px}.grade-management-header p{color:#3d3228;font-size:14px;font-weight:500;letter-spacing:.2px;margin:0}.subjects-grid{animation:fadeInUp .5s ease .1s backwards;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.subject-card{background:#fffffff2;border:2px solid var(--glass-border);box-shadow:var(--shadow-md)}.subject-card:before{background:linear-gradient(90deg,var(--brick-red-primary),var(--gold-primary));content:"";height:4px;left:0;position:absolute;top:0;transform:scaleX(0);transition:transform .3s ease;width:100%}.subject-card:hover:before{transform:scaleX(1)}.subject-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg)}.subject-card-header{align-items:flex-start;display:flex;gap:16px;margin-bottom:16px}.subject-icon{align-items:center;background:#b8533d1a;border-radius:10px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.subject-icon svg{stroke-width:2;color:var(--brick-red-primary);height:24px;width:24px}.subject-card h3{color:#1a1410;font-size:18px;line-height:1.3;margin:0 0 6px}.subject-code{color:#6b5d52;font-size:13px;letter-spacing:.5px;text-transform:uppercase}.subject-details{border-top:1px solid var(--glass-border);gap:16px;padding-top:16px}.subject-detail{display:flex;flex-direction:column;gap:4px}.subject-detail-label{color:#6b5d52;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.subject-detail-value{color:#1a1410;font-size:14px;font-weight:700}body.dark-mode .subject-card{background:#1a1410f2}body.dark-mode .subject-card:hover{background:#1f1812f2;box-shadow:0 8px 24px #0006}body.dark-mode .subject-card h3{color:#f5f3f0}body.dark-mode .subject-code,body.dark-mode .subject-detail-label{color:#d4c4b0}body.dark-mode .subject-detail-value{color:#f5f3f0}body.dark-mode .subject-icon{background:#e0958026}body.dark-mode .grade-management-header h2{color:#f5f3f0}body.dark-mode .grade-management-header p{color:#d4c4b0}body.dark-mode .grade-management-header{border-bottom-color:#d4c4b026}@media (max-width:768px){.subjects-grid{grid-template-columns:1fr}.grade-management-header h2{font-size:20px}.grade-management-header p{font-size:13px}.subject-card{padding:20px}.subject-details{flex-wrap:wrap;gap:12px}}.profesor-schedule{width:100%}.schedule-header{align-items:center;animation:fadeInUp .5s ease;border-bottom:2px solid #d4c4b040;display:flex;gap:20px;justify-content:space-between;margin-bottom:28px;padding-bottom:20px}.schedule-header h2{color:#1a1410;font-size:24px;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:0 0 6px}.schedule-header p{color:#3d3228;font-size:14px;font-weight:500;letter-spacing:.2px;margin:0}.schedule-grid{grid-gap:20px;animation:fadeInUp .5s ease .1s backwards;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.schedule-day-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:2px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-md);padding:20px;transition:all .3s ease}.schedule-day-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.day-header{align-items:center;border-bottom:2px solid #d4c4b033;display:flex;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.day-header h3{color:#1a1410;font-size:18px;font-weight:700;margin:0}.entries-count{background:#b8533d1a;border-radius:12px;color:var(--text-secondary);font-size:12px;font-weight:600;padding:4px 10px}.no-classes{color:var(--text-tertiary);font-size:14px;padding:20px;text-align:center}.entries-list{display:flex;flex-direction:column;gap:12px}.schedule-entry{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff6;border:1px solid var(--glass-border);border-radius:8px;display:flex;gap:12px;padding:14px;position:relative}.schedule-entry:hover{background:#fff9;border-color:var(--brick-red-primary);box-shadow:var(--shadow-sm)}.entry-actions{align-items:flex-start;display:flex;gap:8px}.btn-icon{background:#b8533d1a;border:1px solid var(--glass-border);border-radius:6px;padding:8px;transition:all .2s ease}.btn-icon:hover{background:#b8533d33;transform:translateY(-1px)}.btn-icon svg{color:var(--brick-red-primary);height:16px;width:16px}.btn-delete{background:#c0392b1a}.btn-delete:hover{background:#c0392b33;border-color:var(--color-error)}.btn-delete svg{color:var(--color-error)}.btn-primary{align-items:center;background:var(--brick-red-primary);border-radius:8px;display:flex;font-size:14px;gap:8px;padding:10px 18px;white-space:nowrap}.btn-primary:hover{background:var(--brick-red-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-primary svg{stroke-width:2;height:18px;width:18px}.btn-secondary{background:var(--bg-secondary);border:1px solid var(--glass-border);border-radius:8px;color:var(--text-primary);font-size:14px;padding:10px 18px}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--brick-red-primary)}.btn-secondary:disabled{cursor:not-allowed;opacity:.5}.entry-time{align-items:center;background:#b8533d1a;border-radius:6px;display:flex;flex-direction:column;gap:4px;min-width:60px;padding:8px}.entry-time svg{stroke-width:2;color:var(--brick-red-primary);height:18px;width:18px}.entry-time span{color:#1a1410;font-size:13px;font-weight:700}.entry-details{flex:1 1;flex-direction:column;gap:8px}.entry-details h4{color:#1a1410;font-size:15px;font-weight:600;line-height:1.3;margin:0}.entry-info{display:flex;flex-wrap:wrap;gap:12px}.info-item{align-items:center;color:#3d3228;font-size:12px;font-weight:500;gap:4px}.info-item svg{stroke-width:2;height:14px;width:14px}.entry-code{color:#6b5d52;font-size:11px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.loading-container{flex-direction:column;gap:20px;min-height:400px}.spinner{animation:spin 1s linear infinite;border:4px solid #d4c4b04d;border-radius:50%;border-top:4px solid var(--brick-red-primary);height:50px;width:50px}.loading-container p{color:#3d3228;font-size:16px;font-weight:600}.alert{align-items:center;border-radius:8px;box-shadow:var(--shadow-sm);display:flex;gap:12px;padding:16px 20px}.alert svg{stroke-width:2;flex-shrink:0;height:20px;width:20px}.alert-error{background:#c0392b1a;border:2px solid #c0392b4d;color:var(--color-error)}.empty-state{align-items:center;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffff2;border:2px dashed var(--glass-border);display:flex;flex-direction:column;gap:16px;justify-content:center;min-height:300px;padding:40px}.empty-state svg{stroke-width:1.5;color:var(--text-tertiary);height:64px;width:64px}.empty-state h3{color:#1a1410;font-size:20px;font-weight:700;margin:0}.empty-state p{color:#3d3228;font-size:14px;margin:0;max-width:400px}body.dark-mode .schedule-day-card{background:#1a1410f2}body.dark-mode .schedule-day-card:hover{background:#1f1812f2;box-shadow:0 8px 24px #0006}body.dark-mode .schedule-entry{background:#1a141066}body.dark-mode .schedule-entry:hover{background:#1a141099}body.dark-mode .entry-time{background:#e0958026}body.dark-mode .empty-state{background:#1a1410f2}body.dark-mode .schedule-header{border-bottom-color:#d4c4b026}body.dark-mode .schedule-header h2{color:#f5f3f0}body.dark-mode .schedule-header p{color:#d4c4b0}body.dark-mode .day-header{border-bottom-color:#d4c4b026}body.dark-mode .day-header h3,body.dark-mode .entry-details h4{color:#f5f3f0}body.dark-mode .info-item{color:#d4c4b0}body.dark-mode .entry-time span{color:#f5f3f0}body.dark-mode .entry-code,body.dark-mode .loading-container p{color:#d4c4b0}body.dark-mode .empty-state h3{color:#f5f3f0}body.dark-mode .empty-state p{color:#d4c4b0}body.dark-mode .modal-content{background:#1a1410fa}body.dark-mode .form-group label,body.dark-mode .modal-header h3{color:#f5f3f0}body.dark-mode .form-group input,body.dark-mode .form-group select{background:#1f1812e6;border-color:#d4c4b04d;color:#f5f3f0}body.dark-mode .form-group input:focus,body.dark-mode .form-group select:focus{background:#1f1812;border-color:var(--brick-red-primary)}.modal-overlay{animation:fadeIn .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#fffffffa;border:2px solid var(--glass-border);box-shadow:0 20px 60px #0000004d}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:2px solid var(--glass-border)}.modal-header h3{color:#1a1410;font-size:20px;font-weight:700;margin:0}.modal-close{align-items:center;background:#0000;border-radius:6px;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.modal-close:hover{background:#c0392b1a}.modal-close svg{stroke-width:2;color:var(--text-secondary);height:20px;width:20px}.modal-form{gap:20px}.form-group,.modal-form{display:flex;flex-direction:column}.form-group{gap:8px}.form-group label{color:#1a1410}.form-group input,.form-group select{background:#ffffffe6;border:2px solid var(--glass-border);border-radius:8px;color:#1a1410;font-weight:500;padding:10px 14px;transition:all .2s ease}.form-group input:focus,.form-group select:focus{background:#fff;border-color:var(--brick-red-primary)}.form-group input:disabled,.form-group select:disabled{cursor:not-allowed;opacity:.5}.modal-actions{gap:12px;justify-content:flex-end;padding-top:8px}.empty-state button{margin-top:12px}@media (max-width:768px){.schedule-grid{grid-template-columns:1fr}.schedule-header{align-items:flex-start;flex-direction:column}.schedule-header h2{font-size:20px}.schedule-header p{font-size:13px}.schedule-day-card{padding:16px}.entry-info{flex-direction:column;gap:8px}.form-row{grid-template-columns:1fr}.modal-content{max-height:95vh}}.profesor-dashboard{background:var(--warm-white);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;position:relative}.profesor-dashboard:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:var(--bg-image-opacity);pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.profesor-dashboard .main-content,.profesor-dashboard .sidebar{position:relative;z-index:1}.profesor-dashboard .sidebar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f280;border-right:2px solid var(--glass-border);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s ease,transform .3s ease;width:var(--sidebar-width);z-index:1000}.profesor-dashboard .sidebar.closed{width:var(--sidebar-collapsed-width)}.profesor-dashboard .sidebar-header{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fff3;border-bottom:2px solid var(--glass-border);display:flex;height:var(--topbar-height);justify-content:space-between;padding:0 24px}.profesor-dashboard .logo{align-items:center;color:var(--brick-red-primary);display:flex;font-size:20px;font-weight:800;gap:12px;overflow:hidden;white-space:nowrap}.profesor-dashboard .logo-image{flex-shrink:0;height:32px;max-width:120px;object-fit:contain;width:auto}.profesor-dashboard .logo-text{transition:opacity .3s ease}.profesor-dashboard .sidebar.closed .logo-text{opacity:0;width:0}.profesor-dashboard .sidebar-toggle{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d040;border:2px solid var(--glass-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:36px;justify-content:center;transition:all .3s ease;width:36px}.profesor-dashboard .sidebar-toggle:hover{background:#ebe0d066;border-color:var(--brick-red-primary);color:var(--brick-red-primary);transform:scale(1.05)}.profesor-dashboard .sidebar-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:20px 12px}.profesor-dashboard .sidebar-nav::-webkit-scrollbar{width:6px}.profesor-dashboard .sidebar-nav::-webkit-scrollbar-thumb{background:#d4c4b080;border-radius:3px}.profesor-dashboard .nav-item{align-items:center;background:#0000;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;margin-bottom:4px;overflow:hidden;padding:12px 16px;text-align:left;transition:all .2s ease;white-space:nowrap;width:100%}.profesor-dashboard .nav-item:hover{background:#ebe0d04d}.profesor-dashboard .nav-item.active,.profesor-dashboard .nav-item:hover{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:var(--brick-red-primary)}.profesor-dashboard .nav-item.active{background:#e0958033;border-left:3px solid var(--brick-red-primary);font-weight:600;padding-left:13px}.profesor-dashboard .nav-icon{stroke-width:2;flex-shrink:0;height:20px;width:20px}.profesor-dashboard .nav-text{transition:opacity .3s ease}.profesor-dashboard .sidebar.closed .nav-text{opacity:0;width:0}.profesor-dashboard .sidebar.closed .nav-item{justify-content:center;padding:12px}.profesor-dashboard .sidebar.closed .nav-item.active{border-bottom:3px solid var(--brick-red-primary);border-left:none;padding-bottom:9px}.profesor-dashboard .sidebar-footer{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#f5e6d326;border-top:2px solid var(--glass-border);padding:20px 12px}.profesor-dashboard .user-profile{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d040;border:1px solid var(--glass-border);border-radius:8px;display:flex;gap:12px;padding:12px;transition:all .3s ease}.profesor-dashboard .user-profile:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d066;box-shadow:var(--shadow-sm)}.profesor-dashboard .user-avatar{align-items:center;background:linear-gradient(135deg,var(--brick-red-primary) 0,var(--brick-red-dark) 100%);border-radius:50%;box-shadow:0 4px 12px #b8533d4d;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:44px;justify-content:center;width:44px}.profesor-dashboard .user-info{flex:1 1;overflow:hidden;transition:opacity .3s ease}.profesor-dashboard .sidebar.closed .user-info{opacity:0;width:0}.profesor-dashboard .user-name{color:var(--text-primary);font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profesor-dashboard .user-role{color:var(--text-secondary);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profesor-dashboard .sidebar.closed .user-profile{justify-content:center;padding:12px}.profesor-dashboard .main-content{display:flex;flex:1 1;flex-direction:column;margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .3s ease}.profesor-dashboard .main-content.sidebar-closed{margin-left:var(--sidebar-collapsed-width)}.profesor-dashboard .top-bar{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f280;border-bottom:2px solid var(--glass-border);box-shadow:var(--shadow-md);display:flex;height:var(--topbar-height);justify-content:space-between;padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.profesor-dashboard .top-bar-left{align-items:center;display:flex;gap:20px}.profesor-dashboard .page-title{color:var(--text-primary);font-size:24px;font-weight:800;margin:0}.profesor-dashboard .top-bar-right{align-items:center;display:flex;gap:12px}.profesor-dashboard .btn-icon{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d040;border:2px solid var(--glass-border);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;height:44px;justify-content:center;transition:all .3s ease;width:44px}.profesor-dashboard .btn-icon svg{stroke-width:2;height:20px;width:20px}.profesor-dashboard .btn-icon:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d066;border-color:var(--brick-red-primary);box-shadow:var(--shadow-md);color:var(--brick-red-primary);transform:translateY(-2px)}.profesor-dashboard .btn-icon.theme-toggle:hover{background:#f4d03f4d;border-color:var(--academic-gold-dark);color:var(--academic-gold-dark)}.profesor-dashboard .btn-icon.logout:hover{background:#c0392b26;border-color:var(--color-error);color:var(--color-error)}.profesor-dashboard .page-content{flex:1 1;overflow-y:auto;padding:30px 32px}.profesor-dashboard .welcome-section{animation:fadeInUp .5s ease;border-bottom:2px solid #d4c4b040;margin-bottom:32px;padding-bottom:20px}.profesor-dashboard .welcome-section h2{color:var(--text-primary);font-size:24px;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:0 0 6px}.profesor-dashboard .welcome-section p{color:var(--text-secondary);font-size:14px;font-weight:500;letter-spacing:.2px;margin:0}.profesor-dashboard .dashboard-cards{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.profesor-dashboard .dashboard-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--bg-primary);border:2px solid var(--glass-border);border-radius:12px;box-shadow:var(--shadow-md);cursor:pointer;display:flex;flex-direction:column;gap:16px;padding:24px;transition:all .3s ease}.profesor-dashboard .dashboard-card:hover{border-color:var(--color-primary-light);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.profesor-dashboard .card-icon{align-items:center;border-radius:10px;display:flex;height:48px;justify-content:center;transition:all .3s ease;width:48px}.profesor-dashboard .card-icon svg{stroke-width:2;height:28px;width:28px}.profesor-dashboard .card-icon.schedule{background:#f1c40f26;color:#f1c40f}.profesor-dashboard .card-icon.subjects{background:#3498db26;color:#3498db}.profesor-dashboard .card-icon.grades{background:#2ecc7126;color:#2ecc71}.profesor-dashboard .card-icon.exams{background:#e74c3c26;color:#e74c3c}.profesor-dashboard .dashboard-card h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.profesor-dashboard .dashboard-card p{color:var(--text-secondary);font-size:14px;line-height:1.5;margin:0}body.dark-mode .profesor-dashboard:before{filter:brightness(.7) contrast(1.1)}body.dark-mode .profesor-dashboard .sidebar{background:#1f181280}body.dark-mode .profesor-dashboard .sidebar-header{background:#1a14104d}body.dark-mode .profesor-dashboard .sidebar-footer{background:#2c231833}body.dark-mode .profesor-dashboard .top-bar{background:#1f181280}body.dark-mode .profesor-dashboard .user-avatar{box-shadow:0 4px 12px #e0958066}body.dark-mode .profesor-dashboard .user-profile{background:#ebe0d014}body.dark-mode .profesor-dashboard .user-profile:hover{background:#ebe0d01f}body.dark-mode .profesor-dashboard .btn-icon{background:#ebe0d014}body.dark-mode .profesor-dashboard .btn-icon:hover{background:#ebe0d01f}body.dark-mode .profesor-dashboard .nav-item:hover{background:#ebe0d01a}body.dark-mode .profesor-dashboard .nav-item.active{background:#e0958026}body.dark-mode .profesor-dashboard .sidebar-toggle{background:#ebe0d014}body.dark-mode .profesor-dashboard .sidebar-toggle:hover{background:#ebe0d01f}body.dark-mode .profesor-dashboard .dashboard-card{background:#1f181259}body.dark-mode .profesor-dashboard .dashboard-card:hover{background:#1f181280;box-shadow:0 8px 24px #0006}body.dark-mode .profesor-dashboard .welcome-section h2{color:var(--deep-brown)}body.dark-mode .profesor-dashboard .welcome-section{border-bottom-color:#d4c4b026}@media (max-width:768px){.profesor-dashboard .sidebar{transform:translateX(-100%);width:var(--sidebar-width)}.profesor-dashboard .sidebar.open{transform:translateX(0)}.profesor-dashboard .sidebar.closed{transform:translateX(-100%);width:var(--sidebar-width)}.profesor-dashboard .main-content,.profesor-dashboard .main-content.sidebar-closed{margin-left:0}.profesor-dashboard .top-bar{padding:0 20px}.profesor-dashboard .page-title{font-size:18px}.profesor-dashboard .page-content{padding:20px}}@media (max-width:480px){.profesor-dashboard .page-content{padding:16px}.profesor-dashboard .welcome-section h2{font-size:20px}.profesor-dashboard .welcome-section p{font-size:13px}.profesor-dashboard .dashboard-card{padding:20px 16px}}.professor-page{margin:0 auto;max-width:1600px;min-height:100vh;padding:24px;position:relative;z-index:1}.professor-background{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-size:cover;z-index:-2}.professor-background,.professor-overlay{height:100vh;left:0;position:fixed;top:0;width:100vw}.professor-overlay{background:#000000b3;z-index:-1}.professor-header{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0003;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:24px;padding:20px 24px}.professor-header h1{color:#fff;font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0;text-shadow:0 2px 4px #0000004d}.professor-header-subtitle{color:#ffffffd9;font-size:14px;font-weight:500;margin-top:8px;text-shadow:0 1px 2px #0003}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;box-shadow:0 4px 12px #3b82f666;cursor:pointer;display:inline-block;font-size:15px;font-weight:600;padding:12px 24px;text-decoration:none;transition:all .2s ease}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 20px #3b82f680}.btn-secondary{background:#6b7280e6;border:none;border-radius:10px;box-shadow:0 4px 12px #0003;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-secondary:hover{background:#4b5563f2;box-shadow:0 6px 16px #0000004d;transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:10px;box-shadow:0 4px 12px #10b98166;color:#fff;cursor:pointer;font-size:15px;font-weight:600;padding:12px 24px;transition:all .2s ease}.btn-success:hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180;transform:translateY(-2px)}.btn-success:disabled{cursor:not-allowed;opacity:.5;transform:none}.professor-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:16px;box-shadow:0 8px 32px #0003;margin-bottom:24px;padding:24px}.professor-card h2{color:#fff;font-size:24px;font-weight:700;margin:0 0 16px;text-shadow:0 2px 4px #0000004d}.professor-card p{color:#ffffffd9;font-size:14px;line-height:1.6;margin:0 0 16px;text-shadow:0 1px 2px #0003}.schedule-day{margin-bottom:24px}.schedule-day h3{border-bottom:2px solid #fff3;color:#fff;font-size:20px;font-weight:700;margin-bottom:12px;padding-bottom:8px;text-shadow:0 2px 4px #0000004d}.schedule-entry{background:#ffffff14;border-left:4px solid #3b82f6;border-radius:10px;margin-bottom:8px;padding:16px;transition:all .2s ease}.schedule-entry:hover{background:#ffffff1f;transform:translateX(4px)}.schedule-entry-header{align-items:center;display:flex;gap:16px;margin-bottom:8px}.schedule-time{color:#60a5fa;min-width:60px}.schedule-subject,.schedule-time{font-size:16px;font-weight:700;text-shadow:0 1px 2px #0000004d}.schedule-subject{color:#fff}.schedule-code{color:#ffffffb3}.schedule-code,.schedule-details{font-size:14px;text-shadow:0 1px 2px #0003}.schedule-details{color:#ffffffd9;display:flex;flex-wrap:wrap;gap:16px;margin-left:76px}.schedule-detail-item{display:flex;gap:4px}.schedule-detail-label{font-weight:600}.schedule-detail-value{font-weight:500}.subjects-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-top:20px}.subject-card{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(135deg,#3b82f6e6,#2563ebe6);border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 12px #0003;cursor:pointer;padding:24px}.subject-card:hover{box-shadow:0 12px 28px #3b82f666;transform:translateY(-6px) scale(1.02)}.subject-card h3{color:#fff;font-size:20px;font-weight:700;margin:0 0 8px;text-shadow:0 2px 4px #0000004d}.subject-code{color:#ffffffd9;font-size:14px;margin-bottom:16px;text-shadow:0 1px 2px #0003}.subject-details{color:#ffffffe6;font-size:13px;font-weight:500;justify-content:space-between;text-shadow:0 1px 2px #0003}.groups-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-top:20px}.group-card{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:linear-gradient(135deg,#10b981e6,#059669e6);border:1px solid #fff3;border-radius:16px;box-shadow:0 4px 12px #0003;cursor:pointer;padding:24px;text-align:center;transition:all .3s ease}.group-card:hover{box-shadow:0 12px 28px #10b98166;transform:translateY(-6px) scale(1.05)}.group-card h3{color:#fff;font-size:24px;font-weight:700;margin:0 0 8px;text-shadow:0 2px 4px #0000004d}.group-year{color:#ffffffd9;font-size:14px;text-shadow:0 1px 2px #0003}.grades-table-container{margin-top:20px;overflow-x:auto}.grades-table{background:#ffffff0d;border-collapse:initial;border-radius:12px;border-spacing:0;box-shadow:0 4px 12px #0003;overflow:hidden}.grades-table thead{background:#ffffff26}.grades-table th{border-bottom:2px solid #fff3;color:#fff;font-size:13px;font-weight:700;letter-spacing:.5px;padding:16px;text-shadow:0 1px 2px #0000004d;text-transform:uppercase}.grades-table tbody tr{background:#ffffff0d;transition:background .2s ease}.grades-table tbody tr:hover{background:#ffffff1a}.grades-table tbody tr.row-edited{background:#fbbf2433}.grades-table tbody tr.row-edited:hover{background:#fbbf244d}.grades-table td{border-bottom:1px solid #ffffff1a;color:#ffffffe6;font-size:14px;padding:14px 16px;text-shadow:0 1px 2px #0003}.student-name{color:#fff;font-weight:600}.grade-input{background:#fffffff2;border:2px solid #ffffff4d;border-radius:8px;color:#1f2937;font-size:16px;font-weight:600;padding:8px 12px;text-align:center;transition:all .2s ease;width:80px}.grade-input:focus{background:#fff;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f64d;outline:none}.grade-input.edited{background:#fffbeb;border-color:#fbbf24}.info-box{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);background:#3b82f626;border-left:4px solid #3b82f6;border-radius:10px;box-shadow:0 4px 12px #00000026;margin-top:24px;padding:16px}.info-box p{color:#ffffffe6;font-size:14px;line-height:1.6;margin:0;text-shadow:0 1px 2px #0003}.info-box strong{color:#fff;font-weight:700}.alert{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-radius:10px;box-shadow:0 4px 12px #00000026;font-size:14px;font-weight:500;margin-bottom:20px;padding:14px 18px}.alert-success{background:#10b98133;border:1px solid #10b98166}.alert-error,.alert-success{color:#fff;text-shadow:0 1px 2px #0003}.alert-error{background:#ef444433;border:1px solid #ef444466}.loading-container{align-items:center;display:flex;justify-content:center;min-height:60vh}.loading-text{color:#fff;font-size:20px;font-weight:600;text-shadow:0 2px 4px #0000004d}.empty-state{color:#ffffffb3;font-size:16px;padding:48px 24px}@media (max-width:768px){.professor-header{align-items:flex-start;flex-direction:column}.groups-grid,.subjects-grid{grid-template-columns:1fr}.schedule-details{margin-left:0;margin-top:8px}.grades-table{font-size:12px}.grades-table td,.grades-table th{padding:10px 8px}}:root{--brick-red-primary:#b8533d;--brick-red-dark:#9b3d2f;--brick-red-light:#c96a52;--brick-red-lighter:#e09580;--academic-gold:#f4d03f;--academic-gold-dark:#d4a916;--academic-gold-light:#f9e79f;--stone-white:#f5e6d3;--architectural-cream:#ebe0d0;--warm-white:#faf7f2;--shadow-brown:#5c3a2a;--deep-brown:#3d2416;--color-primary:var(--brick-red-primary);--color-primary-dark:var(--brick-red-dark);--color-primary-light:var(--brick-red-light);--color-secondary:var(--academic-gold);--color-warning:#e67e22;--color-error:#c0392b;--color-success:#27ae60;--bg-primary:#f9fafb8c;--bg-secondary:#f3f4f673;--bg-tertiary:#e5e7eb66;--bg-solid-primary:#faf7f2;--bg-solid-secondary:#f5e6d3;--bg-solid-tertiary:#ebe0d0;--text-primary:var(--deep-brown);--text-secondary:var(--shadow-brown);--text-tertiary:#7d6b5d;--border-color:#d4c4b059;--border-solid:#d4c4b0;--hover-bg:#f3f4f6a6;--active-bg:#ebe0d099;--divider-color:#d4c4b04d;--shadow-sm:0 2px 4px #5c3a2a14;--shadow-md:0 4px 8px #5c3a2a1a;--shadow-lg:0 10px 20px #5c3a2a1f;--shadow-xl:0 20px 40px #5c3a2a26;--glass-border:#d4c4b040;--glass-shadow:0 8px 32px #b8533d14;--sidebar-width:280px;--sidebar-collapsed-width:80px;--topbar-height:70px;--bg-image-opacity:0.18}.student-dashboard{background:#faf7f2;background:var(--warm-white);display:flex;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;position:relative}.student-dashboard:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.18;opacity:var(--bg-image-opacity);pointer-events:none;position:fixed;top:0;width:100%;z-index:0}.main-content,.sidebar{position:relative;z-index:1}.sidebar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f280;border-right:2px solid #d4c4b040;border-right:2px solid var(--glass-border);box-shadow:0 10px 20px #5c3a2a1f;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s ease,transform .3s ease;width:280px;width:var(--sidebar-width);z-index:1000}.sidebar.closed{width:80px;width:var(--sidebar-collapsed-width)}.sidebar-header{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#fff3;border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--glass-border);height:70px;height:var(--topbar-height);justify-content:space-between;padding:0 24px}.logo,.sidebar-header{align-items:center;display:flex}.logo{color:#b8533d;color:var(--brick-red-primary);font-size:20px;font-weight:800;gap:12px;overflow:hidden;white-space:nowrap}.logo-icon{flex-shrink:0;font-size:32px}.logo-image{flex-shrink:0;height:40px;object-fit:contain;width:auto}.logo-text{transition:opacity .3s ease}.sidebar.closed .logo-text{opacity:0;width:0}.sidebar-toggle{align-items:center;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d040;border:2px solid #d4c4b040;border:2px solid var(--glass-border);border-radius:8px;color:#5c3a2a;color:var(--text-secondary);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:36px;justify-content:center;transition:all .3s ease;width:36px}.sidebar-toggle:hover{background:#ebe0d066;border-color:#b8533d;border-color:var(--brick-red-primary);color:#b8533d;color:var(--brick-red-primary);transform:scale(1.05)}.sidebar.closed .sidebar-toggle{margin:0 auto}.sidebar-nav{flex:1 1;overflow-x:hidden;overflow-y:auto;padding:20px 12px}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-thumb{background:#d4c4b080;border-radius:3px}.nav-item{align-items:center;background:#0000;border:none;border-radius:6px;color:#5c3a2a;color:var(--text-secondary);cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;margin-bottom:4px;overflow:hidden;padding:12px 16px;text-align:left;transition:all .2s ease;white-space:nowrap;width:100%}.nav-item:hover{background:#ebe0d04d}.nav-item.active,.nav-item:hover{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);color:#b8533d;color:var(--brick-red-primary)}.nav-item.active{background:#e0958033;border-left:3px solid #b8533d;border-left:3px solid var(--brick-red-primary);font-weight:600;padding-left:13px}.nav-icon{stroke-width:2;flex-shrink:0;height:20px;width:20px}.nav-icon svg{height:100%;width:100%}.nav-text{transition:opacity .3s ease}.sidebar.closed .nav-text{opacity:0;width:0}.sidebar.closed .nav-item{justify-content:center;padding:12px}.sidebar.closed .nav-item:hover{transform:none}.sidebar.closed .nav-item.active{border-bottom:3px solid #b8533d;border-bottom:3px solid var(--brick-red-primary);border-left:none;padding-bottom:9px}.sidebar-footer{background:#f5e6d326;border-top:2px solid #d4c4b040;border-top:2px solid var(--glass-border);padding:20px 12px}.sidebar-footer,.user-profile{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.user-profile{align-items:center;background:#ebe0d040;border:1px solid #d4c4b040;border:1px solid var(--glass-border);border-radius:8px;display:flex;gap:12px;padding:12px;transition:all .3s ease}.user-profile:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d066;box-shadow:0 2px 4px #5c3a2a14;box-shadow:var(--shadow-sm)}.user-avatar{align-items:center;background:linear-gradient(135deg,#b8533d,#9b3d2f);background:linear-gradient(135deg,var(--brick-red-primary) 0,var(--brick-red-dark) 100%);border-radius:50%;box-shadow:0 4px 12px #b8533d4d;color:#fff;display:flex;flex-shrink:0;font-size:16px;font-weight:700;height:44px;justify-content:center;width:44px}.user-info{flex:1 1;overflow:hidden;transition:opacity .3s ease}.sidebar.closed .user-info{opacity:0;width:0}.user-name{color:#3d2416;color:var(--text-primary);font-size:14px;font-weight:700}.user-name,.user-role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-role{color:#5c3a2a;color:var(--text-secondary);font-size:12px}.sidebar.closed .user-profile{justify-content:center;padding:12px}.main-content{display:flex;flex:1 1;flex-direction:column;margin-left:280px;margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .3s ease}.main-content.sidebar-closed{margin-left:80px;margin-left:var(--sidebar-collapsed-width)}.top-bar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f280;border-bottom:2px solid #d4c4b040;border-bottom:2px solid var(--glass-border);box-shadow:0 4px 8px #5c3a2a1a;box-shadow:var(--shadow-md);height:70px;height:var(--topbar-height);justify-content:space-between;padding:0 32px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.top-bar,.top-bar-left{align-items:center;display:flex}.top-bar-left{gap:20px}.page-title{color:#3d2416;color:var(--text-primary);font-size:24px;font-weight:800;margin:0}.top-bar-right{gap:12px}.btn-icon,.top-bar-right{align-items:center;display:flex}.btn-icon{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d040;border:2px solid #d4c4b040;border:2px solid var(--glass-border);border-radius:8px;color:#5c3a2a;color:var(--text-secondary);cursor:pointer;height:44px;justify-content:center;transition:all .3s ease;width:44px}.btn-icon svg{stroke-width:2;height:20px;width:20px}.btn-icon:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d066;border-color:#b8533d;border-color:var(--brick-red-primary);box-shadow:0 4px 8px #5c3a2a1a;box-shadow:var(--shadow-md);color:#b8533d;color:var(--brick-red-primary);transform:translateY(-2px)}.btn-icon.theme-toggle:hover{background:#f4d03f4d;border-color:#d4a916;border-color:var(--academic-gold-dark);color:#d4a916;color:var(--academic-gold-dark)}.btn-icon.logout:hover{background:#c0392b26;border-color:#c0392b;border-color:var(--color-error);color:#c0392b;color:var(--color-error)}.page-content{flex:1 1;overflow-y:auto;padding:30px 32px}.loading-state{color:#b8533d;color:var(--brick-red-primary);flex-direction:column;font-size:18px;font-weight:600;gap:20px}.loading-state:before{animation:spin 1s linear infinite;border:4px solid #d4c4b04d;border-radius:50%;border-top:4px solid var(--brick-red-primary);content:"";height:50px;width:50px}@keyframes spin{to{transform:rotate(1turn)}}.welcome-section{animation:fadeInUp .5s ease;border-bottom:2px solid #d4c4b040;margin-bottom:28px;padding-bottom:20px}.welcome-section h2{color:#3d2416;color:var(--text-primary);font-size:24px;font-weight:700;letter-spacing:-.3px;line-height:1.3;margin:0 0 6px}.welcome-section p{color:#5c3a2a;color:var(--text-secondary);font-size:14px;font-weight:500;letter-spacing:.2px;margin:0}.quick-actions{animation:fadeInUp .5s ease .1s backwards;margin-bottom:36px}.section-title{align-items:center;color:#3d2416;color:var(--text-primary);display:flex;font-size:14px;font-weight:700;gap:10px;letter-spacing:1.2px;margin:0 0 20px;text-transform:uppercase}.section-title:before{background:#b8533d;background:var(--brick-red-primary);border-radius:2px;content:"";height:18px;width:3px}.actions-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr)}.action-card{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f259;border:none;border-radius:12px;box-shadow:0 4px 12px #5c3a2a0f;cursor:pointer;display:flex;gap:16px;overflow:hidden;padding:24px 20px;position:relative;transition:all .25s ease}.action-card:before{background:#b8533d;background:var(--brick-red-primary);bottom:0;content:"";left:0;opacity:.85;position:absolute;top:0;transition:width .25s ease;width:0}.action-card:hover:before{width:4px}.action-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#faf7f280;box-shadow:0 8px 20px #5c3a2a1a;transform:translateY(-3px)}.action-icon{align-items:center;background:#b8533d14;border-radius:12px;color:#b8533d;color:var(--brick-red-primary);display:flex;flex-shrink:0;height:52px;justify-content:center;transition:all .25s ease;width:52px}.action-card:hover .action-icon{background:#b8533d1f;transform:scale(1.08)}.action-icon svg{stroke-width:2.5;height:28px;width:28px}.action-label{color:#3d2416;color:var(--text-primary);flex:1 1;font-size:13px;font-weight:600;letter-spacing:.2px;line-height:1.4;text-align:left}.info-section{animation:fadeInUp .5s ease .2s backwards}.info-grid{grid-gap:20px;gap:20px;grid-template-columns:repeat(4,1fr)}.info-card{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#faf7f259;border:none;border-radius:12px;box-shadow:0 4px 12px #5c3a2a0f;display:flex;gap:16px;overflow:hidden;padding:24px 20px;position:relative;transition:all .25s ease}.info-card:before{background:#b8533d;background:var(--brick-red-primary);content:"";height:4px;left:0;opacity:.85;position:absolute;right:0;top:0;transition:height .25s ease,opacity .25s ease}.info-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#faf7f280;box-shadow:0 8px 20px #5c3a2a1a;transform:translateY(-3px)}.info-card:hover:before{height:6px;opacity:1}.info-icon{align-items:center;background:#b8533d14;border-radius:12px;color:#b8533d;color:var(--brick-red-primary);display:flex;flex-shrink:0;height:52px;justify-content:center;transition:all .25s ease;width:52px}.info-card:hover .info-icon{background:#b8533d1f;transform:scale(1.08)}.info-icon svg{stroke-width:2.5;height:28px;width:28px}.info-content{display:flex;flex:1 1;flex-direction:column;gap:4px}.info-title{color:#7d6b5d;color:var(--text-tertiary);font-size:11px;font-weight:600;letter-spacing:.6px;text-transform:uppercase}.info-value{color:var(--text-primary);font-size:24px;font-weight:700;letter-spacing:-.5px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}body.dark-mode{--brick-red-primary:#e09580;--brick-red-dark:#c96a52;--brick-red-light:#f0b5a0;--brick-red-lighter:#f5c9b8;--academic-gold:#f9e79f;--academic-gold-dark:#f4d03f;--academic-gold-light:#fcf3cf;--stone-white:#2c2318;--architectural-cream:#3d2e23;--warm-white:#1a1410;--shadow-brown:#d4c4b0;--deep-brown:#f5e6d3;--color-primary:var(--brick-red-primary);--color-primary-dark:var(--brick-red-dark);--color-primary-light:var(--brick-red-light);--color-secondary:var(--academic-gold);--color-warning:var(--academic-gold-dark);--color-error:#e74c3c;--color-success:#2ecc71;--bg-primary:#1f1812b3;--bg-secondary:#2c231899;--bg-tertiary:#3d2e238c;--bg-solid-primary:#1f1812;--bg-solid-secondary:#2c2318;--bg-solid-tertiary:#3d2e23;--text-primary:var(--deep-brown);--text-secondary:var(--shadow-brown);--text-tertiary:#9b8b7e;--border-color:#4a3a2e66;--border-solid:#4a3a2e;--hover-bg:#3d2e23bf;--active-bg:#e0958026;--divider-color:#4a3a2e4d;--shadow-sm:0 2px 4px #00000080;--shadow-md:0 4px 8px #0009;--shadow-lg:0 10px 20px #000000b3;--shadow-xl:0 20px 40px #000c;--glass-border:#d4c4b026;--glass-shadow:0 8px 32px #0006;--bg-image-opacity:0.10}body.dark-mode .student-dashboard{background:#f5e6d3;background:var(--bg-solid-secondary)}body.dark-mode .student-dashboard:before{filter:brightness(.7) contrast(1.1)}body.dark-mode .sidebar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1f181280;box-shadow:0 10px 20px #5c3a2a1f;box-shadow:var(--shadow-lg)}body.dark-mode .sidebar-header{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#1a14104d}body.dark-mode .sidebar-footer{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#2c231833}body.dark-mode .top-bar{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1f181280}body.dark-mode .user-avatar{box-shadow:0 4px 12px #e0958066}body.dark-mode .user-profile{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d014}body.dark-mode .user-profile:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d01f}body.dark-mode .btn-icon{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d014}body.dark-mode .btn-icon:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d01f}body.dark-mode .nav-item:hover{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d01a}body.dark-mode .nav-item.active{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#e0958026}body.dark-mode .sidebar-toggle{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);background:#ebe0d014}body.dark-mode .sidebar-toggle:hover{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#ebe0d01f}body.dark-mode .loading-state:before{border-color:#b8533d #d4c4b033 #d4c4b033;border-top-color:var(--brick-red-primary)}body.dark-mode .action-card,body.dark-mode .info-card{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:#1f181259}body.dark-mode .action-card:hover,body.dark-mode .info-card:hover{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#1f181280;box-shadow:0 8px 24px #0006}body.dark-mode .info-value,body.dark-mode .welcome-section h2{color:#3d2416;color:var(--deep-brown)}body.dark-mode .welcome-section{border-bottom-color:#d4c4b026}body.dark-mode .action-icon,body.dark-mode .info-icon{background:#e0958026}body.dark-mode .action-card:hover .action-icon,body.dark-mode .info-card:hover .info-icon{background:#e0958040}@media (max-width:1200px){.info-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1024px){.actions-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.sidebar{transform:translateX(-100%);width:280px;width:var(--sidebar-width)}.sidebar.open{transform:translateX(0)}.sidebar.closed{transform:translateX(-100%);width:280px;width:var(--sidebar-width)}.main-content,.main-content.sidebar-closed{margin-left:0}.top-bar{padding:0 20px}.page-title{font-size:18px}.page-content{padding:20px}.actions-grid,.info-grid{gap:16px;grid-template-columns:1fr}.action-card,.info-card{padding:24px 20px}.action-icon,.info-icon{height:48px;width:48px}.action-icon svg,.info-icon svg{height:24px;width:24px}.info-value{font-size:20px}:root{--bg-image-opacity:0.14}body.dark-mode{--bg-image-opacity:0.07}}@media (max-width:480px){.page-content{padding:16px}.welcome-section h2{font-size:20px}.welcome-section p{font-size:13px}.action-card,.info-card{padding:20px 16px}.action-icon,.info-icon{height:44px;width:44px}.action-icon svg,.info-icon svg{height:22px;width:22px}.info-value{font-size:18px}.info-title{font-size:10px}.action-label{font-size:12px}}@supports not ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.action-card,.info-card,.sidebar,.sidebar-footer,.sidebar-header,.top-bar,.user-profile{background:#faf7f2b3}body.dark-mode .action-card,body.dark-mode .info-card,body.dark-mode .sidebar,body.dark-mode .sidebar-footer,body.dark-mode .sidebar-header,body.dark-mode .top-bar,body.dark-mode .user-profile{background:#1f181299}}.student-subjects{background:#faf7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-y:auto;padding:2rem;position:relative;width:100%}.student-subjects:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.15;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}body.dark-mode .student-subjects{background:#1a1410}body.dark-mode .student-subjects:before{opacity:.08}.subjects-header{margin-bottom:2rem;position:relative;z-index:1}.subjects-header h1{color:#b8533d;font-size:2rem;font-weight:700;margin:0 0 .5rem}body.dark-mode .subjects-header h1{color:#f4d03f}.filter-select{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #b8533d66;border-radius:8px;color:#3d2416;cursor:pointer;font-size:.95rem;min-width:150px;padding:.5rem 1rem;transition:all .3s ease}body.dark-mode .filter-select{background:#1f1812f2;border:2px solid #d4c4b04d;color:#ebe0d0}.filter-select:hover{border-color:#b8533d;box-shadow:0 4px 12px #b8533d26;transform:translateY(-1px)}body.dark-mode .filter-select:hover{border-color:#f4d03f;box-shadow:0 4px 12px #f4d03f33}.filter-select:focus{border-color:#b8533d;box-shadow:0 0 0 3px #b8533d1a;outline:none}body.dark-mode .filter-select:focus{border-color:#f4d03f;box-shadow:0 0 0 3px #f4d03f1a}.subjects-content{display:flex;flex-direction:column;gap:2.5rem;position:relative;z-index:1}.semester-section{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:2rem}body.dark-mode .semester-section{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.semester-header{align-items:center;border-bottom:2px solid #d4c4b04d;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}body.dark-mode .semester-header{border-bottom:2px solid #d4c4b033}.semester-header h2{color:#b8533d;font-size:1.5rem;font-weight:700;margin:0}body.dark-mode .semester-header h2{color:#f4d03f}.subjects-count{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#f4d03f33;border:1px solid #d4a9164d;border-radius:8px;color:#5c3a2a;font-size:.875rem;font-weight:600;padding:.5rem 1rem}body.dark-mode .subjects-count{background:#f4d03f26;border:1px solid #f4d03f4d;color:#f4d03f}.subjects-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.subject-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffc;border:2px solid #d4c4b04d;border-radius:12px;padding:1.5rem;transition:all .3s ease}body.dark-mode .subject-card{background:#1f1812cc;border:2px solid #d4c4b033}.subject-card:hover{border-color:#b8533d;box-shadow:0 8px 24px #b8533d26;transform:translateY(-4px)}body.dark-mode .subject-card:hover{border-color:#f4d03f;box-shadow:0 8px 24px #f4d03f33}.subject-header{align-items:start;gap:1rem;margin-bottom:1.25rem}.subject-name{font-size:1.125rem;line-height:1.4;margin:0}.subject-code{background:linear-gradient(135deg,#b8533d,#9b3d2f);border-radius:6px;box-shadow:0 2px 8px #b8533d4d;color:#fff;flex-shrink:0;font-size:.75rem;font-weight:600;padding:.25rem .625rem;white-space:nowrap}body.dark-mode .subject-code{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.subject-details{display:flex;flex-direction:column;gap:.875rem}.detail-item{align-items:center;font-size:.875rem;gap:.625rem}.detail-icon{height:1.125rem;width:1.125rem}.detail-label{min-width:70px}.subjects-summary{margin-top:1rem;position:relative;z-index:1}.summary-item.total{border-top:1px solid #ffffff4d;grid-column:1/-1;margin-top:.5rem;padding-top:1rem}body.dark-mode .summary-item.total{border-top:1px solid #3d24164d}.summary-item.total .summary-value{font-size:2rem}@media (max-width:1024px){.subjects-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width:768px){.student-subjects{padding:1rem}.header-content{padding:1rem 1.5rem}.subjects-header h1{font-size:1.5rem}.filters-section{align-items:stretch;flex-direction:column;padding:1rem 1.5rem}.filter-select{width:100%}.subjects-grid{grid-template-columns:1fr}.semester-section{padding:1.5rem}.semester-header{align-items:flex-start;flex-direction:column;gap:.75rem}.summary-card{padding:1.5rem}.summary-content{grid-template-columns:1fr}.summary-item.total{grid-column:1}}@media (max-width:480px){.student-subjects{padding:.75rem}.filters-section,.header-content,.semester-section,.subject-card{padding:1rem}.subject-header{align-items:flex-start;flex-direction:column}.subject-code{align-self:flex-start}.summary-card{padding:1rem}.summary-card h3{font-size:1.1rem}.summary-value{font-size:1.25rem}.summary-item.total .summary-value{font-size:1.5rem}}.grades-page{background:#faf7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-y:auto;padding:2rem;position:relative;width:100%}.grades-page:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.15;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}body.dark-mode .grades-page{background:#1a1410}body.dark-mode .grades-page:before{opacity:.08}.grades-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;display:flex;justify-content:space-between;margin-bottom:2rem;padding:1.5rem 2rem;position:relative;z-index:1}body.dark-mode .grades-header{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.grades-header h1{color:#b8533d;font-size:2rem;font-weight:700;margin:0}body.dark-mode .grades-header h1{color:#f4d03f}.grades-controls{align-items:center;display:flex;gap:1.5rem}.control-group{gap:.5rem}.control-group label{font-size:.95rem}body.dark-mode .control-group label{color:#ebe0d0}.control-group select{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid #b8533d66;border-radius:8px;box-shadow:0 2px 8px #5c3a2a1f;color:#3d2416;font-size:.95rem;min-width:150px;padding:.5rem 1rem;transition:all .3s ease}body.dark-mode .control-group select{background:#32281ef2;border-color:#f4d03f66;box-shadow:0 2px 8px #0000004d;color:#ebe0d0}.control-group select:hover{border-color:#b8533d;box-shadow:0 4px 12px #b8533d33}body.dark-mode .control-group select:hover{background:#32281e;border-color:#f4d03f}.control-group select:focus{background:#fff;border-color:#b8533d;box-shadow:0 0 0 3px #b8533d26}body.dark-mode .control-group select:focus{background:#32281e;border-color:#f4d03f;box-shadow:0 0 0 3px #f4d03f26}.overall-stats{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:1.5rem;position:relative;text-align:center;transition:transform .3s ease,box-shadow .3s ease;z-index:1}body.dark-mode .stat-card{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.stat-card:hover{box-shadow:0 20px 40px #5c3a2a26;transform:translateY(-5px)}body.dark-mode .stat-card:hover{box-shadow:0 12px 40px #0006}.stat-label{color:#5c3a2a;font-size:.9rem;font-weight:500;margin-bottom:.5rem}body.dark-mode .stat-label{color:#f5e6d3}.stat-value{color:#3d2416;font-size:2rem;font-weight:700}body.dark-mode .stat-value{color:#ebe0d0}.stat-value.status-failed,.stat-value.status-in-progress,.stat-value.status-passed,.stat-value.status-pending{background:none;border:none;border-radius:0;color:#3d2416;padding:0}body.dark-mode .stat-value.status-failed,body.dark-mode .stat-value.status-in-progress,body.dark-mode .stat-value.status-passed,body.dark-mode .stat-value.status-pending{color:#ebe0d0}.grades-container{margin-bottom:2rem}.subjects-list{flex-direction:column;gap:1rem}.subject-card{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;overflow:hidden;position:relative;transition:transform .3s ease,box-shadow .3s ease;z-index:1}body.dark-mode .subject-card{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.subject-card:hover{box-shadow:0 20px 40px #5c3a2a26;transform:translateY(-2px)}body.dark-mode .subject-card:hover{box-shadow:0 12px 40px #0006}.subject-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:1.5rem;transition:background .3s ease}.subject-header:hover{background:#e095801a}body.dark-mode .subject-header:hover{background:#f4d03f0d}.subject-info{flex:1 1}.subject-name{align-items:center;color:#3d2416;display:flex;font-size:1.3rem;font-weight:700;gap:.75rem;margin-bottom:.5rem}body.dark-mode .subject-name{color:#ebe0d0}.subject-code{background:#e0958059;border:1px solid #b8533d4d;border-radius:20px;color:#5c3a2a;font-size:.85rem;font-weight:500;padding:.25rem .75rem}body.dark-mode .subject-code{background:#f4d03f40;border:1px solid #f4d03f59;color:#f5e6d3}.subject-meta{color:#5c3a2a;display:flex;font-size:.9rem;gap:1.5rem}body.dark-mode .subject-meta{color:#f5e6d3}.year-semester{font-weight:600}.profesor{font-style:italic}.subject-grades-summary{align-items:center;display:flex;gap:1rem}.grade-badge{align-items:center;background:#e0958059;border:1px solid #b8533d59;border-radius:10px;display:flex;flex-direction:column;padding:.5rem 1rem}body.dark-mode .grade-badge{background:#f4d03f40;border:1px solid #f4d03f59}.grade-badge.final{background:#4caf504d;border-color:#4caf5080}body.dark-mode .grade-badge.final{background:#4caf5040;border-color:#4caf5066}.badge-label{color:#5c3a2a;font-size:.75rem;font-weight:500;margin-bottom:.25rem}body.dark-mode .badge-label{color:#f5e6d3}.badge-value{font-size:1.5rem;font-weight:700}.status-badge{border-radius:4px;font-size:.8rem;letter-spacing:.3px;padding:.4rem .9rem}.status-passed{background:#3d24161a;border:1px solid #3d24164d;color:#3d2416}body.dark-mode .status-passed{background:#ebe0d026;border:1px solid #ebe0d04d;color:#ebe0d0}.status-failed{background:#8b453b26;border:1px solid #8b453b4d;color:#8b453b}body.dark-mode .status-failed{background:#cd857833;border:1px solid #cd85784d;color:#cd8578}.status-in-progress{background:#5c3a2a1a;border:1px solid #5c3a2a40;color:#5c3a2a}body.dark-mode .status-in-progress{background:#d4c4b026;border:1px solid #d4c4b04d;color:#d4c4b0}.status-pending{background:#5c3a2a14;border:1px solid #5c3a2a33;color:#7a5c4a}body.dark-mode .status-pending{background:#d4c4b01a;border:1px solid #d4c4b033;color:#b8a896}.expand-btn{background:#fffffff2;border:2px solid #b8533d;border-radius:8px;box-shadow:0 2px 6px #5c3a2a26;color:#b8533d;cursor:pointer;font-size:1rem;padding:.5rem 1rem;transition:all .3s ease}body.dark-mode .expand-btn{background:#32281ef2;border-color:#f4d03f;box-shadow:0 2px 6px #0000004d;color:#f4d03f}.expand-btn:hover{background:#b8533d;box-shadow:0 4px 12px #b8533d4d;color:#fff;transform:translateY(-1px)}body.dark-mode .expand-btn:hover{background:#f4d03f;box-shadow:0 4px 12px #f4d03f66;color:#3d2416}.subject-details{animation:slideDown .3s ease;padding:0 1.5rem 1.5rem}@keyframes slideDown{0%{max-height:0;opacity:0}to{max-height:500px;opacity:1}}.grades-table{border-collapse:collapse;margin-top:1rem;width:100%}.grades-table thead{background:#e095804d;border:1px solid #b8533d4d}body.dark-mode .grades-table thead{background:#f4d03f33;border:1px solid #f4d03f4d}.grades-table th{color:#3d2416;font-size:.9rem;font-weight:600;padding:1rem;text-align:left}body.dark-mode .grades-table th{color:#ebe0d0}.grades-table td{border-top:1px solid #d4c4b059;color:#3d2416;padding:1rem}body.dark-mode .grades-table td{border-top:1px solid #d4c4b033;color:#ebe0d0}.grade-type-badge{border-radius:3px;display:inline-block;font-size:.8rem;font-weight:500;padding:.2rem .6rem}.grade-type-badge.partial{background:#5c3a2a1a;border:1px solid #5c3a2a33;color:#5c3a2a}body.dark-mode .grade-type-badge.partial{background:#d4c4b026;border:1px solid #d4c4b040;color:#d4c4b0}.grade-type-badge.exam{background:#b8533d1f;border:1px solid #b8533d40;color:#8b453b}body.dark-mode .grade-type-badge.exam{background:#f4d03f26;border:1px solid #f4d03f40;color:#e8d49a}.grade-type-badge.final{background:#3d24161a;border:1px solid #3d241640;color:#3d2416}body.dark-mode .grade-type-badge.final{background:#ebe0d026;border:1px solid #ebe0d040;color:#ebe0d0}.grade-value{font-size:1.2rem;font-weight:600}.grade-excellent{color:#3d2416}body.dark-mode .grade-excellent{color:#ebe0d0}.grade-good{color:#5c3a2a}body.dark-mode .grade-good{color:#d4c4b0}.grade-pass{color:#7a5c4a}body.dark-mode .grade-pass{color:#b8a896}.grade-fail{color:#8b453b}body.dark-mode .grade-fail{color:#cd8578}.grade-null{color:#999;font-style:italic}body.dark-mode .grade-null{color:#888}.error-message,.loading,.no-grades{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;color:#5c3a2a;font-size:1.2rem;padding:3rem;position:relative;text-align:center;z-index:1}body.dark-mode .error-message,body.dark-mode .loading,body.dark-mode .no-grades{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d;color:#f5e6d3}.error-message{border-color:#c0392b66}body.dark-mode .error-message{border-color:#c0392b66;color:#ff6b6b}@media (max-width:768px){.grades-page{padding:1rem}.grades-page:before{opacity:.12}body.dark-mode .grades-page:before{opacity:.06}.grades-header{flex-direction:column;gap:1rem}.grades-controls{flex-direction:column;width:100%}.control-group{justify-content:space-between;width:100%}.control-group select{flex:1 1}.overall-stats{grid-template-columns:repeat(2,1fr)}.subject-header{align-items:flex-start;flex-direction:column;gap:1rem}.subject-grades-summary{flex-wrap:wrap;width:100%}.grades-table{font-size:.85rem}.grades-table td,.grades-table th{padding:.5rem}}.student-exams{background:#faf7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-y:auto;padding:2rem;position:relative;width:100%}.student-exams:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.15;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}body.dark-mode .student-exams{background:#1a1410}body.dark-mode .student-exams:before{opacity:.08}.exams-header{margin-bottom:2rem;position:relative;z-index:1}.header-content{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;margin-bottom:1.5rem;padding:1.5rem 2rem}body.dark-mode .header-content{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.exams-header h1{color:#b8533d;font-size:2rem;font-weight:700;margin:0 0 .5rem}body.dark-mode .exams-header h1{color:#f4d03f}.filters-section{align-items:flex-end;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;display:flex;flex-wrap:wrap;gap:1.5rem;padding:1.5rem 2rem;position:relative;z-index:1}body.dark-mode .filters-section{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.filter-group{display:flex;flex:1 1;flex-direction:column;gap:.5rem;min-width:200px}.filter-group label{color:#5c3a2a;font-size:.95rem;font-weight:600}body.dark-mode .filter-group label{color:#ebe0d0}.filter-select,.search-input{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #b8533d66;border-radius:8px;color:#3d2416;cursor:pointer;font-size:.95rem;padding:.5rem 1rem;transition:all .3s ease}.search-input{cursor:text}body.dark-mode .filter-select,body.dark-mode .search-input{background:#1f1812f2;border:2px solid #d4c4b04d;color:#ebe0d0}.filter-select:hover,.search-input:hover{border-color:#b8533d;box-shadow:0 4px 12px #b8533d26;transform:translateY(-1px)}body.dark-mode .filter-select:hover,body.dark-mode .search-input:hover{border-color:#f4d03f;box-shadow:0 4px 12px #f4d03f33}.filter-select:focus,.search-input:focus{border-color:#b8533d;box-shadow:0 0 0 3px #b8533d1a;outline:none}body.dark-mode .filter-select:focus,body.dark-mode .search-input:focus{border-color:#f4d03f;box-shadow:0 0 0 3px #f4d03f1a}.error-message{font-weight:500;margin-bottom:1.5rem;padding:1rem 1.5rem}.empty-state,.error-message{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;position:relative;z-index:1}.empty-state{background:#f9fafb4d;border:2px dashed #d4c4b080;font-size:1rem;padding:3rem 2rem}body.dark-mode .empty-state{background:#1f18124d;border:2px dashed #d4c4b04d}.exams-content{display:flex;flex-direction:column;gap:2.5rem;position:relative;z-index:1}.session-section{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:2rem}body.dark-mode .session-section{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.session-header{align-items:center;border-bottom:2px solid #d4c4b04d;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}body.dark-mode .session-header{border-bottom:2px solid #d4c4b033}.session-header h2{align-items:center;color:#b8533d;display:flex;font-size:1.5rem;font-weight:700;gap:.75rem;margin:0}body.dark-mode .session-header h2{color:#f4d03f}.session-icon{font-size:1.75rem}.exams-count{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#f4d03f33;border:1px solid #d4a9164d;border-radius:8px;color:#5c3a2a;font-size:.875rem;font-weight:600;padding:.5rem 1rem}body.dark-mode .exams-count{background:#f4d03f26;border:1px solid #f4d03f4d;color:#f4d03f}.exams-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(350px,1fr))}.exam-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffc;border:2px solid #d4c4b04d;border-radius:12px;padding:1.5rem;position:relative;transition:all .3s ease}body.dark-mode .exam-card{background:#1f1812cc;border:2px solid #d4c4b033}.exam-card:hover{border-color:#b8533d;box-shadow:0 8px 24px #b8533d26;transform:translateY(-4px)}body.dark-mode .exam-card:hover{border-color:#f4d03f;box-shadow:0 8px 24px #f4d03f33}.exam-card.urgent{background:#ffebebe6;border-color:#c0392b}body.dark-mode .exam-card.urgent{background:#c0392b26;border-color:#e74c3c}.exam-card.soon{background:#fff5ebe6;border-color:#e67e22}body.dark-mode .exam-card.soon{background:#e67e2226;border-color:#f39c12}.exam-card.past{border-color:#d4c4b033;opacity:.7}.urgency-badge{background:linear-gradient(135deg,#c0392b,#9b3d2f);border-radius:20px;box-shadow:0 4px 12px #c0392b66;color:#fff;font-size:.75rem;font-weight:700;letter-spacing:.5px;padding:.375rem .875rem;position:absolute;right:1rem;text-transform:uppercase;top:-10px}.exam-card.soon .urgency-badge{background:linear-gradient(135deg,#e67e22,#d35400);box-shadow:0 4px 12px #e67e2266}.exam-subject{align-items:start;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.25rem;padding-top:.5rem}.exam-subject h3{color:#3d2416;font-size:1.25rem;font-weight:700;line-height:1.4;margin:0}body.dark-mode .exam-subject h3{color:#ebe0d0}.exam-type{background:linear-gradient(135deg,#b8533d,#9b3d2f);border-radius:6px;box-shadow:0 2px 8px #b8533d4d;color:#fff;flex-shrink:0;font-size:.75rem;font-weight:600;padding:.25rem .625rem;white-space:nowrap}body.dark-mode .exam-type{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.exam-details{display:flex;flex-direction:column;gap:1rem}.detail-item{align-items:flex-start;display:flex;gap:.75rem}.detail-icon{color:#b8533d;flex-shrink:0;height:1.25rem;margin-top:.125rem;width:1.25rem}body.dark-mode .detail-icon{color:#f4d03f}.detail-content{display:flex;flex:1 1;flex-direction:column;gap:.25rem}.detail-label{color:#7d6b5d;font-size:.875rem;font-weight:500}body.dark-mode .detail-label{color:#d4c4b0}.detail-value{color:#3d2416;font-size:.95rem;font-weight:600}body.dark-mode .detail-value{color:#ebe0d0}.exams-summary{margin-top:1rem;position:relative;z-index:1}.summary-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(135deg,#b8533d,#9b3d2f);border:2px solid #d4c4b04d;border-radius:15px;box-shadow:0 10px 30px #b8533d4d;color:#fff;padding:2rem}body.dark-mode .summary-card{background:linear-gradient(135deg,#f4d03f,#d4a916);border:2px solid #f4d03f4d;box-shadow:0 10px 30px #f4d03f4d;color:#3d2416}.summary-card h3{font-size:1.25rem;font-weight:700;margin:0 0 1.5rem}.summary-content{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.summary-item{display:flex;flex-direction:column;gap:.5rem}.summary-label{font-size:.875rem;font-weight:500;opacity:.9}.summary-value{font-size:1.5rem;font-weight:700}@media (max-width:1024px){.exams-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}}@media (max-width:768px){.student-exams{padding:1rem}.header-content{padding:1rem 1.5rem}.exams-header h1{font-size:1.5rem}.filters-section{padding:1rem 1.5rem}.filter-group{min-width:100%}.exams-grid{grid-template-columns:1fr}.session-section{padding:1.5rem}.session-header{align-items:flex-start;flex-direction:column;gap:.75rem}.summary-card{padding:1.5rem}.summary-content{grid-template-columns:1fr}}@media (max-width:480px){.student-exams{padding:.75rem}.exam-card,.filters-section,.header-content,.session-section{padding:1rem}.exam-subject{align-items:flex-start;flex-direction:column}.exam-type{align-self:flex-start}.summary-card{padding:1rem}.summary-card h3{font-size:1.1rem}.summary-value{font-size:1.25rem}}.requests-page{background:#faf7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-y:auto;padding:2rem;position:relative;width:100%}.requests-page:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.15;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}body.dark-mode .requests-page{background:#1a1410}body.dark-mode .requests-page:before{opacity:.08}.requests-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;display:flex;flex-wrap:wrap;gap:2rem;justify-content:space-between;margin-bottom:2rem;padding:1.5rem 2rem;position:relative;z-index:1}body.dark-mode .requests-header{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.header-content{flex:1 1;min-width:250px}.requests-header h1{color:#b8533d;font-size:2rem;font-weight:700;margin:0 0 .5rem}body.dark-mode .requests-header h1{color:#f4d03f}.header-subtitle{color:#7d6b5d;font-size:1rem;margin:0}body.dark-mode .header-subtitle{color:#d4c4b0}.new-request-btn{align-items:center;background:linear-gradient(135deg,#b8533d,#9b3d2f);border:none;border-radius:10px;box-shadow:0 4px 12px #b8533d4d;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}body.dark-mode .new-request-btn{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.new-request-btn svg{height:1.25rem;width:1.25rem}.new-request-btn:hover{box-shadow:0 6px 20px #b8533d66;transform:translateY(-2px)}body.dark-mode .new-request-btn:hover{box-shadow:0 6px 20px #f4d03f66}.new-request-btn:active{transform:translateY(0)}.request-form-container{margin-bottom:2rem;position:relative;z-index:1}.request-form{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:2rem}body.dark-mode .request-form{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.request-form h2{color:#b8533d;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}body.dark-mode .request-form h2{color:#f4d03f}.form-select,.form-textarea{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #b8533d66;border-radius:8px;color:#3d2416;font-family:inherit;font-size:.95rem;padding:.75rem 1rem;transition:all .3s ease;width:100%}body.dark-mode .form-select,body.dark-mode .form-textarea{background:#1f1812f2;border:2px solid #d4c4b04d;color:#ebe0d0}.form-select:focus,.form-textarea:focus{border-color:#b8533d;box-shadow:0 0 0 3px #b8533d1a;outline:none}body.dark-mode .form-select:focus,body.dark-mode .form-textarea:focus{border-color:#f4d03f;box-shadow:0 0 0 3px #f4d03f1a}.form-textarea{min-height:100px;resize:vertical}.form-actions{margin-top:2rem}.btn-primary:hover:not(:disabled){box-shadow:0 6px 20px #b8533d66;transform:translateY(-2px)}.btn-secondary:hover:not(:disabled){background:#7d6b5d33}.btn-primary:disabled,.btn-secondary:disabled{cursor:not-allowed;opacity:.6}.loading-state{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;color:#7d6b5d;display:flex;font-size:1.125rem;justify-content:center;min-height:400px;position:relative;z-index:1}body.dark-mode .loading-state{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d;color:#d4c4b0}.requests-content{position:relative;z-index:1}.requests-section{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:2rem}body.dark-mode .requests-section{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.section-header{align-items:center;border-bottom:2px solid #d4c4b04d;display:flex;justify-content:space-between;margin-bottom:1.5rem;padding-bottom:1rem}body.dark-mode .section-header{border-bottom:2px solid #d4c4b033}.section-header h2{color:#b8533d;font-size:1.5rem;font-weight:700;margin:0}body.dark-mode .section-header h2{color:#f4d03f}.requests-count{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#f4d03f33;border:1px solid #d4a9164d;border-radius:8px;color:#5c3a2a;font-size:.875rem;font-weight:600;padding:.5rem 1rem}body.dark-mode .requests-count{background:#f4d03f26;border:1px solid #f4d03f4d;color:#f4d03f}.empty-state{color:#7d6b5d;padding:4rem 2rem;text-align:center}body.dark-mode .empty-state{color:#d4c4b0}.empty-state svg{color:#b8533d;height:4rem;margin-bottom:1.5rem;opacity:.5;width:4rem}body.dark-mode .empty-state svg{color:#f4d03f}.empty-state p{font-size:1.125rem;font-weight:600;margin:0 0 .5rem}.empty-subtitle{font-size:.95rem;opacity:.8}.requests-list{display:flex;flex-direction:column;gap:1rem}.request-card{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffc;border:2px solid #d4c4b04d;border-radius:12px;padding:1.5rem;transition:all .3s ease}body.dark-mode .request-card{background:#1f1812cc;border:2px solid #d4c4b033}.request-card:hover{border-color:#b8533d;box-shadow:0 8px 24px #b8533d26;transform:translateY(-2px)}body.dark-mode .request-card:hover{border-color:#f4d03f;box-shadow:0 8px 24px #f4d03f33}.request-header{gap:1rem;justify-content:space-between;margin-bottom:1rem}.request-header,.request-type{align-items:center;display:flex}.request-type{flex:1 1;gap:.75rem}.request-type svg{color:#b8533d;flex-shrink:0;height:1.5rem;width:1.5rem}body.dark-mode .request-type svg{color:#f4d03f}.request-type h3{color:#3d2416;font-size:1.125rem;font-weight:700;margin:0}body.dark-mode .request-type h3{color:#ebe0d0}.status-badge{border-radius:20px;flex-shrink:0;font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:.375rem .875rem;text-transform:uppercase}.status-badge.pending{background:#f39c1233;border:1px solid #f39c124d;color:#f39c12}body.dark-mode .status-badge.pending{background:#f39c124d;border:1px solid #f39c1266}.status-badge.approved{background:#27ae6033;border:1px solid #27ae604d;color:#27ae60}body.dark-mode .status-badge.approved{background:#27ae604d;border:1px solid #27ae6066;color:#2ecc71}.status-badge.rejected{background:#c0392b33;border:1px solid #c0392b4d;color:#c0392b}body.dark-mode .status-badge.rejected{background:#c0392b4d;border:1px solid #c0392b66;color:#e74c3c}.request-description{background:#7d6b5d0d;border-left:3px solid #b8533d;border-radius:8px;margin-bottom:1rem;padding:1rem}body.dark-mode .request-description{background:#d4c4b00d;border-left:3px solid #f4d03f}.request-description p{color:#5c3a2a;font-size:.95rem;line-height:1.6;margin:0}body.dark-mode .request-description p{color:#d4c4b0}.request-footer{border-top:1px solid #d4c4b033;justify-content:space-between;padding-top:1rem}.request-date,.request-footer{align-items:center;display:flex}.request-date{color:#7d6b5d;font-size:.875rem;gap:.5rem}body.dark-mode .request-date{color:#d4c4b0}.request-date svg{height:1rem;width:1rem}@media (max-width:768px){.requests-page{padding:1rem}.requests-header{align-items:stretch;flex-direction:column;padding:1rem 1.5rem}.new-request-btn{justify-content:center;width:100%}.request-form{padding:1.5rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.requests-section{padding:1.5rem}.request-header{align-items:flex-start;flex-direction:column}.status-badge{align-self:flex-start}}@media (max-width:480px){.requests-page{padding:.75rem}.request-form,.requests-header,.requests-section{padding:1rem}.requests-header h1{font-size:1.5rem}.request-card{padding:1rem}}.profile-page{background:#faf7f2;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;min-height:100vh;overflow-y:auto;padding:2rem;position:relative;width:100%}.profile-page:before{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-repeat:no-repeat;background-size:cover;content:"";height:100%;left:0;opacity:.15;pointer-events:none;position:fixed;top:0;width:100%;z-index:0}body.dark-mode .profile-page{background:#1a1410}body.dark-mode .profile-page:before{opacity:.08}.profile-header{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;display:flex;gap:2rem;margin-bottom:2rem;padding:2rem;position:relative;z-index:1}body.dark-mode .profile-header{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.profile-avatar{flex-shrink:0;position:relative}.avatar-circle{align-items:center;background:linear-gradient(135deg,#b8533d,#9b3d2f);border-radius:50%;box-shadow:0 8px 24px #b8533d4d;display:flex;height:120px;justify-content:center;width:120px}body.dark-mode .avatar-circle{background:linear-gradient(135deg,#f4d03f,#d4a916)}.avatar-circle svg{color:#fff;height:60px;width:60px}body.dark-mode .avatar-circle svg{color:#3d2416}.role-badge{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid #d4a9164d;border-radius:20px;bottom:-5px;box-shadow:0 4px 12px #f4d03f66;font-size:.75rem;font-weight:700;left:50%;letter-spacing:.5px;padding:.375rem 1rem;position:absolute;text-transform:uppercase;transform:translateX(-50%)}.role-badge,body.dark-mode .role-badge{background:#f4d03ff2;color:#3d2416}.profile-title{flex:1 1}.profile-title h1{color:#b8533d;font-size:2rem;font-weight:700;margin:0 0 .5rem}body.dark-mode .profile-title h1{color:#f4d03f}.profile-email{color:#7d6b5d;font-size:1rem;margin:0}body.dark-mode .profile-email{color:#d4c4b0}.edit-btn{align-items:center;background:linear-gradient(135deg,#b8533d,#9b3d2f);border:none;border-radius:10px;box-shadow:0 4px 12px #b8533d4d;color:#fff;cursor:pointer;display:flex;flex-shrink:0;font-size:1rem;font-weight:600;gap:.5rem;padding:.75rem 1.5rem;transition:all .3s ease}body.dark-mode .edit-btn{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.edit-btn.cancel{background:#c0392be6}body.dark-mode .edit-btn.cancel{background:#e74c3ce6;color:#fff}.edit-btn svg{height:1.25rem;width:1.25rem}.edit-btn:hover{box-shadow:0 6px 20px #b8533d66;transform:translateY(-2px)}body.dark-mode .edit-btn:hover{box-shadow:0 6px 20px #f4d03f66}.error-message,.success-message{align-items:center;animation:slideIn .3s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-radius:12px;display:flex;font-weight:500;gap:.75rem;margin-bottom:1.5rem;padding:1rem 1.5rem;position:relative;z-index:1}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.success-message{background:#27ae6026;border:2px solid #27ae604d;color:#27ae60}body.dark-mode .success-message{background:#27ae6033;border:2px solid #27ae6066;color:#2ecc71}.error-message{background:#c0392b26;border:2px solid #c0392b4d;color:#c0392b}body.dark-mode .error-message{background:#c0392b33;border:2px solid #c0392b66;color:#e74c3c}.error-message svg,.success-message svg{flex-shrink:0;height:1.5rem;width:1.5rem}.error-state,.loading-state{align-items:center;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;color:#7d6b5d;display:flex;font-size:1.125rem;justify-content:center;min-height:400px;position:relative;z-index:1}body.dark-mode .error-state,body.dark-mode .loading-state{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d;color:#d4c4b0}.visually-hidden{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.profile-content{display:flex;flex-direction:column;gap:2rem;position:relative;z-index:1}.profile-section{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#f9fafb80;border:2px solid #d4c4b040;border-radius:15px;box-shadow:0 8px 32px #b8533d14;padding:2rem}body.dark-mode .profile-section{background:#1f181280;border:2px solid #d4c4b026;box-shadow:0 8px 32px #0000004d}.profile-section h2{color:#b8533d;font-size:1.5rem;font-weight:700;margin:0 0 1.5rem}body.dark-mode .profile-section h2{color:#f4d03f}.section-subtitle{color:#7d6b5d;font-size:.875rem;margin:-.5rem 0 1.5rem}body.dark-mode .section-subtitle{color:#d4c4b0}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.info-item{align-items:flex-start;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fff9;border:2px solid #d4c4b033;border-radius:12px;display:flex;gap:1rem;padding:1.25rem;transition:all .3s ease}body.dark-mode .info-item{background:#1f181299;border:2px solid #d4c4b026}.info-item:hover{box-shadow:0 4px 12px #b8533d1a;transform:translateY(-2px)}.info-item svg{color:#b8533d;flex-shrink:0;height:1.5rem;margin-top:.25rem;width:1.5rem}body.dark-mode .info-item svg{color:#f4d03f}.info-item>div{display:flex;flex:1 1;flex-direction:column;gap:.375rem}.info-label{color:#7d6b5d;font-size:.875rem;font-weight:500}body.dark-mode .info-label{color:#d4c4b0}.info-value{color:#3d2416;font-size:1rem;font-weight:600}body.dark-mode .info-value{color:#ebe0d0}.subjects-taught{border-top:2px solid #d4c4b04d;margin-top:1.5rem;padding-top:1.5rem}body.dark-mode .subjects-taught{border-top:2px solid #d4c4b033}.subjects-taught h3{color:#5c3a2a;font-size:1.125rem;font-weight:700;margin:0 0 1rem}body.dark-mode .subjects-taught h3{color:#ebe0d0}.subjects-list{display:flex;flex-wrap:wrap;gap:.75rem}.subject-tag{background:linear-gradient(135deg,#b8533d,#9b3d2f);border-radius:8px;box-shadow:0 2px 8px #b8533d33;color:#fff;display:inline-block;font-size:.875rem;font-weight:600;padding:.5rem 1rem;transition:all .3s ease}body.dark-mode .subject-tag{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.subject-tag:hover{box-shadow:0 4px 12px #b8533d4d;transform:translateY(-2px)}.edit-form{display:flex;flex-direction:column;gap:2rem}.form-group{margin-bottom:1.5rem}.form-group:last-child{margin-bottom:0}.form-group label{color:#5c3a2a;font-size:.95rem;margin-bottom:.5rem}body.dark-mode .form-group label{color:#ebe0d0}.form-input{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffff2;border:2px solid #b8533d66;border-radius:8px;color:#3d2416;font-family:inherit;font-size:.95rem;padding:.75rem 1rem;transition:all .3s ease;width:100%}body.dark-mode .form-input{background:#1f1812f2;border:2px solid #d4c4b04d;color:#ebe0d0}.form-input:focus{border-color:#b8533d;box-shadow:0 0 0 3px #b8533d1a;outline:none}body.dark-mode .form-input:focus{border-color:#f4d03f;box-shadow:0 0 0 3px #f4d03f1a}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1rem}.btn-primary,.btn-secondary{border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#b8533d,#9b3d2f);box-shadow:0 4px 12px #b8533d4d;color:#fff}body.dark-mode .btn-primary{background:linear-gradient(135deg,#f4d03f,#d4a916);color:#3d2416}.btn-primary:hover{box-shadow:0 6px 20px #b8533d66;transform:translateY(-2px)}.btn-secondary{background:#7d6b5d1a;border:2px solid #d4c4b04d;color:#5c3a2a}body.dark-mode .btn-secondary{background:#d4c4b01a;border:2px solid #d4c4b033;color:#ebe0d0}.btn-secondary:hover{background:#7d6b5d33}@media (max-width:768px){.profile-page{padding:1rem}.profile-header{flex-direction:column;padding:1.5rem;text-align:center}.edit-btn,.profile-title{width:100%}.edit-btn{justify-content:center}.info-grid{grid-template-columns:1fr}.profile-section{padding:1.5rem}.form-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}@media (max-width:480px){.profile-page{padding:.75rem}.profile-header{padding:1rem}.avatar-circle{height:100px;width:100px}.avatar-circle svg{height:50px;width:50px}.profile-title h1{font-size:1.5rem}.info-item,.profile-section{padding:1rem}.subjects-list{flex-direction:column}.subject-tag{text-align:center}}.timetable-page{margin:0 auto;max-width:1600px;min-height:100vh;padding:24px;position:relative;z-index:1}.timetable-background{background-image:url(/static/media/acad_back1.210e93e31aad641f0cb8.jpeg);background-position:50%;background-size:cover;z-index:-2}.timetable-background,.timetable-overlay{height:100vh;left:0;position:fixed;top:0;width:100vw}.timetable-overlay{background:#0000001a;z-index:-1}body.dark-mode .timetable-overlay{background:#000000b3}.timetable-header{align-items:center;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#faf7f280;border:1px solid #d4c4b04d;border-radius:16px;box-shadow:0 8px 32px #5c3a2a1a;display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between;margin-bottom:24px;padding:20px 24px}body.dark-mode .timetable-header{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 8px 32px #0003}.timetable-header h1{color:#3d2416;font-size:32px;font-weight:800;letter-spacing:-.5px;margin:0;text-shadow:0 1px 2px #0000001a}body.dark-mode .timetable-header h1{color:#fff;text-shadow:0 2px 4px #0000004d}.timetable-controls{align-items:center;display:flex;flex-wrap:wrap;gap:20px}.control-group{align-items:center;display:flex;gap:10px}.control-group label{color:#5c3a2a;font-size:14px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}body.dark-mode .control-group label{color:#ffffffe6}.control-group .group-display{background:#ebe0d04d;border-radius:10px;color:#3d2416;font-size:15px;font-weight:600;min-width:160px;padding:10px 16px}body.dark-mode .control-group .group-display{background:#ffffff1a;color:#fffffff2}.control-group select{background:#fffffff2;border:none;border-radius:10px;box-shadow:0 4px 12px #00000026;color:#1f2937;cursor:pointer;font-size:15px;font-weight:500;min-width:160px;padding:10px 16px;transition:all .2s ease}.control-group select:hover{background:#fff;box-shadow:0 6px 16px #0003;transform:translateY(-1px)}.control-group select:focus{box-shadow:0 0 0 3px #3b82f666,0 6px 16px #0003;outline:none}.btn-add{align-items:center;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:10px;box-shadow:0 4px 12px #3b82f666;color:#fff;cursor:pointer;display:flex;font-size:15px;font-weight:600;gap:6px;padding:10px 20px;transition:all .2s ease}.btn-add:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 6px 20px #3b82f680;transform:translateY(-2px)}.error-message{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;color:#dc2626;margin-bottom:16px;padding:12px 16px}.loading{color:#6b7280;font-size:16px;padding:48px;text-align:center}.timetable-container{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#faf7f266;border:1px solid #d4c4b04d;border-radius:16px;box-shadow:0 8px 32px #5c3a2a1a;overflow-x:auto}body.dark-mode .timetable-container{background:#ffffff1a;border:1px solid #fff3;box-shadow:0 8px 32px #0003}.timetable-grid{min-width:900px}.grid-header{background:#ebe0d066;border-bottom:1px solid #d4c4b04d;display:grid;grid-template-columns:100px repeat(5,1fr)}body.dark-mode .grid-header{background:#ffffff26;border-bottom:1px solid #fff3}.day-header,.time-header{color:#3d2416;font-size:15px;font-weight:700;letter-spacing:.5px;padding:14px 16px;text-align:center;text-shadow:0 1px 2px #ffffff80;text-transform:uppercase}body.dark-mode .day-header,body.dark-mode .time-header{color:#fff;text-shadow:0 1px 2px #0000004d}.time-header{background:#ebe0d033}body.dark-mode .time-header{background:#ffffff1a}.grid-row{border-bottom:1px solid #d4c4b033;display:grid;grid-template-columns:100px repeat(5,1fr)}body.dark-mode .grid-row{border-bottom:1px solid #ffffff1a}.grid-row:last-child{border-bottom:none}.time-cell{align-items:center;background:#faf7f24d;border-right:1px solid #d4c4b033;color:#5c3a2a;display:flex;font-size:13px;font-weight:600;justify-content:center;padding:12px 8px;text-align:center}body.dark-mode .time-cell{background:#ffffff0d;border-right:1px solid #ffffff1a;color:#fffc}.entry-cell{border-right:1px solid #d4c4b033;min-height:120px;padding:6px}body.dark-mode .entry-cell{background:#ffffff08;border-right:1px solid #ffffff1a;display:flex;flex-direction:column;gap:4px}.entry-cell:last-child{border-right:none}.lunch-break{background:#ffffff0d}.break-cell{align-items:center;display:flex;justify-content:center;min-height:60px}.break-text{color:#ffffff80;font-size:12px;font-style:italic}.break-label{color:#ffffff80;display:block;font-size:10px;margin-top:2px}.timetable-entry{backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);border-left:4px solid;border-radius:10px;cursor:default;font-size:13px;padding:10px;position:relative;transition:all .2s ease}.timetable-entry.editable{cursor:pointer}.timetable-entry.editable:hover{box-shadow:0 8px 20px #0000004d;transform:translateY(-2px) scale(1.02)}.timetable-entry.curs{background:#3b82f6e6;border-left-color:#60a5fa;color:#fff}.timetable-entry.laborator{background:#10b981e6;border-left-color:#34d399;color:#fff}.timetable-entry.seminar{background:#f59e0be6;border-left-color:#fbbf24;color:#fff}.entry-subject{color:#fff;font-weight:700;line-height:1.3;margin-bottom:2px;text-shadow:0 1px 2px #0003}.entry-type{color:#ffffffd9;font-size:12px;font-weight:600;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.entry-details{color:#ffffffe6;display:flex;font-weight:500;gap:6px}.entry-room{background:#fff3;border-radius:4px;font-size:12px;padding:2px 6px}.entry-building{color:#fffc;font-size:12px}.entry-profesor{color:#ffffffd9;font-size:12px;font-style:italic;margin-top:4px}.entry-week{background:#ffffff40;border-radius:4px;color:#fff;font-size:11px;font-weight:700;padding:2px 6px;position:absolute;right:6px;top:6px}.timetable-legend{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:12px;margin-top:24px;padding:16px 20px}.timetable-legend h3{color:#ffffffe6;font-size:15px;font-weight:600;letter-spacing:.5px;margin:0 0 12px;text-transform:uppercase}.legend-items{display:flex;flex-wrap:wrap;gap:24px}.legend-item{align-items:center;color:#ffffffd9;display:flex;font-size:14px;gap:8px}.legend-color{border-radius:4px;height:16px;width:16px}.legend-color.curs{background:#3b82f6}.legend-color.laborator{background:#10b981}.legend-color.seminar{background:#f59e0b}.legend-note{color:#ffffffb3;font-size:13px;margin-top:8px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:12px;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e5e7eb;display:flex;justify-content:space-between;padding:20px 24px}.modal-header h2{color:#1f2937;font-size:20px;font-weight:700;margin:0}.modal-close{background:none;border:none;color:#6b7280;cursor:pointer;font-size:28px;line-height:1;padding:0}.modal-close:hover{color:#1f2937}.modal-form{padding:24px}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:1fr 1fr}.form-group{margin-bottom:16px}.form-group label{color:#374151;display:block;font-size:14px;font-weight:600;margin-bottom:6px}.form-group input,.form-group select{border:1px solid #d1d5db;border-radius:6px;box-sizing:border-box;font-size:14px;padding:10px 12px;width:100%}.form-group input:focus,.form-group select:focus{border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a;outline:none}.modal-actions{align-items:center;border-top:1px solid #e5e7eb;display:flex;justify-content:space-between;margin-top:24px;padding-top:16px}.modal-actions-right{display:flex;gap:12px}.btn-cancel{background:#f3f4f6;border:none;border-radius:6px;color:#374151;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px}.btn-cancel:hover{background:#e5e7eb}.btn-save{background:#3b82f6;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px}.btn-save:hover{background:#2563eb}.btn-delete{background:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;cursor:pointer;font-size:14px;font-weight:600;padding:10px 16px}.btn-delete:hover{background:#fee2e2}@media (max-width:768px){.timetable-controls,.timetable-header{align-items:flex-start;flex-direction:column}.control-group,.timetable-controls{width:100%}.control-group select{flex:1 1}.btn-add{width:100%}.form-row{grid-template-columns:1fr}.modal-actions{flex-direction:column;gap:12px}.modal-actions-right{width:100%}.btn-cancel,.btn-delete,.btn-save{flex:1 1}}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.page-container{margin:0 auto;max-width:1400px;min-height:calc(100vh - 70px);padding:20px}.page-placeholder{animation:fadeIn .5s ease;background:#fff;border-radius:16px;box-shadow:0 4px 20px #00000014;padding:60px 40px;text-align:center}.page-placeholder h1{color:#1a202c;font-size:clamp(28px,4vw,36px);font-weight:700;margin:0 0 15px}.page-placeholder p{color:#718096;font-size:clamp(16px,2vw,18px);margin:0 0 30px}.back-btn{background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:10px;color:#fff;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;padding:12px 24px;transition:transform .3s ease,box-shadow .3s ease}.back-btn:hover{box-shadow:0 6px 20px #667eea66;transform:translateY(-2px)}.back-btn:active{transform:translateY(0)}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.18 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-feature-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.mx-auto{margin-left:auto;margin-right:auto}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-20{margin-left:5rem}.ml-4{margin-left:1rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-6{margin-top:1.5rem}.flex{display:flex}.table{display:table}.grid{display:grid}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-16{width:4rem}.w-20{width:5rem}.min-w-full{min-width:100%}.flex-1{flex:1 1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-not-allowed{cursor:not-allowed}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:1rem}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:calc(1.5rem*var(--tw-space-y-reverse));margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity:1;border-color:#e5e7eb;border-color:rgb(229 231 235/var(--tw-divide-opacity,1))}.overflow-x-auto{overflow-x:auto}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-l-4{border-left-width:4px}.border-blue-500{--tw-border-opacity:1;border-color:#3b82f6;border-color:rgb(59 130 246/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:#d1d5db;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-400{--tw-border-opacity:1;border-color:#4ade80;border-color:rgb(74 222 128/var(--tw-border-opacity,1))}.border-red-400{--tw-border-opacity:1;border-color:#f87171;border-color:rgb(248 113 113/var(--tw-border-opacity,1))}.border-yellow-500{--tw-border-opacity:1;border-color:#eab308;border-color:rgb(234 179 8/var(--tw-border-opacity,1))}.bg-blue-50{--tw-bg-opacity:1;background-color:#eff6ff;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-blue-600{--tw-bg-opacity:1;background-color:#2563eb;background-color:rgb(37 99 235/var(--tw-bg-opacity,1))}.bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:#9ca3af;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-gray-50{--tw-bg-opacity:1;background-color:#f9fafb;background-color:rgb(249 250 251/var(--tw-bg-opacity,1))}.bg-gray-600{--tw-bg-opacity:1;background-color:#4b5563;background-color:rgb(75 85 99/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:#dcfce7;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-600{--tw-bg-opacity:1;background-color:#16a34a;background-color:rgb(22 163 74/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:#fee2e2;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-yellow-50{--tw-bg-opacity:1;background-color:#fefce8;background-color:rgb(254 252 232/var(--tw-bg-opacity,1))}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-blue-500{--tw-gradient-from:#3b82f6 var(--tw-gradient-from-position);--tw-gradient-to:#3b82f600 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-green-500{--tw-gradient-from:#22c55e var(--tw-gradient-from-position);--tw-gradient-to:#22c55e00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.to-blue-600{--tw-gradient-to:#2563eb var(--tw-gradient-to-position)}.to-green-600{--tw-gradient-to:#16a34a var(--tw-gradient-to-position)}.p-4{padding:1rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-3{padding-bottom:.75rem;padding-top:.75rem}.py-4{padding-bottom:1rem;padding-top:1rem}.pb-2{padding-bottom:.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-6xl{font-size:3.75rem;line-height:1}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.tracking-wider{letter-spacing:.05em}.text-blue-100{--tw-text-opacity:1;color:#dbeafe;color:rgb(219 234 254/var(--tw-text-opacity,1))}.text-blue-600{--tw-text-opacity:1;color:#2563eb;color:rgb(37 99 235/var(--tw-text-opacity,1))}.text-gray-200{--tw-text-opacity:1;color:#e5e7eb;color:rgb(229 231 235/var(--tw-text-opacity,1))}.text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgb(156 163 175/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-gray-700{--tw-text-opacity:1;color:#374151;color:rgb(55 65 81/var(--tw-text-opacity,1))}.text-gray-800{--tw-text-opacity:1;color:#1f2937;color:rgb(31 41 55/var(--tw-text-opacity,1))}.text-gray-900{--tw-text-opacity:1;color:#111827;color:rgb(17 24 39/var(--tw-text-opacity,1))}.text-green-100{--tw-text-opacity:1;color:#dcfce7;color:rgb(220 252 231/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:#15803d;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:#dc2626;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:#b91c1c;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:#fff;color:rgb(255 255 255/var(--tw-text-opacity,1))}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color);box-shadow:0 0 #0000,0 0 #0000,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-text-decoration-color,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:bg-blue-700:hover{--tw-bg-opacity:1;background-color:#1d4ed8;background-color:rgb(29 78 216/var(--tw-bg-opacity,1))}.hover\:bg-gray-100:hover{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))}.hover\:bg-gray-700:hover{--tw-bg-opacity:1;background-color:#374151;background-color:rgb(55 65 81/var(--tw-bg-opacity,1))}.hover\:bg-green-700:hover{--tw-bg-opacity:1;background-color:#15803d;background-color:rgb(21 128 61/var(--tw-bg-opacity,1))}.hover\:from-blue-600:hover{--tw-gradient-from:#2563eb var(--tw-gradient-from-position);--tw-gradient-to:#2563eb00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:from-green-600:hover{--tw-gradient-from:#16a34a var(--tw-gradient-from-position);--tw-gradient-to:#16a34a00 var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.hover\:to-blue-700:hover{--tw-gradient-to:#1d4ed8 var(--tw-gradient-to-position)}.hover\:to-green-700:hover{--tw-gradient-to:#15803d var(--tw-gradient-to-position)}.focus\:outline-none:focus{outline:2px solid #0000;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 #0000;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(59 130 246/var(--tw-ring-opacity,1))}@media (min-width:768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}
/*# sourceMappingURL=main.853dad1e.css.map*/