@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=Space+Grotesk:wght@400;500;700&display=swap";@layer components;@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:"IBM Plex Mono", monospace;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--shadow-panel:0 24px 60px -20px #02061766}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.block{display:block}.resize{resize:both}.overline{text-decoration-line:overline}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--bg:#f7f4ea;--ink:#1b1c20;--paper:#fefcf6;--line:#d8d2bd;--brand:#0f766e;--brand-2:#c2410c}body{min-height:100vh;color:var(--ink);background-color:#0000;background-image:radial-gradient(circle at 8% 8%,#c2410c1a,#0000 30%),radial-gradient(circle at 88% 16%,#0f766e21,#0000 32%),linear-gradient(165deg,#f5f0e1,#f7f4ea 45%,#fefdf7);background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;margin:0;font-family:Space Grotesk,sans-serif}*{box-sizing:border-box}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#bbb}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translateY(-12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.page-container{width:100%;max-width:1100px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.page-header h2{font-size:1.6rem;font-weight:700;color:var(--ink);margin:0}.page-overline{margin:0 0 .25rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;color:var(--brand)}.page-actions{display:flex;gap:.5rem;flex-wrap:wrap}.panel{border-radius:24px;border:1px solid var(--line);background:var(--paper);padding:1.5rem;box-shadow:var(--shadow-panel)}.card{border-radius:16px;border:1px solid var(--line);background:#fff;padding:1.25rem}.panel h3,.card h3{font-size:1rem;font-weight:700;margin:1.25rem 0 .75rem}.table-wrapper{border-radius:16px;border:1px solid var(--line);background:#fff;overflow:hidden;box-shadow:0 8px 30px -12px #0206171f}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table thead{background:#fffef9;border-bottom:1px solid var(--line)}.data-table th{padding:.85rem 1rem;font-weight:600;color:#64748b;font-size:.75rem;text-transform:uppercase;letter-spacing:.5px;text-align:left}.data-table tbody tr{border-bottom:1px solid var(--line);transition:background .15s ease}.data-table tbody tr:last-child{border-bottom:none}.data-table tbody tr:hover{background:#fefce8}.data-table td{padding:.7rem 1rem;color:var(--ink)}.data-table td.num,.data-table th.num{text-align:right;font-variant-numeric:tabular-nums;font-family:IBM Plex Mono,monospace;font-size:.85rem}.mono{font-family:IBM Plex Mono,monospace;font-variant-numeric:tabular-nums}.muted{color:#94a3b8}.btn{display:inline-flex;align-items:center;gap:.4rem;border-radius:12px;padding:.45rem 1.1rem;font-family:inherit;font-size:.85rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .15s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-accent{background:var(--brand-2);color:#fff}.btn-accent:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:var(--brand)}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.1);transform:translateY(-1px)}.btn-ghost{background:none;color:#94a3b8}.btn-ghost:hover:not(:disabled){color:#ef4444;background:#fef2f2;border-color:#fecaca}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem}.form-group{display:flex;flex-direction:column;gap:.3rem}.form-group label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.form-group.required label:after{content:" *";color:var(--brand-2)}.form-hint{font-size:.75rem;color:#94a3b8}.form-error{font-size:.75rem;color:#dc2626}.input,.textarea{border:1px solid var(--line);border-radius:12px;padding:.45rem .7rem;background:#fffef9;font-family:inherit;font-size:.85rem;color:var(--ink);outline:none;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease}.textarea{min-height:90px;resize:vertical}.input:focus,.textarea:focus{border-color:var(--brand);background:#fff;box-shadow:0 0 0 3px #0f766e14}.input.invalid,.textarea.invalid{border-color:#fca5a5;background:#fef2f2}select.select{background:#fff;border:1px solid var(--line);padding:.45rem 2rem .45rem .8rem;border-radius:12px;color:var(--ink);font-size:.85rem;font-weight:600;font-family:inherit;cursor:pointer;outline:none;transition:border-color .15s ease,background-color .15s ease,box-shadow .15s ease;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center}select.select:hover{background-color:#fafaf5;border-color:#b8b2a0}select.select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #0f766e14}.checkbox{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;cursor:pointer}.checkbox input{accent-color:var(--brand)}.search-wrapper{display:flex;align-items:center;background:#fffef9;border:1px solid var(--line);border-radius:14px;padding:.35rem .75rem;gap:.5rem;transition:border-color .15s ease,box-shadow .15s ease}.search-wrapper:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px #0f766e14}.search-wrapper input{border:none;outline:none;background:transparent;font-family:inherit;font-size:.85rem;flex:1}.badge{display:inline-block;padding:.2rem .65rem;border-radius:8px;font-size:.75rem;font-weight:600;letter-spacing:.3px}.badge-neutral{background:#f1f5f9;color:#475569}.badge-warning{background:#fef3c7;color:#92400e}.badge-info{background:#e0e7ff;color:#3730a3}.badge-purple{background:#ede9fe;color:#6d28d9}.badge-success{background:#dcfce7;color:#166534}.badge-error{background:#fef2f2;color:#dc2626}.badge-teal{background:#0f766e1a;color:var(--brand)}.role-tag{display:inline-block;padding:.2rem .6rem;border-radius:10px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px;border:1px solid}.role-admin{color:#dc2626;border-color:#dc262633}.role-manager{color:#2563eb;border-color:#2563eb33}.role-commercial{color:var(--brand);border-color:#0f766e33}.pill{display:inline-block;border-radius:999px;border:1px solid var(--line);background:#fff;padding:.3rem .9rem;font-family:IBM Plex Mono,monospace;font-size:.75rem}.error-banner,.success-banner,.warning-banner{border-radius:12px;padding:.75rem 1rem;margin-bottom:1rem;font-size:.85rem;display:flex;align-items:center;gap:.6rem}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#b91c1c}.success-banner{background:#f0fdf4;border:1px solid #bbf7d0;color:#166534;font-weight:500}.warning-banner{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.spinner{width:32px;height:32px;border:3px solid var(--line);border-top-color:var(--brand);border-radius:50%;animation:spin .8s linear infinite;margin:2rem auto}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 1.5rem;color:#64748b}.empty-state-icon{color:var(--line);margin-bottom:.75rem}.empty-state-title{margin:0;font-weight:600;color:var(--ink)}.empty-state-text{margin-top:.4rem;font-size:.85rem;font-family:IBM Plex Mono,monospace}.modal-overlay{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.modal{background:var(--paper);border-radius:20px;max-width:640px;width:100%;max-height:85vh;overflow-y:auto;box-shadow:0 16px 48px -16px #02061740;padding:2rem;position:relative;animation:slideIn .2s ease-out}.modal-wide{max-width:860px}.modal-title{margin:0 0 1rem;font-size:1.2rem;font-weight:700}.modal-close{position:absolute;top:1rem;right:1.2rem;background:none;border:none;border-radius:8px;padding:.25rem;color:#94a3b8;cursor:pointer;display:flex}.modal-close:hover{background:#f1f5f9;color:var(--ink)}.modal-footer{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.supplier-search{position:relative}.supplier-results{margin-top:.5rem;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden}.supplier-result{display:block;width:100%;text-align:left;padding:.7rem 1rem;background:transparent;border:none;border-bottom:1px solid var(--line);font-family:inherit;cursor:pointer}.supplier-result:last-child{border-bottom:none}.supplier-result:hover,.supplier-result.active{background:#fffef9}.supplier-result:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.supplier-result.closed .supplier-name{color:#64748b}.supplier-line{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.supplier-name{font-weight:600;color:var(--ink)}.supplier-meta{margin-top:.15rem;font-size:.78rem;color:#64748b}.supplier-note{margin:.5rem .25rem 0;font-size:.78rem;color:#64748b}.supplier-status{display:flex;align-items:center;gap:.6rem;margin-top:.5rem;padding:.5rem .25rem;font-size:.85rem;color:#64748b}.supplier-status .spinner{width:16px;height:16px;border-width:2px;margin:0}.fournisseur-section{margin:1.25rem 0 .6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.fournisseur-form>.fournisseur-section:first-child,.fournisseur-tag+.fournisseur-section{margin-top:0}.fournisseur-tag{margin:0 0 .75rem}.fournisseur-checks{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;margin-bottom:1rem}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.sidebar{position:fixed;left:0;top:0;height:100vh;width:260px;background:var(--ink);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:1000;transition:width .3s ease}.sidebar.collapsed{width:70px}.sidebar-toggle{position:absolute;right:-13px;top:24px;width:26px;height:26px;border-radius:50%;background:var(--ink);border:1px solid var(--line);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;z-index:10;font-size:12px}.sidebar-toggle:hover{background:var(--brand);transform:scale(1.15)}.sidebar-header{padding:1.25rem;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar.collapsed .sidebar-header{padding:1rem .5rem}.user-badge{display:flex;align-items:center;gap:.75rem}.sidebar.collapsed .user-badge{justify-content:center}.user-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;flex-shrink:0}.user-info{flex:1;overflow:hidden}.user-name{font-weight:600;color:#f1f5f9;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:.7rem;color:#ffffff73;text-transform:capitalize}.sidebar-nav{flex:1;padding:.75rem 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.65rem 1.25rem;color:#ffffff8c;text-decoration:none;transition:all .15s ease;font-size:.85rem;font-weight:500;border-left:3px solid transparent}.sidebar.collapsed .nav-item{padding:.65rem;justify-content:center;border-left:none}.nav-item:hover{background:#ffffff0a;color:#e2e8f0}.nav-item.active{background:#0f766e1f;color:#5eead4;border-left-color:var(--brand)}.nav-icon-wrapper{position:relative;display:flex;align-items:center;flex-shrink:0}.nav-icon{opacity:.75;flex-shrink:0}.nav-item.active .nav-icon{opacity:1}.nav-badge{position:absolute;top:-6px;right:-8px;min-width:17px;height:17px;padding:0 4px;background:#ef4444;color:#fff;border-radius:9px;font-size:.6rem;font-weight:700;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px var(--ink);animation:badge-pulse 2s ease-in-out infinite}@keyframes badge-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.nav-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-footer{padding:1rem 1.25rem;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;gap:.5rem}.sidebar.collapsed .sidebar-footer{padding:1rem .5rem;justify-content:center}.sidebar-logout{display:inline-flex;align-items:center;gap:.4rem;background:none;border:1px solid transparent;border-radius:8px;padding:.35rem .6rem;color:#ffffff8c;font-family:inherit;font-size:.75rem;cursor:pointer;transition:all .15s ease}.sidebar-logout:hover{color:#fff;background:#ffffff0f;border-color:#ffffff1f}.role-badge{display:inline-block;padding:.35rem .75rem;background:#0f766e26;border:1px solid rgba(15,118,110,.25);border-radius:8px;color:#5eead4;font-size:.65rem;font-weight:700;letter-spacing:1px;font-family:IBM Plex Mono,monospace}@media(max-width:768px){.sidebar{width:100%;max-width:280px}.sidebar.collapsed{width:70px}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{background:var(--paper);border:1px solid var(--line);border-radius:24px;padding:48px 40px;width:100%;max-width:420px;text-align:center;box-shadow:0 24px 60px -20px #02061759}.login-card .error-banner,.login-card .warning-banner{text-align:left}.login-logo{display:flex;justify-content:center;margin-bottom:8px}.login-logo-img{width:64px;height:64px;object-fit:contain}.login-title{font-size:1.8rem;font-weight:700;color:var(--ink);margin:0 0 8px}.login-subtitle{color:#64748b;font-size:.9rem;margin:0 0 32px;font-family:IBM Plex Mono,monospace}.login-buttons{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.login-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 20px;border-radius:14px;font-size:.95rem;font-weight:600;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);transition:all .2s ease}.login-btn:hover{background:#f8fafc;transform:translateY(-1px);box-shadow:0 4px 12px #00000014;border-color:#94a3b8}.login-dev{text-align:left;border:1px dashed var(--line);border-radius:14px;padding:14px}.login-dev-title{margin:0 0 10px;font-family:IBM Plex Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;color:var(--brand-2)}.login-dev-row{display:flex;gap:8px}.login-dev-row .input{flex:1;min-width:0}.login-footer{color:#94a3b8;font-size:.78rem;margin:24px 0 0;line-height:1.5;border-top:1px solid var(--line);padding-top:20px}.users-table-wrapper{overflow-x:auto}.user-email{color:#475569}.user-cell{white-space:nowrap;display:inline-flex;align-items:center;gap:.6rem;font-weight:600}.user-avatar-small{width:28px;height:28px;border-radius:9px;background:linear-gradient(135deg,var(--brand) 0%,var(--brand-2) 100%);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:700;flex-shrink:0}.user-row-inactive td{color:#94a3b8}.user-row-inactive .user-avatar-small{background:#cbd5e1}.user-actions{text-align:right;white-space:nowrap}.user-actions .btn+.btn{margin-left:.35rem}.btn-icon{padding:.4rem .55rem}.user-entites{display:inline-flex;flex-wrap:wrap;gap:.3rem}.user-entites-field{margin:1rem 0 0;padding:0;border:none;display:flex;flex-direction:column;gap:.5rem}.user-entites-field legend{padding:0;margin-bottom:.4rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.user-entites-choices{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.entites-intro{margin:-.5rem 0 1.25rem;font-size:.85rem;color:#64748b}.entites-table-wrapper{overflow-x:auto}.entite-name{display:block;font-weight:600}.entite-sub{display:block;font-size:.75rem;color:#64748b}.entite-row-inactive td,.entite-row-inactive .entite-sub{color:#94a3b8}.entite-actions{text-align:right;white-space:nowrap}.entite-actions .btn+.btn{margin-left:.35rem}.entite-section{padding:1rem 0;border-top:1px solid var(--line)}.entite-section:first-of-type{border-top:none;padding-top:0}.entite-section h4{margin:0 0 .75rem;font-family:IBM Plex Mono,monospace;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--brand)}.entite-section>p.form-hint{margin:-.4rem 0 .75rem}.entite-full{grid-template-columns:1fr;margin-top:1rem}.entite-section h4+.entite-full{margin-top:0}.entite-preview{margin:1rem 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem;font-size:.85rem}.entite-preview-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.entite-preview-value{font-weight:600}.entite-tokens{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0 1rem}.entite-tokens .pill{cursor:pointer}.entite-tokens .pill:hover{border-color:var(--brand);color:var(--brand)}.entite-apercu{margin:-.4rem 0 1rem}.tpl-intro{margin:-.5rem 0 1.25rem;font-size:.85rem;color:#64748b}.tpl-filtres{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:1.25rem}.tpl-groupe{margin-bottom:1.5rem}.tpl-groupe-titre{display:flex;align-items:center;gap:.6rem;margin:0 0 .6rem;font-family:IBM Plex Mono,monospace;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.2em;color:var(--brand)}.tpl-table-wrapper{overflow-x:auto}.modal .tpl-table-wrapper .data-table th,.modal .tpl-table-wrapper .data-table td{padding-left:.6rem;padding-right:.6rem}.tpl-table-wrapper .badge{white-space:nowrap}.tpl-vide{margin:0;padding:1rem 1.25rem;font-size:.85rem;color:#94a3b8}.tpl-nom,.tpl-fichier{font-weight:600}.tpl-fichier{display:block;min-width:9rem;overflow-wrap:anywhere}.tpl-nowrap{white-space:nowrap}.tpl-badge-active{margin-left:.5rem}.tpl-sub{display:block;margin-top:.15rem;font-size:.75rem;color:#64748b}.tpl-actions{text-align:right;white-space:nowrap}.tpl-actions .btn+.btn{margin-left:.35rem}.tpl-row-active td{background:#0f766e0a}.tpl-row-detail td,.data-table tbody tr.tpl-row-detail:hover td{background:#fffef9}.tpl-link{display:inline-flex;align-items:center;gap:.4rem;border:none;background:none;padding:0;font:inherit;font-size:.75rem;color:#64748b;cursor:pointer}.tpl-link:hover span:last-child{color:var(--brand);text-decoration:underline}.tpl-resume{margin:0 0 1rem;font-size:.85rem;color:#475569}.tpl-full{grid-template-columns:1fr;margin-top:1rem}.tpl-activer{margin-top:1rem}.tpl-analyse{display:flex;flex-direction:column}.tpl-banner-list{flex-direction:column;align-items:flex-start}.tpl-banner-list ul{margin:0;padding-left:1.2rem}.tpl-label{margin:0 0 .5rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.tpl-pills{display:flex;flex-wrap:wrap;gap:.35rem}.tpl-pills .pill{padding:.2rem .65rem}.tpl-pill-error{border-color:#fecaca;color:#b91c1c}.column-filter{position:relative;display:inline-block;margin-left:.4rem;vertical-align:middle}.filter-trigger{display:inline-flex;align-items:center;padding:.2rem;border:1px solid var(--line);border-radius:6px;background:#fff;color:#64748b;cursor:pointer;transition:border-color .15s ease,color .15s ease}.filter-trigger:hover,.filter-trigger[aria-expanded=true]{border-color:var(--brand);color:var(--brand)}.filter-trigger:focus-visible{outline:2px solid var(--brand);outline-offset:1px}.filter-trigger.actif{border-color:var(--brand);background:#0f766e1a;color:var(--brand)}.filter-dropdown{position:fixed;display:flex;flex-direction:column;gap:.5rem;width:240px;max-height:340px;padding:.6rem;border:1px solid var(--line);border-radius:16px;background:var(--paper);box-shadow:0 12px 40px -8px #02061740;z-index:10000;text-transform:none;letter-spacing:normal;font-weight:400}.filter-titre{margin:0;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.filter-dropdown .search-wrapper{padding:.25rem .6rem}.filter-actions{display:flex;gap:.4rem;padding-bottom:.5rem;border-bottom:1px solid var(--line)}.filter-actions button{flex:1;padding:.3rem;border:1px solid var(--line);border-radius:8px;background:#fffef9;color:var(--ink);font-size:.72rem;font-weight:600;cursor:pointer;transition:background .15s ease,border-color .15s ease}.filter-actions button:hover{border-color:var(--brand);background:#f1f5f9}.filter-list{overflow-y:auto;min-height:0}.filter-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:8px;color:var(--ink);font-size:.82rem;cursor:pointer;transition:background .15s ease}.filter-item:hover{background:#f1f5f9}.filter-item input[type=checkbox]{cursor:pointer;accent-color:var(--brand)}.filter-item span{flex:1;overflow-wrap:anywhere}.filter-vide{margin:0;padding:.5rem;font-size:.8rem;color:#94a3b8}.filter-list::-webkit-scrollbar{width:5px}.filter-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.ctr-table-wrapper{overflow-x:auto}.ctr-ligne{cursor:pointer}.ctr-ligne:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.ctr-mission{max-width:280px}.ctr-date{white-space:nowrap;font-size:.8rem}.ctr-ligne-contexte{opacity:.55}.ctr-ligne-contexte:hover,.ctr-ligne-contexte:focus-visible{opacity:1}.ctr-contexte-tag{display:block;margin-top:.15rem;font-size:.7rem;font-style:italic;color:#64748b}.ctr-lien-historique{display:inline-flex;padding:.25rem;border-radius:6px;color:#64748b}.ctr-lien-historique:hover,.ctr-lien-historique:focus-visible{color:var(--brand);background:#0f766e1a}.ctr-barre{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:.75rem}.ctr-recherche{flex:1 1 320px;max-width:520px}.ctr-compte{font-size:.8rem;color:#64748b}.ctr-tri{display:inline-flex;align-items:center;gap:.3rem;padding:0;border:none;background:none;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer}.ctr-tri:hover,.ctr-tri.actif{color:var(--brand)}.ctr-tri:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}.ctr-bord{margin-bottom:1.25rem}.ctr-compteurs{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:.75rem;list-style:none;margin:0 0 .75rem;padding:0}.ctr-compteur{display:flex;flex-direction:column;align-items:flex-start;gap:.15rem;width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);font:inherit;text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease}.ctr-compteur:hover{border-color:var(--brand)}.ctr-compteur:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.ctr-compteur.actif{border-color:var(--brand);background:#0f766e14}.ctr-compteur-nombre{font-size:1.6rem;font-weight:700;line-height:1.1}.ctr-compteur-libelle{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.ctr-bord-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}.ctr-bord-carte{padding:1rem 1.25rem;border:1px solid var(--line);border-radius:16px;background:#fff}.ctr-attente{display:flex;align-items:center;align-self:start;gap:.75rem;color:var(--ink);text-decoration:none;transition:border-color .15s ease}.ctr-attente:hover,.ctr-attente:focus-visible{border-color:var(--brand)}.ctr-attente svg{color:var(--brand);flex:none}.ctr-attente strong{font-size:1.25rem}.ctr-fins-entete{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;margin-bottom:.5rem}.ctr-fins-entete h3{display:flex;align-items:center;gap:.4rem;margin:0}.ctr-fins-horizon{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden}.ctr-fins-horizon button{padding:.25rem .65rem;border:none;background:#fffef9;color:var(--ink);font:inherit;font-size:.78rem;cursor:pointer}.ctr-fins-horizon button+button{border-left:1px solid var(--line)}.ctr-fins-horizon button.actif{background:var(--brand);color:#fff}.ctr-fins-horizon button:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}.ctr-fins-liste{list-style:none;margin:0;padding:0}.ctr-fin{display:grid;grid-template-columns:auto auto 1fr;align-items:baseline;gap:.6rem;padding:.4rem .5rem;border-radius:8px;color:var(--ink);font-size:.82rem;text-decoration:none}.ctr-fin:hover,.ctr-fin:focus-visible{background:#fefce8}.ctr-fin-date{font-size:.78rem}.ctr-fin-delai{min-width:5.5rem;color:#92400e;font-size:.75rem;font-weight:600}.ctr-fin-texte{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ctr-fins-vide{margin:.5rem 0;font-size:.85rem}.ctr-fins-plus{margin-top:.25rem;font-size:.8rem}.ctr-fins-aide{margin:.5rem 0 0;font-size:.75rem}.ctr-stepper{display:flex;gap:.5rem;list-style:none;margin:0 0 1rem;padding:0;overflow-x:auto}.ctr-step{flex:1;min-width:140px}.ctr-step button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.6rem .8rem;border:1px solid var(--line);border-radius:14px;background:var(--paper);font-family:inherit;font-size:.8rem;font-weight:600;color:#64748b;text-align:left;cursor:pointer;transition:border-color .15s ease,background-color .15s ease}.ctr-step button:disabled{cursor:default}.ctr-step button:hover:not(:disabled){border-color:var(--brand)}.ctr-step-num{display:inline-flex;align-items:center;justify-content:center;flex:none;width:1.6rem;height:1.6rem;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:.75rem}.ctr-step-courante button{border-color:var(--brand);background:#fff;color:var(--ink);box-shadow:0 0 0 3px #0f766e14}.ctr-step-courante .ctr-step-num{background:var(--brand);border-color:var(--brand);color:#fff}.ctr-step-faite .ctr-step-num{border-color:var(--brand);color:var(--brand)}.ctr-panel{margin-bottom:1rem}.ctr-etape>h3:first-child,.ctr-etape>.ctr-aide:first-child+h3{margin-top:0}.ctr-aide{margin:.75rem 0;font-size:.8rem;color:#64748b;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.ctr-aide-inline{margin-left:.75rem;font-size:.8rem}.ctr-legende-requis{color:var(--brand-2);font-weight:700}.ctr-choix{display:flex;flex-wrap:wrap;gap:.75rem}.ctr-choix-carte{display:flex;align-items:center;gap:.6rem;min-width:180px;padding:.9rem 1.1rem;border:1px solid var(--line);border-radius:16px;background:#fff;font-family:inherit;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.ctr-choix-carte:hover{border-color:var(--brand)}.ctr-choix-carte.actif{border-color:var(--brand);box-shadow:0 0 0 3px #0f766e1f}.ctr-choix-titre{font-weight:700;color:var(--ink)}.ctr-template-unique{display:flex;align-items:center;gap:.5rem;margin:0;font-weight:600}.ctr-fournisseur-entete{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.ctr-fournisseur-entete .btn{margin-left:auto}.form-group.ctr-large{grid-column:1 / -1}.form-group.ctr-discret label{color:#a3a3a3}.form-group.ctr-discret .input,.form-group.ctr-discret .textarea,.form-group.ctr-discret .select{background:#fbfaf5;border-style:dashed}.ctr-personne{display:grid;grid-template-columns:minmax(120px,160px) 1fr 1fr;gap:.5rem}.ctr-liste{display:flex;flex-direction:column;gap:.4rem}.ctr-liste-item{display:flex;align-items:flex-start;gap:.4rem}.ctr-liste-item>.input,.ctr-liste-texte{flex:1}.ctr-liste-texte{min-height:0}.ctr-liste-num{flex:none;width:1.6rem;padding-top:.5rem;font-size:.75rem;color:#94a3b8;text-align:right}.ctr-liste-actions{display:flex;flex:none}.ctr-liste-vide{margin:0;font-size:.8rem;color:#94a3b8}.ctr-liste-ajout{align-self:flex-start}.ctr-calcul{padding:.45rem .7rem;border:1px solid var(--line);border-radius:12px;background:#f5f3ea;font-size:.85rem;min-height:2.1rem}.ctr-calcul-total{font-weight:700;color:var(--brand)}.ctr-lettres-bloc{display:grid;gap:.4rem;margin:1rem 0;padding:.85rem 1rem;border-radius:14px;background:#f5f3ea;font-size:.85rem}.ctr-lettres-libelle{display:inline-block;min-width:9rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.ctr-lettres{color:#64748b;font-style:italic}.ctr-banner-liste{flex-direction:column;align-items:flex-start}.ctr-banner-liste ul{margin:.25rem 0 0;padding-left:1.2rem}.ctr-manquants-groupe{width:100%}.ctr-manquants-titre{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.ctr-manquants-groupe code{font-size:.72rem;opacity:.75}.btn.ctr-lien{padding:.1rem .5rem;color:inherit;text-decoration:underline}.ctr-recap{display:grid;gap:1rem}.ctr-recap-section{border:1px solid var(--line);border-radius:16px;background:#fff;padding:1rem 1.25rem}.ctr-recap-entete{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ctr-recap-entete h3{margin:0}.ctr-recap-section dl{margin:.75rem 0 0}.ctr-recap-ligne{display:grid;grid-template-columns:12rem 1fr;gap:1rem;padding:.35rem 0;border-top:1px dashed var(--line);font-size:.85rem}.ctr-recap-ligne:first-child{border-top:none}.ctr-recap-ligne dt{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b;padding-top:.15rem}.ctr-recap-ligne dd{margin:0;white-space:pre-line}.ctr-recap-liste{margin:0;padding-left:1.1rem}.ctr-actions{position:sticky;bottom:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding:.75rem 1rem;border:1px solid var(--line);border-radius:18px;background:var(--paper);box-shadow:0 -8px 30px -18px #02061740}.ctr-actions-droite{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.ctr-non-enregistre{font-size:.8rem;color:var(--brand-2)}@media(max-width:720px){.ctr-personne{grid-template-columns:1fr}.ctr-recap-ligne{grid-template-columns:1fr;gap:.2rem}}.ctr-reference{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.4rem}.ctr-wf-etat{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:.85rem;color:var(--ink)}.ctr-wf-refus span{white-space:pre-line}.ctr-wf-historique{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--line)}.ctr-wf-timeline{list-style:none;margin:0;padding:0}.ctr-wf-evt{position:relative;display:grid;grid-template-columns:14px 1fr;gap:.75rem;padding-bottom:1rem}.ctr-wf-evt:not(:last-child):before{content:"";position:absolute;left:6px;top:16px;bottom:0;width:2px;background:var(--line)}.ctr-wf-point{width:14px;height:14px;margin-top:3px;border-radius:50%;border:2px solid #94a3b8;background:#fff}.ctr-wf-valider .ctr-wf-point{border-color:#16a34a;background:#dcfce7}.ctr-wf-refuser .ctr-wf-point{border-color:#dc2626;background:#fef2f2}.ctr-wf-soumettre .ctr-wf-point{border-color:#d97706;background:#fef3c7}.ctr-wf-generer .ctr-wf-point{border-color:var(--brand);background:#0f766e1a}.ctr-wf-ligne{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem;font-size:.875rem}.ctr-wf-date{margin-left:auto;font-size:.75rem}.ctr-wf-commentaire{margin:.35rem 0 0;padding:.5rem .75rem;border-radius:10px;background:#f8fafc;border:1px solid var(--line);font-size:.85rem;white-space:pre-line}.ctr-val-filtres{display:flex;justify-content:flex-end;margin-bottom:1rem}.ctr-val-actions{display:flex;flex-direction:column;align-items:stretch;gap:.35rem;min-width:max-content}.ctr-val-actions .btn{justify-content:center;padding:.35rem .7rem;font-size:.8rem}.ctr-statut{display:inline-flex;align-items:center;gap:.25rem;white-space:nowrap}.ctr-telecharger{padding:.4rem .55rem}.ctr-wf-genere{flex-wrap:wrap}.ctr-wf-genere>span{flex:1;min-width:240px}.ctr-wf-erreur{flex-direction:column;align-items:flex-start}.ctr-wf-erreur ul{margin:.4rem 0 0;padding-left:1.2rem;font-weight:400}.ctr-dup-modes{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0}.ctr-dup-mode{display:flex;align-items:flex-start;gap:.7rem;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer}.ctr-dup-mode.choisi{border-color:var(--brand);background:#0f766e0f}.ctr-dup-mode.desactive{cursor:not-allowed;background:var(--bg)}.ctr-dup-mode input{margin-top:.25rem}.ctr-dup-mode strong,.ctr-dup-texte,.ctr-dup-raison{display:block}.ctr-dup-texte{margin-top:.15rem;font-size:.85rem;color:#64748b}.ctr-dup-raison{margin-top:.4rem;font-size:.82rem;color:var(--ink)}.ctr-dup-raison svg{display:inline;vertical-align:-2px}.ctr-dup-lien{display:flex;align-items:center;gap:.6rem;margin-bottom:1rem}.ctr-dup-liens{display:block;margin-top:.15rem;font-size:.78rem;color:#64748b}.ctr-dup-lien a{color:var(--brand);text-decoration:underline;word-break:break-all}.ctr-ligne-avenant td{background:var(--bg)}.ctr-avenant-ref{display:inline-flex;align-items:flex-start;gap:.4rem}.ctr-avenant-ref svg{margin-top:.15rem;flex-shrink:0}.ctr-avenant-type{display:block;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:#64748b}.ctr-avenants{margin-top:1rem}.ctr-avenants-vigueur{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem}.ctr-avenants-vide{margin:.75rem 0 0;font-size:.85rem}.ctr-avenants-table{margin-top:.75rem}.ctr-avenants-table a{color:var(--brand);text-decoration:underline}.ctr-avenants-badge{margin-left:.4rem}.ctr-avenant-saisie{margin-top:.75rem}.ctr-avenant-controle{margin-top:1rem}.app{min-height:100vh;display:flex;flex-direction:column}.app-layout{flex:1;display:flex;flex-direction:column;position:relative}.app-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;padding-left:280px;border-bottom:1px solid var(--line);background:var(--paper);transition:padding-left .3s ease}.app-header h1{font-size:1.5rem;font-weight:700;color:var(--brand);margin:0;display:flex;align-items:center;gap:.5rem}.app-logo-icon{width:24px;height:24px;object-fit:contain}.app-main{flex:1;padding:1.5rem;padding-left:280px;transition:padding-left .3s ease;animation:fadeIn .25s ease-out}.sidebar-collapsed .app-header,.sidebar-collapsed .app-main{padding-left:90px}.app-footer{text-align:center;padding:1rem;padding-left:280px;border-top:1px solid var(--line);color:#888;font-size:.8rem;transition:padding-left .3s ease}.sidebar-collapsed .app-footer{padding-left:90px}.app-footer p{margin:0}.app-version{font-family:IBM Plex Mono,monospace;font-size:.7rem;background:var(--line);color:#666;padding:.15rem .4rem;border-radius:4px;margin-left:.5rem;letter-spacing:.03em}.app-version-error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center}
