.aca .aca-cards{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:16px;margin:20px 0}.aca-card{background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:18px;box-shadow:0 1px 2px rgba(0,0,0,.04)}.aca-card strong{display:block;font-size:32px;line-height:1}.aca-card span{display:block;margin-top:8px;color:#646970}.aca-box{background:#fff;border:1px solid #dcdcde;border-radius:10px;padding:18px;margin:18px 0}.aca form label{display:inline-flex;flex-direction:column;margin:0 12px 12px 0;font-weight:600}.aca input,.aca select,.aca textarea{min-width:190px;margin-top:5px}.aca textarea{min-height:70px}.aca-table{margin-top:16px}.contract{background:#fff;padding:40px;max-width:980px}.signatures{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:60px}.signatures div{height:120px;border-top:1px solid #111;padding-top:10px}.aca-fieldset{border:1px solid #dcdcde;border-radius:8px;padding:12px;margin:0 0 14px}.aca-fieldset legend{font-weight:700;padding:0 6px}.aca .aca-check{display:inline-flex;flex-direction:row;align-items:center;gap:6px;margin-right:18px}.aca .aca-check input{min-width:auto;margin:0}.aca-table input[type="checkbox"]{min-width:auto}.aca-table input[type="text"]{width:100%;min-width:160px}.aca-box h2{margin-top:0}.aca-missing{color:#b32d2e;font-weight:700}.aca-alert{border-left:4px solid #b32d2e;background:#fcf0f1;padding:10px 12px;color:#5c1f1f}.aca .button-link-delete{color:#b32d2e;border-color:#b32d2e}.aca .button-link-delete:hover{color:#8a2424;border-color:#8a2424}.aca-tabs .button{margin-right:6px}.aca-filter-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.aca-filter-form p{margin:0 0 12px}.aca-filter-form label{margin-bottom:0}.aca-modal{position:fixed;inset:32px;z-index:100000;background:rgba(0,0,0,.35);display:flex;align-items:flex-start;justify-content:center;overflow:auto;padding:34px}.aca-modal-card{background:#fff;border-radius:12px;border:1px solid #dcdcde;box-shadow:0 16px 40px rgba(0,0,0,.2);padding:22px;max-width:1100px;width:100%}.aca-modal-close{text-align:right;margin:0}.aca-grid-3{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:12px}.aca-renew-button{border-color:#2271b1!important}.aca-contract-portrait{max-width:794px;min-height:1123px;margin:20px auto;background:#fff;color:#111;box-sizing:border-box}.aca-contract-header{display:grid;grid-template-columns:150px 1fr;gap:24px;align-items:center;margin-bottom:24px}.aca-contract-logo img{max-width:140px;max-height:100px;width:auto;height:auto}.aca-contract-logo-placeholder{width:130px;height:80px;border:1px solid #dcdcde;display:flex;align-items:center;justify-content:center;color:#777;font-size:12px}.aca-contract-title h1{margin:0 0 8px}.aca-contract-title h2{margin:0;color:#555}.aca-print-actions{text-align:right;margin-top:0}@page{size:A4 portrait;margin:12mm}.aca-contract-portrait{padding:22px!important;font-size:12px;line-height:1.25}.aca-contract-portrait h1{font-size:22px;margin:0 0 4px}.aca-contract-portrait h2{font-size:14px;margin:10px 0 6px}.aca-contract-portrait p{margin:5px 0}.aca-contract-header{grid-template-columns:95px 1fr!important;gap:14px!important;margin-bottom:10px!important}.aca-contract-logo img{max-width:85px!important;max-height:60px!important}.aca-contract-logo-placeholder{width:80px!important;height:50px!important;font-size:10px!important}.aca-contract-portrait table{font-size:10.5px;border-collapse:collapse;width:100%;margin:4px 0 8px}.aca-contract-portrait th,.aca-contract-portrait td{padding:3px 5px!important;line-height:1.15;border:1px solid #dcdcde}.aca-contract-portrait .signatures{gap:22px!important;margin-top:24px!important}.aca-contract-portrait .signatures div{height:54px!important;padding-top:6px!important;font-size:11px}@page{size:A4 portrait;margin:8mm}.aca-frontend{--aca-bg:#f5f6f8;--aca-card:#fff;--aca-text:#1f2937;--aca-muted:#6b7280;--aca-border:#e5e7eb;--aca-primary:#12324a;font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--aca-text)}.aca-front-shell{display:grid;grid-template-columns:260px minmax(0,1fr);min-height:78vh;background:var(--aca-bg);border-radius:24px;overflow:hidden;box-shadow:0 18px 45px rgba(15,23,42,.10);margin:24px 0}.aca-front-sidebar{background:#0f2638;color:#fff;padding:24px;display:flex;flex-direction:column;gap:22px}.aca-front-brand{font-size:22px;font-weight:800;letter-spacing:-.02em;margin-bottom:8px}.aca-front-sidebar nav{display:flex;flex-direction:column;gap:8px}.aca-front-sidebar nav a{color:#dbeafe;text-decoration:none;padding:11px 12px;border-radius:12px;font-weight:650;transition:.15s ease;background:transparent}.aca-front-sidebar nav a:hover,.aca-front-sidebar nav a.active{background:rgba(255,255,255,.14);color:#fff}.aca-front-user{margin-top:auto;color:#cbd5e1;font-size:14px;line-height:1.5;border-top:1px solid rgba(255,255,255,.16);padding-top:16px}.aca-front-user a{color:#fff}.aca-front-main{padding:28px;min-width:0}.aca-frontend .wrap{margin:0;max-width:none}.aca-frontend .notice{background:#ecfdf5;border-left:4px solid #10b981;padding:10px 14px;margin:0 0 18px;border-radius:8px}.aca-frontend .notice-warning,.aca .notice-warning{background:#fff8e5!important;border-left:4px solid #dba617!important;color:#5c4600}.aca-frontend .button,.aca-front-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--aca-border);border-radius:10px;background:#fff;color:#111827;text-decoration:none;padding:8px 12px;line-height:1.2;min-height:36px;box-shadow:0 1px 2px rgba(0,0,0,.04);cursor:pointer}.aca-frontend .button-primary,.aca-front-button{background:#12324a!important;border-color:#12324a!important;color:#fff!important}.aca-frontend input,.aca-frontend select,.aca-frontend textarea{max-width:100%;border:1px solid var(--aca-border);border-radius:10px;padding:8px 10px;background:#fff}.aca-frontend table{background:#fff;border-radius:14px;overflow:hidden;border:1px solid var(--aca-border);box-shadow:0 1px 4px rgba(15,23,42,.04)}.aca-login-box{max-width:520px;margin:60px auto;background:#fff;border:1px solid var(--aca-border);border-radius:24px;padding:32px;text-align:center;box-shadow:0 18px 45px rgba(15,23,42,.10)}@media (max-width:900px){.aca-front-shell{grid-template-columns:1fr}.aca-front-sidebar{border-radius:0}.aca-front-sidebar nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.aca-front-main{padding:18px}}.aca-status-disponible{color:#1f9d55 !important;font-weight:700}.aca-status-attribue,.aca-status-sac{color:#dc2626 !important;font-weight:700}.aca-table th,.aca-table td{text-align:center;vertical-align:middle}.aca-invoice-print .aca-invoice-header{margin-bottom:12px!important}.aca-invoice-print .aca-invoice-total{margin-top:12px;padding:10px 12px;border:1px solid #dcdcde;background:#f8fafc;font-size:18px;text-align:right}.aca-invoice-print .aca-invoice-note{font-size:11px;color:#444;margin-top:8px!important}.aca-invoice-print .aca-invoice-signatures{margin-top:28px!important}.aca-member-search-label{min-width:320px}.aca-member-search-label input[type="search"]{min-width:320px}.aca-help{display:block;margin-top:4px;font-weight:400;color:#646970;font-size:12px;line-height:1.3}.aca-details{margin:12px 0 16px;padding:12px 14px;border:1px solid #e5e7eb;border-radius:12px;background:#fff}.aca-details summary{cursor:pointer;font-weight:700;color:#09233f}.aca-inline-checks{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:10px}.aca-inline-checks label{display:inline-flex;align-items:center;gap:6px;margin:0}.aca-help{margin:8px 0;color:#4b5563}.aca-signature-zone{margin:14px 0 10px;padding:10px 12px;border:1px solid #dcdcde;border-radius:10px;background:#fff;page-break-inside:avoid}.aca-signature-zone h2{margin-top:0!important}.aca-signature-pad-wrap{border:1px solid #111;border-radius:8px;background:#fff;max-width:520px;height:150px;overflow:hidden}.aca-signature-pad{width:100%;height:150px;display:block;touch-action:none}.aca-saved-signature{max-width:260px;border:1px solid #dcdcde;border-radius:8px;background:#fff;margin:4px 0 8px;padding:4px}.aca-saved-signature img{display:block;max-width:100%;height:auto}.aca-signature-saved{color:#1f9d55;font-weight:700}.aca-signature-actions{margin:6px 0!important}.aca-mail-box{margin-top:16px;padding:14px 16px;border:1px solid #d8dee8;background:#f8fafc;border-radius:12px}.aca-mail-box h3{margin:0 0 8px}.aca-mail-box input[type=email]{max-width:420px;width:100%}.aca-repair-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:#dc2626;margin-left:6px;vertical-align:middle;box-shadow:0 0 0 2px rgba(220,38,38,.15)}.aca-repair-box{border-left:5px solid #dc2626!important}.aca-repair-item{padding:10px 0;border-bottom:1px solid #eee}.aca-start-state{background:#f8f5ef}.aca-return-note .aca-box{margin:10px 0}.aca-table small{display:block;margin-top:4px;font-size:12px;font-weight:600;color:#4b5563}.aca-accessory-present{color:#16a34a;font-weight:700}.aca-accessory-missing{color:#dc2626;font-weight:700}.aca table.aca-table td:nth-child(3),.aca table.aca-table td:nth-child(4){white-space:nowrap;font-size:14px}.aca table.aca-table td:nth-child(2){font-size:14px}.aca-mobile-menu-toggle{display:none;position:sticky;top:10px;z-index:9999;margin:10px;padding:12px 16px;border:0;border-radius:14px;background:#0b2942;color:#fff;font-weight:800;box-shadow:0 8px 20px rgba(0,0,0,.18)}@media (max-width:782px){body .aca.aca-frontend{font-size:16px}.aca-mobile-menu-toggle{display:inline-flex;align-items:center;gap:8px}.aca-front-shell{display:block!important;position:relative}.aca-front-sidebar{position:fixed!important;inset:0 auto 0 0;width:84vw!important;max-width:340px!important;height:100vh!important;z-index:9998;transform:translateX(-105%);transition:transform .22s ease;overflow-y:auto;border-radius:0 24px 24px 0!important;padding:28px 22px!important;box-shadow:10px 0 30px rgba(0,0,0,.25)}.aca-front-shell.aca-menu-open .aca-front-sidebar{transform:translateX(0)}.aca-front-main{width:100%!important;padding:14px!important;margin:0!important}.aca h1{font-size:36px!important;line-height:1.05!important;margin:18px 0!important}.aca h2{font-size:26px!important;line-height:1.15!important}.aca .aca-box,.aca .aca-card,.aca .wrap{padding:16px!important;border-radius:18px!important;overflow:hidden}.aca form,.aca .aca-filters,.aca .aca-filter-form{display:block!important}.aca label{display:block!important;width:100%!important;margin:0 0 14px!important}.aca input,.aca select,.aca textarea{width:100%!important;max-width:100%!important;min-height:48px;font-size:16px!important;box-sizing:border-box}.aca textarea{min-height:110px}.aca .button,.aca button,.aca input[type="submit"]{min-height:46px;padding:10px 14px!important;margin:4px 4px 8px 0!important;font-size:15px!important;border-radius:12px!important;white-space:normal!important}.aca table.aca-table{display:block;width:100%;border:0!important;background:transparent!important;box-shadow:none!important}.aca table.aca-table thead{display:none!important}.aca table.aca-table tbody{display:block;width:100%}.aca table.aca-table tr{display:block;width:100%;margin:0 0 14px!important;padding:14px!important;border:1px solid #e5e7eb!important;border-radius:18px!important;background:#fff!important;box-shadow:0 4px 14px rgba(15,39,66,.08);box-sizing:border-box}.aca table.aca-table tr:nth-child(even){background:#f3f4f6!important}.aca table.aca-table td{display:flex!important;justify-content:space-between;gap:12px;width:100%!important;padding:9px 0!important;border:0!important;border-bottom:1px solid rgba(15,39,66,.08)!important;text-align:right!important;white-space:normal!important;word-break:break-word;font-size:15px!important;box-sizing:border-box}.aca table.aca-table td:last-child{border-bottom:0!important;justify-content:flex-start;flex-wrap:wrap;text-align:left!important}.aca table.aca-table td::before{content:attr(data-label);flex:0 0 42%;max-width:42%;text-align:left;font-weight:800;color:#0b2942}.aca table.aca-table td:last-child::before{flex-basis:100%;max-width:100%;margin-bottom:4px}.aca .aca-inline-checks{display:block!important}.aca .aca-inline-checks label{display:flex!important;align-items:center;gap:8px}.aca .aca-inline-checks input[type="checkbox"]{width:auto!important;min-height:0!important}.aca details.aca-details summary{font-size:18px!important;padding:12px!important}.aca .aca-contract-header{display:block!important;text-align:left!important}.aca .aca-contract-title h1{font-size:28px!important}}.aca table.aca-table tbody tr:nth-child(odd){background:#ffffff}.aca table.aca-table tbody tr:nth-child(even){background:#f3f4f6}.aca table.aca-table tbody tr:hover{background:#e9eef3}@media (max-width:782px){.aca,.aca *{box-sizing:border-box!important}.aca-front-main,.aca .wrap,.aca .aca-box,.aca .aca-card{max-width:100%!important;overflow:hidden!important}.aca .aca-grid-2,.aca .aca-grid-3,.aca .aca-grid-4,.aca .aca-grid{display:block!important;grid-template-columns:1fr!important;width:100%!important}.aca .aca-grid-2>*,.aca .aca-grid-3>*,.aca .aca-grid-4>*,.aca .aca-grid>*{width:100%!important;max-width:100%!important;min-width:0!important;display:block!important}.aca label{width:100%!important;max-width:100%!important;display:block!important;overflow:hidden!important}.aca input,.aca select,.aca textarea,.aca .regular-text{width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;box-sizing:border-box!important}.aca input[type="checkbox"],.aca input[type="radio"]{width:auto!important;display:inline-block!important}.aca .aca-mobile-menu-toggle{text-transform:uppercase}.aca-front-sidebar{width:78vw!important;max-width:320px!important}.aca-front-sidebar nav{display:block!important}.aca-front-sidebar nav a{display:block!important;width:100%!important;margin:0 0 10px 0!important;padding:12px 14px!important;line-height:1.2!important}.aca h1{font-size:34px!important;overflow-wrap:anywhere}.aca h2{font-size:25px!important;overflow-wrap:anywhere}}@media (max-width:782px){.aca,.aca *,.aca *::before,.aca *::after{box-sizing:border-box!important}.aca-front-main,.aca .wrap,.aca .aca-box,.aca form,.aca fieldset,.aca label,.aca p{width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important}.aca .aca-box{padding-left:16px!important;padding-right:16px!important}.aca .aca-grid,.aca .aca-grid-2,.aca .aca-grid-3,.aca .aca-grid-4,.aca .aca-filters,.aca .aca-filter-form{display:flex!important;flex-direction:column!important;gap:14px!important;width:100%!important;max-width:100%!important;min-width:0!important}.aca .aca-grid>*,.aca .aca-grid-2>*,.aca .aca-grid-3>*,.aca .aca-grid-4>*,.aca .aca-filters>*,.aca .aca-filter-form>*{width:100%!important;max-width:100%!important;min-width:0!important;flex:0 0 auto!important}.aca input:not([type="checkbox"]):not([type="radio"]),.aca select,.aca textarea,.aca .regular-text,.aca input[type="search"],.aca input[type="date"],.aca input[type="number"],.aca input[type="email"],.aca input[type="text"]{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important}.aca input[type="date"]{appearance:auto!important;-webkit-appearance:auto!important}.aca input::placeholder{font-size:14px!important;white-space:nowrap!important;text-overflow:ellipsis!important}.aca .aca-member-search,.aca .aca-member-search-wrap,.aca [data-aca-member-search],.aca input[list],.aca datalist{width:100%!important;max-width:100%!important;min-width:0!important}.aca .button,.aca button,.aca input[type="submit"]{max-width:100%!important;white-space:normal!important}}@media (max-width:782px){.aca table.aca-table td[data-label="Accessoires"]{display:block!important;text-align:left!important}.aca table.aca-table td[data-label="Accessoires"]::before{display:block!important;max-width:100%!important;margin-bottom:8px!important}.aca table.aca-table td[data-label="Accessoires"] .aca-accessory-present,.aca table.aca-table td[data-label="Accessoires"] .aca-accessory-missing{display:inline-block!important;white-space:nowrap!important;word-break:keep-all!important;overflow-wrap:normal!important;margin:0 6px 6px 0!important;padding:2px 6px!important;border-radius:8px!important;background:rgba(22,163,74,.08);line-height:1.25!important}.aca table.aca-table td[data-label="Accessoires"] .aca-accessory-missing{background:rgba(220,38,38,.08)}}.aca .aca-filters label{margin-right:14px}.aca-inline-state-form{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.aca-inline-state-form label{font-weight:700}.aca-active-rental-search-box input[type="search"]{max-width:520px;width:100%}@media (max-width:782px){.aca-active-rental-search-box input[type="search"]{max-width:100%!important}}@media (max-width:782px){.aca input[type="date"]{width:100%!important;max-width:100%!important;min-width:0!important;inline-size:100%!important;box-sizing:border-box!important;display:block!important;overflow:hidden!important;padding-left:14px!important;padding-right:14px!important}.aca label:has(input[type="date"]){width:100%!important;max-width:100%!important;min-width:0!important;display:block!important;overflow:hidden!important}.aca .aca-grid-2 label,.aca .aca-grid-3 label,.aca .aca-grid-4 label{flex:0 0 100%!important;max-width:100%!important;min-width:0!important}.aca input[type="date"]::-webkit-date-and-time-value{text-align:left;min-width:0!important}.aca input[type="date"]::-webkit-calendar-picker-indicator{margin-left:0!important;padding-left:4px!important}}@media screen and (max-width:900px){.aca .aca-box,.aca .aca-box form,.aca .aca-box fieldset,.aca .aca-box label,.aca .aca-grid,.aca .aca-grid-2,.aca .aca-grid-3,.aca .aca-grid-4{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:visible!important;box-sizing:border-box!important}.aca .aca-box>*,.aca form>*,.aca fieldset>*,.aca label>*{max-width:100%!important;min-width:0!important;box-sizing:border-box!important}.aca input[type="date"]{-webkit-appearance:none!important;appearance:none!important;display:block!important;position:relative!important;width:100%!important;max-width:100%!important;min-width:0!important;inline-size:100%!important;max-inline-size:100%!important;min-inline-size:0!important;box-sizing:border-box!important;margin:0!important;padding:14px 44px 14px 14px!important;font-size:16px!important;line-height:1.2!important;text-align:left!important;overflow:hidden!important}.aca input[type="date"]::-webkit-date-and-time-value{text-align:left!important;width:auto!important;min-width:0!important;max-width:100%!important;padding:0!important;margin:0!important}.aca input[type="date"]::-webkit-calendar-picker-indicator{position:absolute!important;right:12px!important;top:50%!important;transform:translateY(-50%)!important;margin:0!important;padding:0!important}}.aca-public-events{display:grid;gap:18px;margin:24px 0}.aca-public-event{padding:22px;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(15,39,66,.08);border:1px solid #eee}.aca-public-event-date{display:inline-block;padding:6px 10px;border-radius:999px;background:#e8d9c2;color:#0b2942;font-weight:800;margin-bottom:10px}.aca-public-event h3{margin:0 0 8px;color:#0b2942}.aca-public-event-location{font-weight:700;margin:0 0 8px}.aca-public-event-description p:last-child{margin-bottom:0}.aca-bulk-actions{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.aca-bulk-actions h2{width:100%;margin-bottom:0}.aca-bulk-actions .description{width:100%;margin:0}.aca-bulk-restock-form input[type="checkbox"]{transform:scale(1.2)}.aca-summary-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px}.aca-summary-header h2{margin:0}.aca-bag-arrows-form{background:#f8f5ef}.aca-bag-arrows-form form{display:flex;gap:12px;align-items:end;flex-wrap:wrap}.aca-bag-arrows-form label{min-width:260px}/* === ACA PRINT FINAL CONSERVÉ === */
@media print{@page{size:A4 portrait;margin:12mm}html,body{background:#fff!important;margin:0!important;padding:0!important;overflow:visible!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}.aca-mobile-menu-toggle,.aca-front-sidebar,.aca-front-brand,.aca-front-user,.aca-print-actions,.aca-mail-box,.aca-email-form,.aca-signature-pad-wrap,.aca-bulk-actions,.aca-summary-header .button,details,button,.button,input,select,textarea,.no-print{display:none!important}.aca,.aca.aca-frontend,.aca-front-shell,.aca-front-main,.wrap.aca,.aca-box,.aca-card,.aca-contract,.aca-contract-portrait{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;background:#fff!important;box-shadow:none!important;overflow:visible!important;transform:none!important}.aca,.aca *{box-sizing:border-box!important;font-family:Arial,Helvetica,sans-serif!important;box-shadow:none!important;text-shadow:none!important;filter:none!important;overflow:visible!important;max-height:none!important}.aca{font-size:9px!important;line-height:1.15!important;color:#0b2942!important}.aca h1{font-size:17px!important;line-height:1.08!important;margin:0 0 4px 0!important;padding:0!important;color:#0b2942!important;font-weight:700!important}.aca h2{font-size:11px!important;line-height:1.08!important;margin:5px 0 2px 0!important;padding:0!important;color:#0b2942!important;font-weight:700!important}.aca p,.aca div,.aca span,.aca strong,.aca li{font-size:9px!important;line-height:1.15!important;color:#0b2942!important}.aca p{margin:1px 0 3px 0!important}.aca .aca-contract-header{display:flex!important;align-items:flex-start!important;gap:12px!important;margin:0 0 6px 0!important}.aca .aca-contract-logo img,.aca .aca-contract-logo,.aca img{width:42px!important;max-width:42px!important;height:auto!important;max-height:42px!important;object-fit:contain!important}.aca .aca-contract-title{flex:1!important}.aca table,.aca table.aca-table,.aca table.widefat{display:table!important;width:100%!important;max-width:100%!important;border-collapse:collapse!important;border-spacing:0!important;table-layout:fixed!important;margin:2px 0 5px 0!important;padding:0!important;background:#fff!important;border:0!important;page-break-inside:avoid!important;break-inside:avoid!important}.aca table thead,.aca table.aca-table thead,.aca table.widefat thead{display:table-header-group!important}.aca table tbody,.aca table.aca-table tbody,.aca table.widefat tbody{display:table-row-group!important}.aca table tr,.aca table.aca-table tr,.aca table.widefat tr{display:table-row!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important;page-break-inside:avoid!important;break-inside:avoid!important}.aca table th,.aca table td,.aca table.aca-table th,.aca table.aca-table td,.aca table.widefat th,.aca table.widefat td{display:table-cell!important;width:auto!important;max-width:none!important;padding:1.5px 3px!important;border:1px solid #d8d8d8!important;text-align:center!important;vertical-align:middle!important;font-size:8px!important;line-height:1.1!important;white-space:normal!important;word-break:normal!important;overflow-wrap:normal!important;background:#fff!important;color:#111827!important}.aca table th,.aca table.aca-table th,.aca table.widefat th{font-weight:700!important}.aca table td::before,.aca table.aca-table td::before,.aca table.widefat td::before{content:none!important;display:none!important}.aca .signatures,.aca .aca-signatures{display:grid!important;grid-template-columns:1fr 1fr!important;gap:18px!important;margin-top:8px!important;page-break-inside:avoid!important}.aca .signature-line,.aca .signatures>div,.aca .aca-signatures>div{display:block!important;border-top:1px solid #111!important;padding-top:3px!important;min-height:20px!important}.aca .aca-signature-zone,.aca .aca-saved-signature,.aca .signature-block{display:block!important;visibility:visible!important;opacity:1!important;page-break-inside:avoid!important;margin-top:6px!important}.aca .aca-saved-signature img,.aca .signature-block img,.aca img.signature-img{display:block!important;width:auto!important;max-width:150px!important;max-height:55px!important;height:auto!important}}


/* v0.28.17 — Stabilisation des cases à cocher dans le portail Elementor.
   Certains styles globaux du thème appliquent transition/transform/scale au hover.
   On neutralise uniquement ces effets sur les contrôles du plugin. */
.aca input[type="checkbox"],
.aca input[type="radio"],
.aca-frontend input[type="checkbox"],
.aca-frontend input[type="radio"]{
    transform:none !important;
    translate:none !important;
    scale:none !important;
    rotate:none !important;
    transition:none !important;
    animation:none !important;
    min-width:0 !important;
    flex:0 0 auto !important;
}

.aca input[type="checkbox"]:hover,
.aca input[type="checkbox"]:focus,
.aca input[type="checkbox"]:active,
.aca input[type="radio"]:hover,
.aca input[type="radio"]:focus,
.aca input[type="radio"]:active,
.aca-frontend input[type="checkbox"]:hover,
.aca-frontend input[type="checkbox"]:focus,
.aca-frontend input[type="checkbox"]:active,
.aca-frontend input[type="radio"]:hover,
.aca-frontend input[type="radio"]:focus,
.aca-frontend input[type="radio"]:active{
    transform:none !important;
    translate:none !important;
    scale:none !important;
    rotate:none !important;
    transition:none !important;
    animation:none !important;
}


/* ==========================================================================
   v0.29.6 — Compatibilité tablette / ancien iPad paysage
   Le breakpoint 900px était trop bas : un iPad paysage classique fait 1024px.
   Ces règles ne modifient pas l'affichage desktop.
   ========================================================================== */
@media (max-width:1180px){
    .aca-frontend,
    .aca-frontend *,
    .aca-frontend *::before,
    .aca-frontend *::after{
        box-sizing:border-box;
    }

    .aca-frontend .aca-front-main,
    .aca-frontend .wrap,
    .aca-frontend .aca-box,
    .aca-frontend .aca-card,
    .aca-frontend form,
    .aca-frontend fieldset{
        min-width:0 !important;
        max-width:100% !important;
    }

    .aca-frontend .aca-front-main{
        overflow-x:hidden;
    }

    /* Les champs ne gardent plus les min-width desktop qui les poussaient
       hors de l'écran sur les iPad 1024px. */
    .aca-frontend input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
    .aca-frontend select,
    .aca-frontend textarea{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
    }

    .aca-frontend form label{
        min-width:0 !important;
        max-width:100% !important;
    }

    .aca-frontend .aca-member-search-label,
    .aca-frontend .aca-member-search-label input[type="search"]{
        min-width:0 !important;
        width:100% !important;
    }

    /* Les grilles 3/4 colonnes passent à 2 colonnes en paysage tablette. */
    .aca-frontend .aca-grid-3,
    .aca-frontend .aca-grid-4{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    }

    .aca-frontend .aca-grid-2,
    .aca-frontend .aca-grid-3,
    .aca-frontend .aca-grid-4,
    .aca-frontend .aca-grid{
        max-width:100% !important;
        min-width:0 !important;
    }

    .aca-frontend .aca-grid-2 > *,
    .aca-frontend .aca-grid-3 > *,
    .aca-frontend .aca-grid-4 > *,
    .aca-frontend .aca-grid > *{
        min-width:0 !important;
        max-width:100% !important;
    }

    /* Les tableaux restent complets et deviennent scrollables horizontalement
       plutôt que de faire sortir toute la page de l'écran. */
    .aca-frontend table.widefat,
    .aca-frontend table.aca-table{
        display:block;
        width:100% !important;
        max-width:100% !important;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .aca-frontend table.widefat thead,
    .aca-frontend table.widefat tbody,
    .aca-frontend table.aca-table thead,
    .aca-frontend table.aca-table tbody{
        width:max-content;
        min-width:100%;
    }

    .aca-frontend table.widefat th,
    .aca-frontend table.widefat td,
    .aca-frontend table.aca-table th,
    .aca-frontend table.aca-table td{
        overflow-wrap:anywhere;
    }

    /* Popup location / renouvellement : toujours centré dans la fenêtre,
       avec son propre défilement vertical. */
    body > .aca-modal,
    .aca-modal{
        position:fixed !important;
        z-index:1000000 !important;
        top:0 !important;
        right:0 !important;
        bottom:0 !important;
        left:0 !important;
        width:100vw !important;
        height:100vh !important;
        margin:0 !important;
        padding:18px !important;
        overflow-y:auto !important;
        overflow-x:hidden !important;
        align-items:flex-start !important;
        justify-content:center !important;
        -webkit-overflow-scrolling:touch;
        background:rgba(0,0,0,.42);
    }

    body > .aca-modal .aca-modal-card,
    .aca-modal .aca-modal-card{
        position:relative !important;
        top:auto !important;
        left:auto !important;
        transform:none !important;
        width:min(100%,960px) !important;
        max-width:960px !important;
        max-height:none !important;
        margin:0 auto 24px !important;
        padding:18px !important;
        overflow:visible !important;
    }

    .aca-modal .aca-modal-close{
        position:sticky;
        top:0;
        z-index:5;
        padding:4px 0 8px;
        background:#fff;
    }
}

@media (max-width:760px){
    .aca-frontend .aca-grid-2,
    .aca-frontend .aca-grid-3,
    .aca-frontend .aca-grid-4,
    .aca-frontend .aca-grid{
        grid-template-columns:1fr !important;
        display:grid !important;
    }
}

/* v0.32.0 - Mode hors ligne */
#aca-offline-app input,#aca-offline-app select,#aca-offline-app textarea{max-width:100%}
#aca-offline-app summary{cursor:pointer;padding:6px 0}
#aca-offline-app .aca-offline-row .button{margin-top:6px}

/* v0.36.0 — application terrain hors ligne */
.aca-field-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}
.aca-field-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.aca-field-panel{display:none}
.aca-field-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,420px) auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid #e5e7eb}
.aca-field-queue{padding:10px 12px;border-radius:10px;background:#fff8e8;border:1px solid #ead5a5;margin:10px 0}
.aca-field-rental{padding:10px 0;border-bottom:1px solid #e5e7eb}
.aca-field-rental summary{cursor:pointer}
@media(max-width:900px){.aca-field-row{grid-template-columns:1fr}.aca-field-toolbar{align-items:flex-start}.aca-field-tabs .button{flex:1 1 140px}}

/* v0.36.6 — confirmation visuelle des numéros créés */
.aca-number-popup{
    position:fixed;
    inset:0;
    z-index:1000005;
    display:none;
    align-items:center;
    justify-content:center;
    padding:20px;
    background:rgba(0,31,56,.58);
    backdrop-filter:blur(2px);
}
.aca-number-popup.is-open{display:flex}
.aca-number-popup-card{
    width:min(92vw,430px);
    background:#fff;
    border-radius:16px;
    padding:28px;
    text-align:center;
    box-shadow:0 24px 70px rgba(0,0,0,.28);
}
.aca-number-popup-label{
    font-size:15px;
    font-weight:700;
    margin-bottom:12px;
    color:#555;
}
.aca-number-popup-number{
    font-size:38px;
    line-height:1.1;
    font-weight:800;
    letter-spacing:.04em;
    margin:8px 0 24px;
    color:#001F38;
}

/* v0.36.8 — détail des sacs dans le mode terrain */
.aca-field-bag-card{
    align-items:flex-start;
    gap:18px;
    padding:16px 0;
    border-bottom:1px solid #e2e5e8;
}
.aca-field-bag-card:last-child{border-bottom:0}
.aca-field-bag-main{flex:1;min-width:0}
.aca-field-bag-head{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:10px;
}
.aca-field-bag-head strong{font-size:18px}
.aca-field-status,
.aca-field-local-badge{
    display:inline-block;
    padding:3px 8px;
    border-radius:999px;
    font-size:11px;
    font-weight:700;
    background:#eef1f3;
}
.aca-field-local-badge{background:#f2e6d4}
.aca-field-bag-content{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:7px 22px;
}
.aca-field-bag-content>div{
    display:grid;
    grid-template-columns:110px minmax(0,1fr);
    gap:8px;
    min-width:0;
}
.aca-field-bag-content b{font-size:13px}
.aca-field-bag-content span{
    font-size:13px;
    overflow-wrap:anywhere;
}
@media(max-width:800px){
    .aca-field-bag-content{grid-template-columns:1fr}
    .aca-field-bag-card{flex-direction:column}
    .aca-field-bag-card>.button{width:100%}
}

/* === Onglets Trésorerie (v0.45.0) — styles autonomes pour un rendu
   cohérent aussi bien dans wp-admin (qui stylise déjà .nav-tab-wrapper
   nativement) que sur le portail front-end (qui n'a pas ce CSS core). === */
.aca .aca-tabs-nav{
    border-bottom:1px solid #dcdcde;
    margin:20px 0 0;
    padding:0;
    display:flex;
    flex-wrap:wrap;
    gap:4px;
    line-height:inherit;
}
.aca .aca-tabs-nav .nav-tab{
    background:#f6f7f7;
    border:1px solid #dcdcde;
    border-bottom:none;
    border-radius:10px 10px 0 0;
    color:#50575e;
    text-decoration:none;
    padding:11px 18px;
    font-weight:700;
    font-size:14px;
    margin:0 0 -1px;
    box-shadow:none;
}
.aca .aca-tabs-nav .nav-tab:hover{
    background:#fff;
    color:#12324a;
}
.aca .aca-tabs-nav .nav-tab-active,
.aca .aca-tabs-nav .nav-tab-active:hover{
    background:#fff;
    color:#12324a;
    border-bottom:1px solid #fff;
}
.aca-frontend .aca-tabs-nav{
    border-bottom-color:var(--aca-border,#e5e7eb);
}
.aca-frontend .aca-tabs-nav .nav-tab{
    background:#eef1f4;
    border-color:var(--aca-border,#e5e7eb);
}
.aca-frontend .aca-tabs-nav .nav-tab:hover,
.aca-frontend .aca-tabs-nav .nav-tab-active,
.aca-frontend .aca-tabs-nav .nav-tab-active:hover{
    background:#fff;
    color:var(--aca-primary,#12324a);
}
.aca-tab-panel{margin-top:0}
@media(max-width:782px){
    .aca .aca-tabs-nav{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
        gap:6px;
    }
    .aca .aca-tabs-nav .nav-tab{
        white-space:nowrap;
        padding:12px 16px;
    }
}

/* ============================================================
   v0.54.0 — Refonte "appli mobile" du portail (.aca-frontend)
   ============================================================
   Sur téléphone, le portail doit se comporter comme une application :
   barre d'app fixe en haut avec le titre de la page, barre de navigation
   basse avec les raccourcis principaux (façon appli bancaire/réseau
   social), boutons et champs largement dimensionnés pour le doigt, et
   popups en plein écran plutôt qu'en petites fenêtres centrées.
   Ce bloc est volontairement ajouté à la toute fin du fichier : il prime
   ainsi sur les anciennes règles ponctuelles accumulées version après
   version (elles restent en place, certaines corrections ciblées y
   servent encore), sans qu'il faille les retrouver une par une.
   ============================================================ */

.aca-frontend{
    --aca-radius: 14px;
    --aca-radius-lg: 20px;
    --aca-shadow: 0 2px 10px rgba(15,39,66,.07);
    --aca-shadow-lg: 0 14px 34px rgba(15,39,66,.18);
    --aca-primary-active: #0b2942;
    --aca-danger: #dc2626;
    --aca-success: #16a34a;
    --aca-appbar-h: 56px;
    --aca-bottomnav-h: 66px;
    --aca-safe-top: env(safe-area-inset-top, 0px);
    --aca-safe-bottom: env(safe-area-inset-bottom, 0px);
}

/* Tap "propre" façon appli : pas de flash gris/bleu au clic. */
.aca-frontend, .aca-frontend *{
    -webkit-tap-highlight-color: transparent;
}

/* Empêche le zoom automatique de Safari iOS à la mise au point d'un champ
   (se déclenche dès qu'un champ affiche moins de 16px) — l'une des causes
   les plus fréquentes d'une saisie qui "part dans tous les sens" sur
   téléphone. */
.aca-frontend input,
.aca-frontend select,
.aca-frontend textarea,
.aca-frontend button{
    font-size: 16px;
}

/* Retour tactile léger sur les boutons, façon appli native. */
.aca-frontend .button:active,
.aca-frontend button:active,
.aca-frontend input[type="submit"]:active{
    transform: scale(.97);
}

/* --- Barre d'app fixe en haut (titre de la page + bouton menu) -------- */
.aca-app-bar{ display:none; }

@media (max-width:782px){
    .aca-app-bar{
        display:flex !important;
        align-items:center;
        gap:10px;
        position:sticky;
        top:0;
        z-index:9990;
        min-height:var(--aca-appbar-h);
        padding:calc(var(--aca-safe-top) + 8px) 14px 8px 10px;
        margin:0 0 14px 0;
        background:var(--aca-primary);
        color:#fff;
        box-shadow:var(--aca-shadow);
    }
    /* Neutralise l'ancien style générique de .aca-mobile-menu-toggle défini
       plus haut dans ce fichier (bouton flottant "☰ Menu" d'origine) pour ce
       nouvel usage intégré à la barre d'app. */
    .aca-app-bar .aca-mobile-menu-toggle,
    .aca-app-bar-menu{
        display:inline-flex;
        position:static;
        top:auto;
        margin:0;
        align-items:center;
        justify-content:center;
        width:40px;
        height:40px;
        min-height:0;
        flex:0 0 auto;
        border:0;
        border-radius:999px;
        background:rgba(255,255,255,.16);
        color:#fff;
        padding:0;
        box-shadow:none;
    }
    .aca-app-bar-menu .dashicons{
        color:#fff;
        width:22px;
        height:22px;
        font-size:22px;
        line-height:1;
    }
    .aca-app-bar-title{
        font-size:17px;
        font-weight:800;
        color:#fff;
        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;
    }
}

/* --- Barre de navigation basse (raccourcis + "Menu") ------------------- */
.aca-bottom-nav{ display:none; }

@media (max-width:782px){
    .aca-bottom-nav{
        display:flex !important;
        position:fixed;
        left:0; right:0; bottom:0;
        z-index:9990;
        background:#fff;
        border-top:1px solid var(--aca-border);
        box-shadow:0 -4px 16px rgba(15,39,66,.12);
        padding:6px 4px calc(6px + var(--aca-safe-bottom)) 4px;
        margin:0;
    }
    .aca-bottom-nav .aca-mobile-menu-toggle,
    .aca-bottom-nav-item{
        display:flex;
        position:static;
        top:auto;
        flex:1 1 0;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        gap:2px;
        padding:6px 2px;
        margin:0;
        border:0;
        background:transparent;
        color:var(--aca-muted);
        text-decoration:none;
        font-size:11px;
        font-weight:700;
        line-height:1.2;
        border-radius:12px;
        min-height:0;
        box-shadow:none;
    }
    .aca-bottom-nav-item .dashicons{
        width:22px;
        height:22px;
        font-size:22px;
        line-height:1;
    }
    .aca-bottom-nav-item.active{
        color:var(--aca-primary);
        background:rgba(18,50,74,.08);
    }
    .aca-bottom-nav-item:active{
        transform:scale(.94);
    }

    /* Le contenu ne doit jamais passer sous la barre basse fixe. */
    .aca-front-main{
        padding-bottom: calc(var(--aca-bottomnav-h) + var(--aca-safe-bottom) + 16px) !important;
    }

    /* Tout bouton "menu" qui ne serait ni dans la barre d'app ni dans la
       barre basse reste caché (parade si un ancien gabarit en generait
       encore un isolé). */
    .aca-mobile-menu-toggle:not(.aca-app-bar-menu):not(.aca-bottom-nav-item){
        display:none !important;
    }
}

/* --- Tiroir de menu complet : fond assombri + plus grandes cibles ------ */
@media (max-width:782px){
    .aca-front-shell.aca-menu-open::after{
        content:"";
        position:fixed;
        inset:0;
        background:rgba(9,20,33,.45);
        z-index:9997;
    }
    .aca-front-sidebar{
        z-index:9998;
    }
    .aca-front-sidebar nav a{
        display:flex !important;
        align-items:center;
        gap:12px;
        font-size:16px;
        min-height:48px;
    }
    .aca-front-sidebar nav a .dashicons{
        flex:0 0 auto;
        width:22px;
        height:22px;
        font-size:22px;
        opacity:.9;
    }
    .aca-front-user{
        font-size:15px;
    }
    .aca-front-user a{
        display:inline-flex;
        align-items:center;
        min-height:44px;
    }
}

/* --- Popups en plein écran sur mobile (façon appli), pas de petite
   fenêtre centrée illisible ---------------------------------------------- */
@media (max-width:782px){
    .aca dialog[open]{
        position:fixed !important;
        inset:0 !important;
        width:100vw !important;
        height:100vh !important;
        max-width:100vw !important;
        max-height:100vh !important;
        margin:0 !important;
        border-radius:0 !important;
        padding:0 !important;
        box-shadow:none !important;
        transform:none !important;
        display:flex !important;
        flex-direction:column;
        overscroll-behavior:contain;
    }
    .aca dialog[open] > div{
        flex:1 1 auto;
        overflow-y:auto;
        box-sizing:border-box;
        width:100%;
        padding:calc(var(--aca-safe-top) + 18px) 18px calc(var(--aca-safe-bottom) + 18px) 18px !important;
    }
    .aca dialog[open] h2:first-child{
        font-size:20px;
    }
    /* Les boutons d'action en bas de popup restent accessibles au pouce et
       ne se resserrent pas les uns contre les autres. */
    .aca dialog[open] form > div[style*="justify-content:flex-end"]{
        flex-direction:column-reverse !important;
        gap:10px !important;
    }
    .aca dialog[open] form > div[style*="justify-content:flex-end"] .button{
        width:100%;
    }
}

/* --- Même traitement "plein écran" pour l'autre système de popup du
   plugin (.aca-modal / .aca-modal-card, ex. renouvellement de location),
   qui n'utilise pas la balise <dialog> --------------------------------- */
@media (max-width:782px){
    .aca-modal{
        inset:0 !important;
        padding:0 !important;
        align-items:stretch !important;
        z-index:100000;
    }
    .aca-modal-card{
        max-width:100vw !important;
        width:100% !important;
        min-height:100vh;
        border-radius:0 !important;
        border:0 !important;
        padding:calc(var(--aca-safe-top) + 18px) 16px calc(var(--aca-safe-bottom) + 18px) 16px !important;
        overflow-y:auto;
        box-sizing:border-box;
    }
    .aca-modal-close{
        position:sticky;
        top:0;
        background:#fff;
        padding:8px 0 12px 0 !important;
        margin:-8px 0 6px 0 !important;
        z-index:2;
    }
}

/* --- Cartes de liste (tableaux devenus cartes sur mobile) : un peu plus
   d'air et une meilleure hiérarchie visuelle ----------------------------- */
@media (max-width:782px){
    .aca table.aca-table tbody tr{
        border-radius: var(--aca-radius) !important;
        box-shadow: var(--aca-shadow);
    }
    .aca table.aca-table td{
        font-size:15px !important;
    }
    .aca table.aca-table td::before{
        color:var(--aca-muted);
        font-weight:700 !important;
        font-size:12px !important;
        text-transform:uppercase;
        letter-spacing:.02em;
    }
    .aca table.aca-table td:last-child{
        display:flex !important;
        flex-direction:column;
        gap:8px;
    }
    .aca table.aca-table td:last-child .button{
        width:100%;
        text-align:center;
        min-height:44px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
    }
}

/* --- Boîte de connexion / états vides : centrage soigné ---------------- */
@media (max-width:782px){
    .aca-login-box{
        margin:32px auto;
        border-radius:var(--aca-radius-lg) !important;
        padding:28px 22px !important;
    }
}

/* ============================================================
   v0.55.0 — Corrections des débordements horizontaux signalés
   sur mobile (fiches Adhérents, tableau Trésorerie, formulaire
   "Nouveau mouvement").
   ============================================================
   Cause n°1 (fiches/tableaux qui dépassent) : une règle plus
   ancienne (v0.29.6, @media max-width:1180px) fixe la largeur du
   thead/tbody des tableaux ".aca-table" à "max-content", pour les
   rendre défilables horizontalement sur tablette. À largeur de
   téléphone, cette règle entre en conflit avec la conversion en
   "fiches" empilées ci-dessus et empêche le tableau de vraiment se
   replier : il reste large et déborde/se coupe sur la droite. On la
   neutralise explicitement ici, uniquement sous 782px (le mode
   "tableau qui défile" reste inchangé sur tablette).
   Cause n°2 (champ "Montant" qui ne prend pas toute la largeur) :
   les formulaires utilisant <table class="form-table"> (ajout/
   modification d'un mouvement de trésorerie, solde d'ouverture,
   etc.) restent un vrai tableau HTML à plusieurs colonnes sur
   mobile. Le calcul de largeur des colonnes par le navigateur peut
   alors garder une colonne étroite même si le champ à l'intérieur a
   "width:100%" — la largeur à 100% se calcule par rapport à une
   colonne déjà étroite. On supprime le problème à la racine en
   transformant ces tableaux en simple liste verticale (étiquette
   au-dessus du champ) sur téléphone, comme le reste du portail.
   ============================================================ */

@media (max-width:782px){
    /* --- Cause n°1 : les fiches/tableaux ne doivent plus jamais
       dépasser la largeur de l'écran. ------------------------------- */
    .aca-frontend table.aca-table thead,
    .aca-frontend table.aca-table tbody,
    .aca table.aca-table thead,
    .aca table.aca-table tbody{
        width:100% !important;
        min-width:0 !important;
        max-width:100% !important;
    }
    .aca-frontend table.aca-table,
    .aca table.aca-table{
        overflow-x:hidden !important;
    }
    .aca table.aca-table tr,
    .aca table.aca-table td{
        min-width:0 !important;
    }
    .aca table.aca-table td{
        overflow-wrap:anywhere !important;
    }
    .aca table.aca-table td:last-child{
        min-width:0 !important;
    }
    .aca table.aca-table td:last-child > *{
        min-width:0 !important;
        max-width:100% !important;
    }
    /* Le conteneur "overflow:auto" utilisé autour de certains
       tableaux (ex. Trésorerie) ne doit pas non plus forcer une
       largeur supérieure à l'écran une fois le tableau replié. */
    .aca-frontend div[style*="overflow:auto"],
    .aca div[style*="overflow:auto"]{
        max-width:100% !important;
        overflow-x:hidden !important;
    }

    /* --- Cause n°2 : tout <table class="form-table"> (formulaires
       d'ajout/édition) passe en liste verticale : une étiquette,
       puis son champ juste en dessous, sur toute la largeur. ------- */
    /* v0.70.31 — "j'ai un soucis de lisibilité en mobile au niveau des
       infos des fiches adherants" : les tableaux "clé/valeur" en lecture
       seule des fiches Adhérent (Identité et coordonnées, Informations
       fédérales, adhésion HelloAsso, données FFTA brutes…) ont exactement
       la même structure qu'un <table class="form-table"> (un <th> étiquette
       + un <td> valeur par ligne), mais utilisaient widefat/striped avec un
       <th style="width:220px"> fixe en PHP. Sur téléphone, cette largeur
       fixe laisse trop peu de place à la valeur, combinée à la règle
       "overflow-wrap:anywhere" du bloc tablette (@media max-width:1180px)
       plus haut : le texte de la valeur se coupe caractère par caractère
       (ex. "BAILLEUL" -> "BAIL/LEU/L"). On leur donne la classe
       "aca-kv-table" et on lui applique le même traitement "étiquette
       au-dessus de la valeur, pleine largeur" que form-table ci-dessous,
       au lieu de dupliquer des règles déjà prouvées fonctionner. */
    .aca table.form-table,
    .aca-frontend table.form-table,
    .aca table.aca-kv-table,
    .aca-frontend table.aca-kv-table,
    .aca table.form-table tbody,
    .aca-frontend table.form-table tbody,
    .aca table.aca-kv-table tbody,
    .aca-frontend table.aca-kv-table tbody,
    .aca table.form-table tr,
    .aca-frontend table.form-table tr,
    .aca table.aca-kv-table tr,
    .aca-frontend table.aca-kv-table tr{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
    }
    .aca table.form-table tr,
    .aca-frontend table.form-table tr,
    .aca table.aca-kv-table tr,
    .aca-frontend table.aca-kv-table tr{
        margin:0 0 14px !important;
    }
    .aca table.form-table th,
    .aca table.form-table td,
    .aca-frontend table.form-table th,
    .aca-frontend table.form-table td,
    .aca table.aca-kv-table th,
    .aca table.aca-kv-table td,
    .aca-frontend table.aca-kv-table th,
    .aca-frontend table.aca-kv-table td{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box !important;
        text-align:left !important;
        padding:4px 0 !important;
        overflow-wrap:break-word !important;
    }
    .aca table.form-table th,
    .aca-frontend table.form-table th,
    .aca table.aca-kv-table th,
    .aca-frontend table.aca-kv-table th{
        font-weight:700 !important;
        padding-bottom:2px !important;
    }
    /* Les champs eux-mêmes occupent alors toute la largeur
       disponible, quelle que soit la largeur fixe en pixels
       éventuellement définie ligne par ligne dans le PHP. */
    .aca table.form-table input,
    .aca table.form-table select,
    .aca table.form-table textarea,
    .aca-frontend table.form-table input,
    .aca-frontend table.form-table select,
    .aca-frontend table.form-table textarea{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }
    .aca table.form-table input[type="checkbox"],
    .aca table.form-table input[type="radio"],
    .aca-frontend table.form-table input[type="checkbox"],
    .aca-frontend table.form-table input[type="radio"]{
        width:auto !important;
        display:inline-block !important;
    }

    /* Cellule "identité" des fiches (ex. nom + code adhérent sur la liste
       Adhérents) : elle contient plusieurs lignes de texte (nom, puis
       code, via strong + <br> + small) et ne doit pas se répartir en
       50/50 avec l'étiquette façon "justify-content:space-between" —
       cela réduisait de moitié la largeur disponible pour le nom et le
       coupait en plusieurs lignes alors que la place ne manquait pas.
       On passe l'étiquette sur sa propre ligne (comme pour la colonne
       Actions ci-dessus), puis le nom et le code s'affichent chacun sur
       toute la largeur de la fiche, alignés à gauche. */
    .aca table.aca-table td.aca-member-identity{
        flex-wrap:wrap !important;
        align-items:flex-start !important;
    }
    .aca table.aca-table td.aca-member-identity::before{
        flex:0 0 100% !important;
        max-width:100% !important;
        margin-bottom:4px !important;
    }
    .aca table.aca-table td.aca-member-identity strong,
    .aca table.aca-table td.aca-member-identity small{
        display:block !important;
        width:100% !important;
        text-align:left !important;
        white-space:normal !important;
    }

    /* Filet de sécurité général : toute fiche contenant plusieurs lignes
       de texte (strong + <br> + small, sans classe dédiée) suit la même
       règle plutôt que de se retrouver écrasée en deux moitiés. */
    .aca table.aca-table td:has(> strong + br){
        flex-wrap:wrap !important;
        align-items:flex-start !important;
    }
    .aca table.aca-table td:has(> strong + br)::before{
        flex:0 0 100% !important;
        max-width:100% !important;
        margin-bottom:4px !important;
    }
    .aca table.aca-table td:has(> strong + br) strong,
    .aca table.aca-table td:has(> strong + br) small{
        display:block !important;
        width:100% !important;
        text-align:left !important;
        white-space:normal !important;
    }
}

/* ============================================================
   v0.57.0 — Correctif général et définitif : de nombreuses listes
   du plugin construisent leurs <td> à la main (types d'articles,
   lignes de commande, mouvements de trésorerie...) SANS l'attribut
   data-label utilisé par la conversion "fiche" ci-dessus. Sans cet
   attribut, l'étiquette (::before) est vide mais réserve quand même
   ~42% de largeur à gauche : la valeur (texte, champ, select...) se
   retrouve alors écrasée dans le reste de la ligne et semble
   "collée à droite" avec du vide inutilisé à gauche. On a ajouté
   data-label aux endroits signalés, mais pour que ce type de bug ne
   puisse plus JAMAIS se reproduire ailleurs sur le site — y compris
   dans du code pas encore corrigé — on neutralise ici le problème à
   la racine, de façon générale, sur tout le portail.
   ============================================================ */
@media (max-width:782px){
    /* 1) Une cellule sans étiquette n'a plus aucune raison de réserver
       de la place pour une étiquette : sa valeur occupe alors toute
       la largeur de la ligne, alignée à gauche. La colonne d'actions
       (dernière colonne, déjà gérée en pile de boutons ci-dessus)
       n'est pas concernée. */
    .aca table.aca-table td:not([data-label]):not(:last-child){
        display:block !important;
        text-align:left !important;
    }
    .aca table.aca-table td:not([data-label]):not(:last-child)::before{
        content:none !important;
        display:none !important;
    }

    /* 2) Tout champ de saisie (texte, nombre, select...) à l'intérieur
       d'une fiche passe en liste verticale — étiquette au-dessus (si
       présente), champ juste en dessous, sur toute la largeur — au
       lieu de se partager la ligne avec l'étiquette. C'est ce qui
       coinçait les champs "V"/"0" (types d'articles), "Veste"/taille
       (lignes de commande) ou "Montant" dans une bande étroite à
       droite. Les cases à cocher restent sur leur ligne, inutile de
       les mettre en pleine largeur. */
    .aca table.aca-table td:has(> input:not([type="checkbox"]):not([type="radio"])),
    .aca table.aca-table td:has(> select),
    .aca table.aca-table td:has(> textarea){
        display:block !important;
    }
    .aca table.aca-table td:has(> input:not([type="checkbox"]):not([type="radio"]))::before,
    .aca table.aca-table td:has(> select)::before,
    .aca table.aca-table td:has(> textarea)::before{
        display:block !important;
        text-align:left !important;
        margin-bottom:6px !important;
    }
    .aca table.aca-table td:has(> input:not([type="checkbox"]):not([type="radio"])) input,
    .aca table.aca-table td:has(> select) select,
    .aca table.aca-table td:has(> textarea) textarea{
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        box-sizing:border-box !important;
    }
}

/* ============================================================
   v0.70.41 — Lisibilité du portail (.aca-frontend uniquement,
   wp-admin n'est pas concerné) : logo du site en haut du menu,
   menu regroupé par thème, titres plus discrets. Ajouté en toute
   fin de fichier pour l'emporter, à spécificité égale, sur les
   anciennes règles ponctuelles ci-dessus (même technique que le
   bloc v0.54.0 "refonte appli mobile" plus haut).
   ============================================================ */

/* --- Logo / marque en haut du menu --------------------------------- */
.aca-front-brand{
    font-size:22px;
    font-weight:800;
    letter-spacing:-.02em;
    margin-bottom:8px;
}
.aca-front-brand-logo{
    background:#fff;
    border-radius:12px;
    padding:10px 14px;
    display:flex;
    align-items:center;
    justify-content:center;
    margin-bottom:4px;
}
.aca-front-brand-logo a{
    display:block;
    line-height:0;
}
.aca-front-brand-logo img{
    display:block;
    max-width:100%;
    max-height:40px;
    width:auto;
    height:auto;
}

/* --- Menu latéral regroupé par thème -------------------------------- */
.aca-nav-section-label{
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#7E99B1;
    margin:16px 12px 6px;
}
.aca-front-sidebar nav a{
    font-size:14px;
    padding:9px 12px;
}

/* --- Titres plus discrets ("moins gros, moins de texte") ----------- */
.aca-frontend h1{
    font-size:21px !important;
    font-weight:800 !important;
    line-height:1.25 !important;
    margin:0 0 18px !important;
    color:#0B2942;
}
.aca-frontend h2{
    font-size:15px !important;
    font-weight:800 !important;
    line-height:1.3 !important;
    color:#0B2942;
}
@media (max-width:782px){
    .aca-frontend h1{
        font-size:19px !important;
        margin:4px 0 14px !important;
    }
    .aca-frontend h2{
        font-size:14px !important;
    }
}

/* --- Tableau de bord : indicateurs avec icône ----------------------- */
.aca-kpi-row{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin:0 0 20px;
}
.aca-kpi-card{
    background:#fff;
    border:1px solid #E7EAEE;
    border-radius:14px;
    padding:16px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
}
.aca-kpi-icon{
    width:38px;
    height:38px;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
}
.aca-kpi-icon .dashicons{
    width:19px;
    height:19px;
    font-size:19px;
}
.aca-kpi-green{background:#DCFCE7;color:#16A34A}
.aca-kpi-purple{background:#EDE9FE;color:#7C3AED}
.aca-kpi-blue{background:#DBEAFE;color:#2563EB}
.aca-kpi-amber{background:#FEF3C7;color:#D97706}
.aca-kpi-text{min-width:0;text-align:right}
.aca-kpi-value{font-size:24px;font-weight:800;color:#0B2942;line-height:1.1}
.aca-kpi-label{
    font-size:11px;
    font-weight:700;
    letter-spacing:.03em;
    color:#8A97A6;
    text-transform:uppercase;
    margin-top:4px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:180px;
}

.aca-dashboard-panels{
    display:grid;
    grid-template-columns:1.3fr 1fr;
    gap:16px;
}
.aca-dashboard-panel{margin:0}
.aca-panel-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-bottom:6px;
}
.aca-panel-head h2{margin:0 !important}
.aca-dashboard-list{display:flex;flex-direction:column}
.aca-dashboard-list-row{
    padding:10px 0;
    border-top:1px solid #EEF1F4;
}
.aca-dashboard-list-row:first-child{border-top:0}
.aca-dashboard-list-title{font-size:13.5px;font-weight:700;color:#0B2942}
.aca-dashboard-list-meta{font-size:12px;color:#8A97A6;margin-top:2px}
.aca-dashboard-list-row-badge{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    font-size:13.5px;
    color:#374151;
}
.aca-badge{
    font-size:13px;
    font-weight:800;
    color:#fff;
    background:#0B2942;
    border-radius:999px;
    padding:2px 10px;
    min-width:22px;
    text-align:center;
}

@media (max-width:900px){
    .aca-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))}
    .aca-dashboard-panels{grid-template-columns:1fr}
}
@media (max-width:782px){
    .aca-kpi-text{text-align:left}
    .aca-kpi-card{flex-direction:row-reverse;justify-content:flex-end}
}

/* ============================================================
   v0.70.42 — "tout est beaucoup trop gros" : réduction générale de
   la taille du texte, des titres et des champs sur le portail
   (.aca-frontend uniquement, wp-admin n'est pas concerné). Le texte
   du portail héritait jusqu'ici de la taille de police du thème /
   de la page Elementor qui héberge le shortcode, souvent plus
   grande que nécessaire pour un outil de gestion. On fixe ici une
   taille de base raisonnable, qui s'applique à tout ce qui n'a pas
   déjà sa propre taille explicite (titres de section, cartes du
   tableau de bord...), sans avoir à reprendre chaque page une par
   une. Ajouté en toute fin de fichier pour l'emporter, à
   spécificité égale, sur les anciennes règles plus haut.

   Exception importante conservée : sous 782px (mobile), les champs
   de saisie restent à 16px (voir le commentaire v0.54.0 plus haut)
   — en dessous, Safari iOS zoome automatiquement sur le champ au
   focus. La réduction des champs ne s'applique donc qu'à partir de
   783px (tablette/ordinateur), où ce risque n'existe pas.
   ============================================================ */

.aca-frontend{
    font-size:14px;
}
.aca-frontend p,
.aca-frontend label,
.aca-frontend td,
.aca-frontend th,
.aca-frontend li,
.aca-frontend .description{
    font-size:13.5px;
}
.aca-frontend h3{
    font-size:14px !important;
    font-weight:800 !important;
}
.aca-frontend h4{
    font-size:13px !important;
    font-weight:700 !important;
}
.aca-front-brand{
    font-size:16px;
}
.aca-nav-section-label{
    font-size:10.5px;
}
.aca-front-sidebar nav a{
    font-size:13.5px;
}

@media (min-width:783px){
    .aca-frontend input,
    .aca-frontend select,
    .aca-frontend textarea,
    .aca-frontend button,
    .aca-frontend .button,
    .aca-front-button{
        font-size:13.5px;
        min-height:32px;
        padding:6px 10px;
    }
}
