:root{--dash-gap: 2rem;--dash-radius: 18px;--dash-bg: linear-gradient(135deg,#0f4c81 0%,#1c6fa6 50%,#2196f3 100%);--card-bg: #ffffffcc;--card-blur: 12px;--transition: .14s cubic-bezier(.4,0,.2,1)}.dashboard-wrapper{padding:var(--dash-gap);min-height:calc(100vh - 64px);background:transparent;display:flex;flex-direction:column;gap:var(--dash-gap);position:relative;overflow:visible;box-shadow:none;border-radius:0}.dashboard-wrapper:before,.dashboard-wrapper:after{display:none}.dash-header{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.dash-header img.logo{height:56px;filter:drop-shadow(0 4px 6px rgba(0,0,0,.25))}.dash-header h1{color:#fff;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:600;letter-spacing:.5px;margin:0}.tiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--dash-gap);align-items:stretch}.dash-card{background:#fffe;border:1px solid #e2e8f0;border-radius:12px;padding:1.25rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.85rem;transition:box-shadow .18s ease,transform .18s ease}.dash-card:hover{box-shadow:0 6px 18px -4px #00000040;transform:translateY(-4px)}.dash-card h2{margin:0;font-size:1.25rem;font-weight:600;color:#0f4c81;letter-spacing:.5px}.dash-actions{display:flex;justify-content:center}.dash-actions a,.dash-actions button{font-weight:600;letter-spacing:.5px}.footer-hint{text-align:center;color:#eef7ff;font-size:.85rem;margin-top:auto;opacity:.8}.mode-light .footer-hint{color:#2f4b5d;opacity:.85}.mode-dark .footer-hint{color:#eef7ff}@media (max-width:640px){.dash-card{padding:1.1rem 1.1rem 1.4rem}.dash-header img.logo{height:48px}}:root{--portal-primary: #1565c0;--portal-primary-light: #1976d2;--portal-primary-dark: #0d4f99;--portal-accent: #4caf50;--portal-accent-light: #81c784;--portal-accent-dark: #388e3c;--portal-bg: #f5f7fa;--portal-white: #ffffff;--portal-text: #1a2744;--portal-text-light: #6b7a99;--portal-border: #e0e4ec;--portal-success: #2e7d32;--portal-warning: #ed6c02;--portal-error: #d32f2f;--portal-info: #1565c0;--portal-radius: 6px;--portal-shadow: 0 2px 8px rgba(26, 39, 68, .08);--portal-shadow-hover: 0 4px 16px rgba(26, 39, 68, .14)}.portal-layout{min-height:100vh;background:var(--portal-bg)}.portal-header{background:linear-gradient(135deg,var(--portal-primary),var(--portal-primary-dark));color:var(--portal-white);display:flex;align-items:center;height:64px;padding:0 24px;position:sticky;top:0;z-index:1100;box-shadow:0 2px 8px #00000026}.portal-header-logo{height:40px;object-fit:contain;margin-right:24px}.portal-header-title{font-size:1.1rem;font-weight:600;color:var(--portal-white);margin-right:40px;white-space:nowrap}.portal-header-nav{display:flex;gap:4px;align-items:center;flex:1}.portal-header-nav a,.portal-header-nav button{color:#ffffffbf;text-decoration:none;font-size:.9rem;font-weight:500;padding:8px 16px;border-radius:4px;border:none;background:none;cursor:pointer;transition:all .2s;position:relative}.portal-header-nav a:hover,.portal-header-nav button:hover{color:var(--portal-white);background:#ffffff14}.portal-header-nav a.active,.portal-header-nav button.active{color:var(--portal-white)}.portal-header-nav a.active:after,.portal-header-nav button.active:after{content:"";position:absolute;bottom:0;left:16px;right:16px;height:3px;background:var(--portal-accent);border-radius:3px 3px 0 0}.portal-header-user{display:flex;align-items:center;gap:12px;margin-left:auto}.portal-header-role{font-size:.75rem;background:var(--portal-accent);padding:3px 10px;border-radius:4px;color:#0d1d2b;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.portal-header-username{font-size:.85rem;font-weight:500;color:#ffffffe6}.portal-btn-icon{background:none;border:none;cursor:pointer;color:#fff9;padding:6px;border-radius:50%;transition:all .2s;display:flex;align-items:center}.portal-btn-icon:hover{color:var(--portal-white);background:#ffffff1a}.portal-content{max-width:1200px;margin:0 auto;padding:24px}.portal-card{background:var(--portal-white);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow);padding:24px;margin-bottom:20px}.portal-card-title{font-size:1.1rem;font-weight:600;color:var(--portal-text);margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--portal-border)}.portal-table{width:100%;border-collapse:collapse;font-size:.875rem}.portal-table th{background:var(--portal-primary);color:var(--portal-white);padding:10px 14px;text-align:left;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.portal-table th:first-child{border-radius:var(--portal-radius) 0 0 0}.portal-table th:last-child{border-radius:0 var(--portal-radius) 0 0}.portal-table td{padding:10px 14px;border-bottom:1px solid var(--portal-border);color:var(--portal-text);vertical-align:middle}.portal-table tbody tr{cursor:pointer;transition:background .15s}.portal-table tbody tr:hover{background:#f0f4ff}.portal-chip{display:inline-block;padding:3px 10px;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.portal-chip-brouillon{background:#f5f5f5;color:#757575}.portal-chip-soumise{background:#e3f2fd;color:#1565c0}.portal-chip-enregistree{background:#e1f5fe;color:#0288d1}.portal-chip-en-revue{background:#fff3e0;color:#e65100}.portal-chip-decision{background:#fff8e1;color:#f57f17}.portal-chip-validee{background:#e8f5e9;color:#2e7d32}.portal-chip-projet{background:#e8f5e9;color:#1b5e20}.portal-chip-mco{background:#ede7f6;color:#4527a0}.portal-chip-rejetee{background:#ffebee;color:#c62828}.portal-chip-archivee{background:#eceff1;color:#546e7a}.portal-chip-draft{background:#f5f5f5;color:#757575}.portal-chip-submitted{background:#e3f2fd;color:#1565c0}.portal-chip-review{background:#e1f5fe;color:#0288d1}.portal-chip-analysis{background:#fff3e0;color:#e65100}.portal-chip-info-required{background:#fff8e1;color:#f57f17}.portal-chip-approved{background:#e8f5e9;color:#2e7d32}.portal-chip-cancelled{background:#ffebee;color:#c62828}.portal-chip-archived{background:#eceff1;color:#546e7a}.portal-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:var(--portal-radius);font-size:.875rem;font-weight:600;cursor:pointer;border:none;transition:all .2s}.portal-btn-primary{background:var(--portal-accent);color:#0d1d2b}.portal-btn-primary:hover{background:var(--portal-accent-dark);box-shadow:var(--portal-shadow-hover)}.portal-btn-secondary{background:transparent;color:var(--portal-primary);border:1px solid var(--portal-primary)}.portal-btn-secondary:hover{background:#1565c00a}.portal-btn-danger{background:transparent;color:var(--portal-error);border:1px solid var(--portal-error)}.portal-btn-danger:hover{background:#d32f2f0f}.portal-btn:disabled{opacity:.5;cursor:not-allowed}.portal-form-group{margin-bottom:16px}.portal-form-label{display:block;font-size:.8rem;font-weight:600;color:var(--portal-text);margin-bottom:4px;text-transform:uppercase;letter-spacing:.03em}.portal-form-label.required:after{content:" *";color:var(--portal-error)}.portal-form-input,.portal-form-select,.portal-form-textarea{width:100%;padding:8px 12px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);font-size:.875rem;color:var(--portal-text);background:var(--portal-white);transition:border-color .2s;box-sizing:border-box}.portal-form-input:focus,.portal-form-select:focus,.portal-form-textarea:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 2px #1565c01a}.portal-form-input.error,.portal-form-select.error,.portal-form-textarea.error{border-color:var(--portal-error)}.portal-form-textarea{resize:vertical;min-height:80px}.portal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}.portal-pagination{display:flex;align-items:center;justify-content:center;gap:8px;padding:16px 0}.portal-pagination button{padding:6px 12px;border:1px solid var(--portal-border);background:var(--portal-white);border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .15s}.portal-pagination button:hover:not(:disabled){background:var(--portal-primary);color:var(--portal-white);border-color:var(--portal-primary)}.portal-pagination button:disabled{opacity:.4;cursor:not-allowed}.portal-pagination .current{font-weight:700;color:var(--portal-primary)}.portal-alert{padding:12px 16px;border-radius:var(--portal-radius);margin-bottom:16px;font-size:.875rem}.portal-alert-error{background:#ffebee;color:var(--portal-error);border:1px solid #ffcdd2}.portal-alert-success{background:#e8f5e9;color:var(--portal-success);border:1px solid #c8e6c9}.portal-alert-info{background:#e3f2fd;color:var(--portal-info);border:1px solid #bbdefb}.portal-loading{display:flex;align-items:center;justify-content:center;padding:48px;color:var(--portal-text-light);font-size:.9rem}.portal-empty{text-align:center;padding:48px 24px;color:var(--portal-text-light)}.portal-empty h3{font-size:1.1rem;margin-bottom:8px;color:var(--portal-text)}.portal-back-link{display:inline-flex;align-items:center;gap:4px;color:var(--portal-primary);text-decoration:none;font-size:.875rem;font-weight:500;margin-bottom:16px}.portal-back-link:hover{text-decoration:underline}.portal-tabs{background:var(--portal-white);border-radius:var(--portal-radius);box-shadow:var(--portal-shadow)}.portal-tabs-header{display:flex;overflow-x:auto;overflow-y:visible;border-bottom:2px solid var(--portal-border);background:#fafbfc;border-radius:var(--portal-radius) var(--portal-radius) 0 0;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:1px}.portal-tabs-header::-webkit-scrollbar{display:none}.portal-tab-btn{padding:12px 18px;border:none;background:none;font-size:.82rem;font-weight:500;color:var(--portal-text-light);cursor:pointer;white-space:nowrap;border-bottom:3px solid transparent;transition:color .2s,border-color .2s}.portal-tab-btn:hover{color:var(--portal-primary)}.portal-tab-btn-active{color:var(--portal-primary);border-bottom-color:var(--portal-primary);font-weight:600}.portal-tab-content{padding:20px 24px}.portal-table{width:100%;border-collapse:collapse;font-size:.84rem}.portal-table th{text-align:left;padding:10px 12px;font-weight:600;color:var(--portal-white);background:var(--portal-primary);border-bottom:2px solid var(--portal-border);font-size:.78rem;text-transform:uppercase;letter-spacing:.03em}.portal-table td{padding:10px 12px;border-bottom:1px solid var(--portal-border);color:var(--portal-text)}.portal-table tbody tr:hover{background:#f8f9fb}.portal-table-total td{border-top:2px solid var(--portal-border);border-bottom:none;background:#fafbfc}.portal-sub-item{padding:12px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);margin-bottom:8px}.portal-sub-item:hover{box-shadow:var(--portal-shadow)}.portal-empty-state{color:var(--portal-text-light);font-size:.85rem;margin:0;padding:12px 0}.portal-inline-form{margin-top:16px;padding:16px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);background:#fafbfc}.portal-inline-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:.9rem}.portal-form-label{display:block;font-size:.75rem;font-weight:600;color:var(--portal-text-light);text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px}.portal-form-input{width:100%;padding:8px 10px;border:1px solid var(--portal-border);border-radius:var(--portal-radius);font-size:.85rem;color:var(--portal-text);background:var(--portal-white);box-sizing:border-box}.portal-form-input:focus{outline:none;border-color:var(--portal-primary);box-shadow:0 0 0 2px #1565c01a}.portal-btn-icon-sm{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border:none;border-radius:50%;background:transparent;color:var(--portal-error);font-size:1.1rem;font-weight:700;cursor:pointer;transition:background .15s}.portal-btn-icon-sm:hover{background:#ffebee}.portal-btn-edit-sm{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--portal-primary);border-radius:6px;background:transparent;color:var(--portal-primary);cursor:pointer;transition:background .2s;flex-shrink:0}.portal-btn-edit-sm:hover{background:#1565c00a}.portal-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:11px;font-size:.72rem;font-weight:700;line-height:1}.portal-badge-success{background:#e8f5e9;color:#2e7d32}.portal-badge-warning{background:#fff3e0;color:#e65100}.portal-tab{padding:8px 16px;border:none;background:none;font-size:.85rem;font-weight:500;color:var(--portal-text-light, #607d8b);cursor:pointer;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}.portal-tab:hover{color:var(--portal-primary, #1565c0)}.portal-tab-active{color:var(--portal-primary, #1565c0);border-bottom-color:var(--portal-primary, #1565c0);font-weight:600}.col-filter-btn{display:inline-flex;align-items:center;justify-content:center;padding:2px 4px;border:none;background:transparent;cursor:pointer;border-radius:3px;line-height:1;transition:background .15s}.col-filter-btn:hover{background:#ffffff26}.col-filter-panel{position:fixed;background:var(--portal-white);border:1px solid var(--portal-border);border-radius:var(--portal-radius);box-shadow:0 4px 16px #1a274429;padding:12px;min-width:200px;z-index:9999}html,body,#root{height:100%}html.mode-light{background-color:#f5f7fa!important;background-image:var(--portal-bg-image, none)!important;background-size:cover!important;background-position:center center!important;background-attachment:fixed!important;background-repeat:no-repeat!important}html.mode-dark{background:#0c1218!important}html{--color-primary:#1565c0 !important;color-scheme:light;background-color:#f5f7fa}h1{color:var(--color-primary)!important}.RaAppBar-root,.MuiAppBar-root{background:var(--color-primary)!important;background-image:linear-gradient(135deg,#1565c0,#0d4f99)!important;color:#fff!important;box-shadow:0 2px 6px -1px #0006,0 4px 12px -2px #00000040!important;z-index:1100}.RaAppBar-root .MuiIconButton-root,.MuiAppBar-root .MuiIconButton-root,.RaAppBar-root .MuiButtonBase-root.MuiButton-root,.MuiAppBar-root .MuiButtonBase-root.MuiButton-root{color:#fff!important}body{margin:0;-webkit-font-smoothing:antialiased;background:transparent!important;position:relative;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:#13293d;min-height:100vh}html.mode-light.has-bg-image body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#ffffff73;backdrop-filter:blur(.5px);-webkit-backdrop-filter:blur(.5px);z-index:0;pointer-events:none}body.mode-dark:before,html.mode-dark body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;backdrop-filter:none;-webkit-backdrop-filter:none;z-index:0}.RaLayout-root,.RaLayout-content,.RaLayout-appFrame{background:transparent!important}.RaLayout-appFrame{margin-top:64px!important}html.backoffice-active,html.backoffice-active.mode-light{background-color:#f0f2f5!important;background-image:none!important}html.backoffice-active body:before,html.backoffice-active.mode-light body:before{display:none!important}html.backoffice-active .RaSidebar-root,html.backoffice-active .RaSidebar-root .MuiDrawer-paper,html.backoffice-active .MuiDrawer-root .MuiPaper-root{background:#fff!important;background-color:#fff!important}html.mode-dark .dash-card{background:#1e2730!important;color:#e2e8f0}html.mode-light .dash-card{background:#ffffffeb!important}button,.MuiButton-containedPrimary{border-radius:6px}html.mode-dark .dash-card h2{color:#fff}html.mode-light .dash-card h2{color:var(--color-primary)}html.mode-dark h1,html.mode-dark h2,html.mode-dark h3,html.mode-dark h4,html.mode-dark h5{color:#f1f5f9!important}html.mode-dark body{color:#d2d9e0}html.mode-dark a{color:#64b5f6}html.backoffice-active #root>div{background:transparent!important}#root>*{position:relative;z-index:1}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:#ffffff1a}::-webkit-scrollbar-thumb{background:#0000004d;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#00000073}.RaNotification-root,.MuiSnackbar-root,.MuiSnackbar-anchorOriginBottomLeft,.MuiSnackbar-anchorOriginBottomCenter,.MuiSnackbar-anchorOriginBottomRight{position:fixed!important;top:80px!important;right:24px!important;bottom:auto!important;left:auto!important;z-index:2000!important;transform:none!important}.MuiSnackbar-anchorOriginTopRight{top:80px!important;right:24px!important;z-index:2000!important}.MuiSnackbar-root[class*=anchorOrigin]{top:80px!important;right:24px!important;bottom:auto!important;left:auto!important;transform:none!important}.MuiAlert-filledError,.MuiAlert-standardError{background-color:#d32f2f!important;color:#fff!important;font-weight:600!important;box-shadow:0 4px 12px #d32f2f4d!important}.MuiSnackbarContent-root{min-width:350px!important;max-width:500px!important;font-size:.95rem!important}
