:root{--color-bg:#f6f7f9;--color-surface:#fff;--color-border:#e3e6ea;--color-text:#1f2933;--color-text-muted:#5a6673;--color-primary:#0f766e;--color-primary-hover:#0b5a54;--color-danger:#b91c1c;--header-height:56px;--radius:6px;--font-family:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-family);color:var(--color-text);background:var(--color-bg);margin:0;font-size:14px;line-height:1.5}h1{margin:0 0 1rem;font-size:1.4rem}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}main,.app-content{max-width:1100px;margin:0 auto;padding:1.5rem 1.25rem 3rem}.app-header{z-index:20;height:var(--header-height);background:var(--color-surface);border-bottom:1px solid var(--color-border);align-items:center;gap:1.5rem;padding:0 1.25rem;display:flex;position:sticky;top:0}.app-header__brand{color:var(--color-text);white-space:nowrap;align-items:center;gap:.5rem;font-size:1.05rem;font-weight:600;display:flex}.app-header__brand img{width:28px;height:28px}.app-header__nav{flex:1;align-items:center;gap:.25rem;display:flex}.app-header__user{color:var(--color-text-muted);white-space:nowrap;align-items:center;gap:.75rem;display:flex}.nav-dropdown{position:relative}.nav-dropdown__trigger{font:inherit;color:var(--color-text);border-radius:var(--radius);cursor:pointer;background:0 0;border:none;padding:.5rem .6rem}.nav-dropdown__trigger:hover,.nav-dropdown__trigger[aria-expanded=true]{background:var(--color-bg)}.nav-dropdown__menu{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-direction:column;min-width:160px;margin-top:.25rem;padding:.25rem;display:flex;position:absolute;top:100%;left:0;box-shadow:0 6px 16px #0f172a1a}.nav-dropdown__menu a{border-radius:var(--radius);color:var(--color-text);padding:.5rem .6rem}.nav-dropdown__menu a:hover{background:var(--color-bg);text-decoration:none}button,.button{font:inherit;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius);cursor:pointer;padding:.5rem .9rem}button:hover{background:var(--color-bg)}button:disabled{opacity:.6;cursor:not-allowed}.button--primary,button[type=submit]{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.button--primary:hover,button[type=submit]:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}form{flex-direction:column;gap:1rem;max-width:420px;display:flex}label{color:var(--color-text-muted);flex-direction:column;gap:.35rem;font-weight:500;display:flex}input{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:.5rem .65rem}input:focus{outline:2px solid var(--color-primary);outline-offset:1px}.checkbox-label{color:var(--color-text);flex-direction:row;align-items:center;gap:.5rem}.checkbox-label input{width:auto}.autocomplete{max-width:320px;position:relative}.autocomplete__menu{z-index:10;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);max-height:240px;margin:.25rem 0 0;padding:.25rem;list-style:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 6px 16px #0f172a1a}.autocomplete__menu li{display:block}.autocomplete__menu button{text-align:left;border-radius:var(--radius);background:0 0;border:none;width:100%;padding:.4rem .5rem;display:block}.autocomplete__menu button:hover{background:var(--color-bg)}.autocomplete__status{color:var(--color-text-muted);padding:.4rem .5rem}dl{grid-template-columns:max-content 1fr;gap:.5rem 1.5rem;max-width:480px;margin:0 0 1.5rem;display:grid}dt{color:var(--color-text-muted)}dd{margin:0}table{border-collapse:collapse;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);width:100%;overflow:hidden}th,td{text-align:left;border-bottom:1px solid var(--color-border);padding:.6rem .75rem}th{background:var(--color-bg);color:var(--color-text-muted);font-weight:600}tbody tr:last-child td{border-bottom:none}[role=alert]{color:var(--color-danger)}.data-table{flex-direction:column;gap:.75rem;display:flex}.data-table__toolbar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;padding:.6rem .9rem;display:flex}.data-table__summary{color:var(--color-text-muted);font-weight:500}.data-table__actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.data-table__bulk-actions,.data-table__export{flex-wrap:wrap;gap:.4rem;display:flex}.data-table__page-size{color:var(--color-text-muted);flex-direction:row;align-items:center;gap:.4rem;font-weight:500;display:flex}.data-table__page-size select{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);padding:.35rem .5rem}.data-table__sort{font:inherit;color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:0;font-weight:600}.data-table__sort:hover{color:var(--color-text);background:0 0}.role-permission-row{align-items:center;gap:.5rem;margin-bottom:.5rem;display:flex}.cra-table-wrapper{margin-bottom:1rem;overflow-x:auto}.cra-table{width:auto}.cra-table th,.cra-table td{text-align:center;white-space:nowrap;padding:.3rem .4rem}.cra-table th:first-child,.cra-table td:first-child{text-align:left}.cra-table select{width:3.5rem;padding:.2rem}.cra-table__weekend{background:var(--color-bg);color:var(--color-text-muted)}.cra-table__conge td{color:var(--color-text-muted);font-style:italic}.cra-table__totals{font-weight:600}.cra-table__incoherent{color:var(--color-danger);font-weight:700}.cra-synthese__ligne{margin-bottom:1rem}.cra-synthese__ligne dt{color:var(--color-text);margin-bottom:.35rem;font-weight:600}.cra-synthese__ligne textarea{width:100%;max-width:480px;font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);color:var(--color-text);padding:.5rem .65rem}.pagination{flex-wrap:wrap;align-items:center;gap:.25rem;display:flex}.pagination button{padding:.35rem .6rem}.pagination__current{border-radius:var(--radius);background:var(--color-primary);color:#fff;padding:.35rem .6rem;font-weight:600}.pagination__info{color:var(--color-text-muted);margin-left:auto}
