.expense-module{margin:0 0 24px;padding:20px;border:1px solid var(--border-color,#dce3ee);border-radius:16px;background:var(--surface,#fff)}
.expense-module>button{margin-bottom:16px}.expense-module h2{font-size:25px}.expense-actions,.expense-filters{display:flex;gap:12px;flex-wrap:wrap;align-items:end;margin:16px 0}.expense-filters label{display:grid;gap:6px;min-width:220px;flex:1}.expense-module select,.expense-module input{max-width:100%;padding:10px;border:1px solid #ccd5df;border-radius:8px}.expense-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:12px;margin:18px 0}.expense-metrics article{display:grid;gap:7px;padding:16px;border-radius:12px;background:var(--surface-muted,#f4f7fb)}.expense-metrics strong{font-size:23px}.expense-metrics span,.expense-metrics small{color:var(--text-muted,#526078)}.expense-module table{width:100%;min-width:980px;border-collapse:collapse}.expense-module td,.expense-module th{padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid #e2e7ed}.expense-module td:nth-child(2){max-width:290px;overflow-wrap:anywhere}.expense-module details button{display:block;margin:8px 0}.expense-module summary{cursor:pointer;font-weight:600;padding:8px 0}.expense-explanation{padding:12px;border-radius:10px;background:#f4f7fb;margin:8px 0}.expense-explanation article{padding:10px;border-top:1px solid #dce3ee}.expense-anomaly{color:#9a3412;background:#fff2e5;padding:10px;border-radius:8px}.expense-progress article{padding:12px;background:#edf5ff;border-radius:10px;margin-bottom:10px}.expense-settings{margin-top:18px}.expense-settings form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.expense-settings label{display:grid;gap:6px}.expense-settings input{width:110px}.expense-dialog{width:min(760px,94vw);max-height:90vh;overflow:auto;padding:24px}.expense-dialog header{display:flex;justify-content:space-between;align-items:center;gap:12px}.expense-dialog form{display:grid;gap:14px}.expense-dialog label{display:grid;gap:6px}.expense-dialog input,.expense-dialog select{padding:10px;border:1px solid #ccd5df;border-radius:8px}.expense-dialog article{padding:14px;border-bottom:1px solid #dce3ee}.expense-dialog small{display:block}.expense-dialog input[type=checkbox]{justify-self:start}@media(max-width:700px){.expense-module{padding:12px}.expense-actions button{flex:1 1 200px}.expense-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.expense-metrics strong{font-size:19px}.expense-filters label{min-width:0;flex-basis:100%}}
.expense-active>:not(.expense-module){display:none!important}

.expense-module table{min-width:650px}.expense-module td:nth-child(2){min-width:180px}.expense-module td:last-child>.screen-action{display:block;margin-bottom:8px}.expense-module td details p{font-size:.85rem;overflow-wrap:anywhere}.expense-module tr[hidden]{display:none}.expense-active>:not(.expense-module){display:none!important}.expense-module [data-financial-metrics] strong{font-size:19px}.expense-module [data-transactions]>button{margin:10px 0}.expense-module [data-transactions]>h3{margin:16px 0 8px}

.supplier-browser-dialog{width:min(1180px,96vw);max-width:none}.supplier-browser-screen{display:block;width:100%;height:auto;border:1px solid #ccd5df;border-radius:10px;cursor:pointer;touch-action:none}.supplier-browser-screen[hidden]{display:none}.supplier-browser-dialog>p{overflow-wrap:anywhere}.supplier-browser-dialog label{display:grid;gap:7px}.supplier-browser-dialog select{max-width:100%}.supplier-browser-dialog>form{margin:12px 0}.supplier-browser-settings{display:grid;gap:12px}.supplier-browser-settings[hidden]{display:none}.supplier-browser-dialog>section button{display:block;margin:8px 0}.supplier-browser-screen:focus-visible{outline:3px solid #315984;outline-offset:2px}

.supplier-browser-dialog>.expense-actions{position:sticky;top:0;z-index:2;background:var(--surface,#fff);padding:10px 0}

/* Keep the entire remote viewport visible without changing click coordinates. */
.supplier-browser-dialog{display:flex;flex-direction:column;box-sizing:border-box;height:min(980px,94dvh);max-height:94dvh;padding:14px!important;gap:8px}
.supplier-browser-dialog>header,.supplier-browser-dialog>.expense-actions,.supplier-browser-dialog>p,.supplier-browser-dialog>label,.supplier-browser-dialog>form,.supplier-browser-dialog>section{flex-shrink:0}
.supplier-browser-dialog>p{margin:0;font-size:.85rem}
.supplier-browser-dialog>.expense-actions{margin:0;padding:6px 0;gap:6px}
.supplier-browser-dialog>.expense-actions button{flex:0 1 auto}
.supplier-browser-dialog>form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;margin:0;padding:8px!important;gap:8px}
.supplier-browser-dialog>form[hidden]{display:none}
.supplier-browser-dialog>form>p{grid-column:1/-1;margin:0;font-size:.8rem}
.supplier-browser-viewport{display:flex;align-items:center;justify-content:center;flex:1 1 240px;min-height:140px;overflow:hidden;background:var(--surface-muted,#f4f7fb);border-radius:10px}
.supplier-browser-viewport>.supplier-browser-screen{width:auto;height:auto;max-width:100%;max-height:100%;box-sizing:border-box;flex-shrink:1}
.supplier-browser-dialog>section:empty{display:none}
.supplier-browser-dialog>section{max-height:18dvh;overflow:auto}
@media(max-width:600px){.supplier-browser-dialog{width:98vw;padding:8px!important}.supplier-browser-dialog>header h2{font-size:1.1rem}.supplier-browser-dialog>.expense-actions button{flex:1 1 120px}.supplier-browser-dialog>form{grid-template-columns:minmax(0,1fr)}.supplier-browser-dialog>form>p{font-size:.75rem}}

.supplier-browser-dialog:not([open]){display:none}.supplier-browser-dialog>header{padding:0}.supplier-browser-dialog>header h2{margin:0}.supplier-browser-dialog>.expense-actions button{font-size:.8rem;padding:7px 10px}
@media(max-width:600px){.supplier-browser-dialog>form>p{display:none}}
.supplier-browser-dialog>label[hidden],.supplier-browser-dialog .expense-actions>button[hidden]{display:none}

/* An original document is loaded only while its preview is open. */
.expense-preview-links{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.expense-preview-trigger{font-size:.8rem!important;padding:6px 9px!important;max-width:100%;overflow-wrap:anywhere;text-align:left}
.expense-document-preview{position:fixed;inset:auto;margin:0;z-index:10000;box-sizing:border-box;width:min(460px,calc(100vw - 24px));height:min(620px,calc(100dvh - 24px));padding:12px;border:1px solid #bdcad8;border-radius:12px;background:var(--surface,#fff);color:var(--text,#172637);box-shadow:0 12px 40px #17263740;display:flex;flex-direction:column;gap:10px}.expense-document-preview[hidden]{display:none}.expense-document-preview>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0}.expense-document-preview>header strong{overflow-wrap:anywhere;min-width:0}.expense-document-preview>header button{flex-shrink:0;font-size:.8rem;padding:6px 8px}.expense-document-preview-body{flex:1;min-height:0;overflow:auto;background:#f3f5f8;border-radius:6px}.expense-document-preview-body iframe{display:block;width:100%;height:100%;border:0;background:#fff}.expense-document-preview-body img{display:block;max-width:100%;height:auto;margin:auto}.expense-document-preview-body>p{padding:14px}.expense-document-preview>a{font-size:.85rem}

.expense-reconciliation-balance{border:1px solid #bdcad8;border-radius:10px;padding:12px;margin:10px 0;max-width:620px;background:var(--surface,#fff)}.expense-reconciliation-balance>p{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin:8px 0}.expense-reconciliation-balance>strong{display:block}.expense-reconciliation-balance>small{display:block;margin:8px 0}

/* Expense dialogs use text buttons and need their own inset and scroll bounds. */
.billing-dialog.expense-dialog:not(.supplier-browser-dialog){box-sizing:border-box;width:min(760px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:calc(100dvh - 32px);padding:20px!important;overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scroll-padding-block:76px 20px}
.billing-dialog.expense-dialog>header{gap:16px;min-width:0}
.billing-dialog.expense-dialog:not(.supplier-browser-dialog)>header{position:sticky;top:0;z-index:5;margin:0 0 16px;padding:8px 0;background:var(--surface,#fff)}
.billing-dialog.expense-dialog>header h2{flex:1;min-width:0;margin:0;overflow-wrap:anywhere;line-height:1.3}
.billing-dialog.expense-dialog>header>button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:auto;min-width:76px;height:auto;min-height:40px;padding:8px 12px!important;white-space:nowrap;font-size:.95rem;line-height:1.3}
.billing-dialog.expense-dialog:not(.supplier-browser-dialog) form{min-width:0;padding:0!important;margin-top:20px}
.billing-dialog.expense-dialog:not(.supplier-browser-dialog) :is(input:not([type=checkbox]),select,textarea){box-sizing:border-box;width:100%;min-width:0;max-width:100%}
.billing-dialog.expense-dialog:not(.supplier-browser-dialog) article{padding:16px 0;overflow-wrap:anywhere}
.billing-dialog.expense-dialog:not(.supplier-browser-dialog) article button{max-width:100%;margin:4px 6px 4px 0;white-space:normal;overflow-wrap:anywhere}
@media(max-width:600px){.billing-dialog.expense-dialog:not(.supplier-browser-dialog){padding:16px!important}.billing-dialog.expense-dialog>header h2{font-size:1.2rem}}

/* Administration: compact, accessible sections with one visual rhythm. */
[data-screen="administration"]>.screen-action{margin:0 0 18px}
.admin-disclosure{margin:16px 0;border:1px solid #dce3ee;border-radius:14px;background:var(--surface,#fff);overflow:hidden}
.admin-disclosure>summary{padding:20px 22px;cursor:pointer;color:#263b63;list-style-position:inside}
.admin-disclosure>summary strong{font-size:1.05rem}
.admin-disclosure>summary span{display:block;margin:7px 0 0 20px;color:#607086;font-size:.9rem;font-weight:400}
.admin-disclosure[open]>summary{background:#f4f7fb;border-bottom:1px solid #dce3ee}
.admin-disclosure>summary:focus-visible,.expense-settings summary:focus-visible{outline:3px solid #315984;outline-offset:-3px}
.admin-disclosure-body{padding:18px 22px;min-width:0}
.admin-disclosure-body>.admin-form{margin:0 0 18px;box-shadow:none}
.expense-settings{border:1px solid #dce3ee;border-radius:14px;padding:12px 18px;background:var(--surface,#fff)}
.expense-settings form{display:block;max-width:900px}
.expense-settings [data-common-settings],.expense-settings [data-advanced-settings]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:18px 0}
.expense-settings label{align-content:start;font-weight:600;min-width:0}
.expense-settings label small{font-weight:400;line-height:1.5;color:#607086}
.expense-settings input{width:100%;box-sizing:border-box;max-width:180px}
.expense-settings h3{margin:16px 0 8px;font-size:1.1rem}
.expense-settings p{line-height:1.6;color:#526078;font-size:.9rem}
.expense-settings-example{padding:12px 16px;background:#edf4fc;border-radius:10px}
.expense-settings-advanced{border-top:1px solid #dce3ee;padding-top:10px;margin:18px 0}
@media(max-width:650px){.admin-disclosure>summary{padding:16px}.admin-disclosure-body{padding:14px}.expense-settings [data-common-settings],.expense-settings [data-advanced-settings]{grid-template-columns:minmax(0,1fr)}}
.expense-supplier-rule{padding:16px;margin:12px 0;border:1px solid #dce3ee;border-radius:12px;background:var(--surface,#fff);overflow-wrap:anywhere}.expense-supplier-rule p{margin:8px 0;color:#526078;font-size:.9rem}
.expense-dialog label[hidden],.expense-dialog small[hidden]{display:none!important}

.expense-advanced{margin-top:20px;border-top:1px solid #dce3ee;padding-top:14px}.expense-advanced>summary{cursor:pointer;font-weight:600}.expense-advanced .expense-settings{margin-top:14px}.expense-preview-links>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.expense-preview-links>div>button:not(.expense-preview-trigger){font-size:.8rem;padding:4px 8px}.expense-module td:nth-child(2){max-width:300px;overflow-wrap:anywhere}.expense-module td:nth-child(5){font-weight:600}
.expense-module .crm-table-wrap{max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain}

/* Les connexions sont un réglage secondaire du parcours bancaire. */
.expense-connection-actions{padding:12px 0;border-bottom:1px solid #dce3ee}
.expense-connection-actions button{max-width:100%;white-space:normal;line-height:1.4}

.expense-mail-search{display:grid;gap:8px;margin:12px 0;max-width:680px}.expense-mail-search label{display:grid;gap:6px}.expense-mail-search input{box-sizing:border-box;width:100%;min-width:0}.expense-mail-search small{overflow-wrap:anywhere;color:var(--text-muted,#64748b)}
