/* ===== FINDOMI PRO — APP.CSS ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --cream:#F8F4EE;--brown:#1E1608;--terra:#D4581A;--sage:#5A8A5E;
  --bg:var(--cream);--bg2:#EDE4D8;--bg3:#E2D5C8;
  --text:var(--brown);--text2:#6B6054;--text3:#8A7E72;
  --terra-bg:rgba(212,88,26,0.08);--terra-bd:rgba(212,88,26,0.2);
  --sage-bg:rgba(90,138,94,0.08);--sage-bd:rgba(90,138,94,0.2);
  --blue:#1A6FBF;--blue-bg:rgba(26,111,191,0.08);--blue-bd:rgba(26,111,191,0.2);
  --red:#B83030;--red-bg:rgba(184,48,48,0.07);--red-bd:rgba(184,48,48,0.2);
  --bd:rgba(30,22,8,0.07);--bd2:rgba(30,22,8,0.13);
  --white:#fff;--sh:0 1px 3px rgba(24,18,10,0.06);
  --r:14px;--rsm:10px;--rxs:7px;--nbh:58px;--pwa-banner-h:76px;
}

/* BASE */
html{height:100%}
body{
  font-family:'Inter',sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
  -webkit-tap-highlight-color:transparent;
  min-height:100%;
}
input,button,textarea,select{font-family:inherit;-webkit-appearance:none;border-radius:0}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%;object-fit:cover}

/* ROUTER */
.screen{display:none}
.screen.active{display:block;padding-bottom:calc(var(--nbh) + 1rem)}
body.pwa-banner-visible .screen.active{padding-bottom:calc(var(--nbh) + var(--pwa-banner-h) + 1rem)}
.screen.active.no-nav{padding-bottom:0}

/* SPLASH */
#splash{
  position:fixed;inset:0;background:#18120A;z-index:9999;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.5rem;
}
#splash.out{animation:spOut 0.4s ease forwards}
@keyframes spOut{to{opacity:0}}
.sp-logo{font-family:'Playfair Display',serif;font-size:2.4rem;font-weight:700;color:#fff;letter-spacing:-0.03em}
.sp-logo em{font-style:italic;color:var(--terra)}
.sp-tag{font-size:0.62rem;color:rgba(255,255,255,0.25);letter-spacing:0.12em;text-transform:uppercase;margin-top:0.2rem}
.sp-dot{width:4px;height:4px;border-radius:50%;background:var(--terra);animation:blink 1s infinite;margin-top:1rem}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.15}}

/* NAVBAR */
.nav{
  position:fixed;bottom:0;left:0;right:0;
  height:var(--nbh);
  background:rgba(18,12,10,0.97);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-top:0.5px solid rgba(255,255,255,0.08);
  display:none;
  padding-bottom:env(safe-area-inset-bottom,0px);
  z-index:10200;
}
.nav.show{display:flex}
.nav-btn{
  flex:1;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  gap:2px;border:none;background:transparent;
  padding:6px 0;cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.nav-btn svg{width:21px;height:21px;stroke:rgba(255,255,255,0.28);fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:stroke 0.15s}
.nav-btn span{font-size:0.44rem;color:rgba(255,255,255,0.28);font-weight:500;white-space:nowrap;letter-spacing:0.02em;transition:color 0.15s}
.nav-btn.on svg{stroke:var(--terra)}
.nav-btn.on span{color:var(--terra);font-weight:700}

/* TOPBAR */
.topbar{
  position:sticky;top:0;z-index:50;
  height:52px;display:flex;align-items:center;
  justify-content:space-between;
  padding:0 1.1rem;background:#18120A;
}
.logo{font-family:'Playfair Display',serif;font-weight:700;font-size:1.15rem;color:#fff;letter-spacing:-0.02em}
.logo em{font-style:italic;color:var(--terra);font-weight:400}
.logo-pro{font-size:0.48rem;background:var(--terra);color:#fff;padding:1px 5px;border-radius:3px;vertical-align:middle;font-family:Inter;font-weight:700;letter-spacing:0.05em;margin-left:4px}

.topbar-actions{display:flex;align-items:center;gap:0.35rem}
.topbar .topbar-login-btn.btn-terra{
  background:#D4581A !important;color:#fff !important;border:none !important;
  border-radius:100px !important;box-shadow:0 2px 10px rgba(212,88,26,0.3) !important;
  padding:0.35rem 0.9rem;font-size:0.72rem;font-weight:700;min-height:36px;
}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;font-family:inherit;font-weight:600;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:opacity 0.15s}
.btn:active{opacity:0.8}
.btn-terra{background:var(--terra);color:#fff;border-radius:100px;box-shadow:0 2px 10px rgba(212,88,26,0.3)}
.btn-dark{background:#18120A;color:#fff;border-radius:100px}
.btn-outline{background:transparent;color:var(--text2);border:0.5px solid var(--bd2);border-radius:100px}

/* Dashboard — boutons harmonisés terra / brown */
#dash .btn-terra{background:var(--terra);color:#fff;border:none;box-shadow:0 2px 10px rgba(212,88,26,0.3)}
#dash .btn-dark{background:var(--brown);color:#fff;border:none}

/* Dashboard — actions rapides compactes */
.dash-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:0.35rem}
.dash-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0.1rem;height:75px;max-height:75px;padding:0.3rem 0.25rem;background:#fff;border:1px solid rgba(30,22,8,0.12);border-radius:var(--rsm);cursor:pointer;font-family:inherit;-webkit-tap-highlight-color:transparent;transition:opacity 0.12s,transform 0.12s;box-shadow:var(--sh)}
.dash-action:active{opacity:0.85;transform:scale(0.98)}
.dash-action-ic{font-size:1.5rem;line-height:1}
.dash-action-t{font-size:0.68rem;font-weight:600;text-align:center;line-height:1.1;color:var(--brown)}
@media (min-width:768px){
  .dash-actions{grid-template-columns:repeat(4,1fr);gap:0.5rem}
}

/* CLÉS & ACCÈS */
.access-card{border:0.5px solid var(--bd2)}
.access-field-read{padding:0.45rem 0;border-bottom:0.5px solid var(--bd)}
.access-field-lbl{font-size:0.62rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em;margin-bottom:0.2rem}
.access-field-val{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap}
.access-code{font-size:0.82rem;font-weight:600;color:var(--brown);background:var(--cream);padding:0.25rem 0.5rem;border-radius:var(--rxs);word-break:break-all}
.access-empty{font-size:0.75rem;color:var(--text3);font-style:italic}
.access-instructions-text{font-size:0.78rem;color:var(--text2);line-height:1.45}
.access-copy{padding:0.2rem 0.55rem;border-radius:100px;border:0.5px solid var(--bd2);background:var(--white);font-size:0.62rem;font-weight:600;color:var(--terra);cursor:pointer;font-family:inherit}
.access-qr-block{text-align:center;padding-top:0.5rem;border-top:0.5px solid var(--bd);margin-top:0.5rem}
.access-qr-wrap{display:inline-block;padding:0.65rem;background:#fff;border:0.5px solid var(--bd);border-radius:var(--rsm);margin:0.35rem 0}
.access-qr-url{font-size:0.58rem;color:var(--text3);word-break:break-all;padding:0 0.5rem}

/* SUIVI LINGE */
.linen-card{border:0.5px solid var(--bd2)}
.linen-item{background:var(--cream);border-radius:var(--rsm);padding:0.65rem;margin-bottom:0.45rem;border:0.5px solid var(--bd)}
.linen-item-alert{border-color:var(--terra);background:rgba(212,88,26,0.06)}
.linen-item-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0.45rem;gap:0.35rem}
.linen-item-title{font-size:0.78rem;font-weight:700;color:var(--brown)}
.linen-alert-badge{font-size:0.58rem;font-weight:700;color:#fff;background:var(--terra);padding:0.15rem 0.45rem;border-radius:100px;white-space:nowrap}
.linen-counts{display:grid;grid-template-columns:repeat(3,1fr);gap:0.35rem;margin-bottom:0.4rem}
.linen-count{text-align:center;padding:0.4rem 0.25rem;border-radius:var(--rxs);background:var(--white);border:0.5px solid var(--bd)}
.linen-count-n{display:block;font-size:1rem;font-weight:700;color:var(--brown);line-height:1.1}
.linen-count-l{display:block;font-size:0.55rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.04em;margin-top:0.15rem}
.linen-st-clean .linen-count-n{color:var(--sage)}
.linen-st-dirty .linen-count-n{color:var(--terra)}
.linen-st-laundry .linen-count-n{color:#5B7FA6}
.linen-meta{display:flex;justify-content:space-between;gap:0.35rem;flex-wrap:wrap;font-size:0.62rem;color:var(--text3)}
.linen-actions{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.5rem}
.linen-actions .btn-sm{flex:1;min-width:calc(50% - 0.2rem);font-size:0.62rem;padding:0.45rem 0.35rem;border-radius:var(--rxs)}
.linen-dash-banner{padding:0.55rem 0.75rem;border-radius:var(--rsm);font-size:0.72rem;font-weight:600;background:rgba(212,88,26,0.1);color:var(--terra);border:0.5px solid rgba(212,88,26,0.25)}
.linen-dash-ok{background:var(--sage-bg);color:var(--sage);border-color:var(--sage-bd)}
.linen-dash-alert{border-color:var(--terra)}
.linen-dash-alert .litem-ic{background:rgba(212,88,26,0.12)}

.btn-ghost{background:transparent;border:none;color:rgba(255,255,255,0.55);padding:0.4rem 0.75rem;font-size:0.8rem;font-weight:500}
.btn-lg{padding:0.88rem 1.5rem;font-size:0.88rem;width:100%}
.btn-md{padding:0.65rem 1.25rem;font-size:0.82rem}
.btn-sm{padding:0.28rem 0.7rem;border-radius:100px;border:0.5px solid var(--bd2);background:var(--white);color:var(--text2);font-size:0.68rem;font-weight:600;font-family:inherit;cursor:pointer}
.btn-icon{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);border:none;border-radius:100px;padding:0.3rem 0.7rem;font-size:0.68rem;font-weight:600;cursor:pointer}

/* FORMS */
.flabel{font-size:0.6rem;color:var(--text3);margin-bottom:0.28rem;display:block;font-weight:700;text-transform:uppercase;letter-spacing:0.07em}
.finput{width:100%;padding:0.72rem 0.9rem;border-radius:var(--rsm);border:0.5px solid var(--bd2);background:var(--bg);color:var(--text);font-size:0.88rem;outline:none;transition:border-color 0.15s}
.finput:focus{border-color:var(--terra);background:var(--white);box-shadow:0 0 0 3px rgba(212,88,26,0.07)}
.fselect{width:100%;padding:0.72rem 0.9rem;border-radius:var(--rsm);border:0.5px solid var(--bd2);background:var(--bg);color:var(--text);font-size:0.88rem;outline:none}
.ftextarea{width:100%;padding:0.72rem 0.9rem;border-radius:var(--rsm);border:0.5px solid var(--bd2);background:var(--bg);color:var(--text);font-size:0.85rem;font-family:inherit;outline:none;resize:none;min-height:80px}
.ftextarea:focus{border-color:var(--terra);background:var(--white)}
.ferr{font-size:0.68rem;color:var(--red);padding:0.4rem 0.7rem;background:var(--red-bg);border-radius:var(--rxs);margin-top:0.35rem;display:none}
.fdiv{display:flex;align-items:center;gap:0.6rem;margin:0.75rem 0}
.fdiv-l{flex:1;height:0.5px;background:var(--bd2)}
.fdiv-t{font-size:0.65rem;color:var(--text3)}

/* LAYOUT */
.pad{padding:1.1rem}
.gap{display:flex;flex-direction:column;gap:0.75rem}
.gap-sm{display:flex;flex-direction:column;gap:0.45rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:0.45rem}

/* CARDS */
.card{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);padding:1rem 1.1rem;box-shadow:var(--sh)}
.section-t{font-size:0.6rem;color:var(--text3);text-transform:uppercase;letter-spacing:0.08em;font-weight:700;margin-bottom:0.6rem}

/* BADGES */
.badge{display:inline-flex;align-items:center;gap:3px;padding:0.13rem 0.52rem;border-radius:100px;font-size:0.58rem;font-weight:700;white-space:nowrap}
.badge-terra{background:var(--terra-bg);color:var(--terra);border:0.5px solid var(--terra-bd)}
.badge-sage{background:var(--sage-bg);color:var(--sage);border:0.5px solid var(--sage-bd)}
.badge-blue{background:var(--blue-bg);color:var(--blue);border:0.5px solid var(--blue-bd)}
.badge-red{background:var(--red-bg);color:var(--red);border:0.5px solid var(--red-bd)}
.badge-neutral{background:var(--bg2);color:var(--text2);border:0.5px solid var(--bd2)}
.dot-live{width:5px;height:5px;border-radius:50%;background:currentColor;animation:blink 1.2s infinite}

/* STATS */
.stat-card{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--rsm);padding:0.85rem;box-shadow:var(--sh)}
.stat-n{font-family:'Playfair Display',serif;font-size:1.4rem;font-weight:700;color:var(--terra);line-height:1}
.stat-l{font-size:0.58rem;color:var(--text3);margin-top:3px;text-transform:uppercase;letter-spacing:0.05em}

/* LIST ITEMS */
.litem{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.litem-top{padding:0.88rem 1rem;display:flex;align-items:center;gap:0.75rem;cursor:pointer}
.litem-ic{width:40px;height:40px;border-radius:var(--rsm);background:var(--terra-bg);border:0.5px solid var(--terra-bd);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0}
.litem-info{flex:1;min-width:0}
.litem-t{font-size:0.85rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.litem-s{font-size:0.67rem;color:var(--text3);margin-top:2px}
.litem-btns{padding:0.52rem 1rem;border-top:0.5px solid var(--bd);background:var(--bg2);display:flex;gap:0.38rem;flex-wrap:wrap}

/* EMPTY */
.empty{text-align:center;padding:2.5rem 1rem;background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r)}
.empty-ic{font-size:2rem;margin-bottom:0.6rem}
.empty-t{font-size:0.88rem;font-weight:700;color:var(--text);margin-bottom:0.3rem}
.empty-s{font-size:0.72rem;color:var(--text2);line-height:1.55;margin-bottom:0.85rem}

/* SCREEN SPINNER */
.screen-spl{position:absolute;inset:0;background:rgba(250,250,248,0.92);display:none;align-items:center;justify-content:center;z-index:50;flex-direction:column;gap:0.75rem;backdrop-filter:blur(12px);border-radius:inherit}
.screen-spl.on{display:flex}
.screen-spl-inner{display:flex;flex-direction:column;align-items:center;gap:0.75rem}
.screen-spl-txt{font-size:0.75rem;color:var(--text2);font-weight:500}

/* HERO */
.hero{background:#18120A;padding:1.25rem 1.1rem;position:relative;overflow:hidden}
.hero-glow{position:absolute;top:-50%;right:-20%;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(212,88,26,0.22) 0%,transparent 65%);pointer-events:none}
.hero-t{font-family:'Playfair Display',serif;font-size:1.2rem;font-weight:700;color:#fff;letter-spacing:-0.02em;margin-bottom:0.18rem;position:relative;z-index:1}
.hero-s{font-size:0.72rem;color:rgba(255,255,255,0.35);position:relative;z-index:1;line-height:1.5}
.hero-badge{background:rgba(212,88,26,0.18);border:0.5px solid rgba(212,88,26,0.35);color:var(--terra);padding:0.2rem 0.65rem;border-radius:100px;font-size:0.6rem;font-weight:700;display:inline-flex;align-items:center;gap:4px;margin-bottom:0.65rem;position:relative;z-index:1}

/* LANDING */
.land-hero{background:#18120A;padding:2rem 1.25rem 1.6rem;position:relative;overflow:hidden}
.land-glow{position:absolute;top:-30%;right:-25%;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle,rgba(212,88,26,0.2) 0%,transparent 65%);pointer-events:none}
.land-logo{font-family:'Playfair Display',serif;font-size:1.35rem;font-weight:700;color:#fff;letter-spacing:-0.02em;margin-bottom:1.1rem;position:relative;z-index:1}
.land-logo em{font-style:italic;color:var(--terra)}
.land-logo span{font-size:0.48rem;background:var(--terra);color:#fff;padding:1px 5px;border-radius:3px;vertical-align:middle;font-family:Inter;font-weight:700;margin-left:4px}
.land-h1{font-size:1.25rem;font-weight:700;color:#fff;line-height:1.25;letter-spacing:-0.02em;margin-bottom:0.4rem;position:relative;z-index:1}
.land-sub{font-size:0.78rem;color:rgba(255,255,255,0.38);line-height:1.65;margin-bottom:1.5rem;position:relative;z-index:1;font-weight:300}
.land-cta{position:relative;z-index:1;display:flex;flex-direction:column;gap:0.55rem}
.land-trial{font-size:0.65rem;color:rgba(255,255,255,0.28);text-align:center;margin-top:0.25rem}
.land-body{padding:1.1rem;display:flex;flex-direction:column;gap:1rem;padding-bottom:3rem}
.feat-row{display:flex;gap:0.7rem;align-items:flex-start;padding:0.55rem 0;border-bottom:0.5px solid var(--bd)}
.feat-row:last-child{border-bottom:none}
.feat-ic{font-size:1.1rem;flex-shrink:0;margin-top:1px}
.feat-t{font-size:0.83rem;font-weight:600;color:var(--text);margin-bottom:0.1rem}
.feat-s{font-size:0.7rem;color:var(--text2);line-height:1.5}
.testi{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);padding:1rem;box-shadow:var(--sh)}
.testi-stars{color:#E8A020;font-size:0.65rem;letter-spacing:1px;margin-bottom:0.4rem}
.testi-txt{font-size:0.77rem;color:var(--text2);line-height:1.65;font-style:italic;margin-bottom:0.65rem}
.testi-auth{display:flex;align-items:center;gap:0.5rem}
.testi-av{width:26px;height:26px;border-radius:50%;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:0.85rem}
.testi-nm{font-size:0.72rem;font-weight:600;color:var(--text)}
.testi-rl{font-size:0.6rem;color:var(--text3);margin-top:1px}

/* AUTH */
.auth-hero{background:#18120A;padding:1.65rem 1.25rem 1.3rem;text-align:center}
.auth-logo{font-family:'Playfair Display',serif;font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:-0.02em;margin-bottom:0.18rem}
.auth-logo em{font-style:italic;color:var(--terra)}
.auth-sub{font-size:0.72rem;color:rgba(255,255,255,0.28)}
.auth-body{padding:1.1rem;display:flex;flex-direction:column;gap:0.85rem;max-width:440px;margin:0 auto}
.btn-google{width:100%;padding:0.72rem;border-radius:var(--rsm);border:0.5px solid var(--bd2);background:var(--white);color:var(--text);font-size:0.82rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:0.55rem;margin-bottom:0.65rem;cursor:pointer}

/* ONBOARDING */
/* ONBOARDING — tutoriel interactif avec flèches */
.onboarding-coach{position:fixed;inset:0;z-index:10000;display:none;pointer-events:none}
.onboarding-coach.on{display:block}
.onboarding-backdrop{position:absolute;inset:0;background:rgba(30,22,8,0.55);pointer-events:auto}
.onboarding-spotlight{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px rgba(30,22,8,0.72);pointer-events:none;transition:top .25s ease,left .25s ease,width .25s ease,height .25s ease;z-index:10001;border:2px solid var(--terra)}
.onboarding-target-active{position:relative;z-index:10002!important}
.onboarding-tooltip{position:fixed;z-index:10003;background:var(--white);border-radius:var(--r);padding:1rem 1.05rem;max-width:min(340px,calc(100vw - 24px));box-shadow:0 16px 48px rgba(30,22,8,0.28);pointer-events:auto;transition:top .25s ease,left .25s ease}
.onboarding-tooltip-arrow{position:absolute;width:12px;height:12px;background:var(--white);transform:rotate(45deg);box-shadow:-2px -2px 4px rgba(30,22,8,0.06)}
.onboarding-tooltip-arrow.bottom{top:-6px}
.onboarding-tooltip-arrow.top{bottom:-6px}
.onboarding-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:0.75rem}
.onboarding-kicker{font-size:0.62rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--terra)}
.onboarding-progress-text{font-size:0.72rem;color:var(--text2);margin-top:0.15rem}
.onboarding-skip{background:none;border:none;color:var(--text3);font-size:0.72rem;cursor:pointer;padding:0.25rem}
.onboarding-progress-bar{height:6px;background:var(--bg2);border-radius:100px;overflow:hidden;margin-bottom:0.85rem}
.onboarding-progress-fill{height:100%;background:linear-gradient(90deg,var(--terra),var(--sage));border-radius:100px;transition:width .4s ease;width:0}
.onboarding-hero{text-align:center;margin-bottom:0.85rem}
.onboarding-step-emoji{font-size:2rem;margin-bottom:0.25rem}
.onboarding-step-title{font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:700;color:var(--text);margin-bottom:0.3rem}
.onboarding-step-desc{font-size:0.74rem;color:var(--text2);line-height:1.55}
.onboarding-steps-list{display:flex;flex-direction:column;gap:0.3rem;margin-bottom:0.85rem}
.onboarding-step-item{display:flex;align-items:center;gap:0.5rem;font-size:0.68rem;color:var(--text3);padding:0.35rem 0.5rem;border-radius:var(--rxs)}
.onboarding-step-item.current{background:var(--terra-bg);color:var(--terra);font-weight:600}
.onboarding-step-item.done{color:var(--sage)}
.onboarding-step-dot{width:20px;height:20px;border-radius:50%;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:0.58rem;font-weight:700;flex-shrink:0}
.onboarding-step-item.done .onboarding-step-dot{background:var(--sage);color:#fff}
.onboarding-step-item.current .onboarding-step-dot{background:var(--terra);color:#fff}
.onboarding-cta{width:100%;border-radius:var(--rsm)!important}

/* MODE URGENCE */
.emergency-fab{position:fixed;bottom:calc(var(--nbh) + 1rem);right:1rem;z-index:9998;width:52px;height:52px;border-radius:50%;border:none;background:linear-gradient(135deg,#E04040,#B83030);color:#fff;font-size:1.35rem;cursor:pointer;box-shadow:0 4px 20px rgba(184,48,48,0.45);display:flex;align-items:center;justify-content:center;animation:emergencyPulse 2s infinite}
.support-fab{position:fixed;bottom:calc(var(--nbh) + 1rem);left:1rem;z-index:9997;padding:0.55rem 0.9rem;border-radius:100px;border:none;background:var(--white);color:var(--text);font-size:0.72rem;font-weight:700;font-family:inherit;cursor:pointer;box-shadow:0 4px 16px rgba(30,22,8,0.12);border:0.5px solid var(--bd);display:flex;align-items:center;gap:0.3rem}
.support-fab:hover{background:var(--bg2)}
.support-faq-link{display:inline-flex;align-items:center;gap:0.35rem;font-size:0.78rem;color:var(--terra);font-weight:600;margin-bottom:0.85rem}
.support-contact{font-size:0.78rem;color:var(--text2);margin-bottom:0.85rem;line-height:1.5}
.support-contact a{color:var(--terra);font-weight:600}

/* FREEMIUM BANNER */
.freemium-mwrap{align-items:flex-end;padding:0}
.freemium-mwrap.on{display:flex}
.freemium-banner{background:var(--white);border-radius:22px 22px 0 0;padding:1.35rem 1.25rem 1.75rem;width:100%;max-width:480px;margin:0 auto;box-shadow:0 -8px 40px rgba(30,22,8,0.15);position:relative;text-align:center;animation:freemiumSlideUp .35s ease}
@keyframes freemiumSlideUp{from{transform:translateY(100%);opacity:0}to{transform:none;opacity:1}}
.freemium-close{position:absolute;top:0.85rem;right:0.85rem;background:var(--bg2);border:none;width:28px;height:28px;border-radius:50%;font-size:0.72rem;color:var(--text3);cursor:pointer}
.freemium-icon{font-size:2rem;margin-bottom:0.35rem}
.freemium-title{font-family:'Playfair Display',serif;font-size:1.05rem;font-weight:700;color:var(--text);line-height:1.35;margin-bottom:0.45rem;padding:0 0.5rem}
.freemium-desc{font-size:0.74rem;color:var(--text2);line-height:1.55;margin-bottom:1rem;padding:0 0.25rem}
.freemium-desc span{color:var(--terra);font-weight:600}
.freemium-cta{width:100%;border-radius:var(--rsm)!important;margin-bottom:0.5rem}
.freemium-dismiss{background:none;border:none;color:var(--text3);font-size:0.72rem;cursor:pointer;padding:0.35rem}
@keyframes emergencyPulse{0%,100%{box-shadow:0 4px 20px rgba(184,48,48,0.45)}50%{box-shadow:0 4px 28px rgba(184,48,48,0.7)}}
.emergency-photo-grid{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.35rem}
.emergency-photo-thumb{position:relative;width:64px;height:64px;border-radius:var(--rxs);overflow:hidden}
.emergency-photo-thumb img{width:100%;height:100%;object-fit:cover}
.emergency-photo-thumb button{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(0,0,0,0.6);color:#fff;font-size:0.55rem;cursor:pointer}

/* PLANS */
.plan-card{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);padding:1.05rem;box-shadow:var(--sh)}
.plan-card.featured{border-color:var(--terra);border-width:1.5px}
.plan-trial-note{font-size:0.62rem;color:var(--sage);background:rgba(90,138,94,0.08);border:0.5px solid rgba(90,138,94,0.25);border-radius:var(--rxs);padding:0.45rem 0.55rem;line-height:1.45;margin-bottom:0.65rem;font-weight:500}
.plan-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:0.3rem}
.plan-name{font-size:0.88rem;font-weight:700;color:var(--text)}
.plan-tag{font-size:0.54rem;font-weight:700;background:var(--terra-bg);color:var(--terra);border:0.5px solid var(--terra-bd);padding:2px 6px;border-radius:100px}
.plan-price{font-family:'Playfair Display',serif;font-size:1.45rem;font-weight:700;color:var(--terra);line-height:1;margin-bottom:0.15rem}
.plan-price span{font-size:0.7rem;font-family:Inter;font-weight:400;color:var(--text3)}
.plan-feats{display:flex;flex-direction:column;gap:0.25rem;margin-bottom:0.85rem}
.plan-feat{font-size:0.7rem;color:var(--text2);display:flex;align-items:center;gap:0.4rem}
.plan-feat::before{content:'✓';color:var(--sage);font-weight:700;font-size:0.65rem;flex-shrink:0}

/* EDL */
.edl-prog{padding:0.5rem 1.1rem;background:var(--bg2);border-bottom:0.5px solid var(--bd)}
.edl-prog-bar{height:3px;background:var(--bg3);border-radius:2px;overflow:hidden;margin-top:0.3rem}
.edl-prog-fill{height:100%;background:linear-gradient(90deg,var(--terra),var(--sage));border-radius:2px;transition:width 0.4s ease}
.room-head{padding:1rem 1.1rem;text-align:center;background:var(--bg)}
.room-ic{font-size:2.2rem;margin-bottom:0.35rem}
.room-name{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:var(--text);letter-spacing:-0.02em}
.room-sub{font-size:0.68rem;color:var(--text3);margin-top:2px}
.photos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0.38rem}
.photo-thumb{aspect-ratio:1;border-radius:var(--rsm);overflow:hidden;position:relative}
.photo-thumb img{width:100%;height:100%;object-fit:cover}
.photo-del{position:absolute;top:3px;right:3px;background:rgba(184,48,48,0.88);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:0.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
.add-photo{aspect-ratio:1;border-radius:var(--rsm);border:1.5px dashed var(--bd2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;cursor:pointer;background:var(--bg)}
.add-photo-ic{font-size:1.15rem}
.add-photo-t{font-size:0.56rem;color:var(--text3);font-weight:600}
.ai-result{background:var(--blue-bg);border:0.5px solid var(--blue-bd);border-radius:var(--rsm);padding:0.75rem;margin-top:0.5rem;display:none}
.ai-result.on{display:block}
.ai-result-t{font-size:0.65rem;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.4rem}
.ai-result-txt{font-size:0.78rem;color:var(--text);line-height:1.55}
.ai-degat{background:var(--red-bg);border:0.5px solid var(--red-bd);border-radius:var(--rxs);padding:0.35rem 0.6rem;margin-top:0.4rem;font-size:0.72rem;color:var(--red);font-weight:600}
.cond-btns{display:grid;grid-template-columns:repeat(4,1fr);gap:0.32rem}
.cond-btn{padding:0.55rem 0.2rem;border-radius:var(--rsm);border:0.5px solid var(--bd2);background:var(--bg);cursor:pointer;text-align:center;transition:all 0.15s}
.cond-ic{font-size:0.9rem;display:block;margin-bottom:2px}
.cond-lt{font-size:0.52rem;font-weight:700;color:var(--text3)}
.cond-btn.parfait{border-color:#2E7D32;background:#E8F5E9}.cond-btn.parfait .cond-lt{color:#2E7D32}
.cond-btn.bon{border-color:var(--sage);background:var(--sage-bg)}.cond-btn.bon .cond-lt{color:var(--sage)}
.cond-btn.use{border-color:var(--terra);background:var(--terra-bg)}.cond-btn.use .cond-lt{color:var(--terra)}
.cond-btn.degrade{border-color:var(--red);background:var(--red-bg)}.cond-btn.degrade .cond-lt{color:var(--red)}
.edl-nav-bar{position:sticky;bottom:var(--nbh);background:rgba(250,250,248,0.97);backdrop-filter:blur(16px);border-top:0.5px solid var(--bd);padding:0.75rem 1.1rem;display:flex;gap:0.6rem;z-index:50}

/* INVENTAIRE */
.inv-item{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--rsm);padding:0.65rem 0.9rem;display:flex;align-items:center;gap:0.65rem;box-shadow:var(--sh)}
.inv-item-ic{font-size:1rem;flex-shrink:0}
.inv-item-nm{flex:1;font-size:0.82rem;font-weight:500;color:var(--text)}
.inv-cat-block{margin-bottom:0.85rem}
.inv-cat-header{display:flex;justify-content:space-between;align-items:center;font-size:0.78rem;font-weight:700;color:var(--text);margin-bottom:0.45rem;padding:0 0.15rem}
.inv-row{display:flex;align-items:center;gap:0.65rem;background:var(--white);border:0.5px solid var(--bd);border-radius:var(--rsm);padding:0.6rem 0.75rem;cursor:pointer;box-shadow:var(--sh)}
.inv-row:active{opacity:0.85}
.inv-thumb{width:44px;height:44px;border-radius:var(--rxs);object-fit:cover;flex-shrink:0}
.inv-thumb-placeholder{width:44px;height:44px;border-radius:var(--rxs);background:var(--bg);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0}
.inv-row-info{flex:1;min-width:0}
.inv-row-name{font-size:0.82rem;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.inv-row-meta{display:flex;gap:0.35rem;align-items:center;margin-top:3px;flex-wrap:wrap}
.inv-row-value{font-size:0.85rem;font-weight:700;color:var(--terra);flex-shrink:0}
.inv-counter{display:flex;align-items:center;gap:0.5rem;flex-shrink:0}
.counter-btn{width:28px;height:28px;border-radius:50%;border:0.5px solid var(--bd2);background:var(--bg2);color:var(--text);font-size:1rem;display:flex;align-items:center;justify-content:center;cursor:pointer;font-weight:600}
.counter-n{font-size:0.88rem;font-weight:700;color:var(--text);min-width:20px;text-align:center}
.counter-diff-ok{color:var(--sage)}
.counter-diff-bad{color:var(--red)}

/* CHECKLIST */
.check-item{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--rsm);padding:0.75rem 0.9rem;display:flex;align-items:center;gap:0.65rem;box-shadow:var(--sh);cursor:pointer}
.check-item.done{background:var(--sage-bg);border-color:var(--sage-bd)}
.check-box{width:20px;height:20px;border-radius:5px;border:1.5px solid var(--bd2);display:flex;align-items:center;justify-content:center;font-size:0.65rem;flex-shrink:0}
.check-item.done .check-box{background:var(--sage);border-color:var(--sage);color:#fff}
.check-txt{flex:1;font-size:0.8rem;font-weight:500;color:var(--text)}
.check-item.done .check-txt{text-decoration:line-through;color:var(--text3)}

/* COMPARE */
.compare-cols{display:grid;grid-template-columns:1fr 1fr}
.compare-col{padding:0.7rem}
.compare-col-lbl{font-size:0.58rem;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.4rem}
.compare-col.entree .compare-col-lbl{color:var(--sage)}
.compare-col.sortie .compare-col-lbl{color:var(--terra)}
.compare-photo{aspect-ratio:4/3;border-radius:var(--rsm);overflow:hidden;background:var(--bg2);margin-bottom:0.3rem;flex:0 0 42%;min-width:42%}
.compare-photo img{width:100%;height:100%;object-fit:cover}
.compare-photos-strip{display:flex;gap:0.35rem;overflow-x:auto;padding-bottom:0.25rem;-webkit-overflow-scrolling:touch}
.compare-photo-empty{display:flex;align-items:center;justify-content:center;height:100%;font-size:0.65rem;color:var(--text3)}
.compare-damage-eur{display:flex;align-items:center;gap:0.5rem;flex-wrap:wrap;padding:0.55rem 0.9rem;background:var(--red-bg);border-top:0.5px solid var(--red-bd);font-size:0.72rem;color:var(--red)}
.compare-damage-eur strong{font-size:0.85rem;margin-left:auto}
.diff-ok{background:var(--sage-bg);color:var(--sage);padding:0.12rem 0.5rem;border-radius:100px;font-size:0.56rem;font-weight:700;border:0.5px solid var(--sage-bd)}
.diff-warn{background:var(--terra-bg);color:var(--terra);padding:0.12rem 0.5rem;border-radius:100px;font-size:0.56rem;font-weight:700;border:0.5px solid var(--terra-bd)}
.diff-bad{background:var(--red-bg);color:var(--red);padding:0.12rem 0.5rem;border-radius:100px;font-size:0.56rem;font-weight:700;border:0.5px solid var(--red-bd)}
.ai-compare{background:var(--blue-bg);border:0.5px solid var(--blue-bd);border-radius:var(--r);padding:1rem}
.ai-compare-t{font-size:0.65rem;font-weight:700;color:var(--blue);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:0.65rem}

/* PROFIL */
.prof-hero{background:#18120A;padding:1.6rem 1.25rem 1.3rem;text-align:center}
.prof-av{width:58px;height:58px;border-radius:50%;background:rgba(212,88,26,0.18);border:2px solid rgba(212,88,26,0.35);display:flex;align-items:center;justify-content:center;font-size:1.35rem;margin:0 auto 0.6rem;font-family:'Playfair Display',serif;font-weight:700;color:var(--terra)}
.prof-name{font-family:'Playfair Display',serif;font-size:1.1rem;font-weight:700;color:#fff;margin-bottom:0.1rem}
.prof-email{font-size:0.68rem;color:rgba(255,255,255,0.32)}
.prof-section{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.prof-section-t{font-size:0.6rem;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.07em;padding:0.72rem 1rem 0.38rem}
.prof-row{display:flex;align-items:center;justify-content:space-between;padding:0.72rem 1rem;border-top:0.5px solid var(--bd);gap:0.5rem}
.prof-row-l{font-size:0.82rem;font-weight:500;color:var(--text)}
.prof-row-r{font-size:0.75rem;color:var(--text3)}
.prof-row-a{font-size:0.75rem;color:var(--terra);font-weight:600;cursor:pointer}

/* MODALS */
.mwrap{position:fixed;inset:0;background:rgba(24,18,10,0.55);display:none;align-items:flex-end;justify-content:center;z-index:200;backdrop-filter:blur(8px)}
.mwrap.on{display:flex}
.modal{background:var(--bg);border-radius:22px 22px 0 0;padding:1.35rem 1.1rem 2.5rem;width:100%;max-width:480px;max-height:92dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.mhandle{width:32px;height:3px;background:var(--bg3);border-radius:2px;margin:0 auto 1.1rem}
.modal-t{font-size:0.9rem;font-weight:700;color:var(--text);margin-bottom:0.85rem}

/* SPINNERS */
#ls{position:fixed;inset:0;background:#18120A;display:none;flex-direction:column;align-items:center;justify-content:center;z-index:9000;gap:1.5rem}
#ls.on{display:flex}
.ls-logo{font-family:'Playfair Display',serif;font-size:1.65rem;font-weight:700;color:#fff}
.ls-logo em{font-style:italic;color:var(--terra)}
.ls-bar{width:110px;height:1.5px;background:rgba(255,255,255,0.1);border-radius:1px;overflow:hidden}
.ls-fill{height:100%;background:var(--terra);width:0;transition:width 0.3s ease}
.ls-msg{font-size:0.68rem;color:rgba(255,255,255,0.25);transition:opacity 0.2s}
.spl{position:fixed;inset:0;background:rgba(250,250,248,0.92);display:none;align-items:center;justify-content:center;z-index:500;flex-direction:column;gap:0.75rem;backdrop-filter:blur(16px)}
.spl.on{display:flex}
.spinner{width:26px;height:26px;border:2px solid var(--bd2);border-top-color:var(--terra);border-radius:50%;animation:spin 0.65s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.spl-txt{font-size:0.75rem;color:var(--text2);font-weight:500}

/* ROOM CHIPS */
.rchip-on{padding:0.28rem 0.72rem;border-radius:100px;border:1.5px solid var(--terra-bd);background:var(--terra);color:#fff;font-size:0.72rem;font-weight:600;font-family:inherit;cursor:pointer}
.rchip-off{padding:0.28rem 0.72rem;border-radius:100px;border:0.5px solid var(--bd2);background:var(--bg2);color:var(--text2);font-size:0.72rem;font-weight:500;font-family:inherit;cursor:pointer}
.rchip-add{padding:0.28rem 0.72rem;border-radius:100px;border:1.5px dashed var(--bd2);background:transparent;color:var(--text3);font-size:0.72rem;font-family:inherit;cursor:pointer}

/* PLANNING CALENDAR */
.planning-toolbar{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;margin-bottom:0.75rem}
.planning-nav{display:flex;gap:0.35rem}
.planning-nav-btn{width:34px;height:34px;border-radius:50%;border:0.5px solid var(--bd2);background:var(--white);font-size:1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text)}
.planning-month-label{font-size:0.95rem;font-weight:700;flex:1;text-align:center}
.planning-legend{display:flex;flex-wrap:wrap;gap:0.5rem 0.85rem;margin-bottom:0.85rem;font-size:0.65rem;color:var(--text2)}
.planning-legend-item{display:inline-flex;align-items:center;gap:0.3rem}
.planning-legend-dot,.planning-event-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}
.planning-cal{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);overflow:hidden;box-shadow:var(--sh)}
.planning-wd-row{display:grid;grid-template-columns:repeat(7,1fr);background:var(--bg2);border-bottom:0.5px solid var(--bd)}
.planning-wd{text-align:center;font-size:0.58rem;font-weight:600;color:var(--text3);padding:0.45rem 0;text-transform:uppercase;letter-spacing:0.04em}
.planning-days{display:grid;grid-template-columns:repeat(7,1fr)}
.planning-day{min-height:78px;border-right:0.5px solid var(--bd);border-bottom:0.5px solid var(--bd);padding:0.28rem 0.22rem;vertical-align:top}
.planning-day:nth-child(7n){border-right:none}
.planning-day-empty{background:var(--cream)}
.planning-day-today{background:rgba(212,88,26,0.04)}
.planning-day-today .planning-day-num{color:var(--terra);font-weight:700}
.planning-day-num{font-size:0.62rem;color:var(--text3);margin-bottom:0.15rem;padding-left:0.15rem}
.planning-event{font-size:0.52rem;line-height:1.25;padding:0.18rem 0.28rem;border-radius:4px;margin-top:0.12rem;cursor:pointer;display:flex;align-items:flex-start;gap:0.2rem;overflow:hidden;word-break:break-word}
.planning-event-who{opacity:0.85;font-weight:500}
.st-pending{background:var(--blue-bg);color:var(--blue);border:0.5px solid var(--blue-bd)}
.st-pending .planning-legend-dot,.st-pending .planning-event-dot{background:var(--blue)}
.st-in-progress{background:var(--terra-bg);color:var(--terra);border:0.5px solid var(--terra-bd)}
.st-in-progress .planning-legend-dot,.st-in-progress .planning-event-dot{background:var(--terra)}
.st-completed{background:var(--sage-bg);color:var(--sage);border:0.5px solid var(--sage-bd)}
.st-completed .planning-legend-dot,.st-completed .planning-event-dot{background:var(--sage)}
.planning-ical-task{border-style:dashed!important}
.planning-res{font-weight:600}
.plat-airbnb{background:#FFE4EC;color:#C13584;border:0.5px solid #F5A3C7}
.plat-airbnb .planning-legend-dot,.plat-airbnb .planning-event-dot{background:#FF5A9A}
.plat-booking{background:#E3F0FF;color:#003580;border:0.5px solid #93C5FD}
.plat-booking .planning-legend-dot,.plat-booking .planning-event-dot{background:#003580}
.plat-abritel{background:#E8F5E9;color:#2E7D32;border:0.5px solid #A5D6A7}
.plat-abritel .planning-legend-dot,.plat-abritel .planning-event-dot{background:#2E7D32}
.plat-other{background:#F0F0F0;color:#616161;border:0.5px solid #BDBDBD}
.plat-other .planning-legend-dot,.plat-other .planning-event-dot{background:#9E9E9E}
.planning-hint{font-size:0.68rem;color:var(--text3);margin-top:0.65rem;text-align:center}
.planning-empty-msg{text-align:center;padding:0.85rem 1rem;font-size:0.75rem;color:var(--text3);border-top:0.5px solid var(--bd);background:var(--cream)}

/* iCal feeds (fiche bien) */
.ical-card{border:0.5px solid var(--bd2)}
.ical-hint{font-size:0.68rem;color:var(--text3);margin:0 0 0.65rem;line-height:1.4}
.ical-feed-row{background:var(--cream);border-radius:var(--rsm);padding:0.55rem 0.65rem;margin-bottom:0.4rem;border:0.5px solid var(--bd)}
.ical-feed-head{display:flex;justify-content:space-between;align-items:center;gap:0.35rem;flex-wrap:wrap;margin-bottom:0.35rem}
.ical-feed-label{font-size:0.75rem;font-weight:700;color:var(--brown)}
.ical-feed-row .finput{margin-top:0.25rem;font-size:0.72rem}
.ical-feed-read{font-size:0.68rem;color:var(--text2)}
.ical-feed-empty{font-style:italic;color:var(--text3)}
.ical-sync-err{font-size:0.58rem;color:var(--terra);font-weight:600}

/* Messages auto voyageurs */
.tam-hint{font-size:0.68rem;color:var(--text3);margin:0 0 0.5rem;line-height:1.4}
.tam-tmpl-card{background:var(--cream);border-radius:var(--rsm);border:0.5px solid var(--bd);overflow:hidden;margin-bottom:0.4rem}
.tam-tmpl-head{display:flex;justify-content:space-between;align-items:center;padding:0.65rem 0.75rem;cursor:pointer;font-size:0.78rem;font-weight:700;color:var(--brown)}
.tam-tmpl-body{padding:0 0.75rem 0.75rem}
.tam-vars-hint{font-size:0.62rem;color:var(--text3);margin-top:0.25rem}
.tam-auto-row{display:flex;align-items:center;gap:0.4rem;font-size:0.72rem;font-weight:600;margin:0.5rem 0;color:var(--text2)}
.tam-res-card{background:var(--cream);border-radius:var(--rsm);padding:0.65rem 0.75rem;border:0.5px solid var(--bd);margin-bottom:0.4rem}
.tam-res-top{display:flex;justify-content:space-between;align-items:flex-start;gap:0.5rem;margin-bottom:0.45rem}
.tam-res-email{display:flex;gap:0.35rem;align-items:flex-end;margin-bottom:0.45rem}
.tam-res-email .finput{flex:1}
.tam-res-send{display:flex;gap:0.35rem;align-items:center}
.tam-res-send .fselect{flex:1}
.tam-log-row{display:flex;align-items:flex-start;gap:0.55rem;padding:0.55rem 0;border-bottom:0.5px solid var(--bd)}
.tam-log-ic{font-size:1.1rem;line-height:1}
.tam-log-info{flex:1;min-width:0}
.tam-log-err{font-size:0.65rem;color:var(--red);margin-top:0.15rem}
.tam-property-card{border:0.5px solid var(--bd2)}
.tam-mini-list{margin-top:0.35rem}
.tam-mini-res{display:flex;align-items:center;gap:0.35rem;font-size:0.72rem;padding:0.3rem 0;border-bottom:0.5px solid var(--bd);flex-wrap:wrap}
.tam-mini-dates{color:var(--text3);font-size:0.65rem}

/* Boutons CTA écrans + messages */
.screen-cta-btn{border-radius:var(--rsm);width:100%;margin-bottom:0.25rem}
.msg-new-btn{width:36px;height:36px;border-radius:50%;padding:0;font-size:1.25rem;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0}

/* INCIDENTS */
.inc-filters{display:grid;grid-template-columns:repeat(3,1fr);gap:0.35rem;margin-bottom:0.5rem}
.inc-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0.35rem;margin-bottom:0.65rem}
.inc-summary-item{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--rsm);padding:0.55rem 0.35rem;text-align:center}
.inc-summary-n{display:block;font-size:1.1rem;font-weight:700;color:var(--brown);line-height:1.1}
.inc-summary-l{display:block;font-size:0.55rem;color:var(--text3);text-transform:uppercase;margin-top:0.15rem}
.inc-sum-urgent .inc-summary-n{color:var(--red)}
.inc-sum-open .inc-summary-n{color:var(--terra)}
.inc-card{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);padding:0.65rem;margin-bottom:0.35rem}
.inc-card-urgent{border-color:var(--red);background:rgba(184,48,48,0.04)}
.inc-badges{display:flex;flex-direction:column;gap:3px;align-items:flex-end;flex-shrink:0}
.inc-photo-preview{display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.35rem}
.inc-photo-thumb{position:relative;width:64px;height:64px;border-radius:var(--rxs);overflow:hidden;border:0.5px solid var(--bd)}
.inc-photo-thumb img{width:100%;height:100%;object-fit:cover}
.inc-photo-thumb button{position:absolute;top:2px;right:2px;width:18px;height:18px;border-radius:50%;border:none;background:rgba(0,0,0,0.6);color:#fff;font-size:0.55rem;cursor:pointer}
.inc-detail-header{display:flex;gap:0.65rem;align-items:flex-start;margin-bottom:0.65rem}
.inc-detail-icon{font-size:2rem;line-height:1}
.inc-detail-title{font-size:1rem;font-weight:700;color:var(--brown)}
.inc-detail-sub{font-size:0.68rem;color:var(--text3);margin-top:0.15rem}
.inc-detail-desc{font-size:0.78rem;color:var(--text2);line-height:1.5;margin:0.35rem 0}
.inc-detail-meta{display:flex;flex-wrap:wrap;gap:0.5rem;font-size:0.62rem;color:var(--text3)}
.inc-photo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0.35rem}
.inc-photo-full{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--rsm);border:0.5px solid var(--bd)}
@media(max-width:480px){.inc-filters{grid-template-columns:1fr}.inc-summary-grid{grid-template-columns:repeat(2,1fr)}}

/* FACTURATION */
.inc-sum-paid .inc-summary-n{color:var(--sage)}
.inv-card{background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);padding:0.65rem;margin-bottom:0.35rem}
.inv-line-row{display:grid;grid-template-columns:1fr 2fr 0.6fr 0.8fr 0.8fr auto;gap:0.3rem;align-items:center;margin-bottom:0.35rem}
.inv-line-amt{font-size:0.72rem;font-weight:700;color:var(--brown);text-align:right}
.inv-totals-read,.inv-totals-preview{margin-top:0.5rem;padding-top:0.5rem;border-top:0.5px solid var(--bd)}
.inv-total-row{display:flex;justify-content:space-between;font-size:0.72rem;color:var(--text2);padding:0.2rem 0}
.inv-total-final{font-size:0.88rem;font-weight:700;color:var(--brown);border-top:0.5px solid var(--bd);margin-top:0.25rem;padding-top:0.35rem}
.inv-line-read{display:grid;grid-template-columns:1fr auto auto;gap:0.5rem;font-size:0.75rem;padding:0.35rem 0;border-bottom:0.5px solid var(--bd)}
.inv-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:0.5rem;margin-bottom:0.65rem;flex-wrap:wrap}
@media(max-width:600px){.inv-line-row{grid-template-columns:1fr 1fr}.inv-line-row .inv-line-amt{grid-column:1/-1;text-align:left}}

/* MESSAGERIE */
.msg-conv-item{display:flex;align-items:center;gap:0.75rem;padding:0.85rem 1rem;background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);cursor:pointer;transition:background 0.12s}
.msg-conv-item:active{background:var(--bg2)}
.msg-conv-ic{width:44px;height:44px;border-radius:50%;background:var(--sage-bg);display:flex;align-items:center;justify-content:center;font-size:1.2rem;flex-shrink:0}
.msg-conv-info{flex:1;min-width:0}
.msg-conv-top{display:flex;justify-content:space-between;gap:0.5rem;align-items:baseline}
.msg-conv-name{font-size:0.82rem;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.msg-conv-time{font-size:0.58rem;color:var(--text3);flex-shrink:0}
.msg-conv-preview{font-size:0.68rem;color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:0.15rem}
.msg-unread-badge{min-width:20px;height:20px;border-radius:50%;background:var(--terra);color:#fff;font-size:0.62rem;font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 5px;flex-shrink:0}
.msg-thread-view{flex-direction:column;height:calc(100dvh - var(--nbh));margin:-0.5rem 0 0}
#messages.screen.active{padding-bottom:0}
#messages.screen.active .msg-thread-view{display:flex!important}
.msg-thread-body{flex:1;overflow-y:auto;padding:0.85rem 1rem;display:flex;flex-direction:column;gap:0.5rem;background:var(--cream);-webkit-overflow-scrolling:touch}
.msg-empty-thread{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:2rem}
.msg-row{display:flex;width:100%}
.msg-row-mine{justify-content:flex-end}
.msg-row-theirs{justify-content:flex-start}
.msg-bubble{max-width:82%;padding:0.55rem 0.75rem;border-radius:14px;font-size:0.78rem;line-height:1.4;box-shadow:var(--sh)}
.msg-bubble.recv{background:var(--white);border:0.5px solid var(--bd);border-bottom-left-radius:4px}
.msg-bubble.sent{background:var(--terra);color:#fff;border-bottom-right-radius:4px}
.msg-bubble-who{font-size:0.58rem;font-weight:600;color:var(--sage);margin-bottom:0.2rem}
.msg-bubble.sent .msg-bubble-who{color:rgba(255,255,255,0.75)}
.msg-bubble-text{word-break:break-word}
.msg-bubble-time{font-size:0.52rem;opacity:0.65;margin-top:0.25rem;text-align:right}
.msg-bubble-img{max-width:100%;border-radius:8px;margin-bottom:0.35rem;display:block}
.msg-direct-tag{font-size:0.52rem;opacity:0.7;margin-bottom:0.2rem}
.msg-compose{background:var(--white);border-top:0.5px solid var(--bd);padding:0.55rem 0.85rem calc(0.55rem + env(safe-area-inset-bottom,0px))}
.msg-compose-row{display:flex;align-items:flex-end;gap:0.45rem}
.msg-compose-btn{width:38px;height:38px;border-radius:50%;border:0.5px solid var(--bd2);background:var(--bg2);font-size:1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.msg-input{flex:1;border:0.5px solid var(--bd2);border-radius:20px;padding:0.55rem 0.85rem;font-size:0.78rem;resize:none;max-height:100px;background:var(--cream);line-height:1.35}
.msg-send-btn{width:38px;height:38px;border-radius:50%;border:none;background:var(--terra);color:#fff;font-size:1rem;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.msg-preview-wrap{position:relative;display:inline-block;margin-bottom:0.4rem}
.msg-preview-wrap img{max-height:80px;border-radius:8px;display:block}
.msg-preview-wrap button{position:absolute;top:-6px;right:-6px;width:22px;height:22px;border-radius:50%;border:none;background:var(--red);color:#fff;font-size:0.65rem;cursor:pointer}

/* PWA INSTALL BANNER */
.pwa-install-banner{position:fixed;left:0;right:0;bottom:calc(var(--nbh) + env(safe-area-inset-bottom,0px));z-index:10100;padding:0.5rem 0.75rem 0.65rem;transform:translateY(110%);transition:transform 0.35s cubic-bezier(0.22,1,0.36,1);pointer-events:none}
.pwa-install-banner.show{transform:translateY(0);pointer-events:auto}
.pwa-install-inner{display:flex;align-items:center;gap:0.65rem;background:#1E1608;border:0.5px solid rgba(212,88,26,0.35);border-radius:16px;padding:0.65rem 0.75rem;box-shadow:0 -4px 24px rgba(0,0,0,0.25)}
.pwa-install-icon{border-radius:12px;flex-shrink:0}
.pwa-install-text{flex:1;min-width:0}
.pwa-install-title{font-size:0.82rem;font-weight:700;color:#fff;line-height:1.2}
.pwa-install-sub{font-size:0.62rem;color:rgba(255,255,255,0.55);margin-top:0.15rem;line-height:1.3}
.pwa-install-btn{background:var(--terra,#D4581A);color:#fff;border:none;border-radius:100px;padding:0.45rem 0.85rem;font-size:0.68rem;font-weight:700;cursor:pointer;font-family:inherit;flex-shrink:0}
.pwa-install-close{background:var(--cream);border:0.5px solid var(--bd2);color:var(--text2);font-size:1rem;cursor:pointer;padding:0;width:32px;height:32px;border-radius:50%;flex-shrink:0;line-height:1;display:flex;align-items:center;justify-content:center}
@media(min-width:768px){.pwa-install-banner{display:none!important}}

/* AUTH GATE — parcours sans compte */
.auth-gate-mwrap{align-items:center;justify-content:center;padding:1.25rem}
.auth-gate-card{background:var(--white);border-radius:var(--r);padding:1.75rem 1.35rem;max-width:380px;width:100%;text-align:center;position:relative;box-shadow:var(--sh-lg)}
.auth-gate-close{position:absolute;top:0.65rem;right:0.75rem;background:var(--bg2);border:0.5px solid var(--bd);border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:0.9rem;color:var(--text2)}
.auth-gate-icon{font-size:2rem;margin-bottom:0.5rem}
.auth-gate-title{font-family:'Playfair Display',serif;font-size:1.15rem;font-weight:700;margin-bottom:0.5rem;color:var(--text)}
.auth-gate-desc{font-size:0.78rem;color:var(--text2);line-height:1.55;margin-bottom:1.25rem}
.auth-gate-primary{width:100%;border-radius:100px;margin-bottom:0.5rem}
.auth-gate-secondary{width:100%;border-radius:100px}
.browse-empty .empty-s{max-width:280px;margin-left:auto;margin-right:auto}

/* GUEST INBOX */
.msg-tabs{display:flex;gap:0.35rem}
.msg-tab{flex:1;padding:0.5rem;border-radius:var(--rsm);border:0.5px solid var(--bd);background:var(--white);font-size:0.72rem;font-weight:600;cursor:pointer;font-family:inherit;color:var(--text2)}
.msg-tab.active{background:var(--terra);color:#fff;border-color:var(--terra)}
.guest-inbox-layout{display:grid;grid-template-columns:1fr;min-height:50vh}
@media(min-width:700px){.guest-inbox-layout{grid-template-columns:minmax(200px,38%) 1fr}}
.guest-thread-row{display:flex;gap:0.6rem;width:100%;text-align:left;padding:0.75rem 1rem;background:var(--white);border:0.5px solid var(--bd);border-radius:var(--r);margin-bottom:0.4rem;cursor:pointer;font-family:inherit}
.guest-thread-row.active{border-color:var(--terra);background:var(--terra-bg)}
.guest-inbox-pane{flex:1;overflow-y:auto;padding:0.85rem;background:var(--cream);min-height:200px;max-height:50vh}
.guest-bubble{max-width:85%;margin-bottom:0.5rem;padding:0.55rem 0.75rem;border-radius:12px;font-size:0.78rem}
.guest-bubble.in{background:var(--white);border:0.5px solid var(--bd)}
.guest-bubble.out{background:var(--terra);color:#fff;margin-left:auto}
.guest-inbox-reply{display:flex;gap:0.4rem;padding:0.65rem 1rem;border-top:0.5px solid var(--bd);background:var(--white)}