/* ===== Style consolidé 00 ===== */
:root{--navy:#0f1b34;--blue:#2563eb;--green:#16a34a;--red:#dc2626;--orange:#d97706;--bg:#f3f5f8;--card:#fff;--line:#d6dfeb;--text:#142033;--muted:#65738a;--radius:14px;font-family:Arial,Helvetica,sans-serif;color:var(--text)}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);font-size:16px}button,input,select,textarea{font:inherit}button,.button-like{border:0;border-radius:11px;padding:11px 15px;background:#e3e9f1;color:var(--text);font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px}button:hover,.button-like:hover{filter:brightness(.97)}button.primary{background:var(--blue);color:#fff}button.danger,.danger{background:#fee2e2;color:#991b1b}.warning{background:#ffedd5;color:#9a3412}.icon{padding:7px 11px;min-width:38px}.app-header{background:var(--navy);color:#fff;position:sticky;top:0;z-index:20}.topbar{display:flex;align-items:center;gap:14px;padding:12px 16px;flex-wrap:wrap}.brand{font-size:1.55rem;font-weight:800}.version{font-size:.8rem;padding:4px 9px;background:#dff3ff;color:#075985;border-radius:999px}.header-status{color:#9db1d0;font-size:.9rem;flex:1;min-width:220px}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.button-like input{display:none}.nav{display:flex;gap:8px;padding:9px 12px;background:#e5e9ef;overflow-x:auto}.nav button{white-space:nowrap;background:#fff;font-weight:600}.nav button.active{background:var(--blue);color:#fff}.app-main{padding:14px}.module{max-width:1500px;margin:0 auto}.module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px;flex-wrap:wrap}.module-head h1{margin:0 0 4px;font-size:1.8rem}.module-head p{margin:0;color:var(--muted)}.action-row{display:flex;gap:8px;flex-wrap:wrap}.action-row.end{justify-content:flex-end}.sticky-actions{position:sticky;top:116px;z-index:10;background:var(--bg);padding:8px 0}.panel,.search-panel,.result-card,.agenda-card,.demo-card,.demo-group,.metric{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:15px}.search-panel{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field>span{font-size:.86rem;font-weight:700;color:#37445a}.field input,.field select,.field textarea,select,input,textarea{width:100%;border:1px solid #cbd6e4;border-radius:10px;padding:10px 12px;background:#fff;color:var(--text)}.field.grow{flex:1;min-width:240px}.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:10px}.filters{margin:10px 0;display:grid;gap:8px}.filter-row{display:grid;grid-template-columns:130px 180px 1fr 42px;gap:8px}.summary{margin:12px 0;color:var(--muted);font-weight:700}.result-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(285px,1fr));gap:10px}.result-card{padding:0}.result-open{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;background:transparent;padding:15px}.result-open strong{font-size:1.06rem}.result-open span,.result-open small{color:var(--muted);margin-top:4px}.editor-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.editor-column{display:grid;gap:14px;align-content:start}.panel h2{margin:0 0 12px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.subrow{display:grid;grid-template-columns:1fr 1fr 42px;gap:8px;margin-top:8px}.machine-summary{background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;padding:10px;margin-bottom:10px}.machine-card{border:1px solid var(--line);border-radius:12px;padding:12px;margin-top:10px}.machine-card.replaced{opacity:.75;background:#fff7ed}.machine-title{display:flex;justify-content:space-between;gap:10px;margin-bottom:10px}.machine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.badge{background:#e0f2fe;color:#075985;border-radius:999px;padding:4px 8px;font-size:.78rem}.badge.sold{background:#dcfce7;color:#166534}.badge.hidden{background:#f3f4f6;color:#4b5563}.badge.transferred{background:#ffedd5;color:#9a3412}.empty{color:var(--muted);font-style:italic}.agenda-list{display:grid;gap:9px}.agenda-card{display:flex;justify-content:space-between;gap:12px;align-items:center}.agenda-card>div:first-child{display:flex;flex-direction:column;gap:4px}.agenda-card span,.agenda-card small{color:var(--muted)}.active-toggle{background:var(--blue);color:#fff}.calendar-toolbar{display:flex;align-items:center;justify-content:center;gap:10px;margin:10px}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.calendar-weekdays>div{text-align:center;font-weight:700;color:var(--muted);padding:7px}.calendar-cell{background:#fff;border:1px solid var(--line);border-radius:9px;min-height:115px;padding:7px;cursor:pointer}.muted-cell{background:transparent;border-style:dashed}.calendar-day{font-weight:800;margin-bottom:5px}.calendar-event{display:block;width:100%;padding:5px 6px;margin:3px 0;text-align:left;border-radius:7px;background:#dbeafe;color:#1e3a8a;font-size:.76rem;overflow:hidden}.modal-overlay{position:fixed;inset:0;background:rgba(15,23,42,.58);z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:4vh 12px;overflow:auto}.modal{width:min(680px,100%);background:#fff;border-radius:16px;padding:18px;display:grid;gap:12px}.progress-modal{margin-top:18vh}.progress-track{height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden}.progress-track>div{height:100%;background:var(--blue);width:0;transition:width .2s}.suggestions{display:grid;border-radius:9px;overflow:hidden}.suggestions button{border-radius:0;justify-content:flex-start;background:#f8fafc}.suggestions small{color:var(--muted)}.demo-controls{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.demo-group{margin:12px 0}.demo-group h2{margin-top:0}.demo-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:9px}.demo-card{display:flex;flex-direction:column;gap:7px}.demo-card small,.demo-card span{color:var(--muted)}.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:12px}table{border-collapse:collapse;width:100%}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{background:#eef2f7}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.metric{display:flex;flex-direction:column}.metric strong{font-size:1.7rem}.metric span{color:var(--muted)}.admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.callout{margin-top:10px;border:1px solid #bfdbfe;background:#eff6ff;padding:10px;border-radius:10px}.muted{color:var(--muted)}details pre{white-space:pre-wrap;max-height:380px;overflow:auto;background:#0f172a;color:#e2e8f0;padding:10px;border-radius:8px}.boot-overlay{position:fixed;inset:0;background:#f5f7fa;z-index:200;display:flex;align-items:center;justify-content:center;padding:18px}.boot-overlay[hidden]{display:none}.boot-card{width:min(620px,100%);background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px}.boot-card h1{margin-top:0}.boot-card .progress-track{margin:16px 0}.boot-note{color:var(--muted);font-size:.9rem}
@media(max-width:850px){.editor-grid,.admin-grid{grid-template-columns:1fr}.machine-grid{grid-template-columns:1fr 1fr}.metrics{grid-template-columns:1fr 1fr}.calendar-cell{min-height:90px}.topbar{align-items:flex-start}.sticky-actions{top:150px}}
@media(max-width:560px){html,body{font-size:15px}.app-main{padding:10px}.header-actions{width:100%}.header-actions>*{flex:1}.two-cols,.machine-grid{grid-template-columns:1fr}.filter-row{grid-template-columns:1fr 1fr 42px}.filter-value{grid-column:1/3}.result-list{grid-template-columns:1fr}.calendar-weekdays,.calendar-grid{gap:2px}.calendar-cell{padding:4px;min-height:78px}.calendar-event{font-size:.65rem;padding:3px}.agenda-card{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:1fr 1fr}.module-head h1{font-size:1.5rem}}
@media print{body{background:#fff}.app-header,.module-head button,.search-panel,.filters,.demo-controls,.action-row,.modal-overlay{display:none!important}.app-main{padding:0}.module{max-width:none}.panel,.result-card,.agenda-card,.demo-card,.demo-group,.table-wrap{box-shadow:none;border-color:#bbb;break-inside:avoid}.result-list,.demo-cards{grid-template-columns:repeat(2,1fr)}.sticky-actions{position:static}.calendar-cell{min-height:90px}}

.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.form-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.88rem}.form-grid .wide{grid-column:1/-1}.form-grid input,.form-grid select,.form-grid textarea{font-weight:400}.modal-wide{width:min(1050px,100%)}.route-layout{display:grid;grid-template-columns:minmax(320px,.72fr) minmax(0,1.28fr);gap:14px}.route-map{min-height:340px;border:1px solid var(--line);border-radius:12px;background:#eef2f7;padding:8px}.route-map svg{display:block;width:100%;height:auto;max-height:460px}.route-legend{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);padding:8px}.route-legend span:first-child{color:#166534}.route-legend span:nth-child(2){color:#1d4ed8}.route-legend span:last-child{color:#b91c1c}.menu-pref-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px;border-bottom:1px solid var(--line)}.menu-pref-row label{font-weight:700}.quality-list{max-height:60vh;overflow:auto}.table-wrap input,.table-wrap select{min-width:90px;padding:7px}.table-wrap .ql-name{min-width:180px}.table-wrap .ql-ref{min-width:130px}.app-header .nav span{font-size:.72rem;color:inherit}.cloud-ok{color:#166534}.cloud-error{color:#991b1b}.module-note{background:#fff7ed;border:1px solid #fed7aa;padding:10px;border-radius:10px}.hidden-module{display:none!important}
@media(max-width:900px){.route-layout{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}.table-wrap{font-size:.86rem}.table-wrap th,.table-wrap td{padding:7px}}
@media print{.route-map{min-height:0}.route-layout{display:block}.route-layout>.panel:first-child{display:none}.metrics{break-inside:avoid}.app-main table{font-size:10px}}


/* VetCRM Clean Phase 2.1 — cartes, couleurs, devis complets et enrichissement */
.france-map-panel{display:grid;grid-template-columns:minmax(280px,560px) minmax(220px,1fr);gap:18px;align-items:start;margin:14px 0}
.france-map-wrap{background:#f8fafc;border:1px solid #d5deeb;border-radius:16px;padding:10px;min-width:0}
.france-map-wrap svg{display:block;width:100%;height:auto;max-height:520px}
.france-dept{stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;cursor:pointer;transition:opacity .15s,stroke .15s,filter .15s}
.france-dept:hover,.france-dept.is-selected{stroke:#0f172a;stroke-width:4;filter:brightness(.94)}
.france-dept-label{font-size:13px;fill:#0f172a;pointer-events:none;font-weight:700;text-anchor:middle}
.france-map-aside{display:grid;gap:10px}.france-map-aside .metric{min-height:86px}
.map-legend{display:flex;gap:12px;flex-wrap:wrap;color:#52637a;font-size:13px;margin-top:8px}.map-legend span{display:inline-flex;align-items:center;gap:6px}.map-dot{width:11px;height:11px;border-radius:3px;display:inline-block;background:var(--dot,#64748b)}
.crm-map-toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}.crm-map-toolbar strong{margin-right:auto}
.agenda-legend{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 14px}.agenda-legend span{border-left:5px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 12%,white);border-radius:8px;padding:6px 9px;font-size:13px}
.agenda-card.event-colored{border-left:7px solid var(--event-color);background:color-mix(in srgb,var(--event-color) 7%,white)}
.calendar-event.event-colored{border-left:5px solid var(--event-color)!important;background:color-mix(in srgb,var(--event-color) 13%,white)!important;color:#0f172a!important}
.quote-product-cell{min-width:270px}.quote-product-cell input{min-width:250px}.quote-internal-ref{display:none!important}
.quote-lines-table th:nth-child(2),.quote-lines-table td:nth-child(2){display:none}
.quote-summary-note{font-size:13px;color:#52637a;margin:6px 0 0}.quote-discounts{margin-top:10px;padding:10px 12px;border-radius:10px;background:#f8fafc;border:1px solid #d5deeb}
.prime-basis{font-weight:700;color:#0f172a}.prime-help{padding:10px 12px;border-left:5px solid #2563eb;background:#eff6ff;border-radius:8px;margin-bottom:12px}
.sector-map-layout{display:grid;grid-template-columns:minmax(300px,580px) minmax(300px,1fr);gap:16px}.sector-map-side{display:grid;gap:10px;align-content:start}.sector-map-selected{font-weight:700;min-height:26px}
.sector-chip{display:flex;gap:8px;align-items:center;padding:8px;border:1px solid #d5deeb;border-radius:10px;background:white}.sector-chip input[type=color]{width:42px;padding:2px;height:38px}.sector-chip.is-active{outline:3px solid #93c5fd}
.quality-toolbar{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:12px}.quality-toolbar .wide{grid-column:span 2}.quality-results{display:grid;gap:10px}.quality-result{display:grid;grid-template-columns:1fr auto;gap:12px;border:1px solid #d5deeb;border-radius:12px;background:white;padding:12px}.quality-result small,.quality-result span{display:block;color:#52637a}.quality-actions{display:flex;gap:7px;flex-wrap:wrap;align-content:start}.quality-source-note{font-size:13px;color:#52637a;margin:8px 0}.quality-duplicate{background:#fff7ed;border-color:#fdba74}.quality-imported{background:#ecfdf5;border-color:#86efac}
.org-actions{display:flex;gap:6px;flex-wrap:wrap}
.route-france-map svg{max-height:600px}.route-path{fill:none;stroke:#2563eb;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.route-marker text{fill:#fff;font-weight:800;font-size:15px;text-anchor:middle;pointer-events:none}.route-marker circle{stroke:white;stroke-width:3;vector-effect:non-scaling-stroke}
@media(max-width:900px){.france-map-panel,.sector-map-layout{grid-template-columns:1fr}.quality-toolbar{grid-template-columns:1fr 1fr}.quality-toolbar .wide{grid-column:span 2}}
@media(max-width:560px){.quality-toolbar{grid-template-columns:1fr}.quality-toolbar .wide{grid-column:auto}.quality-result{grid-template-columns:1fr}.france-map-wrap{padding:4px}.france-dept-label{font-size:17px}}
@media print{.france-map-toolbar,.crm-map-toolbar,.quality-actions{display:none!important}}


/* VetCRM Clean Phase 2.2 */
.crm-workspace-v22{display:grid;grid-template-columns:minmax(320px,.78fr) minmax(420px,1.22fr);gap:14px;align-items:start}.crm-list-pane-v22{min-width:0}.crm-map-pane-v22{position:sticky;top:8px;min-width:0}.crm-map-head-v22{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.crm-map-head-v22 h2{margin:0}.crm-map-status-v22{font-size:.82rem;color:var(--muted)}.slippy-map-v22{position:relative;height:610px;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:#dce7f1;touch-action:none;user-select:none}.slippy-map-v22.is-fullscreen{position:fixed;z-index:12000;inset:8px;height:auto;border-radius:14px}.map-tile-layer-v22,.map-marker-layer-v22{position:absolute;inset:0;overflow:hidden}.map-tile-v22{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none}.map-attrib-v22{position:absolute;right:5px;bottom:4px;z-index:5;background:rgba(255,255,255,.82);padding:2px 5px;border-radius:4px;font-size:10px;color:#334155}.map-controls-v22{position:absolute;left:8px;top:8px;z-index:7;display:grid;gap:5px}.map-controls-v22 button{width:38px;height:38px;padding:0;font-size:20px;background:#fff;border:1px solid #cbd5e1}.map-fit-v22{font-size:14px!important}.map-cluster-v22,.map-pin-v22{position:absolute;transform:translate(-50%,-50%);z-index:6;border:2px solid white;box-shadow:0 1px 5px rgba(15,23,42,.35);display:grid;place-items:center;cursor:pointer}.map-cluster-v22{width:44px;height:44px;border-radius:50%;background:#2563eb;color:white;font-weight:800}.map-cluster-v22.large{width:54px;height:54px;background:#1d4ed8}.map-pin-v22{width:22px;height:22px;border-radius:50% 50% 50% 0;background:#dc2626;transform:translate(-50%,-70%) rotate(-45deg)}.map-pin-v22 span{transform:rotate(45deg);display:block;width:6px;height:6px;background:white;border-radius:50%}.map-popup-v22{position:absolute;z-index:9;min-width:220px;max-width:300px;background:white;border:1px solid #cbd5e1;border-radius:10px;padding:10px;box-shadow:0 8px 24px rgba(15,23,42,.22);transform:translate(-50%,calc(-100% - 18px))}.map-popup-v22 strong,.map-popup-v22 span{display:block}.map-popup-v22 span{color:var(--muted);font-size:.85rem}.map-popup-v22 button{margin-top:8px;width:100%}.quote-brand-panel-v22{display:grid;grid-template-columns:150px 1fr;gap:14px;align-items:center}.quote-logo-preview-v22{height:90px;max-width:150px;object-fit:contain;background:white;border:1px dashed #cbd5e1;border-radius:10px;padding:6px}.quote-brand-actions-v22{display:flex;gap:8px;flex-wrap:wrap}.demo-stock-note-v22{margin:8px 0;padding:9px 11px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}.demo-card.out-v22{opacity:.92;border-style:dashed}.demo-card .stock-out-v22{color:#9a3412;font-weight:700}.quality-danger-zone-v22{margin-top:12px;padding:12px;border:1px solid #fca5a5;background:#fff1f2;border-radius:12px}.quality-danger-zone-v22 h3{margin-top:0}.quality-file-summary-v22{font-size:.88rem;color:var(--muted);margin:8px 0}.tariff-preview-v22{max-height:260px;overflow:auto}.tariff-preview-v22 table{font-size:.82rem}.admin-import-panel-v22 .form-grid{margin-bottom:10px}.admin-import-panel-v22 input[type=file]{width:100%}.badge.stock-out-v22{background:#ffedd5;color:#9a3412}.map-loading-v22{position:absolute;z-index:8;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.92);padding:12px 16px;border-radius:10px;border:1px solid #cbd5e1;text-align:center}.map-loading-v22[hidden]{display:none}
@media(max-width:1000px){.crm-workspace-v22{grid-template-columns:1fr}.crm-map-pane-v22{position:static}.slippy-map-v22{height:480px}}
@media(max-width:560px){.slippy-map-v22{height:420px}.quote-brand-panel-v22{grid-template-columns:1fr}.quote-logo-preview-v22{max-width:130px;height:75px}}
@media print{.crm-map-pane-v22,.quote-brand-panel-v22,.admin-import-panel-v22{display:none!important}}


/* VetCRM Clean Phase 2.3 — carte clusters CRM et société vendeuse */
.crm-cluster-layout-p23{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(520px,1.12fr);gap:14px;align-items:start}
.crm-cluster-left-p23{min-width:0}
.crm-cluster-right-p23{position:sticky;top:8px;min-width:0}
.crm-cluster-head-p23{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}
.crm-cluster-head-p23 h2{margin:0}
.crm-cluster-status-p23{font-size:.84rem;color:var(--muted);margin-top:3px}
.crm-leaflet-map-p23{height:610px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#dce7f1;position:relative}
.crm-leaflet-map-p23.is-fullscreen{position:fixed;z-index:13000;inset:8px;height:auto;border-radius:14px}
.crm-map-actions-p23{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.crm-map-actions-p23 button{padding:8px 10px}
.crm-map-fallback-p23{height:100%;display:grid;place-items:center;padding:24px;text-align:center;color:var(--muted)}
.crm-map-fallback-p23 strong{display:block;color:var(--ink);margin-bottom:6px}
.crm-cluster-icon-p23{background:transparent!important;border:0!important}
.crm-cluster-bubble-p23{display:flex;align-items:center;justify-content:center;border-radius:50%;background:#2563eb;color:#fff;border:3px solid #fff;box-shadow:0 2px 8px #0007;font-weight:800;font-size:13px}
.crm-point-bubble-p23{width:18px;height:18px;border-radius:50%;background:#2563eb;border:2px solid #fff;box-shadow:0 1px 5px #0007}
.crm-leaflet-map-p23 .leaflet-popup-content button{width:100%;margin-top:8px}
.seller-profile-p23 .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.seller-profile-p23 .seller-preview-p23{padding:12px;border:1px dashed var(--line);border-radius:12px;background:#fff;line-height:1.45;white-space:pre-line}
.seller-profile-p23 .seller-preview-p23 strong{display:block;font-size:1.05rem;margin-bottom:4px}
.phase23-version-note{font-size:.78rem;color:var(--muted)}
@media(max-width:1100px){.crm-cluster-layout-p23{grid-template-columns:1fr}.crm-cluster-right-p23{position:static}.crm-leaflet-map-p23{height:500px}}
@media(max-width:600px){.crm-leaflet-map-p23{height:430px}.seller-profile-p23 .form-grid{grid-template-columns:1fr}.crm-cluster-head-p23{display:block}.crm-map-actions-p23{justify-content:flex-start;margin-top:8px}}
@media print{.crm-cluster-right-p23,.seller-profile-p23{display:none!important}}


/* Phase 2.4 — suivi des ventes filtrable et graphiques */
.sales-toolbar-v24{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end;margin-bottom:12px}
.sales-toolbar-v24 label{display:flex;flex-direction:column;gap:6px;font-weight:700;color:#172033}
.sales-toolbar-v24 input,.sales-toolbar-v24 select{width:100%;border:1px solid #cbd5e1;border-radius:12px;padding:11px 12px;background:#fff;color:#0f172a;font:inherit}
.sales-quick-v24{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 16px}
.sales-summary-v24{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin:6px 0 12px;color:#52627a}
.sales-chart-panel-v24{background:#fff;border:1px solid #dbe3ef;border-radius:16px;padding:14px;margin:0 0 16px;overflow:hidden}
.sales-chart-head-v24{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:8px}
.sales-chart-head-v24 h2{margin:0;font-size:1.2rem}
.sales-legend-v24{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:.92rem;color:#52627a}
.sales-legend-v24 span{display:inline-flex;gap:7px;align-items:center}
.sales-legend-v24 i{display:inline-block;width:13px;height:13px;border-radius:3px}
.sales-legend-v24 .ca{background:#2563eb}.sales-legend-v24 .margin{background:#16a34a}
.sales-chart-scroll-v24{overflow-x:auto;overflow-y:hidden;padding-bottom:4px}
.sales-chart-v24{display:block;min-height:330px;width:100%}
.sales-chart-v24 text{font-family:Arial,sans-serif;fill:#52627a;font-size:12px}
.sales-chart-v24 .axis{stroke:#94a3b8;stroke-width:1}
.sales-chart-v24 .grid{stroke:#e2e8f0;stroke-width:1}
.sales-chart-v24 .ca-bar{fill:#2563eb}.sales-chart-v24 .margin-bar{fill:#16a34a}
.sales-chart-v24 .ca-line{fill:none;stroke:#2563eb;stroke-width:3}.sales-chart-v24 .margin-line{fill:none;stroke:#16a34a;stroke-width:3}
.sales-chart-v24 .ca-point{fill:#2563eb}.sales-chart-v24 .margin-point{fill:#16a34a}
.sales-empty-v24{padding:45px 15px;text-align:center;color:#64748b}
.sales-negative-v24{color:#b91c1c}
@media(max-width:850px){.sales-toolbar-v24{grid-template-columns:1fr 1fr}.sales-chart-panel-v24{padding:10px}}
@media(max-width:520px){.sales-toolbar-v24{grid-template-columns:1fr}.sales-summary-v24{align-items:flex-start}.sales-chart-v24{min-height:300px}}


/* Phase 2.5 — produits, leasing, installations actives et enrichissement national */
.install-active-note-p25{margin:10px 0;padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;color:#1e3a8a}
.leasing-grid-p25{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:10px}
.leasing-results-p25{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-top:14px}
.leasing-result-p25{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}
.leasing-result-p25 strong{display:block;font-size:1.35rem;margin-bottom:4px}.leasing-result-p25 span{color:var(--muted)}
.leasing-details-p25{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;line-height:1.55}
.quality-progress-p25{margin:10px 0}.quality-progress-p25 progress{width:100%;height:16px}
.quality-bulk-p25{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.quality-page-p25{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:10px 0}
.quality-contact-p25{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-top:7px}.quality-contact-p25 small{display:block}
.quality-result .quality-contact-editor-p25{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(130px,1fr));gap:7px;margin-top:8px}.quality-result .quality-contact-editor-p25 input{width:100%}
.product-added-note-p25{padding:8px 10px;border-radius:9px;background:#ecfdf5;border:1px solid #86efac;color:#166534;margin-bottom:10px}
@media(max-width:900px){.leasing-grid-p25,.leasing-results-p25{grid-template-columns:repeat(2,minmax(0,1fr))}.quality-result .quality-contact-editor-p25{grid-template-columns:1fr}}
@media(max-width:560px){.leasing-grid-p25,.leasing-results-p25{grid-template-columns:1fr}.quality-page-p25{align-items:stretch;flex-direction:column}}

.phase27-protect-row{display:flex;gap:.65rem;align-items:flex-start;margin-top:1rem;padding:.85rem;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;font-weight:600}.phase27-protect-row input{margin-top:.15rem}.phase27-colleague-panel,.phase27-access-panel{grid-column:1/-1}.phase27-reset-grid,.phase27-module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.55rem;margin:.75rem 0 1rem}.phase27-check{display:flex;gap:.55rem;align-items:flex-start;border:1px solid #d7dfeb;border-radius:11px;padding:.7rem;background:#fff}.phase27-check input{margin-top:.18rem}.phase27-check span{display:flex;flex-direction:column;gap:.12rem}.phase27-check small{font-weight:400;color:#64748b}.phase27-preserve{margin:.8rem 0}.phase27-warning{margin:1rem 0;background:#fff8e7}.phase27-colleague-panel h3,.phase27-access-panel h3{margin-top:1rem}.phase27-colleague-panel #p27ExportStatus{margin-top:.6rem}.phase27-access-panel .form-grid{align-items:end}@media(max-width:700px){.phase27-reset-grid,.phase27-module-grid{grid-template-columns:1fr}}

/* ===== Style consolidé 01 ===== */
/* VetCRM Clean Phase 2.6 - devis type Poly-Med, sans calculateur de leasing */
#openLeasingP25{display:none!important}
.quote-p26-note{margin:0 0 12px;padding:10px 12px;border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:10px}
.seller-profile-p26 .seller-bank-p26{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.seller-profile-p26 textarea{min-height:76px;resize:vertical}
.seller-preview-p26{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;line-height:1.5}
@media(max-width:720px){.seller-profile-p26 .form-grid{grid-template-columns:1fr}}

/* ===== Style consolidé 02 ===== */
/* Phase 3.2.7 */
#p327CongressToggle.p327-congress-on{background:#0f766e;color:#fff}
#p327QuickQuote{white-space:nowrap}
.p327-congress-hidden,.p327-congress-mode .p327-internal{display:none!important}
.p327-congress-mode #exportView,.p327-congress-mode #exportFull,.p327-congress-mode label.button-like:has(#importFullInput){display:none!important}
.p327-congress-mode .p321-quick-quote{border:2px solid #0f766e;box-shadow:0 0 0 3px rgba(15,118,110,.08)}
.p327-congress-mode.p327-quote-active .module-head p{font-size:0}
.p327-congress-mode.p327-quote-active .module-head p:after{content:'Devis rapide client — coûts, marges et primes masqués';font-size:.95rem;color:var(--muted)}
.quote-client-suggestions-p313[hidden]{display:none!important}
.quote-client-suggestions-p313{position:relative;z-index:12;display:grid;gap:3px;margin-top:5px;max-height:310px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff;padding:4px}
.quote-client-suggestions-p313 button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border-radius:7px;background:#f8fafc}
.quote-client-suggestions-p313 small,.quote-client-selected-p313 small{display:block;color:var(--muted)}
.quote-client-selected-p313{padding-top:5px}
@media(max-width:720px){#p327QuickQuote,#p327CongressToggle{flex:1;min-height:44px}.p327-congress-mode .header-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.p327-congress-mode #printView{grid-column:1/-1}.p327-congress-mode .app-main{padding-top:8px}.p327-congress-mode .p321-quick-quote{padding:12px}}

/* ===== Style consolidé 03 ===== */
.v3428-progress-actions{display:flex;justify-content:flex-end;margin-top:14px}
.v3428-progress-actions button{background:#fee2e2;color:#991b1b}
.v3428-route-reasons{margin-top:8px;border-top:1px dashed #cbd5e1;padding-top:7px}
.v3428-route-reasons summary{cursor:pointer;font-weight:700;color:#1d4ed8}
.v3428-route-reasons ul{margin:7px 0 0;padding-left:20px;color:#475569}
.v3428-route-reasons li{margin:3px 0}
.v3428-route-stats{display:block;margin-top:5px;color:#475569}
.v3428-cancelled{color:#92400e;font-weight:700}

/* ===== Style consolidé 04 ===== */
.p3429-metrics{margin-bottom:12px}.p3429-toolbar{margin-bottom:12px}.p3429-toolbar-row{display:flex;gap:9px;align-items:flex-end;flex-wrap:wrap}.p3429-tabs{display:flex;gap:8px;overflow-x:auto;margin:10px 0 14px;padding-bottom:2px}.p3429-tabs button{white-space:nowrap;background:#fff;border:1px solid var(--line)}.p3429-tabs button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.p3429-grid{align-items:start}.p3429-card .result-open{gap:7px}.p3429-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;width:100%}.p3429-card-actions{margin-top:8px}.p3429-card-actions button{padding:8px 10px;font-size:.84rem}.p3429-confidence{display:inline-flex;border-radius:999px;padding:2px 7px;font-weight:800;font-size:.76rem}.p3429-confidence.high{background:#dcfce7;color:#166534}.p3429-confidence.medium{background:#fef3c7;color:#92400e}.p3429-confidence.low{background:#fee2e2;color:#991b1b}.p3429-status{margin-top:10px;border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px;white-space:pre-wrap}.p3429-source-list,.p3429-proposal-list{max-height:62vh;overflow:auto}.p3429-source,.p3429-proposal{align-items:flex-start}.p3429-source a{display:inline-block;margin-top:5px;color:#1d4ed8;font-weight:700}.p3429-proposal>div:first-child{min-width:0}.p3429-proposal span,.p3429-proposal small{white-space:pre-wrap;overflow-wrap:anywhere}.p3429-server-panel{grid-column:1/-1}.p3429-admin-count{background:#e2e8f0;border-radius:999px;padding:5px 9px;font-size:.82rem;font-weight:800}.p3429-source-list .agenda-card,.p3429-proposal-list .agenda-card{flex-wrap:wrap}.p3429-source-list .agenda-card>div:first-child,.p3429-proposal-list .agenda-card>div:first-child{flex:1;min-width:250px}.p3429-card-actions button:disabled{opacity:.45;cursor:not-allowed}
@media(max-width:850px){.p3429-toolbar-row{display:grid;grid-template-columns:1fr 1fr}.p3429-toolbar-row .field{grid-column:1/-1}.p3429-card-actions{display:grid;grid-template-columns:1fr 1fr}.p3429-metrics{grid-template-columns:repeat(2,1fr)}.p3429-source,.p3429-proposal{display:block}.p3429-source>button,.p3429-proposal>.action-row{margin-top:10px;width:100%}.p3429-proposal>.action-row{display:grid;grid-template-columns:1fr 1fr}}

/* ===== Style consolidé 05 ===== */
/* Phase 3.1.2 — règles de marge issues du calculateur Excel */
.margin-rule-p312{margin-top:14px;border-width:2px}.margin-rule-p312.ok{border-color:#86efac;background:#f0fdf4}.margin-rule-p312.warn{border-color:#fdba74;background:#fff7ed}.margin-rule-p312.unknown{border-color:#cbd5e1;background:#f8fafc}.margin-rule-head-p312{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.margin-rule-head-p312 h2{margin:0}.margin-status-p312{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:.82rem;font-weight:800}.margin-rule-p312.ok .margin-status-p312{background:#dcfce7;color:#166534}.margin-rule-p312.warn .margin-status-p312{background:#ffedd5;color:#9a3412}.margin-rule-p312.unknown .margin-status-p312{background:#e2e8f0;color:#475569}.margin-rule-metrics-p312{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:9px;margin-top:12px}.margin-rule-metric-p312{border:1px solid rgba(100,116,139,.25);border-radius:10px;background:rgba(255,255,255,.75);padding:10px}.margin-rule-metric-p312 strong{display:block;font-size:1.25rem}.margin-rule-metric-p312 span{display:block;color:var(--muted);font-size:.82rem;margin-top:3px}.margin-rule-detail-p312{margin:10px 0 0;color:#475569}.margin-rule-actions-p312{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.margin-rule-source-p312{font-size:.78rem;color:#64748b;margin-top:8px}.margin-gap-negative-p312{color:#b91c1c}.margin-gap-positive-p312{color:#166534}
@media(max-width:760px){.margin-rule-metrics-p312{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.margin-rule-metrics-p312{grid-template-columns:1fr}}

/* ===== Style consolidé 06 ===== */
/* Phase 3.1.3 — devis sans prix d'achat, marge par défaut, bases métier */
.business-scope-p313{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#eef4ff;border-top:1px solid #d8e2f0;border-bottom:1px solid #d8e2f0;overflow:auto}
.business-scope-p313 strong{white-space:nowrap;font-size:.85rem;color:#334155}
.business-scope-p313 button{white-space:nowrap;padding:8px 13px}
.business-scope-p313 button.active-toggle{background:#2563eb;color:#fff;border-color:#2563eb}
.business-scope-note-p313{font-size:.78rem;color:#64748b;margin-left:auto;white-space:nowrap}
.quote-lines-table th:nth-child(5),.quote-lines-table td:nth-child(5){display:none!important}
.quote-cost-hidden-p313{display:none!important}
.quote-client-search-p313{position:relative}
.quote-client-suggestions-p313{position:absolute;z-index:60;left:0;right:0;top:100%;max-height:300px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 30px rgba(15,23,42,.2);margin-top:4px}
.quote-client-suggestions-p313:empty{display:none}
.quote-client-suggestions-p313 button{width:100%;display:block;text-align:left;background:#fff;border:0;border-bottom:1px solid #e2e8f0;border-radius:0;padding:10px 12px;color:#0f172a}
.quote-client-suggestions-p313 button:hover,.quote-client-suggestions-p313 button:focus{background:#eff6ff}
.quote-client-suggestions-p313 strong,.quote-client-suggestions-p313 span,.quote-client-suggestions-p313 small{display:block}
.quote-client-suggestions-p313 span,.quote-client-suggestions-p313 small{color:#64748b;font-weight:400}
.quote-client-selected-p313{font-size:.8rem;color:#166534;margin-top:4px}
.margin-override-p313{margin-top:12px;padding:11px 12px;border:1px solid #fdba74;background:#fff7ed;border-radius:10px}
.margin-override-p313 label{display:flex;align-items:flex-start;gap:9px;font-weight:700}
.margin-override-p313 input[type=checkbox]{margin-top:3px}
.margin-override-p313 textarea{width:100%;margin-top:8px;min-height:64px}
.margin-override-p313 small{display:block;color:#7c2d12;margin-top:4px;font-weight:400}
.margin-default-note-p313{margin:8px 0 0;color:#475569;font-size:.82rem}
.margin-rule-p312 .margin-rule-source-p312{display:none}
.clinic-business-p313{margin-top:10px}
.action-feedback-p313{margin-top:8px;color:#166534;font-size:.82rem}
@media(max-width:760px){.business-scope-note-p313{display:none}.business-scope-p313{padding:7px 8px}.quote-client-suggestions-p313{position:fixed;left:8px;right:8px;top:150px;max-height:55vh}}

/* ===== Style consolidé 07 ===== */
/* VetCRM Clean Phase 3.2 — connexion immédiate et synchronisation PC / Android */
html.p32-auth-pending .app-header,
html.p32-auth-pending .app-main,
html.p32-auth-pending #businessScopeP313{visibility:hidden!important}
.p32-gate{position:fixed;inset:0;z-index:30000;background:#eef2f7;display:flex;align-items:center;justify-content:center;padding:18px;overflow:auto}
.p32-gate[hidden]{display:none}
.p32-login-card{width:min(560px,100%);background:#fff;border:1px solid #cbd5e1;border-radius:20px;padding:24px;box-shadow:0 20px 60px rgba(15,23,42,.16)}
.p32-login-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.p32-login-brand strong{font-size:1.75rem}.p32-login-brand span{background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:5px 10px;font-size:.82rem;font-weight:800}
.p32-login-card h1{font-size:1.45rem;margin:0 0 6px}.p32-login-card p{color:#64748b;margin:0 0 15px}.p32-login-fields{display:grid;gap:10px}.p32-login-fields label{display:grid;gap:5px;font-weight:700}.p32-login-fields input,.p32-login-fields select{width:100%;border:1px solid #cbd5e1;border-radius:11px;padding:11px 12px;background:#fff}.p32-login-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.p32-login-actions button{flex:1;min-width:150px}.p32-login-message{margin-top:12px;padding:10px 12px;border-radius:10px;background:#f1f5f9;border:1px solid #cbd5e1;white-space:pre-wrap}.p32-login-message.error{background:#fff1f2;border-color:#fda4af;color:#9f1239}.p32-login-message.ok{background:#f0fdf4;border-color:#86efac;color:#166534}
.p32-workspace-list{display:grid;gap:8px;margin-top:12px}.p32-workspace-choice{width:100%;display:flex;justify-content:space-between;text-align:left;background:#f8fafc;border:1px solid #cbd5e1}.p32-workspace-choice span{font-weight:400;color:#64748b}.p32-gate-divider{height:1px;background:#e2e8f0;margin:16px 0}.p32-link-button{background:transparent!important;color:#1d4ed8!important;padding:7px!important}
.p32-sync-panel,.p32-users-panel{grid-column:1/-1}.p32-sync-cards{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px;margin:10px 0}.p32-sync-card{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff}.p32-sync-card strong{display:block;font-size:1.12rem;overflow-wrap:anywhere}.p32-sync-card span{display:block;color:var(--muted);font-size:.82rem;margin-top:3px}.p32-sync-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;background:#f59e0b}.p32-sync-dot.ok{background:#16a34a}.p32-sync-dot.error{background:#dc2626}.p32-sync-actions{display:flex;gap:8px;flex-wrap:wrap}.p32-sync-note{margin-top:9px;color:var(--muted);font-size:.85rem}
.p32-users-table{width:100%;border-collapse:collapse}.p32-users-table th,.p32-users-table td{padding:9px;border-bottom:1px solid var(--line);vertical-align:middle}.p32-user-name strong,.p32-user-name small{display:block}.p32-user-name small{color:var(--muted)}.p32-role-badge{display:inline-block;border-radius:999px;padding:4px 8px;background:#e0f2fe;color:#075985;font-size:.78rem;font-weight:800}.p32-status-active{color:#166534;font-weight:700}.p32-status-disabled{color:#991b1b;font-weight:700}.p32-rights-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.p32-right-check{display:flex!important;flex-direction:row!important;align-items:flex-start;gap:8px;padding:8px;border:1px solid var(--line);border-radius:9px;font-weight:600!important}.p32-right-check input{width:auto!important;margin-top:2px}.p32-invite-box{margin-top:14px;border-top:1px solid var(--line);padding-top:14px}.p32-invite-result{margin-top:8px;padding:9px;border-radius:9px;background:#ecfdf5;border:1px solid #86efac;font-family:ui-monospace,monospace;word-break:break-all}
.phase31-cloud-panel,.phase30-team-panel,.phase27-access-panel,.phase27-colleague-panel{display:none!important}
@media(max-width:900px){.p32-sync-cards{grid-template-columns:1fr 1fr}.p32-rights-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.p32-login-card{padding:18px}.p32-sync-cards,.p32-rights-grid{grid-template-columns:1fr}.p32-users-table thead{display:none}.p32-users-table,.p32-users-table tbody,.p32-users-table tr,.p32-users-table td{display:block;width:100%}.p32-users-table tr{border:1px solid var(--line);border-radius:10px;margin:8px 0;padding:7px}.p32-users-table td{border:0;padding:5px}.p32-users-table td::before{content:attr(data-label);display:block;color:var(--muted);font-size:.75rem}}

/* ===== Style consolidé 08 ===== */
/* VetCRM Clean Phase 3.2.1 — devis rapide, client facultatif, compatibilités et invitations */
.p321-quick-quote{border:2px solid #bfdbfe;background:#f8fbff}
.p321-quick-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start;flex-wrap:wrap}
.p321-quick-head h2{margin:0 0 4px}.p321-quick-head p{margin:0;color:var(--muted)}
.p321-machine-row{display:grid;grid-template-columns:minmax(230px,1fr) auto;gap:9px;align-items:end;margin-top:12px}
.p321-compatible-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.p321-compatible-group{border:1px solid var(--line);border-radius:12px;padding:11px;background:#fff;min-width:0}
.p321-compatible-group h3{margin:0 0 8px;font-size:1rem}.p321-product-buttons{display:flex;flex-wrap:wrap;gap:7px}
.p321-product-button{justify-content:flex-start;text-align:left;font-weight:600;padding:9px 11px;background:#eef2f7;max-width:100%}
.p321-product-button small{display:block;color:var(--muted);font-weight:400}
.p321-empty-compatible{color:var(--muted);font-size:.9rem;margin:0}
.p321-advanced-details{margin-top:12px}.p321-advanced-details>summary{cursor:pointer;font-weight:800;padding:11px 13px;background:#e8edf4;border-radius:11px;list-style:none}
.p321-advanced-details>summary::-webkit-details-marker{display:none}.p321-advanced-details>.panel{margin-top:8px}
.p321-client-note{display:block;color:var(--muted);font-size:.8rem;margin-top:4px}
.p321-business-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:800;margin-left:7px;vertical-align:middle}
.p321-business-badge.vet{background:#dcfce7;color:#166534}.p321-business-badge.human{background:#ede9fe;color:#5b21b6}
.quote-client-suggestions-p313 .p321-business-badge{margin-left:auto;flex:none}
.p321-invite-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:1.15rem;letter-spacing:.08em;display:inline-block;padding:8px 11px;background:#fff;border:1px dashed #2563eb;border-radius:9px;margin:8px 0;user-select:all}
.p321-invite-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
@media(max-width:720px){
 .p321-compatible-grid{grid-template-columns:1fr}.p321-machine-row{grid-template-columns:1fr}.p321-machine-row button{width:100%}
 .p321-quick-quote{padding:12px}.p321-product-button{width:100%}
 .quote-client-search-p313{grid-column:1/-1}
}

/* ===== Style consolidé 09 ===== */
/* VetCRM Clean Phase 3.2.2 — comptes sans SMTP et identité exacte des produits */
.p322-password-result{margin-top:10px;padding:12px;border:1px solid #86efac;background:#f0fdf4;border-radius:10px}
.p322-credential{display:grid;grid-template-columns:145px 1fr;gap:6px;margin-top:8px;align-items:center}
.p322-credential code{font-size:1rem;word-break:break-all;user-select:all;background:#fff;border:1px dashed #16a34a;padding:7px 9px;border-radius:8px}
.p322-first-password-note{padding:10px;border-radius:9px;background:#fff7ed;border:1px solid #fdba74;color:#9a3412;margin:9px 0}
.p322-status-temp{color:#b45309;font-weight:800}
@media(max-width:650px){.p322-credential{grid-template-columns:1fr}.p322-credential code{font-size:.94rem}}

/* ===== Style consolidé 10 ===== */
/* VetCRM Clean Phase 3.2.4 — identité des devis figée et séparation stricte des bases */
.p324-brand-admin{grid-column:1/-1}
.p324-domain-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.p324-domain-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}
.p324-domain-card h3{margin:0 0 8px}
.p324-logo-preview{display:grid;place-items:center;width:100%;height:105px;background:#fff;border:1px dashed #cbd5e1;border-radius:10px;margin:8px 0;overflow:hidden}
.p324-logo-preview img{max-width:100%;max-height:95px;object-fit:contain}
.p324-logo-preview span{color:var(--muted);font-size:.85rem}
.p324-other-list{display:grid;gap:8px;margin-top:10px}
.p324-other-row{display:grid;grid-template-columns:90px 1fr auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}
.p324-other-row img{max-width:80px;max-height:45px;object-fit:contain}
.p324-quote-brand{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-bottom:12px}
.p324-quote-brand .p324-brand-state{font-size:.82rem;color:var(--muted);margin-top:5px}
.p324-quote-brand.locked{background:#f8fafc}
.p324-business-badge{display:inline-flex;align-items:center;border-radius:999px;padding:2px 7px;font-size:.72rem;font-weight:800;margin-left:6px}
.p324-business-badge.vet{background:#dcfce7;color:#166534}
.p324-business-badge.human{background:#dbeafe;color:#1d4ed8}
.p324-map-warning{color:#991b1b;font-weight:700}
.p324-user-pref{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.p324-reindex-note{font-size:.8rem;color:var(--muted);margin-top:6px}
.admin-module .quote-brand-panel-v22,.admin-grid>.quote-brand-panel-v22{display:none!important}
@media(max-width:760px){.p324-domain-grid{grid-template-columns:1fr}.p324-quote-brand{grid-template-columns:1fr}.p324-other-row{grid-template-columns:70px 1fr auto}}

/* ===== Style consolidé 11 ===== */
/* VetCRM Clean Phase 3.2.8 — Android congrès, PDF plein écran et synchronisation haute */
html.p328-android #printView,
html.p328-android #exportView,
html.p328-android #exportFull,
html.p328-android .header-actions > label.button-like,
html.p328-android .header-actions > label:has(#importFullInput){display:none!important}
html.p328-android .header-actions{display:flex!important;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
html.p328-android #p328SyncTop{background:#1d4ed8;color:#fff;border-color:#1d4ed8;min-height:42px;font-weight:800}
html.p328-android #p328SyncTop.is-working{opacity:.75;cursor:wait}
html.p328-android.p327-congress-mode .p321-advanced-details,
html.p328-android.p327-congress-mode #marginRuleP312,
html.p328-android.p327-congress-mode .margin-rule-p312,
html.p328-android.p327-congress-mode .p328-congress-hidden{display:none!important}
html.p328-android.p327-congress-mode #p321OpenAdvanced{display:none!important}
html.p328-android .p328-pdf-button{background:#0f766e!important;color:#fff!important;border-color:#0f766e!important}
@media(max-width:720px){
 html.p328-android .topbar{align-items:flex-start}
 html.p328-android .header-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:7px}
 html.p328-android .header-actions button{width:100%;min-width:0;padding:10px 7px;font-size:.86rem;white-space:normal}
 html.p328-android .app-main{padding-top:8px}
}
@media(max-width:430px){html.p328-android .header-actions{grid-template-columns:1fr 1fr}html.p328-android #p328SyncTop{grid-column:1/-1}}

/* ===== Style consolidé 12 ===== */
.p329-base-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-size:.78rem;font-weight:800;white-space:nowrap}
.p329-base-chip.offline{background:#fef3c7;color:#92400e}
.p329-base-note{margin-top:9px;padding:9px 11px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:10px;color:#166534;font-size:.86rem}

/* ===== Style consolidé 13 ===== */
/* VetCRM Clean Phase 3.2.11 — Android compact, congrès strict et propositions sans doublons */
.p3211-congress-hide{display:none!important}
html.p3211-android #printView,
html.p3211-android #exportView,
html.p3211-android #exportFull,
html.p3211-android label:has(#importFullInput){display:none!important}
html.p3211-android #p327QuickQuote,
html.p3211-android #phase31Header,
html.p3211-android #p329BaseChip{display:none!important}
html.p3211-android .p3211-internal{display:none!important}
html.p3211-android.p327-congress-mode .p321-advanced-details,
html.p3211-android.p327-congress-mode #marginRuleP312,
html.p3211-android.p327-congress-mode .margin-rule-p312,
html.p3211-android.p327-congress-mode #p321OpenAdvanced{display:none!important}
html.p3211-android .p3211-added-note{font-size:.82rem;color:var(--muted);margin:5px 0 0}
html.p3211-android .p3211-all-added{padding:9px 10px;border:1px dashed #94a3b8;border-radius:9px;color:#475569;background:#f8fafc;margin:0}
@media(max-width:720px){
 html.p3211-android .app-header{position:sticky;top:0}
 html.p3211-android .topbar{display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;padding:7px 10px!important;min-height:52px}
 html.p3211-android .brand{font-size:1.28rem!important;line-height:1;white-space:nowrap}
 html.p3211-android .version,
 html.p3211-android .header-status{display:none!important}
 html.p3211-android .header-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:6px!important;flex-wrap:nowrap!important;width:auto!important;margin-left:auto!important;min-width:0}
 html.p3211-android .header-actions button{width:auto!important;min-width:0!important;min-height:36px!important;padding:7px 10px!important;border-radius:9px!important;font-size:.78rem!important;line-height:1.05!important;white-space:nowrap!important}
 html.p3211-android #p328SyncTop{min-height:36px!important;padding:7px 10px!important}
 html.p3211-android #p327CongressToggle{min-height:36px!important;padding:7px 10px!important}
 html.p3211-android .nav{gap:6px!important;padding:6px 8px!important}
 html.p3211-android .nav button{padding:8px 12px!important;border-radius:9px!important;font-size:.88rem!important;min-height:36px!important}
 html.p3211-android.p327-congress-mode .nav{display:grid!important;grid-template-columns:1fr 1fr!important;overflow:visible!important}
 html.p3211-android.p327-congress-mode .nav button{width:100%!important}
 html.p3211-android .app-main{padding:8px!important}
 html.p3211-android .module-head{margin-bottom:9px!important;gap:8px!important}
 html.p3211-android .module-head h1{font-size:1.35rem!important}
 html.p3211-android .module-head p{font-size:.86rem!important}
 html.p3211-android .p321-quick-quote{padding:10px!important}
 html.p3211-android .p321-quick-head .badge{display:none!important}
 html.p3211-android .p321-quick-head h2{font-size:1.15rem!important}
 html.p3211-android .p321-quick-head p{font-size:.82rem!important}
 html.p3211-android .p321-machine-row{grid-template-columns:1fr!important}
 html.p3211-android .p321-compatible-grid{grid-template-columns:1fr!important;gap:9px!important}
 html.p3211-android .p321-product-buttons{gap:6px!important}
 html.p3211-android .p321-product-button{padding:8px 10px!important;font-size:.86rem!important;text-align:left!important;justify-content:flex-start!important}
 html.p3211-android.p327-congress-mode .module-head p{display:none!important}
 html.p3211-android.p327-congress-mode .quote-p26-note{display:none!important}
}
@media(max-width:390px){
 html.p3211-android .brand{font-size:1.15rem!important}
 html.p3211-android .header-actions button{padding:7px 8px!important;font-size:.73rem!important}
}

/* ===== Style consolidé 14 ===== */
/* VetCRM Clean Phase 3.2.12 — congrès réellement sans données internes */
.p3212-internal{display:none!important}
html.p3212-android.p327-congress-mode #appMain label:has(#qPrimeRate),
html.p3212-android.p327-congress-mode #appMain .module:has(#qPrimeRate) .metrics .metric:not(:has(#qSell)),
html.p3212-android.p327-congress-mode #appMain .quote-lines-table th:nth-child(5),
html.p3212-android.p327-congress-mode #appMain .quote-lines-table td:nth-child(5),
html.p3212-android.p327-congress-mode #appMain .p321-advanced-details,
html.p3212-android.p327-congress-mode #appMain #marginRuleP312,
html.p3212-android.p327-congress-mode #appMain .margin-rule-p312,
html.p3212-android.p327-congress-mode #appMain #p321OpenAdvanced,
html.p3212-android.p327-congress-mode #appMain .p3212-internal{display:none!important}
html.p3212-android.p327-congress-mode #appMain .module:has(#qPrimeRate) .metrics{
  grid-template-columns:minmax(0,1fr)!important;
}
html.p3212-android.p327-congress-mode #appMain .module:has(#qPrimeRate) .metrics .metric:has(#qSell){
  max-width:none!important;
}

/* ===== Style consolidé 15 ===== */
/* VetCRM Clean Phase 3.2.14 — catalogues vétérinaire / humain administrables */
.p3214-catalog-manager{grid-column:1/-1}
.p3214-catalog-manager .p3214-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:12px 0}
.p3214-catalog-manager .p3214-stat{border:1px solid var(--border);border-radius:12px;padding:12px;background:var(--panel)}
.p3214-catalog-manager .p3214-stat strong{display:block;font-size:1.35rem}
.p3214-domain-badges{display:flex;gap:5px;flex-wrap:wrap}
.p3214-domain-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;font-size:.76rem;font-weight:700;background:#e9eef5;color:#24344d}
.p3214-domain-badge.vet{background:#dcfce7;color:#166534}
.p3214-domain-badge.human{background:#dbeafe;color:#1d4ed8}
.p3214-domain-badge.none{background:#fee2e2;color:#991b1b}
.p3214-range-list{display:grid;gap:10px;margin-top:12px}
.p3214-range{border:1px solid var(--border);border-radius:12px;background:var(--panel);overflow:hidden}
.p3214-range summary{cursor:pointer;padding:12px 14px;font-weight:800;display:flex;justify-content:space-between;gap:10px;align-items:center}
.p3214-range[open] summary{border-bottom:1px solid var(--border)}
.p3214-range-body{padding:12px}
.p3214-range-actions,.p3214-product-actions{display:flex;gap:6px;flex-wrap:wrap}
.p3214-product-actions button,.p3214-range-actions button{padding:6px 9px;font-size:.78rem}
.p3214-catalog-table td{vertical-align:top}
.p3214-catalog-table small{display:block;color:var(--muted)}
.p3214-components-table input,.p3214-components-table select{min-width:115px}
.p3214-components-empty{padding:14px;border:1px dashed var(--border);border-radius:10px;color:var(--muted)}
.p3214-filter-row{display:grid;grid-template-columns:180px minmax(220px,1fr);gap:10px;align-items:end}
.p3214-help{padding:10px 12px;border-left:4px solid var(--primary);background:var(--primary-soft,#eef3f8);border-radius:8px}
@media(max-width:760px){
 .p3214-catalog-manager .p3214-summary{grid-template-columns:1fr 1fr}
 .p3214-filter-row{grid-template-columns:1fr}
 .p3214-catalog-manager .table-wrap{overflow:auto}
 .p3214-range summary{align-items:flex-start;flex-direction:column}
}

/* ===== Style consolidé 16 ===== */
.p3215-client-logo-panel{margin-top:12px}
.p3215-client-logo-grid{display:grid;grid-template-columns:120px minmax(0,1fr);gap:14px;align-items:center}
.p3215-client-logo-preview{width:120px;height:82px;display:grid;place-items:center;border:1px dashed var(--line);border-radius:10px;background:#fff;overflow:hidden;color:var(--muted);font-size:.78rem;text-align:center;padding:5px}
.p3215-client-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}
.p3215-client-logo-help{font-size:.82rem;color:var(--muted);margin:4px 0 8px}
@media(max-width:620px){.p3215-client-logo-grid{grid-template-columns:1fr}.p3215-client-logo-preview{width:100%;height:92px}}

/* ===== Style consolidé 17 ===== */
#p3216PdfStatus{position:fixed;inset:0;z-index:100000;background:rgba(15,23,42,.72);display:grid;place-items:center;padding:20px}
#p3216PdfStatus .p3216-card{width:min(420px,100%);background:#fff;color:#0f172a;border-radius:18px;padding:22px;border:1px solid #cbd5e1;text-align:center;box-shadow:0 18px 45px rgba(15,23,42,.25)}
#p3216PdfStatus strong{display:block;font-size:1.08rem;margin-bottom:8px}
#p3216PdfStatus p{margin:0;color:#475569;line-height:1.4}
#p3216PdfStatus button{margin-top:16px}

/* ===== Style consolidé 18 ===== */
/* VetCRM Clean Phase 3.2.19 — consolidation des services et fenêtres. */
#p3219Notice{position:fixed;inset:0;z-index:120000;background:rgba(15,23,42,.68);display:grid;place-items:center;padding:18px}
#p3219Notice .p3219-notice-card{width:min(440px,100%);max-height:85dvh;overflow:auto;background:#fff;color:#0f172a;border:1px solid #cbd5e1;border-radius:18px;padding:22px;text-align:center;box-shadow:0 20px 48px rgba(15,23,42,.28)}
#p3219Notice h2{margin:0 0 10px;font-size:1.25rem}#p3219Notice p{white-space:pre-wrap;margin:0;color:#475569;line-height:1.45}#p3219Notice button{margin-top:18px}
.p3219-service-panel{grid-column:1/-1}.p3219-service-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px;margin-top:12px}.p3219-service{border:1px solid var(--line,#d6dfeb);border-radius:12px;padding:11px;background:#fff}.p3219-service strong{display:block}.p3219-service small{display:block;color:var(--muted,#65738a);margin-top:4px;line-height:1.35}.p3219-service.ok{border-left:5px solid #16a34a}.p3219-service.warn{border-left:5px solid #d97706}.p3219-service.error{border-left:5px solid #dc2626}.p3219-service .p3219-state{font-weight:800;font-size:.78rem;text-transform:uppercase;letter-spacing:.02em}.p3219-service.ok .p3219-state{color:#166534}.p3219-service.warn .p3219-state{color:#9a3412}.p3219-service.error .p3219-state{color:#991b1b}
.modal-overlay{overscroll-behavior:contain}.modal{max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain}
@media(max-width:720px){#p3219Notice{padding:12px}.modal-overlay{padding:12px;align-items:flex-start}.modal{width:100%;max-height:calc(100dvh - 24px);border-radius:16px}.p3219-service-grid{grid-template-columns:1fr}}

/* ===== Style consolidé 19 ===== */
/* VetCRM Clean Phase 3.3.3 — stabilisation terrain : devis, fenêtres et tests. */
html.p330-congress #appMain .p330-internal{display:none!important}
html.p330-congress #appMain .module:has(#qPrimeRate) .metrics .metric:not(:has(#qSell)){display:none!important}
html.p330-congress #appMain .module:has(#qPrimeRate) .metrics{grid-template-columns:minmax(0,1fr)!important}
html.p330-congress #appMain .module:has(#qPrimeRate) .metrics .metric:has(#qSell){display:flex!important}
.p330-machine-state{margin-top:7px;padding:7px 9px;border-radius:9px;background:#eef6ff;color:#1e3a8a;font-size:.82rem}
.p330-test-panel{grid-column:1/-1}
.p330-test-toolbar{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.p330-test-grid{display:grid;gap:8px;margin-top:12px}
.p330-test-row{display:grid;grid-template-columns:minmax(220px,1fr) 170px minmax(220px,1fr);gap:9px;align-items:center;border:1px solid var(--line,#d6dfeb);border-radius:11px;padding:9px;background:#fff}
.p330-test-row strong{display:block}.p330-test-row small{display:block;color:var(--muted,#65738a);margin-top:3px}
.p330-test-row select,.p330-test-row input{min-width:0}
.p330-health{display:inline-flex;align-items:center;border-radius:999px;padding:4px 8px;font-size:.76rem;font-weight:800;background:#e2e8f0;color:#334155}
.p330-health.ok{background:#dcfce7;color:#166534}.p330-health.error{background:#fee2e2;color:#991b1b}.p330-health.warn{background:#ffedd5;color:#9a3412}
.modal-overlay[data-vetcrm-window="phase33"] .modal{border:1px solid var(--line,#d6dfeb)}
@media(max-width:760px){
 .p330-test-row{grid-template-columns:1fr}
 .p330-test-toolbar button{padding:8px 10px;font-size:.82rem}
 html.p330-congress #mainNav{display:grid!important;grid-template-columns:1fr 1fr!important}
 html.p330-congress #mainNav [data-module]:not([data-module="crm"]):not([data-module="quotes"]){display:none!important}
}

/* ===== Style consolidé 20 ===== */
/* VetCRM Clean Phase 3.4.29 — synchronisation unique, reprise et diagnostic. */
.p340-sync-panel{border:2px solid #86efac;background:#f8fff9}
.p340-health-grid{display:grid;grid-template-columns:repeat(4,minmax(145px,1fr));gap:9px;margin:12px 0}
.p340-health-card{border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px;min-width:0}
.p340-health-card strong{display:block;font-size:1.05rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.p340-health-card span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}
.p340-health-badge{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;font-weight:800;font-size:.8rem}
.p340-health-badge.ok{background:#dcfce7;color:#166534}.p340-health-badge.warn{background:#fef3c7;color:#92400e}.p340-health-badge.error{background:#fee2e2;color:#991b1b}.p340-health-badge.offline{background:#e2e8f0;color:#475569}
.p340-sync-summary{margin-top:10px;padding:10px 12px;border-radius:10px;background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a}
.p340-type-grid{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.p340-type-chip{padding:4px 7px;border-radius:999px;background:#eef2f7;font-size:.76rem;color:#334155}
.p340-sync-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.p340-sync-actions .danger-soft{background:#fff7ed;border-color:#fdba74;color:#9a3412}
#p328SyncTop.p340-ok{outline:2px solid #86efac}#p328SyncTop.p340-warn{outline:2px solid #fbbf24}#p328SyncTop.p340-error{outline:2px solid #f87171}
@media(max-width:800px){.p340-health-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.p340-health-grid{grid-template-columns:1fr 1fr}.p340-health-card{padding:8px}.p340-sync-actions button{flex:1 1 44%}}

/* ===== Style consolidé 21 ===== */
/* VetCRM Clean Phase 3.4.29 — centrage automatique de la carte */
.p341-map-hint{font-size:.82rem;color:#64748b;margin-top:4px}

/* ===== Style consolidé 22 ===== */
/* VetCRM Clean Phase 3.4.29 — synchronisation par type et résolution des conflits */
.p342-type-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:.86rem}
.p342-type-table th,.p342-type-table td{padding:7px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.p342-type-table th:first-child,.p342-type-table td:first-child{text-align:left;white-space:normal}
.p342-type-table tbody tr:last-child td{border-bottom:0}
.p342-type-table .p342-pending{font-weight:800;color:#92400e}
.p342-sync-scope{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin-top:10px;padding:10px;border:1px solid #bfdbfe;border-radius:10px;background:#f8fbff}
.p342-sync-scope label{min-width:220px;flex:1 1 260px}.p342-sync-scope select{width:100%}
.p342-conflicts{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.p342-conflict{border:1px solid #fbbf24;background:#fffbeb;border-radius:10px;padding:10px;margin-top:8px}
.p342-conflict-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;flex-wrap:wrap}
.p342-conflict small{display:block;color:#64748b;margin-top:3px}
.p342-conflict-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.p342-conflict-actions button{padding:7px 9px}
.p342-conflict-actions .server{background:#eff6ff;border-color:#93c5fd;color:#1d4ed8}
.p342-conflict-actions .local{background:#ecfdf5;border-color:#86efac;color:#166534}
.p342-diff{margin-top:7px;color:#7c2d12;font-size:.8rem}
.p342-empty{padding:9px;border-radius:9px;background:#f1f5f9;color:#475569;margin-top:10px}
.p342-section-title{margin:14px 0 4px;font-size:1rem}
@media(max-width:680px){.p342-type-table{font-size:.78rem}.p342-type-table th,.p342-type-table td{padding:6px 5px}.p342-type-table th:nth-child(2),.p342-type-table td:nth-child(2){display:none}.p342-sync-scope button{width:100%}}

/* ===== Style consolidé 23 ===== */
/* Phase 3.4.29 — géocodage public des communes et adresses. */
.route-time-rule{margin:10px 0;padding:10px 12px;border:1px solid #bfdbfe;border-radius:10px;background:#eff6ff;color:#1e3a8a;font-size:.92rem}
.route-location-options{display:grid;gap:8px;max-height:55vh;overflow:auto;margin:12px 0}
.route-location-choice{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid #dbe4ef;border-radius:10px;background:#fff;cursor:pointer}
.route-location-choice input{margin-top:4px}.route-location-choice span{display:grid;gap:2px}.route-location-choice small{color:#64748b}
.route-schedule-summary{display:grid;gap:3px;margin:0 0 10px;padding:10px 12px;border:1px solid #86efac;border-radius:10px;background:#f0fdf4}
.route-schedule-summary.warn{border-color:#fbbf24;background:#fffbeb}.route-schedule-summary span,.route-schedule-summary small{color:#475569}

/* ===== Style consolidé 24 ===== */
/* VetCRM Clean Phase 3.4.29 — journal, verrou et reprise de synchronisation */
.p343-status-box{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}
.p343-status-item{min-width:0}.p343-status-item strong{display:block;font-size:.9rem}.p343-status-item span{display:block;margin-top:3px;color:#64748b;font-size:.78rem;overflow-wrap:anywhere}
.p343-status-box.running{border-color:#93c5fd;background:#eff6ff}.p343-status-box.interrupted,.p343-status-box.error{border-color:#fbbf24;background:#fffbeb}.p343-status-box.ok{border-color:#86efac;background:#f0fdf4}
.p343-recovery-actions{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}.p343-recovery-actions button{padding:7px 10px}
.p343-journal{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.p343-journal-head{display:flex;justify-content:space-between;gap:8px;align-items:center;flex-wrap:wrap}.p343-journal table{width:100%;border-collapse:collapse;margin-top:8px;font-size:.8rem}.p343-journal th,.p343-journal td{padding:6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.p343-journal td:nth-child(3),.p343-journal td:nth-child(4){white-space:nowrap}.p343-log-ok{color:#166534;font-weight:800}.p343-log-error,.p343-log-interrupted{color:#b45309;font-weight:800}.p343-log-running{color:#1d4ed8;font-weight:800}
.p343-syncing #p340SyncNow,.p343-syncing #p340RepairServer,.p343-syncing #p327PublishAll,.p343-syncing #p343ResumeSync{opacity:.65;pointer-events:none;cursor:wait}
@media(max-width:680px){.p343-status-box{grid-template-columns:1fr}.p343-journal th:nth-child(2),.p343-journal td:nth-child(2),.p343-journal th:nth-child(4),.p343-journal td:nth-child(4){display:none}}

/* ===== Style consolidé 25 ===== */
.p346-hours-panel{grid-column:1/-1}.p346-hours-summary{display:flex;gap:10px;flex-wrap:wrap;margin:.65rem 0}.p346-pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:999px;background:#eef2ff;font-size:.86rem}.p346-hours-table{width:100%;border-collapse:collapse}.p346-hours-table th,.p346-hours-table td{padding:7px 6px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}.p346-hours-table input[type=time]{min-width:94px}.p346-hours-table .p346-day{font-weight:700;white-space:nowrap}.p346-tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.p346-tool-grid .wide{grid-column:1/-1}.p346-status{margin:12px 0}.p346-result{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 0;border-bottom:1px solid #e5e7eb}.p346-result strong,.p346-suggestion strong{display:block}.p346-result span,.p346-suggestion span,.p346-result small,.p346-suggestion small{display:block;color:#64748b;margin-top:3px}.p346-result.ok{border-left:4px solid #16a34a;padding-left:10px}.p346-result.none{border-left:4px solid #f59e0b;padding-left:10px}.p346-result.error{border-left:4px solid #dc2626;padding-left:10px}.p346-suggestion{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:13px 0;border-bottom:1px solid #e5e7eb}.p346-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;align-content:flex-start}.p346-source-note{font-size:.86rem;color:#64748b}.p346-preview{margin-top:8px;padding:9px;border-radius:10px;background:#f8fafc;white-space:pre-line}.p346-progress{width:100%;height:12px}.p346-admin-panel .action-row{margin-top:10px}@media(max-width:760px){.p346-tool-grid{grid-template-columns:1fr}.p346-tool-grid .wide{grid-column:auto}.p346-result,.p346-suggestion{grid-template-columns:1fr}.p346-actions{justify-content:flex-start}.p346-hours-table{font-size:.84rem}.p346-hours-table input[type=time]{min-width:78px;width:78px;padding:5px}}

/* ===== Style consolidé 26 ===== */
.p347-admin-root{display:block!important}.p347-admin-nav{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px;position:sticky;top:112px;z-index:9;background:var(--bg)}.p347-admin-nav button{white-space:nowrap;background:#fff;border:1px solid var(--line)}.p347-admin-nav button.active{background:var(--blue);color:#fff;border-color:var(--blue)}.p347-admin-category{display:none}.p347-admin-category.active{display:block}.p347-admin-category-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:4px 0 12px}.p347-admin-category-head h2{margin:0 0 3px}.p347-admin-category-head p{margin:0;color:var(--muted)}.p347-admin-count{background:#e2e8f0;border-radius:999px;padding:5px 9px;font-size:.82rem;font-weight:800}.p347-admin-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.p347-admin-cards>.panel{margin:0}.p347-hours-panel{grid-column:1/-1}.p347-hours-grid{display:grid;grid-template-columns:1.2fr .65fr .55fr;gap:10px}.p347-hours-grid .wide{grid-column:1/-1}.p347-hours-grid label{display:flex;flex-direction:column;gap:6px;font-weight:700;font-size:.88rem}.p347-hours-grid input,.p347-hours-grid select{font-weight:400}.p347-hours-diagnostic{margin-top:10px;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc;font-size:.86rem;white-space:pre-wrap}.p347-hours-diagnostic.ok{border-color:#86efac;background:#f0fdf4}.p347-hours-diagnostic.error{border-color:#fecaca;background:#fef2f2}.p347-hours-results{display:grid;gap:8px;margin-top:12px}.p347-hours-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;border:1px solid var(--line);border-radius:11px;padding:10px}.p347-hours-row.ok{border-left:5px solid #16a34a}.p347-hours-row.none{border-left:5px solid #d97706}.p347-hours-row.error{border-left:5px solid #dc2626}.p347-hours-row strong,.p347-hours-row span,.p347-hours-row small{display:block}.p347-hours-row span,.p347-hours-row small{color:var(--muted);margin-top:3px}.p347-hours-meta{display:flex;gap:7px;flex-wrap:wrap;margin:8px 0}.p347-hours-meta span{background:#eef2ff;border-radius:999px;padding:4px 8px;font-size:.8rem}.p347-admin-empty{padding:18px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}
@media(max-width:850px){.p347-admin-nav{top:145px}.p347-admin-cards{grid-template-columns:1fr}.p347-hours-grid{grid-template-columns:1fr}.p347-hours-grid .wide{grid-column:auto}.p347-hours-row{grid-template-columns:1fr}}

/* ===== Style consolidé 27 ===== */
.p349-remote-panel,.p349-license-panel{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;padding:10px}
.p349-remote-panel>summary{cursor:pointer;font-weight:800;display:flex;justify-content:space-between;gap:8px;align-items:center}
.p349-remote-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}.p349-remote-grid .wide{grid-column:1/-1}
.p349-copy-row{display:flex;gap:8px;align-items:end}.p349-copy-row .field{flex:1}
.p349-license-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.p349-license-head h4{margin:0}.p349-license-list{display:grid;gap:8px;margin-top:8px}
.p349-license-card{width:100%;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:inherit}
.p349-license-card strong{overflow:hidden;text-overflow:ellipsis}.p349-license-card small{grid-column:1/-1;color:var(--muted)}.p349-license-badge{font-size:.75rem;border-radius:999px;padding:3px 8px;background:#e2e8f0;white-space:nowrap}.p349-license-badge.installed{background:#dcfce7;color:#166534}.p349-license-badge.potential{background:#fef3c7;color:#92400e}.p349-license-badge.pending{background:#dbeafe;color:#1d4ed8}
.p349-admin-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.p349-admin-stat{border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}.p349-admin-stat strong{display:block;font-size:1.35rem}.p349-danger-note{border-left:4px solid #dc2626;background:#fef2f2;padding:10px 12px;border-radius:8px;margin:10px 0}.p349-follow-list{display:grid;gap:10px}.p349-follow-row{border:1px solid var(--line);border-radius:12px;padding:12px;background:#fff}.p349-follow-row h3{margin:0 0 4px;font-size:1rem}.p349-follow-row p{margin:4px 0}.p349-follow-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
@media(max-width:760px){.p349-remote-grid{grid-template-columns:1fr}.p349-remote-grid .wide{grid-column:auto}.p349-admin-stats{grid-template-columns:1fr}.p349-license-head button{min-height:42px}.p349-remote-panel,.p349-license-panel{padding:9px}.p349-copy-row{align-items:stretch}.p349-copy-row button{min-width:82px}.p349-license-card{min-height:52px}.p349-android-clinic .p349-remote-panel>summary{min-height:44px}.p349-android-clinic .p349-license-head{position:sticky;top:0;background:#f8fafc;padding:2px 0;z-index:1}}

/* ===== Style consolidé 28 ===== */
/* VetCRM Phase 3.4.29 */
.p3411-hours-note{margin:10px 0;padding:10px 12px;border-radius:10px;background:var(--soft,#f3f6fb);font-size:.9rem;line-height:1.35}
.p3411-secondary-actions{margin:0 14px 10px;padding:8px 10px;border:1px solid var(--border,#d8dee9);border-radius:10px;background:var(--panel,#fff)}
.p3411-secondary-actions summary{cursor:pointer;font-weight:700}
.p3411-secondary-actions button{margin-top:8px;width:100%}
.p3411-merge-warning{padding:12px;border-radius:10px;background:#eef6ff;border:1px solid #c8def7;margin-bottom:12px}
.p3411-merge-preview{display:flex;flex-direction:column;gap:4px;margin:12px 0;padding:12px;border:1px solid var(--border,#d8dee9);border-radius:10px;background:var(--soft,#f7f8fa)}
.p3411-check input{width:auto;margin-right:8px}
.p3411-domain-choice{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.p3411-domain-choice article{padding:14px;border:1px solid var(--border,#d8dee9);border-radius:12px;background:var(--panel,#fff)}
.p3411-domain-choice article h3{margin-top:0}
.p3411-domain-choice .danger-zone{border-color:#e5a1a1;background:#fff8f8}
@media(max-width:850px){
 .p3411-domain-choice{grid-template-columns:1fr}
 .p3411-domain-choice .action-row{display:grid;grid-template-columns:1fr}
 .p3411-domain-choice button{width:100%}
}

/* ===== Style consolidé 29 ===== */
/* VetCRM Clean Phase 3.4.29 — le matériel reste visible en mode congrès. */
html.p327-congress-mode .clinic-editor .p3410-material-panel,
html.p330-congress .clinic-editor .p3410-material-panel,
html.p327-congress-mode .clinic-editor .p3410-material-panel #machineRows,
html.p330-congress .clinic-editor .p3410-material-panel #machineRows,
html.p327-congress-mode .clinic-editor .p3410-material-panel .machine-card,
html.p330-congress .clinic-editor .p3410-material-panel .machine-card,
html.p327-congress-mode .clinic-editor .p3410-material-panel .p348-machine-card,
html.p330-congress .clinic-editor .p3410-material-panel .p348-machine-card {
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
html.p327-congress-mode .clinic-editor .p3410-material-panel .section-head,
html.p330-congress .clinic-editor .p3410-material-panel .section-head,
html.p327-congress-mode .clinic-editor .p3410-material-panel .machine-summary,
html.p330-congress .clinic-editor .p3410-material-panel .machine-summary {
  display:flex!important;
  visibility:visible!important;
}
html.p327-congress-mode .clinic-editor .p3410-material-panel .p3410-congress-sensitive,
html.p330-congress .clinic-editor .p3410-material-panel .p3410-congress-sensitive {
  display:none!important;
}
html.p327-congress-mode .clinic-editor .p3410-material-panel .p349-license-card small,
html.p330-congress .clinic-editor .p3410-material-panel .p349-license-card small {
  font-size:0;
}
html.p327-congress-mode .clinic-editor .p3410-material-panel .p349-license-card small:after,
html.p330-congress .clinic-editor .p3410-material-panel .p349-license-card small:after {
  content:'Licence liée à cet appareil';
  font-size:.78rem;
}

/* ===== Style consolidé 30 ===== */
.brand-lockup{display:inline-flex;align-items:baseline;gap:6px;white-space:nowrap}
.brand-lockup .version{font-size:.68rem;line-height:1;padding:3px 6px;font-weight:700}
@media(max-width:520px){.brand-lockup{gap:4px}.brand-lockup .brand{font-size:1.35rem}.brand-lockup .version{font-size:.62rem;padding:2px 5px}}

/* ===== Style consolidé 31 ===== */
.p3414-quick-overlay{z-index:260}.p3414-quick-sheet{width:min(520px,calc(100vw - 22px));margin:auto 11px 10px;border-radius:18px;padding:14px;background:#fff;box-shadow:0 18px 55px rgba(15,23,42,.28)}
.p3414-quick-sheet h2{margin:0 0 4px;font-size:1.2rem}.p3414-quick-sheet p{margin:0 0 12px;color:var(--muted);font-size:.88rem}.p3414-quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.p3414-quick-grid button{min-height:58px;text-align:left;padding:10px 12px;border-radius:12px;display:flex;flex-direction:column;justify-content:center;gap:2px}.p3414-quick-grid button strong{font-size:.98rem}.p3414-quick-grid button small{font-size:.74rem;color:var(--muted);font-weight:600}.p3414-quick-close{width:100%;margin-top:9px;min-height:43px}
html.p348-android-clinic .p348-bottom-bar{grid-template-columns:.72fr 1fr 1.18fr}html.p348-android-clinic .p348-bottom-bar .p3414-add{background:#dbeafe;color:#1d4ed8;font-weight:800}.p3414-machine-choice{display:grid;gap:8px}.p3414-machine-choice button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;min-height:54px;padding:10px 12px;border-radius:11px}.p3414-machine-choice small{color:var(--muted)}
.p3414-license-tools{display:flex;gap:7px;flex-wrap:wrap;margin:-2px 0 8px}.p3414-license-tools button{padding:7px 9px;font-size:.8rem}.p3414-reminder-row{border:1px solid var(--line);border-radius:10px;padding:9px 10px;background:#f8fafc;margin-top:4px}.p3414-reminder-row label{display:flex;align-items:flex-start;gap:8px;font-weight:700}.p3414-reminder-row input{margin-top:3px}
@media(max-width:480px){.p3414-quick-grid{grid-template-columns:1fr}.p3414-quick-sheet{padding:12px}.p3414-quick-grid button{min-height:52px}}

/* ===== Style consolidé 32 ===== */
.p3416-recovery-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.p3416-recovery-actions button,.p3416-recovery-actions label{width:100%;text-align:center;justify-content:center}
.p3416-project-details{margin-top:12px;border:1px solid #cbd5e1;border-radius:12px;padding:9px;background:#f8fafc}
.p3416-project-details summary{cursor:pointer;font-weight:800;color:#334155}
.p3416-project-details .p32-login-fields{margin-top:10px}
.p3416-warning{padding:10px 12px;border:1px solid #fdba74;background:#fff7ed;color:#9a3412;border-radius:10px;margin:10px 0}
.p3416-db-list{display:grid;gap:8px;margin-top:10px}
.p3416-db-choice{display:flex!important;justify-content:space-between;gap:10px;text-align:left!important;background:#f8fafc!important;border:1px solid #cbd5e1!important}
.p3416-db-choice small{display:block;color:#64748b;font-weight:400}
.p3416-admin-panel{border:2px solid #bfdbfe;background:#f8fbff}
.p3416-diagnostic-output{white-space:pre-wrap;overflow:auto;max-height:360px;background:#0f172a;color:#e2e8f0;border-radius:10px;padding:12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}
@media(max-width:620px){.p3416-recovery-actions{grid-template-columns:1fr}.p3416-project-details{padding:8px}}

/* ===== Style consolidé 33 ===== */
/* VetCRM v3.5.0 — matériel toujours visible et défilement complet des fiches. */
html.p3420-clinic-open,
html.p3420-clinic-open body{
  height:auto!important;
  min-height:100%!important;
  max-height:none!important;
  overflow-y:auto!important;
  overflow-x:hidden!important;
  overscroll-behavior-y:auto!important;
  touch-action:pan-y!important;
}
html.p3420-clinic-open .app-main,
html.p3420-clinic-open .module,
html.p3420-clinic-open .clinic-editor,
html.p3420-clinic-open .editor-grid,
html.p3420-clinic-open .editor-column{
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  overflow:visible!important;
}
html.p3420-clinic-open .app-main{
  padding-bottom:calc(150px + env(safe-area-inset-bottom))!important;
}
html.p3420-clinic-open .clinic-editor{
  padding-bottom:calc(115px + env(safe-area-inset-bottom))!important;
}
.p3420-equipment-panel{
  grid-column:1/-1;
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  border:2px solid #bfdbfe!important;
  background:#f8fbff!important;
}
.p3420-equipment-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.p3420-equipment-head h2{margin:0 0 3px!important}
.p3420-equipment-head p{margin:0;color:var(--muted);font-size:.86rem}
.p3420-equipment-actions{display:flex;gap:7px;flex-wrap:wrap}
.p3420-equipment-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:9px;margin-top:11px}
.p3420-equipment-card{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:4px;width:100%;min-height:82px;padding:11px 12px;border:1px solid #cbd5e1;border-radius:11px;background:#fff;color:inherit}
.p3420-equipment-card strong{font-size:1rem;line-height:1.25}
.p3420-equipment-card span,.p3420-equipment-card small{color:var(--muted);line-height:1.28}
.p3420-equipment-card .p3420-status{display:inline-flex;background:#dcfce7;color:#166534;border-radius:999px;padding:3px 7px;font-size:.74rem;font-weight:800}
.p3420-equipment-empty{padding:12px;border:1px dashed #94a3b8;border-radius:10px;background:#fff;color:var(--muted);margin-top:10px}
.p3420-material-detail,
.p3420-material-detail #machineRows,
.p3420-material-detail .machine-card,
.p3420-material-detail .p348-machine-card{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.p3420-scroll-end{display:block!important;width:100%;height:135px;grid-column:1/-1;flex:0 0 135px;pointer-events:none}
html.p3420-clinic-open .p348-bottom-bar{z-index:200!important}
@media(max-width:760px){
  .p3420-equipment-panel{padding:11px!important}
  .p3420-equipment-head{display:grid;grid-template-columns:1fr}
  .p3420-equipment-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .p3420-equipment-actions button{min-height:43px;padding:8px 7px}
  .p3420-equipment-cards{grid-template-columns:1fr}
  .p3420-equipment-card{min-height:72px}
  html.p3420-clinic-open .p3420-material-detail{grid-column:1/-1!important}
}

/* ===== Style consolidé 34 ===== */
.p3421-notes-panel{border:2px solid #bfdbfe;background:#f8fbff}
.p3421-notes-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.p3421-notes-head h2{margin:0 0 4px}.p3421-notes-head p{margin:0;color:var(--muted);font-size:.87rem}
.p3421-report-list{display:grid;gap:9px;margin-top:12px}
.p3421-report-card{border:1px solid #cbd5e1;border-radius:12px;background:#fff;padding:11px}
.p3421-report-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;flex-wrap:wrap}
.p3421-report-card header strong{font-size:.98rem}.p3421-report-card header span{color:var(--muted);font-size:.8rem}
.p3421-report-text{white-space:pre-wrap;margin:8px 0 0;line-height:1.42}
.p3421-report-actions{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}
.p3421-report-actions button{padding:7px 10px;font-size:.82rem}
.p3421-analysis-badge{display:inline-flex;border-radius:999px;padding:3px 7px;background:#dcfce7;color:#166534;font-size:.72rem;font-weight:800}
.p3421-analysis-grid{display:grid;gap:9px}
.p3421-analysis-row{display:grid;grid-template-columns:auto 1fr;gap:9px;padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#f8fafc}
.p3421-analysis-row>input{margin-top:4px}.p3421-analysis-row label{display:grid;gap:5px;font-weight:700}
.p3421-analysis-row input[type="text"],.p3421-analysis-row input[type="date"],.p3421-analysis-row input[type="time"],.p3421-analysis-row select{font-weight:400}
.p3421-analysis-help{padding:9px 11px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;color:#1e3a8a}
.p3421-legacy{border-style:dashed;background:#f8fafc}
@media(max-width:760px){
 .p3421-notes-panel{grid-column:1/-1!important;padding:11px!important}
 .p3421-notes-head button{width:100%;min-height:43px}
 .p3421-report-card header{display:grid;grid-template-columns:1fr}
 .p3421-report-actions{display:grid;grid-template-columns:1fr 1fr}
 .p3421-report-actions button{min-height:40px}
 .p3421-analysis-row{grid-template-columns:auto minmax(0,1fr)}
}

/* ===== Style consolidé 35 ===== */
/* Interface active unique : les modules historiques restent chargés, mais ne pilotent plus des couches concurrentes. */
:root{--v3422-bottom-safe:calc(126px + env(safe-area-inset-bottom))}
body.v3422-modal-open{overflow:hidden!important;touch-action:none}
#phase2Modal{z-index:1000!important}
#progressOverlay{z-index:1100!important}
#p32AccessGate{z-index:1200!important}
.p3414-quick-overlay{z-index:950!important}
.v3422-modal-error{margin:10px 0 0;padding:10px 12px;border:1px solid #fecaca;border-radius:10px;background:#fff1f2;color:#991b1b;font-weight:700;white-space:pre-wrap}
.v3422-geo-tools{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.v3422-geo-tools select{min-height:39px;padding:6px 9px;border:1px solid var(--line,#cbd5e1);border-radius:9px;background:#fff}
.v3422-geo-status{font-size:.78rem;color:var(--muted,#64748b);width:100%}
.v3422-route-gps{display:flex;gap:8px;align-items:center;margin-top:7px;flex-wrap:wrap}
.v3422-route-gps button{min-height:40px}
.v3422-route-gps small{color:var(--muted,#64748b)}
html.p3420-clinic-open .clinic-editor{padding-bottom:var(--v3422-bottom-safe)!important}
@media(max-width:760px){
  .v3422-geo-tools{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .v3422-geo-tools .v3422-geo-status{grid-column:1/-1}
  .crm-map-actions-p23{width:100%}
}

/* ===== Style consolidé 36 ===== */
:root{--v3423-safe-bottom:calc(132px + env(safe-area-inset-bottom))}
.v3423-geo-tools{display:grid;grid-template-columns:minmax(92px,120px) repeat(3,minmax(0,auto));gap:8px;align-items:center;width:100%;margin-top:8px}
.v3423-geo-tools select,.v3423-geo-tools button{min-height:42px}
.v3423-geo-status{grid-column:1/-1;font-size:.86rem;color:#475569;min-height:1.2em}
.v3423-route-gps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.v3423-route-gps small{flex:1 1 100%;color:#475569}
.v3423-summary-panel,.v3423-notes-panel{grid-column:1/-1}
.v3423-summary-head,.v3423-notes-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.v3423-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.v3423-summary-card{border:1px solid #dbe4ee;border-radius:12px;padding:12px;background:#f8fafc}
.v3423-summary-card h3{margin:0 0 7px;font-size:.98rem}
.v3423-summary-card p,.v3423-summary-card ul{margin:0;font-size:.9rem;line-height:1.45}
.v3423-summary-card ul{padding-left:18px}
.v3423-report-list{display:grid;gap:10px;margin-top:12px}
.v3423-report-card{border:1px solid #dbe4ee;border-radius:12px;padding:12px;background:#fff}
.v3423-report-card.is-legacy{background:#f8fafc}
.v3423-report-card header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.v3423-report-card header span,.v3423-report-card small{color:#64748b}
.v3423-report-card details{margin-top:8px}
.v3423-report-card details summary{cursor:pointer;font-weight:600;color:#1d4ed8}
.v3423-report-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:9px 0 0;line-height:1.5}
.v3423-report-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.v3423-report-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.v3423-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.v3423-detail-card{border:1px solid #dbe4ee;border-radius:12px;padding:12px;background:#f8fafc}
.v3423-detail-card h3{margin-top:0}
.v3423-detail-list{display:grid;gap:8px}
.v3423-detail-item{border-top:1px solid #e2e8f0;padding-top:8px;white-space:pre-wrap;overflow-wrap:anywhere}
.p3421-notes-panel{display:none!important}
@media(max-width:760px){
 .v3423-geo-tools{grid-template-columns:1fr 1fr}
 .v3423-geo-tools .v3423-route-from-map{grid-column:1/-1}
 .v3423-summary-grid,.v3423-detail-grid{grid-template-columns:1fr}
 .v3423-summary-panel,.v3423-notes-panel{scroll-margin-bottom:var(--v3423-safe-bottom)}
 .v3423-report-actions button{flex:1 1 44%}
}

/* ===== Style consolidé 37 ===== */
.v3424-context-notice{width:100%;margin-top:8px;padding:10px 12px;border:1px solid #fdba74;border-radius:11px;background:#fff7ed;color:#9a3412;font-weight:700;line-height:1.35}
.v3424-context-notice strong{display:block;margin-bottom:3px;color:#7c2d12}
.v3424-location-grid{display:grid;gap:12px}
.v3424-location-help{padding:11px 12px;border:1px solid #bfdbfe;border-radius:11px;background:#eff6ff;color:#1e3a8a;line-height:1.4}
.v3424-location-help.warning{border-color:#fdba74;background:#fff7ed;color:#9a3412}
.v3424-location-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}
.v3424-location-results{display:grid;gap:7px;max-height:42vh;overflow:auto}
.v3424-location-choice{display:flex;gap:9px;align-items:flex-start;padding:10px;border:1px solid #d6dfeb;border-radius:10px;background:#fff;cursor:pointer}
.v3424-location-choice input{width:auto;margin-top:3px}
.v3424-location-choice span{display:grid;gap:3px}
.v3424-location-choice small{color:var(--muted,#64748b)}
.v3424-map-pick-banner{position:absolute;left:50%;top:12px;transform:translateX(-50%);z-index:1000;width:min(92%,520px);padding:11px 13px;border:2px solid #2563eb;border-radius:12px;background:#fff;color:#1e3a8a;font-weight:800;text-align:center;box-shadow:0 8px 24px rgba(15,23,42,.25)}
.v3424-manual-position{background:#dbeafe!important;color:#1e3a8a!important}
.v3424-source-manual{color:#7c3aed;font-weight:700}
@media(max-width:760px){
 .v3423-geo-tools{grid-template-columns:1fr 1fr!important}
 .v3423-geo-tools #v3423Radius{grid-column:1/-1}
 .v3423-geo-tools #v3423AroundMe,.v3423-geo-tools #v3424ManualPosition,.v3423-geo-tools #v3423ClearAround,.v3423-geo-tools #v3423RouteFromMap{width:100%;min-height:54px}
 .v3424-location-search{grid-template-columns:1fr}
 .v3423-route-gps{grid-template-columns:1fr!important}
 .v3423-route-gps button{width:100%;min-height:48px}
}

/* ===== Style consolidé 38 ===== */
.p3431-library-panel{margin:12px 0}.p3431-library-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.p3431-library-actions{display:flex;gap:8px;flex-wrap:wrap}.p3431-library-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.p3431-library-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px}.p3431-library-metrics strong{display:block;font-size:1.22rem}.p3431-library-metrics span{font-size:.8rem;color:var(--muted)}.p3431-destination{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:.74rem;font-weight:800;margin-right:5px}.p3431-training{background:#dbeafe;color:#1d4ed8}.p3431-benchmark{background:#fef3c7;color:#92400e}.p3431-mixed{background:#ede9fe;color:#6d28d9}.p3431-pending{background:#fee2e2;color:#991b1b}.p3431-upload-status{white-space:pre-wrap;max-height:230px;overflow:auto}.p3431-document-list,.p3431-author-list{max-height:64vh;overflow:auto}.p3431-document-card,.p3431-author-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start}.p3431-document-card small,.p3431-author-card small{display:block;white-space:pre-wrap}.p3431-document-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.p3431-file-input{border:2px dashed #94a3b8;border-radius:12px;padding:18px;background:#f8fafc}.p3431-file-input input{width:100%}.p3431-warning{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:10px;padding:10px}.p3431-kol-candidate{border-left:4px solid #7c3aed}.p3431-storage-ok{color:#166534;font-weight:800}.p3431-storage-warn{color:#9a3412;font-weight:800}.p3431-queue{font-size:.84rem;color:var(--muted)}
@media(max-width:850px){.p3431-library-head{display:block}.p3431-library-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.p3431-library-metrics{grid-template-columns:1fr 1fr}.p3431-document-card,.p3431-author-card{display:block}.p3431-document-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.p3431-document-actions button{width:100%}}

/* ===== Style consolidé 39 ===== */
.p3432-analysis-panel{margin:12px 0;border-left:4px solid #2563eb}.p3432-analysis-actions{display:flex;gap:8px;flex-wrap:wrap}.p3432-analysis-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:12px}.p3432-analysis-grid>div{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:10px}.p3432-analysis-grid strong{display:block;font-size:1.2rem}.p3432-analysis-grid span{font-size:.8rem;color:var(--muted)}.p3432-list{max-height:63vh;overflow:auto}.p3432-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:start}.p3432-card input[type=checkbox]{margin-top:6px;transform:scale(1.15)}.p3432-card-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.p3432-card small{display:block;white-space:pre-wrap}.p3432-status{display:inline-flex;padding:3px 8px;border-radius:999px;font-size:.75rem;font-weight:800}.p3432-ready{background:#dbeafe;color:#1d4ed8}.p3432-running{background:#fef3c7;color:#92400e}.p3432-review{background:#ede9fe;color:#6d28d9}.p3432-valid{background:#dcfce7;color:#166534}.p3432-error{background:#fee2e2;color:#991b1b}.p3432-muted{background:#e2e8f0;color:#475569}.p3432-detail{max-height:64vh;overflow:auto}.p3432-detail h3{margin:18px 0 8px}.p3432-detail ul{margin:6px 0 10px;padding-left:20px}.p3432-summary{white-space:pre-wrap;border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:12px}.p3432-page-ref{border-left:3px solid #94a3b8;padding:7px 10px;margin:7px 0;background:#f8fafc}.p3432-consensus-card{border-left:4px solid #7c3aed}.p3432-progress{white-space:pre-wrap;max-height:240px;overflow:auto}.p3432-warning{background:#fff7ed;border:1px solid #fdba74;color:#9a3412;border-radius:10px;padding:10px}.p3432-actions-bottom{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.p3432-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e2e8f0;margin:2px;font-size:.75rem}.p3432-section{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0}.p3432-section>h3{margin-top:0}
@media(max-width:850px){.p3432-analysis-grid{grid-template-columns:1fr 1fr}.p3432-card{display:block}.p3432-card>input{float:left;margin-right:10px}.p3432-card-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:10px}.p3432-card-actions button{width:100%}.p3432-analysis-actions{display:grid;grid-template-columns:1fr 1fr}.p3432-analysis-actions button{width:100%}}

/* ===== Style consolidé 40 ===== */
.p3436-import-json{background:#0f766e!important;color:#fff!important;border-color:#0f766e!important}
.p3436-preview{max-height:58vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:8px;background:#f8fafc}
.p3436-preview-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;padding:10px;border-bottom:1px solid var(--line);background:#fff}
.p3436-preview-card:last-child{border-bottom:0}.p3436-preview-card input{margin-top:5px;transform:scale(1.15)}
.p3436-preview-card strong,.p3436-preview-card small{display:block}.p3436-preview-card small{color:var(--muted);margin-top:3px}
.p3436-import-report{white-space:pre-wrap;max-height:220px;overflow:auto;border:1px solid var(--line);border-radius:10px;padding:10px;background:#f8fafc}
.p3436-analysis-detail{max-height:68vh;overflow:auto}.p3436-analysis-detail section{border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0;background:#fff}
.p3436-analysis-detail h3{margin:0 0 8px}.p3436-analysis-detail h4{margin:12px 0 5px}.p3436-analysis-detail ul{margin:5px 0 8px;padding-left:20px}.p3436-analysis-detail .p3436-summary{white-space:pre-wrap;line-height:1.45}
.p3436-data-row{border-left:3px solid #0f766e;padding:7px 10px;margin:7px 0;background:#f0fdfa}.p3436-data-row small{display:block;color:var(--muted);margin-top:3px}
.p3436-notice{background:#fff7ed!important;border-color:#fdba74!important;color:#9a3412}.p3436-chip{display:inline-flex;padding:3px 7px;border-radius:999px;background:#e2e8f0;margin:2px;font-size:.75rem}
@media(max-width:850px){.p3436-preview-card{display:block}.p3436-preview-card input{float:left;margin-right:10px}.p3436-analysis-detail{max-height:64vh}}

/* ===== Style consolidé 41 ===== */
.p3438-hide-control{display:flex;align-items:flex-start;gap:8px;padding:9px 12px;border-top:1px solid var(--line);background:#f8fafc;color:#475569;font-size:.82rem;cursor:pointer;border-radius:0 0 var(--radius) var(--radius)}
.p3438-hide-control:hover{background:#fff7ed;color:#9a3412}.p3438-hide-control input{width:auto;margin:2px 0 0;transform:scale(1.12);flex:0 0 auto}.p3438-hide-control span{display:block;line-height:1.25}.p3438-hide-control small{display:block;margin-top:2px;color:#64748b}
.p3438-hidden-panel{border-left:4px solid #d97706}.p3438-hidden-count{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#ffedd5;color:#9a3412;font-weight:800;font-size:.8rem}.p3438-hidden-list{display:grid;gap:8px;max-height:58vh;overflow:auto;margin-top:10px}.p3438-hidden-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;border:1px solid var(--line);border-radius:11px;padding:10px;background:#fff}.p3438-hidden-row strong,.p3438-hidden-row span,.p3438-hidden-row small{display:block}.p3438-hidden-row span,.p3438-hidden-row small{color:var(--muted);margin-top:3px}.p3438-hidden-empty{padding:18px;text-align:center;color:var(--muted);font-style:italic}.p3438-quality-note{margin:10px 0;border-left:4px solid #0f766e;background:#f0fdfa;padding:10px 12px;border-radius:8px;color:#115e59}.p3438-hidden-reason{font-size:.76rem;color:#92400e!important}
@media(max-width:760px){.p3438-hide-control{min-height:46px;padding:10px 12px}.p3438-hidden-row{grid-template-columns:1fr}.p3438-hidden-row button{width:100%;min-height:44px}}

/* ===== Style consolidé 42 ===== */
/* VetCRM v3.5.0 — données commerciales liées au compte */
.p3439-owner-filter{display:flex;gap:8px;align-items:end;flex-wrap:wrap;margin:10px 0;padding:10px;border:1px solid #bfdbfe;border-radius:12px;background:#f8fbff}
.p3439-owner-filter .field{min-width:220px;flex:1 1 260px}.p3439-owner-filter p{margin:0;color:#64748b;font-size:.84rem;flex:2 1 320px}
.p3439-owner-badge{display:inline-flex;align-items:center;gap:5px;margin-top:5px;padding:3px 8px;border-radius:999px;background:#eef2ff;color:#3730a3;font-size:.76rem;font-weight:700}
.p3439-owner-badge.unassigned{background:#fff7ed;color:#9a3412}.p3439-owner-field{grid-column:1/-1}
.p3439-scope-panel{grid-column:1/-1;border:2px solid #bfdbfe;background:#f8fbff}
.p3439-scope-grid{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr));gap:9px;margin:12px 0}
.p3439-scope-grid>div{border:1px solid var(--line);border-radius:11px;background:#fff;padding:10px}.p3439-scope-grid strong{display:block;font-size:1.25rem}.p3439-scope-grid span{display:block;color:#64748b;font-size:.82rem;margin-top:2px}
.p3439-server-ok{color:#166534}.p3439-server-warn{color:#9a3412}.p3439-server-error{color:#991b1b}
@media(max-width:700px){.p3439-scope-grid{grid-template-columns:1fr 1fr}.p3439-owner-filter{align-items:stretch}.p3439-owner-filter .field{min-width:0}}

/* VetCRM v3.5.0 — marqueur de noyau consolidé */
html[data-vetcrm-version="v3.5.0"] .version{white-space:nowrap}


/* Inventaire parc démo — VetCRM v3.5.3 */
.demo-inventory-tools{display:grid;grid-template-columns:minmax(170px,.7fr) minmax(230px,1fr) minmax(250px,1.1fr);gap:10px;align-items:end;margin:10px 0 12px;padding:12px;border:1px solid #bfdbfe;border-radius:12px;background:#f8fbff}
.demo-inventory-date{min-width:0}.demo-check{display:flex;align-items:center;gap:9px;min-height:44px;padding:8px 10px;border:1px solid #d6dfeb;border-radius:10px;background:#fff;font-weight:700}.demo-check input{width:auto;flex:0 0 auto}.demo-inventory-actions{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.demo-inventory-actions button{background:#1d4ed8;color:#fff}.demo-valuation-total{grid-column:1/-1;font-weight:800;color:#1e3a8a}.demo-card-valuation{margin-top:3px;padding-top:6px;border-top:1px dashed #bfdbfe;color:#1e3a8a;font-weight:800}.demo-module td.num,.demo-module th.num{text-align:right}
@media(max-width:800px){.demo-inventory-tools{grid-template-columns:1fr 1fr}.demo-inventory-date{grid-column:1/-1}.demo-inventory-actions,.demo-valuation-total{grid-column:1/-1}}
@media(max-width:540px){.demo-inventory-tools{grid-template-columns:1fr}.demo-inventory-date,.demo-inventory-actions,.demo-valuation-total{grid-column:auto}.demo-inventory-actions button{width:100%}}
@media print{.demo-module .module-head p,.demo-stock-note-v22,.p3439-owner-filter,.demo-inventory-tools,#demoSummary{display:none!important}}


/* VetCRM v3.5.4 — écran dédié Codes AnyDesk. */
.anydesk-table td:first-child{min-width:220px}.anydesk-table td:first-child small,.anydesk-table td:nth-child(4) small{display:block;margin-top:4px;color:var(--muted)}
.anydesk-code{font-variant-numeric:tabular-nums;letter-spacing:.04em;white-space:nowrap}.anydesk-actions{flex-wrap:nowrap}.anydesk-duplicate{background:#fff7ed}.anydesk-selected{display:flex;flex-direction:column;gap:4px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:10px;padding:10px}.anydesk-selected span{color:var(--muted)}
.anydesk-clinic-matches{display:grid;gap:6px;max-height:280px;overflow:auto}.anydesk-clinic-matches button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:#f8fafc;border:1px solid var(--line)}.anydesk-clinic-matches small{color:var(--muted);font-weight:400;margin-top:3px}
@media(max-width:760px){.anydesk-table-wrap{border-radius:10px}.anydesk-table th,.anydesk-table td{padding:9px}.anydesk-actions{flex-wrap:wrap}.anydesk-table td:first-child{min-width:190px}}

/* VetCRM v3.5.6 — valorisation hybride du parc démo */
.v355-valuation-panel{border-left:4px solid #1d4ed8;margin:14px 0}.v355-valuation-panel .section-head{align-items:flex-start}.v355-valuation-panel .section-head p{margin:.25rem 0 0;color:#64748b;max-width:760px}.v355-kpis{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.v355-kpis span,.v355-mode-badge,.v355-admin-only{display:inline-flex;align-items:center;border-radius:999px;background:#eaf1fb;color:#1e3a8a;padding:4px 9px;font-size:.78rem;font-weight:700}.v355-kpis .warning,.v355-mode-badge.unresolved{background:#fff1d6;color:#9a3412}.v355-card-value{display:grid;gap:2px;margin-top:7px;padding:8px 10px;border-radius:10px;background:#eef6ff;border:1px solid #bfd7fa}.v355-card-value span,.v355-source{display:block;color:#475569;font-size:.76rem}.v355-card-value.unresolved{background:#fff8e8;border-color:#f6d28b}.v355-valuation-editor{margin:14px 0;padding:14px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.v355-valuation-editor h3{margin:0}.v355-auto-preview{display:grid;gap:4px;margin-top:10px;padding:11px;border-radius:10px;background:#eaf1fb;color:#0f1b34}.v355-auto-preview span,.v355-auto-preview small{color:#475569}.v355-demo-modal{max-width:820px}.v355-source{margin-top:3px}.v355-mode-badge{padding:2px 7px;margin-right:5px}.v355-valuation-panel .button-like{cursor:pointer}
@media(max-width:760px){.v355-valuation-panel .section-head{display:grid;gap:8px}.v355-valuation-panel .action-row{align-items:stretch}.v355-valuation-panel .action-row>*{width:100%;justify-content:center}.v355-demo-modal{max-height:calc(100dvh - 24px);overflow:auto}}

/* VetCRM v3.5.6 — suivi des primes par période et versement */
.prime-period-panel-v356{margin-bottom:14px}
.prime-period-grid-v356{grid-template-columns:repeat(3,minmax(170px,1fr));align-items:end}
.prime-metrics-v356{grid-template-columns:repeat(4,minmax(180px,1fr))}
.prime-metrics-v356 .metric small{display:block;margin-top:4px;color:#64748b;font-weight:500}
.prime-outstanding-v356{border-color:#f59e0b;background:#fffaf0}
.prime-status-v356{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-weight:800;white-space:nowrap}
.prime-status-v356.is-paid{background:#dcfce7;color:#166534}
.prime-status-v356.is-unpaid{background:#ffedd5;color:#9a3412}
.prime-missing-payment-v356{color:#b91c1c;font-weight:800}
.prime-payment-help-v356{margin-top:10px}
@media(max-width:900px){.prime-period-grid-v356,.prime-metrics-v356{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.prime-period-grid-v356,.prime-metrics-v356{grid-template-columns:1fr}.prime-module-v356 .table-wrap{overflow-x:auto}}


/* VetCRM v3.5.8 — primes, versements réels et régularisations */
.prime-module-v357{overflow-x:hidden}
.prime-period-grid-v357{grid-template-columns:repeat(3,minmax(0,1fr));align-items:end}
.prime-metrics-v357{grid-template-columns:repeat(4,minmax(0,1fr))}
.prime-metrics-v357 .metric{min-width:0;padding:13px}
.prime-metrics-v357 .metric strong{font-size:clamp(1.25rem,2.1vw,1.7rem);overflow-wrap:anywhere}
.prime-metrics-v357 .metric small{display:block;margin-top:4px;color:#64748b;font-weight:500}
.prime-list-v357{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.prime-card-v357{padding:14px!important;display:grid;gap:12px;min-width:0}
.prime-card-header-v357{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}
.prime-card-title-v357{display:flex;flex-direction:column;gap:4px;min-width:0}
.prime-card-title-v357 strong,.prime-card-title-v357 span,.prime-card-title-v357 small{overflow-wrap:anywhere;word-break:break-word}
.prime-card-title-v357 strong{font-size:1.02rem}
.prime-card-title-v357 span,.prime-card-title-v357 small{color:var(--muted)}
.prime-financial-grid-v357{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}
.prime-financial-grid-v357>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px;min-width:0}
.prime-financial-grid-v357 span{display:block;color:var(--muted);font-size:.76rem;margin-bottom:3px}
.prime-financial-grid-v357 strong{display:block;font-size:.93rem;overflow-wrap:anywhere}
.prime-financial-grid-v357 .prime-amount-v357{background:#eff6ff;border-color:#bfdbfe}
.prime-financial-grid-v357 .prime-amount-v357 strong{color:#1d4ed8}
.prime-payment-row-v357{display:grid;grid-template-columns:minmax(90px,.32fr) minmax(0,1fr);gap:10px;align-items:start;border-top:1px solid var(--line);padding-top:10px;min-width:0}
.prime-payment-row-v357>span{color:var(--muted);font-size:.82rem;font-weight:700}
.prime-payment-row-v357>strong{font-size:.9rem;overflow-wrap:anywhere;word-break:break-word}
.prime-edit-v357{width:100%}
.prime-empty-v357{grid-column:1/-1}
@media(min-width:1450px){.prime-list-v357{grid-template-columns:repeat(3,minmax(0,1fr))}.prime-financial-grid-v357{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:1100px){.prime-list-v357{grid-template-columns:1fr}.prime-financial-grid-v357{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:760px){
  .prime-period-grid-v357{grid-template-columns:1fr 1fr}
  .prime-period-grid-v357 .prime-scope-field-v357{grid-column:1/-1}
  .prime-metrics-v357{grid-template-columns:1fr 1fr;gap:8px}
  .prime-metrics-v357 .metric{padding:10px}
  .prime-metrics-v357 .metric strong{font-size:1.16rem}
  .prime-metrics-v357 .metric span{font-size:.82rem}
  .prime-metrics-v357 .metric small{font-size:.74rem}
  .prime-financial-grid-v357{grid-template-columns:repeat(3,minmax(0,1fr))}
  .prime-card-v357{padding:12px!important}
}
@media(max-width:430px){
  .prime-period-grid-v357{grid-template-columns:1fr 1fr;gap:7px}
  .prime-period-grid-v357 label{font-size:.8rem}
  .prime-period-grid-v357 input,.prime-period-grid-v357 select{padding:8px 7px;font-size:.9rem}
  .prime-metrics-v357{grid-template-columns:1fr 1fr}
  .prime-financial-grid-v357{grid-template-columns:1fr 1fr}
  .prime-financial-grid-v357 .prime-amount-v357{grid-column:1/-1}
  .prime-card-header-v357{align-items:flex-start}
  .prime-status-v356{font-size:.76rem;padding:4px 7px}
  .prime-payment-row-v357{grid-template-columns:1fr;gap:4px}
}


/* VetCRM v3.5.8 — montants réellement versés et régularisations */
.prime-status-v356.is-partial{background:#fef3c7;color:#92400e}
.prime-status-v356.is-overpaid{background:#fee2e2;color:#991b1b}
.prime-financial-grid-v358{grid-template-columns:repeat(4,minmax(0,1fr))}
.prime-financial-grid-v358 .prime-due-v358{background:#eff6ff;border-color:#bfdbfe}
.prime-financial-grid-v358 .prime-due-v358 strong{color:#1d4ed8}
.prime-financial-grid-v358 .prime-paid-v358{background:#f0fdf4;border-color:#bbf7d0}
.prime-financial-grid-v358 .prime-paid-v358 strong{color:#166534}
.prime-financial-grid-v358 .prime-regularization-v358{background:#fff7ed;border-color:#fed7aa;grid-column:span 2}
.prime-financial-grid-v358 .prime-regularization-v358 strong{color:#9a3412}
.prime-financial-grid-v358 .prime-regularization-v358.is-overpaid{background:#fef2f2;border-color:#fecaca}
.prime-financial-grid-v358 .prime-regularization-v358.is-overpaid strong{color:#991b1b}
.prime-paid-metric-v358{border-color:#86efac;background:#f0fdf4}
.prime-regularization-metric-v358{border-color:#fdba74;background:#fff7ed}
.prime-edit-summary-v358{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
.prime-edit-summary-v358>div{border:1px solid var(--line);border-radius:12px;padding:10px;min-width:0;background:#f8fafc}
.prime-edit-summary-v358 span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:4px}
.prime-edit-summary-v358 strong{display:block;overflow-wrap:anywhere}
@media(min-width:1450px){.prime-financial-grid-v358{grid-template-columns:repeat(2,minmax(0,1fr))}.prime-financial-grid-v358 .prime-regularization-v358{grid-column:1/-1}}
@media(max-width:900px){.prime-financial-grid-v358{grid-template-columns:repeat(3,minmax(0,1fr))}.prime-financial-grid-v358 .prime-regularization-v358{grid-column:span 2}.prime-edit-summary-v358{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.prime-financial-grid-v358{grid-template-columns:1fr 1fr}.prime-financial-grid-v358 .prime-regularization-v358{grid-column:1/-1}.prime-edit-summary-v358{grid-template-columns:1fr 1fr;gap:6px}.prime-edit-summary-v358>div{padding:8px}.prime-edit-summary-v358 strong{font-size:.95rem}}


/* VetCRM v3.5.11 — clôture, solde net et filtre des primes */
.prime-status-v356.is-not_due{background:#e2e8f0;color:#334155}
.prime-paid-quick-v3511{display:flex;flex-direction:column;gap:6px;align-self:end}
.prime-paid-quick-v3511 button{width:100%;min-height:44px}
.prime-paid-quick-v3511 small{color:#64748b;line-height:1.25}
@media(max-width:720px){.prime-paid-quick-v3511{grid-column:1/-1}}


/* VetCRM v3.5.11 — solde net, zéro en vert clair et cartes soldées */
.prime-net-metric-v3511{border-width:2px}
.prime-net-metric-v3511.is-positive{border-color:#f59e0b;background:#fffaf0}
.prime-net-metric-v3511.is-zero{border-color:#86efac;background:#ecfdf3;color:#166534}
.prime-net-metric-v3511.is-negative{border-color:#fca5a5;background:#fff1f2;color:#991b1b}
.prime-breakdown-metric-v3511{border-color:#bfdbfe;background:#eff6ff}
.prime-card-v3511.is-settled{border-color:#86efac!important;background:#f0fdf4!important}
.prime-status-v356.is-paid,.prime-status-v356.is-not_due{background:#dcfce7;color:#166534}
.prime-regularization-v358.is-zero{background:#dcfce7!important;color:#166534!important;border-color:#86efac!important}
@media(max-width:720px){
  .prime-net-metric-v3511 small,.prime-breakdown-metric-v3511 small{line-height:1.25}
}

/* VetCRM v3.5.13 — tournées validables, Agenda Google et clôture RDV */
.p3513-route-summary,.p3513-route-save{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 14px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc;margin:0 0 10px}.p3513-route-summary div:first-child{display:grid;gap:3px}.p3513-route-summary small,.p3513-route-save span{color:#64748b}.p3513-route-card{align-items:flex-start;transition:border-color .15s ease,background .15s ease}.p3513-route-card.p3513-decision-validated{border-color:#22c55e;background:#f0fdf4}.p3513-route-card.p3513-decision-rejected{border-color:#fca5a5;background:#fff7f7;opacity:.86}.p3513-route-card.p3513-decision-pending{border-color:#fbbf24;background:#fffbeb}.p3513-route-main{min-width:0;flex:1}.p3513-route-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.p3513-decision-chip,.p3513-status-chip{display:inline-flex;width:max-content;align-items:center;border-radius:999px;padding:3px 9px;font-size:.78rem;font-weight:750;background:#e2e8f0;color:#334155;margin-top:5px}.p3513-decision-validated .p3513-decision-chip,.p3513-status-completed .p3513-status-chip{background:#dcfce7;color:#166534}.p3513-decision-rejected .p3513-decision-chip,.p3513-status-cancelled .p3513-status-chip{background:#fee2e2;color:#991b1b}.p3513-decision-pending .p3513-decision-chip,.p3513-status-planned .p3513-status-chip{background:#fef3c7;color:#92400e}.p3513-agenda-card.p3513-status-cancelled{opacity:.72}.p3513-agenda-card.p3513-status-cancelled strong{text-decoration:line-through}.p3513-agenda-card.p3513-status-completed{border-color:#86efac}.p3513-google-modal,.p3513-outcome-modal{max-width:760px}.p3513-equipment-fields{margin-top:10px}.p3513-outcome-modal section[hidden]{display:none!important}.p3513-route-terminal{background:#f8fafc}.p3513-route-save{margin-top:12px;position:sticky;bottom:8px;z-index:5;box-shadow:0 8px 24px rgba(15,23,42,.10)}
