*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:#f4f7fb;color:#102027}a{color:var(--primary);text-decoration:none}code{background:#eef2f7;padding:3px 6px;border-radius:8px;white-space:normal;word-break:break-word}button,.button{background:var(--primary);color:#fff;border:0;border-radius:12px;padding:11px 16px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;gap:8px}.button.secondary{background:#102027}.mini{display:inline-block;border:1px solid #d8e0ea;border-radius:999px;padding:7px 10px;background:#fff;font-size:13px;color:#314155}.app-shell{min-height:100vh;display:grid;grid-template-columns:276px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;background:#0b1720;color:#fff;padding:18px 16px;display:flex;flex-direction:column;gap:18px;border-right:1px solid rgba(255,255,255,.08)}.sidebar a{color:#dbe7ef}.sidebar-brand{padding:6px 4px}.brand{display:flex;align-items:center;gap:10px;color:#102027}.sidebar .brand{color:#fff}.brand small{display:block;color:#6b7b8c;font-weight:650}.sidebar .brand small{color:#91a5b4}.brand-mark{width:42px;height:42px;background:var(--primary);color:#fff;border-radius:14px;display:grid;place-items:center;font-weight:900;flex:0 0 auto}.brand-logo{width:44px;height:44px;object-fit:contain;border-radius:12px;background:#fff;border:1px solid #e5eaf0}.hero-logo{width:64px;height:64px;object-fit:contain;border-radius:18px;background:#fff;border:1px solid #e5eaf0}.side-nav{display:flex;flex-direction:column;gap:16px;overflow:auto;padding-right:4px}.nav-section span{display:block;margin:0 0 7px 8px;color:#6f8798;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}.nav-section a{display:flex;align-items:center;padding:10px 12px;border-radius:12px;font-weight:800;color:#dbe7ef;margin-bottom:3px}.nav-section a:hover,.nav-section a.active{background:rgba(255,255,255,.09);color:#fff}.nav-section a.active{box-shadow:inset 3px 0 0 var(--primary)}.sidebar-footer{margin-top:auto}.sidebar-footer .mini{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.12);color:#fff}.main-area{min-width:0}.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid #e5eaf0;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 22px;box-shadow:0 2px 10px rgba(16,32,39,.04)}.public-top{justify-content:space-between}.topbar-title strong{display:block}.topbar-title small,.topbar-user small{display:block;color:#6b7b8c;font-weight:650}.topbar-user{text-align:right;font-weight:800}.nav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.nav a{padding:9px 11px;border-radius:10px;color:#405060;font-weight:700}.nav a:hover{background:#eff7f6;color:var(--primary)}.nav-toggle{display:none}.container{max-width:1260px;margin:0 auto;padding:28px 22px}.page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-head h1,.card h1{margin:0 0 4px}.page-head p{margin:0;color:#667789}.dashboard-hero{background:linear-gradient(135deg,#fff,rgba(255,255,255,.88));border:1px solid #e5eaf0;border-radius:24px;padding:22px;box-shadow:0 12px 32px rgba(16,32,39,.06);display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:20px}.hero-brand{display:flex;align-items:center;gap:16px}.hero-brand h1{margin:0;font-size:30px}.hero-brand p{margin:4px 0 0;color:#667789}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}.card,.login-card,.tracking,.widget{background:#fff;border:1px solid #e5eaf0;border-radius:22px;padding:22px;box-shadow:0 12px 32px rgba(16,32,39,.06);margin-bottom:20px}.login-card{max-width:440px;margin:50px auto}.login-card h1{margin:0}.demo{margin-top:16px;background:#f5f8fb;border-radius:14px;padding:14px;color:#566677;line-height:1.55}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:20px}.stats.executive .stat:first-child{grid-column:span 2}.stat{background:#fff;border:1px solid #e5eaf0;border-radius:18px;padding:17px;box-shadow:0 8px 22px rgba(16,32,39,.04)}.stat span{display:block;color:#6b7b8c;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.03em}.stat strong{display:block;font-size:24px;margin-top:6px}.finance-lock{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;border-radius:14px;padding:10px 12px;margin-top:-8px}label{display:block;font-weight:750;margin:0 0 14px}input,select,textarea{width:100%;border:1px solid #d6dee8;border-radius:12px;padding:11px 12px;margin-top:7px;font:inherit;background:#fff}input[type=color]{height:48px;padding:4px}input[type=checkbox]{width:auto}textarea{min-height:90px;resize:vertical}form.search,.tracking-form{display:flex;gap:10px;align-items:center;margin-bottom:18px}form.search input,.tracking-form input{margin:0}table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid #eef2f6;vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.03em;color:#708092;background:#f8fafc}.table-scroll{overflow:auto}.badge{display:inline-block;background:#eefaf7;color:#0f766e;border:1px solid #cfeee7;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:850}.badge.warn{background:#fff7ed;color:#c2410c;border-color:#fed7aa}.badge.ok{background:#eefaf7;color:#0f766e;border-color:#cfeee7}.badge.neutral{background:#eef2f7;color:#475569;border-color:#cbd5e1}.muted{color:#667789;font-size:13px;line-height:1.5}.alert{border-radius:14px;padding:12px 14px;margin-bottom:14px;background:#eefaf7;color:#095d54;border:1px solid #cceee7}.alert.error{background:#fff1f2;color:#9f1239;border-color:#fecdd3}.detail{display:grid;grid-template-columns:150px 1fr;gap:10px 16px}.detail dt{font-weight:850;color:#607080}.detail dd{margin:0}.qr{margin-top:16px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.qr img{width:150px;height:150px;border:1px solid #e5eaf0;border-radius:14px;padding:8px;background:#fff}.actions{display:flex;gap:8px;flex-wrap:wrap}.actions form{display:inline-flex;margin:0}.narrow{max-width:760px}.checklist{display:grid;gap:8px;margin-bottom:18px}.checklist label{display:flex;gap:10px;align-items:center;background:#f8fafc;border:1px solid #edf1f5;border-radius:12px;padding:10px;margin:0}.checklist input{width:auto;margin:0}.timeline{list-style:none;margin:0;padding:0}.timeline li{border-left:3px solid var(--primary);padding:0 0 14px 15px;margin-left:5px}.timeline span{display:block;color:#6b7b8c;font-size:13px}.tracking{max-width:760px;margin:30px auto}.tracking h1{text-align:center}.tracking-result{margin-top:20px;border-top:1px solid #e5eaf0;padding-top:18px}.widget{box-shadow:none;border-radius:18px}.widget-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px}.topbar+.container iframe{width:100%}.card hr{border:0;border-top:1px solid #e8eef5;margin:18px 0}.danger{background:#9f1239}.card table code{word-break:break-all}.search .mini{white-space:nowrap}.stats.compact{grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.print-note{font-size:12px;color:#667789}@media(max-width:1080px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;left:0;top:0;bottom:0;width:285px;transform:translateX(-105%);transition:.2s ease;box-shadow:18px 0 45px rgba(16,32,39,.2)}.nav-open .sidebar{transform:translateX(0)}.nav-toggle{display:inline-flex}.topbar-user{display:none}.container{padding:22px 14px}.stats{grid-template-columns:repeat(3,1fr)}.stats.executive .stat:first-child{grid-column:span 1}.grid.two{grid-template-columns:1fr}.dashboard-hero{align-items:flex-start;flex-direction:column}.page-head{align-items:flex-start;flex-direction:column}}@media(max-width:720px){.stats{grid-template-columns:repeat(2,1fr)}form.search,.tracking-form{flex-direction:column;align-items:stretch}table{font-size:14px}th,td{padding:10px 8px}.detail{grid-template-columns:1fr}.hero-actions{width:100%}.hero-actions .button{width:100%;justify-content:center}}@media(max-width:520px){.stats{grid-template-columns:1fr}.container{padding:18px 12px}.card,.login-card,.tracking{padding:17px;border-radius:18px}.stat strong{font-size:21px}.brand small{display:none}.topbar-title small{display:none}}
.subcard{border:1px solid #e5eaf0;background:#f8fafc;border-radius:18px;padding:18px;margin:18px 0}.subcard h2{margin-top:0}.form-hint{background:#eef6ff;border:1px solid #d7eaff;color:#37536b;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.45}.subcard .grid{margin-top:10px}

/* V0.8 — formulaire colis validé */
.parcel-form-card{max-width:1120px;margin-left:auto;margin-right:auto}.form-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}.form-title-row h1{font-size:34px;line-height:1.1}.form-notice{background:#eefaf3;border:1px solid #ccebd8;color:#08633d;border-radius:12px;padding:12px 14px;font-weight:700;margin:10px 0 22px}.form-topline{align-items:start;margin-bottom:14px}.optional{font-weight:650;color:#718096}.inline-select-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}.inline-select-action select{margin-top:7px}.add-inline{height:43px;margin-top:7px;border-color:var(--primary);color:var(--primary);font-weight:850;white-space:nowrap}.field-help{display:block;color:#687989;line-height:1.35;margin-top:7px;font-weight:600}.inline-create-panel{display:none;background:#f8fbff;border:1px solid #dbeafe;border-radius:18px;padding:16px;margin:8px 0 20px}.inline-create-panel .panel-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:4px}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.form-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e8eef5;padding-top:18px;margin-top:18px}.form-actions button{padding:12px 18px}@media(max-width:920px){.inline-select-action{grid-template-columns:1fr}.add-inline{width:100%;justify-content:center}.grid.three{grid-template-columns:1fr}.form-title-row h1{font-size:28px}}
.pricing-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:20px}.pricing-card{background:#fff;border:1px solid #e5eaf0;border-radius:22px;padding:20px;box-shadow:0 12px 32px rgba(16,32,39,.06)}.pricing-card.highlighted{border-color:var(--primary);box-shadow:0 18px 42px rgba(16,32,39,.1)}.pricing-kicker{display:inline-block;background:#eefaf7;color:var(--primary);border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.pricing-card h2{margin:14px 0 6px}.pricing-price{display:block;font-size:24px;margin-bottom:10px}.pricing-card ul{margin:12px 0 0;padding-left:18px;color:#334155;line-height:1.65}.manifest-filters{display:grid!important;grid-template-columns:2fr 2fr 1.3fr 1fr 1fr auto auto;align-items:end}.manifest-filters label{margin:0}.manifest-table th,.manifest-table td{white-space:nowrap}.manifest-table small{color:#667789}.signature-cell{min-width:150px;height:38px;background:linear-gradient(to bottom,transparent 65%,#d9e2ec 66%,transparent 68%)}@media(max-width:1180px){.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.manifest-filters{grid-template-columns:1fr 1fr!important}}@media(max-width:720px){.pricing-grid{grid-template-columns:1fr}.manifest-filters{grid-template-columns:1fr!important}}

/* V0.10.6 — Groupages lisibles sur mobile */
.groupages-table small{color:#667789;line-height:1.35}
@media(max-width:720px){
  .groupages-table table,.groupages-table thead,.groupages-table tbody,.groupages-table tr,.groupages-table th,.groupages-table td{display:block;width:100%}
  .groupages-table thead{display:none}
  .groupages-table tr{background:#fff;border:1px solid #e5eaf0;border-radius:18px;margin:0 0 14px;padding:12px;box-shadow:0 8px 22px rgba(16,32,39,.04)}
  .groupages-table td{border-bottom:0;padding:7px 4px}
  .groupages-table td[data-label]::before{content:attr(data-label) ' : ';display:block;color:#708092;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.04em;margin-bottom:2px}
  .groupages-table td:last-child{padding-top:10px}
  .groupages-table td:last-child .mini{width:100%;text-align:center}
}

/* V0.10.9 — groupages : boutons alignés + capacité conteneur */
.actions,.hero-actions,.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.actions .mini,.actions .button,.row-actions .mini{min-height:38px;display:inline-flex;align-items:center;justify-content:center;line-height:1;white-space:nowrap}
.card form .danger{background:#9f1239;color:#fff;border:0;border-radius:12px;padding:11px 16px;font-weight:850}
.groupages-table td[data-label="Volume"] small,.stat small{display:block;color:#667789;font-size:12px;font-weight:700;margin-top:4px;line-height:1.25}
.groupages-table .row-actions{justify-content:flex-start}
@media(max-width:720px){
  .actions,.row-actions{width:100%}
  .actions .mini,.actions .button,.row-actions .mini{flex:1 1 120px;text-align:center}
  .groupages-table .row-actions .mini{width:100%}
}

/* V0.10.20 — Formulaire colis plus lisible */
#client_results .mini,#recipient_results .mini{margin:4px 4px 0 0}.parcel-form-card select:required:invalid{color:#64748b}.parcel-form-card .field-help{max-width:560px}.parcel-form-card input[readonly]{background:#f8fafc;color:#0f172a}

/* PATCH 20 — KoliDesk Clean Logistics SaaS */
:root{
  --ink:#132630;--muted:#647587;--surface:#fff;--surface-soft:#f7f9fc;
  --line:#dfe6ee;--navy:#0b1f2a;--success:#08735a;--warning:#b45309;
  --danger:#b4233c;--shadow-sm:0 4px 16px rgba(15,35,45,.045);
  --shadow-md:0 12px 30px rgba(15,35,45,.065);--radius-sm:10px;
  --radius-md:16px;--radius-lg:20px
}
body{background:#f5f7fa;color:var(--ink);font-size:15px;line-height:1.5}
h1,h2,h3{color:var(--ink);letter-spacing:-.018em}h1{font-size:clamp(1.65rem,2.6vw,2.15rem)}h2{font-size:1.2rem}
a,button,.button,.mini,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,transform .16s ease}
button:hover,.button:hover{filter:brightness(.94);transform:translateY(-1px)}button:focus-visible,.button:focus-visible,.mini:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid color-mix(in srgb,var(--primary) 24%,transparent);outline-offset:2px}
button:disabled,.button:disabled{cursor:not-allowed;opacity:.55;transform:none}
.button.secondary{background:var(--navy)}.danger,.mini.danger,.card form .danger{background:var(--danger);color:#fff;border-color:var(--danger)}
.mini{border-radius:var(--radius-sm);padding:8px 11px;font-weight:750;line-height:1.15;box-shadow:0 1px 2px rgba(15,35,45,.03)}
.mini:hover,.mini.active{border-color:color-mix(in srgb,var(--primary) 42%,var(--line));background:color-mix(in srgb,var(--primary) 8%,#fff);color:var(--primary)}
.mini.active{box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--primary) 20%,transparent)}
.sidebar{width:auto;background:linear-gradient(180deg,#0a1d28 0%,#102b37 100%);padding:20px 16px;gap:20px}
.sidebar-brand{padding:7px 8px 13px;border-bottom:1px solid rgba(255,255,255,.09)}
.side-nav{gap:18px}.nav-section span{margin-left:12px;color:#86a0ae;letter-spacing:.11em}
.nav-section a{position:relative;padding:10px 12px;border-radius:10px;font-weight:700;color:#cbd9e1}
.nav-section a:hover{background:rgba(255,255,255,.07)}.nav-section a.active{background:rgba(255,255,255,.11);box-shadow:none}
.nav-section a.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:4px;background:var(--primary)}
.sidebar-footer{padding-top:12px;border-top:1px solid rgba(255,255,255,.09)}
.topbar{min-height:68px;padding:13px 26px;border-color:var(--line);box-shadow:0 1px 8px rgba(15,35,45,.035)}
.topbar-title strong{font-size:1rem}.topbar-user{padding-left:18px;border-left:1px solid var(--line)}
.container{max-width:1320px;padding:30px 28px 44px}.page-head{margin-bottom:22px}.page-head p{max-width:780px}
.dashboard-hero{border-color:var(--line);border-radius:var(--radius-lg);padding:24px 26px;box-shadow:var(--shadow-md);background:linear-gradient(135deg,#fff 55%,color-mix(in srgb,var(--primary) 8%,#fff))}
.card,.login-card,.tracking,.widget{min-width:0;border-color:var(--line);border-radius:var(--radius-md);padding:21px;box-shadow:var(--shadow-sm);margin-bottom:18px}
.card>h2:first-child{margin-top:0;padding-bottom:13px;border-bottom:1px solid #edf1f5}
.subcard{border-color:var(--line);background:var(--surface-soft);border-radius:var(--radius-md)}
.grid>*{min-width:0}.stats{gap:14px}.stat{position:relative;overflow:hidden;border-color:var(--line);border-radius:var(--radius-md);padding:17px 18px;box-shadow:var(--shadow-sm)}
.stat:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:color-mix(in srgb,var(--primary) 72%,#fff)}
.stat span{color:var(--muted);font-size:11px;letter-spacing:.065em}.stat strong{font-size:clamp(1.28rem,2vw,1.65rem);line-height:1.22;color:var(--ink)}
label{color:#314653;font-size:14px}input,select,textarea{border-color:#cfd9e3;border-radius:var(--radius-sm);padding:11px 12px;color:var(--ink)}
input:hover,select:hover,textarea:hover{border-color:#aebdca}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent);outline:0}
input::placeholder,textarea::placeholder{color:#8a99a8}.form-hint,.field-help{color:var(--muted)}
form.search{padding:12px;background:var(--surface-soft);border:1px solid var(--line);border-radius:var(--radius-md)}
.table-scroll{max-width:100%;border:1px solid var(--line);border-radius:var(--radius-md);background:#fff}.table-scroll table{min-width:720px}.card>table{display:block;max-width:100%;overflow-x:auto}
th,td{padding:13px 12px}th{position:sticky;top:0;z-index:1;background:#f3f6f9;color:#536676;font-size:11px;letter-spacing:.055em;border-bottom:1px solid var(--line)}
tbody tr{transition:background-color .14s ease}tbody tr:hover{background:#f8fafc}tbody tr:last-child td{border-bottom:0}td small{color:var(--muted);line-height:1.45}
.badge{padding:5px 9px;border-radius:999px;font-size:11px;line-height:1.1;letter-spacing:.015em;background:#eaf3f7;color:#31566a;border-color:#d5e5ec}
.badge.ok{background:#eaf8f3;color:var(--success);border-color:#bfe8d9}.badge.warn{background:#fff5e8;color:var(--warning);border-color:#f5d4a8}.badge.neutral{background:#f0f3f6;color:#526372;border-color:#d8e0e7}
.alert{border-radius:var(--radius-sm);padding:13px 15px;border-left-width:4px}.alert.warn{background:#fff7ed;color:#9a4b08;border-color:#f4c98e}.alert.error{color:var(--danger);border-color:#f2b7c1;background:#fff3f5}
.pricing-grid{gap:18px}.pricing-card{border-color:var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.pricing-card.highlighted{border-width:2px;box-shadow:var(--shadow-md)}
.pricing-card .button,.pricing-card button{justify-content:center;width:100%}.pricing-card form{margin-top:auto}.pricing-price{font-size:1.7rem;color:var(--ink)}
.actions{gap:7px}.actions form{align-items:center}.detail dt{color:#546877}.detail dd{color:var(--ink)}
.checklist label{background:var(--surface-soft);border-color:var(--line)}
@media(max-width:1080px){.topbar{padding:12px 16px}.container{padding:22px 16px 38px}.sidebar{width:288px}.page-head{gap:12px}}
@media(max-width:720px){
  body{font-size:14px}.topbar{min-height:60px}.container{padding:18px 12px 32px}.page-head{margin-bottom:16px}.page-head .actions{width:100%}
  .card,.login-card,.tracking,.widget{padding:16px;border-radius:14px}.dashboard-hero{padding:18px}.hero-brand{align-items:flex-start}.hero-brand h1{font-size:1.55rem}
  .stats{gap:10px}.stat{padding:14px}.stat strong{font-size:1.3rem}.table-scroll{margin-left:-4px;margin-right:-4px}
  th,td{padding:11px 9px}.actions .mini,.actions .button,.row-actions .mini{min-height:40px}.form-actions{align-items:stretch;flex-direction:column-reverse}.form-actions .mini,.form-actions button{width:100%;justify-content:center}
}

/* PATCH 21 — corrections visuelles ciblées après contrôle navigateur */
.stats.executive{grid-template-columns:repeat(auto-fit,minmax(185px,1fr))}.stats.executive .stat:first-child{grid-column:span 1}
form.search{flex-wrap:wrap}form.search>input:not([type="hidden"]){flex:1 1 170px;min-width:150px}form.search>label{flex:1 1 155px;min-width:145px;margin:0}form.search>button,form.search>.mini{flex:0 0 auto}
@media(max-width:1400px){.manifest-filters{grid-template-columns:repeat(4,minmax(150px,1fr))!important}}
@media(max-width:720px){
  .public-top{align-items:stretch;flex-direction:column;padding:10px 14px}.public-top .brand{align-self:flex-start}.public-top .nav{width:100%;flex-wrap:nowrap;overflow-x:auto;padding:4px 0 2px;scrollbar-width:thin}.public-top .nav a{flex:0 0 auto;padding:7px 9px}
  .stats.executive{grid-template-columns:repeat(2,minmax(0,1fr))}.manifest-filters{grid-template-columns:1fr!important}form.search>input:not([type="hidden"]),form.search>label,form.search>button,form.search>.mini{flex:1 1 100%;width:100%;min-width:0}
}
@media(max-width:520px){.stats.executive{grid-template-columns:1fr}}
.mobile-close{display:none}.mobile-overlay{display:none}@media(max-width:1080px){body{overflow-x:hidden}.mobile-close{display:inline-flex;background:#fff;color:#0b1720;border:1px solid rgba(255,255,255,.25);margin-bottom:8px}.nav-open .mobile-overlay{display:block;position:fixed;inset:0;z-index:35;background:rgba(2,6,23,.48)}.sidebar{max-width:88vw}.app-shell,.main-area{max-width:100vw;overflow-x:hidden}}

/* PATCH 32B — site public SaaS premium propre */
.app-public{background:radial-gradient(circle at 18% 0%,rgba(20,184,166,.18),transparent 32%),linear-gradient(180deg,#071925 0%,#0b2130 360px,#f4f8fb 361px);color:#dcebf0;min-height:100vh}.app-public .topbar.public-top{background:rgba(7,25,37,.88);border-color:rgba(148,163,184,.18);box-shadow:0 14px 42px rgba(0,0,0,.18);backdrop-filter:blur(16px)}.app-public .brand,.app-public .nav a{color:#ecfeff}.app-public .brand small{color:#91c7ca}.app-public .brand-mark{background:linear-gradient(135deg,#14b8a6,#22d3ee);color:#06202a}.app-public .brand-logo{background:#fff}.app-public .nav a:hover{background:rgba(20,184,166,.14);color:#a7fff3}.public-nav-cta{background:#14b8a6!important;color:#042029!important}.app-public .container{max-width:1180px}.premium-hero{border:1px solid rgba(45,212,191,.25)!important;background:linear-gradient(135deg,rgba(8,31,44,.94),rgba(8,47,73,.86))!important;color:#eaffff;box-shadow:0 24px 70px rgba(0,0,0,.28)!important}.app-public .hero-copy h1{color:#fff;max-width:880px}.app-public .hero-copy p{color:#c6dce4}.hero-panel{background:rgba(255,255,255,.08);border:1px solid rgba(148,163,184,.22);border-radius:24px;padding:24px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.hero-brand-card{margin-bottom:20px}.hero-panel .detail dt{color:#7dd3fc}.hero-panel .detail dd{color:#ecfeff}.app-public .card,.feature-card{background:rgba(255,255,255,.97);color:#132630;border-color:#d9e8ee;box-shadow:0 18px 44px rgba(7,25,37,.09)}.app-public .card h1,.app-public .card h2,.feature-card h2,.public-page-head h1{color:#092433}.app-public .muted,.app-public .page-head p{color:#5d7280}.app-public .button{background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff}.app-public .button.secondary{background:#0b1f2a;color:#fff}.public-login{border-color:rgba(20,184,166,.42);background:rgba(255,255,255,.08);color:#eaffff}.public-section{margin:20px 0}.module-grid,.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.module-grid article,.feature-card{border:1px solid #d9e8ee;border-radius:18px;padding:18px;background:linear-gradient(180deg,#fff,#f5fbfc);font-weight:850}.feature-card p{color:#5d7280}.cta-band{margin:24px 0;border:1px solid rgba(45,212,191,.25);background:linear-gradient(135deg,#081f2c,#0f3a4a);border-radius:26px;padding:30px;color:#dffcff;box-shadow:0 24px 62px rgba(7,25,37,.18)}.cta-band h2{color:#fff;margin-top:0}.cta-band p{color:#bfe6ea}.pricing-hero{background:linear-gradient(135deg,#fff,#ecfeff)!important}.module-badges{display:flex;gap:6px;flex-wrap:wrap}.public-auth{background:linear-gradient(180deg,#fff,#effbfb)!important}.login-brand{margin-bottom:18px}.auth-links{line-height:1.8}.public-footer{background:#071925;color:#b7cbd3;padding:28px;display:grid;gap:18px;border-top:1px solid rgba(148,163,184,.18)}.public-footer{grid-template-columns:1.3fr 2fr auto;align-items:center}.public-footer nav{display:flex;gap:14px;flex-wrap:wrap}.public-footer a{color:#dffcff}.public-footer small{color:#8fb2bd}@media(max-width:900px){.public-nav-toggle{display:inline-flex;color:#fff;background:#0f766e}.public-nav{display:none;position:absolute;left:12px;right:12px;top:66px;background:#082232;border:1px solid rgba(45,212,191,.24);border-radius:18px;padding:12px;box-shadow:0 20px 60px rgba(0,0,0,.3)}.public-nav-open .public-nav{display:grid}.public-nav a{padding:12px}.module-grid,.feature-grid{grid-template-columns:1fr}.public-footer{grid-template-columns:1fr}.app-public .public-hero{grid-template-columns:1fr!important}.app-public .hero-actions .button,.app-public .hero-actions .mini{width:100%;justify-content:center}.pricing-grid{grid-template-columns:1fr!important}}@media(min-width:901px){.public-nav-toggle{display:none!important}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.app-public .public-page-head h1{color:#fff}.app-public .public-page-head p{color:#c6dce4}.app-public .public-page-head .pricing-kicker{background:rgba(20,184,166,.16);color:#99f6e4}

/* PATCH 32C — refonte visuelle premium dark SaaS */
.app-public{--public-bg:#06131f;--public-bg-2:#0a2132;--public-card:rgba(9,30,45,.78);--public-card-2:rgba(11,42,58,.72);--public-line:rgba(94,234,212,.24);--public-line-soft:rgba(148,163,184,.18);--public-text:#effcff;--public-muted:#a9c4cf;--public-accent:#2dd4bf;--public-accent-2:#22d3ee;background:radial-gradient(circle at 12% 4%,rgba(34,211,238,.18),transparent 30%),radial-gradient(circle at 88% 8%,rgba(45,212,191,.16),transparent 28%),linear-gradient(180deg,#06131f 0%,#092035 48%,#071621 100%);color:var(--public-text);min-height:100vh;overflow-x:hidden}.app-public:before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:54px 54px;mask-image:linear-gradient(180deg,#000,transparent 72%)}.app-public .topbar.public-top{position:sticky;top:0;background:rgba(5,18,30,.78);border-bottom:1px solid var(--public-line-soft);box-shadow:0 18px 50px rgba(0,0,0,.28);backdrop-filter:blur(18px);z-index:50}.app-public .brand,.app-public .nav a{color:var(--public-text)}.app-public .brand small{color:#86b8c3}.app-public .brand-mark{background:linear-gradient(135deg,var(--public-accent),var(--public-accent-2));color:#03131c;box-shadow:0 0 26px rgba(45,212,191,.32)}.app-public .nav{gap:6px}.app-public .nav a{font-weight:800;border:1px solid transparent}.app-public .nav a:hover{background:rgba(45,212,191,.1);border-color:rgba(45,212,191,.2);color:#cffff8}.public-nav-cta,.app-public .button{background:linear-gradient(135deg,#35f0d0,#18b9a7)!important;color:#02131a!important;box-shadow:0 14px 34px rgba(45,212,191,.24);font-weight:900}.app-public .button.secondary{background:rgba(255,255,255,.08)!important;color:#eaffff!important;border:1px solid var(--public-line)}.app-public .container{max-width:1200px;padding-top:34px}.app-public h1,.app-public h2,.app-public h3{color:#fff}.app-public .muted,.app-public .page-head p{color:var(--public-muted)}.app-public .pricing-kicker{display:inline-flex;align-items:center;width:max-content;background:rgba(45,212,191,.12);color:#99f6e4;border:1px solid rgba(45,212,191,.28);box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}.app-public .public-hero{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:24px;align-items:center}.premium-hero{position:relative;overflow:hidden;border:1px solid var(--public-line)!important;border-radius:32px!important;background:linear-gradient(135deg,rgba(8,27,43,.9),rgba(7,46,61,.72))!important;padding:clamp(24px,4vw,46px)!important;box-shadow:0 28px 90px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.08)!important}.premium-hero:after{content:"";position:absolute;right:-110px;top:-120px;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.25),transparent 62%)}.app-public .hero-copy{position:relative;z-index:1}.app-public .hero-copy h1{font-size:clamp(2.05rem,4.6vw,3.45rem);line-height:1.02;letter-spacing:-.055em;margin:14px 0 16px;max-width:760px}.app-public .hero-copy p{font-size:1.08rem;line-height:1.75;color:#c3d9e1;max-width:720px}.hero-panel{position:relative;z-index:1;background:linear-gradient(180deg,rgba(10,38,55,.86),rgba(6,22,34,.88));border:1px solid var(--public-line);border-radius:28px;padding:24px;box-shadow:0 22px 70px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.08)}.mockup-top{display:flex;gap:7px;margin-bottom:18px}.mockup-top span{width:10px;height:10px;border-radius:999px;background:#2dd4bf;opacity:.85}.hero-panel .detail{grid-template-columns:110px 1fr}.hero-panel .detail dt{color:#67e8f9}.hero-panel .detail dd{color:#ecfeff}.mockup-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.mockup-metrics span,.benefit-list span{display:block;border:1px solid rgba(45,212,191,.22);border-radius:16px;background:rgba(255,255,255,.06);padding:12px;color:#bfeef0}.mockup-metrics strong{display:block;color:#fff}.benefit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.benefit-grid article,.app-public .card,.feature-card,.pricing-card,.contact-cards article{background:linear-gradient(180deg,var(--public-card),rgba(6,22,34,.7));border:1px solid var(--public-line-soft);border-radius:24px;color:#eaffff;box-shadow:0 18px 52px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.055)}.benefit-grid article{padding:20px}.benefit-grid span{color:#67e8f9;font-weight:950}.benefit-grid p,.feature-card p,.app-public .card p,.app-public .card li{color:#b9ced7}.dark-card{background:linear-gradient(180deg,rgba(9,31,46,.84),rgba(6,22,34,.76))!important;border-color:var(--public-line)!important}.app-public .card>h2:first-child{border-bottom-color:rgba(148,163,184,.16)}.module-grid,.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.module-grid article{background:rgba(45,212,191,.08);border:1px solid rgba(45,212,191,.2);border-radius:16px;padding:16px;color:#eaffff}.feature-card{padding:21px}.feature-card h2{margin:14px 0 8px}.cta-band{background:linear-gradient(135deg,rgba(13,58,76,.92),rgba(11,87,75,.72));border:1px solid var(--public-line);box-shadow:0 26px 76px rgba(0,0,0,.28);border-radius:30px}.pricing-grid{grid-template-columns:repeat(4,minmax(0,1fr));align-items:stretch}.pricing-card{padding:18px;min-height:0}.pricing-card.highlighted{border-color:rgba(45,212,191,.72);box-shadow:0 26px 80px rgba(45,212,191,.16),inset 0 1px 0 rgba(255,255,255,.08);transform:translateY(-6px)}.pricing-price{font-size:clamp(1.7rem,2.4vw,2.15rem);color:#fff}.pricing-card small,.pricing-card li{color:#b9ced7}.pricing-card ul{color:#b9ced7;line-height:1.45;margin:10px 0 12px}.pricing-card h3{font-size:.86rem;text-transform:uppercase;letter-spacing:.07em;color:#8ef5e7;margin:13px 0 6px}.module-badges{display:flex;gap:6px;flex-wrap:wrap}.app-public .badge.ok{background:rgba(45,212,191,.12);color:#99f6e4;border-color:rgba(45,212,191,.24)}.app-public .form-hint{background:rgba(34,211,238,.08);border-color:rgba(34,211,238,.2);color:#c8fbff}.compare-table{color:#dffcff}.app-public th{background:rgba(255,255,255,.06);color:#99f6e4;border-bottom-color:rgba(148,163,184,.18)}.app-public td{border-bottom-color:rgba(148,163,184,.14)}.app-public tbody tr:hover{background:rgba(255,255,255,.04)}.app-public details{border:1px solid rgba(45,212,191,.18);border-radius:18px;padding:16px;background:rgba(255,255,255,.045);margin:10px 0}.app-public summary{cursor:pointer;font-weight:900;color:#fff}.signup-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:20px;align-items:start}.auth-premium input,.auth-premium select,.auth-premium textarea,.contact-layout input,.contact-layout textarea{background:rgba(2,13,21,.72);border-color:rgba(148,163,184,.24);color:#fff}.auth-premium label,.contact-layout label{color:#e8fbff}.signup-card form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px}.signup-card form label:nth-last-of-type(-n+3),.signup-card form button{grid-column:1/-1}.step-list{counter-reset:step;display:grid;gap:12px;padding:0}.step-list li{list-style:none;padding:14px 14px 14px 48px;border:1px solid rgba(45,212,191,.18);border-radius:16px;background:rgba(255,255,255,.055);position:relative;color:#dffcff}.step-list li:before{counter-increment:step;content:counter(step);position:absolute;left:13px;top:12px;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,#2dd4bf,#22d3ee);color:#03131c;font-weight:950}.login-layout,.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) 440px;gap:24px;align-items:center;max-width:1080px;margin:24px auto}.login-card{max-width:none;margin:0}.login-story,.install-box{border:1px solid var(--public-line);border-radius:28px;background:linear-gradient(180deg,rgba(9,31,46,.76),rgba(6,22,34,.72));padding:28px;box-shadow:0 22px 70px rgba(0,0,0,.26)}.login-story h1{font-size:clamp(2rem,4vw,3rem);line-height:1.05}.benefit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}.install-box{padding:16px;margin-top:16px}.public-auth{background:linear-gradient(180deg,rgba(9,31,46,.88),rgba(6,22,34,.82))!important;border-color:var(--public-line)!important;color:#eaffff}.auth-links{color:#86b8c3}.contact-layout{align-items:start}.contact-cards{display:grid;gap:14px}.contact-cards article{padding:20px}.contact-cards span{color:#67e8f9;font-weight:900;text-transform:uppercase;font-size:12px;letter-spacing:.08em}.contact-cards strong{display:block;color:#fff;font-size:1.15rem;margin:7px 0}.public-footer{display:grid;grid-template-columns:1.6fr repeat(3,minmax(150px,1fr)) 1.1fr;gap:24px;align-items:start;background:#04101a;color:#a9c4cf;border-top:1px solid rgba(45,212,191,.18);padding:34px max(22px,calc((100vw - 1200px)/2));box-shadow:0 -18px 60px rgba(0,0,0,.26)}.public-footer nav{display:grid;gap:8px}.public-footer strong{color:#fff}.public-footer a{color:#c9fbf5}.public-footer p,.public-footer small{display:block;color:#86a7b3;line-height:1.55}.field-error{color:#fecdd3;font-size:.85rem;font-weight:800;margin-top:.25rem}.has-error input,.has-error select,.has-error textarea{border-color:#fb7185!important;background:rgba(127,29,29,.2)!important}@media(max-width:1100px){.pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.benefit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.public-footer{grid-template-columns:1fr 1fr}}@media(max-width:900px){.public-nav-toggle{display:inline-flex;color:#03131c;background:linear-gradient(135deg,#2dd4bf,#22d3ee)}.public-nav{display:none;position:absolute;left:12px;right:12px;top:66px;background:rgba(5,18,30,.96);border:1px solid var(--public-line);border-radius:20px;padding:12px;box-shadow:0 24px 70px rgba(0,0,0,.42)}.public-nav-open .public-nav{display:grid}.public-nav a{padding:12px}.app-public .public-hero,.signup-layout,.login-layout,.contact-layout{grid-template-columns:1fr}.module-grid,.feature-grid{grid-template-columns:1fr}.hero-panel{min-width:0}.signup-card form{grid-template-columns:1fr}.app-public .hero-actions .button,.app-public .hero-actions .mini{width:100%;justify-content:center}}@media(max-width:620px){.app-public .container{padding:20px 12px 32px}.premium-hero{border-radius:24px!important}.benefit-grid,.pricing-grid,.public-footer{grid-template-columns:1fr}.mockup-metrics,.benefit-list{grid-template-columns:1fr}.app-public .hero-copy h1{font-size:2rem}.public-footer{padding:28px 16px}.pricing-card.highlighted{transform:none}.app-public .topbar.public-top{align-items:center;flex-direction:row}.app-public .brand small{display:none}}

/* PATCH 32D — intégration design final site public premium */
.app-public{--orange:#ff7a1a;--deep:#020b13;--panel:#071827;--panel2:#0b2133;background:radial-gradient(circle at 50% 20%,rgba(34,211,238,.12),transparent 28%),radial-gradient(circle at 16% 42%,rgba(45,212,191,.12),transparent 24%),linear-gradient(180deg,#020b13 0%,#061522 44%,#03101a 100%)}
.app-public .container{max-width:1220px}.public-brand .brand-mark{border-radius:12px;transform:rotate(0deg)}.public-nav-cta{border-radius:10px!important;padding-inline:20px!important}.app-public .hero-copy h1 em,.section-title em,.pwa-band h2 em{color:var(--public-accent);font-style:normal}.hero-badges{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.hero-badges span{border:1px solid rgba(45,212,191,.24);background:rgba(45,212,191,.07);color:#dffcff;border-radius:999px;padding:8px 11px;font-weight:800;font-size:.88rem}.hero-dashboard{position:relative;z-index:1;display:grid;grid-template-columns:142px minmax(0,1fr);min-height:430px;border:8px solid #0d1720;border-bottom-width:18px;border-radius:26px;background:#05111d;box-shadow:0 28px 80px rgba(0,0,0,.48),0 0 0 1px rgba(255,255,255,.14);overflow:hidden}.dash-sidebar{background:#071522;border-right:1px solid rgba(45,212,191,.18);padding:18px 12px;display:grid;align-content:start;gap:9px}.dash-mini-brand{display:flex;align-items:center;gap:8px;color:#fff;margin-bottom:12px}.dash-mini-brand .brand-mark{width:26px;height:26px;border-radius:8px;font-size:.7rem}.dash-sidebar span{color:#8db2bf;border-radius:10px;padding:9px 10px;font-size:.78rem;font-weight:850}.dash-sidebar .active{background:rgba(45,212,191,.14);color:#7ff8e7}.dash-main{padding:18px;min-width:0}.dash-top{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:16px}.dash-top strong{color:#fff;font-size:1.15rem}.dash-top small{display:block;color:#8db2bf}.dash-search{min-width:210px;background:rgba(255,255,255,.055);border:1px solid rgba(148,163,184,.14);border-radius:9px;color:#638594;padding:9px 12px;font-size:.78rem}.dash-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dash-kpis article{background:linear-gradient(180deg,rgba(13,38,57,.96),rgba(7,26,41,.92));border:1px solid rgba(148,163,184,.16);border-radius:13px;padding:13px;min-width:0}.dash-kpis small{display:block;color:#9bb9c3;font-weight:800;font-size:.72rem}.dash-kpis strong{display:block;color:#fff;font-size:1.2rem;margin:7px 0;white-space:nowrap}.dash-kpis em{color:#2dd4bf;font-style:normal;font-weight:900;font-size:.78rem}.dash-kpis .orange,.dash-list .orange{color:var(--orange)}.dash-body{display:grid;grid-template-columns:1.15fr .85fr;gap:12px;margin-top:14px}.dash-chart,.dash-list{background:rgba(255,255,255,.045);border:1px solid rgba(148,163,184,.15);border-radius:14px;padding:14px;min-width:0}.dash-chart strong,.dash-list strong{color:#fff}.dash-chart svg{width:100%;height:auto;margin-top:12px}.dash-list>div{display:flex;justify-content:space-between;gap:10px}.dash-list a{color:#2dd4bf;font-size:.75rem;font-weight:900}.dash-list p{display:flex;align-items:center;justify-content:space-between;gap:8px;border-bottom:1px solid rgba(148,163,184,.1);margin:0;padding:10px 0;color:#b9ced7}.dash-list p:last-child{border-bottom:0}.dash-list b{background:rgba(45,212,191,.14);color:#8ff9ea;border-radius:7px;padding:5px 7px;font-size:.72rem;white-space:nowrap}.dash-list b.ok{background:rgba(34,197,94,.13);color:#86efac}.dash-list b.wait{background:rgba(148,163,184,.14);color:#cbd5e1}.module-ribbon{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;margin:24px 0;padding:18px;border:1px solid var(--public-line);border-radius:22px;background:rgba(9,30,45,.64);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.module-ribbon span{display:grid;place-items:center;text-align:center;color:#eaffff;font-weight:850;font-size:.84rem;gap:6px}.module-ribbon i{color:#67e8f9;font-style:normal;font-size:1.4rem}.section-title{text-align:center;margin:28px auto 18px;font-size:clamp(1.55rem,3vw,2.1rem)}.benefit-grid.six{grid-template-columns:repeat(6,minmax(0,1fr))}.benefit-grid.six article{text-align:center}.benefit-grid.six span{display:grid;place-items:center;margin:0 auto 10px;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle,rgba(45,212,191,.32),rgba(45,212,191,.08));border:1px solid rgba(45,212,191,.25);font-size:1.35rem}.workflow>div{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.workflow>div:before{content:"";position:absolute;left:16%;right:16%;top:31px;border-top:1px dashed rgba(45,212,191,.5)}.workflow article{position:relative;display:grid;grid-template-columns:auto 1fr;gap:8px 14px;align-items:start}.workflow b{grid-row:span 2;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;background:#0b2232;border:1px solid rgba(45,212,191,.32);color:#67e8f9;box-shadow:0 0 25px rgba(45,212,191,.12)}.workflow h3{margin:4px 0 0}.workflow p{margin:0;color:#b9ced7}.module-grid.visual article{padding:14px}.ui-preview{height:92px;border-radius:12px;background:linear-gradient(180deg,#0d2a3d,#071724);border:1px solid rgba(45,212,191,.18);margin-bottom:12px;overflow:hidden}.ui-preview.table{display:grid;gap:7px;padding:12px}.ui-preview.table span{height:12px;border-radius:6px;background:linear-gradient(90deg,rgba(45,212,191,.75),rgba(255,255,255,.08))}.ui-preview.bars{display:flex;align-items:end;gap:10px;padding:12px}.ui-preview.bars i{flex:1;border-radius:7px 7px 0 0;background:#2dd4bf}.ui-preview.bars .orange{background:var(--orange)}.ui-preview.line svg{width:100%;height:100%;padding:12px}.module-grid.visual a{color:#67e8f9;font-weight:900}.pricing-teaser .pricing-grid{margin-top:10px}.pricing-card.highlighted{border-color:var(--orange)!important;box-shadow:0 26px 80px rgba(255,122,26,.18),inset 0 1px 0 rgba(255,255,255,.08)!important}.pricing-card.highlighted .pricing-kicker{background:linear-gradient(135deg,var(--orange),#ffb020);border-color:rgba(255,122,26,.5);color:#190900}.pwa-band{display:grid;grid-template-columns:minmax(0,1fr) 180px 150px 220px;gap:22px;align-items:center;margin:28px 0;border:1px solid var(--public-line);border-radius:28px;background:linear-gradient(135deg,rgba(9,37,57,.88),rgba(7,68,83,.55));padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.28);overflow:hidden}.phone-mock{width:160px;height:300px;border:6px solid #111827;border-radius:30px;background:#071827;padding:22px 14px;color:#fff;box-shadow:0 18px 45px rgba(0,0,0,.38)}.phone-notch{width:58px;height:6px;background:#111827;border-radius:10px;margin:-10px auto 14px}.phone-mock span{display:block;color:#8db2bf;font-size:.78rem;margin:8px 0}.phone-kpi{border:1px solid rgba(45,212,191,.18);background:rgba(255,255,255,.055);border-radius:12px;padding:12px;margin:8px 0;color:#2dd4bf;font-weight:950}.phone-kpi.small{color:#fff}.phone-mock nav{display:flex;justify-content:space-around;margin-top:20px}.phone-mock i{width:14px;height:14px;border-radius:50%;background:#2dd4bf}.qr-mock{width:138px;height:138px;background:#eaffff;border-radius:12px;padding:12px;display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.qr-mock>*{background:#05111d}.qr-mock i{border:5px solid #05111d;background:transparent}.cargo-illu{height:170px;position:relative}.cargo-illu span{position:absolute;right:20px;bottom:24px;width:145px;height:95px;background:linear-gradient(135deg,#0e7490,#0891b2);border:1px solid rgba(45,212,191,.4);box-shadow:inset 12px 0 rgba(0,0,0,.12),inset 36px 0 rgba(255,255,255,.05)}.cargo-illu i{position:absolute;right:5px;bottom:42px;width:54px;height:54px;border-radius:50% 50% 50% 0;background:#2dd4bf;transform:rotate(-45deg)}.cargo-illu i:after{content:"";position:absolute;inset:16px;border-radius:50%;background:#075569}.public-footer{grid-template-columns:1.4fr repeat(4,minmax(130px,1fr))}.footer-bottom{grid-column:1/-1;border-top:1px solid rgba(148,163,184,.14);padding-top:12px;display:flex;gap:18px;flex-wrap:wrap}.feature-card:before{content:"";display:block;height:74px;border-radius:12px;background:linear-gradient(135deg,rgba(45,212,191,.16),rgba(255,122,26,.13)),repeating-linear-gradient(180deg,rgba(255,255,255,.12) 0 8px,transparent 8px 18px);border:1px solid rgba(45,212,191,.15);margin-bottom:14px}
@media(max-width:1180px){.hero-dashboard{grid-template-columns:116px 1fr}.dash-kpis{grid-template-columns:repeat(2,1fr)}.dash-body{grid-template-columns:1fr}.module-ribbon{grid-template-columns:repeat(4,1fr)}.benefit-grid.six{grid-template-columns:repeat(3,1fr)}.pwa-band{grid-template-columns:1fr 180px 150px}}
@media(max-width:900px){.hero-dashboard{min-height:auto}.dash-sidebar{display:none}.dash-search{display:none}.workflow>div,.pwa-band{grid-template-columns:1fr}.workflow>div:before{display:none}.module-ribbon{grid-template-columns:repeat(2,1fr)}.pwa-band .phone-mock,.pwa-band .qr-mock{justify-self:center}.cargo-illu{display:none}}
@media(max-width:620px){.hero-dashboard{border-width:5px;border-bottom-width:12px;border-radius:20px}.dash-main{padding:12px}.dash-kpis{grid-template-columns:1fr}.module-ribbon,.benefit-grid.six{grid-template-columns:1fr}.dash-kpis strong{font-size:1.05rem}.public-footer{grid-template-columns:1fr!important}.workflow article{grid-template-columns:1fr;text-align:center}.workflow b{margin:auto}.pwa-band{padding:18px}.phone-mock{transform:scale(.92)}}

/* PATCH 32E-BIS — emplacements logos KoliDesk (assets JPEG ajoutés hors commit) */
.brand-logo-wide{width:auto;min-width:44px;max-width:154px;padding:5px 8px;border-radius:14px}
.hero-logo-wide{width:auto;min-width:64px;max-width:210px;padding:8px 10px;border-radius:20px}
.brand-logo-mini{width:28px;height:28px;border-radius:9px;padding:2px}
.app-public .brand-logo-wide,.public-footer .brand-logo-wide{background:rgba(255,255,255,.96);border-color:rgba(45,212,191,.24)}
.dash-mini-brand .brand-logo-mini{background:#fff;border-color:rgba(45,212,191,.24);flex:0 0 auto}
@media(max-width:520px){.brand-logo-wide{max-width:118px}.hero-logo-wide{max-width:156px}}

/* PATCH 37B — vitrine tarifs publique */
.app-public .trial-banner{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:22px 0;padding:26px;border:1px solid rgba(45,212,191,.36);border-radius:28px;background:linear-gradient(135deg,rgba(45,212,191,.16),rgba(34,211,238,.08));box-shadow:0 24px 70px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.07)}
.app-public .trial-banner h2{margin:10px 0 8px;font-size:clamp(1.45rem,2.8vw,2.05rem)}
.app-public .trial-banner p{margin:0;color:#c9e6ec;max-width:680px;line-height:1.65}
.app-public .trial-banner .button{white-space:nowrap}
.app-public .commercial-pricing-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;align-items:stretch;margin:24px 0}
.app-public .commercial-pricing-grid .pricing-card{min-height:100%;padding:24px;justify-content:space-between;gap:22px}
.app-public .commercial-pricing-grid .pricing-card h2{margin:14px 0 8px;font-size:1.55rem}
.app-public .commercial-pricing-grid .pricing-card .button{margin-top:auto;align-self:stretch;text-align:center;justify-content:center}
.app-public .pricing-benefits{display:grid;gap:9px;margin:18px 0 0;padding-left:20px;line-height:1.45}
.app-public .comparison-card{margin-top:26px;overflow:hidden}
.app-public .comparison-card .table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.app-public .compare-table{min-width:760px;width:100%;border-collapse:collapse}
.app-public .compare-table th:first-child{min-width:250px;text-align:left}
.app-public .compare-table th,.app-public .compare-table td{padding:13px 14px;vertical-align:top}
@media(max-width:900px){.app-public .trial-banner{align-items:stretch;flex-direction:column}.app-public .trial-banner .button{white-space:normal;width:100%;justify-content:center}.app-public .commercial-pricing-grid{grid-template-columns:1fr!important}.app-public .compare-table{min-width:680px}}

/* PATCH 38 — refonte vitrine publique KoliDesk */
.app-public .public-brand{gap:12px;min-width:0}.app-public .public-brand span{display:flex;align-items:center}.app-public .public-brand small{display:none!important}.public-logo-fallback{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,#35f0d0,#22d3ee);color:#02131a;box-shadow:0 0 26px rgba(45,212,191,.32)}.app-public .brand-logo-wide{background:transparent!important;border:0!important;padding:0;box-shadow:none;max-height:44px;object-fit:contain}.feature-card:before{display:none!important}.feature-card{display:flex;flex-direction:column;gap:8px;min-height:230px}.feature-card .pricing-kicker{font-size:1.1rem;width:44px;height:44px;justify-content:center;border-radius:14px}.app-public .commercial-pricing-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;align-items:stretch;margin:24px 0}.app-public .commercial-pricing-grid .pricing-card{min-height:100%;padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:18px}.app-public .trial-pricing-card{border-color:rgba(34,211,238,.52);background:linear-gradient(180deg,rgba(8,47,73,.86),rgba(6,22,34,.76))}.app-public .trial-pricing-card .pricing-kicker{background:linear-gradient(135deg,#22d3ee,#35f0d0);color:#02131a;border:0}.app-public .pricing-price{display:block;font-size:clamp(2rem,3vw,2.7rem);line-height:1;margin:14px 0 8px}.app-public .pricing-card small{display:block;color:#9bc5cf}.app-public .pricing-card .button{margin-top:auto;align-self:stretch;text-align:center;justify-content:center}.app-public .pricing-benefits{display:grid;gap:9px;margin:18px 0 0;padding-left:20px;line-height:1.5}.app-public .comparison-card{margin-top:28px}.hotline-card{border-color:rgba(34,211,238,.46)!important;background:linear-gradient(180deg,rgba(8,47,73,.9),rgba(6,22,34,.78))!important}.public-footer .footer-brand p{max-width:360px}.contact-cards article p{line-height:1.6}@media(max-width:1100px){.app-public .commercial-pricing-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.app-public .public-top{align-items:center;flex-direction:row}.app-public .public-nav{overflow:visible}.app-public .commercial-pricing-grid{grid-template-columns:1fr!important}.feature-card{min-height:0}.app-public .public-brand strong{font-size:1.05rem}}@media(max-width:620px){.app-public .brand-logo-wide,.public-logo-fallback{width:38px;height:38px;max-width:110px}.app-public .pricing-price{font-size:2rem}.app-public .commercial-pricing-grid .pricing-card{padding:20px}.contact-cards{grid-template-columns:1fr}.public-footer nav{gap:10px}}

/* PATCH 38B — finition vitrine publique, contraste et responsive */
.app-public .public-top{gap:18px}.app-public .public-nav a[href="?r=faq"]{color:#bffbf4}.app-public .public-brand{flex-shrink:0}.app-public .brand-logo-wide{max-width:172px;max-height:48px}.public-logo-fallback{display:grid;place-items:center;font-weight:950;letter-spacing:.02em}.app-public .public-hero{grid-template-columns:minmax(0,.92fr) minmax(420px,1.08fr);gap:34px;align-items:center}.app-public .hero-copy p{max-width:670px}.app-public .hero-actions{align-items:center}.hero-dashboard{min-height:390px}.module-ribbon{grid-template-columns:repeat(10,minmax(0,1fr));gap:8px}.module-ribbon span{min-height:74px;border-radius:14px;background:rgba(255,255,255,.035);padding:8px}.feature-family-grid{display:grid;gap:22px}.feature-family{border:1px solid var(--public-line);border-radius:28px;background:linear-gradient(180deg,rgba(9,31,46,.76),rgba(6,22,34,.66));padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.22)}.feature-family>h2{margin:0 0 16px;color:#fff}.feature-grid.compact{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.premium-feature-card{min-height:0!important;padding:18px!important;background:rgba(255,255,255,.045);border:1px solid rgba(148,163,184,.16)}.premium-feature-card h3{margin:2px 0 0;color:#fff}.premium-feature-card p{color:#bdd7df;line-height:1.55;margin:0}.premium-feature-card strong{margin-top:auto;color:#8ff9ea;font-size:.86rem}.app-public .comparison-card{background:linear-gradient(180deg,rgba(5,19,31,.98),rgba(4,16,26,.96))!important;border-color:rgba(45,212,191,.28)!important;color:#eaffff}.app-public .comparison-card h2{color:#fff}.app-public .comparison-card .muted{color:#b8d6df}.app-public .compare-table{border-collapse:separate;border-spacing:0;color:#eaffff;background:#061522}.app-public .compare-table th{background:#0b2537!important;color:#9ff8ec!important;border-bottom:1px solid rgba(45,212,191,.24)!important}.app-public .compare-table td{color:#f3ffff;background:rgba(255,255,255,.025);border-bottom:1px solid rgba(148,163,184,.18)!important}.app-public .compare-table tbody th{color:#fff!important;font-size:.86rem;text-transform:none;letter-spacing:0;background:#092033!important}.app-public .compare-table tbody tr:nth-child(even) td,.app-public .compare-table tbody tr:nth-child(even) th{background:#071a2a!important}.app-public .compare-table tbody tr:hover td,.app-public .compare-table tbody tr:hover th{background:#0d2b40!important}.faq-page-card{max-width:920px;margin-inline:auto}.faq-link-band{margin-top:28px}.app-public .faq-block details{background:linear-gradient(180deg,rgba(12,40,58,.86),rgba(7,24,38,.82));border-color:rgba(45,212,191,.24)}.app-public .faq-block p{color:#c9e6ec;line-height:1.65}.hotline-card p{color:#d9f4f8}@media(max-width:1180px){.module-ribbon{grid-template-columns:repeat(5,1fr)}.feature-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.app-public .public-hero{grid-template-columns:1fr}.hero-dashboard{max-width:860px;width:100%;justify-self:center}}@media(max-width:720px){.app-public .brand-logo-wide{max-width:126px}.module-ribbon{grid-template-columns:repeat(2,1fr)}.feature-family{padding:16px;border-radius:22px}.feature-grid.compact{grid-template-columns:1fr}.app-public .compare-table{min-width:720px}.app-public .comparison-card .table-scroll{border:1px solid rgba(45,212,191,.18);border-radius:16px}.hero-dashboard{min-width:0}.dash-top{align-items:flex-start;flex-direction:column}.app-public .public-nav{max-height:calc(100vh - 86px);overflow:auto}.app-public .public-hero{gap:20px}.app-public .hero-copy h1{font-size:clamp(2rem,11vw,2.55rem)}}

/* PATCH 39 — refonte vitrine publique SaaS premium */
.app-public{overflow-x:hidden}.app-public .public-top{position:sticky;top:0;z-index:50;background:rgba(2,11,19,.88);border-bottom:1px solid rgba(45,212,191,.18);backdrop-filter:blur(18px)}.app-public .public-nav{gap:6px}.app-public .public-nav a{color:#d7f7f5;font-weight:850}.app-public .public-nav a:hover{background:rgba(45,212,191,.12);color:#fff}.app-public .public-nav a[href="?r=login"]{border:1px solid rgba(148,163,184,.24);background:rgba(255,255,255,.04)}.app-public .public-nav-cta{background:linear-gradient(135deg,#2dd4bf,#22d3ee)!important;color:#02131a!important;box-shadow:0 14px 34px rgba(34,211,238,.22)}.audience-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.audience-grid article{min-height:118px;display:grid;place-items:center;text-align:center;border:1px solid rgba(45,212,191,.22);border-radius:22px;background:linear-gradient(180deg,rgba(12,40,58,.78),rgba(7,24,38,.72));color:#f2ffff;font-weight:950;padding:18px;box-shadow:0 18px 50px rgba(0,0,0,.22)}.workflow>div{grid-template-columns:repeat(4,1fr)}.workflow>div:before{left:12%;right:12%}.center-actions{display:flex;justify-content:center;margin-top:18px}.support-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid rgba(45,212,191,.26);border-radius:28px;background:linear-gradient(135deg,rgba(9,37,57,.9),rgba(7,68,83,.48));padding:26px;box-shadow:0 24px 70px rgba(0,0,0,.25)}.support-strip h2{margin:8px 0;color:#fff}.support-strip p{margin:0;color:#c9e6ec;line-height:1.6}.app-public .benefit-grid.six{grid-template-columns:repeat(5,minmax(0,1fr))}.app-public .hero-dashboard{max-width:100%;overflow:hidden}.app-public .public-footer{background:#020b13;border-top:1px solid rgba(45,212,191,.18)}
@media(max-width:1180px){.audience-grid,.app-public .benefit-grid.six{grid-template-columns:repeat(2,minmax(0,1fr))}.workflow>div{grid-template-columns:repeat(2,1fr)}.workflow>div:before{display:none}}
@media(max-width:900px){.app-public .public-nav{left:12px;right:12px;top:72px}.support-strip{align-items:stretch;flex-direction:column}.support-strip .button{justify-content:center}.app-public .public-nav a[href="?r=login"],.app-public .public-nav-cta{justify-content:center;text-align:center}}
@media(max-width:620px){.audience-grid,.app-public .benefit-grid.six,.workflow>div{grid-template-columns:1fr}.audience-grid article{min-height:84px}.support-strip{padding:20px;border-radius:22px}.app-public .public-top{padding-inline:12px}.app-public .public-nav-toggle{padding:10px 12px}.app-public .hero-dashboard{width:100%}.center-actions .button{width:100%;justify-content:center}}

/* PATCH 39B — logo officiel + refonte réelle vitrine SaaS premium */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}
.public-logo-img {
  display: block;
  height: 42px;
  width: auto;
  max-width: 180px;
  object-fit: contain;
}
.public-logo-fallback {
  display: grid;
  place-items: center;
}
.app-public {
  background: radial-gradient(circle at 12% 0%, rgba(34, 211, 238, .18), transparent 34%), radial-gradient(circle at 88% 8%, rgba(255, 176, 32, .12), transparent 30%), #020b13;
  color: #eaffff;
}
.app-public .container { max-width: 1240px; }
.public-header, .app-public .public-top {
  min-height: 74px;
  padding: 14px clamp(14px, 3vw, 34px);
}
.public-nav, .app-public .public-nav { align-items: center; }
.public-hero, .app-public .public-hero {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(480px, 1.1fr);
  gap: clamp(24px, 4vw, 56px);
  align-items: center;
  min-height: 620px;
  padding: clamp(34px, 5vw, 72px) 0 26px;
}
.public-hero-copy h1 { color: #fff; font-size: clamp(2.45rem, 5vw, 4.85rem); line-height: .98; letter-spacing: -.06em; margin: 14px 0 18px; }
.public-hero-copy p { color: #c9e6ec; font-size: clamp(1.05rem, 1.6vw, 1.28rem); line-height: 1.72; }
.public-hero-copy .button { min-height: 48px; }
.public-hero-mockup { transform: translateZ(0); }
.public-hero-mockup .dash-logo { height: 28px; max-width: 92px; }
.premium-section { margin: clamp(34px, 6vw, 78px) 0; }
.premium-card { border: 1px solid rgba(45,212,191,.22); background: linear-gradient(180deg, rgba(12,40,58,.78), rgba(7,24,38,.72)); border-radius: 24px; padding: 22px; box-shadow: 0 18px 50px rgba(0,0,0,.22); }
.premium-card h2, .premium-card h3 { color: #fff; }
.premium-card p { color: #c9e6ec; line-height: 1.62; }
.premium-card strong { color: #8ff9ea; }
.audience-grid article { display: block; text-align: left; }
.audience-grid article h3 { color: #fff; margin: 0 0 8px; }
.audience-grid article p { color: #c9e6ec; margin: 0; line-height: 1.55; }
.workflow-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.pwa-section { position: relative; }
.support-strip { margin: clamp(34px, 5vw, 64px) 0; }
.public-footer { display: grid; gap: 22px; padding: 34px clamp(18px, 4vw, 44px); color: #dffbff; }
.public-footer a { color: #bffbf4; }
.public-footer strong { color: #fff; }
.public-footer small, .public-footer p { color: #a9cad3; }
.app-public .commercial-pricing-grid .pricing-card { background: linear-gradient(180deg, rgba(12,40,58,.86), rgba(7,24,38,.82)); border-color: rgba(148,163,184,.18); color: #eaffff; }
.app-public .commercial-pricing-grid .pricing-card h2, .app-public .commercial-pricing-grid .pricing-price { color: #fff; }
.app-public .trial-pricing-card { background: linear-gradient(180deg, rgba(8,47,73,.95), rgba(6,22,34,.86)); }
.compare, .table-scroll.compare { overflow-x: auto; -webkit-overflow-scrolling: touch; background: #061522; }
.faq, .faq-block { color: #eaffff; }
.faq-block summary { color: #fff; font-weight: 900; cursor: pointer; }
.contact-layout .dark-card, .contact-cards article { border-color: rgba(45,212,191,.24); }
@media (max-width: 1180px) {
  .public-hero, .app-public .public-hero { grid-template-columns: 1fr; min-height: 0; }
  .workflow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .public-logo-img { height: 34px; max-width: 150px; }
  .public-hero, .app-public .public-hero { padding-top: 24px; gap: 18px; }
  .public-hero-copy h1 { font-size: clamp(2rem, 11vw, 2.85rem); }
  .public-hero-copy p { font-size: 1rem; }
  .public-hero-mockup .dash-chart { display: none; }
  .workflow-grid { grid-template-columns: 1fr; }
  .module-ribbon { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .public-footer { grid-template-columns: 1fr !important; }
}
@media (max-width: 460px) {
  .public-hero-mockup { display: none; }
  .module-ribbon { grid-template-columns: 1fr; }
}

/* PATCH 39D — vitrine cPanel-like KoliDesk : header officiel, mobile et grilles premium */
.app-public .public-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  box-sizing: border-box;
}
.app-public .public-brand {
  min-width: 0;
  flex: 0 0 auto;
}
.app-public .public-logo-img {
  flex: 0 0 auto;
  height: 46px;
  width: auto;
  max-width: 190px;
  object-fit: contain;
}
.app-public .public-logo-fallback {
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
}
.app-public .public-nav {
  flex-wrap: wrap;
  justify-content: flex-end;
}
.app-public .why-grid,
.app-public .benefit-grid.six {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}
.app-public .cargo-focus .module-grid,
.app-public .module-grid.visual {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.app-public .hero-dashboard {
  border: 7px solid rgba(13, 32, 48, .96);
  border-bottom-width: 16px;
  border-radius: 28px;
  background: linear-gradient(180deg, #092033, #05131f);
  box-shadow: 0 32px 90px rgba(0,0,0,.42), 0 0 0 1px rgba(45,212,191,.22), inset 0 1px 0 rgba(255,255,255,.08);
}
.app-public .compare-table th,
.app-public .compare-table td {
  white-space: normal;
}
@media (max-width: 1180px) {
  .app-public .why-grid,
  .app-public .benefit-grid.six,
  .app-public .cargo-focus .module-grid,
  .app-public .module-grid.visual {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 760px) {
  .app-public .public-header {
    gap: 10px;
  }
  .app-public .public-logo-img {
    height: 36px;
    max-width: 138px;
  }
  .app-public .public-logo-fallback {
    min-width: 38px;
    min-height: 38px;
  }
  .app-public .why-grid,
  .app-public .benefit-grid.six,
  .app-public .cargo-focus .module-grid,
  .app-public .module-grid.visual {
    grid-template-columns: 1fr;
  }
  .app-public .public-nav {
    box-sizing: border-box;
  }
}

/* PATCH 39I — correction pricing et harmonisation vitrine publique */
.app-public{--kd-night:#03111f;--kd-panel:#071d2f;--kd-panel-2:#0b2a40;--kd-cyan:#22d3ee;--kd-teal:#2dd4bf;--kd-cream:#f6fbfb;--kd-text:#e8fbff;--kd-muted:#b7d3dc;--kd-line:rgba(45,212,191,.24);background:radial-gradient(circle at 14% -8%,rgba(34,211,238,.2),transparent 36%),radial-gradient(circle at 86% 4%,rgba(255,176,32,.1),transparent 28%),var(--kd-night);color:var(--kd-text)}
.app-public .container{max-width:1240px}.app-public .public-header{background:rgba(3,17,31,.92);border-bottom:1px solid var(--kd-line);backdrop-filter:blur(18px)}.app-public .public-brand span{display:none!important}.app-public .public-logo-img{height:46px;max-width:190px;object-fit:contain}.app-public .public-nav{gap:8px}.app-public .public-nav a{color:#dffbff}.app-public .public-nav-login{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.05)}.app-public .public-nav-cta,.app-public .button{background:linear-gradient(135deg,var(--kd-teal),var(--kd-cyan));color:#03111f;border:0;box-shadow:0 14px 34px rgba(34,211,238,.2)}.app-public .button.secondary{background:rgba(255,255,255,.06);color:#eaffff;border:1px solid rgba(45,212,191,.3);box-shadow:none}.pricing-hero{margin:32px 0 18px;padding:clamp(30px,5vw,56px);border:1px solid var(--kd-line);border-radius:32px;background:linear-gradient(135deg,rgba(8,47,73,.96),rgba(6,22,34,.92));box-shadow:0 32px 90px rgba(0,0,0,.34)}.pricing-hero h1{max-width:850px;margin:12px 0 14px;color:#fff;font-size:clamp(2.2rem,4.4vw,4.1rem);line-height:1.02;letter-spacing:-.045em}.pricing-hero p{max-width:780px;color:#cde9ef;font-size:1.12rem;line-height:1.7}.trial-strip{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:18px 0 22px;padding:18px 22px;border:1px solid rgba(45,212,191,.34);border-radius:22px;background:rgba(255,255,255,.055)}.trial-strip h2{margin:4px 0;color:#fff}.trial-strip p{margin:0;color:#c8e3ea}.trial-pricing-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0;padding:24px;border:1px solid rgba(34,211,238,.42);border-radius:28px;background:linear-gradient(135deg,rgba(9,37,57,.95),rgba(7,68,83,.5));box-shadow:0 24px 70px rgba(0,0,0,.25)}.trial-pricing-card h2{margin:8px 0;color:#fff}.trial-pricing-card p{max-width:640px;color:#cde9ef}.pricing-price{display:block;margin:12px 0 8px;color:#fff;font-size:clamp(2rem,3vw,2.8rem);line-height:1}.commercial-pricing-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:22px;margin:24px 0 30px}.commercial-pricing-grid .pricing-card{display:flex;flex-direction:column;justify-content:space-between;min-height:100%;padding:26px;border:1px solid rgba(148,163,184,.2);border-radius:28px;background:linear-gradient(180deg,rgba(12,40,58,.9),rgba(7,24,38,.84));box-shadow:0 22px 60px rgba(0,0,0,.24)}.commercial-pricing-grid .pricing-card.highlighted{position:relative;transform:translateY(-8px);border-color:rgba(45,212,191,.7);box-shadow:0 30px 90px rgba(34,211,238,.2)}.commercial-pricing-grid .pricing-card.highlighted:before{content:"Recommandé";position:absolute;right:20px;top:18px;padding:7px 10px;border-radius:999px;background:rgba(255,176,32,.14);color:#ffd08a;font-weight:900}.pricing-card h2{color:#fff}.pricing-card p,.pricing-card small{color:var(--kd-muted)}.pricing-benefits{display:grid;gap:10px;margin:18px 0 0;padding-left:20px;color:#dff8fb}.comparison-card{margin:30px 0;padding:24px;border:1px solid var(--kd-line);border-radius:28px;background:linear-gradient(180deg,#f8ffff,#eaf7f8);color:#082033}.comparison-card h2{color:#061827}.comparison-card .muted{color:#49636d}.table-scroll.compare{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid rgba(8,47,73,.14);border-radius:18px;background:#fff}.compare-table{min-width:760px;width:100%;border-collapse:separate;border-spacing:0;color:#082033}.compare-table th,.compare-table td{padding:15px 16px;border-bottom:1px solid #d7e8ec;text-align:left}.compare-table thead th{background:#0b2a40;color:#f6ffff}.compare-table tbody th{font-weight:900;color:#082033;background:#f2fbfc}.compare-table tbody tr:nth-child(even) th,.compare-table tbody tr:nth-child(even) td{background:#eef8fa}.compare-table td{color:#173243}.pricing-final-cta{margin:34px 0;background:linear-gradient(135deg,rgba(8,47,73,.94),rgba(6,22,34,.9));border:1px solid var(--kd-line)}.contact-layout .dark-card,.contact-cards article{background:linear-gradient(180deg,rgba(248,253,253,.98),rgba(236,248,250,.96))!important;color:#082033!important;border:1px solid rgba(8,47,73,.14)!important}.contact-layout h1,.contact-layout h2,.contact-cards strong{color:#061827!important}.contact-layout p,.contact-cards p,.contact-cards .muted{color:#49636d!important}.contact-layout input,.contact-layout textarea{background:#fff!important;color:#061827!important;border:1px solid #bfd7de!important}.feature-family,.premium-feature-card{border-color:rgba(45,212,191,.26);background:linear-gradient(180deg,rgba(10,36,54,.9),rgba(7,24,38,.82))}.premium-feature-card p{color:#cde9ef}.premium-feature-card strong{color:#8ff9ea}.public-footer{background:#020b13;border-top:1px solid var(--kd-line)}
@media(max-width:900px){.trial-strip,.trial-pricing-card{align-items:stretch;flex-direction:column}.trial-strip .button,.trial-pricing-card .button{justify-content:center;text-align:center}.commercial-pricing-grid{grid-template-columns:1fr!important}.commercial-pricing-grid .pricing-card.highlighted{transform:none}.pricing-hero{border-radius:24px;padding:26px 20px}.pricing-hero h1{font-size:clamp(2rem,10vw,3rem)}.app-public .public-nav{overflow-x:auto}.compare-table{min-width:680px}}
@media(max-width:620px){.app-public .public-logo-img{height:36px;max-width:138px}.pricing-hero,.trial-pricing-card,.comparison-card{border-radius:20px}.trial-strip{padding:16px}.compare-table th,.compare-table td{padding:12px}.hero-actions{width:100%}.hero-actions .button{width:100%;justify-content:center}}

/* PATCH 39K — Login premium réel */
.app-public:has(.login-premium-39k){background:radial-gradient(circle at 14% 8%,rgba(20,200,200,.18),transparent 28%),radial-gradient(circle at 88% 18%,rgba(7,156,163,.2),transparent 30%),linear-gradient(180deg,#061827 0%,#03111d 100%);color:#f4f8fb}.login-premium-shell{max-width:1120px;margin:28px auto 46px;padding:0 4px}.login-premium-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.92fr);gap:24px;align-items:stretch}.login-premium-grid .login-story,.login-premium-grid .public-auth{min-height:590px;margin:0;border:1px solid rgba(255,255,255,.14);border-radius:30px;background:linear-gradient(180deg,#0b2234 0%,rgba(3,17,29,.96) 100%);box-shadow:0 30px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.06);padding:34px;color:#f4f8fb}.login-premium-grid .login-story{display:flex;flex-direction:column;justify-content:center;overflow:hidden;position:relative}.login-premium-grid .login-story:before{content:"";position:absolute;inset:-120px -150px auto auto;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(20,200,200,.24),transparent 68%);pointer-events:none}.login-kicker{display:inline-flex;width:max-content;border:1px solid rgba(20,200,200,.34);border-radius:999px;background:rgba(20,200,200,.12);color:#14c8c8;padding:7px 11px;font-size:.76rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}.login-premium-grid .login-story h1{font-size:clamp(2.2rem,4vw,3.55rem);line-height:1.02;letter-spacing:-.055em;margin:18px 0 16px;color:#f4f8fb}.login-story-lead{font-size:1.08rem;line-height:1.75;color:#9fb3c3;max-width:620px;margin:0 0 28px}.login-benefits{display:grid;gap:14px}.login-benefits article{display:flex;gap:14px;align-items:flex-start;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:rgba(255,255,255,.045);padding:15px}.login-benefit-icon{flex:0 0 34px;width:34px;height:34px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#14c8c8,#079ca3);box-shadow:0 12px 28px rgba(20,200,200,.2)}.login-benefit-icon:before{content:"";width:12px;height:12px;border:2px solid #03111d;border-left:0;border-top:0;transform:rotate(45deg) translate(-1px,-1px)}.login-benefits strong{display:block;color:#f4f8fb;font-size:1rem;margin-bottom:4px}.login-benefits p{margin:0;color:#9fb3c3;line-height:1.5}.login-premium-grid .public-auth{display:flex;flex-direction:column;justify-content:center}.login-form-head{text-align:center;margin-bottom:22px}.login-form-head .login-brand{justify-content:center;margin:0 auto 18px}.login-form-head .public-logo-img{max-height:58px;width:auto}.login-form-head h2{font-size:2rem;margin:0 0 8px;color:#f4f8fb}.login-form-head p{margin:0;color:#9fb3c3}.login-premium-grid form{display:grid;gap:14px}.login-premium-grid label{display:grid;gap:8px;color:#f4f8fb;font-weight:800}.login-premium-grid input{width:100%;min-height:50px;border-radius:15px;border:1px solid rgba(255,255,255,.14);background:rgba(3,17,29,.78);color:#f4f8fb;padding:12px 14px}.login-premium-grid input:focus{outline:none;border-color:#14c8c8;box-shadow:0 0 0 4px rgba(20,200,200,.14)}.login-premium-grid .password-field{display:flex;gap:10px;align-items:center;flex-wrap:nowrap;width:100%}.login-premium-grid .password-field input{flex:1;min-width:0}.login-premium-grid .password-actions{display:flex;flex:0 0 auto}.login-premium-grid .password-actions .mini{min-height:50px;border:1px solid rgba(20,200,200,.34);border-radius:14px;background:rgba(20,200,200,.1);color:#14c8c8;box-shadow:none;padding:0 14px}.login-submit{justify-content:center;width:100%;min-height:52px;border:0;border-radius:16px;background:linear-gradient(135deg,#14c8c8,#079ca3);color:#03111d;font-weight:950;box-shadow:0 18px 40px rgba(20,200,200,.24);cursor:pointer}.login-submit:hover,.login-premium-grid .password-actions .mini:hover{filter:brightness(1.06)}.login-premium-grid .auth-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin:20px 0 0;color:#9fb3c3}.login-premium-grid .auth-links a{color:#9fb3c3;text-decoration:none;font-weight:800}.login-premium-grid .auth-links a:hover{color:#14c8c8}.login-install-band{margin:22px auto 0;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:linear-gradient(135deg,rgba(11,34,52,.94),rgba(7,156,163,.18));padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#f4f8fb;box-shadow:0 18px 55px rgba(0,0,0,.22)}.login-install-band strong{display:block;font-size:1.05rem}.login-install-band p{margin:4px 0 0;color:#9fb3c3}.login-install-band button{border:1px solid rgba(20,200,200,.45);border-radius:14px;background:#14c8c8;color:#03111d;font-weight:950;padding:12px 16px;white-space:nowrap}@media(max-width:900px){.login-premium-shell{margin:18px auto 34px}.login-premium-grid{grid-template-columns:1fr}.login-premium-grid .login-story,.login-premium-grid .public-auth{min-height:auto;padding:26px}.login-premium-grid .login-story{justify-content:flex-start}.login-install-band{align-items:stretch;flex-direction:column}.login-install-band button{width:100%}}@media(max-width:560px){.login-premium-shell{padding:0}.login-premium-grid{gap:16px}.login-premium-grid .login-story,.login-premium-grid .public-auth{border-radius:22px;padding:22px 18px}.login-benefits article{padding:13px}.login-premium-grid .auth-links{display:grid;text-align:center}.login-premium-grid .password-field{flex-wrap:wrap}.login-premium-grid .password-actions{width:100%}.login-premium-grid .password-actions .mini{width:100%}}

/* PATCH 39L — hero cleanup + wider layout */
.app-public .container {
  max-width: min(1500px, calc(100vw - 48px));
}
.app-public .public-hero {
  grid-template-columns: minmax(0, .95fr) minmax(560px, 1.22fr);
  gap: clamp(36px, 5vw, 86px);
  min-height: 660px;
}
.app-public .premium-hero {
  padding: clamp(32px, 4.8vw, 64px) !important;
}
.app-public .public-brand span,
.app-public .public-brand strong,
.app-public .public-brand small {
  display: none !important;
}
.app-public .hero-dashboard {
  grid-template-columns: 96px minmax(0, 1fr);
  min-height: 456px;
}
.app-public .dash-sidebar {
  padding: 20px 14px;
  gap: 12px;
}
.app-public .dash-mini-brand {
  justify-content: center;
  margin-bottom: 18px;
}
.app-public .dash-mini-brand strong {
  display: none !important;
}
.app-public .dash-sidebar span {
  min-height: 38px;
  padding: 0;
  color: transparent;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(148,163,184,.12);
}
.app-public .dash-sidebar span.active {
  background: linear-gradient(135deg, rgba(45,212,191,.30), rgba(34,211,238,.14));
  border-color: rgba(45,212,191,.32);
}
.app-public .dash-top {
  align-items: flex-start;
  margin-bottom: 18px;
}
.app-public .dash-top strong {
  display: block;
  line-height: 1.15;
}
.app-public .dash-top small {
  max-width: 280px;
  line-height: 1.35;
}
.app-public .dash-status-pill {
  flex: 0 0 auto;
  border: 1px solid rgba(45,212,191,.28);
  border-radius: 999px;
  background: rgba(45,212,191,.12);
  color: #8ff9ea;
  padding: 8px 11px;
  font-size: .72rem;
  font-weight: 950;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.app-public .dash-kpis {
  gap: 12px;
}
.app-public .dash-kpis article,
.app-public .dash-chart,
.app-public .dash-list {
  border-color: rgba(148,163,184,.14);
  background: linear-gradient(180deg, rgba(13,38,57,.82), rgba(7,26,41,.72));
}
@media (max-width: 1180px) {
  .app-public .container { max-width: min(1240px, calc(100vw - 32px)); }
  .app-public .public-hero { grid-template-columns: 1fr; min-height: 0; }
  .app-public .hero-dashboard { max-width: 920px; justify-self: center; }
}
@media (max-width: 760px) {
  .app-public .container { max-width: 100%; }
  .app-public .public-hero { gap: 22px; }
  .app-public .premium-hero { padding: 24px 18px !important; }
  .app-public .hero-dashboard { grid-template-columns: 1fr; min-height: 0; }
  .app-public .dash-sidebar { display: none; }
  .app-public .dash-main { padding: 14px; }
  .app-public .dash-status-pill { display: none; }
}

/* PATCH 39M — wrapper unique accueil */
.app-public .container:has(> .public-home-wrap) {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}
.public-home-wrap {
  max-width: 1440px;
  width: calc(100% - 96px);
  margin: 0 auto;
}
.public-home-wrap > section,
.public-home-wrap > div {
  width: 100%;
}
@media (max-width: 760px) {
  .public-home-wrap {
    width: calc(100% - 32px);
  }
}

/* PATCH accueil — installation PWA et mockup téléphone */
.pwa-install-button{background:linear-gradient(135deg,#2dd4bf,#22d3ee);color:#03151b;box-shadow:0 16px 36px rgba(34,211,238,.22)}
.pwa-install-status{min-height:1.4em;margin:12px 0 0;color:#9ff8ec;font-weight:850}
.pwa-install-help{margin-top:16px;border:1px solid rgba(45,212,191,.28);border-radius:20px;background:linear-gradient(180deg,rgba(6,26,39,.96),rgba(4,18,29,.92));box-shadow:0 22px 54px rgba(0,0,0,.28);padding:18px;max-width:650px;outline:none}
.pwa-install-help[hidden]{display:none!important}.pwa-install-help:focus-visible{box-shadow:0 0 0 3px rgba(45,212,191,.28),0 22px 54px rgba(0,0,0,.28)}
.pwa-install-help h3{margin:0 0 8px;color:#fff;font-size:1.08rem}.pwa-install-help p{margin:0 0 12px!important;color:#c9e6ec!important;line-height:1.55}.pwa-install-help ul{display:grid;gap:9px;margin:0 0 14px;padding-left:20px;color:#dffcff;line-height:1.45}.pwa-install-help strong{color:#8ff9ea}.pwa-install-help .mini{cursor:pointer}
.phone-mock{position:relative;width:178px;height:334px;border:1px solid rgba(226,232,240,.3);border-radius:38px;background:linear-gradient(145deg,#0c1118,#03070b 58%,#182331);padding:8px;color:#fff;box-shadow:0 28px 70px rgba(0,0,0,.46),0 0 0 6px rgba(255,255,255,.035),inset 0 0 0 1px rgba(255,255,255,.08);overflow:hidden}.phone-frame-glow{position:absolute;inset:9px;border-radius:31px;background:linear-gradient(135deg,rgba(45,212,191,.16),transparent 28%,rgba(255,255,255,.12) 45%,transparent 58%);pointer-events:none;z-index:3}.phone-screen{position:relative;height:100%;border-radius:30px;background:radial-gradient(circle at 28% 0,rgba(45,212,191,.22),transparent 34%),linear-gradient(180deg,#092033,#061522 62%,#04111d);border:1px solid rgba(148,163,184,.2);padding:24px 12px 12px;overflow:hidden}.phone-screen:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.14),transparent 26%,transparent 72%,rgba(255,255,255,.05));pointer-events:none}.phone-notch{position:absolute;top:8px;left:50%;width:64px;height:8px;margin:0;transform:translateX(-50%);background:#03070b;border-radius:999px;box-shadow:0 0 0 1px rgba(255,255,255,.06)}.phone-app-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:12px}.phone-app-head strong{font-size:.95rem;letter-spacing:.01em}.phone-app-head span{display:inline-flex;color:#03151b;background:#67e8f9;border-radius:999px;padding:4px 7px;font-size:.58rem;font-weight:950;text-transform:uppercase}.phone-hero-card{display:grid;gap:3px;border:1px solid rgba(45,212,191,.22);border-radius:18px;background:linear-gradient(135deg,rgba(45,212,191,.2),rgba(8,47,73,.82));padding:12px;margin-bottom:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.phone-hero-card small{color:#b9f7f1;font-weight:850}.phone-hero-card b{font-size:1.1rem}.phone-hero-card em{color:#ffb020;font-style:normal;font-size:.72rem;font-weight:900}.phone-list{display:grid;gap:7px}.phone-list p{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;padding:9px 10px;border:1px solid rgba(148,163,184,.13);border-radius:13px;background:rgba(255,255,255,.055);color:#dffcff;font-size:.72rem}.phone-list b{color:#8ff9ea;font-size:.72rem}.phone-mock nav{position:absolute;left:24px;right:24px;bottom:14px;display:flex;justify-content:space-between;margin:0;padding:8px 10px;border-radius:999px;background:rgba(3,7,11,.62);backdrop-filter:blur(10px)}.phone-mock i{width:9px;height:9px;border-radius:50%;background:#2dd4bf;box-shadow:0 0 14px rgba(45,212,191,.58)}
@media(max-width:900px){.pwa-install-help{max-width:100%}.pwa-band .phone-mock{justify-self:center}}
@media(max-width:620px){.pwa-install-button,.pwa-band .button.secondary{width:100%;justify-content:center}.pwa-install-help{padding:15px;border-radius:18px}.phone-mock{width:164px;height:308px;transform:none}.phone-screen{padding:23px 10px 10px}.phone-list p{padding:8px}.phone-mock nav{left:20px;right:20px}}

/* PATCH — correction hero MacBook + responsive PWA mobile */
.app-public .public-hero-macbook{position:relative;z-index:1;min-width:0;margin:0;display:flex;align-items:center;justify-content:center;width:100%;overflow:visible}
.app-public .public-hero-macbook img{display:block;width:min(100%,760px);max-width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 28px 60px rgba(0,0,0,.38))}
.app-public .pwa-band{grid-template-columns:minmax(0,1fr) minmax(150px,178px) minmax(120px,150px) minmax(160px,220px);min-width:0}
.app-public .pwa-band>*{min-width:0}.app-public .pwa-band .hero-actions{min-width:0}.app-public .pwa-install-help{width:100%;max-width:650px}.app-public .pwa-band .phone-mock{justify-self:center;flex:0 0 auto}.app-public .pwa-band .qr-mock{justify-self:center;max-width:100%}.app-public .cargo-illu{min-width:0;max-width:100%}
@media(max-width:1180px){.app-public .public-hero{grid-template-columns:minmax(0,1fr)}.app-public .public-hero-macbook{max-width:860px;justify-self:center}.app-public .pwa-band{grid-template-columns:minmax(0,1fr) minmax(150px,178px) minmax(120px,150px)}}
@media(max-width:900px){.app-public .public-hero,.app-public .premium-hero{grid-template-columns:1fr}.app-public .public-hero-macbook{overflow:hidden}.app-public .public-hero-macbook img{width:min(100%,680px)}.app-public .pwa-band{grid-template-columns:1fr;align-items:stretch;overflow:hidden}.app-public .pwa-install-help{max-width:100%;justify-self:stretch}.app-public .pwa-band .phone-mock,.app-public .pwa-band .qr-mock{justify-self:center}.app-public .cargo-illu{display:none}}
@media(max-width:620px){.app-public .public-hero-macbook img{width:112%;max-width:112%;margin-inline:-6%}.app-public .pwa-band{gap:18px;padding:18px;border-radius:22px}.app-public .pwa-band .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}.app-public .pwa-install-button,.app-public .pwa-band .button.secondary{width:100%;justify-content:center;text-align:center}.app-public .pwa-install-help{padding:15px;border-radius:18px}.app-public .pwa-install-help .mini{display:inline-flex;justify-content:center}.app-public .pwa-band .phone-mock{width:164px;height:308px;transform:none}.app-public .pwa-band .qr-mock{width:124px;height:124px}.app-public .pwa-band .phone-screen{padding:23px 10px 10px}.app-public .pwa-band .phone-list p{padding:8px}.app-public .pwa-band .phone-mock nav{left:20px;right:20px}}

/* PATCH — refonte page fonctionnalités premium */
.app-public .features-premium-hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(360px,1.08fr);
  gap:clamp(26px,5vw,72px);
  align-items:center;
  margin:32px 0 28px;
  padding:clamp(28px,5vw,64px);
  min-height:560px;
  overflow:hidden;
  border:1px solid rgba(45,212,191,.28);
  border-radius:34px;
  background:radial-gradient(circle at 78% 18%,rgba(34,211,238,.18),transparent 34%),linear-gradient(135deg,rgba(7,30,47,.96),rgba(3,17,31,.92));
  box-shadow:0 34px 100px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.07);
}
.app-public .features-premium-hero:before{
  content:"";
  position:absolute;
  inset:auto -110px -180px auto;
  width:380px;
  height:380px;
  border-radius:999px;
  background:radial-gradient(circle,rgba(45,212,191,.22),transparent 66%);
  pointer-events:none;
}
.app-public .features-hero-copy,
.app-public .features-device-stage{position:relative;z-index:1;min-width:0}
.app-public .features-hero-copy h1{
  max-width:760px;
  margin:16px 0 16px;
  color:#fff;
  font-size:clamp(2.25rem,4.8vw,4.35rem);
  line-height:1.02;
  letter-spacing:-.055em;
}
.app-public .features-hero-copy p{
  max-width:610px;
  margin:0 0 24px;
  color:#cde9ef;
  font-size:clamp(1.02rem,1.45vw,1.18rem);
  line-height:1.7;
}
.app-public .features-device-stage{
  display:grid;
  place-items:center;
  min-height:430px;
}
.app-public .features-macbook{
  width:100%;
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.app-public .features-macbook img{
  display:block;
  width:min(100%,780px);
  max-width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 34px 70px rgba(0,0,0,.42));
}
.app-public .features-device-stage .phone-mock{
  position:absolute;
  right:clamp(0px,3vw,28px);
  bottom:4px;
  transform:rotate(3deg) scale(.88);
  transform-origin:bottom right;
  z-index:2;
}
.app-public .features-block-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  margin:28px 0 44px;
}
.app-public .features-block{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:16px;
  min-width:0;
  padding:24px;
  border:1px solid rgba(148,163,184,.18);
  border-radius:26px;
  background:linear-gradient(180deg,rgba(12,40,58,.9),rgba(6,22,34,.78));
  box-shadow:0 22px 64px rgba(0,0,0,.24),inset 0 1px 0 rgba(255,255,255,.055);
  color:#eaffff;
}
.app-public .features-block-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:16px;
  background:linear-gradient(135deg,#2dd4bf,#22d3ee);
  color:#03111f;
  font-weight:950;
  box-shadow:0 14px 32px rgba(34,211,238,.2);
}
.app-public .features-block h2{
  margin:2px 0 8px;
  color:#fff;
  font-size:1.18rem;
  line-height:1.2;
}
.app-public .features-block p{
  margin:0 0 16px;
  color:#b7d3dc;
  line-height:1.55;
}
.app-public .features-block ul{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
.app-public .features-block li{
  padding:7px 10px;
  border:1px solid rgba(45,212,191,.22);
  border-radius:999px;
  background:rgba(45,212,191,.08);
  color:#dffcff;
  font-size:.86rem;
  font-weight:850;
  line-height:1.2;
}
@media(max-width:1180px){
  .app-public .features-premium-hero{grid-template-columns:1fr;min-height:0}
  .app-public .features-device-stage{min-height:360px;max-width:820px;justify-self:center;width:100%}
  .app-public .features-block-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
  .app-public .features-premium-hero{margin:20px 0 22px;padding:24px 18px;border-radius:24px;gap:20px}
  .app-public .features-hero-copy h1{font-size:clamp(2.05rem,10vw,3rem)}
  .app-public .features-device-stage{min-height:300px;overflow:hidden}
  .app-public .features-macbook img{width:112%;max-width:112%;margin-inline:-6%}
  .app-public .features-device-stage .phone-mock{right:0;bottom:0;transform:scale(.72)}
  .app-public .features-block-grid{grid-template-columns:1fr;gap:14px;margin-bottom:32px}
  .app-public .features-block{padding:20px;border-radius:22px}
}
@media(max-width:520px){
  .app-public .features-device-stage{min-height:245px}
  .app-public .features-device-stage .phone-mock{display:none}
  .app-public .features-block{grid-template-columns:1fr;gap:12px}
  .app-public .features-block-icon{width:38px;height:38px;border-radius:14px}
}

/* PATCH OFFRES HERO — correction lisibilité fond dark/cyan */
.pricing-hero,
.offers-hero,
.plans-hero,
.forfaits-hero {
    background:
        radial-gradient(circle at top right, rgba(45, 224, 203, .20), transparent 36%),
        linear-gradient(135deg, #061724 0%, #082334 55%, #04101a 100%) !important;
    border: 1px solid rgba(45, 224, 203, .28) !important;
    color: #ffffff !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .28);
}

.pricing-hero h1,
.offers-hero h1,
.plans-hero h1,
.forfaits-hero h1 {
    color: #ffffff !important;
    text-shadow: 0 8px 28px rgba(0, 0, 0, .35);
}

.pricing-hero p,
.offers-hero p,
.plans-hero p,
.forfaits-hero p {
    color: #c8edf2 !important;
}

.pricing-hero .eyebrow,
.offers-hero .eyebrow,
.plans-hero .eyebrow,
.forfaits-hero .eyebrow,
.pricing-hero .badge,
.offers-hero .badge,
.plans-hero .badge,
.forfaits-hero .badge {
    color: #9ffaf0 !important;
    background: rgba(45, 224, 203, .10) !important;
    border-color: rgba(45, 224, 203, .35) !important;
}

.pricing-hero .btn-secondary,
.offers-hero .btn-secondary,
.plans-hero .btn-secondary,
.forfaits-hero .btn-secondary,
.pricing-hero a:not(.btn-primary),
.offers-hero a:not(.btn-primary),
.plans-hero a:not(.btn-primary),
.forfaits-hero a:not(.btn-primary) {
    color: #ffffff !important;
    border-color: rgba(45, 224, 203, .45) !important;
    background: rgba(255, 255, 255, .06) !important;
}

.pricing-hero .btn-primary,
.offers-hero .btn-primary,
.plans-hero .btn-primary,
.forfaits-hero .btn-primary {
    background: linear-gradient(135deg, #2de0cb, #14b8a6) !important;
    color: #03131d !important;
    border-color: transparent !important;
}


/* PATCH OFFRES — bouton essai gratuit en cyan */
.pricing-hero a[href*="trial"],
.pricing-hero a[href*="register"],
.pricing-hero a[href*="signup"],
.pricing-hero a[href*="start"],
.pricing-hero a:first-of-type,
.offers-hero a[href*="trial"],
.offers-hero a[href*="register"],
.offers-hero a[href*="signup"],
.offers-hero a[href*="start"],
.offers-hero a:first-of-type,
.plans-hero a[href*="trial"],
.plans-hero a[href*="register"],
.plans-hero a[href*="signup"],
.plans-hero a[href*="start"],
.plans-hero a:first-of-type,
.forfaits-hero a[href*="trial"],
.forfaits-hero a[href*="register"],
.forfaits-hero a[href*="signup"],
.forfaits-hero a[href*="start"],
.forfaits-hero a:first-of-type {
    background: linear-gradient(135deg, #2de0cb, #14b8a6) !important;
    color: #03131d !important;
    border-color: transparent !important;
    box-shadow: 0 18px 42px rgba(45, 224, 203, .22) !important;
}

/* PATCH OFFRES — bouton comparer reste secondaire */
.pricing-hero a:nth-of-type(2),
.offers-hero a:nth-of-type(2),
.plans-hero a:nth-of-type(2),
.forfaits-hero a:nth-of-type(2) {
    background: rgba(255, 255, 255, .06) !important;
    color: #ffffff !important;
    border: 1px solid rgba(45, 224, 203, .45) !important;
    box-shadow: none !important;
}


/* PATCH CONTACT — harmonisation dark/cyan */
.contact-card,
.contact-panel,
.contact-form,
.contact-box,
.contact-info,
.contact-support-card,
.contact-sidebar-card,
.support-card,
.hotline-card {
    background:
        radial-gradient(circle at top right, rgba(45, 224, 203, .14), transparent 36%),
        linear-gradient(135deg, #061724 0%, #082334 58%, #04101a 100%) !important;
    border: 1px solid rgba(45, 224, 203, .28) !important;
    color: #ffffff !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .26) !important;
}

.contact-card h1,
.contact-card h2,
.contact-card h3,
.contact-panel h1,
.contact-panel h2,
.contact-panel h3,
.contact-form h1,
.contact-form h2,
.contact-form h3,
.contact-info h1,
.contact-info h2,
.contact-info h3,
.contact-support-card h1,
.contact-support-card h2,
.contact-support-card h3,
.contact-sidebar-card h1,
.contact-sidebar-card h2,
.contact-sidebar-card h3,
.support-card h1,
.support-card h2,
.support-card h3,
.hotline-card h1,
.hotline-card h2,
.hotline-card h3 {
    color: #ffffff !important;
}

.contact-card p,
.contact-panel p,
.contact-form p,
.contact-info p,
.contact-support-card p,
.contact-sidebar-card p,
.support-card p,
.hotline-card p {
    color: #c8edf2 !important;
}

.contact-card label,
.contact-panel label,
.contact-form label {
    color: #dffbff !important;
}

.contact-card input,
.contact-card textarea,
.contact-panel input,
.contact-panel textarea,
.contact-form input,
.contact-form textarea {
    background: rgba(255, 255, 255, .96) !important;
    color: #061724 !important;
    border: 1px solid rgba(45, 224, 203, .35) !important;
}

.contact-card input::placeholder,
.contact-card textarea::placeholder,
.contact-panel input::placeholder,
.contact-panel textarea::placeholder,
.contact-form input::placeholder,
.contact-form textarea::placeholder {
    color: #6b7f8f !important;
}

.contact-card .badge,
.contact-panel .badge,
.contact-form .badge,
.contact-info .badge,
.contact-support-card .badge,
.contact-sidebar-card .badge,
.support-card .badge,
.hotline-card .badge,
.contact-card .eyebrow,
.contact-panel .eyebrow,
.contact-form .eyebrow,
.contact-info .eyebrow,
.contact-support-card .eyebrow,
.contact-sidebar-card .eyebrow,
.support-card .eyebrow,
.hotline-card .eyebrow {
    color: #9ffaf0 !important;
    background: rgba(45, 224, 203, .10) !important;
    border: 1px solid rgba(45, 224, 203, .35) !important;
}

.contact-card button,
.contact-panel button,
.contact-form button,
.contact-card .btn-primary,
.contact-panel .btn-primary,
.contact-form .btn-primary {
    background: linear-gradient(135deg, #2de0cb, #14b8a6) !important;
    color: #03131d !important;
    border-color: transparent !important;
    box-shadow: 0 18px 42px rgba(45, 224, 203, .22) !important;
}


/* PATCH CONTACT FINAL — ciblage réel + alignement + WhatsApp */
.app-public .contact-layout {
    align-items: stretch !important;
}

.app-public .contact-layout .dark-card {
    align-self: stretch !important;
    min-height: 100% !important;
    padding-bottom: 34px !important;
}

.app-public .contact-cards {
    height: 100% !important;
    align-content: stretch !important;
}

.app-public .contact-cards article {
    background:
        radial-gradient(circle at top right, rgba(45, 224, 203, .14), transparent 36%),
        linear-gradient(135deg, #061724 0%, #082334 58%, #04101a 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(45, 224, 203, .28) !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .26) !important;
}

.app-public .contact-layout .dark-card {
    background:
        radial-gradient(circle at top right, rgba(45, 224, 203, .10), transparent 34%),
        linear-gradient(135deg, #061724 0%, #082334 58%, #04101a 100%) !important;
    color: #ffffff !important;
    border: 1px solid rgba(45, 224, 203, .28) !important;
    box-shadow: 0 24px 80px rgba(0, 0, 0, .26) !important;
}

.app-public .contact-layout h1,
.app-public .contact-layout h2,
.app-public .contact-cards strong {
    color: #ffffff !important;
}

.app-public .contact-layout p,
.app-public .contact-cards p,
.app-public .contact-cards .muted {
    color: #c8edf2 !important;
}

.app-public .contact-layout label {
    color: #dffbff !important;
}

.app-public .contact-layout input,
.app-public .contact-layout textarea {
    background: rgba(255, 255, 255, .96) !important;
    color: #061724 !important;
    border: 1px solid rgba(45, 224, 203, .35) !important;
}

.app-public .kolidesk-whatsapp-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 8px;
    padding: 13px 20px;
    border-radius: 14px;
    background: linear-gradient(135deg, #2de0cb, #14b8a6) !important;
    color: #03131d !important;
    font-weight: 900;
    text-decoration: none !important;
    border: 1px solid rgba(45, 224, 203, .35);
    box-shadow: 0 18px 42px rgba(45, 224, 203, .22);
}

.app-public .kolidesk-whatsapp-btn:hover {
    transform: translateY(-1px);
    filter: brightness(1.04);
}

.app-public .kolidesk-whatsapp-number {
    margin-top: 10px;
    color: #c8edf2 !important;
    font-weight: 800;
    letter-spacing: .02em;
}

@media(max-width:900px) {
    .app-public .contact-layout {
        align-items: start !important;
    }

    .app-public .contact-layout .dark-card {
        min-height: 0 !important;
    }
}


/* PATCH OFFRES — image hero plans tarifaires */
.app-public .pricing-hero {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) minmax(360px, .82fr) !important;
    gap: clamp(28px, 5vw, 72px) !important;
    align-items: center !important;
    overflow: hidden !important;
}

.app-public .pricing-hero-visual {
    margin: 0 !important;
    justify-self: end;
    width: min(100%, 520px);
}

.app-public .pricing-hero-visual img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
    filter: drop-shadow(0 28px 70px rgba(0, 0, 0, .36));
}

@media(max-width: 900px) {
    .app-public .pricing-hero {
        grid-template-columns: 1fr !important;
    }

    .app-public .pricing-hero-visual {
        justify-self: stretch;
        width: 100%;
        max-width: 560px;
        margin-inline: auto !important;
    }
}


/* PATCH OFFRES — image uniquement à droite du hero */
.app-public .pricing-hero {
    position: relative !important;
    display: block !important;
    overflow: hidden !important;
    min-height: 430px !important;
    padding-right: min(48vw, 620px) !important;
}

.app-public .pricing-hero > div {
    position: relative !important;
    z-index: 2 !important;
    max-width: 820px !important;
}

.app-public .pricing-hero-visual {
    position: absolute !important;
    right: clamp(24px, 4vw, 70px) !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: min(42vw, 520px) !important;
    max-width: 520px !important;
    margin: 0 !important;
    z-index: 1 !important;
    pointer-events: none !important;
}

.app-public .pricing-hero-visual img {
    width: 100% !important;
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
    object-fit: contain !important;
}

@media(max-width: 900px) {
    .app-public .pricing-hero {
        min-height: 0 !important;
        padding-right: 20px !important;
    }

    .app-public .pricing-hero-visual {
        position: relative !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        width: 100% !important;
        max-width: 520px !important;
        margin: 28px auto 0 !important;
        pointer-events: auto !important;
    }
}


/* PATCH OFFRES — suppression bannière intermédiaire essai gratuit */
.app-public .trial-strip {
    display: none !important;
}


/* PATCH CONTACT — masquer numéro WhatsApp public */
.app-public .kolidesk-whatsapp-number {
    display: none !important;
}

