:root{--ink:#20201e;--muted:#6b655b;--paper:#f4efe5;--card:#fffdf8;--dark:#171b18;--copper:#b85c32;--copper-dark:#934626;--line:rgba(25,28,25,.12);--green:#356535;--danger:#9e2d2d;--shadow:0 24px 70px rgba(48,39,26,.13);font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{font-size:17px}body{margin:0;background:var(--paper);color:var(--ink)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}.hidden{display:none!important}.site-header{background:var(--dark);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.header-inner{max-width:1180px;margin:auto;min-height:78px;padding:12px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand,.brand-card{display:flex;align-items:center;gap:13px}.brand strong,.brand-card strong{display:block;font-size:1.08rem;letter-spacing:.04em}.brand small,.brand-card small{display:block;margin-top:3px;color:rgba(255,255,255,.65);font-size:.78rem}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--copper);font-size:1.35rem}.phone-link{color:rgba(255,255,255,.84);font-weight:700;text-decoration:none}.hero{margin:0 auto;max-width:1900px;background:#252a26;overflow:hidden}.hero img{display:block;width:100%;height:clamp(220px,25vw,410px);object-fit:cover}.client-shell{max-width:790px;margin:auto;padding:38px 18px 48px}.progress-wrap{margin-bottom:25px}.progress-wrap>div:first-child{display:flex;justify-content:space-between;margin-bottom:10px;font-size:.87rem;font-weight:800;color:#5a554d}.progress-track{height:9px;background:rgba(0,0,0,.1);border-radius:999px;overflow:hidden}.progress-track span{display:block;height:100%;border-radius:999px;background:var(--copper);transition:width .3s ease}.panel{background:var(--card);border:1px solid rgba(30,30,27,.08);border-radius:20px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:26px 31px 22px;border-bottom:1px solid var(--line)}.panel-head h1{margin:4px 0 0;font-size:clamp(1.55rem,4vw,2rem);line-height:1.15}.eyebrow{margin:0;color:var(--copper);font-size:.73rem;font-weight:900;letter-spacing:.18em;text-transform:uppercase}.panel-body{padding:30px}.lead{margin:0;color:var(--muted);line-height:1.7}.stack-lg{display:grid;gap:24px}.two-cols,.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.city-cols{grid-template-columns:1fr 190px}.contact-grid{grid-template-columns:120px 1fr 1fr}.field{display:grid;gap:8px}.field span{font-size:.88rem;font-weight:800}.field input,.field select,.field textarea{width:100%;min-height:47px;border:1px solid rgba(0,0,0,.17);border-radius:10px;background:#fff;padding:10px 12px;color:var(--ink);outline:none}.field textarea{min-height:95px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--copper);box-shadow:0 0 0 3px rgba(184,92,50,.13)}.field-wide{grid-column:1/-1}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;border:0;border-radius:10px;padding:10px 17px;font-weight:900;text-decoration:none;cursor:pointer;transition:.15s ease}.button:disabled{opacity:.58;cursor:wait}.button.primary{background:var(--copper);color:#fff}.button.primary:hover{background:var(--copper-dark)}.button.secondary{background:#fff;border:1px solid var(--line);color:var(--ink)}.button.danger{background:#a93c37;color:#fff}.button-large{width:100%;min-height:52px;font-size:1rem}.back-button{margin:-8px 0 22px -8px;padding:8px 10px;border:0;background:transparent;color:#554e45;font-weight:800;cursor:pointer}.choice-list{display:grid;gap:13px}.choice-card{display:flex;width:100%;align-items:center;gap:15px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:17px;text-align:left;color:var(--ink);cursor:pointer;transition:.15s ease}.choice-card:hover{border-color:var(--copper);transform:translateY(-1px);box-shadow:0 8px 25px rgba(48,39,26,.08)}.choice-icon{display:grid;place-items:center;width:46px;height:46px;flex:0 0 46px;border-radius:12px;background:#eee4d3}.choice-main{flex:1}.choice-main strong{display:block}.choice-main small{display:block;margin-top:5px;color:var(--muted)}.pill{display:inline-flex;border-radius:999px;padding:6px 10px;font-size:.78rem;font-weight:900}.pill.success{background:#e2f0df;color:var(--green)}.price{font-weight:900;color:#8d4b2e}.notice{display:flex;gap:13px;margin-bottom:22px;border:1px solid #d7c19d;border-radius:15px;background:#f7ecd9;padding:18px}.notice p{margin:0;line-height:1.65}.consent{display:flex;align-items:flex-start;gap:11px;border-radius:12px;background:rgba(0,0,0,.035);padding:15px;cursor:pointer}.consent input{margin-top:4px;accent-color:var(--copper);width:18px;height:18px;flex:0 0 18px}.consent span{font-size:.87rem;line-height:1.55}.summary-list{margin-bottom:23px;border:1px solid var(--line);border-radius:15px;background:#fff;padding:0 18px}.summary-list>div{display:grid;grid-template-columns:145px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid var(--line)}.summary-list>div:last-child{border:0}.summary-list strong{color:#766f64;font-size:.84rem}.summary-list span{font-weight:700}.alert{padding:14px 16px;border-radius:11px;margin-bottom:20px;line-height:1.5}.alert.danger{border:1px solid #efb7b3;background:#fff0ef;color:#8d2727}.alert.warning{border:1px solid #ead29d;background:#fff8df;color:#715510}.success-block{text-align:center;padding:15px 0}.success-block>span{display:grid;place-items:center;width:66px;height:66px;margin:0 auto 17px;border-radius:50%;background:#dcebd8;color:var(--green);font-size:2rem;font-weight:900}.success-block h1,.success-block h2{margin:0 0 12px}.success-block p{max-width:610px;margin:0 auto 20px;color:#5f594f;line-height:1.7}.success-block .button{margin-top:10px}.reference{margin:18px 0;border-radius:10px;background:rgba(0,0,0,.04);padding:14px;font-weight:900}.client-footer{text-align:center;color:#6e685e;font-size:.78rem;margin-top:24px}.install-body{min-height:100vh;background:var(--dark);padding:35px 18px}.install-shell{max-width:760px;margin:auto}.brand-card{color:#fff;margin-bottom:22px}.install-panel{padding:31px}.install-panel h1{margin:8px 0 8px}.muted{color:var(--muted);line-height:1.6}.requirements{display:grid;gap:8px;margin:22px 0}.requirement{display:flex;align-items:center;gap:9px;padding:10px 12px;border-radius:9px;font-size:.86rem}.requirement span{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-weight:900}.requirement.ok{background:#eaf5e7;color:#315d31}.requirement.bad{background:#fff0ef;color:#8d2727}.admin-body{background:#ece8df}.admin-shell{max-width:1280px;margin:auto;padding:28px 18px 50px}.admin-banner{padding:12px 18px;background:#fff2bf;color:#604c08;text-align:center;font-weight:800;border-bottom:1px solid #e4cd75}.admin-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.admin-nav a{padding:10px 13px;border-radius:9px;background:#fff;color:var(--ink);font-size:.84rem;font-weight:800;text-decoration:none}.admin-nav a.active{background:var(--copper);color:#fff}.admin-grid{display:grid;grid-template-columns:370px 1fr;gap:20px;align-items:start}.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:21px;box-shadow:0 10px 35px rgba(48,39,26,.07)}.card h2{margin:0 0 18px;font-size:1.2rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.stat{background:#fff;border-radius:13px;padding:18px;border:1px solid var(--line)}.stat strong{display:block;font-size:1.7rem}.stat span{color:var(--muted);font-size:.8rem}.table-wrap{overflow:auto}.data-table{width:100%;border-collapse:collapse;font-size:.84rem}.data-table th,.data-table td{padding:12px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table th{color:#696257;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.inline-form{display:inline}.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;background:#65a363}.status-dot.off{background:#aaa}.file-drop{border:2px dashed rgba(0,0,0,.16);border-radius:13px;padding:20px;text-align:center}.code-help{padding:14px;border-radius:10px;background:#f4efe5;font-size:.82rem;line-height:1.6}.login-shell{min-height:100vh;display:grid;place-items:center;background:var(--dark);padding:18px}.login-card{max-width:430px;width:100%}.preview-image{width:100%;height:190px;object-fit:cover;border-radius:12px;border:1px solid var(--line)}
.alternate-date{margin-top:24px;border:1px solid #d7c19d;border-radius:15px;background:#f7ecd9;padding:20px}.alternate-date h3{margin:0 0 8px}.alternate-date p{margin:0 0 16px;color:var(--muted);line-height:1.6}.admin-install-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:-5px 0 20px;border:1px solid #d7c19d;border-radius:13px;background:#f7ecd9;padding:14px 16px}.admin-install-bar strong,.admin-install-bar small{display:block}.admin-install-bar small{margin-top:4px;color:var(--muted)}.city-assistant{display:grid;gap:8px}.city-autocomplete{display:grid;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 14px 34px rgba(48,39,26,.14)}.city-suggestion{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;min-height:58px;border:0;border-bottom:1px solid var(--line);background:#fff;padding:10px 13px;color:var(--ink);text-align:left;cursor:pointer}.city-suggestion:last-child{border-bottom:0}.city-suggestion:hover,.city-suggestion:focus{background:#f7ecd9;outline:2px solid var(--copper);outline-offset:-2px}.city-suggestion span strong,.city-suggestion span small{display:block}.city-suggestion small{color:var(--muted)}.status-badge{display:inline-flex;border-radius:999px;padding:7px 10px;font-size:.78rem;font-weight:900}.status-badge.on{background:#e2f0df;color:#356535}.status-badge.off{background:#f1e5e3;color:#8d2727}.service-status-form{display:grid;gap:8px;min-width:230px;margin-top:10px}.service-status-form select{width:100%;min-height:43px;border:1px solid rgba(0,0,0,.17);border-radius:9px;background:#fff;padding:8px 10px;color:var(--ink)}
.login-brand{color:var(--ink)}.login-brand small{color:var(--muted)}
.hero{width:calc(100% - 36px);max-width:754px;margin:28px auto 0;border-radius:20px;box-shadow:var(--shadow)}.hero img{height:auto;aspect-ratio:1729/910;object-fit:contain;background:var(--dark)}
@media(max-width:620px){.hero{width:calc(100% - 24px);margin-top:20px;border-radius:16px}}
body.theme-dark{--ink:#f2eee6;--muted:#beb8ae;--paper:#101411;--card:#1a201c;--dark:#090c0a;--line:rgba(255,255,255,.14);--green:#8fc98c;--danger:#ff9992;--shadow:0 24px 70px rgba(0,0,0,.38);background:var(--paper);color:var(--ink);color-scheme:dark}
body.theme-dark.admin-body{background:#0d110e}
body.theme-dark .panel,body.theme-dark .card,body.theme-dark .stat,body.theme-dark .admin-nav a,body.theme-dark .choice-card,body.theme-dark .summary-list,body.theme-dark .button.secondary,body.theme-dark .city-autocomplete,body.theme-dark .city-suggestion{background:var(--card);color:var(--ink);border-color:var(--line)}
body.theme-dark .field input,body.theme-dark .field select,body.theme-dark .field textarea{background:#101511;color:var(--ink);border-color:rgba(255,255,255,.22)}
body.theme-dark .service-status-form select{background:#101511;color:var(--ink);border-color:rgba(255,255,255,.22)}body.theme-dark .status-badge.on{background:#203b25;color:#a9dca5}body.theme-dark .status-badge.off{background:#351b1a;color:#ffb5af}
body.theme-dark .progress-wrap>div:first-child,body.theme-dark .back-button,body.theme-dark .summary-list strong,body.theme-dark .success-block p,body.theme-dark .client-footer,body.theme-dark .data-table th{color:var(--muted)}
body.theme-dark .choice-icon{background:#30291f}body.theme-dark .pill.success{background:#203b25;color:#a9dca5}body.theme-dark .price{color:#e6a27e}body.theme-dark .city-suggestion:hover,body.theme-dark .city-suggestion:focus{background:#292319}
body.theme-dark .notice,body.theme-dark .alternate-date,body.theme-dark .admin-install-bar{background:#292319;border-color:#665843}body.theme-dark .code-help{background:#111612}body.theme-dark .consent,body.theme-dark .reference{background:rgba(255,255,255,.06)}
body.theme-dark .alert.danger{background:#351b1a;border-color:#75403c;color:#ffb5af}body.theme-dark .alert.warning{background:#302915;border-color:#665a2a;color:#f1da87}
body.theme-dark .requirement.ok{background:#1d3521;color:#a9dca5}body.theme-dark .requirement.bad{background:#351b1a;color:#ffb5af}
body.theme-dark .file-drop{border-color:rgba(255,255,255,.23)}body.theme-dark .data-table td{border-color:var(--line)}
@media(max-width:900px){.admin-grid{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.contact-grid{grid-template-columns:1fr 1fr}.contact-grid>.field:first-child{grid-column:1/-1}}
@media(max-width:620px){html{font-size:17px}.phone-link{display:none}.header-inner{min-height:70px;padding:10px 15px}.brand-mark{width:43px;height:43px}.client-shell{padding:25px 12px 38px}.panel-head,.panel-body{padding:22px 18px}.city-cols,.two-cols,.form-grid,.contact-grid{grid-template-columns:1fr}.field-wide{grid-column:auto}.summary-list>div{grid-template-columns:1fr;gap:4px}.choice-card{align-items:flex-start;flex-wrap:wrap}.choice-main{min-width:calc(100% - 65px)}.pill,.price{margin-left:61px}.stats{grid-template-columns:1fr 1fr}.install-panel{padding:22px 17px}.admin-install-bar{align-items:stretch;flex-direction:column}.admin-install-bar .button{width:100%}}
.hp-field{position:absolute!important;left:-9999px!important;top:auto;width:1px;height:1px;overflow:hidden}
.referral-block h3{margin:0 0 6px;font-size:1.05rem}.referral-block p{margin:0}
.gap-fill-banner h3{margin:0 0 6px;font-size:1.05rem}.gap-fill-banner p{margin:0 0 12px;white-space:pre-line}
.gap-fill-banner{border-color:#c9deca;background:#eef7ee}
body.theme-dark .gap-fill-banner{background:#173a20;border-color:#1f4d28}
.tour-discount-banner{border-color:#c9deca;background:#eef7ee;margin:14px 0}
.tour-discount-banner p{margin:0;font-weight:700}
body.theme-dark .tour-discount-banner{background:#173a20;border-color:#1f4d28}
.pill.tour-discount-pill{background:#e4f5e6;color:#1f6b2c}
body.theme-dark .pill.tour-discount-pill{background:#173a20;color:#8fd39d}
.client-link{background:none;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:3px}
.client-link:hover{color:var(--copper)}
.modal-overlay{position:fixed;inset:0;background:rgba(20,18,14,.55);display:grid;place-items:center;padding:18px;z-index:999}
.modal-card{background:#fff;border-radius:16px;max-width:560px;width:100%;max-height:85vh;overflow:auto;box-shadow:var(--shadow)}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff}
.modal-head h3{margin:0;font-size:1.15rem}
.modal-close{background:none;border:0;font-size:1.4rem;line-height:1;cursor:pointer;color:var(--muted);padding:4px 8px}
.modal-body{padding:20px 22px}
.modal-row{display:grid;grid-template-columns:150px 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.modal-row:last-child{border:0}
.modal-row strong{color:#766f64;font-size:.82rem}
.modal-row span{font-weight:700;word-break:break-word}
body.theme-dark .modal-card,body.theme-dark .modal-head{background:#20241f}
body.theme-dark .modal-row strong{color:#9a9488}
.planning-table th,.planning-table td{text-align:center;vertical-align:top;min-width:110px}
.planning-table td:first-child,.planning-table th:first-child{text-align:left;min-width:90px}
.planning-today{background:#fdf6df}
body.theme-dark .planning-today{background:#3a331a}
.planning-entry{display:block;padding:6px 8px;margin:2px auto;border-radius:8px;background:#e4f5e6;color:#1f6b2c;text-decoration:none;max-width:140px}
.planning-entry:hover{filter:brightness(0.97)}
.planning-entry.planning-inactive{background:#f0f0ee;color:#7c7c78}
body.theme-dark .planning-entry{background:#173a20;color:#8fd39d}
body.theme-dark .planning-entry.planning-inactive{background:#232722;color:#9a9a94}
.referral-link-box{display:flex;gap:8px;margin-top:12px}.referral-link-box input{flex:1;min-width:0;min-height:44px;border:1px solid rgba(0,0,0,.17);border-radius:10px;padding:8px 12px;background:#fff;color:var(--ink);font-size:.85rem}
.share-buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
body.theme-dark .referral-link-box input{background:#101511;color:var(--ink);border-color:rgba(255,255,255,.22)}
.data-table tr.status-scheduled{background:#e4f5e6}
.data-table tr.status-scheduled td{border-color:#c3e6c8}
.data-table tr.status-contacted{background:#fdf6df}
.data-table tr.status-closed{background:#f0f0ee;color:#7c7c78}
body.theme-dark .data-table tr.status-scheduled{background:#173a20}
body.theme-dark .data-table tr.status-scheduled td{border-color:#1f4d28}
body.theme-dark .data-table tr.status-contacted{background:#3a331a}
body.theme-dark .data-table tr.status-closed{background:#232722;color:#9a9a94}
.pill.gap-fill-pill{background:#fdeecb;color:#8a5a12}
body.theme-dark .pill.gap-fill-pill{background:#4a3a17;color:#f0c98a}
.data-table tr.booking-row.status-confirmed{background:#e4f5e6}
.data-table tr.booking-row.status-confirmed td{border-color:#c3e6c8}
.data-table tr.booking-row.status-completed{background:#e3edf7}
.data-table tr.booking-row.status-cancelled{background:#f7e6e6;color:#8a4444}
.data-table tr.booking-row.status-absent{background:#fdf1de;color:#8a5a12}
body.theme-dark .data-table tr.booking-row.status-confirmed{background:#173a20}
body.theme-dark .data-table tr.booking-row.status-confirmed td{border-color:#1f4d28}
body.theme-dark .data-table tr.booking-row.status-completed{background:#1c2e40}
body.theme-dark .data-table tr.booking-row.status-cancelled{background:#3a2222;color:#e6b8b8}
body.theme-dark .data-table tr.booking-row.status-absent{background:#4a3a17;color:#f0c98a}

/* ===== Rafraîchissement visuel (typographie, couleurs, reliefs) ===== */
:root{
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --copper:#c1622f;--copper-dark:#9c4a21;--ink:#211f1a;--muted:#716a5e;
  --paper:#f6f1e6;--card:#fffefb;--shadow:0 20px 55px rgba(43,32,18,.12);
}
h1,h2,h3{font-weight:800;letter-spacing:-.01em}
.eyebrow{letter-spacing:.16em}
.brand-mark{background:radial-gradient(circle at 32% 28%,#e07f4c,var(--copper) 62%,var(--copper-dark));box-shadow:inset 0 0 0 1px rgba(255,255,255,.18),0 6px 14px rgba(0,0,0,.22)}
.site-header{background:linear-gradient(180deg,#1c211d,var(--dark))}
.progress-track span{background:linear-gradient(90deg,#d97a45,var(--copper))}
.panel{border-radius:22px}
.panel-head{position:relative}
.panel-head::before{content:"";position:absolute;top:0;left:31px;right:31px;height:3px;border-radius:0 0 4px 4px;background:linear-gradient(90deg,var(--copper),#e2925f)}
.card{border-radius:16px;transition:box-shadow .15s ease}
.button{border-radius:11px;transition:transform .12s ease,box-shadow .12s ease,background .15s ease}
.button.primary{background:linear-gradient(180deg,#cb6c3a,var(--copper));box-shadow:0 8px 20px rgba(184,92,50,.28)}
.button.primary:hover{background:linear-gradient(180deg,var(--copper),var(--copper-dark));transform:translateY(-1px);box-shadow:0 10px 24px rgba(184,92,50,.34)}
.button.primary:active{transform:translateY(0)}
.button.secondary:hover{border-color:var(--copper);color:var(--copper-dark)}
.button:focus-visible,.choice-card:focus-visible,.client-link:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--copper);outline-offset:2px}
.choice-card{border-radius:16px}
.choice-card:hover{box-shadow:0 12px 30px rgba(48,39,26,.11)}
.choice-icon{background:linear-gradient(160deg,#f0e6d2,#e6d7ba)}
.pill{letter-spacing:.01em}
.admin-nav a{transition:background .15s ease,color .15s ease}
.admin-nav a:not(.active):hover{background:#fff6ea}
body.theme-dark .admin-nav a:not(.active):hover{background:#232922}
body.theme-dark .choice-icon{background:linear-gradient(160deg,#342c1f,#241f16)}
body.theme-dark .brand-mark{box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),0 6px 14px rgba(0,0,0,.4)}
.checkbox-group{display:grid;gap:8px;margin-top:4px}
.checkbox-group .consent{padding:11px 15px}
