/* Welhome — interface commune propriétaire / gestion */
:root{--cream:#f4f6f3;--paper:#fff;--ink:#20352d;--muted:#65736c;--line:#e1e7e2;--line-strong:#bdc9c0;--r:12px;--shadow:0 3px 18px rgba(22,48,35,.045)}
html{scroll-behavior:smooth;scroll-padding-top:110px}
body{font-size:14px;line-height:1.55}
h2,h3{color:var(--forest-deep)}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,input,select,textarea{font-family:inherit}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #9b782b;outline-offset:3px}
input:not([type=checkbox]):not([type=radio]),select,textarea{min-height:42px;border-radius:8px;max-width:100%;background:#fff}
input[type=checkbox],input[type=radio]{accent-color:var(--forest)}
button:disabled{cursor:not-allowed}
.btn{min-height:42px;border-radius:8px;font-weight:500;padding:9px 16px}
.btn.sm{min-height:36px;padding:6px 12px}
.btn.ghost{background:white}
.card{border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
.label{font-size:11px;letter-spacing:.08em;font-weight:500}
.kpis{gap:14px;background:transparent;border:0;overflow:visible;border-radius:0}
.kpi{border:1px solid var(--line);border-radius:12px;padding:22px;min-width:0;box-shadow:var(--shadow)}
.kpi .v{font-family:'Jost',system-ui,sans-serif;font-size:30px;font-weight:500;line-height:1.2;letter-spacing:-.035em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.kpi .k{margin-top:10px}.kpi .d{margin-top:5px;line-height:1.5}
.pill{font-size:11px;letter-spacing:.025em;text-transform:none;padding:4px 10px;font-weight:500}
.pill.warn{background:#fff3d9;color:#855300;border-color:#e5bc62}
.pill.stop{background:#fff0ee;color:#943f34}
.empty{padding:48px 24px;background:#fbfcfa;border-radius:12px;font-size:14px}
.note{border-radius:0 8px 8px 0;line-height:1.65}
.num,.mono{font-variant-numeric:tabular-nums}
.tscroll{border-radius:12px;scrollbar-width:thin;overscroll-behavior-x:contain}
table.list th{font-size:11px;letter-spacing:.045em;background:#f6f8f5;color:#52665a;padding:13px 14px}
table.list td{padding:14px;border-bottom-color:#e8ede8;line-height:1.5}
table.list tbody tr:hover{background:#f7faf6}
table.list tr.modifiee{background:#fff7e6}
.head{margin-bottom:24px;align-items:center;gap:12px}.head h2{font-size:32px}.head .side{gap:10px}
/* Le sélecteur .bar du planning n'est pas concerné par l'en-tête. */
body.interface-admin #app>header.bar{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:none}
.interface-admin .bar-in{max-width:none;padding:18px 28px;gap:10px;min-height:82px}
.interface-admin .bar-in .mark{color:var(--forest);font-size:24px}
.interface-admin .badge{color:#62746a;border-color:var(--line);background:#f4f7f2;font-size:10px;letter-spacing:.08em}
.interface-admin .who{color:var(--muted);font-size:13px}.interface-admin .who .maj{color:var(--muted)}
.interface-admin .bar-in .sortir{color:var(--forest);border:1px solid var(--line);border-radius:8px;padding:8px 12px;min-height:38px;background:#fff}
.interface-admin .bar-in .sortir:hover{background:#f3f6ef;border-color:#9baa9c}
.interface-admin main{max-width:1600px;padding:30px 28px 72px}
.interface-admin .tabs{gap:20px;padding:12px 24px 14px;max-width:none;flex-wrap:wrap}
.interface-admin .nav-label{color:#7d9185;font-size:10px;letter-spacing:.12em;margin-bottom:10px}
.interface-admin .nav-group>div{gap:6px}
.interface-admin .tabs button,.interface-admin .nav-group a{color:var(--forest);border:0;border-radius:8px;padding:10px 12px;min-height:42px;font-size:14px;white-space:nowrap;text-align:left;text-decoration:none}
.interface-admin .tabs button:hover,.interface-admin .nav-group a:hover{background:#edf2e9;color:#18382a}
.interface-admin .tabs button.on{background:var(--forest);color:#fff;font-weight:500}
.interface-admin .tabs .n{background:#e2bc70;color:#24362b}
@media(min-width:1120px){
 .interface-admin #app{padding-left:226px}
 .interface-admin .tabs{position:fixed;left:0;top:0;bottom:0;width:226px;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;gap:32px;padding:100px 16px 28px;background:#16372b;overflow-y:auto;z-index:51}
 .interface-admin .tabs::before{content:'ESPACE DE GESTION';position:absolute;left:28px;top:35px;font-size:11px;letter-spacing:.13em;color:#c8d8c9}
 .interface-admin .nav-group>div{display:flex;flex-direction:column;align-items:stretch;gap:5px}
 .interface-admin .tabs button,.interface-admin .nav-group a{color:#d4e1d6;width:100%;padding:11px 14px}
 .interface-admin .tabs button:hover,.interface-admin .nav-group a:hover{background:#244b3b;color:white}
 .interface-admin .tabs button.on{background:#e7eedf;color:#153427;box-shadow:inset 3px 0 #b18b47}
 .interface-admin .nav-label{padding-left:14px;color:#9cb4a3}
}
/* Espace propriétaire */
.interface-owner .appbar{background:#fff;color:var(--ink);border-bottom:1px solid var(--line);box-shadow:0 2px 12px #18332305}
.interface-owner .appbar-in,.interface-owner .jump,.interface-owner main,.interface-owner .foot{max-width:1120px}
.interface-owner .appbar-in{padding:22px 26px 16px}
.interface-owner .brandline{align-items:center;gap:18px}
.interface-owner .brandline .mark{color:var(--forest);font-size:25px}
.interface-owner .brandline .who{color:var(--muted);font-size:13px}
.interface-owner .sortir{color:var(--forest);border-color:var(--line);border-radius:8px;min-height:38px;padding:8px 12px}
.interface-owner .jump{padding:0 26px 12px;gap:8px}
.interface-owner .jump a{color:#5b6f61;border:0;border-radius:7px;padding:9px 14px;font-size:14px;letter-spacing:0}
.interface-owner .jump a:hover,.interface-owner .jump a[aria-current]{color:var(--forest);background:#eaf0e5}
.interface-owner main{padding:0 26px 72px}
.interface-owner .hero2{margin-top:26px;border-radius:16px}
.interface-owner .hero2 img{height:290px}
.interface-owner .hero2 .in{padding:28px 30px}
.interface-owner .hero2 h1{font-size:40px;line-height:1.1}
.interface-owner .property-picker{border-radius:12px;padding:16px 20px;background:#fff;border:1px solid var(--line);margin-top:16px;gap:12px}
.interface-owner .property-picker label{font-size:13px;color:var(--muted);text-transform:none;letter-spacing:0}
.interface-owner .property-picker select{min-width:0;flex:1;font-weight:500}
.interface-owner .cta{background:#e8efe3;border:1px solid #d9e3d2;padding:22px 24px;gap:18px;border-radius:12px}
.interface-owner .cta h3{color:var(--forest);font-family:Jost,sans-serif;font-size:17px;font-weight:500}
.interface-owner .cta p{color:#5e705e}
.interface-owner .cta .btn{background:var(--forest);color:white;border-color:var(--forest);min-height:44px}
.interface-owner .sec{padding-top:34px;scroll-margin-top:142px}
.interface-owner .sec-h h2{font-size:30px}
.interface-owner .sec+.sec{margin-top:24px}
.interface-owner .cal-grid{gap:18px}
.interface-owner .years{border-radius:8px;overflow-x:auto;max-width:100%}
.interface-owner .years button{min-height:42px;flex-shrink:0}
.interface-owner .more{border-style:solid;background:#fff;border-radius:8px;min-height:44px}
.interface-owner .foot{padding:20px 26px 44px;border-top:1px solid var(--line)}
/* Accès et fenêtres */
.gate-box{border-radius:18px!important;box-shadow:0 20px 70px #18332318!important}
.voile .fiche{border-radius:14px;max-height:90dvh;overflow-y:auto}
@media(max-width:700px){
 html{scroll-padding-top:150px}
 .interface-admin .bar-in{padding:14px 16px;gap:8px}.interface-admin .bar-in .who{width:100%;order:2;margin-left:0}.interface-admin .bar-in .sortir{font-size:12px;padding:7px 9px}.interface-admin .bar-in .mark{margin-right:auto}
 .interface-admin .tabs{padding:10px 12px;flex-wrap:nowrap;overflow-x:auto;gap:20px;align-items:flex-start}.interface-admin .nav-group{flex-shrink:0}.interface-admin .nav-group>div{flex-wrap:nowrap}.interface-admin .nav-label{margin-bottom:3px}.interface-admin .tabs button,.interface-admin .nav-group a{padding:8px 10px;font-size:13px}
 .interface-admin main{padding:22px 16px 60px}.head h2{font-size:28px}.head .side{margin-left:0;width:100%}.head .side select{flex:1;min-width:0}
 .kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.kpi{padding:16px}.kpi .v{font-size:24px}.kpi .label{font-size:10px}
 table.list td{padding:5px 0}table.list tr{padding:16px}.tscroll{max-width:100%}
 .interface-owner .appbar-in{padding:16px 16px 10px}.interface-owner .brandline{flex-wrap:wrap;gap:10px}.interface-owner .brandline .who{max-width:42%;font-size:12px}.interface-owner .brandline .mark{font-size:22px}.interface-owner .sortir{font-size:11px;padding:7px 9px}
 .interface-owner .jump{padding:0 12px 10px;gap:4px}.interface-owner .jump a{font-size:13px;padding:9px 11px}
 .interface-owner main{padding:0 16px 50px}.interface-owner .hero2{margin-top:18px}.interface-owner .hero2 img{height:230px}.interface-owner .hero2 .in{padding:22px}.interface-owner .hero2 h1{font-size:30px}
 .interface-owner .property-picker{padding:14px;flex-wrap:wrap}.interface-owner .property-picker label{width:100%}.interface-owner .property-picker select{width:100%;flex-basis:100%}
 .interface-owner .cta{padding:18px}.interface-owner .cta .btn{width:100%;margin:0}.interface-owner .sec-h .side{margin-left:0;width:100%}.interface-owner .sec{scroll-margin-top:155px}
 .interface-owner .blk{flex-wrap:wrap;gap:8px}.interface-owner .blk .r{width:100%;justify-content:flex-end}.interface-owner .foot{padding:20px 16px 35px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
@media print{.interface-admin #app{padding-left:0}.interface-admin #app>header,.interface-owner .appbar,.sortir,.jump,.cta{display:none!important}main{padding:0!important;max-width:none!important}.card,.kpi{box-shadow:none;break-inside:avoid}body{background:#fff}}
/* Navigation latérale repliable — ordinateur, tablette et téléphone. */
.nav-toggle{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:9px 13px;border:1px solid var(--line);border-radius:9px;background:white;color:var(--forest);font:500 14px Jost,system-ui,sans-serif;cursor:pointer}
.nav-toggle:hover{background:#edf3e8}.nav-backdrop{display:none}
body.interface-owner .jump,body.interface-admin .tabs{position:fixed;left:0;top:0;bottom:0;width:240px;max-width:none;margin:0;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;align-items:stretch;gap:26px;padding:92px 16px 24px;background:#16372b;overflow-y:auto;z-index:101;border:0;transition:transform .2s ease;box-shadow:none}
body.interface-owner .jump::before,body.interface-admin .tabs::before{content:'WELHOME';position:absolute;left:28px;top:30px;font:500 21px Georgia,serif;letter-spacing:.16em;color:#edf3e8}
body.interface-owner .jump{gap:8px}
body.interface-admin .nav-group>div{display:flex;flex-direction:column;align-items:stretch;flex-wrap:nowrap;gap:5px}
body.interface-admin .nav-label{padding-left:14px;color:#a8bcad;margin-bottom:9px}
body.interface-owner .jump a,body.interface-admin .tabs button,body.interface-admin .nav-group a{display:block;width:100%;min-height:44px;padding:11px 14px;text-align:left;border:0;border-radius:8px;color:#d4e1d6;text-decoration:none;font-size:14px;white-space:normal;line-height:1.5}
body.interface-owner .jump a:hover,body.interface-admin .tabs button:hover,body.interface-admin .nav-group a:hover{background:#244b3b;color:white}
body.interface-owner .jump a[aria-current],body.interface-admin .tabs button.on{background:#e7eedf;color:#153427;box-shadow:inset 3px 0 #b18b47;font-weight:500}
body.interface-owner .appbar,body.interface-admin #app>header.bar{z-index:90}
body.interface-owner .appbar-in{max-width:none;padding:18px 26px}
body.interface-owner .brandline{width:100%}
body.interface-owner .sec{scroll-margin-top:110px}
@media(min-width:1120px){
 body.interface-owner #app,body.interface-admin #app{padding-left:240px;transition:padding-left .2s ease}
 body.nav-collapsed.interface-owner #app,body.nav-collapsed.interface-admin #app{padding-left:0}
 body.nav-collapsed.interface-owner .jump,body.nav-collapsed.interface-admin .tabs{transform:translateX(-100%);visibility:hidden}
}
@media(max-width:1119px){
 body.interface-owner #app,body.interface-admin #app{padding-left:0}
 body.interface-owner .jump,body.interface-admin .tabs{transform:translateX(-100%);visibility:hidden;width:min(300px,85vw);padding-top:86px;box-shadow:12px 0 50px #10271c20}
 body.nav-open.interface-owner .jump,body.nav-open.interface-admin .tabs{transform:translateX(0);visibility:visible}
 body.nav-open{overflow:hidden}
 body.nav-open .nav-backdrop{display:block;position:fixed;inset:0;background:#10271c75;backdrop-filter:blur(3px);z-index:100;border:0;border-radius:0}
 .nav-close{position:absolute;right:14px;top:22px;background:transparent;color:white;border:1px solid #799482;border-radius:8px;width:40px;min-height:40px;font-size:23px;cursor:pointer}
 body.interface-owner .appbar-in{padding:14px 16px}
 body.interface-owner .brandline{flex-wrap:wrap}
 body.interface-owner .brandline .who{max-width:none;flex:1}
 body.interface-admin .bar-in{flex-wrap:wrap}
 body.interface-owner main{padding-top:1px}
}
@media(min-width:1120px){.nav-close{display:none}}
@media(min-width:701px) and (max-width:1119px){.interface-owner .kpis,.interface-admin .kpis{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.interface-owner main{padding-left:24px;padding-right:24px}}
@media(max-width:420px){.interface-owner .kpis,.interface-admin .kpis{grid-template-columns:1fr}.interface-owner .brandline .who{order:3;flex-basis:100%;font-size:12px}.nav-toggle{padding:8px 10px}.interface-admin .bar-in .sortir{min-height:40px}}
@media print{body.interface-owner #app,body.interface-admin #app{padding-left:0}.nav-toggle,.nav-backdrop,body.interface-owner .jump,body.interface-admin .tabs{display:none!important}}
/* Administration : tous les outils dans la colonne de gauche. */
.interface-admin .gestion-sidebar{position:fixed;inset:0 auto 0 0;width:260px;background:#16372b;color:#d4e1d6;z-index:101;display:flex;flex-direction:column;padding:28px 16px 18px;overflow-y:auto;transition:transform .2s ease}
.interface-admin .sidebar-brand{padding:0 12px 28px;display:flex;flex-direction:column;gap:7px}.interface-admin .sidebar-brand .mark{font-size:25px;color:#fff}.interface-admin .sidebar-brand>span:last-child{color:#a8bcad;font-size:12px}
body.interface-admin .gestion-sidebar .tabs{position:static;inset:auto;width:auto;transform:none;visibility:visible;overflow:visible;padding:0;gap:24px;background:transparent;box-shadow:none;flex-shrink:0}
body.interface-admin .gestion-sidebar .tabs::before{display:none}
.interface-admin .sidebar-tools{margin-top:auto;padding:24px 12px 0;display:flex;flex-direction:column;gap:14px}
.interface-admin .sidebar-tools details{border-top:1px solid #3a5747;padding-top:15px}.interface-admin .sidebar-tools summary{cursor:pointer;color:#c7d7ca;font-size:13px;min-height:36px}.interface-admin .sidebar-tools details>div{display:grid;gap:8px;padding-bottom:10px}
.interface-admin .sidebar-tools .sortir{margin:0;background:transparent;color:#d4e1d6;border:1px solid #456050;border-radius:8px;padding:10px 12px;text-align:left;font-size:12px;min-height:40px;white-space:normal}
.interface-admin .sidebar-tools .sortir:hover{background:#244b3b;color:white}.interface-admin .sidebar-tools .who{margin:0;color:#b7cbbc;font-size:12px;line-height:1.6}.interface-admin .sidebar-tools .who .maj{display:block;color:#91ad9c}
.interface-admin .bar-in{padding:12px 28px;min-height:64px}.interface-admin .workspace-label{font-size:13px;color:var(--muted)}
body.interface-admin #app>header.bar{background:transparent;border:0;position:static}
@media(min-width:1120px){body.interface-admin #app{padding-left:260px}body.interface-admin.nav-collapsed #app{padding-left:0}body.interface-admin.nav-collapsed .gestion-sidebar{transform:translateX(-100%);visibility:hidden}.interface-admin main{padding-top:12px}}
@media(max-width:1119px){.interface-admin .gestion-sidebar{width:min(300px,88vw);transform:translateX(-100%);visibility:hidden}.interface-admin.nav-open .gestion-sidebar{transform:translateX(0);visibility:visible}.interface-admin .bar-in{padding:12px 16px}.interface-admin main{padding-top:10px}.interface-admin .sidebar-tools{padding-top:24px}}
@media print{.interface-admin .gestion-sidebar{display:none!important}}
.interface-admin details.nav-group>summary.nav-label{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;min-height:44px;margin:0;padding:10px 14px;color:#dce8dd;font-size:11px;letter-spacing:.09em;font-weight:600;border-radius:8px}
.interface-admin details.nav-group>summary::-webkit-details-marker{display:none}
.interface-admin details.nav-group>summary::after{content:'⌄';font-size:17px;transition:transform .15s}
.interface-admin details.nav-group[open]>summary::after{transform:rotate(180deg)}
.interface-admin details.nav-group>summary:hover{background:#244b3b}
.interface-admin details.nav-group>div{margin-top:5px;padding-left:8px;border-left:1px solid #3a5747;margin-left:14px}
.interface-admin .dashboard-summary{grid-template-columns:repeat(4,minmax(0,1fr))}
.interface-admin .dashboard-action{text-align:left;color:inherit;font:inherit;cursor:pointer;transition:background .15s,border-color .15s}
.interface-admin .dashboard-action:hover{background:#edf3e8;border-color:#9eaf9c}
.interface-admin .dashboard-action.attention{background:#fff5dc;border-color:#dfbc6c}.interface-admin .dashboard-action.attention .v{color:#855300}
@media(max-width:1000px){.interface-admin .dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:420px){.interface-admin .dashboard-summary{grid-template-columns:1fr}}
/* Lecture et actions communes aux pages métier. */
:root{--muted:#53665a;--warn:#855300;--ok:#286044;--stop:#973c32}
.card-h{padding:18px 22px;border-bottom:1px solid var(--line)}
.card-h h3{font-family:Jost,system-ui,sans-serif;font-size:17px;font-weight:500;line-height:1.4}
.card-b{padding:22px}
.head select{min-width:130px}.head input[type=search]{min-width:200px}
.segment,.views{padding:4px;border:1px solid var(--line);border-radius:10px;background:#edf1eb;display:inline-flex;gap:4px;max-width:100%;overflow-x:auto}
.segment button,.views button{min-height:38px;padding:8px 14px;border:0;border-radius:7px;background:transparent;color:#52665a;white-space:nowrap;font-size:13px}
.segment button.on,.views button.on{background:white;color:#173b2a;box-shadow:0 1px 5px #18332316;font-weight:500}
.scroll{scrollbar-width:thin;overscroll-behavior-x:contain;max-width:100%}
.scroll:focus-visible,.tscroll:focus-visible{outline-offset:3px}
.s-sous,.meta,.eq{font-size:12px;line-height:1.6;color:var(--muted)}
.list .num{font-size:13px}.list td a{color:#24583d;text-underline-offset:3px;text-decoration-thickness:1px}
.list input.num{min-width:86px}.list input:not([type=checkbox]):not([type=radio]):disabled{color:#59695d;background:#f0f3ee;opacity:1;border-color:#d9e0d7}
.donnee-manquante{background:#fff2d1!important;border-color:#c49a40!important;color:#714b03!important}
.manque-libelle{display:block;color:#805400;font-size:12px;font-weight:500;white-space:normal;max-width:230px;line-height:1.5}
.rev-manques{padding:10px;background:#fff4dc;border:1px solid #e8c575;border-radius:8px;display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.fx-bloque{background:#fff8e9}.fx-bloque .pill{white-space:normal;max-width:260px}
.form-grid,.champs{gap:18px}.champ label,.field label{font-size:13px;color:#455b4b;margin-bottom:7px;line-height:1.5}
textarea{width:100%;min-height:100px;padding:12px;line-height:1.6;resize:vertical;border:1px solid var(--line-strong)}
input::placeholder,textarea::placeholder{color:#69796d;opacity:1}
.req{padding:22px;gap:20px}.req .when{font-size:14px;font-weight:500}.req .acts{gap:10px}.req .meta{margin-top:7px;line-height:1.75}
.mvt{padding:16px 20px}.mvt .nm{font-weight:500}.mvt .h{font-variant-numeric:tabular-nums;color:#244b35}
.veil{background:#10271c85;backdrop-filter:blur(4px)}.fiche,.modal{border-radius:14px;max-height:90dvh;overflow-y:auto}.fiche-b{padding:12px 22px}.fiche .fl{padding:13px 0;flex-wrap:wrap}.fiche .fl b{overflow-wrap:anywhere}
.btn.stop{background:#fff8f6;color:#923c32}.btn.stop:hover{background:#fce8e2}
.interface-error{border:1px solid #dca79c;background:#fff3ef;color:#84392d;border-radius:12px;padding:22px;line-height:1.6}
.interface-admin .head h2,.interface-owner .sec-h h2{letter-spacing:-.02em}
@media(max-width:700px){
 .card-h,.card-b{padding:16px}.req{padding:16px;flex-wrap:wrap}.req .acts{width:100%;margin-left:0;flex-wrap:wrap}.req .acts .btn{flex:1;min-height:44px}.head select,.head input[type=search]{min-width:0;width:100%}
 .head .side{align-items:stretch}.head .side>select,.head .side>input{flex:1 1 150px}.head .side>.btn{flex:1 1 auto}
 .segment{width:100%}.segment button{flex:1}.mods{white-space:normal;display:flex;flex-wrap:wrap;gap:10px}.mods label{min-height:36px}
 .veil{padding:12px}.fiche,.modal{width:100%;max-height:calc(100dvh - 24px)}.fiche .fl span{flex-basis:100%;font-size:12px}
 .rev td:empty{display:none}.rev td::before{max-width:45%;flex-shrink:0}.list td:before{font-size:11px!important;color:#53665a}
}
@media(prefers-contrast:more){:root{--line:#8e9f90;--line-strong:#6c806e;--muted:#344c39}.card,.kpi{border-width:2px}}
.int-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:18px 0}.int-card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.int-card-head h3{font:500 17px Jost,system-ui}.int-form label{display:grid;gap:7px;margin:14px 0;color:#405646;font-size:13px}.int-form label.choix{display:flex}.int-form input,.int-form select{width:100%}.int-form .choix input{width:auto}.int-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 12px}.int-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}.int-check{border:1px solid var(--line);border-radius:12px;padding:12px 18px;min-width:0}.int-check legend{font-weight:500;font-size:15px;padding:0 8px}.int-check textarea{min-height:70px}.int-history{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}.int-history:last-child{border:0}.int-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-top:20px}.int-photos figure{margin:0}.int-photos img{width:100%;height:180px;object-fit:cover;border-radius:9px}.int-photos figcaption{font-size:12px;overflow-wrap:anywhere}#intError[hidden],.interface-error[hidden]{display:none!important}
@media(max-width:700px){.int-checks{grid-template-columns:1fr}.int-cards{grid-template-columns:1fr}.int-history{flex-wrap:wrap}.int-actions .btn{width:100%}}

/* Le logo reste un accès clavier à l’accueil. */
.home-logo{appearance:none;background:none;border:0;padding:0;color:inherit;text-decoration:none;cursor:pointer;text-align:left}.home-logo:focus-visible{outline:2px solid currentColor;outline-offset:6px;border-radius:3px}

.territory-picker{display:grid;gap:7px;padding:12px 18px;color:inherit;font-size:12px}.territory-picker select{width:100%;min-height:42px;background:#fff;color:#173e36;border:1px solid #d2dcd6;border-radius:9px;padding:8px;font:inherit;font-size:14px}

/* Espace propriétaire : forêt, terre cuite et bleu ardoise. */
.interface-owner{--cream:#f4f0e8;--paper:#fffcf7;--ink:#203b32;--muted:#53675d;--line:#d9dfd2;background:radial-gradient(ellipse at 95% 10%,#e0e9df 0,transparent 48%),#f4f0e8}
.interface-owner .appbar{background:#fffcf5f5;border-bottom-color:#d9dfd2;box-shadow:0 3px 18px #17372b09}
.interface-owner .hero2{box-shadow:0 12px 35px #17372b16;border:1px solid #234e3f24}
.interface-owner .property-picker{background:#eee6d6;border-color:#d9cdb7;box-shadow:none}
.interface-owner .property-picker select{background:#fffaf0;border-color:#bcbca6}
.interface-owner .kpis{gap:18px}
.interface-owner .kpi{position:relative;min-height:150px;border-radius:16px;padding:25px;border-top:4px solid transparent;box-shadow:0 7px 22px #233d2f09}
.interface-owner .kpi-revenu{background:linear-gradient(120deg,#183e30,#2b5945);border-color:#244e3d;color:#fffaf0}
.interface-owner .kpi-revenu .v,.interface-owner .kpi-revenu .label{color:#fffaf0}
.interface-owner .kpi-revenu .d{color:#dce9dc}
.interface-owner .kpi-nuits{background:#f3e1d3;border-color:#ead0bd;border-top-color:#a85336}
.interface-owner .kpi-nuits .v,.interface-owner .kpi-nuits .v small{color:#7c3825}
.interface-owner .kpi-nuits .label,.interface-owner .kpi-nuits .d{color:#704f41}
.interface-owner .kpi-arrivee{background:#e0e9ed;border-color:#c4d6de;border-top-color:#436778}
.interface-owner .kpi-arrivee .v{color:#244d60}
.interface-owner .kpi-arrivee .label,.interface-owner .kpi-arrivee .d{color:#3d5e6c}
.interface-owner .cta{background:#e2e8d6;border-color:#cbd6bc;border-left:5px solid #6d8654;border-radius:14px}
.interface-owner .cta p{color:#43593b}
.interface-owner .sec{padding:26px;border:1px solid #d9dfd2;border-radius:20px;background:#fffcf7;box-shadow:0 7px 25px #203a2d06}
.interface-owner #calendrier{border-top:5px solid #668467}
.interface-owner #revenus{background:#f1eadb;border-color:#e0d4bc;border-top:5px solid #9b793e}
.interface-owner #avis{background:#e9eff0;border-color:#d0dcdf;border-top:5px solid #587a87}
.interface-owner #intendance{background:#e8eddf;border-color:#d3dec5;border-top:5px solid #7d9160}
.interface-owner #espace{background:#f0e8e1;border-color:#e1d3c6;border-top:5px solid #a77355}
.interface-owner .card{background:#fffdf8;border-color:#d6ded2;box-shadow:0 3px 12px #203a2d05}
.interface-owner .card-h{background:#edf1e7;border-bottom-color:#d3ddcb}
.interface-owner .sejour{border-left:3px solid #859b79;margin:10px 14px;background:#f5f7ef;border-radius:0 9px 9px 0}
.interface-owner .segment,.interface-owner .views{background:#e0e7d9}
.interface-owner .btn.ghost{background:#fffaf0;border-color:#a5b39f;color:#234933}
.interface-owner :is(button,a,input,select,textarea):focus-visible{outline:3px solid #9b561e;outline-offset:4px}
@media(max-width:700px){.interface-owner .sec{padding:18px 14px;border-radius:15px}.interface-owner .kpis{gap:12px}.interface-owner .kpi{padding:19px;min-height:135px}.interface-owner .sejour{margin:9px 8px}.interface-owner .cta{border-left-width:4px}}
@media(prefers-contrast:more){.interface-owner .kpi,.interface-owner .sec{border-width:2px}.interface-owner .kpi-revenu .d{color:white}}
@media print{.interface-owner .sec,.interface-owner .kpi{background:#fff!important;color:#111!important;border:1px solid #aaa;box-shadow:none}.interface-owner .kpi :is(.v,.label,.d){color:#111!important}}
.interface-owner .cal-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,268px),1fr))}
.interface-owner .sec-h{flex-wrap:wrap;gap:12px}

/* Administration : même palette, couleurs associées aux informations. */
.interface-admin{--cream:#f4f0e8;--paper:#fffcf7;--ink:#203b32;--muted:#53675d;--line:#d9dfd2;background:radial-gradient(ellipse at 95% 4%,#e1e9df 0,transparent 45%),#f4f0e8}
body.interface-admin #app>header.bar{background:#fffcf6;border-color:#d8dfd1}
.interface-admin .card{background:#fffdf8;border-color:#d4ddd0;box-shadow:0 5px 20px #203a2d06;border-radius:15px}
.interface-admin .card-h{background:#e9efdf;border-bottom-color:#cedac5}
.interface-admin .kpi{background:#edf0e4;border-color:#d4ddc8;border-top:4px solid #708664;border-radius:15px}
.interface-admin .kpi-arrivees{background:linear-gradient(120deg,#183e30,#2b5945);border-color:#244e3d;color:#fffaf0}
.interface-admin .kpi-arrivees .v,.interface-admin .kpi-arrivees .label{color:#fffaf0}
.interface-admin .kpi-arrivees .d{color:#dce9dc}
.interface-admin .kpi-departs{background:#f3e1d3;border-color:#ead0bd;border-top-color:#a85336}
.interface-admin .kpi-departs .v{color:#7c3825}
.interface-admin .kpi-departs .label,.interface-admin .kpi-departs .d{color:#704f41}
.interface-admin .kpi-demandes{background:#f4e8c8;border-color:#e0cd9b;border-top-color:#9b793e}
.interface-admin .kpi-demandes .v,.interface-admin .kpi-demandes .label,.interface-admin .kpi-demandes .d{color:#6a501e}
.interface-admin .kpi-demain{background:#e0e9ed;border-color:#c4d6de;border-top-color:#436778}
.interface-admin .kpi-demain .v{color:#244d60}
.interface-admin .kpi-demain .label,.interface-admin .kpi-demain .d{color:#3d5e6c}
.interface-admin .head{padding-bottom:18px;border-bottom:1px solid #ccd7c5}
.interface-admin .head h2{color:#183e30}
.interface-admin .empty{background:#eef2e7;color:#4e6250}
.interface-admin .mvt{border-left:3px solid #859b79;background:#f6f8f0;margin:10px 12px;border-radius:0 8px 8px 0}
.interface-admin table.list th{background:#e4ebd9;color:#304b34;border-bottom-color:#cad6c0}
.interface-admin table.list tbody tr:nth-child(even){background:#f7f8ee}
.interface-admin table.list tbody tr:hover{background:#edf2e4}
.interface-admin table.list tr.fx-bloque,.interface-admin table.list tr.modifiee{background:#fff1d6}
.interface-admin .btn.ghost{background:#fffaf0;color:#234933;border-color:#a6b39e}
.interface-admin .alerte.attention{background:#fcf1d6;border-color:#d8ba76}
.interface-admin .alerte.urgent{background:#f9e7df;border-color:#ca947d}
.interface-admin .alerte.info{background:#e3eced;border-color:#a5bec2}
.interface-admin #view[data-section=revenus] .head,.interface-admin #view[data-section=upsells] .head,.interface-admin #view[data-section=factures] .head{border-bottom-color:#c3ac7b}
.interface-admin #view[data-section=revenus] .card-h,.interface-admin #view[data-section=upsells] table.list th,.interface-admin #view[data-section=factures] table.list th{background:#ece2cc;color:#594722}
.interface-admin #view[data-section=intendance] .int-check{background:#edf1e2;border-color:#d2ddc0}
.interface-admin .badge{background:#e9efdf;color:#40553e;border-color:#cdd9c1}
.interface-admin .tabs .nav-label{color:#c7d3ba}
.interface-admin :is(button,a,input,select,textarea):focus-visible{outline:3px solid #9b561e;outline-offset:4px}
@media(max-width:700px){.interface-admin .kpi{min-height:138px}.interface-admin .head{padding-bottom:14px}.interface-admin .mvt{margin:8px}}
@media print{.interface-admin .card,.interface-admin .kpi{background:white!important;color:#111!important;border:1px solid #aaa;box-shadow:none}.interface-admin .kpi :is(.v,.label,.d){color:#111!important}}

/* Palette Welhome : forêt, sauge, laiton et ivoire. */
.interface-owner,.interface-admin{--cream:#f5f2e9;--paper:#fffdf6;--ink:#203b32;--muted:#53634f;--line:#d9ddcb;background:radial-gradient(ellipse at 95% 5%,#e3e9d8 0,transparent 46%),#f5f2e9}
.interface-owner .kpi-nuits,.interface-admin .kpi-departs{background:#e4ead7;border-color:#cdd8bb;border-top-color:#6b8052}
.interface-owner .kpi-nuits .v,.interface-owner .kpi-nuits .v small,.interface-admin .kpi-departs .v{color:#344d2b}
.interface-owner .kpi-nuits .label,.interface-owner .kpi-nuits .d,.interface-admin .kpi-departs .label,.interface-admin .kpi-departs .d{color:#485c3b}
.interface-owner .kpi-arrivee,.interface-admin .kpi-demain{background:#efe5ca;border-color:#d7c69c;border-top-color:#a98a44}
.interface-owner .kpi-arrivee .v,.interface-admin .kpi-demain .v{color:#55451f}
.interface-owner .kpi-arrivee .label,.interface-owner .kpi-arrivee .d,.interface-admin .kpi-demain .label,.interface-admin .kpi-demain .d{color:#665329}
.interface-admin .kpi-demandes{background:#fff9e9;border-color:#d7c69c;border-top-color:#b19659}
.interface-admin .kpi-demandes .v,.interface-admin .kpi-demandes .label,.interface-admin .kpi-demandes .d{color:#665329}
.interface-owner .property-picker{background:#eee9d9;border-color:#dad0b6}
.interface-owner #avis{background:#e9eedf;border-color:#d1dbc0;border-top-color:#6f8557}
.interface-owner #espace{background:#f0ebdb;border-color:#ddd1b3;border-top-color:#a98a44}
.interface-owner #avis h2,.interface-owner #espace h2{color:#244632}
.interface-admin .alerte.info{background:#e8eedf;border-color:#bacaa9}
.interface-admin .alerte.info .n{background:#d5dfc6;color:#344d2b}
.interface-owner :is(button,a,input,select,textarea):focus-visible,.interface-admin :is(button,a,input,select,textarea):focus-visible{outline-color:#8b712f}
/* Logos compacts ; le nom reste accessible au survol et aux lecteurs d’écran. */
.platform-badge{display:inline-flex;align-items:center;gap:7px;vertical-align:middle;max-width:100%;font:500 12px Jost,system-ui,sans-serif;color:#304b3a;line-height:1.4;background:#fffdf8;border:1px solid #dce2d5;padding:5px 9px;border-radius:9px;white-space:normal}
.platform-badge img{width:22px;height:22px;object-fit:contain;flex:0 0 22px}
.platform-badge.platform-vrbo img{width:48px;flex-basis:48px}
.platform-badge.platform-airbnb{color:#a8243c}.platform-badge.platform-booking{color:#003b95}.platform-badge.platform-expedia{color:#152b54}.platform-badge.platform-vrbo{color:#245abc}
.review-language{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#344f3b}
.review-original{display:inline-block;background:none;border:0;padding:8px 0;color:#355d40;text-decoration:underline;text-underline-offset:3px;font:500 12px Jost,system-ui;cursor:pointer;min-height:40px}
.review .body{line-height:1.8;color:#314639}.review .top{gap:12px;flex-wrap:wrap}
.fort:first-of-type .n{font-weight:600;color:#244632}
.review-order{font-size:12px;color:#53664b;margin:8px 0 16px}
@media(max-width:700px){.review-language{width:100%;justify-content:space-between}.review-language select{flex:0 1 180px}.platform-badge{font-size:11px;padding:4px 7px}.review .top .date{margin-left:0}}
.review-translation-label{display:inline-block;color:#5a6e52;font-size:11px;margin-right:12px}

.platform-badge.platform-icon{padding:3px;background:transparent;border:0;border-radius:4px;gap:0;min-width:24px;min-height:24px;justify-content:center}
.platform-badge.platform-icon img{width:18px;height:18px;flex-basis:18px}
.platform-badge.platform-icon.platform-vrbo img{width:18px;height:18px;flex-basis:18px}
/* Navigation propriétaire compacte, calendrier lisible et revenus comparés. */
.interface-owner .nav-symbol{display:inline-flex;width:28px;flex-shrink:0;justify-content:center;font-size:23px;vertical-align:middle}
.interface-owner .jump a{display:flex!important;align-items:center;gap:10px}
@media(min-width:1120px){
 body.interface-owner .nav-toggle{display:none}
 body.interface-owner.nav-collapsed #app{padding-left:72px}
 body.interface-owner.nav-collapsed .jump{transform:none;visibility:visible;width:72px;padding:92px 8px 24px;overflow-x:hidden}
 body.interface-owner.nav-collapsed .jump::before{content:'W';left:24px;letter-spacing:0}
 body.interface-owner.nav-collapsed .jump .nav-text{display:none}
 body.interface-owner.nav-collapsed .jump a{padding:11px 8px;justify-content:center}
}
.interface-owner main,.interface-owner #view,.interface-owner .sec,.interface-owner .month{min-width:0}
.interface-owner #calendrier{overflow:visible}
.interface-owner .calbar{flex-wrap:wrap;gap:12px}
.interface-owner .cal-grid{width:100%;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));align-items:start}
.interface-owner .cal-count-1{grid-template-columns:1fr}
.interface-owner .days,.interface-owner .dow{grid-template-columns:repeat(7,minmax(0,1fr))}
.interface-owner .day{aspect-ratio:auto;min-height:36px;height:clamp(36px,5vw,66px)}
.interface-owner .cal-count-1 .day{height:clamp(40px,6vh,64px)}
.interface-owner .espace-tabs{display:flex;gap:8px;margin-bottom:20px;border-bottom:1px solid var(--line);padding-bottom:10px}
.interface-owner .espace-tabs button{padding:12px 22px;border:1px solid var(--line);border-radius:9px;background:var(--paper);color:var(--forest);font:inherit;cursor:pointer}
.interface-owner .espace-tabs [aria-selected=true]{background:var(--forest);color:white}
.revenue-chart{margin-top:18px}.chart-totals{display:flex;align-items:center;gap:32px;flex-wrap:wrap;margin:14px 0 24px}.chart-totals small,.chart-totals strong{display:block}.chart-totals strong{font-size:23px;color:var(--forest)}
.chart-bars{height:200px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(3px,1vw,14px)}.chart-month{min-width:0;display:flex;flex-direction:column;gap:8px;text-align:center}.chart-month small{font-size:11px}.chart-pair{height:170px;display:flex;align-items:flex-end;justify-content:center;gap:3px}.chart-pair i{display:block;width:38%;max-width:26px;border-radius:4px 4px 0 0}.bar-current{background:#234b3b}.bar-prev{background:#b99a61}.chart-legend{display:flex;justify-content:center;gap:22px;margin:14px}.chart-legend span:first-child{color:#234b3b}.chart-legend span:last-child{color:#96743d}.revenue-chart details{margin:12px 0}.revenue-chart summary{cursor:pointer}.revenue-chart table{width:100%;font-size:13px}.revenue-chart td,.revenue-chart th{padding:6px;text-align:right}.revenue-chart th:first-child{text-align:left}
@media(max-width:480px){.chart-bars{gap:3px}.chart-month small{font-size:9px}.interface-owner .calnav button{min-width:40px}.interface-owner .views button{padding:9px 12px}}
/* Administration : navigation automatique et vues mobiles sans débordement. */
.interface-admin .nav-symbol{display:inline-flex;justify-content:center;align-items:center;width:26px;flex-shrink:0;font-size:21px;vertical-align:middle}
.interface-admin .tabs button{display:flex;align-items:center;gap:9px}
.interface-admin .nav-label .nav-text{flex:1}
@media(min-width:1120px){
 .interface-admin .nav-toggle{display:none}
 body.interface-admin.nav-collapsed #app{padding-left:76px}
 body.interface-admin.nav-collapsed .gestion-sidebar{width:76px;transform:none;visibility:visible;padding:25px 8px 16px;overflow-x:hidden}
 .interface-admin.nav-collapsed .sidebar-brand{padding:0 0 26px;text-align:center}
 .interface-admin.nav-collapsed .home-logo{font-size:0}.interface-admin.nav-collapsed .home-logo::after{content:'W';font-size:25px}
 .interface-admin.nav-collapsed .sidebar-brand>span,.interface-admin.nav-collapsed .territory-picker,.interface-admin.nav-collapsed .sidebar-tools,.interface-admin.nav-collapsed .nav-text,.interface-admin.nav-collapsed .nav-group>summary::after,.interface-admin.nav-collapsed .tabs .n{display:none!important}
 .interface-admin.nav-collapsed details.nav-group>summary{justify-content:center;padding:10px 0}
 .interface-admin.nav-collapsed details.nav-group>div{margin:0;padding:0;border:0}
 .interface-admin.nav-collapsed .tabs button{justify-content:center;padding:10px 4px}
 .interface-admin.nav-collapsed .nav-group a{font-size:0;padding:10px}.interface-admin.nav-collapsed .nav-group a::after{content:'↗';font-size:20px}
}
.interface-admin main,.interface-admin #view,.interface-admin .card,.interface-admin .kpis,.interface-admin .head,.interface-admin .head .side{min-width:0}
.interface-admin .scroll,.interface-admin .tscroll{max-width:100%;overflow-x:auto}
.interface-admin .head{flex-wrap:wrap}.interface-admin .head .side{flex-wrap:wrap}
.interface-admin .head select{max-width:100%}
.interface-admin .gestion-sidebar .territory-picker{min-width:0}
@media(max-width:760px){
 .interface-admin main{padding:18px 12px 50px}
 .interface-admin .workspace-label{font-size:12px;min-width:0;overflow-wrap:anywhere}
 .interface-admin .bar-in{min-height:64px;flex-wrap:nowrap}.interface-admin .bar-in::after{display:none}
 .interface-admin .head h2{font-size:26px;overflow-wrap:anywhere}
 .interface-admin .head .side{display:flex;flex-wrap:wrap;width:100%}
 .interface-admin .head .side>*{flex:1 1 140px;min-width:0;max-width:100%}
 .interface-admin .head .side .btn{min-height:44px}
 .interface-admin .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 .interface-admin .kpi{padding:15px}.interface-admin .kpi .v{font-size:25px}
 .interface-admin .card-h{flex-wrap:wrap;gap:10px}
 .interface-admin .list{width:100%;min-width:0;table-layout:fixed}
 .interface-admin .list tbody,.interface-admin .list tr{width:100%}
 .interface-admin .list td{min-width:0;overflow-wrap:anywhere;white-space:normal!important}
 .interface-admin .list input:not([type=checkbox]):not([type=radio]),.interface-admin .list select{max-width:100%;min-width:0}
 .interface-admin .list td .btn{min-height:44px}
 .interface-admin .req .when,.interface-admin .req .meta{min-width:0;overflow-wrap:anywhere}
 .interface-admin .revenue-chart .chart-totals{gap:18px}.interface-admin .chart-totals strong{font-size:20px}
 .interface-admin .int-history,.interface-admin .int-card-head{flex-wrap:wrap}
}
@media(max-width:380px){.interface-admin .kpis{grid-template-columns:1fr}}
.cal-mobile-picker{display:none}
@media(max-width:760px){
 .interface-admin .cal-mobile-picker{display:grid;gap:7px;margin:0 0 16px;font-size:13px;color:var(--muted)}
 .interface-admin .cal-mobile-picker select{width:100%;min-height:44px}
 .interface-admin .cal-liste{display:none}
 .interface-admin .cal-page{display:block;min-width:0}
 .interface-admin .cal-corps{min-width:0}
 .interface-admin .cal-grille{grid-template-columns:1fr;gap:22px;padding:14px}
 .interface-admin .cal-j,.interface-admin .cal-vide{aspect-ratio:auto;min-height:38px;height:40px}
 .interface-admin .cal-s,.interface-admin .cal-g{grid-template-columns:repeat(7,minmax(0,1fr))}
 .interface-admin .cal-taux{margin-left:0;text-align:left}
 .interface-admin .cal-legende{flex-wrap:wrap}
}
.owner-access-status{font-size:12px;line-height:1.7;margin-top:12px;display:grid;gap:4px;min-width:0}.owner-access-status details{margin-top:6px}.owner-access-status summary{cursor:pointer;color:var(--forest);min-height:30px}.owner-access-status .pill{justify-self:start;white-space:normal}

/* Affichage volontaire du mot de passe, y compris sur les formulaires dynamiques. */
.password-field{position:relative;width:100%;min-width:0}.password-field+.password-field{margin-top:9px}
.password-field input{padding-right:88px!important;margin-top:0!important}
.password-field .password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:auto;min-width:74px;min-height:44px;margin:0;padding:8px;border:0;border-radius:6px;background:transparent;color:#17372b;font:500 12px Jost,system-ui,sans-serif;letter-spacing:0;text-transform:none;cursor:pointer}
.password-field .password-toggle:hover{background:#eaf0e5}.password-field .password-toggle:focus-visible{outline:2px solid #9b782b;outline-offset:0}
