:root{color-scheme:light;--plane: #f2f2ef;--surface: #ffffff;--surface-2: #f8f8f6;--surface-3: #ececea;--ink: #0b0b0b;--ink-2: #52514e;--ink-muted: #6f6e6a;--line: #e1e0d9;--line-strong: #c3c2b7;--accent: #2a78d6;--accent-strong: #1c5cab;--accent-wash: #eaf2fd;--accent-ink: #ffffff;--good: #0ca30c;--good-ink: #006300;--good-wash: #e8f7e8;--warning: #fab219;--warning-ink: #7a5300;--warning-wash: #fdf3df;--critical: #d03b3b;--critical-ink: #a12222;--critical-wash: #fbeaea;--radius: 10px;--radius-sm: 6px;--shadow: 0 1px 2px rgba(11, 11, 11, .06), 0 4px 16px rgba(11, 11, 11, .04);--ring: 0 0 0 3px rgba(42, 120, 214, .28);--font: system-ui, -apple-system, "Segoe UI", sans-serif}:root[data-theme=dark]{color-scheme:dark;--plane: #0d0d0d;--surface: #1a1a19;--surface-2: #212120;--surface-3: #2c2c2a;--ink: #ffffff;--ink-2: #c3c2b7;--ink-muted: #898781;--line: #2c2c2a;--line-strong: #383835;--accent: #3987e5;--accent-strong: #86b6ef;--accent-wash: #16243a;--accent-ink: #0b0b0b;--good: #0ca30c;--good-ink: #7ede7e;--good-wash: #122712;--warning: #fab219;--warning-ink: #f6d68a;--warning-wash: #2e2410;--critical: #d03b3b;--critical-ink: #f2a2a2;--critical-wash: #2c1414;--shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 4px 16px rgba(0, 0, 0, .35);--ring: 0 0 0 3px rgba(57, 135, 229, .4)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--plane);color:var(--ink);font-family:var(--font);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0;line-height:1.25;font-weight:600}h1{font-size:1.5rem}p{margin:0}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--surface-3);padding:.1em .35em;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:var(--radius-sm)}.app{min-height:100vh;display:flex;flex-direction:column}.app__header{display:flex;align-items:center;gap:24px;padding:12px 24px;background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;flex-wrap:wrap}.app__brand{display:flex;align-items:center;gap:12px;min-width:0}.app__logo{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;border-radius:var(--radius-sm);background:var(--accent);color:var(--accent-ink);font-size:1.15rem;font-weight:700}.app__title{font-weight:600;letter-spacing:-.01em}.app__subtitle{font-size:.8rem;color:var(--ink-muted)}.app__nav{display:flex;gap:4px;margin-inline-start:auto;flex-wrap:wrap}.app__nav a{padding:7px 14px;border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:.9rem;font-weight:500;white-space:nowrap}.app__nav a:hover{background:var(--surface-3);color:var(--ink)}.app__nav a.is-active{background:var(--accent-wash);color:var(--accent-strong)}.app__user{display:flex;align-items:center;gap:8px}.usermenu{position:relative}.usermenu__trigger{display:flex;flex-direction:column;align-items:flex-end;gap:1px;background:none;border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;font-family:inherit;color:var(--ink)}.usermenu__trigger:hover{background:var(--surface-2)}.usermenu__name{font-size:.85rem;font-weight:600}.usermenu__role{font-size:.72rem;color:var(--ink-muted)}.usermenu__catcher{position:fixed;inset:0;z-index:25}.usermenu__panel{position:absolute;right:0;top:calc(100% + 6px);z-index:26;min-width:260px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:8px;display:flex;flex-direction:column;gap:2px}.usermenu__detail{padding:8px 10px 10px;font-size:.8rem;color:var(--ink-2);border-bottom:1px solid var(--line);margin-bottom:6px;word-break:break-word}.usermenu__detail span{color:var(--ink-muted)}.usermenu__panel button{text-align:left;background:none;border:0;padding:8px 10px;border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:.88rem;color:var(--ink)}.usermenu__panel button:hover{background:var(--surface-3)}.usermenu__logout{color:var(--critical-ink)!important}.app__main{flex:1;padding:24px;max-width:1480px;width:100%;margin:0 auto}.boot{min-height:100vh;display:grid;place-items:center}.login{min-height:100vh;display:grid;place-items:center;padding:24px;position:relative;background:radial-gradient(1000px 500px at 15% -10%,var(--accent-wash),transparent),var(--plane)}.login__theme{position:absolute;top:20px;right:20px}.login__panel{width:100%;max-width:440px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px}.login__brand{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.login__brand h1{font-size:1.35rem}.login__brand p{color:var(--ink-2);font-size:.9rem}.login__form{margin-bottom:24px}.login__demo{border-top:1px solid var(--line);padding-top:18px}.login__demo h2{font-size:.9rem;margin-bottom:4px}.login__demo>p{font-size:.82rem;color:var(--ink-muted);margin-bottom:10px}.login__demo ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.login__demo button{width:100%;display:flex;flex-direction:column;gap:1px;text-align:left;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 12px;cursor:pointer;font:inherit;color:var(--ink)}.login__demo button:hover{border-color:var(--accent);background:var(--accent-wash)}.login__demo-role{font-size:.82rem;font-weight:600}.login__demo-mail{font-size:.76rem;color:var(--ink-muted)}.page{display:flex;flex-direction:column;gap:20px}.page__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.page__lead{color:var(--ink-muted);font-size:.9rem;margin-top:4px}.page__actions{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;margin-bottom:16px}.card__title{font-size:1.05rem}.card__subtitle{font-size:.85rem;color:var(--ink-muted);margin-top:3px}.card__actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.card__plot{margin-top:4px}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.tile{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--line-strong);border-radius:var(--radius);padding:14px 16px}.tile__label{font-size:.78rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em}.tile__value{font-size:1.5rem;font-weight:600;letter-spacing:-.015em;margin-top:4px}.tile__hint{font-size:.8rem;color:var(--ink-2);margin-top:2px}.tile--accent{border-left-color:var(--accent)}.tile--good{border-left-color:var(--good)}.tile--warning{border-left-color:var(--warning)}.tile--critical{border-left-color:var(--critical)}.hero{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.hero__label{font-size:.85rem;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em}.hero__value{font-size:clamp(2.4rem,6vw,3.4rem);font-weight:600;letter-spacing:-.03em;line-height:1.05;margin:6px 0 4px}.hero__hint{color:var(--ink-2);font-size:.9rem}.filterbar{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.filterbar__hint{font-size:.82rem;color:var(--ink-muted);padding-bottom:6px}.actionbar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--accent-wash);border:1px solid var(--accent);border-radius:var(--radius);padding:12px 16px}.actionbar__buttons{display:flex;gap:8px;flex-wrap:wrap}.empty{text-align:center;padding:40px 20px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty__title{font-weight:600}.empty__description{color:var(--ink-muted);font-size:.9rem;max-width:46ch}.is-refetching{opacity:.55;transition:opacity .12s ease-out}.table-scroll{overflow-x:auto;background:linear-gradient(to right,var(--surface) 30%,rgba(0,0,0,0)),linear-gradient(to left,var(--surface) 30%,rgba(0,0,0,0)) 100% 0;background-size:40px 100%,40px 100%;background-repeat:no-repeat;background-attachment:local,local}.table{width:100%;border-collapse:collapse;font-size:.88rem}.table caption{text-align:left;color:var(--ink-muted);font-size:.82rem;padding-bottom:8px}.table th,.table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}.table thead th{font-size:.76rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-muted);font-weight:600;white-space:nowrap;border-bottom:1px solid var(--line-strong)}.table__sub{display:block;font-size:.68rem;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-muted)}.table tbody tr:hover{background:var(--surface-2)}.table tbody th{font-weight:500;color:var(--ink)}.table .num,.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.table tfoot td,.table tfoot th{border-top:1px solid var(--line-strong);border-bottom:0;font-weight:600;background:var(--surface-2)}.table--compact th,.table--compact td{padding:6px 10px}.table__check{width:36px}.table__label{min-width:230px}.table__note{display:block;font-size:.76rem;color:var(--ink-muted);font-weight:400;margin-top:2px;max-width:46ch}.rowactions{display:flex;gap:4px;flex-wrap:wrap}.linkish{background:none;border:0;padding:0;font:inherit;font-weight:600;color:var(--accent-strong);cursor:pointer;text-align:left}.linkish:hover{text-decoration:underline}.form{display:flex;flex-direction:column;gap:14px}.form--boxed{max-width:720px}.form__row{display:grid;gap:14px}.form__row--2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.field{display:flex;flex-direction:column;gap:5px}.field>label{font-size:.82rem;font-weight:600;color:var(--ink-2)}.field__hint{font-size:.78rem;color:var(--ink-muted)}.field__error{font-size:.78rem;color:var(--critical-ink);font-weight:500}input[type=text],input[type=email],input[type=password],input[type=number],select,textarea{font:inherit;font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);padding:8px 10px;width:100%}textarea{resize:vertical;min-height:60px}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent)}.field--error input,.field--error textarea{border-color:var(--critical)}.inline-field{display:flex;flex-direction:column;gap:4px}.inline-field>span{font-size:.76rem;font-weight:600;color:var(--ink-muted);text-transform:uppercase;letter-spacing:.03em}.inline-field select{min-width:200px;width:auto}.checkbox{display:flex;align-items:center;gap:8px;font-size:.88rem}.checkbox input{width:16px;height:16px}.amounts{border:1px solid var(--line);border-radius:var(--radius);padding:14px;margin:0}.amounts legend{font-size:.82rem;font-weight:600;color:var(--ink-2);padding:0 6px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.amounts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.amounts__cell label{display:flex;justify-content:space-between;align-items:baseline;gap:6px;font-size:.82rem;font-weight:600;margin-bottom:4px}.amounts__cell label span{font-size:.7rem;font-weight:400;color:var(--ink-muted)}.amounts__cell input{text-align:right;font-variant-numeric:tabular-nums}.amounts__total{margin-top:12px;padding-top:10px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:.9rem;color:var(--ink-2)}.btn{font:inherit;font-size:.88rem;font-weight:500;border-radius:var(--radius-sm);border:1px solid transparent;padding:8px 14px;cursor:pointer;white-space:nowrap;background:var(--surface-3);color:var(--ink)}.btn:hover:not(:disabled){filter:brightness(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--ghost{background:transparent;border-color:var(--line-strong);color:var(--ink-2)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--ink)}.btn--danger{background:transparent;border-color:var(--critical);color:var(--critical-ink)}.btn--danger:hover:not(:disabled){background:var(--critical-wash)}.btn--small{padding:4px 9px;font-size:.8rem}.btn--block{width:100%;justify-content:center}.btn--icon{padding:7px 10px;line-height:1}.segmented{display:inline-flex;border:1px solid var(--line-strong);border-radius:999px;padding:2px;background:var(--surface-2)}.segmented button{font:inherit;font-size:.82rem;font-weight:500;border:0;background:none;color:var(--ink-2);padding:5px 14px;border-radius:999px;cursor:pointer}.segmented button.is-active{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px #0b0b0b1a}.segmented--tabs{align-self:flex-start}.legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px;padding:0;font-size:.82rem;color:var(--ink-2)}.legend li{display:flex;align-items:center;gap:7px}.legend__swatch{width:10px;height:10px;border-radius:3px;flex:0 0 10px}.tooltip{background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);padding:10px 12px;font-size:.82rem;min-width:210px}.tooltip__title{font-weight:600;margin-bottom:6px}.tooltip ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.tooltip li{display:grid;grid-template-columns:10px 1fr auto;align-items:center;gap:8px}.tooltip__swatch{width:10px;height:10px;border-radius:3px}.tooltip__name{color:var(--ink-2)}.tooltip__value{font-variant-numeric:tabular-nums;font-weight:600}.tooltip__total{display:flex;justify-content:space-between;gap:12px;margin-top:7px;padding-top:7px;border-top:1px solid var(--line);font-weight:600;font-variant-numeric:tabular-nums}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#0b0b0b80;display:grid;place-items:center;padding:20px;overflow-y:auto}.modal{background:var(--surface);border-radius:var(--radius);box-shadow:0 20px 60px #0000004d;width:100%;max-width:520px;max-height:calc(100vh - 40px);display:flex;flex-direction:column}.modal--wide{max-width:860px}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;border-bottom:1px solid var(--line)}.modal__header h2{font-size:1.05rem}.modal__body{padding:20px;overflow-y:auto}.modal__footer{display:flex;justify-content:flex-end;gap:8px;padding:14px 20px;border-top:1px solid var(--line)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:.76rem;font-weight:600;padding:3px 9px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.badge--brouillon{background:var(--surface-3);color:var(--ink-2);border-color:var(--line-strong)}.badge--soumis{background:var(--warning-wash);color:var(--warning-ink);border-color:var(--warning)}.badge--valide{background:var(--good-wash);color:var(--good-ink);border-color:var(--good)}.badge--rejete{background:var(--critical-wash);color:var(--critical-ink);border-color:var(--critical)}.notice{display:flex;align-items:flex-start;gap:10px;padding:11px 14px;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface-2);font-size:.88rem}.notice__icon{font-weight:700;line-height:1.4}.notice__body{flex:1}.notice__close{background:none;border:0;cursor:pointer;color:inherit;opacity:.6;font:inherit}.notice--success{background:var(--good-wash);border-color:var(--good);color:var(--good-ink)}.notice--warning{background:var(--warning-wash);border-color:var(--warning);color:var(--warning-ink)}.notice--error{background:var(--critical-wash);border-color:var(--critical);color:var(--critical-ink)}.notice--info{background:var(--accent-wash);border-color:var(--accent);color:var(--accent-strong)}.spinner{display:flex;align-items:center;gap:10px;padding:28px;justify-content:center;color:var(--ink-muted);font-size:.88rem}.spinner__ring{width:18px;height:18px;border:2px solid var(--line-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner__ring{animation-duration:2s}}.detail{display:flex;flex-direction:column;gap:20px}.detail__meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:0}.detail__meta dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.03em;color:var(--ink-muted);font-weight:600}.detail__meta dd{margin:3px 0 0;font-size:.9rem}.detail__block h3{font-size:.95rem;margin-bottom:8px}.detail__block p{font-size:.9rem;color:var(--ink-2)}.timeline{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:14px}.timeline li{position:relative}.timeline li:before{content:"";position:absolute;left:-25px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}.timeline__head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.timeline__action{font-weight:600;font-size:.9rem}.timeline__date{font-size:.8rem;color:var(--ink-muted);font-variant-numeric:tabular-nums}.timeline__meta{font-size:.8rem;color:var(--ink-muted)}.timeline__comment{margin-top:4px;font-size:.88rem;background:var(--surface-2);border-left:2px solid var(--line-strong);padding:6px 10px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.decision__summary{font-size:.9rem}.decision__list{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:var(--radius-sm);max-height:200px;overflow-y:auto;font-size:.85rem}.decision__list li{display:flex;justify-content:space-between;gap:12px;padding:6px 10px;border-bottom:1px solid var(--line)}.decision__list li:last-child{border-bottom:0}.decision__list .num{font-variant-numeric:tabular-nums;white-space:nowrap}@media(max-width:1024px){.app__header{padding:12px 16px}.app__nav{order:3;width:100%;margin-inline-start:0;overflow-x:auto}.app__user{margin-inline-start:auto}.app__main{padding:16px}}@media(max-width:640px){body{font-size:14px}.app__main{padding:12px}.card,.hero{padding:14px}.page__header,.card__header{flex-direction:column;align-items:stretch}.filterbar .inline-field select{min-width:0;width:100%}.inline-field{width:100%}.modal-backdrop{padding:0;align-items:stretch}.modal{max-width:none;max-height:100vh;border-radius:0}}@media print{.app__header,.page__actions,.card__actions,.filterbar,.rowactions,.actionbar{display:none!important}body{background:#fff}.card,.hero,.tile{box-shadow:none;break-inside:avoid}}
