:root{--bg: #f6f7f9;--surface: #ffffff;--border: #e2e5ea;--text: #1c2129;--text-muted: #6b7280;--accent: #2f5fd6;--accent-dark: #1e3f9c;--danger: #b3261e;--success: #1a7f37;--radius: 8px;font-family:-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}h1,h2{margin:0}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center}.login-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:32px;width:320px;display:flex;flex-direction:column;gap:14px;box-shadow:0 4px 16px #0000000d}.login-card h1{font-size:1.2rem;margin-bottom:8px}label{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:var(--text-muted)}input,select,textarea{padding:8px 10px;border:1px solid var(--border);border-radius:6px;font-size:.95rem;background:var(--surface);color:var(--text)}button{padding:8px 14px;border:none;border-radius:6px;background:var(--accent);color:#fff;font-size:.9rem;cursor:pointer}button:hover{background:var(--accent-dark)}button:disabled{background:#b9c2d0;cursor:not-allowed}button.secondary{background:var(--surface);color:var(--danger);border:1px solid var(--border)}button.secondary:hover{background:#fdf1f0}button.chip{background:var(--surface);color:var(--accent-dark);border:1px solid var(--border)}button.chip:hover{background:#eef2fd}.error-text{color:var(--danger);font-size:.85rem}.hint{color:var(--text-muted);font-size:.85rem}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 24px;display:flex;align-items:center;gap:28px}.app-header h1{font-size:1.1rem;color:var(--accent-dark)}.app-header nav{display:flex;gap:18px;flex:1}.app-header nav a{color:var(--text-muted);text-decoration:none;font-size:.9rem;padding:6px 0;border-bottom:2px solid transparent}.app-header nav a.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.annee-scolaire-picker{display:flex;align-items:center;gap:8px;position:relative}.annee-scolaire-picker select{font-size:.85rem}.annee-scolaire-create-button{background:transparent;border:1px solid var(--border);border-radius:var(--radius);padding:4px 8px;font-size:.8rem;color:var(--text-muted);cursor:pointer;white-space:nowrap}.annee-scolaire-delete-panel{right:0;left:auto;min-width:340px}.annee-scolaire-delete-actions{display:flex;gap:8px}.annee-scolaire-form-panel{position:absolute;top:100%;left:0;margin-top:6px;display:flex;flex-direction:column;gap:10px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 20px #00000014;padding:14px;min-width:280px;z-index:20}.user-badge{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--text-muted)}.user-badge button{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.nav-group{position:relative}.nav-group-label{background:none;border:none;padding:6px 0;font-size:.9rem;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent}.nav-group-label.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.nav-dropdown{display:none;position:absolute;top:100%;left:0;flex-direction:column;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 20px #00000014;padding:6px;min-width:240px;z-index:10}.nav-group:hover .nav-dropdown,.nav-group:focus-within .nav-dropdown{display:flex}.app-header nav .nav-dropdown a{padding:8px 10px;border-bottom:none}.app-header nav .nav-dropdown a:hover{background:var(--bg);border-radius:6px}.app-header nav .nav-dropdown a.active{background:#eef2fd}.app-subnav{display:flex;gap:16px;padding:8px 24px 0;background:var(--surface);border-bottom:1px solid var(--border)}.app-subnav a{color:var(--text-muted);text-decoration:none;font-size:.85rem;padding:4px 0 8px;border-bottom:2px solid transparent}.app-subnav a.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}main{padding:24px;max-width:1200px;width:100%;margin:0 auto}.toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.data-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;font-size:.9rem}.data-table th,.data-table td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--border)}.data-table th{background:#fafbfc;color:var(--text-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.02em}.data-table tbody tr:last-child td{border-bottom:none}.data-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.data-table th.sortable:hover{color:var(--accent-dark)}.data-table.sticky-header{overflow:visible}.data-table.sticky-header th{position:sticky;top:0;z-index:1;font-weight:700}.data-table.sticky-header thead th:first-child{border-top-left-radius:var(--radius)}.data-table.sticky-header thead th:last-child{border-top-right-radius:var(--radius)}.data-table.sticky-header tbody tr:last-child td:first-child{border-bottom-left-radius:var(--radius)}.data-table.sticky-header tbody tr:last-child td:last-child{border-bottom-right-radius:var(--radius)}.gain-positive{color:var(--success);font-weight:600}.badge{display:inline-block;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}.badge-auto_confirmed,.badge-confirmed{background:#e6f4ea;color:var(--success)}.badge-pending_review{background:#fff4e5;color:#9a6700}.badge-rejected,.badge-non_adherent{background:#f1f2f4;color:var(--text-muted)}.badge-promu_estime{background:#e6f4ea;color:var(--success)}.badge-non_promu_estime{background:#fdecea;color:var(--danger)}.badge-indetermine{background:#f1f2f4;color:var(--text-muted)}.badge-locked{background:#e8ecfc;color:var(--accent-dark)}.badge-estimated{background:#fff4e5;color:#9a6700}.row-actions{display:flex;gap:8px}.import-page{display:flex;flex-direction:column;gap:20px}.page-tabs{display:flex;gap:4px;border-bottom:1px solid var(--border)}.page-tab-btn{background:none;border:none;padding:10px 16px;font-size:.9rem;color:var(--text-muted);cursor:pointer;border-bottom:2px solid transparent;border-radius:0}.page-tab-btn:hover{background:var(--surface);color:var(--text)}.page-tab-btn.active{color:var(--accent-dark);border-bottom-color:var(--accent);font-weight:600}.reclassement-frame{width:100%;height:calc(100vh - 230px);min-height:600px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.card h2{font-size:1rem;margin-bottom:8px}.card h3{font-size:.9rem;margin:18px 0 8px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px;margin-top:12px}.stat-tile{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}.stat-tile .stat-value{font-size:1.6rem;font-weight:600;line-height:1.2}.stat-tile .stat-label{font-size:.8rem;color:var(--text-muted);margin-top:2px}.inline-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin-top:12px}.checkbox-label{flex-direction:row!important;align-items:center;gap:8px!important;max-width:320px}.checkbox-label input[type=checkbox]{width:auto}.import-result{margin-top:14px;padding:12px 14px;background:#f6f7f9;border-radius:6px;font-size:.9rem}.import-result details{margin-top:8px;font-size:.85rem;color:var(--text-muted)}.import-result-row{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10}.modal{background:var(--surface);border-radius:var(--radius);padding:20px;width:560px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 8px 32px #0003}.email-preview{border:1px solid var(--border);border-radius:6px;padding:16px;margin-top:8px;background:#fafbfc;font-size:.9rem}.card p,.card ol{font-size:.92rem;line-height:1.55}.card code{background:#eef1f5;border-radius:4px;padding:1px 5px;font-size:.85em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.rule-formula{background:#f6f7f9;border:1px solid var(--border);border-radius:6px;padding:12px 14px;font-size:.82rem;line-height:1.6;overflow-x:auto;white-space:pre;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace}.rule-list{padding-left:22px}
