:root{--color-primary:#1e7e34;--color-primary-dark:#155d26;--color-primary-light:#e8f5ec;--color-accent:#28a745;--color-bg:#f4f5f7;--color-surface:#fff;--color-border:#e2e5e9;--color-text:#212529;--color-text-muted:#6c757d;--color-success:#1e7e34;--color-warning:#b8860b;--color-danger:#c82333;--color-info:#0b6ea8;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 14px #00000014;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--font-family:"Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{font-family:var(--font-family);background:var(--color-bg);color:var(--color-text);margin:0;font-size:15px;line-height:1.5}h1,h2,h3,h4{margin:0 0 var(--space-3);font-weight:700}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.app-header{background:var(--color-surface);box-shadow:var(--shadow-sm);z-index:50;position:sticky;top:0}.app-header__inner{max-width:1240px;padding:var(--space-3) var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-4);margin:0 auto;display:flex}.app-logo{color:var(--color-text);letter-spacing:-.5px;font-size:22px;font-weight:800}.app-logo .dot{color:var(--color-primary)}.app-header__right{align-items:center;gap:var(--space-4);display:flex}.app-account{text-align:right;line-height:1.2}.app-account__name{text-transform:uppercase;font-size:13.5px;font-weight:700}.app-account__role{color:var(--color-text-muted);font-size:12.5px}.app-nav{gap:var(--space-4);display:flex}.app-nav a{color:var(--color-text-muted);font-size:14px;font-weight:600}.app-nav a.active,.app-nav a:hover{color:var(--color-primary);text-decoration:none}.app-main{max-width:1240px;padding:var(--space-5);margin:0 auto}.page-head{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.page-head h1{margin:0;font-size:26px}.stats-grid{gap:var(--space-4);margin-bottom:var(--space-5);grid-template-columns:repeat(auto-fit,minmax(230px,1fr));display:grid}.stat-tile{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--space-4) var(--space-5);align-items:center;gap:var(--space-4);border:1px solid #0000;transition:box-shadow .15s,transform .15s;display:flex}.stat-tile:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.stat-tile__icon{background:var(--color-primary-light);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:21px;display:flex}.stat-tile__icon--blue{background:#e3f1f9}.stat-tile__icon--amber{background:#fdf3d7}.stat-tile__icon--gray{background:#eef0f2}.stat-tile__value{color:var(--color-text);font-size:24px;font-weight:800;line-height:1.1}.stat-tile__label{color:var(--color-text-muted);font-size:13px;font-weight:600}.stat-tile__sub{color:var(--color-text-muted);margin-top:2px;font-size:12px}.stat-chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.card-head{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap;display:flex}.card-head h3{margin:0;font-size:17px}.card-head__count{color:var(--color-text-muted);background:var(--color-bg);border-radius:999px;margin-left:8px;padding:2px 10px;font-size:13px;font-weight:600}.cell-title{color:var(--color-text);font-weight:700}.cell-title a{color:var(--color-text)}.cell-title a:hover{color:var(--color-primary)}.cell-sub{color:var(--color-text-muted);margin-top:2px;font-size:12.5px}.icon-btn{border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;color:var(--color-text-muted);background:0 0;border:1px solid #0000;justify-content:center;align-items:center;font-size:15px;transition:background .15s,color .15s;display:inline-flex}.icon-btn:hover{background:var(--color-bg);color:var(--color-text)}.icon-btn--danger:hover{color:var(--color-danger);background:#fde7ea}.event-banner{border:1px solid var(--color-primary);color:var(--color-primary);border-radius:var(--radius-sm);margin-bottom:var(--space-5);padding:8px 22px;font-weight:600;display:inline-block}.event-banner--closed{border-color:var(--color-danger);color:var(--color-danger)}.event-section-title{color:var(--color-primary);margin:var(--space-5) 0 var(--space-2);font-size:17px}.event-consignes{white-space:pre-line}.template-link{align-items:center;gap:var(--space-2);margin-top:var(--space-4);font-weight:600;display:inline-flex}.actions-row{gap:var(--space-2);flex-wrap:wrap;display:flex}.form-grid{gap:0 var(--space-4);grid-template-columns:1fr 1fr;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=700px){.form-grid{grid-template-columns:1fr}}.login-wrap{max-width:420px;margin:8vh auto}.tabs{gap:var(--space-2);border-bottom:2px solid var(--color-border);margin-bottom:var(--space-5);display:flex}.tabs button{font:inherit;cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;border-bottom:3px solid #0000;margin-bottom:-2px;padding:10px 16px;font-weight:600}.tabs button.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.detail-list{gap:var(--space-3);display:grid}.detail-list dt{color:var(--color-text-muted);font-size:13px;font-weight:700}.detail-list dd{white-space:pre-line;margin:2px 0 0}svg.lucide{vertical-align:-2px;flex-shrink:0}.ui-upload__hint{align-items:center;gap:8px;display:inline-flex}.ui-upload__file{align-items:center;gap:6px;display:inline-flex}.ui-btn{align-items:center;gap:var(--space-2);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;border:1px solid #0000;padding:9px 18px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.ui-btn:disabled{opacity:.55;cursor:not-allowed}.ui-btn--primary{background:var(--color-primary);color:#fff}.ui-btn--primary:hover:not(:disabled){background:var(--color-primary-dark)}.ui-btn--secondary{color:var(--color-primary);border-color:var(--color-primary);background:#fff}.ui-btn--secondary:hover:not(:disabled){background:var(--color-primary-light)}.ui-btn--danger{background:var(--color-danger);color:#fff}.ui-btn--ghost{color:var(--color-text-muted);background:0 0}.ui-btn--ghost:hover:not(:disabled){color:var(--color-text);background:var(--color-bg)}.ui-btn--sm{padding:5px 12px;font-size:13px}.ui-field{margin-bottom:var(--space-4);flex-direction:column;gap:5px;display:flex}.ui-field__label{color:var(--color-text);font-size:13.5px;font-weight:600}.ui-field__label .req{color:var(--color-danger);margin-left:2px}.ui-field__input,.ui-field textarea,.ui-field select{border:1px solid var(--color-border);border-radius:var(--radius-sm);width:100%;color:var(--color-text);background:#fff;outline:none;padding:9px 12px;font-family:inherit;font-size:14px;transition:border-color .15s,box-shadow .15s}.ui-field__input:focus,.ui-field textarea:focus,.ui-field select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #1e7e341f}.ui-field--error .ui-field__input,.ui-field--error textarea,.ui-field--error select{border-color:var(--color-danger)}.ui-field__error{color:var(--color-danger);font-size:12.5px}.ui-field__hint{color:var(--color-text-muted);font-size:12.5px}.ui-password{position:relative}.ui-password .ui-field__input{padding-right:42px}.ui-password__toggle{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;padding:4px;font-size:16px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.ui-search-select{position:relative}.ui-search-select__control{border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;background:#fff;flex-wrap:wrap;align-items:center;gap:4px;min-height:40px;padding:5px 32px 5px 8px;display:flex}.ui-search-select__control:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px #1e7e341f}.ui-search-select__input{border:none;outline:none;flex:1;min-width:60px;padding:4px;font-family:inherit;font-size:14px}.ui-search-select__value{padding:4px;font-size:14px}.ui-search-select__placeholder{color:var(--color-text-muted)}.ui-search-select__arrow{color:var(--color-text-muted);pointer-events:none;font-size:11px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.ui-search-select__menu{z-index:30;border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);background:#fff;max-height:230px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.ui-search-select__option{cursor:pointer;padding:9px 12px;font-size:14px}.ui-search-select__option:hover{background:var(--color-primary-light)}.ui-search-select__option--selected{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.ui-search-select__empty{color:var(--color-text-muted);padding:10px 12px;font-size:13.5px}.ui-search-select__tag{background:var(--color-primary-light);color:var(--color-primary-dark);border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:13px;font-weight:600;display:inline-flex}.ui-search-select__tag button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-size:13px;line-height:1}.ui-upload{border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);text-align:center;cursor:pointer;color:var(--color-text-muted);background:#fff;transition:border-color .15s,background .15s}.ui-upload:hover,.ui-upload--drag{border-color:var(--color-primary);background:var(--color-primary-light)}.ui-upload__file{color:var(--color-primary-dark);font-weight:600}.ui-table-wrap{overflow-x:auto}.ui-table{border-collapse:collapse;background:var(--color-surface);width:100%;font-size:14px}.ui-table th{text-align:left;border-bottom:2px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:12px 14px;font-weight:700}.ui-table th.sortable{cursor:pointer}.ui-table th.sortable:hover{color:var(--color-primary)}.ui-table td{border-bottom:1px solid var(--color-border);vertical-align:middle;padding:11px 14px}.ui-table tbody tr:hover{background:#fafbfc}.ui-table__empty{text-align:center;color:var(--color-text-muted);padding:var(--space-6)!important}.ui-table-toolbar{justify-content:space-between;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.ui-table-toolbar .ui-field{max-width:280px;margin-bottom:0}.ui-table-pagination{justify-content:flex-end;align-items:center;gap:var(--space-3);padding-top:var(--space-3);color:var(--color-text-muted);font-size:13.5px;display:flex}.ui-modal-backdrop{padding:6vh var(--space-4);z-index:100;background:#14181c80;justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0;overflow-y:auto}.ui-modal{border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:#fff;width:100%;max-width:620px;animation:.15s ease-out ui-modal-in}.ui-modal--lg{max-width:860px}@keyframes ui-modal-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.ui-modal__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.ui-modal__header h3{margin:0;font-size:17px}.ui-modal__close{cursor:pointer;color:var(--color-text-muted);background:0 0;border:none;font-size:20px}.ui-modal__body{padding:var(--space-5)}.ui-modal__footer{justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);display:flex}.ui-badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700;display:inline-block}.ui-badge--success{color:var(--color-success);background:#e6f4ea}.ui-badge--warning{color:var(--color-warning);background:#fdf3d7}.ui-badge--danger{color:var(--color-danger);background:#fde7ea}.ui-badge--info{color:var(--color-info);background:#e3f1f9}.ui-badge--neutral{color:var(--color-text-muted);background:#ecedef}.ui-breadcrumb{align-items:center;gap:var(--space-2);color:var(--color-text-muted);font-size:13.5px;display:flex}.ui-breadcrumb__sep{color:var(--color-border)}.ui-breadcrumb__current{color:var(--color-text);font-weight:600}.ui-card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-5)}.ui-card__title{margin-bottom:var(--space-4);color:var(--color-primary);font-size:16px}.ui-spinner{border:3px solid var(--color-primary-light);border-top-color:var(--color-primary);width:26px;height:26px;margin:var(--space-5) auto;border-radius:50%;animation:.7s linear infinite ui-spin}@keyframes ui-spin{to{transform:rotate(360deg)}}.ui-toast-container{top:var(--space-4);right:var(--space-4);z-index:200;gap:var(--space-2);flex-direction:column;display:flex;position:fixed}.ui-toast{border-radius:var(--radius-sm);color:#fff;box-shadow:var(--shadow-md);max-width:380px;padding:12px 18px;font-size:14px;font-weight:600;animation:.2s ease-out ui-modal-in}.ui-toast--success{background:var(--color-success)}.ui-toast--error{background:var(--color-danger)}.ui-toast--info{background:var(--color-info)}
