:root{--navy:#102844;--navy-2:#173b63;--blue:#1f6feb;--blue-soft:#eaf2ff;--green:#16825d;--green-soft:#e7f7f0;--orange:#d97706;--orange-soft:#fff4df;--red:#c63d4f;--red-soft:#fff0f2;--gray:#65758b;--line:#dbe4ef;--canvas:#f4f7fb;--white:#fff;--ink:#172437;--muted:#66758a;--shadow:0 12px 35px rgba(23,55,92,.09);--radius:16px;--sidebar:258px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-size:15px;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%}[hidden]{display:none!important}
.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(320px,1fr) minmax(440px,620px);background:linear-gradient(135deg,#102844,#1c4b7d)}.auth-brand{position:relative;overflow:hidden;padding:72px;display:flex;flex-direction:column;justify-content:space-between;color:#fff}.auth-brand:after{content:"";position:absolute;width:540px;height:540px;border:90px solid rgba(255,255,255,.06);border-radius:50%;right:-180px;bottom:-180px}.auth-mark{display:flex;align-items:center;gap:15px;font-size:22px;font-weight:800;letter-spacing:.04em}.brand-icon{width:48px;height:48px;border-radius:15px;background:linear-gradient(145deg,#2e8cff,#69b6ff);display:grid;place-items:center;color:white;font-weight:900;box-shadow:0 10px 24px #0a1f3855}.auth-copy{max-width:620px;position:relative;z-index:1}.auth-copy h1{font-size:clamp(38px,5vw,68px);line-height:1.04;margin:0 0 24px}.auth-copy p{font-size:19px;color:#d4e5f8;max-width:540px}.auth-meta{color:#b9cfe6}.auth-panel{background:#fff;display:grid;place-items:center;padding:42px}.auth-card{width:min(100%,430px)}.auth-card h2{font-size:30px;margin:0 0 8px}.auth-card>.subtitle{color:var(--muted);margin:0 0 30px}.auth-back{display:inline-flex;margin-bottom:25px;color:var(--blue);font-weight:700}
.app-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:linear-gradient(180deg,var(--navy),#0d2138);color:#dce9f6;z-index:40;padding:22px 15px;display:flex;flex-direction:column}.sidebar-brand{display:flex;align-items:center;gap:12px;padding:2px 8px 23px;border-bottom:1px solid rgba(255,255,255,.1);font-weight:800;font-size:18px}.sidebar-brand small{display:block;font-size:11px;font-weight:500;color:#94acc5;letter-spacing:.05em}.sidebar-nav{padding:18px 0;overflow-y:auto;display:grid;gap:4px}.nav-section{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#7994af;padding:18px 13px 7px}.nav-link{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:#bdcfe0;font-weight:600}.nav-link:hover,.nav-link.active{background:rgba(72,153,239,.17);color:#fff}.nav-icon{width:25px;text-align:center;font-size:17px}.sidebar-footer{margin-top:auto;padding-top:12px;border-top:1px solid rgba(255,255,255,.09)}.user-mini{padding:9px 10px}.user-mini strong{display:block;color:#fff}.user-mini small{color:#9cb1c6}.sidebar-close{display:none}
.main{margin-left:var(--sidebar);min-height:100vh}.topbar{height:76px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:20px;padding:0 30px;position:sticky;top:0;z-index:30}.menu-toggle{display:none;border:0;background:var(--canvas);width:42px;height:42px;border-radius:11px}.page-heading{min-width:max-content}.page-heading h1{font-size:20px;margin:0}.page-heading p{color:var(--muted);font-size:12px;margin:1px 0 0}.global-search{position:relative;margin-left:auto;width:min(440px,42vw)}.global-search input{width:100%;padding:11px 43px 11px 16px;border:1px solid var(--line);border-radius:12px;background:#f7f9fc}.search-shortcut{position:absolute;right:9px;top:8px;color:#8b98a8;background:#fff;border:1px solid var(--line);border-radius:6px;padding:2px 6px;font-size:11px}.global-results{position:absolute;left:0;right:0;top:49px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);max-height:390px;overflow:auto;padding:7px}.global-results a{display:grid;grid-template-columns:88px 1fr;gap:0 10px;padding:10px;border-radius:9px}.global-results a:hover{background:var(--canvas)}.global-results small{grid-column:2;color:var(--muted)}.search-kind{font-size:10px;text-transform:uppercase;color:var(--blue);font-weight:800}.search-empty{padding:20px;text-align:center;color:var(--muted)}.top-actions{display:flex;align-items:center;gap:9px}.icon-btn{border:1px solid var(--line);background:#fff;border-radius:11px;width:42px;height:42px;display:grid;place-items:center;position:relative}.count{position:absolute;right:-4px;top:-5px;background:var(--red);color:#fff;border-radius:99px;min-width:19px;height:19px;font-size:10px;display:grid;place-items:center;border:2px solid #fff}
.content{padding:28px 30px 50px;max-width:1700px;margin:auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:23px}.page-header h2{font-size:27px;line-height:1.2;margin:0 0 5px}.page-header p{color:var(--muted);margin:0}.page-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.btn{border:1px solid transparent;border-radius:10px;padding:10px 15px;display:inline-flex;gap:8px;align-items:center;justify-content:center;font-weight:700;line-height:1.2}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#155fcf}.btn-secondary{background:#fff;border-color:var(--line);color:var(--ink)}.btn-secondary:hover{background:#f6f8fb}.btn-danger{background:var(--red);color:#fff}.btn-success{background:var(--green);color:#fff}.btn-sm{padding:7px 10px;font-size:13px}.btn-block{width:100%}.link{color:var(--blue);font-weight:700}.text-danger{color:var(--red)}.text-success{color:var(--green)}.muted{color:var(--muted)}
.kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:16px;margin-bottom:22px}.kpi-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;box-shadow:0 5px 18px rgba(31,60,91,.04);display:flex;gap:14px;align-items:center}.kpi-icon{width:47px;height:47px;border-radius:14px;display:grid;place-items:center;font-size:22px;background:var(--blue-soft);color:var(--blue)}.kpi-card.green .kpi-icon{background:var(--green-soft);color:var(--green)}.kpi-card.orange .kpi-icon{background:var(--orange-soft);color:var(--orange)}.kpi-card.red .kpi-icon{background:var(--red-soft);color:var(--red)}.kpi-card small{display:block;color:var(--muted)}.kpi-card strong{display:block;font-size:24px;line-height:1.2;margin-top:3px}.dashboard-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 5px 18px rgba(31,60,91,.04);margin-bottom:18px}.card-header{padding:18px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:15px}.card-header h3{margin:0;font-size:17px}.card-body{padding:20px}.quick-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.quick-action{padding:14px;border:1px solid var(--line);border-radius:12px;display:flex;align-items:center;gap:10px;font-weight:700}.quick-action:hover{border-color:#9bc0ee;background:#f8fbff}.quick-action span{font-size:21px}.alert-list{display:grid;gap:10px}.alert-item{display:grid;grid-template-columns:10px 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f6}.alert-item:last-child{border:0}.alert-dot{width:9px;height:9px;border-radius:50%;background:var(--blue)}.alert-item.warning .alert-dot{background:var(--orange)}.alert-item.danger .alert-dot{background:var(--red)}.alert-item small{display:block;color:var(--muted)}
.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;white-space:nowrap}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:#77879a;font-size:10px;padding:12px 14px;background:#f8fafc;border-bottom:1px solid var(--line)}.data-table td{padding:13px 14px;border-bottom:1px solid #edf1f6;vertical-align:middle}.data-table tbody tr:hover{background:#fbfcfe}.table-actions{display:flex;gap:6px}.mobile-label{display:none}.table-toolbar{padding:14px 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.table-toolbar input,.table-toolbar select{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 11px}.table-toolbar input{min-width:270px}.table-toolbar .spacer{margin-left:auto}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border-radius:99px;font-size:11px;font-weight:800;background:#eef2f7;color:#59697d}.badge-success{background:var(--green-soft);color:var(--green)}.badge-warning{background:var(--orange-soft);color:#a55b04}.badge-danger{background:var(--red-soft);color:var(--red)}.badge-info{background:var(--blue-soft);color:var(--blue)}
.form-card{max-width:1100px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:grid;gap:7px}.field.full{grid-column:1/-1}.field label{font-weight:700;font-size:13px}.field .required{color:var(--red)}.field input,.field select,.field textarea{width:100%;border:1px solid #ccd8e5;border-radius:10px;padding:11px 12px;background:#fff;color:var(--ink);outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:#69a5ea;box-shadow:0 0 0 3px rgba(31,111,235,.1)}.field textarea{min-height:100px;resize:vertical}.field small{color:var(--muted)}.field-error{color:var(--red);font-size:12px}.form-section{grid-column:1/-1;font-size:16px;border-bottom:1px solid var(--line);padding:12px 0 7px;margin-top:4px}.form-footer{display:flex;justify-content:flex-end;gap:10px;padding-top:22px;margin-top:22px;border-top:1px solid var(--line)}.input-action{position:relative}.input-action input{padding-right:45px}.input-action button{position:absolute;right:6px;top:6px;border:0;background:transparent;width:34px;height:34px}.notice{border-radius:12px;padding:13px 15px;margin-bottom:18px;border:1px solid}.notice-success{background:var(--green-soft);border-color:#bde7d6;color:#096b4a}.notice-danger{background:var(--red-soft);border-color:#f2c5cc;color:#a62336}.notice-warning{background:var(--orange-soft);border-color:#f1d8a7;color:#975307}.notice-info{background:var(--blue-soft);border-color:#c8dcfb;color:#155fcf}
.detail-hero{background:linear-gradient(130deg,var(--navy),var(--navy-2));color:#fff;border-radius:20px;padding:25px;display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:18px}.detail-hero h2{margin:0 0 4px}.detail-hero p{margin:0;color:#bdd2e8}.detail-price{text-align:right}.detail-price strong{font-size:25px;display:block}.tabs{display:flex;gap:6px;overflow:auto;padding:7px;background:#edf2f7;border-radius:12px;margin-bottom:18px}.tab{border:0;background:transparent;border-radius:8px;padding:9px 14px;white-space:nowrap;font-weight:700;color:var(--muted)}.tab.active{background:#fff;color:var(--blue);box-shadow:0 2px 8px #14375f12}.description-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.description-item{background:#f8fafc;border-radius:10px;padding:12px}.description-item small{display:block;color:var(--muted);font-size:11px;text-transform:uppercase}.description-item strong{display:block;margin-top:3px}.empty-state{text-align:center;padding:42px 20px;color:var(--muted)}.empty-state .empty-icon{font-size:38px;display:block;margin-bottom:9px}.progress{height:8px;background:#e8eef5;border-radius:99px;overflow:hidden}.progress>span{display:block;height:100%;background:var(--blue);border-radius:inherit}.stat-row{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid #edf1f6}.stat-row:last-child{border:0}
.vehicle-thumb{width:118px;height:86px;object-fit:cover;border-radius:14px;border:2px solid rgba(255,255,255,.3)}
.notification-menu{position:relative}.notification-dropdown{position:absolute;right:0;top:50px;width:min(380px,90vw);background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:8px}.notification-dropdown a{display:block;padding:11px;border-radius:9px}.notification-dropdown a:hover{background:var(--canvas)}.notification-dropdown small{display:block;color:var(--muted)}
.report-filters{display:flex;gap:10px;flex-wrap:wrap}.report-filters input,.report-filters select{border:1px solid var(--line);border-radius:9px;padding:9px 11px}.money-positive{color:var(--green);font-weight:800}.money-negative{color:var(--red);font-weight:800}.whatsapp{background:#128c7e;color:#fff}.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}.code{font:13px ui-monospace,SFMono-Regular,Menlo,monospace;background:#101b2b;color:#d8e7f7;border-radius:11px;padding:14px;overflow:auto}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.print-sheet{background:#fff;color:#111;max-width:800px;margin:24px auto;padding:45px;box-shadow:var(--shadow)}.print-header{display:flex;justify-content:space-between;gap:20px;border-bottom:3px solid #102844;padding-bottom:18px}.print-company h1{margin:0;font-size:25px}.print-title{text-align:right}.print-title h2{margin:0}.print-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:26px 0}.print-table{width:100%;border-collapse:collapse}.print-table th,.print-table td{border:1px solid #ccc;padding:10px;text-align:left}.print-total{margin-left:auto;max-width:340px}.print-signatures{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:70px}.signature-line{border-top:1px solid #333;padding-top:7px;text-align:center}
.print-actions{max-width:800px;margin:20px auto}
@media(max-width:1150px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.description-list{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){.auth-page{grid-template-columns:1fr}.auth-brand{display:none}.auth-panel{min-height:100vh;padding:25px}.sidebar{transform:translateX(-100%);transition:transform .2s ease}.sidebar-open .sidebar{transform:translateX(0)}.sidebar-open:after{content:"";position:fixed;inset:0;background:#07121f99;z-index:35}.sidebar-close{display:block;margin-left:auto;background:transparent;border:0;color:#fff;font-size:24px}.main{margin-left:0}.menu-toggle{display:grid;place-items:center}.topbar{padding:0 16px}.page-heading{display:none}.global-search{width:auto;flex:1}.content{padding:22px 16px 45px}.form-grid,.form-grid.three,.split{grid-template-columns:1fr}.field.full{grid-column:auto}.top-actions .profile-label{display:none}.quick-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){body{font-size:14px}.topbar{gap:9px}.global-search input{padding-left:11px}.search-shortcut{display:none}.top-actions{gap:5px}.icon-btn{width:39px;height:39px}.content{padding:18px 12px 40px}.page-header{align-items:stretch;flex-direction:column}.page-actions{justify-content:flex-start}.page-actions .btn{flex:1}.page-header h2{font-size:23px}.kpi-grid{grid-template-columns:1fr 1fr;gap:9px}.kpi-card{padding:13px;gap:9px}.kpi-icon{width:39px;height:39px;font-size:18px}.kpi-card strong{font-size:19px}.quick-grid{grid-template-columns:1fr}.card-header,.card-body{padding:15px}.table-toolbar{align-items:stretch;flex-direction:column}.table-toolbar input{min-width:0;width:100%}.responsive-cards thead{display:none}.responsive-cards,.responsive-cards tbody,.responsive-cards tr,.responsive-cards td{display:block;width:100%}.responsive-cards tr{border-bottom:8px solid var(--canvas);padding:8px 12px}.responsive-cards td{border:0;padding:5px 0;white-space:normal;display:flex;justify-content:space-between;gap:15px}.responsive-cards td .mobile-label{display:inline;color:var(--muted);font-size:11px;text-transform:uppercase}.table-actions{justify-content:flex-end}.detail-hero{align-items:flex-start;flex-direction:column}.detail-price{text-align:left}.description-list{grid-template-columns:1fr}.print-sheet{margin:0;padding:20px}.print-grid,.print-signatures{grid-template-columns:1fr}.print-signatures{gap:45px}.global-results{position:fixed;left:10px;right:10px;top:69px;width:auto}}
@media print{body{background:#fff}.no-print,.sidebar,.topbar{display:none!important}.main{margin:0}.content{padding:0;max-width:none}.print-sheet{margin:0;max-width:none;box-shadow:none;padding:12mm}.card{box-shadow:none}.page-header{display:none}@page{size:A4;margin:8mm}}

/* Interface simplifiée */
.field.is-disabled{display:none}
.mobile-bottom-nav{display:none}.nav-link-primary{background:rgba(31,111,235,.28);color:#fff}.nav-group{margin-top:5px}.nav-group summary{list-style:none;display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:11px;color:#bdcfe0;font-weight:700;cursor:pointer}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:hover,.nav-group[open]>summary{background:rgba(255,255,255,.08);color:#fff}.nav-chevron{margin-left:auto;transition:transform .2s}.nav-group[open] .nav-chevron{transform:rotate(180deg)}.nav-group-links{display:grid;gap:2px;padding:5px 0 7px 36px}.nav-group-links .nav-link{font-size:13px;padding:7px 10px}.simple-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.simple-actions .quick-action{display:grid;grid-template-columns:auto 1fr;gap:1px 10px;align-items:center;padding:16px}.simple-actions .quick-action span{grid-row:1/3;font-size:25px}.simple-actions .quick-action strong{line-height:1.25}.simple-actions .quick-action small{color:var(--muted);font-weight:500}.simple-actions .quick-action.featured{background:var(--blue);border-color:var(--blue);color:#fff}.simple-actions .quick-action.featured small{color:#dceaff}.compact-kpis{margin-top:4px}.small-empty{padding:20px}.secondary-panel>summary{list-style:none;padding:16px 20px;font-weight:800;cursor:pointer}.secondary-panel>summary::-webkit-details-marker{display:none}.secondary-panel>summary:after{content:'＋';float:right;color:var(--blue)}.secondary-panel[open]>summary:after{content:'−'}.simple-form-title{display:flex;align-items:center;gap:12px;margin-bottom:20px}.simple-form-title>span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:900}.simple-form-title strong,.simple-form-title small{display:block}.simple-form-title small{color:var(--muted)}.section-divider{border-top:1px solid var(--line)}.advanced-fields{border-top:1px solid var(--line)}.advanced-fields>summary{list-style:none;padding:17px 20px;color:var(--blue);font-weight:800;cursor:pointer}.advanced-fields>summary::-webkit-details-marker{display:none}.advanced-fields>summary small{color:var(--muted);font-weight:600}.advanced-fields[open]>summary{background:#f8fbff;border-bottom:1px solid var(--line)}.check-row{display:flex!important;align-items:center;gap:9px}.check-row input{width:auto!important}.security-hint{display:block;color:var(--muted);margin:14px 0;padding:10px 12px;background:#f5f8fc;border-radius:9px}.table-actions{flex-wrap:wrap}.text-warning{color:var(--orange)}

@media(max-width:1150px){.simple-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:860px){body.app-body{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.sidebar{z-index:80}.sidebar-open{overflow:hidden}.sidebar-open:after{z-index:70}.content{padding-bottom:100px}.mobile-bottom-nav{position:fixed;z-index:60;left:0;right:0;bottom:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:end;background:#fff;border-top:1px solid var(--line);box-shadow:0 -8px 24px rgba(23,55,92,.1);padding:7px 5px calc(7px + env(safe-area-inset-bottom))}.mobile-bottom-nav a,.mobile-bottom-nav button{border:0;background:transparent;color:var(--muted);display:grid;justify-items:center;gap:2px;font-size:10px;font-weight:800;min-width:0;padding:4px 2px}.mobile-bottom-nav span{font-size:19px;line-height:1}.mobile-bottom-nav .active{color:var(--blue)}.mobile-bottom-nav .mobile-new{color:#fff;background:var(--blue);border-radius:12px;padding:7px 2px;margin:-10px 3px 0}.field input,.field select,.field textarea{font-size:16px;min-height:46px}.form-footer .btn{min-height:44px}.notification-dropdown{position:fixed;top:67px;left:10px;right:10px;width:auto}.quick-card{margin-bottom:14px}}
@media(max-width:520px){.simple-actions{grid-template-columns:1fr}.compact-kpis .kpi-card{min-width:0}.compact-kpis .kpi-card strong{font-size:17px}.dashboard-header .page-actions{display:none}.form-footer{display:grid;grid-template-columns:1fr 1.4fr}.form-footer .btn{width:100%}.advanced-fields>summary{padding:15px}.notice{padding:11px 12px}.auth-panel{padding:22px 18px}.auth-card h2{font-size:27px}}
@media print{.mobile-bottom-nav{display:none!important}}

/* ==========================================================
   Speedy Service V3 — interface professionnelle et légère
   ========================================================== */
:root{
  --navy:#0b2340;
  --navy-2:#11375d;
  --blue:#1769e0;
  --blue-strong:#0d55bd;
  --blue-soft:#edf5ff;
  --green:#087c5b;
  --green-soft:#e8f7f1;
  --orange:#b96205;
  --orange-soft:#fff4e3;
  --red:#b72f45;
  --red-soft:#fff0f2;
  --ink:#122033;
  --muted:#5f6f84;
  --line:#dce5ef;
  --line-strong:#c9d6e4;
  --canvas:#f3f6fa;
  --surface:#fff;
  --shadow-sm:0 3px 12px rgba(15,39,68,.055);
  --shadow:0 14px 38px rgba(15,39,68,.095);
  --radius-sm:11px;
  --radius:17px;
  --sidebar:272px;
}

body{font-family:ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font:inherit}
button:disabled,.btn[aria-busy="true"]{cursor:wait;opacity:.68}
a,button,summary,input,select,textarea{outline-offset:3px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(23,105,224,.35);outline-offset:2px}
.skip-link{position:fixed;z-index:200;left:16px;top:12px;padding:10px 14px;border-radius:10px;background:#fff;color:var(--navy);font-weight:800;box-shadow:var(--shadow);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.nav-icon,.btn-icon,.menu-toggle svg,.icon-btn svg,.mobile-bottom-nav svg,.search-icon,.metric-icon svg,.metric-arrow,.finance-icon svg,.section-note svg,.link-arrow svg,.secondary-panel summary svg,.alert-item>svg,.empty-icon svg,.activity-icon svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 auto}
.btn-icon{width:18px;height:18px}

/* Structure */
.sidebar{width:var(--sidebar);padding:18px 14px;background:linear-gradient(180deg,#0b2340 0%,#081a30 100%);box-shadow:12px 0 32px rgba(4,18,34,.08)}
.sidebar-brand{min-height:78px;padding:0 4px 17px;gap:8px}
.sidebar-brand>a{min-width:0;flex:1;display:flex;align-items:center;justify-content:flex-start;background:#fff;border-radius:14px;padding:7px 10px;box-shadow:0 8px 24px rgba(2,13,25,.18)}
.brand-logo{display:block;width:auto;height:47px;max-width:100%;object-fit:contain;object-position:left center}
.sidebar-nav{padding:14px 0 10px;gap:3px;scrollbar-width:thin;scrollbar-color:#38506a transparent}
.nav-section{padding:17px 12px 6px;color:#819ab5;font-size:10px;font-weight:800}
.nav-link{position:relative;min-height:43px;padding:10px 12px;border-radius:11px;color:#c5d4e4;font-weight:650;transition:background-color .16s ease,color .16s ease,transform .16s ease}
.nav-link .nav-icon{width:20px;height:20px}
.nav-link:hover,.nav-link.active{background:rgba(63,144,236,.16);color:#fff}
.nav-link.active:before{content:"";position:absolute;left:-5px;top:11px;bottom:11px;width:3px;border-radius:99px;background:#55a6ff}
.nav-link-primary{margin:6px 0 4px;background:linear-gradient(135deg,#1769e0,#2585ef);color:#fff;box-shadow:0 8px 20px rgba(23,105,224,.24)}
.nav-link-primary:hover{background:linear-gradient(135deg,#0f5fcf,#1877df)}
.nav-group summary{min-height:43px;padding:10px 12px;color:#c5d4e4;font-weight:650}
.nav-group summary>span{flex:1}
.nav-chevron{width:17px;height:17px;margin-left:auto;transition:transform .16s ease}
.nav-group-links{padding:5px 0 8px 31px;border-left:1px solid rgba(255,255,255,.09);margin-left:22px}
.nav-group-links .nav-link{min-height:35px;padding:7px 10px;font-size:13px}
.sidebar-footer{padding-top:13px}
.user-mini{display:flex;align-items:center;gap:10px;padding:7px 8px 12px}
.user-mini>span:last-child{min-width:0}
.user-mini strong,.user-mini small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-avatar{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;flex:0 0 auto;background:linear-gradient(145deg,#eaf4ff,#cfe7ff);color:#145aa7;font-size:12px;font-weight:900;letter-spacing:.03em}
.sidebar .profile-avatar{background:rgba(89,170,255,.18);color:#dff0ff;border:1px solid rgba(155,207,255,.22)}
.sidebar-footer form .nav-link{border:0;background:transparent;text-align:left}
.sidebar-scrim{display:none}

.main{margin-left:var(--sidebar)}
.topbar{height:78px;padding:0 28px;border-color:#e2e9f1;gap:18px;box-shadow:0 1px 0 rgba(14,38,66,.02)}
.page-heading{min-width:150px}
.page-heading h1{font-size:19px;line-height:1.2;letter-spacing:-.015em}
.page-heading p{font-size:11px;font-weight:650;letter-spacing:.025em}
.global-search{width:min(460px,42vw)}
.global-search input{height:44px;padding:10px 70px 10px 43px;border-color:var(--line);background:#f7f9fc;transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}
.global-search input:focus{background:#fff;border-color:#74a8e9;box-shadow:0 0 0 4px rgba(23,105,224,.09)}
.search-icon{position:absolute;left:14px;top:12px;width:19px;height:19px;color:#6e8095;pointer-events:none}
.search-shortcut{top:10px;right:10px;padding:2px 7px;border-color:#d7e0ea;color:#708095;background:#fff;font-size:10px;font-weight:750}
.global-results{top:51px;border-color:var(--line);padding:7px;box-shadow:0 20px 50px rgba(12,35,62,.16)}
.global-results a{grid-template-columns:76px minmax(0,1fr);padding:11px;border-radius:10px}
.global-results a:hover,.global-results a.is-active,.global-results a:focus{background:#f0f6fd;outline:none}
.global-results strong,.global-results small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.global-results .search-loading{padding:18px;text-align:center;color:var(--muted)}
.top-actions{gap:10px}
.icon-btn{width:43px;height:43px;border-color:var(--line);color:#43566c;transition:background-color .16s ease,border-color .16s ease,transform .16s ease}
.icon-btn::-webkit-details-marker{display:none}
.notification-menu>summary{list-style:none}
.notification-menu[open]>.icon-btn{background:var(--blue-soft);border-color:#bad5f7;color:var(--blue)}
.notification-dropdown{top:51px;width:min(400px,calc(100vw - 24px));padding:8px;border-color:var(--line);box-shadow:0 20px 50px rgba(12,35,62,.16)}
.notification-dropdown a{padding:12px 13px}
.notification-dropdown a strong{display:block;font-size:13px}
.notification-dropdown a small{margin-top:2px;line-height:1.35}
.profile-chip{display:flex;align-items:center;gap:9px;padding-left:2px}
.profile-chip .profile-label{min-width:0;max-width:150px}
.profile-chip strong,.profile-chip small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.profile-chip strong{font-size:12px}
.profile-chip small{font-size:10px;color:var(--muted)}
.content{max-width:1580px;padding:27px 30px 56px}

/* Éléments communs */
.card{border-color:var(--line);box-shadow:var(--shadow-sm)}
.card-header{padding:17px 19px}
.card-header h3{font-size:16px;letter-spacing:-.01em}
.card-header .eyebrow{margin-bottom:2px}
.btn{min-height:42px;border-radius:11px;padding:10px 15px;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.btn-primary{background:linear-gradient(135deg,var(--blue),#237de9);box-shadow:0 7px 18px rgba(23,105,224,.18)}
.btn-primary:hover{background:linear-gradient(135deg,var(--blue-strong),#176bd2)}
.btn-secondary{border-color:var(--line-strong)}
.badge{line-height:1.25;letter-spacing:.005em}
.badge-neutral{background:#f0f3f7;color:#58697c}
.badge-credit{background:#f1ecff;color:#6941c6}
.notice{box-shadow:0 3px 10px rgba(15,39,68,.025)}
.eyebrow{margin:0 0 4px;color:#64768b;font-size:10px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 1px 12px}
.section-heading h3{margin:0;font-size:18px;letter-spacing:-.015em}
.section-note{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:12px}
.section-note svg{width:15px;height:15px}
.link-arrow{display:inline-flex;align-items:center;gap:5px;font-size:12px}
.link-arrow svg{width:15px;height:15px;transition:transform .16s ease}
.link-arrow:hover svg{transform:translateX(2px)}
.empty-state strong,.empty-state small{display:block}
.empty-state small{margin-top:4px}
.empty-state .empty-icon{width:42px;height:42px;margin:0 auto 10px;border-radius:13px;display:grid;place-items:center;background:var(--blue-soft);color:var(--blue)}
.empty-state .empty-icon.success{background:var(--green-soft);color:var(--green)}
.empty-state .empty-icon svg{width:22px;height:22px}
.data-table td{font-variant-numeric:tabular-nums}
.currency-tag{display:inline-flex;margin-top:5px;padding:2px 6px;border-radius:5px;background:#eef2f7;color:#627287;font-size:9px;font-weight:850;letter-spacing:.08em}
.cell-stack{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.cell-stack small{color:var(--muted)}
.status-stack{display:flex;align-items:flex-start;gap:5px;flex-wrap:wrap}

/* En-tête et indicateurs du tableau de bord */
.dashboard-header{align-items:center;margin-bottom:25px}
.dashboard-header h2{font-size:29px;letter-spacing:-.025em;margin-bottom:5px}
.dashboard-header .page-actions{flex-wrap:nowrap}
.operations-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:27px}
.metric-card{min-width:0;min-height:126px;position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:13px;padding:17px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);overflow:hidden;transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease}
.metric-card:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:transparent}
.metric-card.metric-primary:after{background:linear-gradient(90deg,var(--blue),#5aa9ff)}
.metric-card.metric-danger:after{background:linear-gradient(90deg,var(--red),#ef7184)}
.metric-icon,.finance-icon,.activity-icon{width:43px;height:43px;border-radius:13px;display:grid;place-items:center;flex:0 0 auto;background:#eef4fb;color:#315d8d}
.metric-icon.green,.finance-icon.green,.activity-icon.green{background:var(--green-soft);color:var(--green)}
.metric-icon.red,.finance-icon.red,.activity-icon.red{background:var(--red-soft);color:var(--red)}
.metric-icon.blue,.finance-icon.blue{background:var(--blue-soft);color:var(--blue)}
.metric-icon svg{width:22px;height:22px}
.metric-copy{display:flex;flex-direction:column;min-width:0}
.metric-copy>span{color:#5d6e82;font-size:12px;font-weight:720}
.metric-copy>strong{margin:5px 0 3px;color:var(--ink);font-size:29px;line-height:1;font-weight:800;letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.metric-copy>small{overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
.metric-denominator{font-size:15px;color:#77869a;font-weight:700}
.metric-arrow{width:17px;height:17px;color:#94a2b2;transition:transform .16s ease}

/* Finances multi-devises */
.finance-section{margin-bottom:28px}
.finance-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.finance-card{min-width:0;padding:17px 18px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);transition:border-color .17s ease,box-shadow .17s ease,transform .17s ease}
.finance-card-head{display:flex;align-items:center;gap:10px;color:#506176;font-size:12px;font-weight:780}
.finance-card-head>.metric-arrow{margin-left:auto}
.finance-icon{width:36px;height:36px;border-radius:11px}
.finance-icon.orange{background:var(--orange-soft);color:var(--orange)}
.finance-icon svg{width:18px;height:18px}
.money-stack{display:grid;gap:9px;margin-top:14px}
.money-stack>span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding-top:8px;border-top:1px solid #edf1f5;min-width:0}
.money-stack strong{min-width:0;font-size:16px;line-height:1.25;letter-spacing:-.015em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.money-stack small{flex:0 0 auto;color:var(--muted);font-size:10px}
.finance-danger{border-color:#f0c3ca;background:linear-gradient(180deg,#fff,#fffafb)}

/* Corps du tableau de bord */
.dashboard-layout{display:grid;grid-template-columns:minmax(0,1.68fr) minmax(310px,.72fr);align-items:start;gap:17px}
.dashboard-layout>*{min-width:0}
.dashboard-contracts{overflow:hidden}
.contract-table{white-space:normal}
.contract-table th,.contract-table td{padding-left:17px;padding-right:17px}
.contract-table th{white-space:nowrap}
.contract-table tbody tr:last-child td{border-bottom:0}
.contract-number{color:var(--blue);font-size:12px;font-weight:850}
.financial-cell{gap:5px}
.financial-cell>strong{font-size:12px;font-variant-numeric:tabular-nums}
.financial-cell>strong small{font-size:9px;font-weight:650}
.financial-cell>.badge{font-size:9px}
.dashboard-side{min-width:0}
.alerts-card,.fleet-card{overflow:hidden}
.alert-list{gap:0}
.alert-item{grid-template-columns:9px minmax(0,1fr) 18px;padding:11px 0}
.alert-item>span:nth-child(2){min-width:0}
.alert-item strong,.alert-item small{overflow:hidden;text-overflow:ellipsis}
.alert-item small{line-height:1.35;margin-top:2px}
.alert-item>svg{width:16px;height:16px;color:#8797aa}
.fleet-total{display:flex;align-items:baseline;gap:8px;margin-bottom:13px}
.fleet-total strong{font-size:29px;line-height:1;font-variant-numeric:tabular-nums}
.fleet-total span{color:var(--muted);font-size:12px}
.fleet-bar{display:block;width:100%;height:10px;border-radius:99px;overflow:hidden;background:#e8edf3}
.fleet-segment{display:block;flex:0 0 var(--share);height:100%;min-width:0}
.fleet-segment.available,.fleet-legend i.available{background:#22a578}
.fleet-segment.rented,.fleet-legend i.rented{background:#2678de}
.fleet-segment.reserved,.fleet-legend i.reserved{background:#e1952f}
.fleet-segment.maintenance,.fleet-legend i.maintenance{background:#8657cf}
.fleet-segment.unavailable,.fleet-legend i.unavailable{background:#cc5362}
.fleet-bar rect.available{fill:#22a578}.fleet-bar rect.rented{fill:#2678de}.fleet-bar rect.reserved{fill:#e1952f}.fleet-bar rect.maintenance{fill:#8657cf}.fleet-bar rect.unavailable{fill:#cc5362}
.fleet-legend{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;margin-top:15px}
.fleet-legend>span{display:grid;grid-template-columns:8px minmax(0,1fr) auto;align-items:center;gap:6px;color:#5f7084;font-size:11px}
.fleet-legend i{width:7px;height:7px;border-radius:50%}
.fleet-legend strong{color:var(--ink);font-size:12px;font-variant-numeric:tabular-nums}
.secondary-panel>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px}
.secondary-panel>summary>span:first-child{display:flex;align-items:center;gap:8px}
.secondary-panel>summary:after{content:none}
.deadline-list{padding-top:10px;padding-bottom:10px}
.deadline-list>a{display:flex;justify-content:space-between;gap:15px;padding:8px 0;border-bottom:1px solid #edf1f5;font-size:12px}
.deadline-list>a:last-child{border-bottom:0}
.deadline-list>a:hover span{color:var(--blue)}
.deadline-list strong{font-variant-numeric:tabular-nums}
.dashboard-lower{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:0}
.dashboard-lower.single{grid-template-columns:1fr}
.dashboard-lower>*{min-width:0}
.activity-list{padding-top:7px;padding-bottom:7px}
.activity-row{display:grid;grid-template-columns:37px minmax(0,1fr) auto;align-items:center;gap:11px;padding:10px 1px;border-bottom:1px solid #edf1f5;border-radius:8px}
.activity-row:last-child{border-bottom:0}
a.activity-row:hover{background:#f8fafc}
.activity-icon{width:35px;height:35px;border-radius:10px}
.activity-icon svg{width:17px;height:17px}
.activity-copy{min-width:0}
.activity-copy strong,.activity-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.activity-copy strong{font-size:12px}
.activity-copy small{margin-top:2px;color:var(--muted);font-size:10px}
.activity-value{text-align:right;font-size:12px;font-weight:850;font-variant-numeric:tabular-nums}
.activity-value time,.activity-time{display:block;margin-top:2px;color:var(--muted);font-size:9px;font-weight:550;white-space:nowrap}
.activity-time{text-align:right}

/* Authentification */
.auth-page{grid-template-columns:minmax(390px,1.12fr) minmax(430px,.88fr);background:#0b2340}
.auth-brand{isolation:isolate;padding:clamp(38px,5vw,76px);background:radial-gradient(circle at 85% 88%,rgba(42,137,238,.23),transparent 35%),linear-gradient(145deg,#0b2340,#10385f)}
.auth-brand:before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(120deg,transparent 0 62%,rgba(255,255,255,.025) 62% 63%,transparent 63%)}
.auth-brand:after{z-index:-1;border-color:rgba(255,255,255,.045)}
.auth-logo{align-self:flex-start;display:inline-flex;align-items:center;min-height:70px;padding:8px 14px;background:#fff;border-radius:16px;box-shadow:0 14px 35px rgba(3,18,34,.22)}
.auth-logo img{display:block;width:auto;height:54px;max-width:260px;object-fit:contain}
.auth-kicker{display:block;margin-bottom:19px;color:#8bc6ff;font-size:11px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}
.auth-copy h1{max-width:680px;font-size:clamp(40px,5vw,68px);letter-spacing:-.045em}
.auth-copy p{font-size:17px;line-height:1.65}
.auth-meta{display:flex;justify-content:space-between;gap:20px;font-size:12px}
.auth-panel{padding:clamp(28px,5vw,60px);background:#fff}
.auth-card{width:min(100%,440px)}
.auth-card h2{font-size:31px;letter-spacing:-.025em}
.auth-card>form{display:grid;gap:18px}
.auth-card .form-footer{align-items:center;justify-content:space-between;margin-top:3px;padding-top:20px}
.auth-panel-logo{display:none;margin:0 0 30px}
.auth-panel-logo img{display:block;width:auto;height:52px;max-width:210px;object-fit:contain}
.auth-footnote{margin:30px 0 0;padding-top:20px;border-top:1px solid var(--line);color:#8491a1;font-size:10px;text-align:center}
.auth-card .security-hint{margin:0}
.input-action button{display:grid;place-items:center;color:#5e7085;border-radius:8px}
.password-eye{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* États et micro-interactions */
@media (hover:hover){
  .metric-card:hover,.finance-card.finance-link:hover{transform:translateY(-2px);border-color:#b8cee6;box-shadow:0 12px 28px rgba(15,39,68,.1)}
  .metric-card:hover .metric-arrow,.finance-link:hover .metric-arrow{transform:translateX(3px)}
  .btn:hover{transform:translateY(-1px)}
  .icon-btn:hover{background:#f5f8fc;border-color:#cbd8e6;transform:translateY(-1px)}
}
.btn:active,.metric-card:active,.finance-card.finance-link:active{transform:translateY(0)}

/* Tablettes et mobiles */
@media(max-width:1360px){
  .operations-grid,.finance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .metric-card{min-height:112px}
}
@media(max-width:1120px){
  .dashboard-layout{grid-template-columns:1fr}
  .dashboard-side{display:grid;grid-template-columns:1fr 1fr;gap:17px}
  .dashboard-side>.secondary-panel{grid-column:1/-1}
}
@media(max-width:860px){
  .sidebar-open:after{content:none!important}
  .sidebar-scrim{position:fixed;display:block;z-index:70;inset:0;border:0;background:rgba(4,16,29,.64);opacity:0;pointer-events:none;transition:opacity .18s ease}
  .sidebar-open .sidebar-scrim{opacity:1;pointer-events:auto}
  .sidebar{z-index:80;box-shadow:18px 0 45px rgba(3,15,29,.3)}
  .sidebar-close{width:38px;height:38px;flex:0 0 auto;border-radius:10px}
  .sidebar-brand>a{padding:6px 9px}
  .brand-logo{height:43px}
  .menu-toggle{color:#3f5268}
  .menu-toggle svg{width:21px;height:21px}
  .content{padding:23px 17px 104px}
  .dashboard-header{align-items:flex-start}
  .dashboard-side{grid-template-columns:1fr 1fr}
  .mobile-bottom-nav a,.mobile-bottom-nav button{min-height:48px}
  .mobile-bottom-nav svg{width:20px;height:20px}
  .mobile-bottom-nav span{font-size:10px}
}
@media(max-width:700px){
  .finance-grid{grid-template-columns:1fr}
  .dashboard-side,.dashboard-lower{grid-template-columns:1fr}
  .section-heading{align-items:flex-start;flex-direction:column;gap:5px}
  .dashboard-header .page-actions{width:100%}
  .dashboard-header .page-actions .btn{flex:1}
  .activity-value{max-width:135px;overflow-wrap:anywhere}
}
@media(max-width:600px){
  .topbar{height:70px}
  .global-search input{height:42px;padding-left:39px}
  .search-icon{left:12px;top:12px}
  .global-results{top:70px}
  .content{padding:19px 12px 100px}
  .dashboard-header{margin-bottom:21px}
  .dashboard-header h2{font-size:25px}
  .operations-grid{gap:10px;margin-bottom:23px}
  .metric-card{min-height:105px;padding:14px;gap:10px}
  .metric-icon{width:39px;height:39px}
  .metric-copy>strong{font-size:25px}
  .metric-arrow{display:none}
  .finance-card{padding:15px}
  .dashboard-contracts .card-header{align-items:flex-start}
  .contract-table tr{padding-top:10px;padding-bottom:10px}
  .contract-table td{align-items:flex-start}
  .contract-table td> :not(.mobile-label){text-align:right;align-items:flex-end}
  .fleet-legend{grid-template-columns:1fr}
  .activity-row{grid-template-columns:35px minmax(0,1fr)}
  .activity-value,.activity-time{grid-column:2;text-align:left;max-width:none}
  .activity-value time{display:inline;margin-left:5px}
}
@media(max-width:520px){
  .operations-grid{grid-template-columns:1fr}
  .dashboard-header .page-actions{display:none}
  .metric-card{min-height:96px}
  .auth-panel{padding:26px 20px}
  .auth-panel-logo{display:block}
  .auth-card .form-footer{display:flex;flex-direction:column;align-items:stretch;gap:13px}
  .auth-card .form-footer .btn{width:100%}
  .auth-card .form-footer .link{text-align:center;order:2}
  .auth-card .form-footer>:only-child{width:100%}
}
@media(max-width:380px){
  .content{padding-left:10px;padding-right:10px}
  .topbar{padding-left:10px;padding-right:10px}
  .profile-chip{display:none}
  .money-stack>span{align-items:flex-start;flex-direction:column;gap:2px}
}
@media(max-width:860px){
  .auth-brand{display:none}
  .auth-panel-logo{display:block}
}

/* ==========================================================
   Mobile V3.1 — utilisation terrain et zones tactiles
   ========================================================== */
@media(max-width:860px){
  a,button,summary{touch-action:manipulation}

  /* Respect des encoches et des zones systeme iOS/Android. */
  .sidebar{
    width:min(var(--sidebar),88vw);
    padding-top:calc(18px + env(safe-area-inset-top));
    padding-right:14px;
    padding-bottom:calc(18px + env(safe-area-inset-bottom));
    padding-left:calc(14px + env(safe-area-inset-left));
  }
  .topbar{
    height:calc(78px + env(safe-area-inset-top));
    padding-top:env(safe-area-inset-top);
    padding-right:calc(16px + env(safe-area-inset-right));
    padding-left:calc(16px + env(safe-area-inset-left));
  }
  .content{
    padding-right:calc(17px + env(safe-area-inset-right));
    padding-bottom:calc(104px + env(safe-area-inset-bottom));
    padding-left:calc(17px + env(safe-area-inset-left));
  }
  .mobile-bottom-nav{
    padding-right:calc(5px + env(safe-area-inset-right));
    padding-left:calc(5px + env(safe-area-inset-left));
  }
  .global-results,.notification-dropdown{top:calc(78px + env(safe-area-inset-top))}

  /* Cibles tactiles constantes, sans zoom automatique sur iPhone. */
  .menu-toggle,.icon-btn,.sidebar-close{min-width:44px;min-height:44px}
  .sidebar .nav-link,.sidebar .nav-group>summary{min-height:48px}
  .mobile-bottom-nav a,.mobile-bottom-nav button{min-height:52px}
  .btn,.tab{min-height:44px}
  .field input,.field select,.field textarea{min-height:48px;font-size:16px}
  .field input[type="file"]{max-width:100%;padding:6px;overflow:hidden}
  .field input[type="file"]::file-selector-button{min-height:36px;margin-right:8px;padding:7px 10px;border:0;border-radius:8px;background:var(--blue-soft);color:var(--blue);font-weight:750}
  .check-row{min-height:48px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#f8fbff}
  .check-row input[type="checkbox"],.check-row input[type="radio"]{width:22px!important;height:22px;min-height:22px;flex:0 0 22px;accent-color:var(--blue)}
  .field.is-disabled{display:none}
  .form-grid,.form-grid.three,.split{gap:14px}

  /* Les onglets restent accessibles sur une longue fiche. */
  .tabs{
    position:sticky;
    z-index:24;
    top:calc(78px + env(safe-area-inset-top));
    max-width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    overscroll-behavior-inline:contain;
    scroll-padding-inline:7px;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    box-shadow:0 7px 18px rgba(15,39,68,.08);
  }
  .tabs::-webkit-scrollbar{display:none}
  .tab{flex:0 0 auto;scroll-snap-align:start}

  /* Une ligne devient une vraie carte jusqu'au format tablette. */
  .responsive-cards{display:block;width:100%;border-collapse:separate;white-space:normal}
  .responsive-cards thead{display:none}
  .responsive-cards tbody{display:grid;width:100%;gap:10px;padding:10px}
  .responsive-cards tr{
    display:block;
    width:100%;
    padding:10px 13px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--surface);
    box-shadow:var(--shadow-sm);
  }
  .responsive-cards td{
    display:grid;
    width:100%;
    min-width:0;
    grid-template-columns:minmax(88px,34%) minmax(0,1fr);
    column-gap:12px;
    row-gap:2px;
    align-items:start;
    padding:7px 0;
    border:0;
    white-space:normal;
    text-align:right;
    overflow-wrap:anywhere;
  }
  .responsive-cards td+td{border-top:1px solid #edf1f5}
  .responsive-cards td>.mobile-label{
    display:block;
    grid-column:1;
    grid-row:1/span 12;
    align-self:start;
    min-width:0;
    color:var(--muted);
    font-size:10px;
    font-weight:800;
    line-height:1.35;
    letter-spacing:.045em;
    text-align:left;
    text-transform:uppercase;
  }
  .responsive-cards td>br{display:none}
  .responsive-cards td>:not(.mobile-label):not(br){max-width:100%;justify-self:end}
  .responsive-cards td:not(:has(>.mobile-label)){grid-template-columns:1fr;text-align:left}
  .responsive-cards td:only-child{display:block;text-align:center}
  .responsive-cards .cell-stack{align-items:flex-end;text-align:right}
  .responsive-cards .table-actions{grid-column:2;justify-self:stretch;justify-content:flex-end;min-width:0}
  .responsive-cards .table-actions .btn{min-height:44px}
  .table-actions form{display:flex;max-width:100%;gap:7px;align-items:stretch;justify-content:flex-end;flex-wrap:wrap}
  .table-actions form input:not([type="hidden"]){width:min(100%,180px);min-width:0;min-height:44px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:9px}

  /* Les valeurs longues ne forcent jamais un debordement horizontal. */
  .detail-hero,.detail-hero>div,.detail-price,.kpi-card>div,.stat-row>*{min-width:0;max-width:100%}
  .detail-hero p,.detail-price strong,.kpi-card strong,.description-item strong,.stat-row,.stat-row>*{overflow-wrap:anywhere}

  /* Confirmation destructive clairement isolee. */
  .advanced-fields>form[data-confirm]:has(.btn-danger){border-left:3px solid var(--red);background:#fffafb}
  .notice .page-actions form[data-confirm]:has(.btn-danger),.table-actions form[data-confirm]:has(.btn-danger){padding:9px;border:1px solid #efc3ca;border-radius:11px;background:#fffafb}
  form[data-confirm] label{display:grid;gap:7px;min-width:0}
  form[data-confirm] input:not([type="hidden"]){max-width:100%;min-height:44px;padding:9px 10px;border:1px solid var(--line-strong);border-radius:9px;background:#fff;color:var(--ink)}
}

@media(max-width:600px){
  .topbar{
    height:calc(70px + env(safe-area-inset-top));
    padding-right:calc(12px + env(safe-area-inset-right));
    padding-left:calc(12px + env(safe-area-inset-left));
  }
  .content{
    padding-right:calc(12px + env(safe-area-inset-right));
    padding-left:calc(12px + env(safe-area-inset-left));
  }
  .global-results,.notification-dropdown{top:calc(70px + env(safe-area-inset-top))}
  .page-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .page-actions>.btn,.page-actions>a,.page-actions>form{width:100%;min-width:0}
  .page-actions>form>.btn,.page-actions>form>button{width:100%;height:100%}
  .page-actions>:only-child{grid-column:1/-1}
  .responsive-cards tbody{padding:8px}
  .responsive-cards tr{padding:9px 11px}
  .form-footer{gap:9px}
}

@media(max-width:480px){
  .operations-grid,.kpi-grid,.compact-kpis{grid-template-columns:1fr}
  .kpi-card{min-width:0}
  .compact-kpis .kpi-card strong{font-size:19px}
  .page-actions{grid-template-columns:1fr}
  .page-actions>*{grid-column:1}
  .form-footer{display:flex;flex-direction:column;align-items:stretch}
  .form-footer .btn{width:100%}
  .detail-hero{padding:18px;border-radius:15px}
  .stat-row{align-items:flex-start;flex-direction:column;gap:3px}
  .responsive-cards td{grid-template-columns:minmax(82px,33%) minmax(0,1fr);column-gap:10px}
  .responsive-cards .table-actions{display:grid;grid-template-columns:1fr}
  .responsive-cards .table-actions>.btn,.responsive-cards .table-actions>form,.responsive-cards .table-actions>form>.btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

@media print{
  .sidebar-scrim,.mobile-bottom-nav,.skip-link{display:none!important}
}

.rental-live-summary{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  padding:11px;
  border:1px solid #c9ddf6;
  border-radius:13px;
  background:#f4f9ff;
}
.rental-live-summary>span{min-width:0;padding:8px 10px;border-radius:10px;background:#fff}
.rental-live-summary small,.rental-live-summary strong{display:block}
.rental-live-summary small{color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase}
.rental-live-summary strong{margin-top:3px;color:var(--navy);font-size:16px;overflow-wrap:anywhere}
.rental-live-summary>span:last-child strong{color:var(--red)}
.danger-zone{border-color:#efbbc4;background:#fffafb}
.danger-zone>.card-header{border-color:#f3ced4;background:#fff3f5}
.danger-zone>.card-header h3{color:var(--red)}
.danger-zone>.card-header small{display:block;margin-top:3px;color:#814553;line-height:1.4}
.confirmation-form{background:#fffafb}

/* ==========================================================
   Speedy Service V4.1 — couche mobile finale
   Priorite aux ecrans 360–600 px et aux usages tactiles.
   ========================================================== */
@media(max-width:860px){
  html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}
  body.app-body{padding-bottom:0}
  .main{width:100%;min-width:0;margin-left:0}
  .sidebar{
    width:min(320px,90vw);
    max-width:100%;
    transform:translateX(-101%);
  }
  .sidebar-open .sidebar{transform:translateX(0)}
  .sidebar-nav{flex:1 1 auto;min-height:0;overscroll-behavior:contain}
  .topbar{
    z-index:65;
    height:calc(72px + env(safe-area-inset-top));
    gap:8px;
    padding-top:env(safe-area-inset-top);
    padding-right:calc(14px + env(safe-area-inset-right));
    padding-left:calc(14px + env(safe-area-inset-left));
  }
  .menu-toggle{display:grid;place-items:center;flex:0 0 44px}
  .global-search{flex:1 1 auto;width:auto;min-width:0;margin-left:0}
  .global-search input{width:100%;min-width:0;height:44px;font-size:16px}
  .top-actions{flex:0 0 auto;gap:6px}
  .content{
    width:100%;
    max-width:none;
    padding-top:20px;
    padding-right:calc(16px + env(safe-area-inset-right));
    padding-bottom:calc(94px + env(safe-area-inset-bottom));
    padding-left:calc(16px + env(safe-area-inset-left));
  }
  .global-results,.notification-dropdown{
    max-height:390px;
    max-height:calc(100dvh - 150px - env(safe-area-inset-top) - env(safe-area-inset-bottom));
    overflow-y:auto;
    overscroll-behavior:contain;
  }
  .global-results{top:51px}
  .notification-dropdown{top:calc(72px + env(safe-area-inset-top))}
  .mobile-bottom-nav{
    grid-auto-flow:column;
    grid-auto-columns:minmax(0,1fr);
    align-items:end;
    background:rgba(255,255,255,.96);
    backdrop-filter:saturate(145%) blur(14px);
    transition:transform .18s ease,opacity .18s ease;
  }
  .mobile-bottom-nav a,.mobile-bottom-nav button{min-width:0;min-height:52px;padding:4px 2px}
  .mobile-bottom-nav span{max-width:100%;overflow:hidden;font-size:10px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
  .mobile-bottom-nav .mobile-new{border-radius:14px;box-shadow:0 7px 18px rgba(23,105,224,.28)}
  .keyboard-open .mobile-bottom-nav,.mobile-input-active .mobile-bottom-nav{opacity:0;pointer-events:none;transform:translateY(120%)}
  .keyboard-open .content,.mobile-input-active .content{padding-bottom:calc(22px + env(safe-area-inset-bottom))}
  .tabs{top:calc(72px + env(safe-area-inset-top));scroll-margin-top:calc(72px + env(safe-area-inset-top))}
  .form-card{width:100%;max-width:none;overflow:hidden}
  .form-section{margin-top:1px;padding-top:10px}
  .field{min-width:0;scroll-margin-top:calc(88px + env(safe-area-inset-top))}
  .simple-form-title{align-items:flex-start;margin-bottom:16px}
  .simple-form-title>span{flex:0 0 34px}
  .advanced-fields>summary{min-height:48px}
  .danger-zone{scroll-margin-top:calc(88px + env(safe-area-inset-top))}
  .card-header>.link,.page-header>.link,.page-header>div>.link{display:inline-flex;align-items:center;min-height:44px}
  .report-filters label{display:grid;min-width:0;gap:5px;font-weight:700}
  .table-wrap{width:100%;max-width:100%;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
  .responsive-cards tbody{gap:0;padding:9px}
  .responsive-cards tr{margin-bottom:9px;box-shadow:none}
  .responsive-cards tr:last-child{margin-bottom:0}
  .responsive-cards td{grid-template-columns:minmax(92px,35%) minmax(0,1fr)}
  .responsive-cards td>.mobile-label{grid-column:1;grid-row:1/span 20}
  .responsive-cards .table-actions{grid-column:2;width:100%;justify-self:stretch;justify-content:flex-end}
  .responsive-cards .table-actions form{max-width:100%}
  .responsive-cards .cell-stack{min-width:0}
  .responsive-cards .badge{white-space:normal;text-align:left}
  .permissions-scroll{overscroll-behavior-inline:contain}
  .permission-table{min-width:650px}
  .permission-table th:first-child,.permission-table td:first-child{
    position:sticky;
    z-index:2;
    left:0;
    min-width:220px;
    max-width:260px;
    white-space:normal;
    background:#fff;
    box-shadow:1px 0 0 var(--line);
  }
  .permission-table thead th:first-child{z-index:3;background:#f8fafc}
  .permission-table tbody>tr>th{background:#edf5ff}
  .permission-table th:not(:first-child),.permission-table td:not(:first-child){min-width:105px;text-align:center}
  .permission-toggle{display:grid;width:44px;height:44px;margin:auto;place-items:center;border-radius:10px}
  .permission-toggle:focus-within{background:var(--blue-soft)}
  .permission-table input[type="checkbox"]{width:22px;height:22px;accent-color:var(--blue)}
  .auth-page,.auth-panel{min-height:100svh}
  .auth-panel{
    place-items:start center;
    overflow-y:auto;
    padding-top:calc(24px + env(safe-area-inset-top));
    padding-right:calc(20px + env(safe-area-inset-right));
    padding-bottom:calc(24px + env(safe-area-inset-bottom));
    padding-left:calc(20px + env(safe-area-inset-left));
  }
  .auth-card{margin-block:auto}
  .auth-back,.auth-card .form-footer .link{min-height:44px;align-items:center}
  .input-action button{top:2px;right:2px;width:44px;height:44px}
  .auth-footnote{color:var(--muted);font-size:11px}
  .auth-card>.subtitle{overflow-wrap:anywhere}
}

@supports(min-height:100dvh){
  @media(max-width:860px){.auth-page,.auth-panel{min-height:100dvh}}
}

@media(max-width:700px){
  .page-header{align-items:stretch;flex-direction:column;gap:12px}
  .page-header>.page-actions,.dashboard-header .page-actions{
    display:flex;
    width:100%;
    min-width:0;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:8px;
    padding:1px 0 4px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .page-header>.page-actions::-webkit-scrollbar{display:none}
  .page-header>.page-actions>*,.dashboard-header .page-actions>*{flex:0 0 auto;width:auto;min-width:max-content;scroll-snap-align:start}
  .dashboard-header .page-actions>.btn,.dashboard-header .page-actions>form{flex:0 0 auto}
  .page-header>.page-actions>form>.btn,.dashboard-header .page-actions>form>.btn{width:auto;height:100%}
}

@media(max-width:600px){
  .topbar{
    height:calc(68px + env(safe-area-inset-top));
    padding-right:calc(10px + env(safe-area-inset-right));
    padding-left:calc(10px + env(safe-area-inset-left));
  }
  .profile-chip{display:none}
  .tabs,.global-results,.notification-dropdown{top:calc(68px + env(safe-area-inset-top))}
  .tabs{scroll-margin-top:calc(68px + env(safe-area-inset-top))}
  .content{
    padding-top:15px;
    padding-right:calc(11px + env(safe-area-inset-right));
    padding-bottom:calc(92px + env(safe-area-inset-bottom));
    padding-left:calc(11px + env(safe-area-inset-left));
  }
  .page-header{gap:12px;margin-bottom:17px}
  .page-header h2{font-size:22px}
  .page-header p{font-size:13px;line-height:1.4}
  .page-header>.page-actions,.dashboard-header .page-actions{
    display:flex;
    width:100%;
    min-width:0;
    flex-wrap:nowrap;
    justify-content:flex-start;
    gap:8px;
    padding:1px 0 4px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-snap-type:x proximity;
    scrollbar-width:none;
  }
  .page-header>.page-actions::-webkit-scrollbar{display:none}
  .page-header>.page-actions>*,.dashboard-header .page-actions>*{flex:0 0 auto;width:auto;min-width:max-content;scroll-snap-align:start}
  .page-header>.page-actions>form>.btn,.dashboard-header .page-actions>form>.btn{width:auto;height:100%}
  .page-header>form{width:100%}
  .page-header>form>.btn{width:100%}
  .operations-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-bottom:21px}
  .kpi-grid,.compact-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .simple-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .kpi-card{min-width:0;padding:12px;gap:8px}
  .kpi-icon{width:36px;height:36px;border-radius:11px}
  .kpi-card strong{font-size:17px;overflow-wrap:anywhere}
  .metric-card{min-height:112px;grid-template-columns:36px minmax(0,1fr);gap:8px;padding:12px}
  .metric-icon{width:36px;height:36px;border-radius:11px}
  .metric-icon svg{width:19px;height:19px}
  .metric-copy>span{min-height:30px;font-size:10px;line-height:1.35}
  .metric-copy>strong{margin:3px 0;font-size:24px}
  .metric-copy>small{grid-column:1/-1;font-size:9px;white-space:normal}
  .finance-section{margin-bottom:22px;overflow:hidden}
  .finance-grid{
    display:flex;
    gap:10px;
    margin-right:-11px;
    margin-left:-11px;
    padding:0 11px 8px;
    overflow-x:auto;
    overscroll-behavior-inline:contain;
    scroll-padding-inline:11px;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
  }
  .finance-grid::-webkit-scrollbar{display:none}
  .finance-card{flex:0 0 min(82vw,310px);padding:14px;scroll-snap-align:start}
  .money-stack{gap:6px;margin-top:10px}
  .money-stack>span{gap:6px;padding-top:7px}
  .money-stack strong{font-size:15px;overflow-wrap:normal;white-space:nowrap}
  .dashboard-side,.dashboard-lower{grid-template-columns:1fr;gap:12px}
  .section-heading{gap:4px;margin-bottom:9px}
  .section-heading h3{font-size:17px}
  .section-note{font-size:11px}
  .dashboard-contracts .responsive-cards tbody{padding:0 8px 8px}
  .dashboard-contracts .responsive-cards tr{background:#f9fbfd}
  .card{margin-bottom:12px;border-radius:14px}
  .card-header,.card-body{padding:14px}
  .card-header{align-items:flex-start;flex-wrap:wrap;gap:10px}
  .card-header h3{font-size:15px}
  .notice{margin-bottom:13px;font-size:13px;line-height:1.45}
  .table-toolbar{padding:11px;gap:8px}
  .table-toolbar input,.table-toolbar select,.report-filters input,.report-filters select{width:100%;min-width:0;min-height:46px;font-size:16px}
  .report-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
  .report-filters .btn{grid-column:1/-1;width:100%}
  .description-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .description-item{min-width:0;padding:10px}
  .description-item small{font-size:9px}
  .description-item strong{font-size:13px}
  .stat-row{align-items:center;flex-direction:row;gap:10px}
  .detail-hero{gap:11px;padding:17px;border-radius:15px}
  .detail-hero h2{font-size:22px}
  .detail-price strong{font-size:21px}
  .form-grid,.form-grid.three,.split{gap:12px}
  .field input,.field select,.field textarea{min-width:0;max-width:100%}
  .rental-live-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:7px}
  .rental-live-summary>span{padding:7px 6px}
  .rental-live-summary small{font-size:8px;line-height:1.25}
  .rental-live-summary strong{font-size:12px;line-height:1.3}
  .form-footer{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.35fr);gap:8px;margin-top:17px;padding-top:17px}
  .form-footer .btn{width:100%;min-width:0;white-space:normal}
  .form-footer>:only-child{grid-column:1/-1}
  .advanced-fields>summary{padding:14px}
  .print-actions{display:flex;max-width:100%;flex-wrap:nowrap;gap:8px;padding:0 2px 4px;overflow-x:auto;scrollbar-width:none}
  .print-actions::-webkit-scrollbar{display:none}
  .print-actions>*{flex:0 0 auto;min-width:max-content}
  .print-sheet{padding:17px}
  .print-header{align-items:flex-start;flex-direction:column}
  .print-title{text-align:left}
  .print-table{width:100%;table-layout:fixed}
  .print-table th,.print-table td{padding:7px;overflow-wrap:anywhere}
  .responsive-cards tbody{padding:7px}
  .responsive-cards tr{padding:8px 10px}
  .responsive-cards td{grid-template-columns:minmax(88px,35%) minmax(0,1fr);column-gap:9px;padding:7px 0}
  .responsive-cards .table-actions{display:flex;flex-wrap:wrap}
  .responsive-cards .table-actions>.btn,.responsive-cards .table-actions>form{flex:1 1 120px}
  .responsive-cards .table-actions>form>.btn{width:100%}
}

@media(max-width:400px){
  .topbar{gap:6px;padding-right:calc(8px + env(safe-area-inset-right));padding-left:calc(8px + env(safe-area-inset-left))}
  .search-shortcut{display:none}
  .global-search input{padding-right:9px}
  .content{padding-right:calc(9px + env(safe-area-inset-right));padding-left:calc(9px + env(safe-area-inset-left))}
  .form-footer{grid-template-columns:1fr}
  .detail-hero{padding:15px}
  .stat-row{align-items:flex-start;flex-direction:column;gap:4px}
  .responsive-cards td{grid-template-columns:minmax(82px,34%) minmax(0,1fr)}
  .auth-panel{padding-right:calc(15px + env(safe-area-inset-right));padding-left:calc(15px + env(safe-area-inset-left))}
}

@media(max-width:340px){
  .operations-grid,.kpi-grid,.compact-kpis,.simple-actions,.description-list,.rental-live-summary{grid-template-columns:1fr}
  .metric-card{min-height:92px}
  .stat-row{align-items:flex-start;flex-direction:column;gap:3px}
  .mobile-bottom-nav span{font-size:9px}
}

@media print{
  body.app-body{padding:0}
  .content{padding:0;max-width:none}
  .responsive-cards{display:table!important}
  .responsive-cards thead{display:table-header-group!important}
  .responsive-cards tbody{display:table-row-group!important;padding:0!important}
  .responsive-cards tr{display:table-row!important;border:0!important;box-shadow:none!important}
  .responsive-cards td{display:table-cell!important;padding:10px!important;border-bottom:1px solid #ddd!important;text-align:left!important}
  .responsive-cards .mobile-label{display:none!important}
}
