:root{--nils-color-brand:var(--color-primary);--nils-color-brand-hover:var(--color-primary-hover);--nils-color-action:var(--color-primary);--nils-color-action-hover:var(--color-primary-hover);--nils-color-background:var(--color-background);--nils-color-background-secondary:var(--color-background-secondary);--nils-color-surface:var(--color-surface);--nils-color-surface-raised:#fff;--nils-color-border:var(--color-border);--nils-color-border-strong:#b8c6d4;--nils-color-text:var(--color-text);--nils-color-text-secondary:var(--color-text-secondary);--nils-color-text-inverse:#fff;--nils-color-success:#278568;--nils-color-success-soft:#e7f4ef;--nils-color-warning:#9a650e;--nils-color-warning-strong:#d99a32;--nils-color-warning-soft:#fff4dd;--nils-color-error:#b64047;--nils-color-error-strong:#c65358;--nils-color-error-soft:#fbeaec;--nils-color-info:#285d7c;--nils-color-info-soft:#e5f0f8;--nils-color-disabled:#94a3b3;--nils-color-disabled-soft:#edf1f5;--nils-color-focus:#356b94;--nils-focus-ring:0 0 0 3px #356b943d;--nils-color-primary:var(--nils-color-brand);--nils-color-secondary:var(--nils-color-brand-hover);--nils-color-lichen:var(--nils-color-action);--nils-color-accent-light:var(--nils-color-info-soft);--nils-color-important:var(--nils-color-action);--nils-color-sand:var(--nils-color-border);--nils-color-beige:var(--nils-color-background-secondary);--nils-color-card:var(--nils-color-surface);--nils-shadow-xs:0 1px 2px #192b430f;--nils-shadow-sm:0 4px 14px #192b4314;--nils-shadow-md:0 12px 30px #192b431f;--nils-shadow-drawer:14px 0 38px #11203347;--nils-space-1:4px;--nils-space-2:8px;--nils-space-3:12px;--nils-space-4:16px;--nils-space-5:20px;--nils-space-6:24px;--nils-space-8:32px;--nils-space-10:40px;--nils-radius-sm:6px;--nils-radius-md:9px;--nils-radius-lg:12px;--nils-radius-pill:999px;--nils-control-height:40px;--nils-font-family:"Segoe UI", Arial, Helvetica, sans-serif;--nils-font-size-xs:12px;--nils-font-size-sm:13px;--nils-font-size-base:14px;--nils-font-size-lg:18px;--nils-font-size-page-title:28px;--nils-line-height:1.5;--nils-font-weight-medium:600;--nils-font-weight-bold:700;--nils-transition-fast:.15s ease}:root[data-app-theme=nils]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-primary:#192b43;--color-primary-hover:#285678;--color-secondary:#356b94;--color-accent-light:#e5f0f8;--color-accent:#356b94;--color-accent-hover:#285678;--color-sand:#d8e1ea;--color-beige:#f3f6fa;--color-background:#f3f6fa;--color-background-secondary:#eaf0f6;--color-surface:#fff;--color-border:#d8e1ea;--color-text:#1f2937;--color-text-secondary:#66778a;--color-layout-primary:#192b43;--color-layout-secondary:#356b94;--color-login-primary:#192b43;--color-login-accent:#356b94}:root[data-app-theme=generic]{--color-primary:#243447;--color-primary-hover:#354a60;--color-accent:#4b6478;--color-accent-hover:#3c5265;--color-background:#f4f6f8;--color-background-secondary:#f7f8fa;--color-surface:#fff;--color-border:#dfe4e8;--color-text:#253443;--color-text-secondary:#667686;--color-layout-primary:#243447;--color-layout-secondary:#4b6478;--color-login-primary:#243447;--color-login-accent:#4b6478}[data-app-theme=generic] .v4-reference{--nils-navy:var(--color-primary);--nils-red:var(--color-accent);--nils-bg:var(--color-background);--nils-border:var(--color-border);--nils-muted:var(--color-text-secondary)}[data-app-theme=generic] .nouvelle-interface{--nils-bleu:var(--color-primary);--nils-bleu-2:var(--color-primary-hover);--nils-rouge:var(--color-accent);--nils-fond:var(--color-background);--nils-bordure:var(--color-border);--nils-texte:var(--color-text);--nils-texte-secondaire:var(--color-text-secondary)}.nils-page-header{justify-content:space-between;align-items:flex-start;gap:var(--nils-space-6);margin-bottom:var(--nils-space-8);display:flex}.nils-page-header__content{min-width:0}.nils-page-header__title{padding-bottom:var(--nils-space-3);color:var(--nils-color-primary);font-family:var(--nils-font-family);font-size:var(--nils-font-size-page-title);font-weight:var(--nils-font-weight-bold);margin:0;line-height:1.2;position:relative}.nils-page-header__title:after{background:var(--nils-color-important);content:"";border-radius:999px;width:42px;height:3px;position:absolute;bottom:0;left:0}.nils-page-header__subtitle{margin:var(--nils-space-2) 0 0;color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-base)}.nils-page-header__actions{align-items:center;gap:var(--nils-space-3);flex:none;display:flex}.nils-card{min-width:0;padding:var(--nils-space-6);border:1px solid var(--nils-color-border);border-radius:var(--nils-radius-md);background:var(--nils-color-card);box-shadow:var(--nils-shadow-xs)}.nils-card--compact{padding:var(--nils-space-4)}.nils-stat-card{justify-content:space-between;gap:var(--nils-space-3);flex-direction:column;min-height:128px;display:flex;position:relative;overflow:hidden}.nils-stat-card:before{background:var(--nils-stat-accent,var(--nils-color-border));content:"";width:3px;position:absolute;inset:0 auto 0 0}.nils-stat-card--info{--nils-stat-accent:var(--nils-color-info)}.nils-stat-card--success{--nils-stat-accent:var(--nils-color-success)}.nils-stat-card--warning{--nils-stat-accent:var(--nils-color-warning)}.nils-stat-card--alert{--nils-stat-accent:var(--nils-color-error-strong)}.nils-stat-card__label{color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-sm);font-weight:var(--nils-font-weight-medium)}.nils-stat-card__value-row{align-items:baseline;gap:var(--nils-space-2);display:flex}.nils-stat-card__value{color:var(--nils-color-primary);font-size:28px;font-weight:var(--nils-font-weight-bold);line-height:1}.nils-stat-card__unit,.nils-stat-card__secondary{color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-sm)}.nils-button{min-height:var(--nils-control-height);padding:0 var(--nils-space-4);border-radius:var(--nils-radius-sm);font-family:var(--nils-font-family);font-size:14px;font-weight:var(--nils-font-weight-medium);cursor:pointer;transition:background-color var(--nils-transition-fast), border-color var(--nils-transition-fast), box-shadow var(--nils-transition-fast), color var(--nils-transition-fast);border:1px solid #0000;justify-content:center;align-items:center;line-height:1;text-decoration:none;display:inline-flex}.nils-button:disabled{cursor:not-allowed;border-color:var(--nils-color-disabled-soft);background:var(--nils-color-disabled-soft);color:var(--nils-color-disabled);opacity:1}.nils-button--primary{background:var(--nils-color-action);color:var(--nils-color-text-inverse)}.nils-button--primary:hover{background:var(--nils-color-action-hover)}.nils-button--important{background:var(--nils-color-action);color:var(--nils-color-text-inverse)}.nils-button--important:hover{background:var(--nils-color-action-hover)}.nils-button--secondary{border-color:var(--nils-color-border-strong);background:var(--nils-color-surface);color:var(--nils-color-brand)}.nils-button--secondary:hover{background:var(--nils-color-background-secondary)}.nils-button--ghost{color:var(--nils-color-action);background:0 0}.nils-button--ghost:hover{background:var(--nils-color-background-secondary)}.nils-button--danger{background:var(--nils-color-error);color:var(--nils-color-text-inverse)}.nils-button--danger:hover{background:#93343a}.nils-button:focus-visible{box-shadow:var(--nils-focus-ring)}.nils-quick-actions,.nils-procurement-journey{border:1px solid var(--nils-color-border);border-radius:var(--nils-radius-md);background:var(--nils-color-surface);min-width:0;box-shadow:var(--nils-shadow-xs)}.nils-quick-actions{align-items:center;gap:var(--nils-space-3);padding:var(--nils-space-4);margin-bottom:var(--nils-space-6);display:flex}.nils-quick-actions h3{margin:0 var(--nils-space-2) 0 0;color:var(--nils-color-primary);font-size:var(--nils-font-size-sm);text-transform:uppercase;letter-spacing:.04em;flex:none}.nils-quick-actions__links{gap:var(--nils-space-2);flex-wrap:wrap;min-width:0;display:flex}.nils-procurement-journey{align-items:center;gap:var(--nils-space-3);grid-template-columns:auto minmax(0,1fr) auto;padding:10px 14px;display:grid}.nils-procurement-journey__label{color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-xs);font-weight:var(--nils-font-weight-bold);text-transform:uppercase;letter-spacing:.04em}.nils-procurement-journey ol{flex-wrap:wrap;align-items:center;gap:4px;min-width:0;margin:0;padding:0;list-style:none;display:flex}.nils-procurement-journey li{align-items:center;gap:4px;display:flex}.nils-procurement-journey li:not(:last-child):after{color:var(--nils-color-text-secondary);content:"›"}.nils-procurement-journey a{border-radius:var(--nils-radius-sm);color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-xs);font-weight:var(--nils-font-weight-medium);padding:5px 7px;text-decoration:none}.nils-procurement-journey a:hover,.nils-procurement-journey a:focus-visible{background:var(--nils-color-background-secondary);color:var(--nils-color-primary)}.nils-procurement-journey a[aria-current=step]{background:var(--nils-color-action);color:var(--nils-color-text-inverse)}.nils-procurement-journey small{color:var(--nils-color-text-secondary);text-align:right;font-size:11px}.nils-operation-chooser{margin:0 0 var(--nils-space-5);padding:var(--nils-space-4);border:1px solid var(--nils-color-border);border-radius:var(--nils-radius-md);background:var(--nils-color-surface)}.nils-operation-chooser h2{margin:0 0 var(--nils-space-3);color:var(--nils-color-primary);font-size:var(--nils-font-size-lg)}.nils-operation-chooser>div{gap:var(--nils-space-2);flex-wrap:wrap;display:flex}.nils-operation-chooser a{text-decoration:none}@media (width<=900px){.nils-procurement-journey{grid-template-columns:1fr}.nils-procurement-journey small{text-align:left}}@media (width<=620px){.nils-quick-actions{flex-direction:column;align-items:stretch}.nils-quick-actions__links{grid-template-columns:1fr;display:grid}.nils-procurement-journey ol{flex-direction:column;align-items:stretch}.nils-procurement-journey li{width:100%}.nils-procurement-journey li:after{display:none}.nils-procurement-journey a{width:100%}.nils-operation-chooser>div{grid-template-columns:1fr;display:grid}}.nils-dashboard{color:var(--nils-color-text);font-family:var(--nils-font-family)}.nils-dashboard__stats{gap:var(--nils-space-4);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.nils-dashboard__lower{gap:var(--nils-space-6);margin-top:var(--nils-space-8);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.nils-dashboard__section-title{margin:0 0 var(--nils-space-4);color:var(--nils-color-primary);font-size:var(--nils-font-size-lg);font-weight:var(--nils-font-weight-bold)}.nils-dashboard__empty{color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-base);margin:0}.nils-form-section__header{margin-bottom:var(--nils-space-6)}.nils-form-section__title{color:var(--nils-color-primary);font-size:var(--nils-font-size-lg);font-weight:var(--nils-font-weight-bold);margin:0}.nils-form-section__description{margin:var(--nils-space-2) 0 0;color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-sm)}.nils-field{gap:var(--nils-space-2);flex-direction:column;min-width:0;display:flex}.nils-field__label{color:var(--nils-color-text);font-size:14px;font-weight:var(--nils-font-weight-medium)}.nils-field input,.nils-field select,.nils-field textarea{width:100%;min-width:0;min-height:var(--nils-control-height);padding:0 var(--nils-space-3);border:1px solid var(--nils-color-border);border-radius:var(--nils-radius-sm);background:var(--nils-color-surface);color:var(--nils-color-text);font:inherit;outline:none}.nils-field textarea{min-height:96px;padding-top:var(--nils-space-3);padding-bottom:var(--nils-space-3);resize:vertical}.nils-field input:focus,.nils-field select:focus,.nils-field textarea:focus{border-color:var(--nils-color-primary);box-shadow:var(--nils-focus-ring)}.nils-receipt-page{width:100%;color:var(--nils-color-text);font-family:var(--nils-font-family)}.nils-receipt-page>.nils-card{width:100%;max-width:1280px}.nils-receipt-form{gap:var(--nils-space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.nils-receipt-form__wide,.nils-receipt-form__footer{grid-column:1/-1}.nils-receipt-form__wide textarea{min-height:80px}.nils-receipt-form__footer{justify-content:space-between;align-items:center;gap:var(--nils-space-4);padding-top:var(--nils-space-1);display:flex}.nils-form-message{font-size:14px;font-weight:var(--nils-font-weight-medium);margin:0}.nils-form-message--success{color:var(--nils-color-success)}.nils-form-message--error{color:var(--nils-color-error)}.nils-status-badge{white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:22px;padding:2px 8px;font-size:11px;font-weight:700;line-height:1.2;display:inline-flex}.nils-status-badge--neutral{border-color:var(--nils-color-border);background:var(--nils-color-background-secondary);color:var(--nils-color-text-secondary)}.nils-status-badge--success{background:var(--nils-color-success-soft);color:var(--nils-color-success)}.nils-status-badge--warning{background:var(--nils-color-warning-soft);color:var(--nils-color-warning)}.nils-status-badge--error{background:var(--nils-color-error-soft);color:var(--nils-color-error)}.nils-status-badge--info{background:var(--nils-color-info-soft);color:var(--nils-color-info)}.nils-status-badge--upcoming{border-color:var(--nils-color-border);background:var(--nils-color-background-secondary);color:var(--nils-color-text-secondary)}.nils-empty-state{border:1px dashed var(--nils-color-border);border-radius:var(--nils-radius-md);background:var(--nils-color-background-secondary);text-align:center;justify-items:center;gap:10px;padding:32px 20px;display:grid}.nils-empty-state__icon{background:var(--nils-color-surface);width:42px;height:42px;color:var(--nils-color-action);border-radius:50%;place-items:center;font-size:24px;display:grid}.nils-empty-state h3{color:var(--nils-color-primary);margin:0;font-size:16px}.nils-empty-state p{max-width:560px;color:var(--nils-color-text-secondary);margin:0}.nils-coming-soon-card{grid-template-columns:auto minmax(0,1fr);gap:24px;max-width:860px;display:grid}.nils-coming-soon-card__icon{background:var(--nils-color-background-secondary);width:64px;height:64px;color:var(--nils-color-primary);border-radius:12px;place-items:center;font-size:34px;display:grid}.nils-coming-soon-card h3{color:var(--nils-color-primary);margin:14px 0 8px;font-size:18px}.nils-coming-soon-card p{color:var(--nils-color-text-secondary);margin:0}.nils-coming-soon-card ul{color:var(--nils-color-text);gap:8px;margin:20px 0;padding-left:20px;display:grid}.nils-coming-soon-card__note{border-left:3px solid var(--nils-color-info);background:var(--nils-color-info-soft);padding:12px 14px;color:var(--nils-color-info)!important;margin-bottom:20px!important}@media (width<=700px){.nils-coming-soon-card{grid-template-columns:1fr}}.nils-dashboard__roadmap{margin-top:var(--nils-space-8);padding:var(--nils-space-6);border:1px solid var(--nils-color-border);border-radius:var(--nils-radius-md);background:var(--nils-color-card)}.nils-dashboard__roadmap-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px;display:flex}.nils-dashboard__roadmap-header h2{margin-bottom:4px}.nils-dashboard__roadmap-header p{color:var(--nils-color-text-secondary);margin:0;font-size:13px}.nils-dashboard__roadmap-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.nils-dashboard__roadmap-item{border:1px solid var(--nils-color-border);background:var(--nils-color-background-secondary);min-width:0;color:var(--nils-color-primary);border-radius:6px;justify-content:space-between;align-items:center;gap:10px;padding:12px 13px;font-size:13px;font-weight:600;text-decoration:none;display:flex}.nils-dashboard__roadmap-item:hover{border-color:var(--nils-color-action);background:var(--nils-color-surface)}@media (width<=1050px){.nils-dashboard__roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.nils-catalog-page{width:100%;color:var(--nils-color-text);font-family:var(--nils-font-family)}.nils-catalog-page>.nils-card+.nils-card{margin-top:var(--nils-space-8)}.nils-catalog-form{gap:var(--nils-space-5);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.nils-catalog-form__footer{justify-content:space-between;align-items:center;gap:var(--nils-space-4);padding-top:var(--nils-space-2);grid-column:1/-1;display:flex}.nils-catalog-list__header{justify-content:space-between;align-items:flex-start;gap:var(--nils-space-4);margin-bottom:var(--nils-space-5);display:flex}.nils-catalog-list__header h3{color:var(--nils-color-primary);font-size:var(--nils-font-size-lg);margin:0}.nils-catalog-list__header p{margin:var(--nils-space-2) 0 0;color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-sm)}.nils-catalog-table-wrap{width:100%;overflow-x:auto}.nils-catalog-table{border-collapse:collapse;width:100%;min-width:880px;font-size:14px}.nils-catalog-table th,.nils-catalog-table td{padding:var(--nils-space-3) var(--nils-space-4);border-bottom:1px solid var(--nils-color-border);text-align:left;vertical-align:middle}.nils-catalog-table th{background:var(--nils-color-background-secondary);color:var(--nils-color-primary);font-size:var(--nils-font-size-sm);font-weight:var(--nils-font-weight-bold);white-space:nowrap}.nils-catalog-table tbody tr:last-child td{border-bottom:0}.nils-catalog-table__detail{color:var(--nils-color-text-secondary);font-size:var(--nils-font-size-sm);margin-top:2px;display:block}@media (width<=1100px){.nils-dashboard__stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=700px){.nils-page-header{flex-direction:column}.nils-page-header__actions,.nils-page-header__actions .nils-button{width:100%}.nils-dashboard__stats,.nils-dashboard__lower,.nils-receipt-form{grid-template-columns:1fr}.nils-receipt-form__footer{flex-direction:column-reverse;align-items:stretch}.nils-receipt-form__footer .nils-button{width:100%}.nils-catalog-form{grid-template-columns:1fr}.nils-catalog-form__footer{flex-direction:column-reverse;align-items:stretch}.nils-catalog-form__footer .nils-button{width:100%}}:root[data-app-theme=nils] body{background:var(--nils-color-background)}:root[data-app-theme=nils] .nils-card,:root[data-app-theme=nils] .panneau,:root[data-app-theme=nils] .carte,:root[data-app-theme=nils] .modal-contenu{border-color:var(--nils-color-border);background-color:var(--nils-color-surface);box-shadow:var(--nils-shadow-sm)}:root[data-app-theme=nils] table th{border-color:var(--nils-color-border);background-color:var(--nils-color-background-secondary);color:var(--nils-color-brand)}:root[data-app-theme=nils] table td{border-color:var(--nils-color-border)}:root[data-app-theme=nils] input,:root[data-app-theme=nils] select,:root[data-app-theme=nils] textarea{accent-color:var(--nils-color-action)}:root[data-app-theme=nils] :where(input,select,textarea,button,a):focus-visible{outline:2px solid var(--nils-color-focus);outline-offset:2px}:root[data-app-theme=nils] .nils-page-header__title,:root[data-app-theme=nils] .nils-dashboard__section-title{color:var(--nils-color-brand)}:root[data-app-theme=nils] .nils-page-header__title:after{background:var(--nils-color-action)}:root[data-app-theme=nils] .v4-reference .nils-app-content{isolation:isolate;background:var(--nils-color-background);position:relative}:root[data-app-theme=nils] .v4-reference .nils-app-content>*{z-index:1;position:relative}@media print{:root[data-app-theme=nils] .v4-reference .nils-app-content{background:#fff}}:root{font-family:var(--nils-font-family);color:var(--nils-color-text);background:var(--nils-color-background);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}body{background:var(--nils-color-background);min-width:320px;min-height:100vh;margin:0}
