:root{--brand:#ab242f;--brand-dark:#841c26;--ink:#24252c;--muted:#666874;--line:#e7e7eb;--canvas:#f6f6f8;--red-bg:#fff0f0;--green:#276b51;--green-bg:#edf7f0;--amber:#946216;--amber-bg:#fff5e5;--radius:12px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;color:var(--ink);font-size:16px;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--canvas);line-height:1.5}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}button,a{transition:background .15s,border-color .15s}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:var(--brand)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #d08088;outline-offset:3px}button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);padding:10px 15px;font-size:14px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:8px}button:hover:not(:disabled){background:#f2f2f5;border-color:#c9c9d0}.primary{background:var(--brand);border-color:var(--brand);color:#fff}.primary:hover:not(:disabled){background:var(--brand-dark);border-color:var(--brand-dark)}.quiet{border:0;background:transparent}.icon{width:18px;height:18px;vertical-align:middle;flex-shrink:0}.shell{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px 20px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column}.logo{width:162px;height:auto;max-height:86px;object-fit:contain;align-self:flex-start}.brand-label{font-size:12px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:18px 0 32px;padding-top:16px;border-top:1px solid var(--line)}.nav-label{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 10px 10px}.nav{display:grid;gap:6px}.nav button{justify-content:flex-start;border:0;background:transparent;padding:12px;color:#656774}.nav button.active{background:#f9ecee;color:var(--brand)}.nav .count{margin-left:auto;background:#fff;border:1px solid #eedadd;border-radius:6px;padding:0 6px;font-size:12px}.side-note{margin-top:auto;background:#f7f7f9;border-radius:10px;padding:15px;font-size:12px;color:var(--muted)}.side-note strong{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}.agency{font-size:11px;letter-spacing:.19em;font-weight:750;margin:22px 0 0;color:var(--muted)}.topbar{background:#fff;border-bottom:1px solid var(--line);padding:18px 34px;display:flex;align-items:center;justify-content:space-between;gap:12px}.breadcrumb{font-size:14px;color:var(--muted)}.breadcrumb b{color:var(--ink);font-weight:500}.top-actions{display:flex;align-items:center;gap:12px}.demo-label{font-size:12px;font-weight:600;color:var(--amber);background:var(--amber-bg);padding:4px 9px;border-radius:4px;white-space:nowrap}.role{display:flex;align-items:center;gap:8px}.role-avatar{width:32px;height:32px;border-radius:50%;background:#efe9eb;color:var(--brand);display:grid;place-items:center;font-size:12px;font-weight:700}.role select{font-size:14px;border:0;background:transparent;padding:6px;max-width:200px}.content{max-width:1600px;margin:auto;padding:32px 34px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:25px}.eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brand);font-weight:700;margin-bottom:5px}h1{font-size:30px;letter-spacing:-.035em;line-height:1.2;margin:0;font-weight:660}h2{font-size:19px;line-height:1.3;letter-spacing:-.02em;margin:0}h3{font-size:16px;margin:0 0 12px}p{margin:8px 0}.sub{color:var(--muted);font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.stat{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:20px;text-align:left;display:block;font-weight:400}.stat .label{display:flex;justify-content:space-between;color:var(--muted);font-size:14px}.stat .value{font-size:32px;font-weight:650;line-height:1.3;margin:10px 0 4px;letter-spacing:-.04em}.stat .note{font-size:12px;color:var(--muted)}.stat.attention{border-top:3px solid var(--brand);padding-top:18px}.stat.attention .value{color:var(--brand)}.workflow{background:#fff;border:1px solid var(--line);border-radius:var(--radius);display:flex;align-items:center;padding:18px 22px;gap:18px;margin-bottom:24px;flex-wrap:wrap}.workflow .step{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted)}.step .num{border-radius:50%;width:27px;height:27px;border:1px solid var(--line);display:grid;place-items:center;font-size:12px}.step.current{color:var(--brand);font-weight:600}.step.current .num{background:var(--brand);color:#fff;border-color:var(--brand)}.workflow .arrow{color:#c6c7cc}.workflow .path-note{margin-left:auto;font-size:12px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.panel-head{padding:22px 24px 18px;display:flex;justify-content:space-between;align-items:center;gap:14px}.panel-head p{margin:4px 0 0}.toolbar{padding:0 24px 18px;display:flex;gap:12px;flex-wrap:wrap}.search-wrap{position:relative;flex:1;min-width:180px}.search-wrap svg{position:absolute;left:13px;top:12px;color:#8b8d97}.search-wrap input{padding-left:39px}.toolbar select{width:auto;min-width:150px}input,select,textarea{border:1px solid #dcdde3;border-radius:7px;background:#fff;color:var(--ink);padding:10px 12px;min-width:0;width:100%;font-size:14px;line-height:1.45}input:disabled,select:disabled{background:#f6f6f8;color:#656571}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;text-transform:uppercase;letter-spacing:.045em;font-weight:600;color:var(--muted);background:#fafafb;white-space:nowrap}th,td{padding:16px 24px;border-bottom:1px solid #eeeeF1}td{font-size:14px;vertical-align:middle}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#fcfcfe}.ref-btn{padding:0;border:0;background:transparent;color:var(--ink);font-weight:650;display:block;white-space:nowrap}.ref-btn:hover:not(:disabled){background:transparent;color:var(--brand)}.cell-sub{font-size:12px;color:var(--muted);margin-top:4px}.partner{display:inline-block;font-size:12px;font-weight:700;padding:4px 8px;border-radius:5px;background:#f1edf7;color:#746387}.partner.CERP{background:#edf2f7;color:#4b6b85}.partner.CORPO{background:#f3f0ea;color:#88744a}.pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;border-radius:6px;padding:5px 9px;white-space:nowrap;background:#f1f1f5;color:#6a6c79}.pill.red{background:var(--red-bg);color:var(--brand)}.pill.green{background:var(--green-bg);color:var(--green)}.pill.amber{background:var(--amber-bg);color:var(--amber)}.right{text-align:right}.muted{color:var(--muted)}.panel-footer{padding:15px 24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:12px}.bottom-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;margin-top:22px}.info-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px}.info-card h3{display:flex;align-items:center;gap:10px}.info-card p{font-size:14px;color:var(--muted)}.info-card a{font-size:14px;font-weight:600}.format-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}.format-row:last-child{border-bottom:0}.format-row .sub{margin-left:auto;font-size:12px}.footnote{font-size:12px;color:var(--muted);margin:22px 0 0;display:flex;justify-content:space-between;gap:16px}.empty{text-align:center;padding:54px 20px;color:var(--muted)}.empty svg{width:30px;height:30px;margin-bottom:12px}.empty strong{color:var(--ink);display:block;margin-bottom:6px}.upload-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,1fr);gap:24px}.upload-panel{padding:26px}.field{display:block;font-size:13px;font-weight:600;margin-bottom:16px}.field input,.field select,.field textarea{display:block;margin-top:7px;font-weight:400}.dropzone{border:1.5px dashed #c8b0b3;background:#fdf9fa;border-radius:12px;text-align:center;padding:38px 24px;display:block;margin-top:20px}.dropzone.drag{background:#f7e4e6}.dropzone .upload-icon{width:46px;height:46px;color:var(--brand);border:1px solid #ead9db;border-radius:11px;display:grid;place-items:center;margin:0 auto 16px;background:#fff}.dropzone h2{font-size:18px}.dropzone input{margin-top:20px;background:#fff}.inline-note{font-size:12px;color:var(--muted);line-height:1.65;margin-top:14px}.notice{padding:14px 16px;border-radius:8px;background:var(--green-bg);color:var(--green);font-size:14px;margin:16px 0}.notice.error{background:var(--red-bg);color:var(--brand)}.notice.warning{background:var(--amber-bg);color:var(--amber)}.sample{display:block;padding:16px 0;border-bottom:1px solid var(--line);text-decoration:none;font-size:14px}.sample b{display:block}.sample span{font-size:12px;color:var(--muted)}.sample:last-child{border:0}.history-list{padding:0 24px 20px}.history-item{display:flex;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px}.history-item:last-child{border:0}.history-item time{color:var(--muted);font-size:12px;min-width:90px}.history-item strong{display:block;font-size:14px}.settings{display:grid;grid-template-columns:1fr 1fr;gap:20px}.choice{display:flex;gap:12px;padding:18px 0}.choice input{width:18px;height:18px;flex-shrink:0}.choice b{display:block;font-size:15px}.choice span{color:var(--muted);font-size:13px}.reset{color:var(--brand)}dialog{border:0;border-radius:16px;box-shadow:0 24px 90px #24252c33;padding:0;color:var(--ink);max-height:94vh;max-width:calc(100vw - 28px)}dialog::backdrop{background:#20212788;backdrop-filter:blur(3px)}#detail{width:1120px}#confirm{width:470px;padding:28px}.dialog-head{position:sticky;top:0;background:#fff;z-index:3;border-bottom:1px solid var(--line);padding:22px 28px;display:flex;justify-content:space-between;align-items:center;gap:14px}.dialog-head h2{font-size:23px;margin:5px 0}.dialog-body{padding:24px 28px;background:#fafafb}.detail-meta{display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--muted)}.detail-progress{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:23px;gap:10px}.detail-progress span{font-size:12px;border-top:3px solid var(--line);padding-top:10px;color:var(--muted)}.detail-progress .done{border-color:var(--green);color:var(--green)}.detail-progress .current{border-color:var(--brand);color:var(--brand);font-weight:600}.detail-cols{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:20px}.detail-section{background:#fff;border:1px solid var(--line);border-radius:10px;padding:20px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid .wide{grid-column:1/-1}.form-grid .field{margin-bottom:12px}.line-card{border:1px solid var(--line);border-radius:9px;padding:16px;margin-top:12px}.line-card.invalid{border-color:#e5bdc1;border-left:3px solid var(--brand)}.line-top{display:flex;justify-content:space-between;gap:10px;font-size:14px;font-weight:650}.line-source{font-size:12px;color:var(--muted);margin:3px 0 12px}.line-fields{display:grid;grid-template-columns:2fr repeat(4,minmax(58px,1fr));gap:8px}.line-fields .field{font-size:12px;margin:0}.line-fields input,.line-fields select{padding:8px;font-size:13px}.line-fields .ref-field{grid-column:1/-1}.line-fields .field:first-child:not(.ref-field){grid-column:span 1}.line-totals{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:12px;gap:8px}.alerts{list-style:none;padding:0;margin:0}.alerts li{margin-top:10px;font-size:13px;color:var(--brand);padding-left:12px;border-left:2px solid #dfadb2}.aside-summary{position:sticky;top:125px;align-self:start}.summary-row{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin:12px 0}.summary-total{font-size:24px;font-weight:650;border-top:1px solid var(--line);padding-top:14px;margin-top:14px;display:flex;justify-content:space-between;align-items:baseline}.summary-total span{font-size:13px;font-weight:500;color:var(--muted)}.full{width:100%}.stack{display:grid;gap:10px}.check-human{display:flex;gap:10px;font-size:13px;margin:18px 0;align-items:start}.check-human input{width:18px;height:18px;margin:0;flex-shrink:0}.detail-history{margin-top:14px}.detail-history summary{cursor:pointer;font-size:14px;font-weight:600}.event{border-left:2px solid var(--line);padding:5px 0 10px 12px;margin-top:10px;font-size:13px}.event time{display:block;color:var(--muted);font-size:12px}.source-details{font-size:12px;overflow-wrap:anywhere;color:var(--muted);margin-top:16px}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(110px);background:#292b32;color:#fff;padding:13px 22px;border-radius:10px;font-size:14px;z-index:20;box-shadow:0 4px 30px #0002;transition:transform .2s;max-width:90vw}#toast.show{transform:translateX(-50%)}.catalog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.catalog-card{padding:22px;border:1px solid var(--line);border-radius:12px;background:#fff}.catalog-card .code{font-size:12px;color:var(--brand);font-weight:650;letter-spacing:.04em;margin-bottom:10px}.catalog-card h3{min-height:48px}.catalog-card .price{font-size:23px;font-weight:650;margin:12px 0}.catalog-card p{font-size:13px;color:var(--muted)}.code{font-variant-numeric:tabular-nums}.action-row{display:flex;gap:10px;flex-wrap:wrap}.toggle-note{padding:13px 18px;border:1px solid #e8d8da;background:#fcf6f7;border-radius:8px;font-size:13px;margin-bottom:22px}.noshrink{white-space:nowrap}
@media(min-width:1500px){.content{padding:38px 48px}.topbar{padding-left:48px;padding-right:48px}}
@media(max-width:1150px){.shell{grid-template-columns:196px 1fr}.sidebar{padding:24px 14px}.logo{width:145px}.content{padding:26px 22px}.topbar{padding:16px 22px}.workflow{gap:12px}.workflow .path-note{display:none}th,td{padding:15px 18px}.stats{gap:10px}.stat{padding:16px}.stat.attention{padding-top:14px}.upload-layout{grid-template-columns:1fr}.bottom-grid{grid-template-columns:1fr 1fr}.detail-cols{grid-template-columns:1fr 270px}}
@media(max-width:800px){.shell{display:block}.sidebar{position:relative;height:auto;padding:14px 20px;display:block;border-bottom:1px solid var(--line)}.logo{width:115px;height:45px;object-position:left}.brand-label,.nav-label,.side-note,.agency{display:none}.nav{display:flex;margin-top:12px;overflow:auto}.nav button{white-space:nowrap;font-size:13px;padding:9px}.nav button .icon{display:none}.nav .count{display:none}.topbar{padding:12px 20px}.breadcrumb{display:none}.top-actions{width:100%;justify-content:space-between}.content{padding:24px 20px}.stats{grid-template-columns:repeat(2,1fr)}.page-head{align-items:flex-start}h1{font-size:26px}.bottom-grid,.settings,.detail-cols{grid-template-columns:1fr}.aside-summary{position:static}.catalog-grid{grid-template-columns:repeat(2,1fr)}.dialog-head,.dialog-body{padding:18px}.line-fields{grid-template-columns:repeat(4,1fr)}.line-fields .field:nth-child(2){grid-column:1/-1}.footnote{display:block}.workflow{gap:9px;padding:15px}.workflow .step{font-size:12px;gap:6px}.workflow .arrow{display:none}.toolbar{padding:0 16px 16px}.panel-head{padding:20px 16px}.toolbar select{min-width:120px;flex:1}dialog{max-height:96vh}.detail-progress{gap:6px}.detail-progress span{font-size:11px}.form-grid{gap:0 12px}}
@media(max-width:440px){.page-head{flex-wrap:wrap}.page-head>.primary{width:100%}.catalog-grid{grid-template-columns:1fr}.topbar{padding:10px 14px}.content{padding:22px 14px}.stat .label{font-size:13px}.stat .value{font-size:29px}.stat .note{font-size:11px}.panel-footer{padding:14px 16px;flex-direction:column}.form-grid{grid-template-columns:1fr}.line-fields{grid-template-columns:repeat(2,1fr)}.detail-section{padding:15px}.line-top{display:block}.detail-progress span{font-size:10px}.demo-label{font-size:11px}.role select{font-size:12px;max-width:170px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.mt24{margin-top:24px}.source-details pre{white-space:pre-wrap;word-break:break-word}.stats .value{font-variant-numeric:tabular-nums}
.aside-summary{position:static}
/* V2 : parcours de travail en pleine page, sources et décisions explicites. */
.v2 .content{max-width:1600px}.v2 .top-actions>select{width:175px;border:0;background:transparent}.v2 h1{font-size:29px}.v2 .page-head{align-items:start}.v2 .compact.stats{margin:22px 0}.v2 .compact .stat{padding:17px 20px}.v2 .compact .value{margin:5px 0;font-size:30px}.v2 .compact .note{font-size:12px}.secondary{background:#fff;border-color:#d7d7df}.micro{font-size:12px;color:var(--muted);line-height:1.6}.focus-card{background:#fff;border:1px solid #e8dfe0;border-radius:15px;display:grid;grid-template-columns:1fr 250px;overflow:hidden}.focus-card>div:first-child{padding:26px 30px}.focus-card h2{font-size:24px;margin:8px 0}.focus-card p{font-size:15px;color:var(--muted);max-width:660px;margin:8px 0 20px}.focus-card .micro{display:block;margin-top:13px}.focus-flow{padding:24px;background:#f8eef0;border-left:1px solid #eddee0;display:grid;align-content:center;gap:10px}.focus-flow span{display:flex;align-items:center;gap:12px;font-size:14px}.focus-flow b{color:var(--brand);font-size:12px;border:1px solid #e4c8cc;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.resume-bar{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:0 0 22px;background:#eeeeF3;border-radius:10px;padding:15px 20px}.resume-bar b{font-size:14px}.resume-bar span{font-size:13px;margin-left:16px;color:var(--muted)}.order-list{padding:0 24px}.order-row{display:flex;border:0;border-top:1px solid var(--line);border-radius:0;width:100%;padding:20px 0;text-align:left;gap:18px;font-weight:400}.order-row:hover:not(:disabled){background:#fcf8f9;border-color:var(--line)}.order-row>span{display:flex;flex-direction:column;gap:4px}.order-glyph{width:36px;height:43px;background:#f5f3f5;border:1px solid var(--line);border-radius:7px;align-items:center;justify-content:center;color:#8a7f83}.order-identity{flex:1;min-width:140px}.order-identity b{font-size:15px}.order-identity>span,.order-source>span,.order-status>span+span,.order-amount>span{font-size:12px;color:var(--muted)}.order-source{min-width:125px;align-items:start}.order-status{min-width:215px;align-items:start}.order-amount{min-width:85px;text-align:right}.order-row>.icon{margin-left:8px}.order-content{padding-top:22px}.back-link{padding-left:0;color:var(--muted);font-weight:500;margin-bottom:18px}.dossier-title{display:flex;justify-content:space-between;align-items:center;gap:20px}.dossier-title h1{margin:10px 0}.dossier-title .pill{vertical-align:middle;margin-left:8px}.dossier-total{display:grid;gap:4px;text-align:right;white-space:nowrap}.dossier-total span{font-size:13px;color:var(--muted)}.dossier-total strong{font-size:29px;letter-spacing:-.035em}.journey{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-radius:11px;overflow:hidden;margin:22px 0 30px;background:#fff}.journey button{border:0;border-right:1px solid var(--line);border-radius:0;padding:16px 12px;gap:9px;color:var(--muted);font-weight:500;font-size:13px;justify-content:flex-start}.journey button:last-child{border-right:0}.journey b{font-weight:600;border:1px solid var(--line);border-radius:50%;width:25px;height:25px;display:grid;place-items:center;font-size:11px;flex-shrink:0}.journey .selected{background:#faedef;color:var(--brand);font-weight:650}.journey .selected b{background:var(--brand);border-color:var(--brand);color:white}.journey .complete:not(.selected) b{background:var(--green-bg);color:var(--green);border-color:#c9e6d3}.step-intro{margin:0 0 24px}.step-intro h2{font-size:24px;margin:4px 0}.step-intro p{color:var(--muted);font-size:15px;max-width:830px}.source-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px;align-items:start}.raw-grid{max-height:440px}.raw-grid td,.raw-grid th{font-size:12px;padding:12px 14px;white-space:nowrap;border-right:1px solid var(--line)}.raw-grid th{position:sticky;left:0;z-index:1}.raw-grid tbody tr:first-child td{background:#f6f6f8;font-weight:600}.structured-sheet{padding:0 22px 22px}.structured-lines article{display:flex;gap:12px;border-top:1px solid var(--line);padding:14px 0}.structured-lines article>span{color:var(--brand);font-size:12px;padding-top:3px}.structured-lines article b{font-size:14px}.structured-lines article p{font-size:13px;margin:4px 0;color:var(--muted)}.structured-lines article small{font-size:12px;color:var(--muted)}.step-footer{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:20px 24px;margin:24px 0 0;border:1px solid #decdd0;border-radius:10px;background:#fff;box-shadow:0 3px 20px #28232a05}.step-footer>div{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--muted);max-width:600px}.step-footer>button{white-space:nowrap}.catalog-strip{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#f0f0f4;padding:14px 18px;border-radius:9px;margin-bottom:20px}.catalog-strip>div{display:flex;gap:12px;font-size:13px;align-items:center}.matching-summary{display:flex;gap:14px;align-items:center;font-size:13px;color:var(--muted);margin-bottom:16px}.match-card{border:1px solid #dddde4;background:#fff;border-radius:13px;margin:18px 0;overflow:hidden}.match-card-head{padding:18px 22px;display:flex;justify-content:space-between;align-items:center;gap:14px;border-bottom:1px solid var(--line)}.match-card-head>div{display:flex;align-items:center;gap:12px}.match-card-head h3{margin:0}.line-index{font-size:12px;background:#f4f2f4;padding:6px 8px;border-radius:5px;color:var(--muted)}.match-body{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr)}.received{padding:24px;background:#fafafb;border-right:1px solid var(--line)}.received h3{margin-top:14px}.received dl,.article-identity dl{display:grid;grid-template-columns:1fr 1fr;font-size:14px;gap:14px 16px;margin:24px 0}.received dt,.article-identity dt{color:var(--muted)}.received dd,.article-identity dd{margin:0;text-align:right}.suggested{padding:24px}.match-search{display:flex;gap:8px;margin:12px 0}.match-search input{flex:1}.candidate-list{display:grid;gap:8px}.candidate{justify-content:space-between;font-weight:400;text-align:left;padding:13px 14px;line-height:1.5;font-size:14px}.candidate small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.candidate b{font-size:12px;margin-right:6px}.candidate.picked{border-color:#c3646d;background:#fff9fa;box-shadow:0 0 0 1px #c3646d}.candidate.picked>span:last-child{color:var(--brand)}.match-proposal{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.proposal-label{font-size:13px;font-weight:600;margin-bottom:15px}.confirmed{border-color:#c8dfd1}.confirmed .match-card-head{background:#f8fcf9}.confirmed-body{display:flex;align-items:center;gap:22px;padding:18px 22px;font-size:13px}.confirmed-body>div{display:grid;gap:5px}.confirmed-body .quiet{margin-left:auto}.delivery-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:22px}.padded{padding:24px}.control-row{padding:15px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;align-items:start;gap:8px;font-size:14px}.control-row:last-of-type{border-bottom:0}.review-layout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:24px;align-items:start}.review-paper{padding:6px 10px}.paper-top{display:flex;justify-content:space-between;align-items:start;gap:24px;padding-bottom:26px;border-bottom:2px solid var(--brand)}.paper-top img{width:100px}.paper-top>div{text-align:right}.paper-top span{font-size:11px;letter-spacing:.1em;color:var(--muted)}.paper-top h2{font-size:22px;margin-top:8px}.paper-top p{font-size:13px;color:var(--muted)}.paper-address{font-size:14px;padding:24px 0}.paper-address p{color:var(--muted)}.review-line{padding:17px 0;display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);font-size:13px}.review-line b,.review-line span{display:block}.review-line span{margin-top:6px;color:var(--muted)}.review-line strong{white-space:nowrap}.paper-total{display:flex;justify-content:space-between;font-size:14px;padding:14px 0}.paper-total.final{border-top:2px solid var(--ink);font-size:18px}.review-check{display:flex;align-items:start;gap:10px;padding:14px 0;border-bottom:1px solid var(--line)}.review-check .icon{color:var(--green);margin-top:2px}.review-check b{font-size:14px}.review-check p{font-size:13px;margin:3px 0}.completion{text-align:center;max-width:850px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:44px}.completion-icon{width:58px;height:58px;background:var(--green-bg);color:var(--green);border-radius:50%;display:grid;place-items:center;margin:0 auto 20px}.completion-icon .icon{width:28px;height:28px}.completion h2{font-size:28px;margin:10px 0}.completion>p{color:var(--muted)}.completion-values{display:flex;gap:16px;justify-content:center;margin:24px 0;font-size:14px}.completion-values span{background:#f6f6f8;padding:7px 14px;border-radius:6px}.completion .action-row{justify-content:center}.audit{margin:24px 0;border-top:1px solid var(--line);padding-top:20px}.audit summary{font-size:14px;cursor:pointer;font-weight:600}.import-top{display:flex;gap:12px;align-items:center;margin-bottom:22px;flex-wrap:wrap}.file-chip{display:flex;gap:9px;align-items:center;font-size:14px}.inline-select{display:flex;align-items:center;gap:9px;white-space:nowrap;font-size:13px}.inline-select select{width:auto}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 24px 24px}.mapping-field{display:grid;gap:6px;font-size:13px}.mapping-field>span{font-weight:650}.mapping-field small{color:var(--muted);font-size:12px}.mapping-field select{font-size:13px}.inset{margin:0 24px 24px}.action-footer{padding:20px 24px;border-top:1px solid var(--line);display:flex;gap:20px;align-items:center;justify-content:space-between}.action-footer>span{font-size:13px;color:var(--muted)}.source-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:34px}.source-card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:24px;display:flex;flex-direction:column;align-items:start}.source-card.sage{border-top:3px solid var(--brand);padding-top:22px}.source-number{font-size:12px;letter-spacing:.1em;color:var(--brand);margin-bottom:12px}.source-card h2{font-size:20px}.source-card p{font-size:14px;color:var(--muted);margin:12px 0}.source-state{font-size:15px;font-weight:650;margin:10px 0 18px}.source-state small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:4px}.upload-button{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid #d7d7df;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;margin-top:auto;width:100%;background:#fff}.upload-button:hover{background:#f5f3f5}.upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.source-card .quiet{margin:8px auto 0;font-size:12px}.compact-label{display:flex;align-items:center;gap:8px;font-size:12px;margin:0}.compact-label select{width:auto;padding:5px 10px;margin:0}.catalog-toolbar{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.catalog-toolbar .search-wrap{max-width:340px}.reference-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.reference-card{display:block;padding:23px;text-align:left;overflow:hidden;border-radius:12px;font-weight:400}.reference-card:hover:not(:disabled){background:#fffafa;border-color:#ca9fa4}.ref-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:12px;color:var(--muted)}.ref-code{font-size:13px;letter-spacing:.07em;color:var(--brand);font-weight:700;margin:22px 0 8px}.reference-card h3{font-size:18px;line-height:1.4;min-height:50px;margin-bottom:20px}.ref-specs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding-bottom:22px}.ref-specs span{display:grid;gap:6px}.ref-specs small{color:var(--muted);font-size:11px}.ref-specs b{font-size:14px;font-weight:550}.ref-card-bottom{border-top:1px solid var(--line);padding-top:15px;display:flex;align-items:center;justify-content:space-between;font-size:12px;gap:14px;color:var(--muted)}.article-layout{display:grid;grid-template-columns:.9fr 1.6fr;gap:24px}.article-identity{align-self:start;background:#f5ecee;border:1px solid #e5d2d5;border-radius:14px;padding:30px}.article-year{font-size:64px;font-weight:300;letter-spacing:-.07em;color:var(--brand);margin:20px 0}.article-identity h2{font-size:25px}.article-identity p{font-size:13px;color:var(--muted)}.price-sources{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:20px 0}.price-sources>div{display:grid;gap:7px}.price-sources span{font-size:13px;color:var(--muted)}.price-sources b{font-size:27px}.price-sources small{font-size:12px;color:var(--muted)}.offer-line{display:grid;gap:6px;padding:16px 0;border-top:1px solid var(--line);font-size:14px}.offer-line small{font-size:12px;color:var(--muted)}.import-counts{display:flex;gap:40px;margin:0 0 25px}.import-counts>div{display:grid;gap:4px}.import-counts strong{font-size:30px;color:var(--brand)}.import-counts span{font-size:13px;color:var(--muted)}.preview-change{display:flex;gap:12px;align-items:center;font-size:14px;padding:14px 0;border-top:1px solid var(--line)}
@media(max-width:1200px){.order-status{min-width:170px}.order-row{gap:12px}.order-source{min-width:105px}.order-identity{min-width:120px}.reference-cards{grid-template-columns:repeat(2,1fr)}.source-cards{gap:12px}.source-card{padding:18px}.source-card.sage{padding-top:16px}.source-card h2{font-size:18px}.journey button{font-size:12px;padding:14px 8px;gap:6px}.source-layout{grid-template-columns:1fr}.focus-card{grid-template-columns:1fr 215px}.order-glyph{display:none}}
@media(max-width:950px){.order-row{flex-wrap:wrap}.order-status{min-width:180px}.order-source{display:none!important}.source-cards{grid-template-columns:1fr}.source-card{display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}.source-card p{grid-column:1}.source-number{display:none}.source-card .source-state{grid-column:2;grid-row:1}.source-card .upload-button{grid-column:2;grid-row:2}.source-card .quiet{grid-column:2}.match-body{grid-template-columns:1fr}.received{border-right:0;border-bottom:1px solid var(--line)}.received dl{grid-template-columns:1fr 1fr 1fr 1fr;gap:14px}.delivery-layout,.review-layout{grid-template-columns:1fr}.mapping-grid{grid-template-columns:repeat(2,1fr)}.confirmed-body{flex-wrap:wrap}.article-layout{grid-template-columns:1fr}.catalog-toolbar{align-items:start;flex-direction:column}.catalog-toolbar .search-wrap{width:100%;max-width:none}.focus-card{grid-template-columns:1fr}.focus-flow{display:flex;flex-wrap:wrap;justify-content:space-between;border-left:0;border-top:1px solid #eddee0;padding:18px}.focus-flow span{font-size:12px}.journey{overflow-x:auto;display:flex}.journey button{min-width:145px;flex:1}.step-footer{align-items:stretch;flex-direction:column;gap:15px}}
@media(max-width:600px){.v2 h1{font-size:25px}.focus-card>div:first-child{padding:23px}.focus-card h2{font-size:21px}.focus-flow{display:grid;grid-template-columns:1fr 1fr}.focus-card .action-row>*{width:100%}.resume-bar{align-items:start;flex-direction:column}.resume-bar span{display:block;margin:4px 0 0}.order-list{padding:0 16px}.order-row{display:grid;grid-template-columns:1fr auto;gap:12px}.order-row>.icon{display:none}.order-identity{grid-column:1}.order-amount{grid-column:2;grid-row:1}.order-status{grid-column:1/-1}.order-status .pill{font-size:12px}.dossier-title{align-items:start;flex-direction:column}.dossier-total{display:flex;align-items:baseline;gap:15px}.dossier-total strong{font-size:24px}.dossier-title .pill{margin:6px 0 0}.dossier-title .sub{display:grid;gap:5px}.journey{margin-top:18px;margin-bottom:22px}.step-intro h2{font-size:22px}.step-intro p{font-size:14px}.catalog-strip{flex-direction:column;align-items:stretch}.matching-summary{align-items:start;flex-direction:column}.match-card-head{align-items:start;flex-direction:column;padding:16px}.match-card-head h3{font-size:15px}.received,.suggested{padding:18px}.received dl{grid-template-columns:1fr 1fr}.candidate{font-size:13px}.match-search{min-width:0}.confirmed-body{padding:18px;gap:14px}.confirmed-body>div{width:100%}.confirmed-body>span:not(.sub){display:none}.completion{padding:28px 18px}.completion h2{font-size:24px}.completion-values{flex-wrap:wrap;gap:8px}.completion .action-row>*{width:100%}.mapping-grid{grid-template-columns:1fr;padding:0 18px 18px}.action-footer{align-items:stretch;flex-direction:column}.inset{margin:0 18px 18px}.panel-head{align-items:start;flex-wrap:wrap}.source-card{display:flex}.source-card .upload-button{margin-top:10px}.source-cards{gap:15px}.reference-cards{grid-template-columns:1fr}.article-identity{padding:24px}.price-sources{grid-template-columns:1fr}.import-counts{gap:18px;flex-wrap:wrap}.preview-change{flex-wrap:wrap}.review-paper{padding:0}.padded{padding:19px}.paper-top{gap:14px}.paper-top img{width:65px}.paper-top h2{font-size:18px}.paper-top span{font-size:10px}.paper-address{padding:18px 0}.v2 .top-actions>select{width:163px;font-size:13px}.v2 .compact .stat{padding:15px}.v2 .compact .label{font-size:12px}}
.v2 main,.v2 .content{min-width:0}.source-cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}.v2 .panel,.v2 .info-card{min-width:0}.v2 .ref-specs b{overflow-wrap:anywhere}
@media(max-width:1150px) and (min-width:801px){.shell.v2{grid-template-columns:196px minmax(0,1fr)}.v2 .topbar{flex-wrap:wrap}.v2 .breadcrumb{font-size:12px}.v2 .demo-label{display:none}.v2 .dossier-title{flex-wrap:wrap}.v2 .catalog-strip{flex-wrap:wrap}.v2 .matching-summary{flex-wrap:wrap}}
@media(max-width:950px){.source-cards.two{grid-template-columns:1fr}}
.catalog-table th,.catalog-table td{padding:13px 16px}.catalog-table .cell-sub{display:block;margin-top:3px}.catalog-table .ref-btn{color:var(--brand);font-size:13px}.catalog-table td:nth-child(2){min-width:230px}.catalog-table td:nth-child(3),.catalog-table td:nth-child(5){text-align:center}.catalog-table td:last-child{width:48px}.catalog-table .quiet{padding:5px}
/* Partenaires : une page de suivi, un dépôt, connexion par lien. */
.partner-shell{min-height:100vh;background:#f8f8fa;display:flex;flex-direction:column}.partner-header{background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:20px max(28px,calc((100vw - 1000px)/2));min-height:100px}.partner-header>img{width:105px;height:64px;object-fit:contain}.partner-header>div{display:grid;gap:3px;flex:1;border-left:1px solid var(--line);padding-left:20px}.partner-header b{font-size:16px}.partner-header span{font-size:13px;color:var(--muted)}.partner-content{width:min(100%,1040px);margin:0 auto;padding:45px 24px;flex:1;min-width:0}.partner-title{display:flex;align-items:start;justify-content:space-between;gap:24px;margin-bottom:20px}.partner-title h1{font-size:30px}.partner-title p{font-size:15px;color:var(--muted)}.mail-first{font-size:14px;color:var(--muted);margin:0 0 30px;padding:15px 18px;background:#f0f0f4;border-radius:8px}.partner-order-row{display:flex;gap:20px;align-items:center;justify-content:space-between;width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:22px 24px;text-align:left;font-weight:400}.partner-order-row:last-child{border-bottom:0}.partner-order-row>span:first-child{flex:1;min-width:0;display:grid;gap:6px}.partner-order-row b{font-size:15px;overflow-wrap:anywhere}.partner-order-row small{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.partner-footer{padding:18px 24px;font-size:11px;color:var(--muted);text-align:center;border-top:1px solid var(--line)}.partner-footer .quiet{font-size:11px;color:var(--muted);padding:5px 10px}.access-card{max-width:520px;margin:12px auto;background:#fff;border:1px solid var(--line);border-radius:14px;padding:35px}.access-card h1{font-size:29px;margin:10px 0 15px}.access-card>p{font-size:15px;color:var(--muted);margin:12px 0 24px}.access-card>.field{margin:24px 0 18px}.access-help{padding-top:20px;border-top:1px solid var(--line);font-size:13px!important;line-height:1.7;margin-bottom:0!important}.mail-preview{border:1px solid #e1ced1;border-left:3px solid var(--brand);background:#fffafb;border-radius:9px;padding:22px;margin:24px 0 0}.mail-preview p{font-size:14px;color:var(--muted)}.mail-preview h3{margin-top:15px}.mail-preview button{margin-top:10px}.partner-upload-card{max-width:670px;margin:0 auto;padding:30px;background:#fff;border:1px solid var(--line);border-radius:12px}.partner-upload-card>p{color:var(--muted)}.partner-upload-card .dropzone{padding:35px 22px}.receipt-card{text-align:center}.receipt-icon{color:var(--green);background:var(--green-bg);border-radius:50%;width:54px;height:54px;display:grid;place-items:center;margin:0 auto 20px}.partner-amount{display:flex;justify-content:space-between;font-size:19px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.spaces-layout{display:grid;grid-template-columns:minmax(270px,.8fr) minmax(0,1.4fr);gap:24px;align-items:start}.space-list{padding:0 24px}.space-item{padding:22px 0;border-top:1px solid var(--line)}.space-item h3{margin-bottom:4px}.contact-row{display:flex;align-items:center;gap:9px;padding-top:12px;flex-wrap:wrap}.contact-row>span:first-child{display:grid;gap:4px;margin-right:auto}.contact-row b{font-size:14px}.contact-row small{font-size:12px;color:var(--muted)}.contact-row button{font-size:12px}.partner-share{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:12px 16px;background:#f0f0f4;border-radius:9px;font-size:13px;margin-bottom:20px}.inbox-panel{margin-bottom:24px}.inbox-panel .partner-order-row{padding-left:0;padding-right:0}
@media(max-width:1050px){.spaces-layout{grid-template-columns:1fr}.contact-row{gap:12px}}
@media(max-width:600px){.partner-header{padding:15px 18px;gap:12px;flex-wrap:wrap}.partner-header>img{width:80px;height:50px}.partner-header>div{padding-left:12px}.partner-header .quiet{font-size:12px;padding:8px}.partner-content{padding:26px 16px}.partner-title{flex-direction:column;gap:12px}.partner-title h1{font-size:26px}.partner-title>.primary{width:100%}.partner-order-row{padding:20px 18px;flex-wrap:wrap;gap:12px}.partner-order-row>span:first-child{flex-basis:calc(100% - 40px)}.partner-order-row>.pill{order:3;max-width:100%;white-space:normal}.partner-order-row>.icon{order:2}.access-card{padding:25px 22px;margin:0}.access-card h1{font-size:26px}.partner-upload-card{padding:23px 18px}.partner-upload-card h1{font-size:25px}.partner-share{flex-wrap:wrap}.mail-preview{padding:18px}}
/* Dépôt : le résultat de lecture avant les réglages. */
.intake-page{max-width:860px;margin:0 auto;min-width:0}.intake-heading{margin:0 0 25px}.intake-heading h1{font-size:30px}.intake-heading p{font-size:15px;color:var(--muted);margin:10px 0 0}.intake-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:26px}.intake-partner{display:flex;align-items:center;gap:18px;margin:0 0 24px;font-size:14px}.intake-partner select{max-width:220px;margin:0}.intake-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:28px 20px;border:1.5px dashed #d5bbc0;border-radius:10px;background:#fcf9fa;cursor:pointer;text-align:center}.intake-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%;height:100%;padding:0}.intake-drop:focus-within{outline:3px solid #d08088;outline-offset:3px}.intake-upload-icon{color:var(--brand);display:grid;place-items:center;width:40px;height:40px;background:#fff;border:1px solid #eadcdf;border-radius:10px}.intake-upload-icon svg{width:21px;height:21px}.intake-drop h2{font-size:19px}.file-trigger{display:inline-flex;border-radius:7px;padding:10px 19px;font-size:14px;font-weight:600}.intake-next{display:flex;gap:18px;align-items:baseline;margin:22px 0 0;font-size:13px}.intake-next>b{white-space:nowrap}.intake-next p{color:var(--muted);margin:0}.intake-demo{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:15px 0;font-size:13px;color:var(--muted)}.intake-demo button{color:var(--brand);font-size:13px}.preview-page .back-link{margin-bottom:15px}.intake-file{display:flex;gap:13px;align-items:center;padding:14px 18px;background:#eeeff3;border:1px solid #e5e5eb;border-radius:9px;margin:0 0 20px;min-width:0}.intake-file>div{display:grid;gap:4px;flex:1;min-width:0}.intake-file b{font-size:14px;overflow-wrap:anywhere}.intake-file small{font-size:12px;color:var(--muted)}.intake-file>.icon{color:var(--muted)}.intake-order{background:#fff;border:1px solid var(--line);border-radius:12px;margin-bottom:18px;overflow:hidden}.intake-order-head{padding:20px 22px;display:flex;align-items:center;justify-content:space-between;gap:15px}.intake-order-head .eyebrow{font-size:10px;letter-spacing:.12em}.intake-order-head h2{font-size:21px;margin:3px 0}.intake-order-head p{font-size:14px;color:var(--muted);margin:5px 0 0}.intake-order-head .micro{white-space:nowrap}.intake-delivery{display:flex;gap:18px;align-items:baseline;padding:12px 22px;border-top:1px solid var(--line);background:#fafafb;font-size:13px}.intake-delivery>span{color:var(--muted);white-space:nowrap}.intake-delivery p{margin:0;overflow-wrap:anywhere}.intake-lines{padding:0 22px}.intake-line,.intake-line-labels{display:grid;grid-template-columns:minmax(0,1fr) 85px 110px;gap:15px;padding:16px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:start}.intake-line-labels{padding:11px 0;color:var(--muted);font-size:11px}.intake-line>div{min-width:0}.intake-line b{font-size:14px;display:block;overflow-wrap:anywhere}.intake-line small{display:block;margin-top:6px;color:var(--muted);font-size:12px;overflow-wrap:anywhere}.intake-line>span{text-align:right;white-space:nowrap}.intake-line-labels>span:not(:first-child){text-align:right}.intake-line:last-child{border-bottom:0}.intake-note{font-size:12px;color:var(--muted);padding:13px 22px;margin:0;border-top:1px solid var(--line);background:#fafafb}.intake-meaning{color:var(--muted);font-size:13px;margin:20px 0}.intake-meaning b{font-weight:550;color:var(--ink)}.intake-continue{display:flex;gap:18px;align-items:center;justify-content:space-between;margin:20px 0 24px;padding:18px 0;border-top:1px solid #dddde5}.intake-continue>span{font-size:13px;color:var(--muted)}.intake-details{margin:0 0 10px;border:1px solid var(--line);border-radius:9px;background:#fff;overflow:hidden}.intake-details>summary{padding:15px 18px;font-size:13px;color:#61636f;cursor:pointer}.intake-details[open]>summary{border-bottom:1px solid var(--line)}.intake-details-body{padding:20px}.intake-details-body>p{font-size:13px;color:var(--muted);margin:0 0 20px}.mapping-list{min-width:0}.mapping-entry{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:20px;padding:14px 0;border-top:1px solid var(--line);align-items:start;font-size:13px}.mapping-entry b{font-weight:550;padding-top:10px}.mapping-entry>span{min-width:0}.mapping-entry small{display:block;margin-top:6px;color:var(--muted);overflow-wrap:anywhere}.intake-missing{padding:15px 22px;background:var(--amber-bg);display:grid;gap:14px;grid-template-columns:1fr 1fr}.intake-missing .field{margin:0}.source-inspector{padding:16px;min-width:0}.source-inspector>.field{max-width:260px}.source-inspector dl{margin:18px 0 0}.source-inspector dl>div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:20px;border-top:1px solid var(--line);padding:12px 0;font-size:13px}.source-inspector dt{color:var(--muted);overflow-wrap:anywhere}.source-inspector dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.intake-details-body .source-inspector{padding:0}.intake-simulation{margin:16px 0 0}.more-lines>summary{font-size:13px;color:var(--brand);cursor:pointer;padding:14px 0}.v2 .content:has(.intake-page){padding-top:28px}.v2 .content:has(.intake-page)>.footnote{max-width:860px;margin:26px auto 0;flex-wrap:wrap;gap:6px 16px}
@media(max-width:1050px){.intake-continue{flex-direction:column;align-items:stretch;gap:12px}.intake-continue>button{width:100%}}
@media(max-width:600px){.intake-heading h1{font-size:25px}.intake-card{padding:20px}.intake-partner{flex-direction:column;align-items:stretch;gap:9px}.intake-partner select{max-width:none}.intake-next{flex-direction:column;gap:5px}.intake-demo{flex-direction:column;gap:2px;align-items:center}.intake-drop{padding:24px 14px}.intake-file{padding:13px;gap:10px}.intake-file>.pill{font-size:10px}.intake-order-head{padding:18px}.intake-order-head h2{font-size:19px}.intake-delivery{padding:12px 18px;flex-direction:column;gap:5px}.intake-lines{padding:0 18px}.intake-line{grid-template-columns:1fr 1fr;gap:10px}.intake-line>div{grid-column:1/-1}.intake-line>span{text-align:left;font-size:12px;color:var(--muted)}.intake-line>span:last-child{text-align:right}.intake-line-labels{display:none}.intake-note{padding:12px 18px}.mapping-entry{grid-template-columns:1fr;gap:8px}.mapping-entry b{padding:0}.intake-details-body{padding:17px}.intake-missing{grid-template-columns:1fr}.source-inspector dl>div{grid-template-columns:1fr;gap:6px}}
.preview-page .intake-continue{position:sticky;bottom:12px;z-index:4;background:#fff;border:1px solid #e0d1d4;border-radius:10px;padding:16px 18px;box-shadow:0 4px 25px #25252c0c}

/* Motion: guide the eye through real actions, without delaying ordinary navigation. */
.view-enter{animation:view-arrive .26s cubic-bezier(.2,.65,.3,1) both}
@keyframes view-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
button:active:not(:disabled),.file-trigger:active{transform:translateY(1px)}
.processing-page{max-width:610px;margin:28px auto 48px;padding:38px 32px 24px;text-align:center;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 45px #23252b05}
.processing-art{width:118px;height:114px;margin:0 auto 25px;position:relative}
.processing-art:before{content:"";position:absolute;inset:4px 0 0;border-radius:50%;background:#fbf0f1;animation:reading-breathe 2.4s ease-in-out infinite}
.processing-document{position:absolute;left:30px;top:7px;width:61px;height:80px;padding:20px 11px 12px;background:white;border:1px solid #eacdd1;border-radius:8px;box-shadow:0 7px 18px #8b283316;overflow:hidden;transform:rotate(-5deg)}
.processing-document span{display:block;height:4px;border-radius:2px;margin-bottom:7px;background:#e4d5d8}
.processing-document span:nth-child(2){width:70%}.processing-document span:nth-child(4){width:80%}
.processing-document i{position:absolute;left:0;right:0;top:-18px;height:20px;background:linear-gradient(transparent,#d39aa14d);border-bottom:1px solid #bf6a75;animation:reading-scan 2.4s ease-in-out infinite}
.processing-orbit{position:absolute;right:3px;bottom:15px;display:grid;place-items:center;width:37px;height:37px;background:var(--brand);color:#fff;border:4px solid white;border-radius:50%;box-shadow:0 3px 10px #9c253025;animation:reading-breathe 2.4s ease-in-out infinite}
.processing-orbit .icon{width:16px;height:16px}
@keyframes reading-scan{0%{transform:translateY(0);opacity:0}15%{opacity:1}80%{opacity:1}100%{transform:translateY(99px);opacity:0}}
@keyframes reading-breathe{50%{transform:scale(1.045)}}
.processing-heading .eyebrow{font-size:11px;letter-spacing:.14em;color:var(--brand)}
.processing-heading h1{font-size:28px;line-height:1.2;margin:10px 0 12px;letter-spacing:-.8px}
.processing-heading p{color:var(--muted);font-size:14px;max-width:365px;margin:0 auto}
.processing-file{display:flex;align-items:center;justify-content:center;gap:9px;min-width:0;margin:24px 0;padding:12px;background:var(--canvas);border-radius:8px;font-size:13px;color:#656775}
.processing-file span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.processing-steps{padding:0;margin:0 auto 22px;list-style:none;max-width:365px;text-align:left}
.processing-steps li{display:flex;align-items:center;gap:14px;min-height:66px;padding:10px 0;color:var(--muted);font-size:14px;border-bottom:1px solid #f1f1f3}
.processing-steps li:last-child{border-bottom:0}.processing-steps .current{color:var(--ink);font-weight:650}.processing-steps .done{color:var(--green)}
.processing-step-icon{display:grid;place-items:center;flex:0 0 28px;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;font-size:12px;font-weight:600}
.current .processing-step-icon{border-color:#e3b1b7;background:#fff5f6;color:var(--brand)}.done .processing-step-icon{border-color:#d3e8dc;background:var(--green-bg)}
.processing-steps small{display:block;font-size:12px;font-weight:400;color:var(--muted);margin-top:2px}
.done .processing-step-icon .icon{width:15px;height:15px;animation:check-arrive .22s ease-out both}
.mini-spinner{width:14px;height:14px;border:1.8px solid #ecd0d4;border-top-color:var(--brand);border-radius:50%;animation:reading-spin .8s linear infinite}
@keyframes reading-spin{to{transform:rotate(360deg)}}
.processing-note{margin:13px 0 0;font-size:11px}
.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}
.just-confirmed{animation:confirmation-flash .65s ease-out both}
@keyframes confirmation-flash{from{background:#dff1e5;box-shadow:0 0 0 3px #add4bb70}to{background:#fff;box-shadow:0 0 0 0 transparent}}
.just-confirmed .pill.green,.view-enter .completion-icon,.view-enter .receipt-icon{animation:check-arrive .4s cubic-bezier(.2,.8,.3,1.2) both}
@keyframes check-arrive{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
.view-enter .journey .selected b{animation:check-arrive .3s ease-out both}
@media(max-width:600px){.processing-page{margin:12px auto 28px;padding:28px 20px 22px}.processing-heading h1{font-size:25px}.processing-art{margin-bottom:19px}.processing-steps li{font-size:13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}button:active:not(:disabled),.file-trigger:active{transform:none}.processing-document i{display:none}}

/* Order reading: the command first, supporting information on demand. */
.order-workspace{max-width:1040px;margin:0 auto;min-width:0}
.order-back-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:0 0 14px}
.order-back-row .back-link{margin:0;padding-top:4px;padding-bottom:4px;font-size:13px}
.order-back-row .pill{font-size:11px;white-space:normal;text-align:right}
.order-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:22px}
.order-heading>div:first-child{min-width:0}.order-heading .eyebrow{font-size:10px;letter-spacing:.1em;color:var(--muted)}
.v2 .order-heading h1{font-size:27px;margin:4px 0;line-height:1.25;overflow-wrap:anywhere;letter-spacing:-.7px}
.order-heading p{font-size:14px;color:var(--muted);margin:4px 0 0;overflow-wrap:anywhere}
.order-total{display:grid;gap:4px;text-align:right;flex-shrink:0}.order-total>span,.order-total small{font-size:11px;color:var(--muted)}.order-total strong{font-size:24px;letter-spacing:-.6px;line-height:1.3}
.order-workspace .order-journey{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;margin:0 0 24px;background:white;border-radius:9px;min-width:0}
.order-workspace .order-journey button{min-width:0;min-height:52px;justify-content:center;padding:10px 7px;gap:8px;font-size:12px;white-space:normal}
.order-journey button:first-child{border-radius:8px 0 0 8px}.order-journey button:last-child{border-radius:0 8px 8px 0}
.order-journey b{flex-shrink:0}.order-workspace .order-journey button.selected{font-weight:650}
.reading-intro{margin-bottom:18px}.reading-intro h2{font-size:21px;letter-spacing:-.4px;margin:0 0 6px}.reading-intro p{font-size:14px;color:var(--muted);margin:0}
.reading-sheet{border:1px solid var(--line);border-radius:11px;background:white;overflow:hidden;min-width:0}
.reading-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:17px 20px;border-bottom:1px solid var(--line)}
.reading-sheet-head h3{font-size:15px;margin:0}.reading-sheet-head>span{font-size:12px;color:var(--muted)}
.reading-table{width:100%;min-width:0;table-layout:fixed;border-collapse:collapse}
.reading-table th{padding:9px 20px;font-size:11px;text-transform:none;letter-spacing:0;white-space:normal}
.reading-table td{padding:16px 20px;font-size:14px;vertical-align:top}
.reading-table th:first-child{width:60%}.reading-table th:nth-child(2){width:14%}.reading-table th:last-child{width:26%}
.reading-table th:not(:first-child),.reading-table td:not(:first-child){text-align:right}
.reading-table td:not(:first-child){font-variant-numeric:tabular-nums;white-space:nowrap}
.reading-table td b{display:block;line-height:1.4;font-weight:600;overflow-wrap:anywhere;font-size:14px}
.reading-table td small{display:block;margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}
.reading-ref{display:block;font-size:10px;letter-spacing:.04em;color:var(--muted);margin-top:5px;overflow-wrap:anywhere}
.reading-table tbody tr:last-child td{border-bottom:0}
.reading-units{padding:12px 20px;margin:0;border-top:1px solid var(--line);font-size:12px;color:var(--muted);background:#fafafb}.reading-units b{font-weight:550;color:#555762}
.reading-correction{margin:10px 0 0;background:transparent;border:0}.reading-correction>summary{padding:10px 0;font-size:12px;color:var(--brand)}
.reading-correction[open]{background:#fff;border:1px solid var(--line)}.reading-correction[open]>summary{padding:14px 18px}
.reading-correction .intake-details-body>p{margin:8px 0 0;font-size:12px}.reading-correction .field{margin-bottom:8px}
.reading-next{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:17px 19px;background:white;border:1px solid #e0d1d4;border-radius:10px;margin:16px 0 24px;box-shadow:0 5px 24px #25252c08;position:sticky;bottom:12px;z-index:4}
.reading-next>div{display:grid;gap:5px;min-width:0}.reading-next strong{font-size:12px;font-weight:600}.reading-next span{font-size:11px;color:var(--muted);line-height:1.4}.reading-next>button{flex-shrink:0;font-size:13px}
.order-secondary{margin:24px 0 0}.order-secondary .intake-details{background:transparent}.order-secondary .intake-details>summary{font-size:12px;padding:13px 16px;color:#686b76;overflow-wrap:anywhere}.order-secondary summary>span{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:3px}.order-secondary details[open]{background:white}
.order-secondary .micro{overflow-wrap:anywhere}
.order-content>.footnote{max-width:1040px;margin-left:auto;margin-right:auto;flex-wrap:wrap}
@media(max-width:1050px){.reading-next>div>span{display:none}.order-heading{gap:16px}.reading-table th,.reading-table td{padding-left:16px;padding-right:16px}.reading-table th:first-child{width:57%}.reading-table th:nth-child(2){width:15%}.reading-table th:last-child{width:28%}}
@media(max-width:600px){.order-heading{align-items:flex-start;margin-bottom:20px;gap:12px}.v2 .order-heading h1{font-size:21px}.order-heading p{font-size:13px}.order-total{padding-top:4px}.order-total strong{font-size:20px}.order-total span,.order-total small{font-size:10px}.order-back-row{gap:10px;margin-bottom:15px}.order-back-row .pill{font-size:10px}.order-workspace .order-journey button{flex-direction:column;gap:5px;min-height:68px;font-size:11px;padding:9px 4px}.order-workspace .order-journey{margin-bottom:23px}.reading-intro h2{font-size:20px}.reading-intro p{font-size:13px}.reading-sheet-head{padding:14px 16px}.reading-table th{padding:9px 12px;font-size:10px}.reading-table td{padding:14px 12px;font-size:12px}.reading-table th:first-child{width:53%}.reading-table th:nth-child(2){width:15%}.reading-table th:last-child{width:32%}.reading-table td b{font-size:12px}.reading-table td small{font-size:10px}.reading-ref{font-size:9px}.reading-units{font-size:11px;padding:12px 16px}.reading-next{padding:13px 15px;gap:10px;flex-direction:column;align-items:stretch;bottom:8px}.reading-next>div{text-align:center}.reading-next>button{width:100%}.reading-next strong{font-size:11px}.reading-correction .form-grid{grid-template-columns:1fr}}
.order-heading h1:focus{outline:none}
@media(min-width:601px){.reading-table td{padding-top:12px;padding-bottom:12px}.reading-sheet-head{padding-top:15px;padding-bottom:15px}}

/* The validation step always offers the next action, never a silent dead end. */
.validation-status{border:1px solid #e9dcc5;background:#fffbf4;border-radius:10px;margin:0 0 20px;overflow:hidden}
.validation-status.ready{border-color:#d0e3d8;background:#f4faf6}
.validation-state-title{display:flex;gap:12px;align-items:flex-start;padding:18px 20px}
.validation-state-title>.icon{color:var(--amber);margin-top:1px}.ready .validation-state-title>.icon{color:var(--green)}
.validation-state-title strong{font-size:15px}.validation-state-title p{margin:5px 0 0;font-size:12px;color:var(--muted)}
.validation-tasks{padding:0 18px 6px}.validation-task{display:flex;width:100%;justify-content:space-between;align-items:center;gap:15px;text-align:left;padding:14px 2px;border:0;border-top:1px solid #eee3d1;border-radius:0;background:transparent;font-weight:400}
.validation-task:hover:not(:disabled){background:#fff6e7;border-color:#eee3d1}.validation-task>span{display:grid;gap:6px;min-width:0}.validation-task b{font-size:13px;color:#735326}.validation-task small{font-size:12px;line-height:1.5;color:#6f675c;overflow-wrap:anywhere}.validation-task>.icon{color:#9a7745}
.validation-summary{background:white;border:1px solid var(--line);border-radius:11px;overflow:hidden;min-width:0}
.validation-addresses{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:25px;padding:20px;border-bottom:1px solid var(--line)}
.validation-addresses>div{min-width:0}.validation-addresses span{display:block;font-size:11px;color:var(--muted);margin-bottom:7px}.validation-addresses strong{font-size:13px;line-height:1.5;overflow-wrap:anywhere}.validation-addresses p{font-size:12px;color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere;line-height:1.5}
.validation-totals{padding:13px 20px 17px;border-top:1px solid var(--line)}.validation-totals>div{display:flex;justify-content:space-between;align-items:baseline;gap:15px;padding:6px 0;font-size:12px;color:var(--muted)}.validation-totals>div:last-child{font-size:15px;color:var(--ink);padding-top:12px}.validation-totals strong{font-size:23px;letter-spacing:-.5px}
.validation-action{position:sticky;bottom:12px;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0 14px;padding:17px 19px;background:white;border:1px solid #e0d1d4;border-radius:10px;box-shadow:0 5px 24px #25252c0a}
.validation-action>div{display:grid;gap:5px;min-width:0}.validation-action strong{font-size:12px}.validation-action span{font-size:11px;color:var(--muted)}.validation-action>button{flex-shrink:0;font-size:13px}
.validation-action.can-validate{border-color:#cadfd1}.validation-scope{font-size:11px;color:var(--muted);margin:0;line-height:1.6}
@media(max-width:1050px){.validation-action>div>span{display:none}}
@media(max-width:600px){.validation-addresses{grid-template-columns:1fr;gap:18px;padding:17px}.validation-state-title{padding:16px}.validation-state-title strong{font-size:14px}.validation-tasks{padding:0 15px 5px}.validation-task small{font-size:11px}.validation-action{flex-direction:column;align-items:stretch;gap:10px;padding:13px 15px;bottom:8px}.validation-action>div{text-align:center}.validation-action>button{width:100%}.validation-totals{padding:12px 16px}}
.export-receipt{max-width:510px;margin:22px auto 14px;padding:15px 18px;background:#f5f6f8;border:1px solid var(--line);border-radius:9px;text-align:left;overflow-wrap:anywhere}.export-receipt>b{font-size:13px}.completion .export-receipt p{font-size:12px;line-height:1.5;margin:6px 0}.export-receipt small{font-size:11px;line-height:1.5;color:var(--muted);display:block}

/* ==========================================================================
   V7 densité pro (17 septembre 2026). Section de fin de fichier : elle prend le dessus.
   Esprit back-office : pleine largeur, texte 13 à 14 px, lignes de tableau d'environ 40 px,
   titres plus petits, pieds d'action toujours visibles, détail d'une ligne dans un panneau latéral.
   Les règles antérieures restent en place ; seules des surcharges sont posées ici.
   Les variantes tablette et mobile touchées par ces surcharges sont redéclarées en fin de section.
   ========================================================================== */
body{font-size:14px;line-height:1.45}

/* Contrôles compacts, cible de clic d'au moins 32 px sur bureau. */
.v2 button,.drawer-layer button{padding:6px 11px;font-size:13px;min-height:32px;border-radius:7px;gap:6px;line-height:1.35}
.v2 input,.v2 select,.v2 textarea,.drawer-layer input,.drawer-layer select{padding:6px 10px;font-size:13px;min-height:32px;border-radius:6px;line-height:1.35}
.v2 input[type=checkbox],.drawer-layer input[type=checkbox]{min-height:0;width:16px;height:16px;padding:0;flex-shrink:0}
.v2 input[type=file]{min-height:0}
.v2 .icon,.drawer-layer .icon{width:16px;height:16px}
.v2 .ref-btn{padding:0;min-height:0;font-size:13px}
.v2 .back-link{padding-left:0;margin-bottom:6px;min-height:28px}
.v2 .file-trigger{padding:6px 12px;font-size:13px;border-radius:7px}
.v2 .upload-button{padding:6px 12px;font-size:13px;min-height:32px}
.v2 .field,.drawer-layer .field{font-size:12px;margin-bottom:10px}
.v2 .field input,.v2 .field select,.drawer-layer .field input,.drawer-layer .field select{margin-top:4px}
.v2 .check-human,.drawer-layer .check-human{margin:10px 0;font-size:13px;gap:8px}
.v2 .pill,.drawer-layer .pill{font-size:12px;padding:3px 8px;border-radius:5px}
.v2 .micro,.drawer-layer .micro{font-size:12px;line-height:1.5}

/* Titres et textes. Le texte long est borné en caractères, pas le conteneur. */
.v2 h1{font-size:21px;letter-spacing:-.02em;line-height:1.25}
.v2 h2{font-size:16px;letter-spacing:-.01em}
.v2 h3,.drawer-layer h3{font-size:14px;margin:0 0 8px}
.v2 p{margin:6px 0}
.v2 .sub,.drawer-layer .sub{font-size:13px;max-width:100ch}
.v2 .eyebrow,.drawer-layer .eyebrow{font-size:11px;letter-spacing:.1em;margin-bottom:2px}
.v2 .page-head{margin-bottom:12px;align-items:center}
.v2 .page-head .sub{margin:2px 0 0}
.v2 .content h1:focus,.v2 .content h2:focus{outline:none}

/* Coque : barre latérale et barre supérieure resserrées, contenu en pleine largeur. */
.shell.v2{grid-template-columns:208px minmax(0,1fr)}
.v2 .sidebar{padding:16px 12px 14px}
.v2 .logo{width:118px;max-height:64px}
.v2 .brand-label{font-size:10px;margin:10px 0 16px;padding-top:10px}
.v2 .nav-label{font-size:10px;margin:0 8px 6px}
.v2 .nav{gap:2px}
.v2 .nav button{padding:7px 9px;font-size:13px;min-height:34px}
.v2 .side-note{padding:10px 12px;font-size:11px}
.v2 .side-note strong{font-size:12px;margin-bottom:2px}
.v2 .agency{font-size:10px;margin-top:12px}
.v2 .topbar{padding:8px 24px;min-height:48px}
.v2 .breadcrumb{font-size:13px}
.v2 .demo-label{font-size:11px;padding:3px 8px}
.v2 .top-actions>select{width:200px;font-size:13px}
.v2 .content{max-width:none;margin:0;padding:16px 24px 20px}
.v2 .content:has(.intake-page){padding-top:16px}
.v2 .footnote,.v2 .content:has(.intake-page)>.footnote,.order-content>.footnote{max-width:none;margin:16px 0 0;font-size:11px}
.v2 .order-content{padding-top:12px}
.v2 .mt24{margin-top:14px}
.v2 .empty{padding:28px 16px}
.v2 .notice,.drawer-layer .notice{padding:8px 12px;font-size:13px;margin:10px 0;border-radius:7px}
.v2 .notice p,.drawer-layer .notice p{margin:3px 0;max-width:110ch}
.v2 .inset{margin:0 16px 14px}
.v2 .toggle-note{padding:8px 12px;margin-bottom:12px}

/* Panneaux, tableaux, listes. */
.v2 .panel{border-radius:10px}
.v2 .panel-head{padding:10px 16px 8px}
.v2 .padded{padding:14px 16px}
.v2 .toolbar{padding:0 16px 10px;gap:8px}
.v2 .search-wrap svg,.drawer-layer .search-wrap svg{left:10px;top:8px}
.v2 .search-wrap input,.drawer-layer .search-wrap input{padding-left:32px}
.v2 th{font-size:11px;padding:7px 14px}
.v2 td{font-size:13px;padding:9px 14px}
.v2 td small,.v2 .cell-sub{display:block;font-size:12px;color:var(--muted);margin-top:1px}
.v2 td.num,.v2 th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.v2 .catalog-table th,.v2 .catalog-table td{padding:7px 14px}
.v2 .catalog-table .quiet{min-height:28px;padding:4px}
.v2 .catalog-table .cell-sub{display:inline;margin:0 0 0 10px}
.v2 .info-card{padding:14px 16px;border-radius:10px}
.v2 .info-card p{font-size:13px}
.v2 .settings{gap:12px;grid-template-columns:repeat(3,minmax(0,1fr))}
.v2 .choice{padding:8px 0;gap:10px}
.v2 .choice b{font-size:13px}
.v2 .choice span{font-size:12px}
.v2 .history-list{padding:0 16px 8px}
.v2 .history-item{padding:7px 0;font-size:13px;align-items:baseline}
.v2 .history-item>div{display:flex;flex-wrap:wrap;gap:2px 10px;align-items:baseline;min-width:0}
.v2 .history-item p{margin:0}
.v2 .history-item strong{display:inline;font-size:13px}
.v2 .history-item span{color:var(--muted)}
.v2 .event{font-size:12px;padding:3px 0 6px 10px;margin-top:6px}

/* Vue d'ensemble. */
.v2 .focus-card{border-radius:10px}
.v2 .focus-card>div:first-child{padding:14px 18px}
.v2 .focus-card h2{font-size:17px;margin:4px 0}
.v2 .focus-card p{font-size:13px;margin:4px 0 10px;max-width:100ch}
.v2 .focus-card .micro{margin-top:8px}
.v2 .focus-flow{padding:12px 16px;gap:6px}
.v2 .focus-flow span{font-size:12px;gap:8px}
.v2 .focus-flow b{width:22px;height:22px;font-size:10px}
.v2 .compact.stats{margin:12px 0;gap:10px}
.v2 .compact .stat{padding:10px 14px;border-radius:10px}
.v2 .stat .label{font-size:12px}
.v2 .compact .value{font-size:22px;margin:2px 0;line-height:1.2}
.v2 .compact .note{font-size:11px}
.v2 .inbox-panel{margin-bottom:12px}
.v2 .partner-order-row{padding:8px 0;gap:12px}
.v2 .partner-order-row b{font-size:13px}
.v2 .partner-order-row small{font-size:12px}
.v2 .order-list{padding:0 16px}
.v2 .order-row{padding:6px 0;gap:14px;align-items:center;min-height:40px}
.v2 .order-row>span{flex-direction:row;align-items:baseline;flex-wrap:wrap;gap:2px 8px}
.v2 .order-glyph{display:none}
.v2 .order-identity{flex:1.1;min-width:0}
.v2 .order-identity b{font-size:13px}
.v2 .order-source{flex:0 0 200px;min-width:0;align-items:center}
.v2 .order-status{flex:1.4;min-width:0;align-items:center}
.v2 .order-amount{flex:0 0 130px;min-width:0;justify-content:flex-end;font-size:13px;font-variant-numeric:tabular-nums}
.v2 .partner{font-size:11px;padding:2px 6px}

/* Catalogue et imports : même densité, sans refonte. */
.v2 .source-cards{gap:12px;margin-bottom:14px}
.v2 .source-card{padding:12px 16px;border-radius:10px}
.v2 .source-card.sage{padding-top:10px}
.v2 .source-number{margin-bottom:4px;font-size:11px}
.v2 .source-card h2{font-size:15px}
.v2 .source-card p{font-size:13px;margin:4px 0;max-width:90ch}
.v2 .source-state{font-size:13px;margin:4px 0 8px}
.v2 .source-state small{margin-top:1px}
.v2 .source-card .quiet{margin:4px auto 0}
.v2 .catalog-toolbar{margin-bottom:10px;align-items:center}
.v2 .import-top{margin-bottom:10px}
.v2 .mapping-grid{gap:10px 14px;padding:0 16px 12px}
.v2 .mapping-field{gap:3px;font-size:12px}
.v2 .action-footer{padding:10px 16px}
.v2 .import-counts{gap:28px;margin:0 0 10px}
.v2 .import-counts strong{font-size:22px}
.v2 .preview-change{padding:7px 0;font-size:13px}
.v2 .article-layout{gap:14px}
.v2 .article-identity{padding:16px 18px;border-radius:10px}
.v2 .article-year{font-size:38px;margin:6px 0}
.v2 .article-identity h2{font-size:18px}
.v2 .received dl,.v2 .article-identity dl,.drawer-layer .drawer-section dl{font-size:13px;gap:6px 14px;margin:10px 0}
.v2 .offer-line{padding:8px 0;font-size:13px;gap:2px}

/* Détails repliés et fichier d'origine. */
.v2 .intake-details{margin:0 0 6px;border-radius:8px}
.v2 .intake-details>summary{padding:8px 14px;font-size:12px}
.v2 .intake-details-body{padding:12px 14px}
.v2 .intake-details-body>p{margin:0 0 10px;font-size:12px}
.v2 .source-inspector dl{margin:8px 0 0}
.v2 .source-inspector dl>div{padding:5px 0;font-size:12px;gap:14px}
.v2 .mapping-entry{padding:6px 0;gap:14px;font-size:12px}
.v2 .mapping-entry b{padding-top:7px}
.v2 .order-secondary{margin:12px 0 0}
.v2 .order-secondary .intake-details>summary{padding:8px 14px}
.v2 .order-secondary summary>span{display:inline;margin:0 0 0 8px}

/* Dossier de commande : pleine largeur, en-tête sur une à deux lignes, frise compacte. */
.order-workspace{max-width:none;margin:0}
.order-back-row{margin:0 0 2px}
.order-heading{margin-bottom:8px;gap:16px;align-items:baseline}
.order-heading>div:first-child{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px}
.order-heading .eyebrow{margin:0}
.v2 .order-heading h1{font-size:20px;margin:0;letter-spacing:-.02em}
.order-heading p{margin:0;font-size:13px}
.order-total{display:flex;align-items:baseline;flex-wrap:wrap;justify-content:flex-end;gap:2px 8px}
.order-total strong{font-size:18px;letter-spacing:-.02em}
.order-workspace .order-journey{margin:0 0 12px;border-radius:8px}
.order-workspace .order-journey button{min-height:36px;padding:5px 7px;font-size:12px;gap:7px}
.v2 .journey b{width:20px;height:20px;font-size:10px}
.v2 .step-intro{margin:0 0 10px}
.v2 .step-intro h2{font-size:16px;margin:1px 0 2px}
.v2 .step-intro p{font-size:13px;max-width:110ch;margin:0}
.reading-intro{margin-bottom:8px}
.reading-intro h2{font-size:16px;margin:0 0 2px}
.reading-intro p{font-size:13px;max-width:110ch}
.reading-sheet{border-radius:10px}
.reading-sheet-head{padding:7px 14px}
.reading-sheet-head h3{font-size:13px}
.reading-table th{padding:6px 14px}
.reading-table td{padding:6px 14px;font-size:13px;vertical-align:middle}
.reading-table td b{font-size:13px;line-height:1.35}
.v2 .reading-table td small{display:inline;margin:0;font-size:12px}
.reading-ref{display:inline;margin:0 0 0 8px;font-size:11px}
.reading-units{padding:6px 14px}
.reading-correction{margin:6px 0 0}
.reading-correction>summary{padding:6px 0}

@media(min-width:1101px){.reading-table td b{display:inline;margin-right:10px}}

/* Les quatre pieds d'action : un seul style, collants en bas de la fenêtre, jamais hors de vue. */
.step-footer,.reading-next,.validation-action,.preview-page .intake-continue{position:sticky;bottom:8px;z-index:4;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:16px;margin:10px 0 12px;padding:8px 10px 8px 14px;background:#fff;border:1px solid #e0d1d4;border-radius:9px;box-shadow:0 4px 18px #25252c1f}
.validation-action.can-validate{border-color:#cadfd1}
.step-footer>div{max-width:none;font-size:13px;gap:8px;color:var(--muted)}
.reading-next>div,.validation-action>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.reading-next strong,.validation-action strong{font-size:13px}
.reading-next span,.validation-action span,.preview-page .intake-continue>span{font-size:12px;color:var(--muted)}
.step-footer>button,.reading-next>button,.validation-action>button,.preview-page .intake-continue>button{flex-shrink:0;white-space:nowrap}
.validation-scope{margin:0 0 4px}

/* Étape Articles : une ligne par article, le détail dans le drawer. */
.lines-toolbar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:0 0 8px}
.v2 .matching-summary{margin:0;font-size:12px;gap:10px}
.v2 .catalog-strip{margin:0 0 0 auto;padding:3px 3px 3px 12px;gap:12px;border-radius:8px}
.v2 .catalog-strip>div{font-size:12px;gap:8px}
.lines-table,.spaces-table,.intake-table{width:100%;border-collapse:collapse}
.v2 .lines-table td,.v2 .spaces-table td{padding:4px 12px;vertical-align:middle}
.v2 .lines-table th,.v2 .spaces-table th{padding:7px 12px}
.lines-table td b{font-weight:600;display:block;line-height:1.35;overflow-wrap:anywhere}
.lines-table .line-no{width:44px}
.lines-table th:nth-child(2){width:27%}
.lines-table th:nth-child(3){width:25%}
.lines-table .line-index{padding:2px 6px;font-size:11px}
.lines-table tr.confirmed{background:#fbfdfb}
.line-gap{display:flex!important;align-items:flex-start;gap:5px;color:var(--brand)!important;margin-top:3px!important;line-height:1.35}
.line-gap .icon{width:13px;height:13px;margin-top:1px}
.line-actions{white-space:nowrap;text-align:right}
.line-actions button+button{margin-left:6px}
.lines-table tr.just-confirmed td{animation:confirmation-flash .65s ease-out both}

/* Espaces partenaires : un tableau qui tient cent partenaires. */
.spaces-table .space-name b{font-weight:650}
.spaces-table tr.same-space .space-name b{font-weight:400;color:var(--muted)}
.spaces-table .space-email{overflow-wrap:anywhere}
.v2 .spaces-table td small{display:inline;margin:0 0 0 8px}
.sort-btn{border:0!important;background:transparent!important;padding:0!important;min-height:0!important;font:inherit;font-size:11px!important;font-weight:600;letter-spacing:.045em;text-transform:uppercase;color:#6c6e79;gap:6px}
.sort-btn::after{content:"";border:4px solid transparent;border-bottom-color:currentColor;margin-top:-4px}
th[aria-sort=descending] .sort-btn::after{border-bottom-color:transparent;border-top-color:currentColor;margin-top:4px}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:8px 12px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.pager>span:first-child{margin-right:auto;font-variant-numeric:tabular-nums;color:var(--ink)}
.pager-note{padding:6px 12px;margin:0;border-top:1px solid var(--line)}

/* Livraison : formulaire sur plusieurs colonnes, contrôles visibles à côté. */
.v2 .delivery-layout{gap:12px;grid-template-columns:minmax(0,2.4fr) minmax(250px,1fr);align-items:start}
.v2 .delivery-layout .form-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px}
.v2 .control-row{flex-direction:row;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:4px 10px;padding:7px 0;font-size:13px}

/* Validation : état et récapitulatif côte à côte sur grand écran. */
/* 17/09 11 h, retour de Gabriel : l'état ne prend plus une colonne ; une bande fine, puis le récapitulatif en pleine largeur. */
.validation-columns{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:start}
.validation-status{margin:0;border-radius:10px}
.validation-state-title{padding:8px 12px;gap:10px;align-items:center}
.validation-state-title>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;min-width:0}
.validation-state-title strong{font-size:13px}
.validation-state-title p{margin:0;font-size:12px}
.validation-tasks{display:flex;flex-wrap:wrap;gap:8px;padding:0 12px 10px}
.v2 .validation-task{width:auto;flex:1 1 240px;min-height:0;padding:8px 10px;border:1px solid #eee3d1;border-radius:8px;background:#fff}
.validation-task>span{gap:2px}
.validation-summary{border-radius:10px}
.validation-addresses{padding:10px 14px;gap:16px}
.validation-addresses span{margin-bottom:2px}
.validation-addresses p{margin:2px 0 0}
.validation-totals{padding:6px 14px 8px}
.validation-totals>div{padding:3px 0}
.validation-totals>div:last-child{font-size:13px;padding-top:6px}
.validation-totals strong{font-size:18px}

/* Résultat : une bande compacte, plus de grande carte centrée. */
/* 17/09 11 h, retour de Gabriel (« tu peux mieux faire ici ») : une bande état + actions, le récapitulatif figé dessous. */
.completion{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px;text-align:left;max-width:none;margin:0 0 10px;padding:10px 14px;border-radius:10px;background:#f4faf6;border:1px solid #d0e3d8}
.completion.blocked{background:#fff5e5;border-color:#e9dcc5}
.completion-main{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 420px}
.completion-icon{width:34px;height:34px;margin:0;flex-shrink:0;border-radius:50%;background:#e2f1e8;color:var(--green);display:inline-flex;align-items:center;justify-content:center}
.completion.blocked .completion-icon{background:#f7e9cf;color:var(--amber)}
.completion-icon .icon{width:18px;height:18px}
.completion-text{min-width:0}
.completion-text .eyebrow{font-size:10px}
.completion h2{font-size:16px;margin:0}
.completion-text p{font-size:12px;margin:2px 0 0;color:var(--muted)}
.completion-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.completion-note{margin:0 0 10px}
.v2 .export-receipt{max-width:none;margin:0 0 10px;padding:9px 14px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px}
.v2 .export-receipt p,.v2 .export-receipt small{margin:0}
.export-receipt{max-width:none;margin:8px 0;padding:8px 12px;justify-self:stretch}
.completion .notice{justify-self:stretch}

/* Dépôt : une bande avant fichier, une ligne d'en-tête et un tableau dense après. */
.intake-page{max-width:none;margin:0}
.intake-heading{margin:0 0 10px}
.intake-heading h1{font-size:21px}
.intake-heading p{font-size:13px;margin:2px 0 0;max-width:110ch}
.preview-head{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin:0 0 10px}
.preview-head .back-link,.preview-page .preview-head .back-link{margin:0;flex-basis:100%;justify-content:flex-start}
.preview-head .intake-heading{margin:0;flex:1;min-width:240px}
.v2 .intake-file{margin:0;padding:5px 10px;gap:10px;border-radius:8px;flex:0 1 auto}
.v2 .intake-file>div{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.v2 .intake-file b{font-size:13px}
.intake-order{border-radius:10px;margin-bottom:10px}
.intake-order-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:flex-start;gap:2px 16px;padding:8px 14px;border-bottom:1px solid var(--line);background:#fafafb}
.intake-order-head .eyebrow{margin:0}
.intake-order-head h2{font-size:15px;margin:0}
.intake-order-client{font-size:13px;font-weight:600}
.intake-order-meta{font-size:12px;color:var(--muted)}
.intake-order-meta b{color:var(--ink);font-weight:600}
.v2 .intake-missing{padding:8px 14px;gap:10px}
.intake-lines{padding:0}
.v2 .intake-table th,.v2 .intake-table td{padding:6px 14px}
.intake-table th:nth-child(1){width:34%}
.intake-table th:nth-child(2){width:18%}
.intake-table th:nth-child(3){width:10%}
.intake-table th:nth-child(4){width:14%}
.intake-table{table-layout:fixed}
.intake-table td{overflow-wrap:anywhere}
.intake-table td b{font-weight:600}
.intake-table th:nth-child(n+5){text-align:right}
.more-lines>summary{padding:7px 14px;font-size:12px;border-top:1px solid var(--line)}
.intake-meaning{font-size:12px;margin:8px 0}
.intake-simulation{margin:8px 0 0}

/* Écran de chargement : une bande compacte, les phases sur une ligne. Durées et logique inchangées. */
.processing-page{max-width:none;margin:0 0 16px;padding:12px 16px;text-align:left;border-radius:10px;box-shadow:none;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"art heading cancel" "art file cancel" "steps steps steps" "note note note";align-items:center;gap:4px 14px}
.processing-art{grid-area:art;width:59px;height:57px;margin:0;position:relative}
.processing-art::before,.processing-art>*{zoom:.5}
.processing-heading{grid-area:heading;min-width:0}
.processing-heading .eyebrow{font-size:10px}
.processing-heading h1{font-size:18px;margin:0;letter-spacing:-.02em}
.processing-heading p{font-size:13px;max-width:none;margin:0}
.processing-file{grid-area:file;justify-content:flex-start;margin:0;padding:0;background:transparent;font-size:12px}
.processing-page>button{grid-area:cancel}
.processing-steps{grid-area:steps;display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:8px;max-width:none;margin:8px 0 0}
.processing-steps li{min-height:0;padding:7px 10px;gap:10px;font-size:13px;border:1px solid #f1f1f3;border-radius:8px}
.processing-steps li:last-child{border-bottom:1px solid #f1f1f3}
.processing-steps small{font-size:11px;margin:0}
.processing-step-icon{flex-basis:24px;width:24px;height:24px;font-size:11px}
.processing-note{grid-area:note;margin:4px 0 0}

/* Drawer : panneau latéral droit, la page reste visible derrière un voile très léger. Jamais une boîte centrée. */
.drawer-layer{position:relative;z-index:15;font-size:13px}
.drawer-veil{position:fixed;inset:0;background:#2021271f}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(580px,calc(100vw - 32px));display:flex;flex-direction:column;background:#fff;border-left:1px solid #dcdce3;box-shadow:-14px 0 44px #24252c26;color:var(--ink)}
.drawer:focus{outline:none}
.drawer-veil.drawer-entering{animation:drawer-veil-in .2s ease-out}
.drawer.drawer-entering{animation:drawer-in .24s cubic-bezier(.2,.65,.3,1)}
@keyframes drawer-in{from{transform:translateX(100%)}to{transform:none}}
@keyframes drawer-veil-in{from{opacity:0}to{opacity:1}}
.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 10px 10px 16px;border-bottom:1px solid var(--line)}
.drawer-heading{display:grid;gap:5px;min-width:0;justify-items:start}
.drawer-title{font-size:15px;line-height:1.3;margin:0;overflow-wrap:anywhere}
.drawer-title:focus{outline:none}
.drawer-title:focus-visible{outline:3px solid #d08088;outline-offset:3px;border-radius:3px}
.drawer-close{flex-shrink:0}
.drawer-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 16px 16px}
.drawer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px;border-top:1px solid var(--line);background:#fafafb}
.drawer-foot>button{flex-shrink:0}
.drawer-section{padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid var(--line)}
.drawer-section:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.drawer-section.received{background:transparent;border-right:0;padding:0 0 12px}
.drawer-section h3{margin:2px 0 0}
.drawer-section dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.drawer-section dt{color:var(--muted)}
.drawer-section dd{margin:0;text-align:right;overflow-wrap:anywhere}
.drawer-section.suggested{padding:0}
.drawer-layer .match-search{margin:8px 0}
.drawer-layer .candidate-list{gap:6px}
.drawer-layer .candidate{padding:7px 10px;font-size:13px;line-height:1.4;justify-content:space-between;text-align:left;font-weight:400;width:100%}
.drawer-layer .candidate small{font-size:12px;margin-top:1px}
.drawer-layer .match-proposal{margin-top:12px;padding-top:10px}
.drawer-layer .proposal-label{font-size:12px;margin-bottom:8px}
.drawer-layer .form-grid{gap:0 12px}
.drawer-layer .mail-preview{margin:12px 0 0;padding:14px 16px}
.drawer-layer .mail-preview p{font-size:13px}

/* Tableaux en lignes empilées quand la largeur manque : jamais de défilement horizontal. */
@media(max-width:1100px){
.stack-table,.stack-table tbody,.stack-table tr,.stack-table td{display:block;width:auto}
.stack-table thead{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.v2 .stack-table tr{padding:8px 12px;border-bottom:1px solid #eeeef1}
.v2 .stack-table tbody tr:last-child{border-bottom:0}
.v2 .stack-table td{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:12px;padding:2px 0;border:0;text-align:right;white-space:normal}
.v2 .stack-table td>*{grid-column:2;justify-self:end}
.v2 .stack-table td::before{content:attr(data-label);grid-column:1;grid-row:1/span 3;font-size:11px;color:var(--muted);text-align:left}
.v2 .stack-table td[data-primary]{display:block;text-align:left;padding-bottom:4px}
.v2 .stack-table td[data-primary]::before,.v2 .stack-table td:empty{display:none}
.v2 .stack-table td small{text-align:right;margin:0}
.v2 .stack-table td[data-primary] small{text-align:left}
.stack-table .line-gap{justify-content:flex-end}
.lines-table .line-no{width:auto}
.v2 .stack-table .line-actions{display:flex;justify-content:flex-end;padding-top:6px}
.v2 .stack-table .line-actions::before{display:none}
.intake-table th:nth-child(n){width:auto}
}
/* Variantes redéclarées : ces surcharges ont la même force que les règles d'écran étroit antérieures. */
@media(min-width:1500px){.v2 .content{padding:18px 32px 22px}.v2 .topbar{padding-left:32px;padding-right:32px}}
@media(max-width:1150px){
.shell.v2{grid-template-columns:184px minmax(0,1fr)}
.v2 .sidebar{padding:14px 10px}
.v2 .logo{width:108px}
.v2 .content{padding:14px 18px 18px}
.v2 .topbar{padding:8px 18px}
.v2 .settings{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2 .delivery-layout .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.v2 .order-source{flex-basis:150px}
}
@media(max-width:1000px){
.validation-columns{grid-template-columns:1fr}
}
@media(max-width:950px){
.v2 .delivery-layout{grid-template-columns:1fr}
.v2 .order-row{flex-wrap:wrap}
.v2 .catalog-strip{margin-left:0}
}
@media(max-width:800px){
.v2 button,.drawer-layer button{min-height:40px}
.v2 input,.v2 select,.v2 textarea,.drawer-layer input,.drawer-layer select{min-height:40px;font-size:14px}
.v2 input[type=checkbox],.drawer-layer input[type=checkbox]{min-height:0;width:18px;height:18px}
.v2 .ref-btn,.sort-btn{min-height:0}
.v2 .sidebar{padding:10px 16px}
.v2 .logo{width:96px;height:38px}
.v2 .nav{margin-top:8px}
.v2 .nav button{padding:8px 9px;font-size:13px;min-height:38px}
.v2 .topbar{padding:8px 16px;min-height:0}
.v2 .content{padding:14px 16px 18px}
.v2 h1{font-size:19px}
.v2 .settings{grid-template-columns:1fr}
.v2 .top-actions>select{width:auto;max-width:210px}
.v2 .footnote span{display:block}
.order-workspace .order-journey button{min-height:40px}
}
@media(max-width:700px){
.step-footer,.reading-next,.validation-action,.preview-page .intake-continue{flex-direction:column;align-items:stretch;gap:6px;padding:8px 10px;bottom:6px}
.step-footer>div,.reading-next>div,.validation-action>div{justify-content:center;text-align:center}
.preview-page .intake-continue>span{text-align:center}
.step-footer>button,.reading-next>button,.validation-action>button,.preview-page .intake-continue>button{width:100%;white-space:normal}
.reading-next>div>span,.validation-action>div>span{display:none}
.processing-page{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"art heading" "file file" "steps steps" "cancel cancel" "note note"}
.processing-steps{grid-template-columns:1fr}
.drawer-foot{flex-direction:column;align-items:stretch}
.drawer-foot>.micro{text-align:center}
}
@media(max-width:600px){
.v2 h1,.intake-heading h1{font-size:19px}
.v2 .order-heading h1{font-size:18px}
.order-heading{align-items:flex-start;margin-bottom:8px;gap:10px}
.order-total strong{font-size:16px}
.order-workspace .order-journey button{min-height:52px;padding:6px 4px;font-size:11px}
.order-workspace .order-journey{margin-bottom:10px}
.reading-intro h2,.v2 .step-intro h2{font-size:15px}
.reading-table th{padding:6px 10px}
.reading-table td{padding:7px 10px;font-size:12px}
.reading-table td b{font-size:12px}
.v2 .reading-table td small{font-size:11px}
.v2 .order-list{padding:0 12px}
.v2 .order-amount{flex:none;justify-content:flex-end}
.v2 .order-status{flex:none}
.completion{padding:12px;column-gap:10px}
.completion h2{font-size:16px}
.v2 .intake-missing{grid-template-columns:1fr}
.v2 .intake-file>.pill{font-size:11px}
.drawer{width:min(580px,calc(100vw - 24px))}
.drawer-body{padding:10px 12px 14px}
.drawer-head{padding:10px 8px 8px 12px}
.drawer-foot{padding:8px 12px}
}
@media(max-width:440px){
.v2 .content{padding:12px 12px 16px}
.v2 .topbar{padding:8px 12px}
.v2 .delivery-layout .form-grid,.drawer-layer .form-grid{grid-template-columns:1fr}
.pager{flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){.drawer.drawer-entering,.drawer-veil.drawer-entering,.lines-table tr.just-confirmed td{animation:none!important}}

/* 17/09 11 h, retour de Gabriel : le dépôt prend la page entière et montre ce que fait l'assistant. */
.intake-hero{display:flex;flex-direction:column;gap:12px;min-height:calc(100vh - 150px)}
.intake-hero-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px 24px}
.intake-hero-head .intake-heading{margin:0;flex:1 1 520px}
.intake-hero .intake-partner{margin:0;width:260px;max-width:100%}
.intake-drop.intake-drop-hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;flex:1 1 auto;min-height:34vh;padding:28px 20px;text-align:center;border:2px dashed #d9b3b7;border-radius:12px;background:linear-gradient(180deg,#fff,#fcf7f8)}
.intake-drop.intake-drop-hero:hover{border-color:var(--brand);background:#fff5f5}
.intake-drop.intake-drop-hero .intake-upload-icon{width:52px;height:52px;border-radius:50%;background:#fff0f0;color:var(--brand);display:inline-flex;align-items:center;justify-content:center}
.intake-drop.intake-drop-hero .intake-upload-icon .icon{width:24px;height:24px}
.intake-drop.intake-drop-hero h2{font-size:20px;margin:4px 0 0;letter-spacing:-.01em}
.intake-drop.intake-drop-hero .micro{font-size:12px}
.intake-drop.intake-drop-hero .file-trigger{margin-top:8px}
.intake-demo-hero{display:flex;justify-content:flex-end;align-items:center;gap:6px;font-size:12px;color:var(--muted);margin:-4px 0 0}
.ai-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.ai-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 14px 12px 46px}
.ai-no{position:absolute;left:14px;top:12px;width:22px;height:22px;border-radius:50%;background:var(--brand);color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.ai-card h3{font-size:13px;margin:2px 0 4px}
.ai-card ul{margin:0;padding-left:16px;font-size:12px;color:var(--muted);line-height:1.55}
.ai-memory{display:flex;flex-wrap:wrap;gap:4px 0;margin:0;font-size:12px;color:var(--muted)}
.ai-memory span+span::before{content:"·";margin:0 8px}
@media(max-width:900px){.ai-strip{grid-template-columns:1fr}.intake-drop.intake-drop-hero{min-height:220px}.intake-hero{min-height:0}}
/* m8 (Némésis) : pas de défilement de la page sous le panneau ouvert. */
body.drawer-open{overflow:hidden}

/* V7 bis (Gabriel, 17/09) : tableau des espaces lisible sur une ligne, détail dans le drawer. */
@media(min-width:1101px){.spaces-table td{white-space:nowrap}.spaces-table .space-name{max-width:260px;overflow:hidden;text-overflow:ellipsis}.spaces-table .space-contact{max-width:220px;overflow:hidden;text-overflow:ellipsis}.spaces-table .space-email{max-width:300px;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}.spaces-table .space-last{color:var(--muted)}}
.contact-list{list-style:none;padding:0;margin:8px 0 0;font-size:13px}
.contact-list li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.contact-list li span{display:grid;gap:1px;min-width:0}
.contact-list li small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.drawer-section .quiet{padding-left:0}
/* 17/09, Gabriel : le logo Vins+Vins centré en haut de la colonne de gauche. */
.sidebar .logo{align-self:center;margin:0 auto}
.sidebar .brand-label{text-align:center}

/* 17/09, Gabriel : le pied d'action colle dans le bloc de l'étape seulement ; il ne flotte plus par-dessus les rubriques du bas (fichier d'origine, partage, historique). */
.order-step{display:flow-root}

/* 17/09, Gabriel : écran intermédiaire « Votre fichier est prêt », grand check, 3,5 s (ou « Afficher maintenant »). */
.processing-page.processing-done{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;min-height:min(62vh,560px);padding:40px 24px;border-color:#d0e3d8;background:linear-gradient(180deg,#fff,#f4faf6)}
.processing-done .processing-check{width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;box-shadow:0 0 0 14px #2f7d5d1f,0 0 0 30px #2f7d5d0f;animation:done-pop .55s cubic-bezier(.2,.9,.3,1.25) both}
.processing-done .processing-check .icon{width:56px;height:56px;stroke-width:2.6;animation:done-draw .45s .25s ease-out both}
.processing-done .processing-heading{display:block}
.processing-done .processing-heading .eyebrow{color:var(--green);font-size:11px}
.processing-done .processing-heading h1{font-size:28px;margin:6px 0 6px;letter-spacing:-.02em}
.processing-done .processing-heading p{font-size:14px;max-width:60ch;margin:0 auto;color:var(--muted)}
.processing-done .processing-file{margin:6px 0 0}
.processing-done .processing-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:6px 0 4px;max-width:none}
.processing-done .processing-steps li{min-height:0;padding:0;border:0;gap:8px;font-size:13px}
.processing-done .processing-steps small{display:none}
.processing-done .processing-step-icon{flex:0 0 20px;width:20px;height:20px}
.processing-done .processing-note{margin:4px 0 0}
@keyframes done-pop{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes done-draw{from{opacity:0;transform:scale(.5) rotate(-12deg)}to{opacity:1;transform:none}}
@media(max-width:600px){.processing-done .processing-check{width:88px;height:88px}.processing-done .processing-check .icon{width:44px;height:44px}.processing-done .processing-heading h1{font-size:23px}}

/* 17/09, Gabriel : ligne sans proposition : un lien discret, une recherche simulée dans la source, l'article trouvé, Sélectionner. */
button.link{border:0;background:transparent;padding:0;min-height:0;color:var(--brand);font-weight:600;font-size:13px;text-decoration:underline;text-underline-offset:3px}
button.link:hover:not(:disabled){background:transparent;color:var(--brand-dark)}
.no-candidate{margin:6px 0 0}
.source-link{margin:8px 0 0;font-size:13px}
.source-result{margin:10px 0 0;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff;font-size:13px}
.source-result.searching{display:flex;align-items:center;gap:10px;color:var(--muted)}
.source-result.searching small,.source-item small{display:block;font-size:12px;color:var(--muted)}
.source-result.found{border-color:#d0e3d8;background:#f4faf6}
.source-result.found .eyebrow{color:var(--green);font-size:10px}
.source-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0 4px}
.source-item>span{min-width:0}
.source-result.none{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}
.source-result .micro{margin:6px 0 0}
/* 17/09, Gabriel : l'encart du parcours est un encart de DÉMONSTRATION et doit se lire comme tel ; plus de rouge agressif sur la vue d'ensemble. */
.focus-card.demo-card{border:1.5px dashed #d9c08a;background:#fffdf8;box-shadow:none}
.demo-card .focus-flow{background:#fdf6e6}
.demo-card .focus-flow b{background:#fff;color:var(--amber);border-color:#ead9b0}
.demo-chip{display:inline-block;padding:2px 8px;border-radius:6px;background:var(--amber-bg);color:var(--amber);font-size:11px;font-weight:700;letter-spacing:.08em}

/* 17/09, Gabriel : écrire dans Sage est une étape à part, visible et pesée. */
.sage-step{display:flex;align-items:center;gap:14px;margin:0 0 10px;padding:14px 16px;border-radius:10px;border:1.5px solid #e3c9a0;background:#fffaf0}
.sage-step>div:nth-child(2){flex:1 1 auto;min-width:0}
.sage-step .eyebrow{font-size:10px;color:var(--amber)}
.sage-step h3{font-size:17px;margin:2px 0;letter-spacing:-.01em}
.sage-step p{margin:0;font-size:13px;color:var(--muted);max-width:95ch}
.sage-step>button{flex-shrink:0;white-space:nowrap}
.sage-step-icon{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#f7e9cf;color:var(--amber)}
.sage-step-icon .icon{width:20px;height:20px}
.sage-step.done{border-color:#bfdccb;background:#eef8f2}
.sage-step.done .eyebrow{color:var(--green)}
.sage-step.done h3{font-size:22px;font-variant-numeric:tabular-nums}
.sage-step.done .sage-step-icon{flex-basis:52px;width:52px;height:52px;background:var(--green);color:#fff;animation:check-arrive .4s cubic-bezier(.2,.8,.3,1.2) both}
.sage-step.done .sage-step-icon .icon{width:26px;height:26px}
.sage-step.error{border-color:#e5b5b9;background:#fff3f3}
.sage-step.error .eyebrow{color:var(--brand)}
.sage-step.error .sage-step-icon{background:#fbe0e2;color:var(--brand)}
/* Démonstration du parcours Sage simulé (décision du 3 octobre) : sous l'export, en retrait, jamais l'action principale. */
.sage-step.demo{border-style:dashed;border-color:var(--line);background:#fcfcfb}
.sage-step.demo .eyebrow{color:var(--muted)}
.sage-step.demo .sage-step-icon{background:#f1f1f1;color:var(--muted)}
.sage-step.demo.done{border-color:#bfdccb;background:#f6fbf8}
.sage-step.demo.done h3{font-size:17px}
.sage-step.demo.done .sage-step-icon{flex-basis:40px;width:40px;height:40px;background:#e3f1e8;color:var(--green);animation:none}
.sage-step.demo.done .sage-step-icon .icon{width:20px;height:20px}
.sage-step.demo.error{border-color:#e5b5b9;background:#fffafa}
.sage-warning{margin:0 0 4px;border-width:1.5px}
.sage-warning strong{font-size:14px}
.sage-lines{width:100%;border-collapse:collapse;font-size:13px;margin:8px 0 0}
.sage-lines td{padding:6px 0;border-top:1px solid var(--line);vertical-align:top}
.sage-lines td small{display:block;color:var(--muted);font-size:12px}
.sage-lines .num{text-align:right;white-space:nowrap;padding-left:12px;font-variant-numeric:tabular-nums}
.sage-totals{display:grid;grid-template-columns:1fr auto;gap:4px 16px;margin:8px 0 0;padding-top:8px;border-top:1px solid var(--line);font-size:13px}
.sage-totals dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
.sage-totals strong{font-size:16px}
.sage-check{margin:14px 0 0;padding:12px;border:1.5px solid #e3c9a0;border-radius:10px;background:#fffaf0;font-weight:600}
.sage-demo{margin:12px 0 0;font-size:12px;color:var(--muted)}
.sage-demo summary{cursor:pointer}
.sage-demo .choice{margin-top:8px}
@media(max-width:700px){.sage-step{flex-direction:column;align-items:flex-start}.sage-step>button{width:100%}}

/* 17/09, Gabriel : onglet Sage, historique des pièces et détail en drawer. */
.sage-table .piece-no b{font-variant-numeric:tabular-nums;letter-spacing:.01em}
.sage-table td small{color:var(--muted);font-size:12px}
.sage-table th.num,.sage-table td.num{text-align:right}
.sage-off{margin:0 0 12px}
.sage-off button{margin-top:8px}
.piece-journal{list-style:none;padding:0;margin:8px 0 0;font-size:13px}
.piece-journal li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.piece-journal time{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}

/* 17/09, Gabriel : des dates partout (reçue, dernière action, validée, Sage). */
.v2 .order-dates{flex:0 0 230px;display:grid;gap:1px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.order-milestones{display:flex;flex-wrap:wrap;gap:4px 22px;margin:0 0 10px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}
.order-milestones b{font-weight:600;color:var(--ink)}
@media(max-width:1100px){.v2 .order-dates{flex:1 1 100%;display:flex;gap:14px}}

/* 17/09, Gabriel : écran de transit vers Sage, 4 s, la donnée part de Vins+Vins vers les serveurs de Sage. */
.sage-transit{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;min-height:min(70vh,640px);justify-content:center;padding:36px 24px;background:linear-gradient(180deg,#fff,#faf6f6);border:1px solid var(--line);border-radius:10px}
.sage-transit .eyebrow{color:var(--brand);font-size:11px}
.sage-transit h1{font-size:27px;letter-spacing:-.02em;margin:4px 0 2px;max-width:24ch}
.sage-transit-lead{margin:0;color:var(--muted);font-size:14px}
.transit-stage{display:grid;grid-template-columns:190px minmax(220px,1fr) 190px;align-items:center;gap:0;width:min(920px,100%);margin:26px 0 18px}
.transit-node{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:150px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 10px 34px #23252b0f}
.transit-node img{width:92px;height:auto}
.transit-node small{color:var(--muted);font-size:12px}
.transit-node strong{font-size:18px;letter-spacing:-.01em}
.transit-from{animation:transit-pulse-out 1.6s ease-in-out infinite}
.transit-to{border-color:#cfe3d8;animation:transit-pulse-in 1.6s ease-in-out .8s infinite}
.transit-sage{width:54px;height:54px;border-radius:14px;display:grid;place-items:center;background:var(--green);color:#fff}
.transit-sage .icon{width:28px;height:28px}
.transit-track{position:relative;height:150px;overflow:hidden}
.transit-line{position:absolute;left:0;right:0;top:50%;height:2px;background:repeating-linear-gradient(90deg,#d9c3c5 0 8px,transparent 8px 16px);background-size:16px 2px;animation:transit-flow .5s linear infinite}
.transit-dot{position:absolute;top:calc(50% - 4px);left:-10px;width:8px;height:8px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 5px #ab242f1a;animation:transit-move 1.8s linear infinite}
.transit-chip{position:absolute;left:-180px;top:calc(50% - 46px);white-space:nowrap;padding:5px 10px;border-radius:999px;background:#fff;border:1px solid #e6cfd1;color:var(--brand-dark);font-size:12px;font-weight:650;box-shadow:0 4px 14px #ab242f14;animation:transit-chip 2.2s cubic-bezier(.45,.05,.55,.95) infinite both}
.transit-chip:nth-of-type(even){top:calc(50% + 18px)}
.transit-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 20px;max-width:none;margin:0 0 6px}
.transit-steps li{min-height:0;padding:0;border:0;gap:8px;font-size:13px}
.transit-steps .processing-step-icon{flex:0 0 20px;width:20px;height:20px}
@keyframes transit-flow{to{background-position:16px 0}}
@keyframes transit-move{from{left:-10px;opacity:0}10%{opacity:1}90%{opacity:1}to{left:100%;opacity:0}}
@keyframes transit-chip{from{left:-180px;opacity:0;transform:scale(.92)}15%{opacity:1;transform:none}85%{opacity:1}to{left:100%;opacity:0;transform:scale(.92)}}
@keyframes transit-pulse-out{0%,100%{box-shadow:0 10px 34px #23252b0f}50%{box-shadow:0 10px 34px #23252b0f,0 0 0 8px #ab242f12}}
@keyframes transit-pulse-in{0%,100%{box-shadow:0 10px 34px #23252b0f}50%{box-shadow:0 10px 34px #23252b0f,0 0 0 8px #2f7d5d1c}}
@media(max-width:760px){.transit-stage{grid-template-columns:110px minmax(90px,1fr) 110px}.transit-node{height:110px}.transit-node img{width:80px}.transit-chip{display:none}.sage-transit h1{font-size:22px}}
/* Décalages en CSS : la politique de sécurité du serveur interdit les styles en ligne. */
.transit-chip:nth-of-type(2){animation-delay:.55s}.transit-chip:nth-of-type(3){animation-delay:1.1s}.transit-chip:nth-of-type(4){animation-delay:1.65s}
.transit-dot:nth-of-type(2){animation-delay:.3s}.transit-dot:nth-of-type(3){animation-delay:.6s}.transit-dot:nth-of-type(4){animation-delay:.9s}.transit-dot:nth-of-type(5){animation-delay:1.2s}.transit-dot:nth-of-type(6){animation-delay:1.5s}
.transit-dot{animation-fill-mode:both}
/* Mouvement réduit : la donnée reste visible, à l'arrêt, au milieu du trajet. */
@media(prefers-reduced-motion:reduce){.transit-chip{left:calc(50% - 60px)}.transit-chip:nth-of-type(n+3){display:none}.transit-dot{left:50%}}
/* Tranche C (02/10/2026) : écrans branchés sur le serveur. Session dans l'en-tête, bandeau du compteur du forfait (administration),
   réglages. Ajouts seulement : aucune règle existante n'est modifiée. */
.session-who{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;font-size:13px;min-width:0}
.session-who b{font-weight:650;max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.session-who span{font-size:12px;color:var(--muted)}
.compteur-banner{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline;justify-content:space-between;margin:0 0 18px;background:#f7f7f9;color:var(--ink);border:1px solid var(--line)}
.compteur-banner span{font-size:13px;color:var(--muted)}
.compteur-banner.warning{background:var(--amber-bg);color:var(--amber);border-color:#f0d9b0}
.compteur-banner.warning span{color:var(--amber)}
/* Recette Athéna R1 M3 : « Enregistrer les réglages » reste visible sans défiler, pied d'action collant comme les quatre autres. */
.reglages-actions{position:sticky;bottom:8px;z-index:4;margin-top:20px;background:#fff;border:1px solid #e0d1d4;border-radius:9px;box-shadow:0 4px 18px #25252c1f}
/* Recette Athéna R2 n2 : un champ qui prend le focus au clavier ne se cache pas sous ce pied collant (la page défile au-dessus).
   Seul le défilement change : la place du pied reste la même. */
html:has(.reglages-actions){scroll-padding-bottom:90px}
@media(max-width:600px){html:has(.reglages-actions){scroll-padding-bottom:120px}}
@media(max-width:760px){.session-who{align-items:flex-start}.session-who b{max-width:180px}.compteur-banner{flex-direction:column}}
/* Tranche B d'assemblage : points à confirmer, signalements de la lecture, données du fichier, plateforme de l'espace.
   Même grammaire que le reste (tableaux denses, details repliés, pastilles), aucune nouvelle page. */
.points-panel{border:1px solid #f0d9b0;border-radius:8px;background:#fffdf8;margin:8px 0 10px;padding:8px 12px}
/* Round 2 de l'Arène (min-11) : un cadre qui ne porte que des informations, style neutre. */
.points-panel.points-infos{border-color:var(--line,#e2e2e2);background:#fafafa}
.points-head{display:flex;align-items:center;justify-content:space-between;gap:10px}
.points-head h3{font-size:13px;margin:0}
.points-head .pill{margin:0}
.points-list{list-style:none;margin:4px 0 0;padding:0}
.point-item{display:flex;align-items:center;justify-content:space-between;gap:10px;border-top:1px solid var(--line);padding:6px 0;font-size:13px}
.point-item:first-child{border-top:0}
.point-item .pill{margin:0}
.point-item.leve{color:var(--muted)}
.point-text{display:flex;flex-direction:column;gap:2px;min-width:0;overflow-wrap:anywhere}
.point-text small,.point-row small{color:var(--muted);font-size:12px}
.point-text .link{align-self:flex-start;font-size:12px}
.point-row{align-items:flex-start}
.point-row>span{display:flex;flex-direction:column;gap:2px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.point-row.leve{color:var(--muted)}
.line-point{color:var(--amber)!important}
.lecture-band{display:flex;flex-direction:column;gap:4px;background:#f7f7f9;color:var(--ink);border:1px solid var(--line);margin:8px 0}
.lecture-band .micro{margin:0}
.lecture-band .intake-details{margin:4px 0 0;background:#fff}
.lecture-signals{margin:0 0 8px;padding-left:18px;font-size:13px}
.lecture-signals small{color:var(--muted)}
.nonlu-table{width:100%;font-size:12px}
.extras-list{margin:0;display:grid;grid-template-columns:1fr;font-size:12px}
.extras-list>div{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;border-top:1px solid var(--line);padding:5px 0}
.extras-list>div:first-child{border-top:0}
.extras-list dt{color:var(--muted)}
.extras-list dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}
.numero-partage .link,.apercu-partiel p{font-size:13px}
.space-platform .platform-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.space-platform .platform-row .field{flex:1 1 200px;margin:0}
.line-extras,.delivery-extras,.file-extras{margin-top:8px}
/* Round de correction : valeur que concerne un point, bande des compléments de livraison, forme écartée. */
.point-valeurs{display:flex;flex-wrap:wrap;gap:2px 14px;font-size:12px;color:var(--ink);margin-top:2px}
.point-valeurs b{font-weight:600;color:var(--muted);margin-right:4px}
.livraison-extras{background:#f7f7f9;color:var(--ink);border:1px solid var(--line);margin:8px 0}
.forme-ecartee ul{margin:4px 0 0;padding-left:18px}
.forme-ecartee li{margin:4px 0}
.forme-ecartee li button{margin-left:8px}

/* Branchement (tranches 1 et 2) : deux boutons en tête des Espaces, bloc « Export pour Sage » de la page de résultat (même
   grammaire que le bloc Sage, classes à part pour ne jamais se confondre avec lui), aperçu de l'export dans le panneau. */
.head-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.export-step{display:flex;align-items:center;gap:14px;margin:0 0 10px;padding:14px 16px;border-radius:10px;border:1.5px solid var(--line);background:#fff}
.export-step>div:nth-child(2){flex:1 1 auto;min-width:0}
.export-step .eyebrow{font-size:10px;color:var(--muted)}
.export-step h3{font-size:17px;margin:2px 0;letter-spacing:-.01em}
.export-step p{margin:0;font-size:13px;color:var(--muted);max-width:95ch;overflow-wrap:anywhere}
.export-step .export-actions{flex-shrink:0;display:flex;flex-wrap:wrap;gap:8px}
.export-step .export-actions button{white-space:nowrap}
.export-step-icon{flex:0 0 40px;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:#f1f1f1;color:var(--muted)}
.export-step-icon .icon{width:20px;height:20px}
.export-step.done{border-color:#bfdccb;background:#eef8f2}
.export-step.done .eyebrow{color:var(--green)}
.export-step.done .export-step-icon{background:var(--green);color:#fff}
@media(max-width:700px){.export-step{flex-direction:column;align-items:flex-start}.export-step .export-actions,.export-step .export-actions button{width:100%}}
.export-refus{margin:6px 0 0;padding-left:18px;font-size:13px}
.export-refus li{margin:3px 0;overflow-wrap:anywhere}
.export-refus ul{margin:2px 0 0;padding-left:16px}
.export-bons small{overflow-wrap:anywhere}
.space-export .platform-row .field{flex-basis:140px}
.export-fichier{overflow-wrap:anywhere}

/* Branchement, tranche 3 : propositions de la recherche approchée dans le panneau Examiner d'une ligne. */
.approche-liste{list-style:none;padding:0;margin:8px 0 0}
.approche-item{padding:8px 0;border-top:1px solid var(--line)}
.approche-item.picked{background:var(--amber-bg);padding-left:8px;padding-right:8px;border-radius:6px}
.approche-tete{display:flex;justify-content:space-between;align-items:center;gap:10px}
.approche-tete>span{display:grid;gap:1px;min-width:0;overflow-wrap:anywhere;font-size:13px}
.approche-tete small{color:var(--muted);font-size:12px}
.approche-tete button{flex-shrink:0;white-space:nowrap}
.approche-detail{margin:4px 0 0;font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.approche-detail>span{font-weight:600;color:var(--ink);margin-right:4px}
@media(max-width:600px){.approche-tete{flex-direction:column;align-items:flex-start}}

/* Branchement, tranche 4 : éditeur de colonnes qui crée un gabarit de lecture (page d'aperçu d'un fichier non reconnu), résultat
   de l'essai sur le fichier entier, section « Gabarits de lecture » du panneau d'un espace. */
.gabarit-editeur{margin:0 0 14px}
.gabarit-corps{padding:4px 18px 4px;min-width:0}
.gabarit-corps>.micro{margin:8px 0 12px}
.gabarit-groupe{border:1px solid var(--line);border-radius:9px;padding:10px 14px 12px;margin:12px 0;min-width:0}
.gabarit-groupe legend{font-size:13px;font-weight:600;padding:0 6px}
.gabarit-groupe>.micro{display:block;margin-top:6px}
.gabarit-choix{display:flex;align-items:flex-start;gap:8px;font-size:13px;margin:6px 0;cursor:pointer}
.gabarit-choix input{margin:2px 0 0;flex:0 0 auto;width:16px;height:16px;padding:0}
.gabarit-choix>span{flex:1 1 auto;min-width:0}
.gabarit-regle{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13px;margin:8px 0 0}
.gabarit-regle select{flex:1 1 180px;max-width:280px;margin:0}
.gabarit-regle input{flex:1 1 140px;max-width:240px;margin:0}
.gabarit-actions{margin:14px 0 10px}
.gabarit-resultat{margin:0 0 14px}
.gabarit-resultat .nonlu-table td{overflow-wrap:anywhere}
.gabarit-valider>span{max-width:80ch}
.gabarit-liste{list-style:none;padding:0;margin:8px 0 0}
.gabarit-liste li{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.gabarit-liste li>span{display:grid;gap:2px;flex:1 1 auto;min-width:0;font-size:13px;overflow-wrap:anywhere}
.gabarit-liste small{color:var(--muted);font-size:12px}
.gabarit-liste button{flex-shrink:0;white-space:nowrap}
.gabarit-liste li>span.gabarit-confirmer{display:flex;align-items:center;flex-wrap:wrap;gap:6px;flex:0 1 auto}
@media(max-width:600px){.gabarit-corps{padding:4px 12px}.gabarit-regle select,.gabarit-regle input{max-width:none;flex-basis:100%}.gabarit-liste li{flex-wrap:wrap}}
/* Chantier finitions : prix du colis écrit dans le fichier, sous le prix d'une bouteille (tableaux) et calcul du panneau. */
.prix-colis{display:block;margin-top:2px;color:var(--muted);font-size:12px;font-weight:400;white-space:nowrap}
.prix-colis-calcul{margin:4px 0 0;color:var(--ink)}
/* Chantier finitions, règle d'écran de Gabriel (action sans défiler) : .panel coupe son contenu (overflow hidden), ce qui
   empêchait la barre « Essayer sur le fichier entier » de coller en bas de l'écran comme les autres pieds d'étape. overflow:clip
   coupe de même (coins arrondis) sans créer de zone de défilement : la barre colle de nouveau. */
.panel.gabarit-editeur{overflow:clip}
/* Arbitrage du round 2 : refus sous le champ (prix du colis, quantité en bouteilles), champ en erreur, message passager au-dessus
   du pied d'un panneau ouvert, espacement des gabarits, avis de l'éditeur. */
.champ-refus{margin:4px 0 0;color:var(--brand-dark);font-size:13px;font-weight:600}
.champ-refus:empty{display:none}
.drawer input[aria-invalid="true"]{border-color:var(--brand);box-shadow:0 0 0 2px #ab242f22}
/* Recette d'Athéna, round 2, n1 : panneau ouvert, le message passager se place au milieu de la partie visible de la page, à
   gauche du panneau, sans le recouvrir ; sur un écran étroit (panneau pleine largeur), au-dessus de son pied. */
.drawer-open #toast{left:calc((100vw - min(580px,calc(100vw - 32px))) / 2);max-width:calc(100vw - min(580px,calc(100vw - 32px)) - 32px)}
@media(max-width:760px){.drawer-open #toast{left:50%;max-width:90vw;bottom:84px}}
.gabarit-liste li>.pill+button,.gabarit-liste li>.pill+.gabarit-confirmer{margin-left:10px}
.intake-order-meta.montant-lu b{margin-right:4px}
/* Lot 4 (catalogue et clients Sage) : section « Extraits Sage » de la vue Catalogue (administration), bilan d'un import dans
   le panneau, tableau du catalogue paginé, fiche d'un article, geste du conditionnement retenu, choix du code client dans la
   liste, codes liés d'un espace. Aucun style en ligne (CSP). */
.extraits-sage{margin:0 0 20px}
.extraits-sage .panel-head .sub{margin:2px 0 0}
.extraits-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px 16px}
.extrait-carte{display:grid;align-content:space-between;gap:8px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fafafb}
.extrait-carte h3{margin:0;font-size:14px}
.extrait-carte .micro{margin:2px 0 0}
.extrait-carte .upload-button{justify-self:start;width:auto;white-space:nowrap}
.extraits-historique{margin:0 16px 12px}
.extraits-historique table{font-size:12px}
.bilan-extrait dl{grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr)}
.bilan-extrait .bilan-titre{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 8px}
.catalogue-sage td{vertical-align:top}
.catalogue-sage .num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.catalogue-sage td.etats-article{min-width:110px}
.catalogue-sage .etats-article .pill{white-space:normal;margin:0 4px 4px 0}
.catalogue-sage th:nth-child(6),.catalogue-sage th:nth-child(7){white-space:normal}
.catalogue-sage .cell-sub{display:block}
.fiche-sage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:4px 12px;margin:8px 0}
.fiche-sage dt{color:var(--muted)}
.fiche-sage dd{margin:0}
.mt16{margin-top:16px}
/* Round 3 (M2, m11, m12 d'Athéna) : codes liés en liste à deux lignes par code, qui tient dans la largeur du panneau et de la
   fiche à 390 px (aucun défilement horizontal) ; l'action reste dans le cadre. */
.codes-lies{list-style:none;padding:0;margin:6px 0 0;font-size:13px;min-width:0}
.code-lie{display:grid;gap:3px;padding:8px 0;border-top:1px solid var(--line);min-width:0}
.code-lie-tete{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;min-width:0}
.code-lie-codes{min-width:0;overflow-wrap:anywhere}
.code-lie-codes .ref-btn{display:inline;padding:0;color:var(--brand);font-weight:700;white-space:normal;overflow-wrap:anywhere}
.code-lie-tete>button{padding:6px 10px;flex:none}
.code-lie-trace{color:var(--muted);font-size:12px;overflow-wrap:anywhere}
.code-lie-trace .link{font-size:12px}
.confirmation-ligne{display:flex;align-items:center;flex-wrap:wrap;gap:6px}
.confirmation-ligne .micro{flex-basis:100%;margin:2px 0}
.confirmation-ligne button{padding:6px 10px}
/* m8 : le texte d'origine d'un point levé par la plateforme passe au second plan. */
.point-text .point-ancien{opacity:.75;font-style:italic}
.conditionnement-equipe .field{max-width:220px}
.conditionnement-equipe>button{margin-top:4px}
.client-sage-choix{margin:0 0 12px}
.client-choisi{margin:4px 0 8px;font-size:13px}
.clients-resultats-liste{list-style:none;padding:0;margin:4px 0 0;max-height:240px;overflow-y:auto;border:1px solid var(--line);border-radius:8px}
.clients-resultats-liste li+li{border-top:1px solid var(--line)}
.client-resultat{display:grid;justify-items:start;justify-content:start;gap:2px;width:100%;border:0;border-radius:0;padding:8px 10px;text-align:left;font-weight:400}
.client-resultat b{font-weight:700}
.client-resultat span{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.client-resultat.picked{background:var(--green-bg)}
@media(max-width:760px){.extraits-grid{grid-template-columns:1fr}.extrait-carte .upload-button{white-space:normal}.fiche-sage{grid-template-columns:1fr}}
/* Finition B1 (A24) : page « Page introuvable » rendue par le serveur pour une adresse inconnue. */
.page-introuvable{width:calc(100% - 32px);max-width:520px;margin:12vh auto;padding:32px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);text-align:center;font-size:14px}.page-introuvable .logo{display:block;width:96px;height:auto;margin:0 auto 12px}.page-introuvable h1{font-size:22px;margin:0 0 8px}.page-introuvable p{color:var(--muted)}.page-introuvable a.primary{display:inline-flex;padding:10px 15px;border-radius:8px;text-decoration:none;font-weight:600;font-size:14px;color:#fff}

/* Finition B2a (M29) : le prix du colis passe sous le prix d'une bouteille, jamais collé à lui (« 2,06 €colis 12,34 € »). */
.v2 .reading-table td small.prix-colis{display:block;margin-top:2px}
/* Finition B2a (A17) : un prix à confirmer faute de tarif de référence n'est pas un écart : couleur neutre, sans triangle. */
.line-attente{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.35}
@media(max-width:1100px){.stack-table .line-attente{text-align:right}}
/* Finition B2a (A39) : à partir de 1151 px, client et destinataire prennent chacun la moitié de la largeur du formulaire,
   l'adresse et la ville la ligne suivante : un nom de 36 caractères se lit en entier à 1280 et 1366 px. */
@media(min-width:1151px){
.v2 .delivery-layout .form-grid{grid-template-columns:repeat(6,minmax(0,1fr))}
.v2 .delivery-layout .form-grid>.field:nth-child(-n+2),.v2 .delivery-layout .form-grid>.field:nth-child(3){grid-column:span 3}
.v2 .delivery-layout .form-grid>.field:nth-child(4){grid-column:span 1}
.v2 .delivery-layout .form-grid>.field:nth-child(5),.v2 .delivery-layout .form-grid>.field:nth-child(6){grid-column:span 2}
}
/* Finition B2a (M24) : une bulle cachée ou vide ne laisse aucune capsule à l'écran, même sur une page haute ou une capture
   pleine page ; elle apparaît au-dessus de la barre d'action (position calculée par l'écran). */
/* m3 de Némésis (B2a) : la région role=status reste dans l'arbre d'accessibilité (ni visibility:hidden, ni display:none) pour
   que le texte écrit pendant qu'elle est cachée soit annoncé ; cachée, elle est transparente et sous le bord de l'écran, jamais
   une capsule noire vide visible (M24). */
#toast{opacity:0;pointer-events:none;transition:transform .2s,opacity .2s}
#toast.show{opacity:1;pointer-events:auto}
/* Finition B2b (chantier bc-partenaire-finition) : écrans vides, écran réservé, dépôt sans espace, zone de dépôt du partenaire,
   « Commande de » sur une ligne. Contrastes : gris secondaires ramenés à var(--muted), 4,5:1 au moins sur leurs fonds. */
.empty .empty-action{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:14px 0 0}
.empty .empty-action .upload-button{width:auto;margin:0}
.premier-jour-actions{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 0}
.intake-partner-label{white-space:nowrap}
.intake-drop.inactive{opacity:.55;cursor:not-allowed}
.intake-drop.inactive input{cursor:not-allowed}
.intake-drop.partner-drop{margin-top:20px;min-height:220px}
/* Finition B2b (M23) : tableau « Exports Sage » de l'Historique : le nom du fichier, l'espace et le regroupement passent à la
   ligne, la colonne d'action reste entière (« Télécharger ») à 1366 et 1280 px. */
.exports-table td.export-fichier,.exports-table td[data-label="Espace"],.exports-table td[data-label="Regroupement"],.exports-table td[data-label="Auteur"]{white-space:normal}
.exports-table td.export-fichier{overflow-wrap:anywhere;min-width:12ch}
/* Recette Athéna R2 (R06) et relevé Momus R2 (N06) : la bulle passagère se pose en haut de la fenêtre, dans la bande de la barre
   du haut (fil d'Ariane à gauche, session à droite), centrée sur la zone de travail (à droite du menu de 208 px) ; panneau
   ouvert, centrée sur la place qui reste à sa gauche. Elle ne couvre plus un prix, un total, une ligne ni la barre d'action du
   bas. La région role="status" reste dans l'arbre (index.html) : un lecteur d'écran la lit. */
#toast{top:57px;bottom:auto;left:calc(50% + 104px);max-width:min(520px,calc(100vw - 32px));padding:10px 18px;transform:translateX(-50%) translateY(-12px)}
#toast.show{transform:translateX(-50%)}
#app:has(.partner-shell)~#toast{left:50%}
.drawer-open #toast{left:calc((100vw - min(580px,calc(100vw - 32px))) / 2);max-width:min(520px,calc(100vw - min(580px,calc(100vw - 32px)) - 32px));bottom:auto}
@media(max-width:800px){#toast{left:50%}.drawer-open #toast{left:50%;max-width:90vw;bottom:auto}}
/* Round 3 (m2 de Némésis) : une donnée secondaire indisponible se dit en mots, à la taille du texte, avec « Réessayer ». */
.stat .value .indispo{font-size:16px;font-weight:600;letter-spacing:0;color:var(--muted)}
/* Round 3 (point 8 de Némésis, R2) : à 1280 px, la bulle de 520 px posée dans la bande de la barre du haut couvrait le bloc de
   droite (nom, « Se déconnecter », forfait) et captait les clics pendant 5 s. Elle se pose juste sous la barre du haut (49 px de
   haut à 1280 et 1366 px), et laisse passer les clics vers ce qu'elle recouvre ; un bouton qu'elle porterait reste cliquable. */
#toast,#toast.show{pointer-events:none}
#toast.show button{pointer-events:auto}

/* Tranche des règles (F02 de la finition) : sur les pages du partenaire, la bulle passagère se pose sous le bandeau du haut
   (environ 105 px de haut à 1280 et 1366 px de large), jamais dessus. */
#app:has(.partner-shell)~#toast{top:116px}
/* Round 2 de l'Arène (min-6 d'Athéna) : une référence reçue ne se coupe jamais à son tiret. */
.code-insecable{white-space:nowrap}
/* Décision 22 du rapport des règles (remplace le nom tronqué du round 2, min-14 d'Athéna) : le nom du fichier d'import se lit
   en entier sans survol, en petit, et passe à la ligne à ses tirets (<wbr> posé après chaque tiret par l'écran). Défaut N1 de
   la contre-recette d'Athéna (round 3) tenu : le nom peut se couper n'importe où en dernier recours, il ne fixe donc pas la
   largeur de sa colonne ; le tableau tient dans son cadre à 1280 et 1366 px et « Télécharger » reste visible ; la colonne
   garde au moins 12 caractères (.exports-table td.export-fichier). */
.export-fichier .nom-entier{display:block;font-size:12px;line-height:1.4;white-space:normal;overflow-wrap:anywhere}
/* Recette du lot des restes (étape 12.5) : à 1280 px le tableau dépassait son cadre de 5 px (1120 px : de 129 px, « Télécharger »
   caché), le nom étant serré sur 7 à 10 lignes. Les cellules insécables (date, période) et les intitulés fixaient la largeur
   des autres colonnes. En tableau (plus de 1100 px) : date, période et intitulés passent à la ligne, intitulés plus petits,
   marges de cellule resserrées, et la colonne Fichier garde au moins 20 caractères. Lignes empilées : inchangées. */
@media(min-width:1101px){
.v2 .exports-table th,.v2 .exports-table td{padding-left:8px;padding-right:8px}
.v2 .exports-table th{white-space:normal;font-size:11px;letter-spacing:.02em}
.exports-table td[data-primary],.exports-table td[data-label="Période"]{white-space:normal}
.exports-table td.export-fichier{min-width:20ch}
}
/* Décision 22 du rapport des règles : à l'étape Articles, « Référence reçue : <code> » tient sur une ligne. La phrase ne fixe
   pas la largeur de sa colonne (largeur nulle, puis toute la cellule) : le tableau ne déborde jamais et « Examiner » reste
   visible. Pour que le code se lise ENTIER, la colonne « Ligne reçue » reçoit 25 % du tableau, prise sur « Article proposé
   ou retenu » (largeur automatique, son texte passe à la ligne), et les intitulés de colonnes peuvent passer à la ligne
   (« Article proposé ou retenu » et « Quantité × prix HT » fixaient sinon 209 et 149 px de largeur minimale : il ne restait
   que 111 px à la ligne reçue en 1280 × 800). Sonde du 4 octobre (lignes à confirmer puis confirmées) : code de 13 caractères
   entier à 1280 et 1366 px ; à 1120 px, aucun débordement, code entier une fois les lignes confirmées ; au-delà, points de
   suspension, le code entier restant au survol (title) et dans le panneau Examiner. Lignes empilées (1100 px et moins) :
   inchangées. */
.lines-table td small.ref-recue{width:0;min-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lines-table th{white-space:normal}
@media(min-width:1101px){.lines-table th:nth-child(2){width:25%}.lines-table th:nth-child(3){width:auto}}
