:root{--ink: #16181D;--ink-2: #23262E;--ink-3: #31353F;--rail-text: #A9AEB9;--paper: #F5F3EF;--surface: #FFFFFF;--surface-2: #FAF9F6;--line: #E4E0D8;--line-2: #EEEBE5;--text: #1C1E23;--text-2: #5B606B;--text-3: #8A8F99;--accent: #E8590C;--accent-2: #C94A06;--accent-soft: #FDEBDD;--ok: #1F8A4C;--ok-soft: #E3F4EA;--warn: #B26A00;--warn-soft: #FFF1D6;--danger: #C62D2D;--danger-soft: #FCE6E4;--info: #2B5FB8;--info-soft: #E5EDFB;--radius: 10px;--radius-sm: 7px;--shadow: 0 1px 2px rgba(22, 24, 29, .05), 0 4px 16px rgba(22, 24, 29, .05);--shadow-lg: 0 18px 48px rgba(22, 24, 29, .22);--rail: 64px;--rail-open: 228px;--font: "Inter", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;--mono: "JetBrains Mono", "Cascadia Mono", "SFMono-Regular", Consolas, monospace;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--paper: #111317;--surface: #1A1D23;--surface-2: #20242B;--line: #2E333C;--line-2: #262A32;--text: #ECEDEF;--text-2: #A7ACB6;--text-3: #7D838E;--accent-soft: #3A2215;--ok-soft: #14301F;--warn-soft: #33270F;--danger-soft: #3A1A1A;--info-soft: #172640;--ink: #0B0C0F;--ink-2: #16181D;--ink-3: #23262E;--shadow: 0 1px 2px rgba(0,0,0,.3);color-scheme:dark}}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font);font-size:14.5px;line-height:1.45;color:var(--text);background:var(--paper);-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:var(--accent-2);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;letter-spacing:-.01em}small{font-size:12px}.block{display:block}.muted{color:var(--text-3)}.small{font-size:12.5px}.strong{font-weight:650}.num{font-variant-numeric:tabular-nums;white-space:nowrap}.neg,.danger-text{color:var(--danger)}.warn-text{color:var(--warn)}.ok-text{color:var(--ok)}.r{text-align:right}.icon{flex:none}.shell{display:flex;min-height:100%}.rail{position:fixed;inset:0 auto 0 0;width:var(--rail);background:var(--ink);color:var(--rail-text);display:flex;flex-direction:column;z-index:30;transition:width .18s ease;overflow:hidden}.rail-open .rail{width:var(--rail-open)}.rail-brand{display:flex;align-items:center;gap:12px;height:60px;padding:0 16px;flex:none}.brand-name{color:#fff;font-weight:700;letter-spacing:.02em;white-space:nowrap}.brand-name b{color:var(--accent);font-weight:600;margin-left:6px}.rail-nav{flex:1;overflow-y:auto;padding:6px 0}.rail-link{display:flex;align-items:center;gap:14px;height:44px;margin:2px 10px;padding:0 11px;border-radius:8px;color:var(--rail-text);white-space:nowrap;border:0;background:none;font:inherit;cursor:pointer;width:calc(100% - 20px);text-align:left;position:relative}.rail-link:hover{background:var(--ink-2);color:#fff;text-decoration:none}.rail-link.active{background:var(--ink-3);color:#fff}.rail-link.active:before{content:"";position:absolute;left:-10px;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.rail-label{opacity:0;transition:opacity .12s}.rail-open .rail-label{opacity:1}.rail-toggle{margin-bottom:14px}.main{flex:1;margin-left:var(--rail);min-width:0;display:flex;flex-direction:column;transition:margin-left .18s ease}.rail-open .main{margin-left:var(--rail-open)}.topbar{position:sticky;top:0;z-index:20;height:56px;display:flex;align-items:center;gap:12px;padding:0 24px;background:color-mix(in srgb,var(--paper) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line-2)}.topbar-menu{display:none}.topbar-soc{display:flex;align-items:center;gap:8px;color:var(--text-2);min-width:0}.topbar-soc strong{color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-soc select{font:inherit;font-weight:600;border:0;background:transparent;color:var(--text);cursor:pointer;max-width:260px}.topbar-user{margin-left:auto;position:relative}.avatar{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:#fff;font-weight:600;font-size:13px;cursor:pointer}.menu-pop{position:absolute;right:0;top:44px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:220px;padding:6px;z-index:40}.menu-head{padding:8px 10px 10px;border-bottom:1px solid var(--line-2);margin-bottom:4px;display:flex;flex-direction:column}.menu-head small{color:var(--text-3)}.menu-pop button{display:flex;gap:10px;align-items:center;width:100%;border:0;background:none;padding:9px 10px;border-radius:6px;font:inherit;color:var(--text);cursor:pointer}.menu-pop button:hover{background:var(--surface-2)}.content{padding:22px 24px 48px;max-width:1440px;width:100%;margin:0 auto}.bottombar,.drawer-backdrop{display:none}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px;flex-wrap:wrap}.page-title{display:flex;align-items:center;gap:8px;min-width:0}.page-title h1{font-size:22px;font-weight:700}.page-sub{color:var(--text-2);margin-top:2px;font-size:13.5px;display:flex;gap:6px;align-items:center;flex-wrap:wrap}.page-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.section-title{margin:18px 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);font-weight:650}.section-title:first-child{margin-top:0}.foot-note{color:var(--text-3);font-size:12px;text-align:center;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 14px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;font-weight:560;cursor:pointer;white-space:nowrap;transition:background .12s,border-color .12s,transform .06s;text-decoration:none!important}.btn:hover{border-color:var(--text-3)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:default}.btn:focus-visible,.input:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--line-2);border-color:transparent;color:var(--text)}.btn-sm{height:30px;padding:0 10px;font-size:13px}.btn-icon{width:38px;padding:0}.btn-sm.btn-icon{width:30px}.btn-block{width:100%}.icon-btn{width:30px;height:30px;border:0;border-radius:6px;background:transparent;color:var(--text-3);cursor:pointer;font-size:14px}.icon-btn:hover:not(:disabled){background:var(--danger-soft);color:var(--danger)}.icon-btn:disabled{opacity:.3}.link{border:0;background:none;color:var(--accent-2);cursor:pointer;font:inherit;font-size:12.5px;padding:0 4px}.spin{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.input{width:100%;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;min-width:0}textarea.input{height:auto;padding:9px 11px;resize:vertical}select.input{padding-right:28px}.input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px var(--accent-soft)}.input.num,input.num{text-align:right}input[type=color].input{padding:3px;width:64px}.field{display:flex;flex-direction:column;gap:5px;min-width:0}.field-label{font-size:12.5px;font-weight:600;color:var(--text-2)}.field-hint{font-size:12px;color:var(--text-3)}.field-hint.is-error{color:var(--danger)}.static{min-height:38px;display:flex;align-items:center;font-weight:600}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:start}.form-grid.cols-1{grid-template-columns:1fr}.form-grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}.span-3{grid-column:span 3}.span-4{grid-column:1 / -1}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;min-height:38px}.check input{width:17px;height:17px;accent-color:var(--accent)}.checks{display:flex;flex-wrap:wrap;gap:4px 18px}.form-error{color:var(--danger);background:var(--danger-soft);padding:9px 12px;border-radius:var(--radius-sm);font-size:13.5px}.logo-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.logo-field img{max-height:48px;max-width:160px;border:1px solid var(--line);border-radius:6px;padding:4px;background:#fff}.search{position:relative;flex:1 1 260px;min-width:200px}.search .icon{position:absolute;left:11px;top:10px;color:var(--text-3);pointer-events:none}.search .input{padding-left:36px}.filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:14px}.filters>.input,.filters>select{width:auto;flex:0 1 190px}.filters>input[type=date]{flex:0 1 160px}.combo{position:relative;flex:1}.combo-list{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 4px);list-style:none;margin:0;padding:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-lg);max-height:320px;overflow-y:auto}.combo-list li{padding:8px 10px;border-radius:6px;cursor:pointer}.combo-list li.hi{background:var(--accent-soft)}.combo-item{display:flex;justify-content:space-between;gap:12px;align-items:center}.combo-item>div{display:flex;flex-direction:column;min-width:0}.combo-item strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-item small{color:var(--text-3)}.article-picker{display:flex;align-items:center;gap:10px;color:var(--text-3)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;min-width:0}.card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px 0;min-height:44px}.card-head h3{font-size:14.5px;font-weight:650;display:flex;gap:8px;align-items:center}.card-actions{display:flex;gap:8px;align-items:center}.card-body{padding:16px 18px}.card.narrow{max-width:480px}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.span-2-lg{grid-column:1 / -1}.stack{display:flex;flex-direction:column}.stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-bottom:18px}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;position:relative;overflow:hidden}.stat.clickable{cursor:pointer}.stat.clickable:hover{border-color:var(--text-3)}.stat-label{font-size:12.5px;color:var(--text-2);font-weight:560}.stat-value{font-size:21px;font-weight:700;margin-top:4px;letter-spacing:-.02em}.stat-sub{font-size:12px;color:var(--text-3);margin-top:2px}.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:transparent}.stat-accent:before{background:var(--accent)}.stat-danger:before{background:var(--danger)}.stat-danger .stat-value{color:var(--danger)}.stat-warn:before{background:var(--warn)}.badge{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:99px;font-size:12px;font-weight:600;white-space:nowrap;background:var(--line-2);color:var(--text-2)}.badge-ok{background:var(--ok-soft);color:var(--ok)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.badge-info{background:var(--info-soft);color:var(--info)}.badges{display:inline-flex;gap:5px;flex-wrap:wrap}.mini-list{list-style:none;margin:0;padding:0}.mini-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid var(--line-2);cursor:pointer}.mini-list li:last-child{border-bottom:0}.mini-list li:hover strong{color:var(--accent-2)}.mini-list li>span:first-child{display:flex;flex-direction:column;min-width:0}.mini-list li strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mini-list small{color:var(--text-3)}.stack-r{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.todo{list-style:none;margin:0;padding:0}.todo li{display:grid;grid-template-columns:1fr 40px 120px;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--line-2);cursor:pointer}.todo li:last-child{border-bottom:0}.todo li strong{text-align:right;font-size:17px}.todo li .num{text-align:right;color:var(--text-2)}.bars{list-style:none;margin:0;padding:0}.bars li{display:grid;grid-template-columns:64px 1fr 110px;gap:10px;align-items:center;padding:4px 0;font-size:13px}.bars .bar{height:8px;background:var(--line-2);border-radius:4px;overflow:hidden}.bars .bar i{display:block;height:100%;background:var(--accent);border-radius:4px}.bars .num{text-align:right}.table-wrap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow-x:auto;transition:opacity .15s}.card .table-wrap{border:0;border-radius:0 0 var(--radius) var(--radius)}.table-wrap.is-loading{opacity:.55}.table{width:100%;border-collapse:collapse}.table th{text-align:left;font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);padding:11px 14px;border-bottom:1px solid var(--line);background:var(--surface-2);white-space:nowrap}.table td{padding:11px 14px;border-bottom:1px solid var(--line-2);vertical-align:middle}.table tbody tr:last-child td{border-bottom:0}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--surface-2)}.table tfoot td{border-top:1px solid var(--line);border-bottom:0;font-weight:650;background:var(--surface-2)}.table.compact td,.table.compact th{padding:8px 10px}.table tr.is-cancelled td{color:var(--text-3);text-decoration:line-through;text-decoration-color:var(--text-3)}.table tr.is-cancelled td .badge,.table tr.is-cancelled td .btn{text-decoration:none}.table tr.is-flagged td:first-child{box-shadow:inset 3px 0 0 var(--warn)}.table tr.text-line td{font-style:italic;color:var(--text-2);background:var(--surface-2)}.table input.input{height:34px}.row-actions{display:inline-flex;gap:6px;justify-content:flex-end;width:100%}.aff-cell{display:flex;gap:4px;align-items:center}.empty{padding:42px 16px;text-align:center;color:var(--text-3);background:var(--surface);border:1px dashed var(--line);border-radius:var(--radius)}.loading{display:flex;align-items:center;gap:10px;padding:40px;justify-content:center;color:var(--text-3)}.error-box{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--danger-soft);color:var(--danger);border-radius:var(--radius)}.pager{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:14px;color:var(--text-2)}.selection-bar{position:sticky;top:64px;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--ink);color:#fff;padding:10px 10px 10px 16px;border-radius:var(--radius);margin-bottom:12px}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin-bottom:16px;overflow-x:auto;scrollbar-width:none}.tab{border:0;background:none;padding:10px 14px;font:inherit;font-weight:560;color:var(--text-2);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;display:inline-flex;gap:6px;align-items:center}.tab:hover{color:var(--text)}.tab.active{color:var(--text);border-bottom-color:var(--accent)}.tab-count{background:var(--line-2);color:var(--text-2);border-radius:99px;padding:0 7px;font-size:11.5px;line-height:19px}.lines{padding:6px 0 0}.line{display:grid;grid-template-columns:minmax(220px,1fr) 84px 68px 116px 78px 96px 116px 64px;gap:8px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line-2)}.line-head{font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;color:var(--text-3);padding-top:4px;padding-bottom:8px}.line label>span{display:none}.line .l-des{display:flex;flex-direction:column;gap:2px}.line .l-mt{text-align:right;font-weight:600}.line .l-act{display:flex;justify-content:flex-end}.line-add{padding:12px 16px 16px}.doc-bottom{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:16px;align-items:start}.totals .card-body{padding:16px 20px}.tot-row{display:flex;justify-content:space-between;align-items:baseline;padding:5px 0}.tot-row small{color:var(--text-3);margin-left:4px}.tot-ttc{border-top:2px solid var(--ink);margin-top:6px;padding-top:10px;font-size:19px;font-weight:750}.lettres{margin:10px 0 0;font-size:12.5px;color:var(--text-2);font-style:italic}.kv{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px 24px;margin:0}.kv dt{font-size:12px;color:var(--text-3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.kv dd{margin:3px 0 0;font-weight:560;display:flex;flex-direction:column}.kv dd small{color:var(--text-3);font-weight:400}.kv-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-weight:650}.op-lines{margin-top:16px;display:flex;flex-direction:column;gap:8px}.op-line{display:grid;grid-template-columns:1fr 120px 140px 34px;gap:10px;align-items:center;padding:8px 10px;background:var(--surface-2);border-radius:var(--radius-sm)}.op-line.op-line-3{grid-template-columns:1fr 120px 34px}.prix-input{max-width:130px;height:34px;margin-left:auto}.op-line label{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--text-3)}.actions-end{display:flex;justify-content:flex-end;margin-top:16px}.chart{margin:0}.chart svg{width:100%;height:auto;display:block}.chart .grid{stroke:var(--line-2)}.chart .axis{font-size:11px;fill:var(--text-3)}.chart .bar-a{fill:var(--accent)}.chart .bar-b{fill:var(--text-3);opacity:.45}.legend{display:flex;gap:6px 16px;align-items:center;font-size:12.5px;color:var(--text-2);margin-top:6px;flex-wrap:wrap}.lg{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:-10px}.lg-a{background:var(--accent)}.lg-b{background:var(--text-3);opacity:.45}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f101480;display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 16px;z-index:100;overflow-y:auto;animation:fade .12s ease}.modal{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-lg);width:100%;max-width:620px;display:flex;flex-direction:column;max-height:88vh;animation:rise .16s ease}.modal-sm{max-width:440px}.modal-lg{max-width:860px}.modal-xl{max-width:1180px}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 14px 10px 20px;border-bottom:1px solid var(--line-2)}.modal-head h2{font-size:17px}.modal-body{padding:18px 20px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:12px 20px;border-top:1px solid var(--line-2);background:var(--surface-2);border-radius:0 0 14px 14px;flex-wrap:wrap}.foot-info{margin-right:auto;font-size:13px;color:var(--text-2)}.foot-info.danger-text{color:var(--danger)}.confirm-msg{margin:0}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.toasts{position:fixed;right:18px;bottom:18px;display:flex;flex-direction:column;gap:8px;z-index:200}.toast{background:var(--ink);color:#fff;padding:11px 16px;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);max-width:380px;animation:rise .16s ease;border-left:3px solid var(--ok)}.toast-error{border-left-color:var(--danger)}.toast-warn{border-left-color:var(--warn, #d97706)}.auth,.splash{min-height:100%;display:grid;place-items:center;padding:20px;background:var(--ink);background-image:radial-gradient(circle at 20% 10%,rgba(232,89,12,.18),transparent 40%)}.splash{background:var(--paper)}.auth-card{width:100%;max-width:380px;background:var(--surface);border-radius:16px;padding:28px;display:flex;flex-direction:column;gap:16px;box-shadow:var(--shadow-lg)}.auth-brand{display:flex;gap:14px;align-items:center;font-size:18px;margin-bottom:6px}.auth-brand b{color:var(--accent)}.auth-brand small{display:block;font-size:12.5px;color:var(--text-3)}.soc-list{display:flex;flex-direction:column;gap:8px}.soc-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);cursor:pointer;font:inherit;text-align:left;color:var(--text)}.soc-item:hover{border-color:var(--accent)}.soc-item span{flex:1;display:flex;flex-direction:column}.soc-item small{color:var(--text-3)}@media (max-width: 1100px){.form-grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.span-3{grid-column:span 2}.doc-bottom{grid-template-columns:1fr}.line{grid-template-columns:minmax(160px,1fr) 72px 58px 98px 66px 90px 100px 60px}}@media (max-width: 860px){body{font-size:15px}.rail,.rail-open .rail{display:none}.main,.rail-open .main{margin-left:0}.topbar{padding:0 12px;padding-top:env(safe-area-inset-top);height:calc(52px + env(safe-area-inset-top))}.topbar-menu{display:grid;place-items:center;width:38px;height:38px;border:0;background:none;color:var(--text);border-radius:8px}.content{padding:14px 12px calc(84px + env(safe-area-inset-bottom))}.page-head{margin-bottom:12px}.page-title h1{font-size:19px}.page-actions{width:100%}.page-actions .btn{flex:1 1 auto}.page-actions .btn-icon{flex:0 0 38px}.btn-block-mobile{height:48px;font-size:16px}.grid-2,.form-grid,.form-grid.cols-4{grid-template-columns:1fr}.span-2,.span-3,.span-4{grid-column:auto}.stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.stat{padding:11px 12px}.stat-value{font-size:17px}.filters>.input,.filters>select,.filters>input[type=date]{flex:1 1 140px}.selection-bar{top:60px;flex-wrap:wrap}.bottombar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--ink);padding:6px 4px calc(6px + env(safe-area-inset-bottom));justify-content:space-around}.bb-link{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--rail-text);font-size:11px;padding:4px 0;border:0;background:none;font-family:inherit;cursor:pointer;text-decoration:none!important}.bb-link.active{color:#fff}.bb-link.active .icon{color:var(--accent)}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:60}.drawer{position:absolute;inset:0 auto 0 0;width:270px;background:var(--ink);padding:env(safe-area-inset-top) 0 16px;overflow-y:auto;animation:slide .18s ease}@keyframes slide{0%{transform:translate(-100%)}}.table-wrap{background:transparent;border:0;overflow:visible}.card .table-wrap{padding:0 10px 10px}.table thead{display:none}.table,.table tbody,.table tfoot,.table tr,.table td{display:block;width:100%}.table tr{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:8px;padding:10px 12px;display:grid;grid-template-columns:1fr 1fr;gap:4px 12px}.table td{border:0;padding:2px 0;text-align:left!important;min-width:0}.table td.r{text-align:right!important}.table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--text-3);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.table td.primary{grid-column:1 / -1;font-size:15px}.table td.primary:before,.table td[data-label=""]:before{display:none}.table td.hm{display:none}.table td:empty{display:none}.table tfoot tr{background:var(--surface-2)}.table tbody tr:last-child td{border-bottom:0}.table tr.clickable:hover td{background:transparent}.line-head{display:none}.line{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;margin:0 10px 10px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-2)}.line .l-des{grid-column:1 / -1}.line label{display:flex;flex-direction:column;gap:3px}.line label>span{display:block;font-size:11px;color:var(--text-3);font-weight:600}.line .l-mt{grid-column:span 2;text-align:left;align-self:center;font-size:16px}.op-line{grid-template-columns:1fr 1fr}.op-line>div:first-child{grid-column:1 / -1}.modal-backdrop{padding:0;align-items:flex-end}.modal,.modal-lg,.modal-xl,.modal-sm{max-width:none;max-height:94vh;border-radius:16px 16px 0 0}.modal-foot{border-radius:0;padding-bottom:calc(12px + env(safe-area-inset-bottom))}.toasts{left:12px;right:12px;bottom:calc(76px + env(safe-area-inset-bottom))}.todo li{grid-template-columns:1fr 32px 110px}}.print-root{background:#e9e6e0;min-height:100%;padding:24px 12px;color:#1a1a1a}.print-toolbar{max-width:210mm;margin:0 auto 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.sheet{background:#fff;width:210mm;min-height:297mm;margin:0 auto;padding:14mm 14mm 30mm;position:relative;box-shadow:0 6px 30px #00000026;font-size:10.5pt;line-height:1.4}.pr-head{display:flex;justify-content:space-between;gap:20px;padding-bottom:8mm;border-bottom:3px solid var(--doc)}.pr-soc{display:flex;flex-direction:column;gap:6px;max-width:55%}.pr-logo{max-height:22mm;max-width:60mm;object-fit:contain;align-self:flex-start}.pr-socname{font-size:17pt;font-weight:800;color:var(--doc)}.pr-socinfo{display:flex;flex-direction:column;font-size:9pt;color:#555}.pr-socinfo strong{color:#1a1a1a;font-size:10.5pt}.pr-title{text-align:right}.pr-title h1{font-size:20pt;text-transform:uppercase;letter-spacing:.04em;color:#1a1a1a;font-weight:800}.pr-num{font-size:12pt;font-weight:700;color:var(--doc);margin:2px 0 4px}.pr-meta{display:flex;justify-content:space-between;gap:10mm;margin:7mm 0}.pr-infos{display:flex;flex-direction:column;gap:3px;font-size:9.5pt}.pr-infos span{display:inline-block;min-width:34mm;color:#777}.pr-client{min-width:78mm;border:1px solid #ddd;border-left:3px solid var(--doc);padding:4mm 5mm;display:flex;flex-direction:column}.pr-client small{color:#888;text-transform:uppercase;letter-spacing:.06em;font-size:7.5pt}.pr-client strong{font-size:12pt;margin:1mm 0}.pr-table{width:100%;border-collapse:collapse}.pr-table th{background:#1a1a1a;color:#fff;font-size:8.5pt;text-transform:uppercase;letter-spacing:.03em;padding:2.4mm 2mm;text-align:left}.pr-table th.r,.pr-table td.r{text-align:right}.pr-table td{padding:2.2mm 2mm;border-bottom:1px solid #e6e6e6;vertical-align:top;font-variant-numeric:tabular-nums}.pr-table tbody tr:nth-child(2n) td{background:#fafafa}.pr-table .pr-text td{color:#666;background:#f5f5f5}.pr-bottom{display:flex;justify-content:space-between;gap:10mm;margin-top:6mm;align-items:flex-start}.pr-tva table{border-collapse:collapse;font-size:9pt}.pr-tva th,.pr-tva td{padding:1.4mm 3mm;border-bottom:1px solid #e6e6e6;text-align:left}.pr-tva .r{text-align:right}.pr-totals{min-width:74mm;font-variant-numeric:tabular-nums}.pr-totals>div{display:flex;justify-content:space-between;padding:1.5mm 0}.pr-ttc{border-top:2px solid #1a1a1a;margin-top:1mm;padding-top:2.5mm!important;font-size:13pt;font-weight:800}.pr-strong{font-weight:700;color:var(--doc)}.pr-lettres{margin:6mm 0 0;font-size:9.5pt}.pr-conditions{margin-top:5mm;font-size:9pt;color:#444;white-space:pre-line}.pr-sign{display:flex;justify-content:space-between;gap:10mm;margin-top:10mm}.pr-sign div{flex:1;max-width:75mm;min-height:26mm;font-size:8.5pt;color:#777}.pr-sign div:not(:empty){border:1px dashed #bbb;padding:2mm 3mm}.pr-foot{position:absolute;left:14mm;right:14mm;bottom:10mm;border-top:1px solid #ddd;padding-top:2.5mm;font-size:7.5pt;color:#777;text-align:center;display:flex;flex-direction:column;gap:1mm}.pr-stamp{position:absolute;top:95mm;left:50%;transform:translate(-50%) rotate(-18deg);font-size:46pt;font-weight:900;color:#c62d2d29;border:6px solid rgba(198,45,45,.16);padding:2mm 10mm;pointer-events:none;letter-spacing:.1em}.pr-stamp-soft{color:#00000012;border-color:#00000012}@media (max-width: 860px){.print-root{padding:8px 0}.sheet{width:100%;min-height:auto;padding:18px 14px 90px;box-shadow:none}.pr-head,.pr-meta,.pr-bottom{flex-direction:column}.pr-title{text-align:left}.pr-client{min-width:0}.pr-table{font-size:9pt}.print-toolbar{padding:0 12px}}@page{size:A4;margin:0}@media print{body{background:#fff}.no-print,.rail,.topbar,.bottombar,.page-head,.tabs,.filters,.toasts{display:none!important}.print-root{padding:0;background:#fff}.sheet{box-shadow:none;margin:0;width:210mm;min-height:297mm}.pr-table tr{break-inside:avoid}.main,.rail-open .main{margin:0}.content{padding:10mm;max-width:none}.table-wrap{border:0}.table.inv input{border:0;border-bottom:1px solid #999;border-radius:0}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}}.pad-x{padding:12px 18px;margin:0}.check-row{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.mr-auto{margin-right:auto}.champs-grid{margin-top:0}.pr-champs{margin-top:4px;font-size:11.5px}.pr-champs span{display:block}.import-file{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}.import-file .btn{cursor:pointer}.import-apercu,.import-err{max-height:260px;overflow:auto;margin-bottom:10px}.import-map .field-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-badge{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.shell:not(.rail-open) .rail .rail-badge{position:absolute;top:5px;left:30px;min-width:16px;height:16px;font-size:10px;padding:0 4px}.jauge{height:8px;border-radius:4px;background:var(--line-2);overflow:hidden;min-width:80px}.jauge i{display:block;height:100%;background:var(--ok);border-radius:4px}.jauge.warn i{background:var(--warn)}.jauge.danger i{background:var(--danger)}.budget-table td.num,.budget-table th.r{white-space:nowrap}.approb-steps{list-style:none;margin:0;padding:0;display:grid;gap:10px}.approb-steps li{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start}.approb-steps .dot{width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--line-2);color:var(--text-2);font-size:12px;font-weight:700}.approb-steps .dot.ok{background:var(--ok-soft);color:var(--ok)}.approb-steps .dot.ko{background:var(--danger-soft);color:var(--danger)}.approb-steps small{display:block;color:var(--text-3)}.approb-steps .motif{margin-top:3px;font-style:italic;color:var(--text-2)}.approb-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.alert-box{border-radius:var(--radius-sm);padding:10px 12px;font-size:13px;margin-bottom:12px}.alert-box.warn{background:var(--warn-soft);color:var(--warn)}.alert-box.danger{background:var(--danger-soft);color:var(--danger)}.alert-box.info{background:var(--info-soft);color:var(--info)}.circuit{list-style:none;margin:0 0 6px;padding:0;display:grid;gap:10px}.circuit-etape{border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.circuit-etape.is-en_cours{border-color:var(--warn);background:var(--warn-soft)}.circuit-etape.is-a_venir{opacity:.7}.circuit-head{display:flex;align-items:center;gap:8px}.circuit-head .badge{margin-left:auto}.circuit-num{width:22px;height:22px;border-radius:50%;background:var(--ink, #1f1f1f);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.circuit-votes{list-style:none;margin:8px 0 0 30px;padding:0;display:grid;gap:4px;font-size:13px}.circuit-votes li{display:flex;gap:8px;align-items:baseline}.circuit-votes .dot{width:18px;height:18px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--line-2);font-size:11px;flex:none}.circuit-votes .dot.ok{background:var(--ok-soft);color:var(--ok)}.circuit-votes .dot.ko{background:var(--danger-soft);color:var(--danger)}.circuit-votes small{color:var(--text-3)}.circuit-votes .motif{font-style:italic;color:var(--text-2)}.matrice th.c,.matrice td.c{text-align:center}.etape-edit{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px;margin-bottom:10px}.etape-edit-head{display:flex;gap:8px;align-items:center;margin-bottom:10px}.etape-edit-head .input{flex:1}.checks-users{display:flex;flex-wrap:wrap;gap:6px 16px}.audit-diff{margin:4px 0 0;padding-left:16px;font-size:12.5px;color:var(--text-2)}.audit-diff s{color:var(--text-3)}.audit-pre{background:var(--surface-2);padding:10px;border-radius:6px;font-size:12px;white-space:pre-wrap;word-break:break-word;max-height:50vh;overflow:auto}.audit-mini li>span{display:flex;flex-direction:column;gap:2px}.mini-list .audit-diff li{display:list-item;padding:0;border:0;cursor:default}.totp-setup{display:flex;gap:18px;flex-wrap:wrap;align-items:flex-start}.totp-setup img{border:1px solid var(--line);border-radius:8px;background:#fff}.totp-setup ol{padding-left:18px;margin:0 0 10px}.totp-key{font-size:12px;background:var(--surface-2);padding:2px 6px;border-radius:4px;word-break:break-all}.banniere{display:flex;align-items:center;gap:10px;padding:10px 16px;margin:-6px 0 14px;border-radius:var(--radius-sm);font-size:13.5px}.banniere.warn{background:var(--warn-soft);color:var(--warn)}.banniere.danger{background:var(--danger-soft);color:var(--danger)}.banniere.info{background:var(--info-soft, #E7F0FB);color:var(--info, #1F5FA8)}.banniere a{font-weight:650;margin-left:auto}.base-ligne{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:2px 0}.bases-svg{display:grid;gap:2px;min-width:280px}.tarif-tag{color:var(--ok);font-weight:600}.lots-btn{display:inline-block;margin-top:3px;font-size:12px;border:1px dashed var(--line);background:var(--surface-2);color:var(--text-2);border-radius:5px;padding:1px 7px;cursor:pointer}.scan-row{display:flex;gap:8px}.scan-row .input{flex:1;font-size:18px}.scan-dernier{margin-top:12px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--ok-soft)}.scan-qte{display:flex;align-items:center;gap:4px}.scan-qte .input{width:74px;text-align:center}.pad-list li{padding-left:16px;padding-right:16px;cursor:pointer}.camera-scan{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;z-index:1000;display:flex;align-items:center;justify-content:center}.camera-scan video{width:100%;height:100%;object-fit:cover}.camera-viseur{position:absolute;width:70%;height:26%;border:3px solid var(--accent);border-radius:12px;box-shadow:0 0 0 9999px #00000059}.camera-scan p{position:absolute;bottom:30px;color:#fff;font-size:14px}.pr-lots{font-size:8pt;color:#666}.signature-pad{position:relative;border:1px dashed var(--line);border-radius:var(--radius-sm);background:#fff;margin-top:8px}.signature-pad canvas{width:100%;height:190px;display:block;touch-action:none}.signature-pad .link{position:absolute;top:6px;right:10px}.signature-ligne{position:absolute;left:12px;bottom:6px;font-size:11px;color:#999;pointer-events:none}.preuves{display:flex;flex-wrap:wrap;gap:12px}.preuves figure{margin:0}.preuves figcaption{font-size:12px;color:var(--text-3)}.preuve-sig{max-width:240px;max-height:110px;border:1px solid var(--line);border-radius:6px;background:#fff}.preuve-photo{max-width:240px;max-height:180px;border-radius:6px;display:block;margin-top:8px}.offline-bar{display:flex;gap:10px;align-items:center;padding:8px 14px;border-radius:var(--radius-sm);margin-bottom:12px;font-size:13.5px;background:var(--info-soft);color:var(--info)}.offline-bar.off{background:var(--warn-soft);color:var(--warn)}.offline-bar button{margin-left:auto}.liv-articles li{display:flex;align-items:center;justify-content:space-between;gap:6px 10px;flex-wrap:wrap}.liv-articles li>span:first-child{flex:1 1 180px;min-width:0}.liv-qte{margin-left:auto}.liv-qte{display:flex;align-items:center;gap:4px}.liv-qte .input{width:64px;text-align:center}.liv-prix{width:90px!important}.liv-total{display:flex;justify-content:space-between;font-size:18px;font-weight:800;padding:6px 0}.billetage{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.billetage label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}.pr-signature{display:block;max-height:60px;max-width:200px;margin:6px auto 0}.segmented{display:inline-flex;gap:2px;padding:3px;background:var(--line-2);border-radius:10px;margin:-6px 0 16px;max-width:100%;overflow-x:auto}.segmented button{border:0;background:transparent;padding:6px 14px;border-radius:8px;font:inherit;font-size:13px;font-weight:600;color:var(--muted);cursor:pointer;white-space:nowrap}.segmented button.active{background:var(--surface);color:var(--text);box-shadow:0 1px 2px #00000014}.jauge-mini{display:inline-flex;align-items:center;gap:8px;min-width:120px}.jauge-mini .jt{display:block;width:70px;height:6px;border-radius:3px;background:var(--line-2);overflow:hidden}.jauge-mini i{display:block;height:100%;background:var(--ok)}.jauge-mini i.warn{background:var(--warn)}.jauge-mini i.over{background:var(--danger)}.jauge-mini b{font-size:12px;font-variant-numeric:tabular-nums;margin-left:auto}.rap-ca{display:flex;flex-direction:column;align-items:flex-end;gap:3px}.rap-bar{display:block;width:100%;min-width:70px;max-width:160px;height:4px;background:var(--line-2);border-radius:2px;overflow:hidden}.rap-bar i{display:block;height:100%;background:var(--accent);border-radius:2px}.table tfoot td{font-weight:700;border-top:2px solid var(--line)}.aging-bar{display:flex;height:26px;border-radius:8px;overflow:hidden;margin:-4px 0 16px;font-size:11px;font-weight:600}.aging-bar span{display:flex;align-items:center;justify-content:center;color:#fff;white-space:nowrap;overflow:hidden;min-width:3px}.aging-bar .ag-0{background:var(--ok)}.aging-bar .ag-1{background:#c9a227}.aging-bar .ag-2{background:var(--warn)}.aging-bar .ag-3{background:#d2541e}.aging-bar .ag-4{background:var(--danger)}.ventil{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}.ventil label{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted)}@media (max-width: 520px){.ventil{grid-template-columns:repeat(3,1fr)}}.menu-version{display:block;padding:8px 14px 4px;color:var(--muted);font-size:11px;border-top:1px solid var(--line-2);margin-top:4px}.dropzone{border:2px dashed var(--line);border-radius:12px;padding:22px;text-align:center;cursor:pointer;margin-bottom:14px;background:var(--surface);transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.is-over{border-color:var(--accent);background:var(--surface-2)}.bannette-verif{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px}.bannette-apercu{width:100%;height:70vh;border:1px solid var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center}.mini-table{width:100%;border-collapse:collapse;font-size:13px}.mini-table td{padding:4px 6px;border-bottom:1px solid var(--line-2)}.foot-spacer{flex:1}@media (max-width: 860px){.bannette-verif{grid-template-columns:1fr}.bannette-apercu{height:50vh}}.bar-mini{height:4px;background:var(--surface-2);border-radius:2px;margin-top:4px;overflow:hidden}.bar-mini span{display:block;height:100%;background:var(--accent, #2563eb);border-radius:2px}.table-compact td{padding:4px 8px;font-size:13px}.msg-preview{white-space:pre-wrap;font:inherit;font-size:13px;background:var(--surface-2);border-radius:8px;padding:10px 12px;margin:0}.carte{width:100%;border-radius:10px;overflow:hidden;border:1px solid var(--line, #e5e5e5);z-index:0;position:relative}.carte-pt span{display:flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;border:2px solid #fff;box-shadow:0 1px 4px #00000059}.arrets{list-style:none;margin:0;padding:0}.arrets li{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line, #eee)}.arrets li:last-child{border-bottom:0}.arret-num{flex:0 0 28px;height:28px;border-radius:50%;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:13px}.arret-corps{flex:1;min-width:0}.arret-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.tournee-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}@media (max-width: 900px){.tournee-grid{grid-template-columns:1fr}}.row-between{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.progress{height:6px;background:var(--line-2);border-radius:3px;overflow:hidden;margin-bottom:4px}.progress span{display:block;height:100%;background:var(--ok)}.table tr.row-highlight td{background:var(--accent-soft)}.abonnement{display:grid;gap:16px}.abo-resume{display:flex;gap:28px;flex-wrap:wrap;margin-bottom:14px}.abo-resume>div{display:grid;gap:2px}.abo-usage{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.abo-usage>div{display:grid;grid-template-columns:1fr auto;gap:4px 8px;align-items:center;background:var(--surface-2, #F5F3EF);border-radius:var(--radius-sm);padding:10px 12px}.abo-usage span{color:var(--text-2);font-size:13px}.jauge{grid-column:1 / -1;height:6px;border-radius:3px;background:var(--line);overflow:hidden}.jauge i{display:block;height:100%;background:var(--ok, #2E7D4F)}.jauge.pleine i{background:var(--warn)}.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.seg button{border:0;background:transparent;padding:5px 14px;font:inherit;font-size:13px;cursor:pointer;color:var(--text-2)}.seg button.on{background:var(--ink, #16181D);color:#fff}.formules{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.formule{border:1px solid var(--line);border-radius:var(--radius);padding:16px;display:grid;gap:8px;align-content:start}.formule.actuelle{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.formule h4{margin:0;font-size:16px}.formule .prix strong{font-size:22px}.formule ul{list-style:none;padding:0;margin:4px 0 8px;display:grid;gap:4px;font-size:13px}.formule li:before{content:"✓";color:var(--ok, #2E7D4F);margin-right:6px;font-weight:700}.formule li.non{color:var(--text-3, #9A968E);text-decoration:line-through}.formule li.non:before{content:"–";color:inherit}.formule .ok{color:var(--ok, #2E7D4F);font-weight:600}.abo-bloque{display:grid;gap:14px}.auth-card.inscription{max-width:560px}.auth-card .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.auth-alt{text-align:center;font-size:13.5px;margin-top:4px}.auth-alt button{border:0;background:none;color:var(--accent);font:inherit;font-weight:650;cursor:pointer;padding:0}
