:root{
  --bg:#f5f7f8;--card:#fff;--ink:#172129;--muted:#697780;--line:#dfe5e8;
  --brand:#194c52;--brand-2:#0f3439;--accent:#d6a756;--danger:#a83232;--ok:#2f7d4f;
  --radius:18px;--shadow:0 10px 35px rgba(18,40,48,.08);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
a{color:var(--brand);text-decoration:none}button,input,select,textarea{font:inherit}button{cursor:pointer}
.shell{max-width:1120px;margin:0 auto;padding:24px}.topbar{position:sticky;top:0;z-index:20;background:rgba(245,247,248,.94);backdrop-filter:blur(12px);border-bottom:1px solid rgba(223,229,232,.8)}.topbar-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;gap:16px;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.brand-mark{width:34px;height:34px;border-radius:10px;background:linear-gradient(145deg,var(--brand),var(--brand-2));display:grid;place-items:center;color:#fff;font-weight:900;box-shadow:var(--shadow)}.nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.nav a,.nav button{padding:9px 12px;border-radius:10px;border:0;background:transparent;color:var(--ink)}.nav a:hover,.nav button:hover{background:#e9eef0}.hero{padding:28px 0 8px}.hero h1{font-size:clamp(28px,4vw,46px);line-height:1.08;letter-spacing:-.04em;margin:0 0 10px}.hero p{color:var(--muted);max-width:760px;margin:0}.badge{display:inline-flex;gap:7px;align-items:center;border:1px solid #dce7e6;background:#eef8f7;color:var(--brand);padding:6px 10px;border-radius:999px;font-size:12px;font-weight:700;margin-bottom:12px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px;margin:18px 0}.card h2{font-size:20px;margin:0 0 4px;letter-spacing:-.02em}.card-sub{color:var(--muted);margin:0 0 18px}.grid{display:grid;gap:16px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.field{display:flex;flex-direction:column;gap:7px}.field label{font-size:13px;font-weight:750;color:#314149}.field small{color:var(--muted)}input,select,textarea{width:100%;border:1px solid #cfd9dd;background:#fff;color:var(--ink);border-radius:12px;padding:12px 13px;outline:none;transition:.18s border-color,.18s box-shadow}textarea{min-height:96px;resize:vertical}input:focus,select:focus,textarea:focus{border-color:#72989c;box-shadow:0 0 0 4px rgba(25,76,82,.09)}input[readonly]{background:#f7f9fa;color:#617078}.money-wrap{position:relative}.money-wrap input{padding-right:40px}.money-wrap span{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--muted);font-weight:700}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 16px;font-weight:800;transition:.18s transform,.18s box-shadow,.18s background}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 8px 22px rgba(25,76,82,.18)}.btn-secondary{background:#edf1f2;color:var(--ink)}.btn-danger{background:#fff0f0;color:var(--danger)}.btn-lg{padding:14px 20px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.sticky-actions{position:sticky;bottom:12px;z-index:15;background:rgba(255,255,255,.94);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:12px;display:flex;gap:10px;justify-content:flex-end;backdrop-filter:blur(10px)}
.notice{padding:13px 15px;border-radius:12px;margin:12px 0}.notice-info{background:#edf7f8;color:#204c50;border:1px solid #d5e8e9}.notice-ok{background:#edf8f1;color:#265f3b;border:1px solid #d4eadb}.notice-warning{background:#fff8e8;color:#6e5315;border:1px solid #ead9aa}.notice-error{background:#fff1f1;color:#7d2525;border:1px solid #f0d0d0}.required:after{content:" *";color:var(--danger)}
.traveller-row{display:grid;grid-template-columns:42px 1fr auto;gap:10px;align-items:center;margin:9px 0}.traveller-index{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#edf1f2;color:var(--muted);font-weight:800}.icon-btn{border:0;border-radius:10px;padding:10px 12px;background:#f4f6f7;color:var(--danger)}
.rule-list{display:grid;gap:10px}.rule{display:flex;gap:10px;align-items:flex-start;background:#f8fafb;border:1px solid #e6ecef;padding:12px;border-radius:12px}.rule input{width:auto;margin-top:4px}
.signature-wrap{border:1px dashed #9fb1b7;background:#fbfcfc;border-radius:14px;overflow:hidden}.signature-toolbar{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border-bottom:1px solid #e4eaed;background:#f6f8f9}.signature-canvas{display:block;width:100%;height:190px;touch-action:none;cursor:crosshair}.signature-help{font-size:12px;color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{padding:15px;border-radius:14px;background:#f6f9fa;border:1px solid #e7ecef}.metric strong{display:block;font-size:18px}.metric span{color:var(--muted);font-size:12px}
.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:14px}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);background:#f8fafb}tr:last-child td{border-bottom:0}
.contract-paper{max-width:900px;margin:24px auto;background:#fff;border:1px solid #dde3e6;box-shadow:0 16px 50px rgba(22,33,41,.08);padding:42px}.contract-head{display:flex;justify-content:space-between;gap:20px;border-bottom:2px solid var(--brand);padding-bottom:18px;margin-bottom:22px}.contract-head h1{font-size:26px;line-height:1.15;margin:0}.contract-ref{text-align:right;color:var(--muted);font-size:13px}.contract-section{margin:24px 0}.contract-section h2{font-size:16px;color:var(--brand);margin:0 0 12px}.contract-kv{display:grid;grid-template-columns:180px 1fr;gap:6px 12px}.contract-kv dt{color:var(--muted)}.contract-kv dd{margin:0;font-weight:600}.signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.signature-box{border:1px solid #dce3e6;border-radius:12px;padding:12px;min-height:180px}.signature-svg{width:100%;height:130px;color:#111}.hash{word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;color:var(--muted)}
.login-card{max-width:460px;margin:8vh auto}.footer{max-width:1120px;margin:0 auto;padding:18px 24px 40px;color:var(--muted);font-size:12px}.setup-step{padding:12px 0;border-top:1px solid var(--line)}.setup-step:first-of-type{border-top:0}
@media(max-width:800px){.shell{padding:16px}.topbar-inner{padding:12px 16px}.nav a{display:none}.grid-2,.grid-3,.signature-grid,.summary-grid{grid-template-columns:1fr}.card{padding:18px;border-radius:15px}.sticky-actions{justify-content:stretch}.sticky-actions .btn{flex:1}.contract-paper{margin:0;padding:22px 16px;border-left:0;border-right:0}.contract-head{display:block}.contract-ref{text-align:left;margin-top:10px}.contract-kv{grid-template-columns:1fr;gap:2px}.contract-kv dd{margin:0 0 8px}.traveller-row{grid-template-columns:34px 1fr auto}}
@media print{body{background:#fff}.topbar,.no-print,.footer{display:none!important}.contract-paper{box-shadow:none;border:0;margin:0;max-width:none;padding:0}.signature-box{break-inside:avoid}.contract-section{break-inside:avoid}.hash{font-size:9px}}

/* v1.4 — parcours de création simplifié */
.full{grid-column:1/-1}.compact-card{padding-bottom:20px}.schedule-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0 8px}.schedule-strip>div{border:1px solid var(--line);background:#f8fafb;border-radius:14px;padding:14px}.schedule-strip span{display:block;color:var(--muted);font-size:12px}.schedule-strip strong{display:block;font-size:20px;margin-top:2px}.travellers-box{margin-top:14px}.price-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric.emphasis{background:#eef8f7;border-color:#d7e9e7}.metric small{display:block;color:var(--muted);font-size:12px;margin-top:5px;line-height:1.35}.money-grid{align-items:start}.rule-static{position:relative;padding-left:12px}.rule-check{width:26px;height:26px;flex:0 0 26px;border-radius:50%;display:grid;place-items:center;background:#e8f5ec;color:var(--ok);font-weight:900}.acceptance{margin-top:18px;background:#eef8f7;border-color:#d7e9e7}select#property_number{font-weight:750}.field input[readonly],.field textarea[readonly]{border-style:dashed}.hero+.notice{margin-top:14px}
@media(max-width:800px){.schedule-strip,.price-summary{grid-template-columns:1fr}.schedule-strip{gap:8px}.schedule-strip>div{display:flex;justify-content:space-between;align-items:center}.schedule-strip strong{font-size:17px}.full{grid-column:auto}.money-grid{grid-template-columns:1fr}.sticky-actions{bottom:8px}.sticky-actions .btn{min-height:48px}.hero{padding-top:18px}.hero h1{font-size:32px}.card h2{font-size:19px}.signature-canvas{height:170px}}

/* v1.5.0 — parcours contrat rapide */
.shell-narrow{max-width:980px}.compact-hero{padding-bottom:12px}.quick-card{padding:22px}.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.section-title-row>div{display:flex;align-items:center;gap:10px}.section-title-row h2{margin:0}.step-pill{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:999px;background:#111827;color:#fff;font-weight:800}.owner-chip{font-size:.9rem;font-weight:700;padding:7px 10px;border-radius:999px;background:#eef2ff;color:#3730a3}.property-quick-info{margin-top:16px;padding:16px;border:1px solid #e5e7eb;border-radius:16px;background:#fafafa}.property-quick-info>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.property-quick-info span{color:#4b5563}.property-quick-info p{margin:10px 0 0}.live-price-card{margin-top:16px;padding:18px;border-radius:18px;background:#111827;color:#fff}.live-price-card>div:first-child{display:flex;align-items:end;justify-content:space-between;gap:14px}.live-price-card strong{font-size:clamp(1.7rem,5vw,2.5rem)}.live-price-card small{display:block;margin-top:6px;color:#d1d5db}.mini-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.mini-stats span{background:rgba(255,255,255,.1);padding:7px 9px;border-radius:10px;font-size:.86rem}.compact-grid{margin-top:16px}.rules-details{border:1px solid #e5e7eb;border-radius:14px;padding:12px 14px;margin-bottom:18px}.rules-details summary{cursor:pointer;font-weight:700}.compact-rules{margin-top:12px}.signature-grid-compact{margin-top:14px}.btn-sm{padding:7px 10px;font-size:.85rem}.quick-actions{justify-content:space-between}.sticky-total{display:flex;flex-direction:column;min-width:140px}.sticky-total span{font-size:.78rem;color:#6b7280}.sticky-total strong{font-size:1.15rem}.full-mobile{grid-column:auto}.traveller-row input{min-height:46px}
@media(max-width:720px){.quick-card{padding:16px}.section-title-row{align-items:flex-start}.owner-chip{font-size:.78rem}.full-mobile{grid-column:1/-1}.live-price-card>div:first-child{align-items:flex-start;flex-direction:column;gap:4px}.signature-grid-compact{grid-template-columns:1fr}.quick-actions{gap:10px}.quick-actions .btn{flex:1}.sticky-total{min-width:115px}.hero h1{font-size:2rem}}


/* v1.8.0 — règlement intérieur complet, capacité réelle, PWA et diagnostic e-mail */
.live-price-card>div:first-child span{display:block;line-height:1.25}
.live-price-card>div:first-child strong{display:block;white-space:nowrap}
.mini-stats span{display:inline-flex;gap:4px;align-items:center}
.mini-stats b{margin-left:2px}
.install-app-btn{padding:9px 12px;border-radius:10px;border:1px solid #cbd5d8;background:#fff;color:var(--brand);font-weight:800}
.install-app-btn:hover{background:#eef8f7}
.signature-canvas{overscroll-behavior:contain;user-select:none;-webkit-user-select:none}
@media(max-width:720px){
  .mini-stats{display:grid;grid-template-columns:1fr;gap:7px}
  .mini-stats span{justify-content:space-between;width:100%}
  .live-price-card>div:first-child{display:grid;grid-template-columns:1fr auto;align-items:center;gap:12px}
  .live-price-card>div:first-child strong{font-size:1.8rem}
  .nav .install-app-btn{display:inline-flex}
}

/* v2.1.0 — réservations, navigation mobile et diagnostics SMTP */
.reservation-paper{max-width:780px}
.reservation-confirmation{background:#f7faf9;border:1px solid #dce9e6;border-radius:14px;padding:16px}
.nav{min-width:0}
@media(max-width:800px){
  .topbar-inner{align-items:flex-start;flex-direction:column;gap:10px}
  .nav{display:flex;width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  .nav a,.nav button{display:inline-flex!important;flex:0 0 auto;white-space:nowrap;background:#edf1f2}
  .brand{flex:0 0 auto}
  .table-wrap table{min-width:820px}
}

/* v2.2.0 — remises réservations et contrats */
.discount-box{margin-top:14px;padding:14px 16px;border:1px solid #dfe5e8;border-radius:14px;background:#f8fafb}
.discount-controls{display:grid;grid-template-columns:minmax(0,1fr) 110px;gap:10px;align-items:center}
.discount-preview{display:block;margin-top:6px;color:var(--muted);line-height:1.4}
.optional{font-weight:500;color:var(--muted)}
@media(max-width:560px){.discount-controls{grid-template-columns:1fr 92px}.discount-box{padding:12px}}
