@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&family=Playfair+Display:wght@600;700;800&display=swap";:root{--font-heading:"Cinzel","Playfair Display",Georgia,serif;--font-body:"Plus Jakarta Sans",sans-serif;--color-forest-dark:#072e1b;--color-forest-main:#0a3d24;--color-forest-light:#135e38;--color-crimson:#c02626;--color-burgundy:#701515;--color-gold:#d4af37;--bg-page:#f8fafc;--bg-panel:#ffffff;--text-main:#1e293b;--text-muted:#475569;--text-subtle:#64748b;--border:#e2e8f0}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background-color:var(--bg-page);color:var(--text-main);min-height:100vh}.academic-admin-header{background-color:var(--color-forest-main);border-bottom:3px solid var(--color-gold);color:#ffffff}.top-utility-bar{background-color:#111827;color:#9ca3af;font-size:.8rem;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.08)}.utility-container{padding:0 1.5rem}.admin-header-nav,.utility-container{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.admin-header-nav{padding:.75rem 1.5rem}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:1.5rem;background:linear-gradient(135deg,rgba(7,46,27,.95),rgba(10,61,36,.92)),url(/images/fiche_pub.jpeg) 50%/cover}.login-card{background:#ffffff;border:2px solid var(--color-gold);border-radius:12px;padding:2.5rem;width:100%;max-width:460px;box-shadow:0 20px 40px rgba(0,0,0,.3)}.login-header{text-align:center;margin-bottom:2rem}.badge{display:inline-block;padding:.3rem .85rem;border-radius:4px;font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}.badge-superadmin{background:rgba(112,21,21,.15);color:var(--color-burgundy);border:1px solid var(--color-burgundy)}.badge-admin{background:rgba(10,61,36,.15);color:var(--color-forest-main);border:1px solid var(--color-forest-main)}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.85rem;font-weight:700;color:var(--color-burgundy);margin-bottom:.4rem}.form-input,.form-select,.form-textarea{width:100%;padding:.75rem 1rem;border-radius:6px;background:#f8fafc;border:1px solid var(--border);color:var(--text-main);font-family:inherit;font-size:.9rem;outline:none;transition:all .2s ease}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-forest-main);box-shadow:0 0 0 3px rgba(10,61,36,.15)}.password-input-wrapper{position:relative}.password-input{padding-right:3rem}.password-toggle{position:absolute;top:50%;right:.75rem;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;padding:.25rem;border:0;background:transparent;color:var(--text-subtle);cursor:pointer}.password-toggle:focus-visible,.password-toggle:hover{color:var(--color-forest-main)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border-radius:6px;font-weight:700;font-size:.9rem;cursor:pointer;border:none;transition:all .2s ease}.btn-primary{background:var(--color-crimson);color:#ffffff;width:100%;box-shadow:0 4px 12px rgba(192,38,38,.3)}.btn-primary:hover{background:#a81e1e}.dashboard-layout{display:flex;height:100vh;max-height:100vh;overflow:hidden;background:#f8fafc}.sidebar{width:280px;height:100vh;position:-webkit-sticky;position:sticky;top:0;background:#ffffff;color:#1e293b;border-right:1px solid #e2e8f0;padding:1.5rem 1rem;display:flex;flex-direction:column;box-shadow:2px 0 10px rgba(0,0,0,.03);flex-shrink:0;overflow-y:auto}.sidebar-brand{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;border-bottom:1px solid #e2e8f0;padding:.5rem .75rem 1rem}.sidebar-menu{list-style:none;display:flex;flex-direction:column;gap:.5rem;flex:1 1}.menu-item{display:flex;align-items:center;gap:.75rem;padding:.85rem 1rem;border-radius:6px;color:#475569;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.menu-item.active,.menu-item:hover{background:#f1f5f9;color:var(--color-forest-main);border-left:4px solid var(--color-forest-main)}.main-content{flex:1 1;height:100vh;overflow-y:auto;padding:2.5rem}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid var(--color-gold)}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));grid-gap:1.5rem;gap:1.5rem;margin-bottom:2.5rem}.dash-card{border-radius:10px;padding:1.75rem;border:1px solid var(--border);border-left:4px solid var(--color-forest-main)}.dash-card,.table-container{background:#ffffff;box-shadow:0 4px 15px rgba(0,0,0,.04)}.table-container{border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:2rem}table{width:100%;border-collapse:collapse;text-align:left}td,th{padding:1rem 1.25rem;border-bottom:1px solid var(--border);font-size:.875rem}th{background:var(--color-forest-dark);color:#ffffff;font-weight:700;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}tr:hover td{background:#f1f5f9}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-full{grid-column:1/-1}.section-form-title{font-size:1.1rem;font-weight:700;margin-bottom:1rem;color:var(--color-burgundy);display:flex;align-items:center;gap:.5rem}.tag{display:inline-block;padding:.2rem .65rem;border-radius:4px;font-size:.75rem;font-weight:800}.tag-green{background:rgba(10,61,36,.1);color:var(--color-forest-main)}.tag-blue{background:rgba(37,99,235,.1);color:#1d4ed8}.btn-icon-edit{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;border:1px solid rgba(37,99,235,.3);border-radius:5px;background:rgba(37,99,235,.08);color:#2563eb;cursor:pointer;transition:all .18s ease}.btn-icon-edit:hover{background:rgba(37,99,235,.18);border-color:rgba(37,99,235,.5)}.btn-icon-delete{display:inline-flex;align-items:center;justify-content:center;padding:.35rem;border:1px solid rgba(239,68,68,.3);border-radius:5px;background:rgba(239,68,68,.08);color:#dc2626;cursor:pointer;transition:all .18s ease}.btn-icon-delete:hover{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.5)}.hamburger-btn{display:none;align-items:center;justify-content:center;padding:.4rem;border:1px solid var(--border);border-radius:6px;background:#ffffff;color:var(--color-burgundy);cursor:pointer;flex-shrink:0}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:40}@media (max-width:900px){.sidebar{position:fixed;top:0;left:0;z-index:50;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 20px rgba(0,0,0,.15)}.sidebar.sidebar-open{transform:translateX(0)}.sidebar-overlay{display:block}.main-content{padding:1.25rem}.hamburger-btn{display:inline-flex}.topbar{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;padding-bottom:.75rem}.topbar h1{font-size:1.1rem!important}.topbar p{font-size:.75rem!important}.card-grid{gap:1rem;margin-bottom:1.5rem}.card-grid,.form-grid{grid-template-columns:1fr}.table-container{overflow-x:unset}.resp-table thead{display:none}.resp-table tbody tr{display:block;background:#ffffff;border:1px solid var(--border);border-radius:10px;margin-bottom:1rem;padding:.75rem 1rem;box-shadow:0 2px 8px rgba(0,0,0,.05)}.resp-table tbody td{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #f1f5f9;font-size:.875rem;gap:.75rem}.resp-table tbody td:last-child{border-bottom:none;padding-bottom:0}.resp-table tbody td:before{content:attr(data-label);font-weight:700;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-subtle);flex-shrink:0;min-width:90px}.img-preview{margin-top:.4rem;width:70px;height:70px;object-fit:cover;border-radius:6px;border:1px solid var(--border)}.upload-dropzone{margin-top:.4rem;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;border:2px dashed var(--border);border-radius:8px;background:#f8fafc;cursor:pointer;transition:border-color .2s ease,background .2s ease;text-align:center}.upload-dropzone:hover{border-color:var(--color-forest-main);background:rgba(10,61,36,.04)}.upload-dragging{border-color:var(--color-forest-main);background:rgba(10,61,36,.08)}.login-card{padding:1.5rem}}@media (max-width:480px){.main-content{padding:1rem}.topbar h1{font-size:.95rem!important}.badge{font-size:.65rem;padding:.2rem .6rem}.dash-card{padding:1.25rem}}