:root{
  --navy:#16283f;--navy-2:#0f1b2d;--navy-3:#1a2940;--green:#4f8271;--green-2:#3a6255;
  --cream:#f5f2ea;--cream-2:#efeade;--sand:#e4dbcb;--slate:#586371;--white:#fff;--gold:#e6c56b;
  --shadow:0 18px 42px rgba(22,40,63,.12);--radius:22px;--tab-h:76px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Instrument Sans",system-ui,-apple-system,sans-serif;color:var(--navy);background:var(--cream);-webkit-font-smoothing:antialiased}
button,input,textarea,select{font:inherit}.hidden{display:none!important}
html.host-mode,body.host-mode{background:var(--navy-2)}
html.guest-mode,body.guest-mode{background:var(--cream)}
.app-shell{min-height:100dvh;background:var(--cream);padding-bottom:calc(var(--tab-h) + env(safe-area-inset-bottom));overflow-x:hidden}
.app-shell.host{background:var(--navy-2);color:#fff}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;min-height:calc(58px + env(safe-area-inset-top));height:auto;padding:calc(8px + env(safe-area-inset-top)) 18px 8px;background:rgba(245,242,234,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(228,219,203,.7)}
.host .topbar{background:rgba(15,27,45,.96);border-bottom-color:rgba(255,255,255,.08)}
.brand{display:flex;align-items:center;gap:8px;font-family:"Fraunces",Georgia,serif;font-size:1rem;font-weight:600}.brand span{color:var(--green)}.host .brand span{color:#8fc3ad}
.logo{width:25px;height:25px;border:1.5px solid currentColor;border-radius:8px;display:grid;place-items:center;font-family:"Fraunces";font-weight:600}.logo::after{content:"R"}
.icon-btn{border:0;background:transparent;color:inherit;width:38px;height:38px;border-radius:12px;display:grid;place-items:center}.avatar{width:30px;height:30px;border-radius:50%;background:var(--green);display:grid;place-items:center;color:#fff;font-size:.72rem;font-weight:700}
.page{display:none;min-height:calc(100dvh - 58px - var(--tab-h));padding:16px 16px 28px}.page.active{display:block}.host .page{padding-bottom:30px}
h1,h2,h3{font-family:"Fraunces",Georgia,serif;font-weight:500;letter-spacing:-.02em;margin:0}.eyebrow{font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--green-2);font-weight:700}.host .eyebrow{color:#8fc3ad}
.hero{background:linear-gradient(145deg,#cbdde0,#eaf0ec);border-radius:24px;padding:22px;box-shadow:var(--shadow);margin-bottom:14px}.hero h1{font-size:2rem;margin:4px 0 7px}.meta{color:var(--slate);font-size:.8rem}.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.chip{background:rgba(255,255,255,.78);padding:6px 10px;border-radius:999px;font-size:.68rem}
.card{background:var(--white);border:1px solid var(--sand);border-radius:18px;box-shadow:var(--shadow);padding:15px}.host .card{background:var(--navy-3);border-color:rgba(255,255,255,.08);box-shadow:none}
.wifi-strip{display:flex;align-items:center;gap:14px}.grow{flex:1}.label{font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--green-2);font-weight:700}.value{font-weight:700;margin-top:2px}.sub{font-size:.74rem;color:var(--slate)}.host .sub{color:#9fb0c4}
.qr{width:62px;height:62px;border-radius:10px;background:repeating-conic-gradient(#132136 0 25%,#fff 0 50%) 0/14px 14px;border:6px solid #fff;box-shadow:0 0 0 1px var(--sand)}
.section-title{margin:22px 2px 10px;font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--slate);font-weight:700;display:flex;justify-content:space-between;align-items:center}.host .section-title{color:#8fc3ad}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.shortcut{min-height:128px;display:flex;flex-direction:column;justify-content:space-between}.shortcut .ico{width:38px;height:38px;border-radius:11px;background:var(--cream-2);color:var(--green-2);display:grid;place-items:center;font-size:1.1rem}.shortcut b{display:block;font-size:.9rem}.shortcut small{color:var(--slate)}
.list{display:grid;gap:10px}.list-item{display:flex;gap:12px;align-items:flex-start}.list-item .ico{width:38px;height:38px;border-radius:10px;background:rgba(79,130,113,.12);display:grid;place-items:center;color:var(--green-2);flex:none}.list-item h3{font-family:"Instrument Sans";font-size:.92rem;font-weight:700}.list-item p{margin:3px 0 0;color:var(--slate);font-size:.75rem}.chev{margin-left:auto;color:var(--slate)}
.checklist{display:grid;gap:10px}.check{display:flex;gap:10px;align-items:center}.check input{width:20px;height:20px;accent-color:var(--green)}
.time-box{background:linear-gradient(135deg,#e8eee8,#f3efe5);border-radius:17px;padding:16px;margin-bottom:12px}.time-box b{font-family:"Fraunces";font-size:1.7rem;display:block}
.host-title{margin:4px 0 16px}.host-title h1{font-size:1.7rem}.host-title p{margin:5px 0 0;color:#9fb0c4;font-size:.82rem}
.stats{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{min-height:105px}.stat strong{font-family:"Fraunces";font-size:1.8rem;display:block}.stat span{font-size:.7rem;color:#9fb0c4}
.property{padding:0;overflow:hidden}.property-photo{height:94px;background:linear-gradient(135deg,#e8d9c8,#cbb9a6);position:relative}.property-photo.nissa{background:linear-gradient(135deg,#bcd4d8,#8fb3b0)}.badge{position:absolute;top:10px;left:10px;background:rgba(22,40,63,.84);color:#fff;border-radius:999px;padding:5px 9px;font-size:.58rem;font-weight:700}.badge.live{background:rgba(58,98,85,.92)}.property-body{padding:13px}.property-body h3{font-size:1.03rem}.property-body p{margin:4px 0 10px;color:#9fb0c4;font-size:.7rem}.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.btn{border:0;border-radius:10px;padding:10px 12px;font-weight:700}.btn.ghost{background:rgba(255,255,255,.08);color:#e3e9f0}.btn.gold{background:var(--gold);color:#1a2333}.btn.green{background:var(--green);color:#fff}.btn.full{width:100%}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.day{aspect-ratio:1;border-radius:9px;background:rgba(255,255,255,.05);display:grid;place-items:center;font-size:.68rem;color:#9fb0c4}.day.active{background:var(--green-2);color:#fff}.agenda-item{display:flex;gap:12px;align-items:center}.datebox{width:46px;height:52px;border-radius:10px;background:rgba(255,255,255,.06);display:grid;place-items:center;flex:none}.datebox b{font-family:"Fraunces";font-size:1.15rem}.datebox span{font-size:.55rem;color:#8fc3ad;text-transform:uppercase}.agenda-item h3{font-family:"Instrument Sans";font-size:.86rem;font-weight:700}.agenda-item p{margin:3px 0 0;color:#9fb0c4;font-size:.68rem}
.msg{display:flex;gap:10px;align-items:center}.msg .avatar{width:38px;height:38px;background:#365372}.msg h3{font-family:"Instrument Sans";font-size:.82rem;font-weight:700}.msg p{margin:2px 0 0;color:#9fb0c4;font-size:.67rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:210px}.dot{width:7px;height:7px;border-radius:50%;background:#8fc3ad;margin-left:auto}
.form{display:grid;gap:11px}.field{display:grid;gap:5px}.field label{font-size:.7rem;color:#9fb0c4}.field input,.field select,.field textarea{width:100%;border:1px solid rgba(255,255,255,.1);background:#13223a;color:#fff;border-radius:11px;padding:12px}.field textarea{min-height:90px;resize:vertical}
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.more-item{min-height:110px}.more-item b{display:block;margin-top:18px}.more-item span{color:#9fb0c4;font-size:.7rem}
.tabbar{position:fixed;z-index:30;left:0;right:0;bottom:0;min-height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(5,1fr);background:rgba(255,255,255,.97);border-top:1px solid var(--sand);backdrop-filter:blur(16px)}.host .tabbar{background:rgba(22,40,63,.97);border-top-color:rgba(255,255,255,.08)}
.tab{border:0;background:transparent;color:#6b7684;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.57rem}.tab .ti{font-size:1.1rem;line-height:1}.tab.active{color:var(--green-2);font-weight:700}.host .tab.active{color:#8fc3ad}.host .tab{color:#7f92a7}
.mode-switch{position:fixed;z-index:50;right:12px;top:calc(64px + env(safe-area-inset-top));background:#fff;border:1px solid var(--sand);border-radius:999px;padding:6px;box-shadow:var(--shadow);display:flex;gap:4px}.mode-switch button{border:0;border-radius:999px;padding:7px 10px;background:transparent;color:var(--slate);font-weight:700;font-size:.7rem}.mode-switch button.active{background:var(--navy);color:#fff}
.toast{position:fixed;left:50%;bottom:calc(var(--tab-h) + 22px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#0f1b2d;color:#fff;padding:10px 14px;border-radius:999px;font-size:.75rem;z-index:60;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1}
@media(min-width:760px){body{display:grid;place-items:center;background:#e9e5dc}.topbar{min-height:58px;padding-top:8px}.app-shell{width:430px;min-height:860px;max-height:94vh;overflow:auto;border-radius:34px;box-shadow:0 30px 80px rgba(22,40,63,.25);position:relative}.tabbar{position:sticky;left:auto;right:auto;bottom:0}.mode-switch{position:fixed}}


/* V23 — authentification et icônes SVG */
.boot-screen{min-height:100dvh;display:grid;place-content:center;gap:12px;text-align:center;background:var(--cream);font-family:"Fraunces",Georgia,serif;font-size:1.35rem;font-weight:600}.boot-screen span{color:var(--green)}.boot-logo{width:54px;height:54px;margin:auto;border:1.5px solid var(--navy);border-radius:17px;display:grid;place-items:center;font-size:1.45rem}
.login-shell{min-height:100dvh;background:linear-gradient(180deg,#f8f5ee 0%,#f5f2ea 52%,#eee8dc 100%);padding:calc(22px + env(safe-area-inset-top)) 20px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:space-between}
.login-brand{display:flex;align-items:center;gap:10px;font-family:"Fraunces",Georgia,serif;font-size:1.15rem;font-weight:600}.login-brand span{color:var(--green)}
.login-card{width:min(100%,430px);margin:auto;background:#fff;border:1px solid var(--sand);border-radius:28px;padding:24px;box-shadow:0 28px 70px rgba(22,40,63,.14)}
.login-card .eyebrow{margin-bottom:9px}.login-card h1{font-size:2.15rem;margin-bottom:8px}.login-card>p{margin:0 0 22px;color:var(--slate);font-size:.9rem}
.login-form{display:grid;gap:13px}.login-field{display:grid;gap:6px}.login-field label{font-size:.72rem;font-weight:700;color:var(--navy-soft)}.login-field input{width:100%;border:1px solid var(--sand);background:#fbfaf7;color:var(--navy);border-radius:14px;padding:14px 15px;outline:none}.login-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(79,130,113,.12)}
.login-submit{border:0;border-radius:14px;padding:14px 16px;background:var(--navy);color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;gap:8px}.login-submit:disabled{opacity:.65}.login-error{display:none;border:1px solid #efb4ac;background:#fff2f0;color:#9e352b;padding:11px 12px;border-radius:12px;font-size:.78rem}.login-error.show{display:block}.login-links{display:flex;justify-content:space-between;gap:10px;margin-top:4px}.text-btn{border:0;background:transparent;color:var(--green-2);font-weight:700;padding:8px 0;font-size:.76rem}.preview-btn{width:100%;border:1px solid var(--sand);background:#fff;color:var(--navy);border-radius:14px;padding:13px 14px;font-weight:700;margin-top:12px}.login-foot{text-align:center;color:var(--slate);font-size:.7rem;padding-top:18px}
.icon-shape{width:40px;height:40px;border-radius:13px;background:var(--cream-2);display:grid;place-items:center;color:var(--green-2);flex:none}.icon-shape svg{width:20px;height:20px;display:block}.host .icon-shape{background:rgba(143,195,173,.12);color:#8fc3ad}.shortcut .icon-shape{margin-bottom:12px}.list-item .icon-shape{width:38px;height:38px;border-radius:12px}.more-item .icon-shape{width:42px;height:42px;border-radius:14px}
.tab .ti{width:32px;height:32px;border-radius:10px;display:grid;place-items:center;transition:.18s ease}.tab .ti svg{width:19px;height:19px;display:block}.tab.active .ti{background:rgba(79,130,113,.13);color:var(--green-2)}.host .tab.active .ti{background:rgba(143,195,173,.14);color:#8fc3ad}.tab:active .ti{transform:scale(.94)}
.topbar-actions{display:flex;align-items:center;gap:8px}.topbar-login{border:1px solid var(--sand);background:#fff;color:var(--navy);border-radius:999px;padding:8px 11px;font-size:.68rem;font-weight:700}.host .topbar-login{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.06);color:#fff}
@media(min-width:760px){.login-shell{min-height:100vh}.login-card{margin:auto}}

/* V24 — interactions hôte robustes */
button,[data-go],[data-action]{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.clickable-row{width:100%;text-align:left;color:inherit}
.clickable-row:active,.more-item:active,.btn:active,.tab:active{transform:scale(.985)}
.page{position:relative;z-index:1}
.tabbar{pointer-events:auto}
.tabbar .tab{pointer-events:auto}


/* V25 — finition premium, identité RivaScreen et compte hôte */
:root{--display:"Fraunces",Georgia,serif;--ui:"Instrument Sans",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
html,body,button,input,select,textarea{font-family:var(--ui)}
h1,h2,.host-title h1,.hero h1,.time-box b,.stat strong,.datebox b{font-family:var(--display);font-weight:500;letter-spacing:-.025em}
body{font-feature-settings:"kern" 1,"liga" 1;text-rendering:optimizeLegibility}
.wordmark{display:inline-flex;align-items:baseline;gap:4px;font-family:var(--display);font-size:1.2rem;font-weight:600;letter-spacing:-.035em;white-space:nowrap;color:var(--navy)}
.wordmark span:last-child{color:var(--green)}
.wordmark.is-light{color:#f9fbfc}.wordmark.is-light span:last-child{color:#8fc3ad}
.riva-logo{width:34px;height:34px;display:inline-grid;place-items:center;color:var(--navy);flex:none}.riva-logo svg{width:100%;height:100%;display:block}.riva-logo .riva-wave{stroke:var(--green)}
.riva-logo.is-light{color:#fff}.riva-logo.is-light .riva-wave{stroke:#8fc3ad}
.brand,.login-brand{display:flex;align-items:center;gap:10px}
.topbar{min-height:70px;padding-left:18px;padding-right:18px;border-bottom:1px solid rgba(22,40,63,.08)}
.host .topbar{border-bottom-color:rgba(255,255,255,.07);background:rgba(15,27,45,.94);backdrop-filter:blur(18px)}
.avatar.account-trigger{border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 24px rgba(0,0,0,.18);transition:transform .18s ease,box-shadow .18s ease}
.avatar.account-trigger:active{transform:scale(.95)}
.card{border-radius:18px;box-shadow:0 14px 34px -24px rgba(22,40,63,.38)}
.host .card{background:linear-gradient(180deg,rgba(255,255,255,.065),rgba(255,255,255,.045));border-color:rgba(255,255,255,.085);box-shadow:0 16px 36px -26px rgba(0,0,0,.7)}
.btn{border-radius:12px;letter-spacing:-.01em;transition:transform .16s ease,filter .16s ease}.btn:active{transform:scale(.98)}
.eyebrow{font-size:.66rem;letter-spacing:.18em}
.host-title p,.property-body p,.agenda-item p,.msg p,.more-item span{line-height:1.45}
.tabbar{box-shadow:0 -12px 32px rgba(22,40,63,.06)}.host .tabbar{box-shadow:0 -12px 32px rgba(0,0,0,.18)}

.account-backdrop{position:fixed;inset:0;z-index:70;background:rgba(4,12,23,.46);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .22s ease}
.account-sheet{position:fixed;left:0;right:0;bottom:0;z-index:71;background:#f8f6f0;color:var(--navy);border-radius:26px 26px 0 0;padding:10px 16px calc(18px + env(safe-area-inset-bottom));box-shadow:0 -28px 70px rgba(0,0,0,.34);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:82dvh;overflow:auto}
.account-open .account-backdrop{opacity:1;pointer-events:auto}.account-open .account-sheet{transform:translateY(0)}
.sheet-handle{width:42px;height:4px;border-radius:999px;background:#c8c1b5;margin:2px auto 16px}
.account-head{display:flex;align-items:center;gap:12px;padding:4px 2px 16px;border-bottom:1px solid var(--sand)}
.avatar.large{width:48px;height:48px;font-size:.9rem}.account-name{font-weight:700}.account-email{font-size:.73rem;color:var(--slate);margin-top:2px}.sheet-close{margin-left:auto;border:0;background:#ece7dd;color:var(--navy);width:36px;height:36px;border-radius:12px;font-size:1.45rem;line-height:1}
.account-row{width:100%;display:grid;grid-template-columns:24px 1fr auto;gap:12px;align-items:center;text-align:left;border:0;background:transparent;color:var(--navy);padding:15px 4px;border-bottom:1px solid var(--sand)}.account-row>svg{width:22px;height:22px;color:var(--green-2)}.account-row span:nth-child(2){display:grid;gap:2px}.account-row b{font-size:.88rem}.account-row small{color:var(--slate);font-size:.7rem}.account-row.danger{color:#9d3f36}.account-row.danger>svg{color:#b44e44}
@media(min-width:760px){.account-sheet{left:50%;right:auto;width:430px;transform:translate(-50%,105%)}.account-open .account-sheet{transform:translate(-50%,0)}}

/* V26 — bannière photo Villa Azur + wordmark RivaScreen sans espace */
.wordmark{
  gap:0;
  letter-spacing:-.045em;
}
.wordmark span{
  display:inline;
}
.wordmark span + span{
  margin-left:0;
}

.hero{
  position:relative;
  isolation:isolate;
  min-height:300px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  overflow:hidden;
  padding:26px 22px 24px;
  background:
    linear-gradient(180deg,rgba(8,22,36,.08) 10%,rgba(8,22,36,.26) 48%,rgba(8,22,36,.78) 100%),
    url("https://images.unsplash.com/photo-1600607687939-ce8a6c25118c?auto=format&fit=crop&w=1800&q=85") center 54%/cover no-repeat;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:0 24px 56px -26px rgba(22,40,63,.52);
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:linear-gradient(135deg,rgba(79,130,113,.12),transparent 52%);
  pointer-events:none;
}
.hero .eyebrow,
.hero h1,
.hero .meta{
  color:#fff;
  text-shadow:0 2px 18px rgba(5,16,28,.45);
}
.hero .eyebrow{color:rgba(255,255,255,.88)}
.hero h1{font-size:2.35rem;margin:7px 0 8px;line-height:.98}
.hero .meta{font-size:.8rem;color:rgba(255,255,255,.88)}
.hero .chips{margin-top:16px}
.hero .chip{
  background:rgba(255,255,255,.9);
  color:var(--navy);
  border:1px solid rgba(255,255,255,.58);
  box-shadow:0 8px 22px -16px rgba(0,0,0,.5);
  backdrop-filter:blur(8px);
}

@media(max-width:390px){
  .wordmark{font-size:1.08rem}
  .riva-logo{width:31px;height:31px}
  .brand{gap:8px}
  .hero{min-height:278px;padding:22px 18px 22px}
  .hero h1{font-size:2.1rem}
}


/* V27 — confirmation de départ */
.checkout-confirm-btn{display:flex;align-items:center;justify-content:center;gap:9px;min-height:50px;font-size:.92rem}
.checkout-confirm-btn svg{width:20px;height:20px}
.checkout-confirm-btn.is-confirmed{background:var(--green-2);color:#fff;opacity:1}
.checkout-confirm-btn:disabled{cursor:default;filter:none}
.checkout-confirmation{display:none;margin-top:14px;padding:16px;border-radius:18px;background:linear-gradient(135deg,#e9f3ee,#f8fbf9);border:1px solid #bdd5c9;color:var(--navy);grid-template-columns:44px 1fr;gap:12px;align-items:start;box-shadow:0 16px 34px -26px rgba(22,40,63,.38)}
.checkout-confirmation.show{display:grid;animation:checkoutIn .3s ease both}
.confirmation-icon{width:44px;height:44px;border-radius:14px;background:var(--green-2);color:#fff;display:grid;place-items:center}
.confirmation-icon svg{width:24px;height:24px}
.checkout-confirmation strong{display:block;font-family:var(--display);font-size:1.08rem;line-height:1.2;margin:1px 0 5px}
.checkout-confirmation p{margin:0;color:var(--slate);font-size:.79rem;line-height:1.5}
@keyframes checkoutIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* V28 — fiches cliquables « Autour de vous » */
.local-place{width:100%;font:inherit;color:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.local-place:active{transform:scale(.992)}
.place-backdrop{position:fixed;inset:0;background:rgba(15,27,45,.48);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:120}
.place-sheet{position:fixed;left:0;right:0;bottom:0;z-index:121;background:var(--paper);border-radius:28px 28px 0 0;padding:14px 22px calc(24px + env(safe-area-inset-bottom));box-shadow:0 -24px 70px rgba(15,27,45,.28);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1);max-height:78vh;overflow:auto;color:var(--ink)}
.place-open .place-backdrop{opacity:1;pointer-events:auto}
.place-open .place-sheet{transform:translateY(0)}
.place-open{overflow:hidden}
.place-sheet .sheet-close{position:absolute;right:18px;top:16px}
.place-type{margin-top:12px;color:var(--sea-deep);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.place-sheet h2{font-family:var(--font-display);font-size:2rem;line-height:1.05;margin:8px 42px 12px 0}
.place-description{font-size:1rem;line-height:1.55;color:var(--slate)}
.place-info{margin:16px 0 18px;padding:14px 16px;border:1px solid var(--sand);border-radius:16px;background:#fff;font-weight:600;color:var(--ink-soft)}
.place-map-link{display:flex;align-items:center;justify-content:center;text-decoration:none;margin-bottom:10px}

/* V29 — toutes les actions hôte actives */
button{font-family:inherit}
.interactive-row{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.interactive-row:active,.clickable-row:active,.more-item:active{transform:scale(.992)}
.agenda-item.interactive-row,.msg.interactive-row{display:flex;align-items:center;border:1px solid rgba(255,255,255,.08)}
.interactive-row .chev{margin-left:auto;color:#8fa0b4;font-size:1.35rem;line-height:1}
.mini-status{display:inline-flex;margin-top:7px;padding:4px 8px;border-radius:999px;background:rgba(143,195,173,.13);color:#b9decf;font-size:.6rem;font-weight:700}
.action-backdrop{position:fixed;inset:0;background:rgba(5,12,23,.62);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity .22s ease;z-index:160}
.action-sheet{position:fixed;left:0;right:0;bottom:0;z-index:161;max-height:88dvh;overflow:auto;background:#f7f4ed;color:var(--ink);border-radius:30px 30px 0 0;padding:14px 22px calc(28px + env(safe-area-inset-bottom));box-shadow:0 -28px 80px rgba(0,0,0,.34);transform:translateY(105%);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.action-sheet-open{overflow:hidden}
.action-sheet-open .action-backdrop{opacity:1;pointer-events:auto}
.action-sheet-open .action-sheet{transform:translateY(0)}
.action-sheet .sheet-close{position:absolute;right:18px;top:14px;width:38px;height:38px;border-radius:50%;border:1px solid var(--sand);background:#fff;color:var(--ink);font-size:1.35rem;display:grid;place-items:center}
.sheet-eyebrow{margin-top:12px;color:var(--sea-deep);font-size:.68rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.action-sheet h2{font-family:var(--display);font-size:2rem;line-height:1.06;margin:8px 48px 8px 0}
.sheet-subtitle{margin:0 0 18px;color:var(--slate);font-size:.88rem}
.sheet-field{display:grid;gap:7px;margin:0 0 14px}
.sheet-field label{font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sea-deep)}
.sheet-field input,.sheet-field textarea,.sheet-field select{width:100%;border:1px solid var(--sand);border-radius:14px;background:#fff;color:var(--ink);padding:13px 14px;font:inherit;font-size:.92rem;outline:none}
.sheet-field input:focus,.sheet-field textarea:focus,.sheet-field select:focus{border-color:var(--sea);box-shadow:0 0 0 3px rgba(79,130,113,.12)}
.sheet-grid{display:grid;gap:0}
.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.conversation-thread{display:grid;gap:10px;margin:16px 0 18px;max-height:34vh;overflow:auto;padding-right:3px}
.bubble{max-width:86%;padding:11px 13px;border-radius:17px 17px 17px 5px;background:#fff;border:1px solid var(--sand);box-shadow:0 10px 24px -20px rgba(22,40,63,.45)}
.bubble.mine{margin-left:auto;background:#dfece7;border-color:#c4d9d0;border-radius:17px 17px 5px 17px}
.bubble span{display:block;font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--sea-deep);margin-bottom:3px}
.bubble p{margin:0;font-size:.86rem;line-height:1.45;color:var(--ink)}
.request-message{padding:16px;margin:16px 0;border-radius:17px;background:#fff;border:1px solid var(--sand);font-size:.95rem;line-height:1.55;color:var(--ink-soft)}
.toggle-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 0;border-bottom:1px solid var(--sand)}
.toggle-row span{display:grid;gap:3px}.toggle-row b{font-size:.9rem}.toggle-row small{color:var(--slate);font-size:.72rem}
.toggle-row input{width:22px;height:22px;accent-color:var(--sea-deep)}
@media(min-width:700px){.action-sheet{left:50%;right:auto;width:min(520px,100%);transform:translate(-50%,105%)}.action-sheet-open .action-sheet{transform:translate(-50%,0)}}

/* ===== V30 : interface unifiée mobile + ordinateur ===== */
.desktop-sidebar,.desktop-page-name{display:none}

@media (min-width: 900px){
  html,body{min-height:100%;background:#0f1b2d}
  body{display:block!important;overflow:auto}
  #app{min-height:100vh}
  .app-shell,.app-shell.host{
    width:100%!important;max-width:none!important;min-height:100vh!important;max-height:none!important;
    border-radius:0!important;box-shadow:none!important;overflow:visible!important;margin:0!important;
  }
  .app-shell.host{
    display:grid;grid-template-columns:270px minmax(0,1fr);grid-template-rows:82px minmax(calc(100vh - 82px),auto);
    background:#f5f2ea;color:var(--navy);padding:0;
  }
  .desktop-sidebar{
    display:flex;grid-column:1;grid-row:1 / span 2;position:sticky;top:0;height:100vh;
    flex-direction:column;background:linear-gradient(180deg,#0f1b2d 0%,#14243a 100%);
    border-right:1px solid rgba(255,255,255,.08);padding:28px 18px 20px;color:#fff;z-index:35;
  }
  .desktop-brand{display:flex;align-items:center;gap:11px;padding:0 10px 24px;font-family:"Fraunces",Georgia,serif;font-size:1.18rem;font-weight:600}
  .desktop-brand .riva-logo{width:34px;height:34px}.desktop-brand .wordmark{font-size:1.2rem}
  .desktop-account{display:flex;align-items:center;gap:11px;margin:0 6px 22px;padding:13px;border:1px solid rgba(255,255,255,.08);border-radius:16px;background:rgba(255,255,255,.045)}
  .desktop-account b{display:block;font-size:.82rem}.desktop-account span{display:block;color:#91a3b8;font-size:.68rem;margin-top:2px}
  .desktop-avatar{width:36px;height:36px;border:0;border-radius:50%;background:var(--green);color:#fff;font-weight:700;cursor:pointer}
  .desktop-nav{display:grid;gap:5px;overflow:auto;padding:2px 4px 14px}
  .desktop-nav-btn{display:flex;align-items:center;gap:12px;width:100%;border:0;border-radius:12px;padding:11px 12px;background:transparent;color:#96a8bc;text-align:left;font-weight:600;cursor:pointer;transition:.18s}
  .desktop-nav-btn .icon-shape{width:30px;height:30px;border-radius:9px;background:rgba(255,255,255,.05)}
  .desktop-nav-btn svg{width:17px;height:17px}.desktop-nav-btn:hover{background:rgba(255,255,255,.06);color:#fff}
  .desktop-nav-btn.active{background:rgba(143,195,173,.14);color:#bfe3d3}.desktop-nav-btn.active .icon-shape{background:rgba(143,195,173,.14)}
  .desktop-sidebar-foot{margin-top:auto;padding:12px 4px 0;border-top:1px solid rgba(255,255,255,.08)}
  .desktop-logout{display:flex;align-items:center;gap:11px;width:100%;border:0;border-radius:12px;padding:11px 12px;background:transparent;color:#d7a2a2;font-weight:600;cursor:pointer}.desktop-logout svg{width:19px;height:19px}

  .host .topbar{grid-column:2;grid-row:1;position:sticky;top:0;z-index:25;min-height:82px;height:82px;padding:0 34px;background:rgba(245,242,234,.96);color:var(--navy);border-bottom:1px solid var(--sand);box-shadow:0 8px 26px rgba(22,40,63,.05)}
  .host .topbar>.brand{display:none}.desktop-page-name{display:flex;flex-direction:column}.desktop-page-name span{font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--green-2);font-weight:700}.desktop-page-name b{font-family:"Fraunces",Georgia,serif;font-size:1.18rem;font-weight:500;margin-top:2px}
  .host .topbar .avatar{width:38px;height:38px;box-shadow:0 0 0 5px rgba(79,130,113,.1);cursor:pointer}

  .host .page{grid-column:2;grid-row:2;min-height:auto;padding:36px 38px 64px;color:var(--navy);max-width:1500px;width:100%;margin:0 auto}
  .host .host-title{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:26px;padding-bottom:18px;border-bottom:1px solid var(--sand)}
  .host .host-title h1{font-size:2.25rem;color:var(--navy)}.host .host-title p{color:var(--slate);max-width:520px}
  .host .eyebrow,.host .section-title{color:var(--green-2)}
  .host .card{background:#fff;color:var(--navy);border-color:var(--sand);box-shadow:0 16px 36px rgba(22,40,63,.08)}
  .host .sub,.host .property-body p,.host .agenda-item p,.host .msg p,.host .more-item span,.host .stat span{color:var(--slate)}
  .host .stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.host .stat{min-height:132px;padding:22px}.host .stat strong{font-size:2.35rem}.host .stat span{font-size:.78rem}
  .host .section-title{margin-top:30px;font-size:.74rem}
  .host .page[data-page="dashboard"]>.list:nth-of-type(1),.host .page[data-page="homes"]>.list{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .host .property-photo{height:150px}.host .property-body{padding:18px}.host .property-body h3{font-size:1.25rem;color:var(--navy)}
  .host .btn.ghost{background:#eef1f4;color:var(--navy)}.host .btn.gold{box-shadow:0 8px 18px rgba(230,197,107,.25)}
  .host .page[data-page="dashboard"]>.list:last-child,.host .page[data-page="agenda"]>.list,.host .page[data-page="messages"]>.list,.host .page[data-page="cleaning"]>.list,.host .page[data-page="requests"]>.list{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .host .calendar{gap:8px}.host .day{aspect-ratio:auto;min-height:52px;background:#f3f5f7;color:var(--slate);font-size:.76rem}.host .day.active{background:var(--green);color:#fff}
  .host .more-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.host .more-item{min-height:155px;color:var(--navy)!important;border-color:var(--sand)!important}.host .more-item .icon-shape{background:rgba(79,130,113,.12)}.host .more-item b{font-size:1rem}
  .host .form{max-width:820px;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.host .form .field:last-of-type,.host .form>button{grid-column:1/-1}
  .host .field label{color:var(--slate)}.host .field input,.host .field select,.host .field textarea{background:#fff;color:var(--navy);border-color:var(--sand)}
  .host .msg .avatar{background:#365372}.host .datebox{background:#eef1f4}.host .datebox span{color:var(--green-2)}
  .host .tabbar{display:none}

  /* Voyageur sur ordinateur : aperçu large, sans perdre l'expérience mobile */
  .app-shell:not(.host){max-width:none!important;width:100%!important;min-height:100vh!important;border-radius:0!important;box-shadow:none!important;background:var(--cream);padding-bottom:0!important}
  .app-shell:not(.host) .topbar{position:sticky;top:0;min-height:76px;padding:0 max(32px,calc((100vw - 1180px)/2));background:rgba(245,242,234,.96)}
  .app-shell:not(.host) .topbar .brand{font-size:1.15rem}.app-shell:not(.host) .topbar .riva-logo{width:34px;height:34px}.app-shell:not(.host) .topbar .wordmark{font-size:1.18rem}
  .app-shell:not(.host) .page{max-width:1180px;margin:0 auto;padding:38px 28px 90px;min-height:auto}
  .app-shell:not(.host) .page[data-page="home"].active{display:grid;grid-template-columns:1.25fr .75fr;gap:20px;align-items:start}
  .app-shell:not(.host) .page[data-page="home"] .hero{grid-column:1/-1;min-height:330px;display:flex;flex-direction:column;justify-content:flex-end;padding:42px;background-position:center;background-size:cover}
  .app-shell:not(.host) .page[data-page="home"] .hero h1{font-size:3.6rem}.app-shell:not(.host) .page[data-page="home"] .wifi-strip{grid-column:1/-1}
  .app-shell:not(.host) .page[data-page="home"] .section-title{grid-column:1/-1}.app-shell:not(.host) .page[data-page="home"] .grid-2{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  .app-shell:not(.host) .shortcut{min-height:170px;padding:22px}.app-shell:not(.host) .shortcut b{font-size:1.05rem}
  .app-shell:not(.host) .tabbar{position:sticky;bottom:auto;top:76px;min-height:62px;padding:8px max(32px,calc((100vw - 780px)/2));grid-template-columns:repeat(5,1fr);box-shadow:0 10px 28px rgba(22,40,63,.05)}
  .app-shell:not(.host) .tab{flex-direction:row;font-size:.75rem;gap:8px}.app-shell:not(.host) .tab .ti{width:29px;height:29px}

  .action-sheet{left:50%;right:auto;bottom:50%;width:min(640px,calc(100vw - 48px));max-height:82vh;border-radius:24px;transform:translate(-50%,calc(50% + 24px))}.action-sheet-open .action-sheet{transform:translate(-50%,50%)}
  .account-sheet{right:28px;left:auto;bottom:auto;top:72px;width:390px;border-radius:22px;transform:translateY(-12px) scale(.98)}.account-open .account-sheet{transform:translateY(0) scale(1)}
}

@media (min-width: 1280px){
  .app-shell.host{grid-template-columns:292px minmax(0,1fr)}
  .host .page{padding-left:50px;padding-right:50px}
  .host .page[data-page="dashboard"]>.list:nth-of-type(1),.host .page[data-page="homes"]>.list{grid-template-columns:repeat(3,minmax(0,1fr))}
}

/* ===== V31 : correctifs desktop, menus et mode TV ===== */
.action-sheet[aria-hidden="true"],
.account-sheet[aria-hidden="true"]{
  visibility:hidden!important;
  pointer-events:none!important;
}
.action-backdrop,.account-backdrop{pointer-events:none}
.action-sheet-open .action-backdrop,.account-open .account-backdrop{pointer-events:auto}
body:not(.action-sheet-open) .action-sheet{
  opacity:0!important;
  transform:translate(-50%,calc(50% + 40px))!important;
}
body:not(.account-open) .account-sheet{opacity:0!important}
.account-sheet,.action-sheet{transition:transform .24s ease,opacity .2s ease,visibility .2s ease}
.account-open .account-sheet,.action-sheet-open .action-sheet{opacity:1!important;visibility:visible!important;pointer-events:auto!important}
.fullscreen-btn{display:inline-flex;align-items:center;gap:7px}

@media (min-width:900px){
  .account-sheet{top:88px!important;right:34px!important}
  .action-sheet{top:50%!important;bottom:auto!important}
  body:not(.action-sheet-open) .action-sheet{transform:translate(-50%,calc(-50% + 28px))!important}
  .action-sheet-open .action-sheet{transform:translate(-50%,-50%)!important}
  .account-backdrop,.action-backdrop{position:fixed;inset:0}
}

/* Mode TV / grand écran client */
.tv-mode, .tv-mode body{background:#07111f!important;overflow:hidden}
.app-shell.tv{min-height:100dvh!important;background:#07111f!important;color:#fff!important;padding:0!important}
.app-shell.tv .topbar{
  position:fixed!important;left:0;right:0;top:0;z-index:50;
  background:linear-gradient(180deg,rgba(3,10,20,.82),rgba(3,10,20,0))!important;
  border:0!important;color:#fff!important;padding:24px 34px!important;min-height:92px!important;
}
.app-shell.tv .wordmark{color:#fff}.app-shell.tv .wordmark span:last-child{color:#8fc3ad}
.app-shell.tv .riva-logo{color:#fff}.app-shell.tv .riva-logo .riva-wave{stroke:#8fc3ad}
.app-shell.tv .page{display:none!important}
.app-shell.tv .page[data-page="home"].active{
  display:grid!important;min-height:100dvh!important;max-width:none!important;margin:0!important;padding:0!important;
  grid-template-columns:1fr!important;gap:0!important;
}
.app-shell.tv .hero{
  grid-column:1!important;min-height:100dvh!important;height:100dvh!important;border-radius:0!important;margin:0!important;
  padding:clamp(70px,9vw,140px)!important;display:flex!important;flex-direction:column!important;justify-content:flex-end!important;
  background-position:center!important;background-size:cover!important;
}
.app-shell.tv .hero::after{background:linear-gradient(180deg,rgba(3,10,20,.12),rgba(3,10,20,.82))!important}
.app-shell.tv .hero h1{font-size:clamp(4rem,9vw,9rem)!important;color:#fff!important;max-width:12ch}
.app-shell.tv .hero .eyebrow{font-size:clamp(.8rem,1.3vw,1.2rem)!important;color:#dcece6!important}
.app-shell.tv .hero .meta{font-size:clamp(1rem,1.7vw,1.55rem)!important;color:#fff!important}
.app-shell.tv .hero .chips{margin-top:24px!important}.app-shell.tv .chip{font-size:clamp(.78rem,1.1vw,1rem)!important;padding:10px 16px!important;background:rgba(255,255,255,.15)!important;color:#fff!important;backdrop-filter:blur(10px)}
.app-shell.tv .wifi-strip,.app-shell.tv .section-title,.app-shell.tv .grid-2{display:none!important}
.app-shell.tv .tv-exit{background:rgba(255,255,255,.14)!important;color:#fff!important;border-color:rgba(255,255,255,.24)!important;backdrop-filter:blur(12px)}
@media(max-width:899px){.fullscreen-btn{display:none}.app-shell.tv .topbar{padding:calc(14px + env(safe-area-inset-top)) 18px 12px!important}.app-shell.tv .hero{padding:100px 24px 70px!important}.app-shell.tv .hero h1{font-size:3.8rem!important}}

/* V32 — équipe et options de réservation */
.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.reservation-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:8px}
.option-card{position:relative;display:flex;align-items:center;gap:11px;min-height:74px;padding:13px 14px;border:1px solid rgba(230,197,107,.22);border-radius:16px;background:rgba(255,255,255,.045);cursor:pointer;transition:border-color .18s ease,background .18s ease,transform .18s ease}
.option-card:active{transform:scale(.985)}
.option-card input{position:absolute;opacity:0;pointer-events:none}
.option-card .option-check{width:27px;height:27px;flex:0 0 27px;display:grid;place-items:center;border-radius:9px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.04);color:transparent;font-weight:800;transition:.18s ease}
.option-card b{display:block;color:#fff;font-size:.9rem}
.option-card small{display:block;color:#9fb0c4;font-size:.72rem;line-height:1.35;margin-top:2px}
.option-card:has(input:checked){border-color:#e6c56b;background:rgba(230,197,107,.1)}
.option-card:has(input:checked) .option-check{background:#e6c56b;border-color:#e6c56b;color:#16283f}
.team-summary{display:grid;gap:14px}.team-summary p{color:#9fb0c4}
@media(max-width:640px){.form-two,.reservation-options{grid-template-columns:1fr}.option-card{min-height:68px}}


/* V33 — écran TV enrichi et rubrique Découvrir */
.app-shell.tv .hero{padding-bottom:clamp(235px,25vh,310px)!important}
.tv-experience{position:fixed;inset:0;z-index:42;pointer-events:none;color:#fff}
.tv-welcome-copy{position:absolute;left:clamp(72px,8vw,138px);bottom:clamp(205px,22vh,270px);max-width:min(620px,45vw);z-index:3;text-shadow:0 3px 22px rgba(0,0,0,.46)}
.tv-welcome-copy span{display:block;font:700 clamp(.7rem,1vw,.95rem)/1 "Instrument Sans";letter-spacing:.18em;text-transform:uppercase;color:#9ed0bb;margin-bottom:9px}
.tv-welcome-copy strong{display:block;font:500 clamp(1.25rem,2.2vw,2.15rem)/1.12 "Fraunces",serif;color:#fff}
.tv-welcome-copy p{font-size:clamp(.82rem,1.15vw,1.08rem);color:rgba(255,255,255,.82);margin-top:8px;max-width:52ch}
.tv-dock{position:absolute;left:50%;bottom:clamp(34px,5vh,62px);transform:translateX(-50%);display:flex;gap:clamp(12px,1.5vw,24px);padding:14px 18px;border:1px solid rgba(255,255,255,.18);border-radius:28px;background:rgba(12,24,40,.56);box-shadow:0 24px 60px rgba(0,0,0,.34);backdrop-filter:blur(24px) saturate(130%);pointer-events:auto}
.tv-dock-item{width:clamp(118px,10.5vw,172px);min-height:94px;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:rgba(255,255,255,.075);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;font:650 clamp(.72rem,1vw,.95rem)/1 "Instrument Sans";cursor:pointer;transition:transform .18s ease,background .18s ease,box-shadow .18s ease,border-color .18s ease}
.tv-dock-item .icon-shape{width:43px;height:43px;border-radius:14px;background:rgba(143,195,173,.17);color:#a9dac5}.tv-dock-item .icon-shape svg{width:23px;height:23px}
.tv-dock-item:hover,.tv-dock-item:focus-visible{outline:none;transform:translateY(-8px) scale(1.045);background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.35);box-shadow:0 22px 45px rgba(0,0,0,.28),0 0 0 4px rgba(143,195,173,.16)}
.tv-phone-card{position:absolute;right:clamp(34px,4vw,72px);bottom:clamp(34px,5vh,62px);width:min(390px,26vw);min-width:310px;display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid rgba(255,255,255,.17);border-radius:24px;background:rgba(12,24,40,.64);backdrop-filter:blur(24px) saturate(130%);box-shadow:0 24px 60px rgba(0,0,0,.3);pointer-events:auto}
.tv-qr{width:116px;height:116px;flex:0 0 116px;padding:7px;border-radius:16px;background:#fff;display:grid;place-items:center;overflow:hidden}.tv-qr img,.tv-qr canvas{max-width:100%;height:auto!important}.tv-qr.qr-fallback{background:conic-gradient(from 0deg,#0b1728 25%,#fff 0 50%,#0b1728 0 75%,#fff 0) 0 0/18px 18px,#fff}
.tv-phone-card span{display:block;color:#9ed0bb;text-transform:uppercase;letter-spacing:.12em;font-size:.62rem;font-weight:750}.tv-phone-card strong{display:block;font-size:.86rem;line-height:1.35;margin-top:4px}.tv-phone-card p{font-size:.7rem;color:rgba(255,255,255,.66);line-height:1.4;margin-top:4px}
.tv-info-backdrop{position:fixed;inset:0;background:rgba(2,8,16,.54);opacity:0;visibility:hidden;transition:.22s ease;pointer-events:none}
.tv-info-panel{position:fixed;left:50%;top:50%;width:min(820px,72vw);min-height:380px;transform:translate(-50%,-46%) scale(.96);opacity:0;visibility:hidden;pointer-events:none;display:grid;grid-template-columns:150px 1fr;gap:30px;align-items:center;padding:46px;border:1px solid rgba(255,255,255,.2);border-radius:34px;background:rgba(12,24,40,.88);box-shadow:0 40px 100px rgba(0,0,0,.5);backdrop-filter:blur(30px) saturate(135%);transition:.24s ease}
.tv-panel-open .tv-info-backdrop{opacity:1;visibility:visible;pointer-events:auto}.tv-panel-open .tv-info-panel{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.tv-info-close{position:absolute;right:22px;top:18px;width:48px;height:48px;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.08);color:#fff;font-size:1.6rem;cursor:pointer}.tv-info-close:focus-visible{outline:3px solid rgba(143,195,173,.65)}
.tv-info-icon .icon-shape{width:126px;height:126px;border-radius:34px;background:rgba(143,195,173,.15);color:#a9dac5}.tv-info-icon .icon-shape svg{width:64px;height:64px}
.tv-info-copy>span{color:#9ed0bb;font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:750}.tv-info-copy h2{font-size:clamp(2rem,4vw,4.2rem);color:#fff;margin:8px 0 12px}.tv-info-copy p{font-size:clamp(1rem,1.45vw,1.28rem);color:rgba(255,255,255,.78);line-height:1.55}.tv-info-value,.tv-info-note{margin-top:20px;padding:18px 20px;border-radius:18px;background:rgba(255,255,255,.08);font-size:clamp(.9rem,1.2vw,1.08rem);color:#fff}
@media(max-width:1200px){.tv-phone-card{min-width:0;width:250px}.tv-qr{width:88px;height:88px;flex-basis:88px}.tv-phone-card p{display:none}.tv-dock{left:38%;}.tv-welcome-copy{max-width:52vw}}
@media(max-width:899px){.tv-welcome-copy{left:24px;right:24px;bottom:245px;max-width:none}.tv-phone-card{right:18px;left:18px;bottom:118px;width:auto}.tv-dock{left:18px;right:18px;bottom:22px;transform:none;justify-content:space-between;padding:8px}.tv-dock-item{width:auto;flex:1;min-height:76px}.tv-dock-item span{font-size:.62rem}.tv-phone-card strong{font-size:.72rem}.tv-info-panel{width:calc(100vw - 28px);grid-template-columns:1fr;padding:30px;text-align:center}.tv-info-icon{display:flex;justify-content:center}.app-shell.tv .hero{padding-bottom:330px!important}}

/* V34 — lisibilité options réservation + composition TV corrigée */
/* Options de réservation : contraste clair dans les formulaires */
.reservation-options{gap:14px!important}
.option-card{
  min-height:92px!important;
  padding:16px 18px!important;
  border:1px solid #e4dbcb!important;
  background:#fff!important;
  box-shadow:0 12px 28px -22px rgba(22,40,63,.35)!important;
}
.option-card .option-check{
  width:30px!important;height:30px!important;flex-basis:30px!important;
  border:1.5px solid #b9c8c1!important;
  background:#f5f2ea!important;
  color:transparent!important;
}
.option-card b{color:#16283f!important;font-size:.96rem!important;line-height:1.2!important}
.option-card small{color:#586371!important;font-size:.78rem!important;line-height:1.35!important;margin-top:4px!important}
.option-card:hover{border-color:#9fb9ae!important;background:#fbfcfa!important}
.option-card:has(input:checked){border-color:#4f8271!important;background:#edf4f1!important;box-shadow:0 0 0 2px rgba(79,130,113,.12)!important}
.option-card:has(input:checked) .option-check{background:#4f8271!important;border-color:#4f8271!important;color:#fff!important}

/* TV : une seule zone de bienvenue, remontée et sans chevauchement */
.app-shell.tv .hero>.eyebrow,
.app-shell.tv .hero>h1,
.app-shell.tv .hero>.meta,
.app-shell.tv .hero>.chips{display:none!important}
.app-shell.tv .hero{padding-bottom:0!important}
.tv-welcome-copy{
  top:clamp(145px,18vh,215px)!important;
  bottom:auto!important;
  left:clamp(72px,7vw,120px)!important;
  max-width:min(760px,52vw)!important;
}
.tv-welcome-copy span{font-size:clamp(.78rem,1.05vw,1rem)!important;margin-bottom:14px!important}
.tv-welcome-copy strong{font-size:clamp(2rem,3vw,3.5rem)!important;line-height:1.08!important;max-width:18ch!important}
.tv-welcome-copy p{font-size:clamp(.92rem,1.25vw,1.18rem)!important;line-height:1.45!important;margin-top:14px!important;max-width:46ch!important}

/* TV : dock et QR séparés avec une vraie respiration */
.tv-dock{
  left:clamp(38px,4vw,72px)!important;
  right:auto!important;
  bottom:clamp(34px,4.5vh,54px)!important;
  transform:none!important;
  gap:clamp(10px,1.2vw,18px)!important;
  padding:14px 16px!important;
  max-width:calc(100vw - 540px)!important;
}
.tv-dock-item{width:clamp(122px,10vw,164px)!important;min-height:104px!important}
.tv-phone-card{
  right:clamp(38px,4vw,72px)!important;
  bottom:clamp(34px,4.5vh,54px)!important;
  width:min(400px,28vw)!important;
  min-width:340px!important;
  margin-left:44px!important;
}

@media (max-width:1200px) and (min-width:900px){
  .tv-welcome-copy{top:150px!important;max-width:58vw!important}
  .tv-welcome-copy strong{font-size:clamp(1.8rem,2.8vw,2.7rem)!important}
  .tv-dock{left:24px!important;max-width:calc(100vw - 350px)!important;gap:8px!important;padding:10px!important}
  .tv-dock-item{width:clamp(100px,9.5vw,132px)!important;min-height:88px!important}
  .tv-phone-card{right:24px!important;width:290px!important;min-width:290px!important;padding:12px!important;gap:12px!important}
  .tv-qr{width:84px!important;height:84px!important;flex-basis:84px!important}
  .tv-phone-card p{display:none!important}
}

@media (max-width:899px){
  .tv-welcome-copy{top:110px!important;left:24px!important;right:24px!important;bottom:auto!important;max-width:none!important}
  .tv-welcome-copy strong{font-size:1.7rem!important}
  .tv-phone-card{left:18px!important;right:18px!important;bottom:124px!important;width:auto!important;min-width:0!important;margin-left:0!important}
  .tv-dock{left:18px!important;right:18px!important;bottom:22px!important;max-width:none!important;justify-content:space-between!important}
  .tv-dock-item{width:auto!important;flex:1!important;min-height:76px!important}
}


/* V35 — retour sécurisé depuis l’aperçu voyageur ouvert par l’hôte */
.host-preview-back{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  background:var(--navy)!important;
  color:#fff!important;
  border-color:var(--navy)!important;
  box-shadow:0 8px 22px rgba(22,40,63,.16);
}
.host-preview-back:active{transform:scale(.98)}
@media(max-width:640px){
  .host-preview-back{font-size:.64rem;padding:8px 10px}
  .app-shell:not(.host) .topbar-actions{gap:5px}
  .app-shell:not(.host) .host-preview-back + .fullscreen-btn{display:none}
}
\n\n/* V36.3 — cartes logements visuelles et responsives */
.property-photo{
  height:118px;
  background-position:center;
  background-size:cover;
  background-repeat:no-repeat;
}
.property-photo.azur{
  background-image:
    linear-gradient(180deg,rgba(15,27,45,.04),rgba(15,27,45,.18)),
    url("https://images.unsplash.com/photo-1600607687920-4e2a09cf159d?auto=format&fit=crop&w=1200&q=82");
}
.property-photo.nissa{
  background-image:
    linear-gradient(180deg,rgba(15,27,45,.03),rgba(15,27,45,.2)),
    url("https://images.unsplash.com/photo-1600566753190-17f0baa2a6c3?auto=format&fit=crop&w=1200&q=82");
}
.property-copy{min-width:0}
.property .badge{top:12px;left:12px;padding:6px 10px;box-shadow:0 8px 22px rgba(15,27,45,.18)}

@media (min-width:900px){
  .host .page[data-page="dashboard"]>.list:nth-of-type(1),
  .host .page[data-page="homes"]>.list{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    align-items:stretch;
  }
  .host .property{
    display:flex;
    flex-direction:column;
    min-height:430px;
    border-radius:24px;
    transition:transform .2s ease,box-shadow .2s ease;
  }
  .host .property:hover{
    transform:translateY(-4px);
    box-shadow:0 24px 52px rgba(22,40,63,.14);
  }
  .host .property-photo{
    height:auto;
    aspect-ratio:16/10;
  }
  .host .property-body{
    display:flex;
    flex:1;
    flex-direction:column;
    justify-content:space-between;
    gap:22px;
    padding:22px;
  }
  .host .property-body h3{font-size:1.45rem;margin-bottom:6px}
  .host .property-body p{font-size:.8rem;margin:0}
  .host .property .actions{gap:10px}
  .host .property .btn{min-height:46px}
}

@media (min-width:1280px){
  .host .page[data-page="dashboard"]>.list:nth-of-type(1),
  .host .page[data-page="homes"]>.list{
    grid-template-columns:repeat(3,minmax(260px,1fr));
  }
  .host .property{min-height:410px}
}

@media (max-width:899px){
  .property{border-radius:18px}
  .property-photo{height:112px}
  .property-body{padding:14px}
  .property .actions{grid-template-columns:1fr 1fr}
  .property .btn{min-height:42px}
}

/* V36.4 — retours hôte */
.host-back-btn{display:inline-flex;align-items:center;gap:7px;width:max-content;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.07);color:inherit;border-radius:999px;padding:8px 12px;margin-bottom:14px;font-weight:700;cursor:pointer}
@media(min-width:900px){.host-back-btn{border-color:var(--sand);background:#fff;color:var(--navy);box-shadow:0 8px 22px rgba(22,40,63,.06)}}
