@import url("/assets/css/nimbastay-search-core-v29.css?v=29.7.0"); /* NIMBASTAY_PHASE29_R3_SEARCH_CORE_CSS_IMPORT */
:root{--green:#174b2c;--green2:#246b3e;--orange:#e76f2e;--ink:#18231d;--muted:#66736b;--line:#e4e9e6;--bg:#f6f8f7;--white:#fff;--radius:18px;--shadow:0 12px 35px rgba(23,75,44,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.container{width:min(1180px,calc(100% - 32px));margin:auto}.top{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav{height:76px;display:flex;align-items:center;justify-content:space-between;gap:22px}.brand img{height:57px;width:auto}.nav nav{display:flex;align-items:center;gap:20px;font-weight:650;font-size:14px}.nav nav>a:hover{color:var(--green2)}.menu{display:none;border:0;background:transparent;font-size:27px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;padding:13px 18px;background:var(--orange);color:#fff;font-weight:800;cursor:pointer;min-height:48px}.btn:hover{filter:brightness(.96)}.btn.green{background:var(--green)}.btn.ghost{background:#fff;color:var(--green);border:1px solid var(--line)}.btn.small{padding:9px 13px;min-height:38px}.hero{background:linear-gradient(115deg,rgba(23,75,44,.95),rgba(36,107,62,.80)),url('hero.svg') center/cover;min-height:430px;color:#fff;display:grid;align-items:center}.hero h1{font-size:clamp(34px,5vw,58px);line-height:1.05;margin:0 0 16px;max-width:800px}.hero p{font-size:18px;max-width:720px;color:#eff7f1}.searchbox{display:grid;grid-template-columns:1.4fr 1fr 1fr .8fr auto;gap:10px;background:#fff;padding:12px;border-radius:18px;box-shadow:var(--shadow);margin-top:28px;color:var(--ink)}label{font-size:13px;font-weight:750;color:var(--muted);display:block;margin-bottom:6px}input,select,textarea{width:100%;border:1px solid #d9e0dc;background:#fff;border-radius:11px;padding:12px 13px;font:inherit;color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--green2);box-shadow:0 0 0 3px rgba(36,107,62,.10)}textarea{min-height:110px;resize:vertical}.section{padding:48px 0}.section h2{font-size:30px;margin:0 0 8px}.muted{color:var(--muted)}.grid{display:grid;gap:20px}.grid-4{grid-template-columns:repeat(4,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-2{grid-template-columns:repeat(2,1fr)}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:0 6px 22px rgba(24,35,29,.04)}.hotel-card{overflow:hidden;padding:0}.hotel-card .photo{height:215px;background:linear-gradient(135deg,#c9dccc,#edf4ef);object-fit:cover;width:100%}.hotel-card .inside{padding:18px}.hotel-card h3{margin:4px 0 8px;font-size:20px}.badge{display:inline-flex;padding:6px 9px;border-radius:999px;background:#eaf5ed;color:var(--green);font-size:12px;font-weight:800}.badge.orange{background:#fff0e8;color:#a84616}.badge.red{background:#fdecec;color:#a52929}.price{font-size:22px;font-weight:900}.stars{color:#e69a22;letter-spacing:1px}.alert{width:min(1180px,calc(100% - 32px));margin:16px auto 0;padding:13px 16px;border-radius:12px;font-weight:650}.alert.success{background:#e8f6ed;color:#145b2c}.alert.warning{background:#fff5df;color:#7a5110}.alert.error{background:#fdeaea;color:#962b2b}.filters{display:grid;grid-template-columns:260px 1fr;gap:24px}.room{display:grid;grid-template-columns:160px 1fr auto;gap:18px;align-items:center}.room img{width:160px;height:120px;object-fit:cover;border-radius:12px}.summary{position:sticky;top:96px}.kv{display:grid;grid-template-columns:1fr auto;gap:8px;padding:8px 0;border-bottom:1px dashed var(--line)}.status{font-weight:900;text-transform:uppercase;letter-spacing:.04em}.status.confirmed,.status.checked_in,.status.checked_out{color:#17733a}.status.cancelled,.status.no_show{color:#a02c2c}.qrbox{display:grid;place-items:center;background:#fff;border:1px solid var(--line);padding:20px;border-radius:16px}.qrbox canvas{max-width:100%}.tablewrap{overflow:auto;background:#fff;border-radius:16px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;min-width:760px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;font-size:14px}th{background:#f2f6f3;color:#496157}.adminnav{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.adminnav a{padding:9px 12px;border-radius:10px;background:#fff;border:1px solid var(--line)}.metric{font-size:34px;font-weight:900;color:var(--green)}.footer{padding:40px 0;display:grid;grid-template-columns:2fr 1fr 1fr;gap:24px;color:#dce9df}footer{background:#103520;margin-top:48px}.empty{text-align:center;padding:48px 20px}.split{display:grid;grid-template-columns:1.4fr .8fr;gap:24px}.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.formgrid .full{grid-column:1/-1}.cover{height:420px;border-radius:22px;overflow:hidden;background:linear-gradient(135deg,#d8e6db,#bcd3c2)}.cover img{width:100%;height:100%;object-fit:cover}.scanner{max-width:620px;margin:auto}.scanner video{width:100%;border-radius:18px;background:#111;min-height:260px}.notice{padding:14px;border-left:4px solid var(--orange);background:#fff7f1;border-radius:10px}.legal{max-width:800px}.skeleton{background:linear-gradient(90deg,#edf1ef 25%,#f8faf9 37%,#edf1ef 63%);background-size:400% 100%;animation:sh 1.3s infinite}@keyframes sh{0%{background-position:100% 0}100%{background-position:0 0}}@media(max-width:900px){.nav nav{display:none;position:absolute;left:16px;right:16px;top:70px;background:white;border:1px solid var(--line);border-radius:14px;padding:14px;flex-direction:column;align-items:stretch;box-shadow:var(--shadow)}.nav nav.open{display:flex}.menu{display:block}.searchbox{grid-template-columns:1fr 1fr}.searchbox>*:first-child{grid-column:1/-1}.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(2,1fr)}.filters,.split{grid-template-columns:1fr}.summary{position:static}.room{grid-template-columns:110px 1fr}.room .roomaction{grid-column:1/-1}.footer{grid-template-columns:1fr}.cover{height:320px}}@media(max-width:560px){.container{width:min(100% - 22px,1180px)}.hero{min-height:520px}.searchbox{grid-template-columns:1fr}.searchbox>*{grid-column:1!important}.grid-4,.grid-3,.grid-2,.formgrid{grid-template-columns:1fr}.room{display:block}.room img{width:100%;height:190px;margin-bottom:14px}.section{padding:34px 0}.nav{height:68px}.brand img{height:48px}.cover{height:250px}.card{padding:17px}}

/* GanGanStay V1.1 - back-office hôtel */
.btn.danger{background:#b33a32}.adminnav a.active{background:var(--green);color:#fff;border-color:var(--green)}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.pagehead h1{margin:0 0 6px;font-size:34px}.formwide>h3,.formwide h3{margin-top:26px}.checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 14px;margin:8px 0 20px}.check{display:flex;align-items:center;gap:8px;color:var(--ink);font-weight:650;margin:0}.check input{width:auto}.topcheck{min-height:48px}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.gallery-item{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff}.gallery-item img{width:100%;height:160px;object-fit:cover}.gallery-item form{padding:8px}.row-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-upload{display:flex;align-items:end;gap:10px;flex-wrap:wrap}.inline-upload input{flex:1;min-width:220px}.room-editor{min-width:0}.mini-gallery{display:flex;gap:9px;flex-wrap:wrap;margin:12px 0}.mini-photo{width:86px;height:70px;position:relative}.mini-photo img{width:100%;height:100%;object-fit:cover;border-radius:10px}.mini-photo form{position:absolute;right:-5px;top:-7px}.mini-photo .x{border:0;border-radius:50%;width:25px;height:25px;background:#a62f2f;color:#fff;font-weight:900;cursor:pointer}.stafflist{margin-top:18px;border-top:1px solid var(--line)}.staffline{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}hr{border:0;border-top:1px solid var(--line);margin:18px 0}.status.draft{color:#6b7280}.status.pending_approval{color:#9a6500}.status.active{color:#17733a}.status.suspended{color:#a02c2c}
@media(max-width:900px){.checks{grid-template-columns:repeat(2,minmax(0,1fr))}.pagehead{flex-direction:column}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.checks,.gallery{grid-template-columns:1fr}.inline-upload{display:block}.inline-upload .btn{width:100%;margin-top:10px}.pagehead h1{font-size:28px}.adminnav{overflow:auto;flex-wrap:nowrap;padding-bottom:4px}.adminnav a{white-space:nowrap}}

/* GanGanStay V1.2 — UX stratégique, confort et sécurité */
:root{--green-dark:#0d3d24;--green-soft:#eef7f1;--orange-soft:#fff3eb;--danger:#b42318;--danger-soft:#fff0ee;--warning:#a15c00;--warning-soft:#fff7e6;--info:#175cd3;--info-soft:#eff8ff;--focus:0 0 0 4px rgba(36,107,62,.14)}
body{font-size:16px}.container{width:min(1280px,calc(100% - 40px))}.top{box-shadow:0 1px 0 rgba(16,53,32,.03)}
.nav{height:78px}.nav nav{gap:24px}.nav nav>a{padding:8px 2px;border-bottom:2px solid transparent}.nav nav>a:hover,.nav nav>a:focus-visible{color:var(--green);border-bottom-color:rgba(23,75,44,.35)}
button,a,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease,color .16s ease,transform .16s ease,opacity .16s ease}
:focus-visible{outline:3px solid rgba(36,107,62,.34);outline-offset:2px}.btn:focus-visible{outline-color:rgba(231,111,46,.42)}
.btn{gap:8px;box-shadow:0 5px 15px rgba(231,111,46,.14)}.btn.green{box-shadow:0 5px 16px rgba(23,75,44,.14)}.btn.ghost{box-shadow:none}.btn.danger{background:var(--danger);box-shadow:0 5px 16px rgba(180,35,24,.12)}.btn:hover{filter:none;transform:translateY(-1px)}.btn.green:hover{background:#113f25}.btn:not(.green):not(.ghost):not(.danger):hover{background:#d96125}.btn.ghost:hover{background:var(--green-soft);border-color:#b9d3c1}.btn.danger:hover{background:#912018}.btn[disabled],button[disabled]{cursor:not-allowed;opacity:.58;transform:none;box-shadow:none}
input,select,textarea{min-height:46px;border-color:#d6dfd9}.smart-form input,.smart-form select,.smart-form textarea{background:#fff}input:hover,select:hover,textarea:hover{border-color:#b9c9bf}input:focus,select:focus,textarea:focus{box-shadow:var(--focus)}input:invalid:not(:placeholder-shown){border-color:#d8a09b}.field-help,small.field-help{display:block;color:var(--muted);font-size:12px;margin-top:6px}
.alert{box-shadow:0 8px 24px rgba(24,35,29,.05)}.alert.success{border:1px solid #b8dfc3}.alert.warning{border:1px solid #f0d89c}.alert.error{border:1px solid #f0b9b4}
.badge{align-items:center;gap:5px}.secure-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 10px;border-radius:999px;background:var(--green-soft);border:1px solid #cfe5d5;color:var(--green-dark);font-size:12px;font-weight:850;letter-spacing:.01em}
.user-chip{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border-radius:999px;background:#f4f7f5;color:var(--green-dark);font-weight:800}.logout-link{color:#7b2a23!important}.logout-link:hover{color:var(--danger)!important}

/* Espaces administratifs : une navigation métier stable plutôt qu'une rangée de boutons */
.workspace{width:min(1440px,calc(100% - 36px));margin:28px auto 56px;display:grid;grid-template-columns:245px minmax(0,1fr);gap:30px;align-items:start}.workspace-sidebar{position:sticky;top:102px;background:#fff;border:1px solid var(--line);border-radius:20px;padding:14px;box-shadow:0 10px 34px rgba(24,35,29,.06)}.workspace-brand{padding:12px 12px 16px;border-bottom:1px solid var(--line);margin-bottom:10px}.workspace-brand strong{display:block;color:var(--green-dark);font-size:16px}.workspace-brand small{display:block;color:var(--muted);margin-top:3px}.workspace-link{display:flex;align-items:center;gap:10px;min-height:45px;padding:10px 12px;margin:4px 0;border-radius:11px;color:#385044;font-weight:740;font-size:14px}.workspace-link:hover{background:#f4f8f5;color:var(--green-dark)}.workspace-link.active{background:var(--green);color:#fff;box-shadow:0 8px 18px rgba(23,75,44,.15)}.workspace-content{min-width:0}.workspace-mobile-nav{display:none}.workspace-actions{display:grid;gap:8px;margin-top:13px;padding-top:13px;border-top:1px solid var(--line)}
.pagehead{align-items:center;margin-bottom:26px}.pagehead.compact{margin-bottom:16px}.pagehead h1{font-size:clamp(29px,3vw,40px);line-height:1.14;color:#10291b;letter-spacing:-.025em}.pagehead p{margin:0;max-width:760px}.pagehead>.btn{flex:0 0 auto}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin:30px 0 14px}.section-head h2{margin:0 0 4px;font-size:24px}.section-head p{margin:0}

/* Tableau de bord : les décisions importantes en premier */
.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:20px 0 26px}.metric-card{background:#fff;border:1px solid var(--line);border-radius:17px;padding:20px;min-height:132px;box-shadow:0 8px 26px rgba(24,35,29,.045);display:flex;flex-direction:column;justify-content:space-between}.metric-card .metric{font-size:36px;line-height:1}.metric-card small{color:var(--muted);font-weight:700}.money-metric .metric{font-size:28px}.dashboard-panels{display:grid;grid-template-columns:1.2fr .8fr;gap:20px}.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.quick-actions .btn{justify-content:flex-start;min-height:52px}.quick-actions .btn:first-child{grid-column:1/-1}

/* Formulaires : découpés par décisions, avec action principale persistante */
.smart-form{display:grid;gap:18px;min-width:0}.form-section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:24px;box-shadow:0 7px 24px rgba(24,35,29,.035)}.form-section-head{display:flex;align-items:flex-start;gap:13px;padding-bottom:17px;margin-bottom:19px;border-bottom:1px solid var(--line)}.form-section-head>span{display:grid;place-items:center;min-width:32px;height:32px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);font-weight:900;font-size:14px}.form-section-head h2{font-size:20px;margin:1px 0 3px}.form-section-head p{margin:0;color:var(--muted);font-size:13px}.formgrid{gap:18px}.formgrid>div{min-width:0}.checks{padding:14px 0 0}.check{padding:9px 10px;border-radius:10px}.check:hover{background:#f6f9f7}.sticky-save{position:sticky;bottom:14px;z-index:15;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 15px 13px 18px;background:rgba(13,61,36,.96);color:#fff;border-radius:16px;box-shadow:0 14px 36px rgba(13,61,36,.24);backdrop-filter:blur(8px)}.sticky-save strong{display:block}.sticky-save small{display:block;color:#d7e9dd}.sticky-save .btn{min-width:150px;background:#fff;color:var(--green-dark);box-shadow:none}.sticky-save .btn:hover{background:#f2f7f4}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:22px;align-items:start}.editor-side{position:sticky;top:102px}.publication-card{padding:20px}.publication-card h2{margin:10px 0 15px}.readiness{display:grid;gap:8px;margin:14px 0}.readiness-item{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;border-radius:10px;font-size:13px;font-weight:700}.readiness-item.ok{background:var(--green-soft);color:#165a31}.readiness-item.missing{background:var(--warning-soft);color:#754300}.publication-control{background:linear-gradient(180deg,#fff,#fbfcfb)}.gallery-section{margin-top:20px}.management-panels{margin-top:22px}.management-panels>.form-section{height:100%}

/* Cartes chambres, inventaire et personnel */
.room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.room-editor{background:#fff}.room-editor h2{margin-top:0}.create-card{border-style:dashed;border-color:#b8cbbf;background:#fbfdfc}.inventory-controls{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.inventory-controls>div{min-width:150px}.stafflist{border-top:0}.staffline{padding:13px 11px;border:1px solid var(--line);border-radius:12px;margin:8px 0;background:#fcfdfc}.staffline:last-child{border-bottom:1px solid var(--line)}

/* Réservation : actions conditionnelles clairement séparées */
.reservation-ops{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:20px}.action-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:18px}.critical-actions{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.inline-action{display:flex;align-items:center;gap:8px;margin:0}.inline-action select{min-width:145px}.confirmation-card{max-width:760px;margin:0 auto}.confirmation-head{text-align:center;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:18px}.confirmation-head h1{margin:9px 0}.confirmation-card .qrbox{max-width:340px;margin:22px auto}.security-denied{max-width:680px;margin:48px auto;text-align:center}.security-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 16px;border-radius:20px;background:var(--danger-soft);font-size:28px}

/* Scanner : la caméra est la décision principale, saisie manuelle clairement secondaire */
.scanner-card{max-width:760px;margin:auto;padding:24px}.scan-frame{position:relative;border-radius:20px;overflow:hidden;background:#09110c;min-height:340px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.scan-frame video{display:block;width:100%;min-height:340px;object-fit:cover}.scan-target{position:absolute;inset:16%;border:3px solid rgba(255,255,255,.82);border-radius:20px;box-shadow:0 0 0 999px rgba(0,0,0,.20);pointer-events:none}.manual-fallback{margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}.inline-search{display:grid;grid-template-columns:1fr auto;gap:9px}.inline-search .btn{min-width:130px}

/* Centre de sécurité */
.security-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.security-check{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid var(--line)}.security-check:last-child{border-bottom:0}.security-check>span{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;font-weight:950}.security-check.ok>span{background:var(--green-soft);color:#136a34}.security-check.bad>span{background:var(--danger-soft);color:var(--danger)}.security-check strong,.security-check small{display:block}.security-check small{color:var(--muted);font-size:12px}.auth-card{max-width:520px;margin:42px auto;padding:28px}.auth-card h1{margin-top:8px}.full-btn{width:100%;margin-top:8px}.notice{border-left-color:var(--orange);box-shadow:0 5px 18px rgba(24,35,29,.03)}

/* Tables : lecture rapide, actions stables */
.tablewrap{box-shadow:0 6px 22px rgba(24,35,29,.035)}th{font-size:12px;text-transform:uppercase;letter-spacing:.035em}tbody tr:hover{background:#fbfdfc}td .btn{white-space:nowrap}.status{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;font-size:12px}.status.active,.status.confirmed,.status.checked_in,.status.checked_out{background:var(--green-soft)}.status.suspended,.status.cancelled,.status.no_show{background:var(--danger-soft)}.status.draft{background:#f2f4f3}.status.pending_approval{background:var(--warning-soft)}

/* Impression confirmation */
.print-page{background:#fff}.print-box{max-width:760px;margin:24px auto;background:#fff;border:1px solid var(--line);padding:32px;border-radius:18px}.print-logo{height:70px;width:auto;margin-bottom:22px}

@media(max-width:1120px){.workspace{grid-template-columns:210px minmax(0,1fr);gap:20px}.editor-layout{grid-template-columns:1fr}.editor-side{position:static}.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.room-grid{grid-template-columns:1fr}}
@media(max-width:900px){.container{width:min(100% - 28px,1280px)}.workspace{display:block;width:min(100% - 28px,1280px);margin-top:20px}.workspace-sidebar{display:none}.workspace-mobile-nav{display:flex;gap:8px;overflow-x:auto;padding:0 0 12px;margin-bottom:16px;scrollbar-width:thin}.workspace-mobile-nav .workspace-link{flex:0 0 auto;background:#fff;border:1px solid var(--line);margin:0}.workspace-mobile-nav .workspace-link.active{background:var(--green);border-color:var(--green)}.dashboard-panels,.reservation-ops,.security-grid{grid-template-columns:1fr}.form-section{padding:20px}.sticky-save{bottom:8px}.pagehead{align-items:flex-start}.pagehead>.btn{width:auto}.scanner-card{padding:18px}}
@media(max-width:640px){body{font-size:15px}.container,.workspace{width:min(100% - 20px,1280px)}.brand img{height:49px}.pagehead{margin-bottom:18px}.pagehead h1{font-size:28px}.pagehead>.btn{width:100%}.metrics-grid{grid-template-columns:1fr 1fr;gap:10px}.metric-card{padding:15px;min-height:110px}.metric-card .metric{font-size:30px}.money-metric{grid-column:1/-1}.dashboard-panels{gap:14px}.quick-actions{grid-template-columns:1fr}.quick-actions .btn:first-child{grid-column:auto}.form-section{padding:16px;border-radius:14px}.form-section-head{margin-bottom:15px}.formgrid{gap:13px}.sticky-save{margin-left:-4px;margin-right:-4px;padding:11px 12px}.sticky-save small{display:none}.sticky-save .btn{min-width:120px}.checks{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.inline-search{grid-template-columns:1fr}.inline-search .btn{width:100%}.action-bar{display:grid;grid-template-columns:1fr}.action-bar .btn,.action-bar form,.action-bar form .btn{width:100%}.inventory-controls{display:grid;grid-template-columns:1fr 1fr}.inventory-controls>*{min-width:0!important}.inventory-controls .btn{grid-column:1/-1}.tablewrap{margin-left:-2px;margin-right:-2px}.scanner-card{padding:14px}.scan-frame,.scan-frame video{min-height:290px}.auth-card{margin:24px auto;padding:20px}.print-box{margin:0;border:0;border-radius:0;padding:20px}}
@media(max-width:420px){.metrics-grid{grid-template-columns:1fr}.money-metric{grid-column:auto}.gallery{grid-template-columns:1fr}.inventory-controls{grid-template-columns:1fr}.pagehead h1{font-size:25px}.sticky-save strong{font-size:13px}}
@media print{.top,.workspace-sidebar,.workspace-mobile-nav,.footer,footer,.action-bar,.btn{display:none!important}.workspace{display:block;width:100%;margin:0}.workspace-content{width:100%}.print-box{border:0;box-shadow:none;max-width:none;margin:0}.card{box-shadow:none}}
.qr-render{display:grid;place-items:center;min-height:260px}.qr-render img,.qr-render canvas{max-width:100%;height:auto!important}
.nav-logout{margin:0;display:inline-flex}.nav-logout .logout-link{appearance:none;border:0;background:transparent;font:inherit;font-weight:650;padding:8px 2px;cursor:pointer}.nav-logout .logout-link:hover{color:var(--danger)}
@media(max-width:900px){.nav-logout{display:block}.nav-logout .logout-link{width:100%;text-align:left;padding:8px 0}}

/* ============================================================
   GanGanStay V2.0 — Secure Marketplace / 4 interfaces séparées
   ============================================================ */
:root{
  --ns-forest:#0f4328;--ns-forest-2:#175b36;--ns-leaf:#23854e;--ns-orange:#eb6b2d;
  --ns-orange-dark:#c94f18;--ns-cream:#fffaf5;--ns-surface:#fff;--ns-page:#f6f8f7;
  --ns-text:#14241a;--ns-muted:#66746c;--ns-line:#e0e8e3;--ns-green-soft:#eaf7ef;
  --ns-orange-soft:#fff0e8;--ns-danger:#a92f2a;--ns-danger-soft:#fdeceb;--ns-warning:#8a5b00;
  --ns-warning-soft:#fff4d9;--ns-shadow:0 16px 45px rgba(12,54,31,.10);--ns-radius:18px;
}
body{background:var(--ns-page);color:var(--ns-text)}
.site-container{width:min(1240px,calc(100% - 40px));margin-inline:auto}.simple-page{width:min(760px,calc(100% - 32px));margin:52px auto}.panel{background:#fff;border:1px solid var(--ns-line);border-radius:20px;padding:28px;box-shadow:var(--ns-shadow)}.auth-panel{max-width:560px;margin-inline:auto}.success-panel{border-top:4px solid var(--ns-leaf)}
.btn.primary{background:var(--ns-orange);color:#fff}.btn.primary:hover{background:var(--ns-orange-dark)}.btn.secondary{background:#fff;color:var(--ns-forest);border:1px solid var(--ns-line)}.btn.danger{background:var(--ns-danger);color:#fff}.btn.large{min-height:54px;padding-inline:24px}.full-btn{width:100%}.secure-pill,.trust-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 11px;border-radius:999px;background:var(--ns-green-soft);color:var(--ns-forest);font-size:12px;font-weight:800}.success-text{color:#13733b;font-weight:750}.warning-text{color:var(--ns-warning);font-weight:750}.eyebrow{display:inline-block;color:var(--ns-forest-2);font-size:12px;font-weight:900;letter-spacing:.07em;text-transform:uppercase;margin-bottom:6px}.status{border-radius:999px;padding:6px 9px;font-size:11px;font-weight:850;letter-spacing:.02em;text-transform:none}.status.pending_verification,.status.pending,.status.changes_required{background:var(--ns-warning-soft);color:var(--ns-warning)}.status.expired,.status.rejected,.status.suspended,.status.cancelled,.status.no_show{background:var(--ns-danger-soft);color:var(--ns-danger)}.status.verified,.status.active,.status.confirmed,.status.checked_in,.status.checked_out{background:var(--ns-green-soft);color:#17683a}

/* Marketplace publique — header léger, aucun rôle technique exposé */
.public-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.97);border-bottom:1px solid var(--ns-line);backdrop-filter:blur(16px)}.nav-row{height:72px;display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:24px}.public-header .brand img{height:52px;width:auto}.public-links{display:flex;align-items:center;justify-content:center;gap:24px;font-size:14px;font-weight:760}.public-links a{position:relative;padding:25px 0}.public-links a:hover{color:var(--ns-forest-2)}.nav-right{display:flex;align-items:center;gap:14px;font-size:14px;font-weight:700}.nav-meta{color:var(--ns-muted);font-size:12px}.public-header .menu{display:none;background:transparent;border:0;color:var(--ns-text);font-size:26px;padding:8px}.avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--ns-forest);color:#fff;font-size:12px;font-weight:900}.account-menu{position:relative}.account-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:12px}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary:hover{background:#f1f5f2}.account-dropdown{position:absolute;right:0;top:calc(100% + 9px);width:240px;background:#fff;border:1px solid var(--ns-line);border-radius:15px;padding:8px;box-shadow:var(--ns-shadow);z-index:100}.account-dropdown a,.account-dropdown button{display:flex;width:100%;padding:11px 12px;border:0;border-radius:9px;background:transparent;color:var(--ns-text);font:inherit;text-align:left;cursor:pointer}.account-dropdown a:hover,.account-dropdown button:hover{background:#f3f7f4}.account-dropdown hr{border:0;border-top:1px solid var(--ns-line);margin:7px 4px}

.market-hero{background:linear-gradient(112deg,rgba(11,62,36,.96),rgba(28,104,57,.88)),url('hero.svg') center/cover;color:#fff;padding:64px 0 74px;min-height:410px}.hero-inner{display:grid;align-content:center;gap:28px}.hero-copy{max-width:820px}.hero-copy h1{font-size:clamp(38px,5.3vw,64px);line-height:1.02;letter-spacing:-.035em;margin:10px 0 16px}.hero-copy p{max-width:720px;font-size:18px;color:#e7f3eb}.market-hero .trust-chip{background:#fff;color:var(--ns-forest)}
.ota-search{display:grid;grid-template-columns:minmax(235px,1.35fr) minmax(160px,.78fr) 1fr 1fr 1.15fr auto;gap:10px;background:#fff;padding:12px;border-radius:18px;box-shadow:0 22px 50px rgba(4,37,20,.24);color:var(--ns-text);align-items:end}.ota-search.compact{position:sticky;top:84px;z-index:30;margin-bottom:28px;box-shadow:var(--ns-shadow)}.ota-search label{font-size:11px;margin:0 0 4px;color:#5f6b64}.ota-search input,.ota-search select{min-height:50px;border-color:#d9e2dc}.compact-fields{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.compact-fields input{padding-inline:8px}.search-cta{height:50px}.search-destination{position:relative}.autocomplete-panel{position:absolute;top:calc(100% + 7px);left:0;right:0;background:#fff;border:1px solid var(--ns-line);border-radius:14px;box-shadow:var(--ns-shadow);padding:7px;z-index:120;max-height:360px;overflow:auto}.autocomplete-item{display:grid;grid-template-columns:34px 1fr;gap:9px;align-items:center;width:100%;border:0;background:#fff;border-radius:10px;padding:9px 10px;text-align:left;cursor:pointer}.autocomplete-item:hover,.autocomplete-item.active{background:#eff6f1}.autocomplete-item strong,.autocomplete-item small{display:block}.autocomplete-item small{color:var(--ns-muted);margin-top:2px}.autocomplete-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--ns-green-soft);color:var(--ns-forest);font-weight:900}
.section-head,.results-toolbar{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}.section-head h2,.results-toolbar h1{margin:0}.destination-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.destination-card{display:grid;gap:5px;background:#fff;border:1px solid var(--ns-line);border-radius:16px;padding:18px;transition:.18s ease}.destination-card:hover{transform:translateY(-2px);box-shadow:var(--ns-shadow);border-color:#c9dbcf}.destination-card small{color:var(--ns-muted)}.destination-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--ns-orange-soft);color:var(--ns-orange-dark);font-weight:900;margin-bottom:4px}.destination-list{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.destination-list-item{display:flex;align-items:center;justify-content:space-between;gap:18px;background:#fff;border:1px solid var(--ns-line);padding:15px 17px;border-radius:14px}.destination-list-item strong,.destination-list-item small{display:block}.destination-list-item small{color:var(--ns-muted)}
.hotel-result-list{display:grid;gap:16px}.hotel-result-card{display:grid;grid-template-columns:250px minmax(0,1fr) 210px;background:#fff;border:1px solid var(--ns-line);border-radius:18px;overflow:hidden;box-shadow:0 7px 25px rgba(18,49,31,.045)}.hotel-result-card:hover{box-shadow:var(--ns-shadow)}.hotel-image-wrap{min-height:210px;background:#dfeae2}.hotel-image-wrap img{width:100%;height:100%;object-fit:cover}.hotel-result-main{padding:20px}.hotel-result-main h2{margin:4px 0 8px;font-size:23px}.rating-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.score{display:inline-grid;place-items:center;min-width:40px;height:30px;border-radius:9px;background:var(--ns-forest);color:#fff;font-weight:900}.hotel-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:14px}.badge.soft{background:#f3f6f4;color:#536159}.hotel-result-price{border-left:1px solid var(--ns-line);padding:20px;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-end;text-align:right;gap:5px}.hotel-result-price strong{font-size:23px}.hotel-result-price .btn{margin-top:10px;width:100%}.trust-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;padding:20px 0 50px}.trust-strip>div{display:grid;gap:4px;background:#fff;border:1px solid var(--ns-line);border-radius:15px;padding:17px}.trust-strip span{color:var(--ns-muted);font-size:13px}.empty-state{background:#fff;border:1px dashed #cbd8cf;border-radius:18px;padding:36px;text-align:center;color:var(--ns-muted)}
.public-footer{background:#0b3720;color:#dfece3;margin-top:50px;padding:42px 0 20px}.footer-grid{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:26px}.footer-grid>div{display:flex;flex-direction:column;gap:8px}.footer-grid strong{color:#fff}.footer-grid a:hover{color:#fff}.footer-logo{height:62px;width:auto;object-fit:contain;object-position:left}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:28px;padding-top:18px;font-size:13px;color:#b9cbbf}

/* Pages réservation / fiche */
.search-page{padding-top:26px}.booking-layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:24px;align-items:start}.booking-summary{position:sticky;top:96px}.booking-summary img{width:100%;height:190px;object-fit:cover;border-radius:13px;margin-bottom:16px}.check-row{display:flex!important;align-items:flex-start;gap:9px;margin:12px 0;color:var(--ns-text)}.check-row input{width:auto;margin-top:4px}.confirmation-card{background:#fff;border:1px solid var(--ns-line);border-radius:22px;padding:26px;box-shadow:var(--ns-shadow)}.confirmation-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.confirmation-head>div:first-child{display:flex;align-items:center;gap:14px}.success-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--ns-green-soft);color:var(--ns-leaf);font-size:26px;font-weight:900}.confirmation-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:24px;margin-top:22px}.qrbox small{display:block;text-align:center;color:var(--ns-muted);margin-top:8px}

/* 3 workspaces privés : client, hôtel, administration */
.account-app,.hotel-app,.admin-app{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr);background:#f5f7f6}.workspace-sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid var(--ns-line);padding:20px 14px;overflow:auto}.admin-side{background:#0f3722;color:#e5f0e9;border-right:0}.hotel-side{background:#123f29;color:#e5f0e9;border-right:0}.workspace-logo{display:flex;align-items:center;height:68px;padding:5px 10px;margin-bottom:10px}.workspace-logo img{height:54px;width:auto}.admin-side .workspace-logo,.hotel-side .workspace-logo{background:#fff;border-radius:14px}.workspace-title{font-size:15px;font-weight:900;padding:12px 12px 10px;margin-bottom:8px}.workspace-title small{display:block;font-size:11px;font-weight:650;opacity:.7;margin-top:3px}.workspace-link{display:flex;align-items:center;min-height:43px;padding:9px 12px;border-radius:10px;margin:3px 0;font-size:14px;font-weight:720;color:inherit}.workspace-link:hover{background:#f1f5f2}.workspace-link.active{background:var(--ns-green-soft);color:var(--ns-forest)}.admin-side .workspace-link:hover,.hotel-side .workspace-link:hover{background:rgba(255,255,255,.08)}.admin-side .workspace-link.active,.hotel-side .workspace-link.active{background:#fff;color:var(--ns-forest)}.workspace-back{display:block;border-top:1px solid currentColor;margin:16px 10px 0;padding:16px 2px 0;opacity:.75;font-size:13px}.workspace-content{min-width:0}.workspace-topbar{height:74px;background:#fff;border-bottom:1px solid var(--ns-line);display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 26px;position:sticky;top:0;z-index:50}.admin-search{display:grid;grid-template-columns:minmax(250px,460px) auto;gap:7px}.admin-search input{min-height:42px}.admin-search button{border:0;border-radius:10px;background:#eef4f0;color:var(--ns-forest);font-weight:800;padding:0 14px}.topbar-actions{display:flex;align-items:center;gap:12px}.notification-pill{background:var(--ns-orange-soft);color:var(--ns-orange-dark);border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.workspace-page{padding:30px;max-width:1500px;margin:auto}.workspace-mobile-nav{display:none}.filter-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.filter-pills a{background:#fff;border:1px solid var(--ns-line);padding:8px 11px;border-radius:999px;font-size:13px;font-weight:700}.search-admin-row{display:grid;grid-template-columns:120px 1fr;padding:10px;border-bottom:1px solid var(--ns-line)}.search-admin-row:last-child{border-bottom:0}.review-list{display:grid;gap:14px}.action-stack{display:grid;gap:9px;margin-top:12px}.payment-action{display:grid;gap:8px}.scanner-panel{max-width:800px;margin:auto}.camera-box{position:relative;background:#09130d;border-radius:20px;min-height:370px;overflow:hidden;margin:20px 0}.camera-box video{width:100%;min-height:370px;object-fit:cover}.camera-guide{position:absolute;inset:16%;border:3px solid rgba(255,255,255,.9);border-radius:20px;box-shadow:0 0 0 999px rgba(0,0,0,.24);pointer-events:none}.camera-box p{position:absolute;left:18px;right:18px;bottom:12px;background:rgba(0,0,0,.58);color:#fff;padding:10px 12px;border-radius:10px;margin:0}.scanner-result{max-width:760px;margin:auto}.result-state{background:#fff;border:1px solid var(--ns-line);border-radius:20px;padding:25px;text-align:center;margin-bottom:16px}.result-state.valid{border-top:5px solid var(--ns-leaf)}.result-state.invalid,.result-state.cancelled,.result-state.wrong_hotel{border-top:5px solid var(--ns-danger)}.secret-code{display:block;overflow-wrap:anywhere;background:#0e2518;color:#fff;padding:13px;border-radius:10px;margin:12px 0;font-size:15px;letter-spacing:.06em}.security-card{height:100%}

/* Tables et formulaires privés */
.metrics-grid{grid-template-columns:repeat(6,minmax(150px,1fr))}.metric-card{min-height:128px}.editor-layout{grid-template-columns:minmax(0,1fr) 330px}.form-section h2{margin-top:0}.readiness-item span{font-weight:900}.readiness-item.ok{background:var(--ns-green-soft);color:#166b39}.readiness-item.missing{background:var(--ns-warning-soft);color:var(--ns-warning)}.tablewrap table{min-width:760px}.inline-action{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.inline-action input,.inline-action select{width:auto}.section+.section{padding-top:10px}

@media(max-width:1180px){.destination-grid{grid-template-columns:repeat(3,1fr)}.hotel-result-card{grid-template-columns:210px 1fr 190px}.metrics-grid{grid-template-columns:repeat(3,1fr)}.account-app,.hotel-app,.admin-app{grid-template-columns:220px minmax(0,1fr)}.workspace-page{padding:24px}.booking-layout{grid-template-columns:1fr 330px}}
@media(max-width:920px){.site-container{width:min(100% - 26px,1240px)}.nav-row{grid-template-columns:auto 1fr auto;gap:12px}.public-header .menu{display:block;grid-column:3}.public-links,.nav-right{display:none}.public-links.open,.nav-right.open{display:flex;position:absolute;left:13px;right:13px;background:#fff;border:1px solid var(--ns-line);box-shadow:var(--ns-shadow);z-index:100}.public-links.open{top:68px;flex-direction:column;align-items:stretch;gap:0;padding:8px}.public-links.open a{padding:12px}.nav-right.open{top:calc(68px + 250px);padding:12px;flex-wrap:wrap}.ota-search,.ota-search.compact{grid-template-columns:1fr 1fr;position:static}.ota-search .search-destination{grid-column:1/-1}.ota-search .search-cta{grid-column:1/-1}.destination-grid{grid-template-columns:repeat(2,1fr)}.hotel-result-card{grid-template-columns:190px minmax(0,1fr)}.hotel-result-price{grid-column:1/-1;border-left:0;border-top:1px solid var(--ns-line);align-items:flex-start;text-align:left;display:grid;grid-template-columns:1fr auto;gap:4px 12px}.hotel-result-price .btn{grid-row:1/4;grid-column:2;margin:0;width:auto}.booking-layout,.confirmation-grid{grid-template-columns:1fr}.booking-summary{position:static}.trust-strip{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr 1fr}.account-app,.hotel-app,.admin-app{display:block}.workspace-sidebar{display:none}.workspace-topbar{position:sticky;top:0;height:auto;min-height:64px;padding:10px 14px}.workspace-mobile-nav{display:flex;gap:7px;overflow-x:auto;padding:12px 14px 0;background:#f5f7f6}.workspace-mobile-nav .workspace-link{flex:0 0 auto;background:#fff;border:1px solid var(--ns-line);white-space:nowrap}.workspace-mobile-nav .workspace-link.active{background:var(--ns-forest);color:#fff}.admin-search{display:none}.editor-layout{grid-template-columns:1fr}.editor-side{position:static}.metrics-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.site-container{width:min(100% - 18px,1240px)}.public-header .brand img{height:45px}.nav-row{height:62px}.market-hero{padding:38px 0 45px;min-height:auto}.hero-copy h1{font-size:36px}.hero-copy p{font-size:15px}.ota-search,.ota-search.compact{grid-template-columns:1fr;border-radius:14px;padding:9px}.ota-search>*{grid-column:1!important}.compact-fields{grid-template-columns:repeat(3,1fr)}.destination-grid,.destination-list{grid-template-columns:1fr}.hotel-result-card{display:block}.hotel-image-wrap{height:220px;display:block}.hotel-result-main{padding:16px}.hotel-result-price{display:flex;align-items:stretch;text-align:left;padding:16px}.hotel-result-price .btn{width:100%;margin-top:8px}.section-head,.results-toolbar,.confirmation-head{align-items:flex-start;flex-direction:column}.footer-grid{grid-template-columns:1fr}.booking-summary{padding:16px}.confirmation-card{padding:16px}.workspace-page{padding:18px 12px}.workspace-topbar{gap:8px}.notification-pill{display:none}.metrics-grid{grid-template-columns:1fr 1fr}.metric-card{min-height:105px;padding:14px}.metric-card .metric{font-size:28px}.form-section{padding:15px}.sticky-save{border-radius:12px}.tablewrap{border-radius:12px}.camera-box,.camera-box video{min-height:310px}.panel{padding:20px}.simple-page{margin:25px auto}.inline-action{display:grid;grid-template-columns:1fr}.inline-action input,.inline-action select,.inline-action .btn{width:100%}.topbar-actions .account-menu summary span:last-child{display:none}}
@media(max-width:380px){.metrics-grid{grid-template-columns:1fr}.hero-copy h1{font-size:31px}.compact-fields{grid-template-columns:1fr}.workspace-page{padding-inline:9px}}

/* GanGanStay V2.1 — cloisonnement des comptes */
.account-side{background:#fff}.account-side .workspace-title small{color:var(--ns-muted)}
.account-topbar{justify-content:space-between}.account-identity{display:flex;align-items:center;gap:11px;min-width:0}.account-identity>div{display:grid;gap:2px;min-width:0}.account-identity small{color:var(--ns-muted);font-size:12px}.context-switch{font-weight:820!important}
.account-metrics .metric-card{min-height:150px}.small-metric{font-size:20px!important;line-height:1.25!important;margin:7px 0}.metric-label{font-size:12px;font-weight:800;color:var(--ns-muted);text-transform:uppercase;letter-spacing:.05em}
.security-status{display:inline-flex;align-items:center;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:850}.security-status.ok{background:var(--ns-green-soft);color:var(--ns-forest)}
.card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.mfa-qr{display:grid;place-items:center;min-height:270px;background:#fff;border:1px solid var(--ns-line);border-radius:16px;padding:12px;margin:16px 0}.mfa-qr canvas{max-width:100%;height:auto}.manual-secret{margin:12px 0 18px}.manual-secret summary,.danger-zone summary{cursor:pointer;font-weight:800}.manual-secret[open],.danger-zone[open]{padding:12px;border:1px solid var(--ns-line);border-radius:12px;background:#fafcfb}.danger-zone{margin-top:18px;border-top:1px solid var(--ns-line);padding-top:14px}.danger-zone[open]{border:1px solid #f0caca;background:#fffafa}.recovery-card{border-top:4px solid var(--ns-orange);margin-bottom:18px}.recovery-codes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.recovery-codes code{display:block;text-align:center;background:#102b1d;color:#fff;border-radius:9px;padding:10px 8px;font-weight:850;letter-spacing:.08em}
.notice-list{display:grid;gap:12px}.notice-item{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 18px;background:#fff;border:1px solid var(--ns-line);border-left:4px solid #9aa9a0;border-radius:14px}.notice-item p{margin:4px 0 0}.notice-item small{color:var(--ns-muted)}.notice-item.warning{border-left-color:#c88900}.notice-item.critical{border-left-color:var(--ns-danger)}.notice-item.success{border-left-color:var(--ns-leaf)}.notice-item.is-read{opacity:.72}.notice-item a:not(.btn){font-weight:800;color:var(--ns-forest)}
.context-account-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:6px 10px;background:#eef4f0;color:var(--ns-forest);font-size:12px;font-weight:850}
.public-header .account-dropdown .context-switch{background:#f1f7f3;color:var(--ns-forest);font-weight:850}

@media(max-width:920px){.account-topbar .topbar-actions{display:flex}.account-topbar .btn{white-space:nowrap}.recovery-codes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.account-topbar{align-items:center}.account-identity strong{max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-topbar .topbar-actions{gap:6px}.account-topbar .topbar-actions .btn.secondary{display:none}.recovery-codes{grid-template-columns:1fr 1fr}.notice-item{align-items:flex-start;flex-direction:column}.mfa-qr{min-height:220px;padding:8px}.mfa-qr canvas{width:220px!important;height:220px!important}}


/* V2.1.1 — centre d'actions admin et traitement partenaire */
.notification-menu{position:relative}
.notification-menu>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.notification-menu>summary::-webkit-details-marker{display:none}
.notification-menu[open]>.notification-pill{box-shadow:0 0 0 3px rgba(239,107,43,.12)}
.notification-dropdown{position:absolute;right:0;top:calc(100% + 10px);width:min(360px,86vw);background:#fff;border:1px solid var(--ns-line);border-radius:16px;padding:8px;box-shadow:var(--ns-shadow);z-index:120}
.notification-title{padding:10px 12px 8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--ns-muted)}
.notification-dropdown a{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:12px;border-radius:10px;color:var(--ns-text);font-weight:720}
.notification-dropdown a:hover{background:#f3f7f4}
.notification-dropdown a strong{min-width:28px;height:28px;display:grid;place-items:center;border-radius:999px;background:var(--ns-orange-soft);color:var(--ns-orange-dark);font-size:12px}
.notification-clear{background:var(--ns-green-soft);color:var(--ns-forest)}
.partner-review-card{margin-bottom:20px;border-left:4px solid var(--ns-orange)}
.partner-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:8px 0 18px}
.partner-review-grid>div{display:grid;gap:5px;align-content:start}
.partner-review-grid a{color:var(--ns-forest);font-weight:700;overflow-wrap:anywhere}
.partner-message{border-top:1px solid var(--ns-line);border-bottom:1px solid var(--ns-line);padding:16px 0;margin-bottom:16px}
.partner-message p{margin:6px 0 0}
.partner-review-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}
.partner-review-actions form{margin:0}
.partner-reject-form{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;flex:1;min-width:min(100%,420px)}
.partner-reject-form input{min-height:42px}
@media(max-width:760px){
  .notification-menu .notification-pill{display:inline-flex}
  .notification-dropdown{position:fixed;left:12px;right:12px;top:78px;width:auto}
  .partner-review-grid{grid-template-columns:1fr}
  .partner-review-actions{display:grid}
  .partner-review-actions .btn{width:100%}
  .partner-reject-form{grid-template-columns:1fr;min-width:0}
}


/* V2.1.3 — Mode Support GanGanStay sécurisé */
.support-banner{margin:18px 28px 0;padding:16px 18px;border-radius:16px;display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid;box-shadow:0 10px 28px rgba(18,53,37,.08)}
.support-banner.read{background:#fff8e6;border-color:#e6b85c;color:#503600}.support-banner.write{background:#fff0ea;border-color:#ed6c32;color:#5d230a}
.support-banner>div:first-child{display:flex;flex-direction:column;gap:4px}.support-banner strong{font-size:1.05rem}.support-banner small{line-height:1.45}.support-kicker{font-size:.72rem;font-weight:900;letter-spacing:.08em}
.support-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.support-actions form{margin:0}.support-unlock{background:#ed6c32;color:#fff;border-color:#ed6c32}
.hotel-app.support-readonly .workspace-page form[method="post"]{pointer-events:none;opacity:.55;filter:saturate(.65)}
.hotel-app.support-readonly .workspace-page form[method="post"]::before{content:"Lecture seule — autorisation Support requise pour modifier";display:block;color:#8a5b00;font-weight:700;font-size:.78rem;margin-bottom:8px}
.hotel-app.support-readonly .workspace-page input,.hotel-app.support-readonly .workspace-page select,.hotel-app.support-readonly .workspace-page textarea{background:#f7f7f5}
.support-start-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,.7fr);gap:20px;max-width:1100px}.security-list{margin:0;padding-left:20px;display:grid;gap:12px}.support-write .workspace-sidebar{box-shadow:inset -4px 0 0 #ed6c32}
@media(max-width:900px){.support-banner{margin:12px;align-items:flex-start;flex-direction:column}.support-actions{width:100%}.support-actions .btn{width:100%}.support-start-grid{grid-template-columns:1fr}}

/* V2.1.4 - dossier admin lecture seule pour donnees hotel */
.admin-readonly-notice{margin-bottom:16px}.admin-declared-readonly fieldset{border:0;padding:0;margin:0;min-width:0}.admin-declared-readonly .sticky-save{display:none}.admin-declared-readonly :is(input,select,textarea):disabled{opacity:1;color:#39473f;background:#f4f6f3;cursor:not-allowed}

/* GanGanStay V2.2 — vérification officielle, publication séparée, bulk inventory */
.verification-flow{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 20px}.verification-flow span{display:inline-flex;align-items:center;min-height:34px;padding:7px 11px;border-radius:999px;background:#eef2ef;color:#647269;font-size:12px;font-weight:820;border:1px solid var(--ns-line)}.verification-flow span.active{background:var(--ns-orange-soft);color:var(--ns-orange-dark);border-color:#f2c9b5}.verification-flow span.done{background:var(--ns-green-soft);color:var(--ns-forest);border-color:#cfe5d5}.verification-flow.vertical{display:grid;gap:7px}.verification-flow.vertical span{border-radius:10px;justify-content:flex-start}.admin-flow{margin-bottom:18px}
.official-blocked{border-left:4px solid var(--ns-orange);background:#fffaf6}.official-decision{border-top:1px solid var(--ns-line);padding-top:14px;margin-top:14px}.publish-card{border-top:4px solid var(--ns-orange)}.publish-card.published{border-top-color:var(--ns-leaf)}.publish-card button:disabled{opacity:.5;cursor:not-allowed}
.owner-security{display:grid;gap:10px;padding:12px 0;border-bottom:1px solid var(--ns-line);margin-bottom:10px}.owner-badges{display:flex;gap:6px;flex-wrap:wrap}.compact-form{margin:8px 0 14px}.document-review-item form{min-width:260px}
.bulk-inventory{margin:18px 0}.bulk-inventory summary{cursor:pointer;font-weight:900;font-size:16px}.bulk-inventory form{margin-top:16px}.bulk-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.restrictions-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0}.weekday-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0;padding:12px;border-radius:12px;background:#f7faf8;border:1px solid var(--ns-line)}.weekday-row label{display:inline-flex;align-items:center;gap:5px;margin:0}.weekday-row input{width:auto}.weekday-row small{width:100%;color:var(--ns-muted)}.support-mfa-panel{max-width:650px}.support-mfa-panel form{display:grid;gap:8px;margin:18px 0 10px}
@media(max-width:1000px){.bulk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.restrictions-grid{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:650px){.bulk-grid,.restrictions-grid{grid-template-columns:1fr}.verification-flow{display:grid}.verification-flow span{border-radius:10px}.weekday-row{align-items:flex-start}}
.status.approved{background:#e9f4ff;color:#245f8e}.status.unverified{background:#f2f4f3;color:#6b7280}.status.verified_nimbastay,.status.official_verified{background:var(--ns-green-soft);color:#17683a}

/* V2.2.1 — rattachement propriétaire depuis demande partenaire */
.checkline{display:flex;align-items:flex-start;gap:.65rem;margin:1rem 0;font-weight:600;line-height:1.4}.checkline input{width:auto;margin-top:.2rem}.owner-candidate{margin:.8rem 0}.owner-candidate form{margin-top:.8rem}.manual-owner{margin-top:1rem}.manual-owner summary{cursor:pointer;font-weight:700;color:var(--green,#0b4f2c)}.owner-badges{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:flex-end}


/* V2.2.2 — formulaire partenaire dynamique / séparation demandeur-propriétaire */
.partner-smart-form fieldset{border:1px solid #dfe8e2;border-radius:16px;padding:18px;margin:0 0 18px;background:#fff}
.partner-smart-form legend{font-weight:800;color:#103f27;padding:0 8px}
.partner-smart-form .choice-row{display:flex;gap:18px;flex-wrap:wrap;padding:10px 0 4px}
.partner-smart-form .choice-row label{display:flex;align-items:center;gap:8px;font-weight:700}
.partner-smart-form [hidden]{display:none!important}
.partner-smart-form .form-hint{font-size:.9rem;color:#66756d;margin-top:12px}
.partner-legal-summary{margin-top:18px;padding:16px;border-radius:14px;background:#f6f9f7;border:1px solid #e1e8e4}
.legacy-owner-form{display:grid;gap:8px;margin-top:10px}
.owner-candidate .status{display:inline-flex;margin:8px 0}
@media(max-width:760px){.partner-smart-form fieldset{padding:14px}.partner-smart-form .grid{grid-template-columns:1fr!important}.partner-review-grid{grid-template-columns:1fr!important}}

/* V2.2.4 — entrée professionnelle discrète, identité séquentielle et navigation contextuelle */
.nav-pro-entry{display:inline-flex!important;align-items:center;gap:5px;padding:7px 10px!important;border:1px solid #dce7e0;border-radius:999px;background:#f8fbf9;color:var(--ns-forest)!important;font-size:12px;font-weight:850;line-height:1}
.nav-pro-entry:hover{background:#eef6f1!important;border-color:#cbdcd1}.nav-pro-entry span:first-child{font-size:14px}
.footer-grid-visitors{grid-template-columns:1.6fr 1fr 1.15fr}
.professional-entry{max-width:680px}.micro-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:13px;font-weight:750;color:var(--ns-forest)}.micro-nav.light{margin:0 0 20px;color:#fff}.micro-nav.light a{color:#fff;opacity:.92}.micro-nav a:hover{text-decoration:underline}
.partner-access-card{padding:34px}.partner-access-card h1{margin-bottom:10px}.partner-email-gate{margin-top:22px}.partner-email-gate .btn{margin-top:10px}.partner-access-notes{display:grid;gap:8px;margin-top:20px;padding-top:18px;border-top:1px solid var(--ns-line);font-size:13px;color:var(--ns-muted)}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0!important;pointer-events:none!important}
.compact-partner-hero{padding:34px 0 26px}.compact-partner-hero h1{margin:6px 0 8px}.partner-form-layout{align-items:start}.partner-form-guide{position:sticky;top:98px}.partner-form-guide .notice{margin-top:18px}.partner-smart-form input[readonly]{background:#f2f5f3;color:#53645b;cursor:not-allowed}
.page-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.context-breadcrumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px;font-size:12px;font-weight:800}.context-breadcrumbs>a:first-child{color:var(--ns-forest)}.context-chip{display:inline-flex;align-items:center;gap:5px;border:1px solid #dce7e0;border-radius:999px;padding:5px 9px;background:#fff;color:var(--ns-forest)!important;font-size:12px;font-weight:800}.context-chip:hover{background:#eef6f1}.workflow-hint{margin-bottom:16px;border-left:4px solid var(--ns-orange)}
.action-bar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.owner-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.owner-security{padding:10px 0}.owner-security+.compact-form{margin-bottom:12px}
@media(max-width:920px){.nav-pro-entry{justify-content:flex-start!important;border:0;border-radius:9px;background:#f3f7f4!important}.partner-form-guide{position:static}.footer-grid-visitors{grid-template-columns:1fr 1fr}.page-actions{width:100%}}
@media(max-width:600px){.footer-grid-visitors{grid-template-columns:1fr}.partner-access-card{padding:22px}.micro-nav{align-items:flex-start}.page-actions{display:grid;grid-template-columns:1fr}.page-actions .btn{width:100%}.context-breadcrumbs{align-items:flex-start}.action-bar{display:grid;grid-template-columns:1fr}.action-bar .btn{width:100%}}

/* =========================================================
   GanGanStay V2.2.5 — navigation dynamique / langues / compte
   ========================================================= */
.nav-currency{display:inline-flex;align-items:center;min-height:34px;padding:0 3px;color:var(--ns-muted);font-size:12px;font-weight:850;letter-spacing:.03em}
.locale-menu{position:relative}.locale-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:4px;min-height:34px;padding:5px 6px;border-radius:10px;color:var(--ns-text);font-size:12px;font-weight:850}.locale-menu summary::-webkit-details-marker{display:none}.locale-menu summary:hover{background:#f1f5f2}.locale-menu .chevron,.public-login-menu .chevron{font-size:11px;opacity:.65}.locale-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:170px;background:#fff;border:1px solid var(--ns-line);border-radius:13px;padding:7px;box-shadow:var(--ns-shadow);z-index:120}.locale-dropdown form{margin:0}.locale-option{display:flex;align-items:center;justify-content:space-between;width:100%;border:0;background:transparent;color:var(--ns-text);padding:10px 11px;border-radius:8px;font:inherit;font-size:13px;text-align:left;cursor:pointer}.locale-option:hover,.locale-option.active{background:#f1f7f3;color:var(--ns-forest)}
.locale-menu.compact summary{border:1px solid var(--ns-line);background:#fff;min-width:54px;justify-content:center}.locale-menu.compact .locale-dropdown{right:0}
.public-login-menu>summary{border:1px solid var(--ns-line);background:#fff;min-height:38px;padding:7px 10px}.public-login-menu>summary:hover{background:#f8fbf9}.public-login-menu .account-dropdown{width:260px}.public-login-menu .account-dropdown strong{font-weight:900}.dropdown-label{display:block;padding:8px 12px 4px;color:var(--ns-muted);font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.06em}.account-dropdown .context-switch{background:#f1f7f3;color:var(--ns-forest);font-weight:850}
.password-security-card{padding:0!important;overflow:hidden}.account-password-zone>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px}.account-password-zone>summary::-webkit-details-marker{display:none}.account-password-zone>summary span:first-child{display:grid;gap:4px}.account-password-zone>summary strong{font-size:20px}.account-password-zone>summary small{color:var(--ns-muted);font-weight:500}.password-zone-toggle{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--ns-line);border-radius:10px;padding:8px 11px;color:var(--ns-forest);font-size:12px;font-weight:850}.account-password-zone[open] .password-zone-toggle{background:var(--ns-green-soft)}.account-password-body{padding:0 22px 22px;border-top:1px solid var(--ns-line)}.account-password-body form{padding-top:12px}
@media(max-width:920px){
  .public-links.open{top:68px}
  .nav-right.open{top:214px;align-items:center}
  .nav-right.open .locale-menu,.nav-right.open .account-menu{position:relative}
  .nav-right.open .locale-dropdown,.nav-right.open .account-dropdown{position:fixed;left:18px;right:18px;top:auto;width:auto;max-width:none}
  .locale-menu.compact summary{min-width:48px}
}
@media(max-width:600px){
  .nav-right.open{top:194px}
  .public-login-menu>summary{min-height:36px}
  .account-password-zone>summary{padding:18px}.account-password-body{padding:0 18px 18px}
}
\n/* V2.2.6 — confort d'authentification */
.auth-trust-row{display:flex;align-items:flex-start;gap:.75rem;margin:1rem 0;padding:.85rem 1rem;border:1px solid #d9e5dc;border-radius:14px;background:#f7fbf8;cursor:pointer}
.auth-trust-row input[type="checkbox"]{width:18px;height:18px;min-width:18px;margin-top:.18rem;accent-color:#0b5a38}
.auth-trust-row span{display:grid;gap:.2rem}.auth-trust-row small{display:block;color:#5d6b63;line-height:1.35}
.trusted-device-status{display:grid;gap:.45rem;margin:1rem 0;padding:.9rem 1rem;border:1px solid #d9e5dc;border-radius:14px;background:#f7fbf8}.trusted-device-status small{color:#5d6b63;line-height:1.4}.trusted-device-status form{margin-top:.25rem}


/* =========================================================
   GanGanStay V2.2.7 — accueil vivant + localisation facultative
   ========================================================= */
.readiness-item.optional{background:#f2f5f8;color:#55626d;border:1px dashed #d5dde3}
.readiness-item.optional.ok{background:var(--ns-green-soft);color:#17683a;border-style:solid;border-color:#cfe5d5}
.readiness-item.optional>div{display:grid;gap:1px}
.readiness-item.optional small{display:block;font-size:10px;font-weight:650;color:inherit;opacity:.78;line-height:1.3}

.smart-discovery-section{padding-top:26px;padding-bottom:28px}
.smart-section-head{align-items:flex-end}
.smart-section-head .eyebrow{display:block;margin-bottom:5px}
.smart-head-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.smart-location-btn{min-height:38px;padding:8px 12px;border-radius:999px;border:1px solid #cfe0d5;background:#f5faf7;color:var(--ns-forest);font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.smart-location-btn:hover{background:#eaf4ed}
.smart-location-btn.is-active{background:var(--ns-green-soft);border-color:#bcd9c5}
.smart-location-btn:disabled{opacity:.6;cursor:not-allowed}
.smart-carousel-controls{display:flex;align-items:center;gap:6px}
.smart-carousel-controls button{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--ns-line);border-radius:999px;background:#fff;color:var(--ns-forest);font-size:23px;line-height:1;cursor:pointer}
.smart-carousel-controls button:hover{background:#f1f7f3}
.smart-carousel{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(270px,310px);gap:14px;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:inline mandatory;scrollbar-width:thin;padding:3px 2px 12px}
.smart-carousel.hotels{grid-auto-columns:minmax(270px,300px)}
.smart-room-card,.smart-hotel-card{scroll-snap-align:start;background:#fff;border:1px solid var(--ns-line);border-radius:18px;overflow:hidden;box-shadow:0 7px 25px rgba(18,49,31,.045);min-width:0}
.smart-room-card:hover,.smart-hotel-card:hover{box-shadow:var(--ns-shadow);transform:translateY(-1px)}
.smart-room-photo,.smart-hotel-photo{display:block;height:185px;background:#dfeae2;overflow:hidden}
.smart-room-photo img,.smart-hotel-photo img{width:100%;height:100%;object-fit:cover}
.smart-room-body,.smart-hotel-body{padding:16px}
.smart-room-kicker{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:25px;color:var(--ns-muted);font-size:11px;font-weight:800}
.smart-room-kicker>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.smart-room-card h3,.smart-hotel-card h3{font-size:18px;line-height:1.25;margin:8px 0 5px}
.smart-room-card p{margin:0 0 14px;font-size:13px}
.smart-badge{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:4px 7px;background:var(--ns-orange-soft);color:var(--ns-orange-dark);font-size:10px;font-weight:900}
.smart-badge.favorite{background:#fff0f2;color:#9d3145}
.smart-room-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:10px;border-top:1px solid var(--ns-line);padding-top:13px}
.smart-room-footer>div{display:grid;gap:1px}
.smart-room-footer small{font-size:10px;color:var(--ns-muted)}
.smart-room-footer strong{font-size:18px;color:var(--ns-forest)}
.smart-room-footer .btn{min-height:36px;padding:8px 11px}
.smart-hotel-body .rating-row{margin:8px 0 12px}
.smart-card-link{display:inline-flex;margin-top:12px;color:var(--ns-forest);font-weight:850;font-size:13px}
.smart-card-link:hover{text-decoration:underline}
.smart-privacy-note{margin:7px 0 0;color:var(--ns-muted);font-size:11px}
.smart-location-status{font-size:11px;color:var(--ns-muted)}

@media(max-width:920px){
  .smart-section-head{align-items:flex-start}
  .smart-head-actions{justify-content:flex-start;width:100%}
  .smart-carousel{grid-auto-columns:minmax(250px,78vw)}
}
@media(max-width:600px){
  .smart-discovery-section{padding-top:18px;padding-bottom:22px}
  .smart-carousel-controls{display:none}
  .smart-carousel{grid-auto-columns:84vw;gap:11px}
  .smart-room-photo,.smart-hotel-photo{height:170px}
  .smart-location-btn{width:100%;justify-content:center}
}


/* NBS_DESIGN_SYSTEM_V1
 * Harmonisation visuelle uniquement.
 * Les moteurs métier et leurs statuts ne sont pas modifiés.
 */
:root{
  --nbs-brand:#0b5d3b;
  --nbs-brand-strong:#08472f;
  --nbs-accent:#f47b20;
  --nbs-text:#17251d;
  --nbs-muted:#66756d;
  --nbs-surface:#ffffff;
  --nbs-surface-soft:#f5f7f6;
  --nbs-border:#dce5df;
  --nbs-danger:#b42318;
  --nbs-warning:#946200;
  --nbs-success:#087443;
  --nbs-radius-sm:8px;
  --nbs-radius:12px;
  --nbs-radius-lg:16px;
  --nbs-shadow:0 4px 18px rgba(15,35,25,.08);
  --nbs-focus:0 0 0 3px rgba(11,93,59,.18);
  --nbs-control-h:44px;
  --nbs-content:1180px;
}

@media screen{
  *,*::before,*::after{box-sizing:border-box}

  html{-webkit-text-size-adjust:100%;text-size-adjust:100%}

  body{
    color:var(--nbs-text);
    background:var(--nbs-surface-soft);
    line-height:1.5;
  }

  img,svg,video{max-width:100%;height:auto}

  a{color:var(--nbs-brand)}
  a:hover{color:var(--nbs-brand-strong)}

  :where(a,button,input,select,textarea,[tabindex]):focus-visible{
    outline:2px solid var(--nbs-brand);
    outline-offset:2px;
    box-shadow:var(--nbs-focus);
  }

  :where(button,.btn,input[type="submit"],input[type="button"],input[type="reset"]){
    min-height:var(--nbs-control-h);
    border-radius:var(--nbs-radius-sm);
    font:inherit;
    font-weight:700;
  }

  :where(.btn,.btn-primary,button[type="submit"],input[type="submit"]){
    border:1px solid var(--nbs-brand);
  }

  :where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
    width:100%;
    min-height:var(--nbs-control-h);
    border:1px solid var(--nbs-border);
    border-radius:var(--nbs-radius-sm);
    background:var(--nbs-surface);
    color:var(--nbs-text);
    font:inherit;
  }

  textarea{min-height:110px;resize:vertical}

  :where(input,select,textarea)::placeholder{color:var(--nbs-muted)}

  :where(.card,.panel,.metric-card,.box){
    border-radius:var(--nbs-radius);
  }

  :where(.card,.panel,.metric-card){
    border-color:var(--nbs-border);
  }

  :where(.badge,.pill,.status-badge){
    display:inline-flex;
    align-items:center;
    gap:.35rem;
    border-radius:999px;
    line-height:1.2;
  }

  :where(.alert,.notice,.flash){
    border-radius:var(--nbs-radius);
  }

  :where(table){
    border-collapse:collapse;
  }

  :where(th,td){
    vertical-align:top;
  }

  :where(.container,.page-container,.shell-main,.content-wrap){
    max-width:var(--nbs-content);
    margin-inline:auto;
  }

  :where(.muted,.text-muted,small){
    color:var(--nbs-muted);
  }

  @media (max-width:900px){
    :where(.grid,.cards,.metrics,.dashboard-grid){
      grid-template-columns:1fr;
    }

    :where(.container,.page-container,.shell-main,.content-wrap){
      width:100%;
      padding-inline:16px;
    }
  }

  @media (max-width:640px){
    body{overflow-x:hidden}

    :where(.card,.panel,.metric-card){
      max-width:100%;
    }

    :where(button,.btn,input[type="submit"],input[type="button"]){
      max-width:100%;
    }

    :where(table){
      font-size:.92rem;
    }
  }
}

/* NIMBASTAY_EXPERIENCE_2_PHASE19_FOUNDATION
   Premium / simple / mobile-first foundation. */
:root{
  --nbs-green-950:#063821;
  --nbs-green-900:#074a2b;
  --nbs-green-800:#0b5d37;
  --nbs-green-700:#147447;
  --nbs-cream:#fbfaf6;
  --nbs-surface:#ffffff;
  --nbs-surface-soft:#f5f7f5;
  --nbs-ink:#122019;
  --nbs-muted:#64736b;
  --nbs-line:#dfe7e2;
  --nbs-orange:#f26a2e;
  --nbs-orange-dark:#d9561f;
  --nbs-success:#08783e;
  --nbs-danger:#b42318;
  --nbs-warning:#9a6700;
  --nbs-radius-sm:12px;
  --nbs-radius:18px;
  --nbs-radius-lg:26px;
  --nbs-shadow:0 12px 34px rgba(14,42,27,.08);
  --nbs-shadow-lg:0 22px 60px rgba(14,42,27,.13);
  --nbs-max:1180px;
}
html{scroll-behavior:smooth}
body{background:var(--nbs-surface-soft);color:var(--nbs-ink);text-rendering:optimizeLegibility}
body,input,select,textarea,button{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.site-container,.r4-main{width:min(var(--nbs-max),calc(100% - 32px));margin-inline:auto}
a{transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease}
button,.btn,.r4-submit,.r4-outline{min-height:44px;border-radius:999px;font-weight:750}
.btn.primary,.r4-submit{background:var(--nbs-orange);border-color:var(--nbs-orange);box-shadow:0 10px 24px rgba(242,106,46,.22)}
.btn.primary:hover,.r4-submit:hover{background:var(--nbs-orange-dark);transform:translateY(-1px)}
input,select,textarea{
  min-height:46px;border:1px solid var(--nbs-line);border-radius:13px;background:#fff;color:var(--nbs-ink);
  padding:10px 12px;box-shadow:0 1px 0 rgba(0,0,0,.02)
}
input:focus,select:focus,textarea:focus{outline:3px solid rgba(20,116,71,.14);border-color:var(--nbs-green-700)}
.card,.panel,.hotel-result-card,.r4-card,.r4-search,.r4-detail,.empty-state{
  border:1px solid var(--nbs-line);border-radius:var(--nbs-radius);background:var(--nbs-surface);box-shadow:var(--nbs-shadow)
}
.site-header,.public-header,.public-nav,.r4-header{
  backdrop-filter:saturate(160%) blur(14px);background:rgba(255,255,255,.94)!important;border-bottom:1px solid var(--nbs-line)!important
}
.site-header,.public-header,.r4-header{position:sticky;top:0;z-index:80}
.public-nav,.r4-header{min-height:68px}
.public-nav a,.r4-header a{font-weight:650;color:var(--nbs-ink)}
.public-nav a:hover,.r4-header a:hover{color:var(--nbs-green-700)}
.locale-menu summary{border:1px solid var(--nbs-line);border-radius:999px;padding:7px 10px;background:#fff}
.hero,.home-hero{
  background:
    radial-gradient(circle at 84% 10%,rgba(255,255,255,.11),transparent 25%),
    linear-gradient(135deg,var(--nbs-green-950),var(--nbs-green-700));
  color:#fff
}
.hero h1,.home-hero h1{font-size:clamp(2.25rem,5vw,4.5rem);line-height:.98;letter-spacing:-.045em;max-width:760px}
.hero p,.home-hero p{font-size:clamp(1rem,1.5vw,1.18rem);opacity:.9}
.ota-search,.r4-search form{
  border:1px solid rgba(255,255,255,.22);border-radius:20px;background:#fff;padding:8px;box-shadow:var(--nbs-shadow-lg)
}
.ota-search label,.r4-search label{font-size:.75rem;font-weight:750;color:#4a5a51}
.ota-search input,.ota-search select,.r4-search input,.r4-search select{border-color:#e1e6e3;background:#fbfcfb}
.results-toolbar,.pagehead,.section-head{gap:18px}
.destination-grid,.destination-list{gap:12px}
.destination-card,.destination-list-item{
  background:#fff;border:1px solid var(--nbs-line);border-radius:16px;padding:16px;box-shadow:0 6px 20px rgba(14,42,27,.04)
}
.destination-list-prefectures{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px
}
.destination-list-prefectures .destination-list-item{display:flex;align-items:center;min-height:58px;text-decoration:none}
.hotel-result-card{overflow:hidden;transition:transform .18s ease,box-shadow .18s ease}
.hotel-result-card:hover{transform:translateY(-2px);box-shadow:var(--nbs-shadow-lg)}
.hotel-image-wrap img,.hotel-photo,.r4-hero-img{object-fit:cover}
.badge,.secure-pill{border-radius:999px}
.trust-strip{border-radius:var(--nbs-radius);overflow:hidden}
.r4-main{padding-block:28px 54px}
.r4-header{padding-inline:max(16px,calc((100vw - var(--nbs-max))/2))}
.r4-footer{background:var(--nbs-green-950)!important;color:#fff;border:0!important}
.r4-footer a{color:#fff}
.r4-search,.r4-detail{padding:20px;margin-block:18px}
.r4-search form{box-shadow:none;border:0;padding:0}
.r4-grid,.grid{gap:16px}
[data-nbs-date-summary]{
  display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;border-radius:999px;
  background:#edf7f1;color:var(--nbs-green-800);font-size:.82rem;font-weight:700
}
.nbs-search-state{
  display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0 20px;color:var(--nbs-muted);font-size:.9rem
}
.nbs-search-state span{background:#fff;border:1px solid var(--nbs-line);border-radius:999px;padding:7px 10px}
.nbs-suggest-context{display:block;color:var(--nbs-muted);font-size:.78rem;margin-top:2px}
.nbs-suggest-type{font-size:.7rem;font-weight:800;letter-spacing:.04em;color:var(--nbs-green-700);text-transform:uppercase}
@media(max-width:900px){
  .destination-list-prefectures{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ota-search{grid-template-columns:1fr 1fr!important}
  .ota-search>button{grid-column:1/-1}
}
@media(max-width:640px){
  .site-container,.r4-main{width:min(100% - 22px,var(--nbs-max))}
  .public-nav,.r4-header{min-height:60px}
  .hero h1,.home-hero h1{font-size:clamp(2rem,12vw,3rem)}
  .ota-search{grid-template-columns:1fr!important;padding:10px;border-radius:18px}
  .destination-list-prefectures{grid-template-columns:1fr}
  .hotel-result-card{border-radius:16px}
  .btn,.r4-submit,.r4-outline,button{min-height:46px}
  input,select,textarea{font-size:16px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* NIMBASTAY_EXPERIENCE_2_PHASE20_PUBLIC_PREMIUM_CSS */
.market-hero{position:relative;overflow:hidden;background:linear-gradient(125deg,#063821 0%,#0b5d37 58%,#147447 100%);color:#fff}
.market-hero:after{content:"";position:absolute;inset:auto -12% -48% 42%;height:440px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.13),transparent 68%);pointer-events:none}
.market-hero .hero-inner{position:relative;z-index:1;padding-block:clamp(52px,8vw,104px)}
.market-hero .hero-copy{max-width:780px}.market-hero .hero-copy h1{font-size:clamp(2.4rem,6vw,5rem);line-height:.94;letter-spacing:-.055em;margin:.25em 0}.market-hero .hero-copy p{max-width:650px;font-size:clamp(1rem,1.8vw,1.22rem);opacity:.9}
.market-hero .ota-search{margin-top:30px;position:relative;z-index:2}
.destination-card,.destination-list-item{transition:transform .18s ease,box-shadow .18s ease}.destination-card:hover,.destination-list-item:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(14,42,27,.09)}

.nbs20-search-shell{padding:26px 0 14px;background:linear-gradient(180deg,#f1f6f2 0%,transparent 100%)}
.nbs20-search{display:grid;grid-template-columns:minmax(210px,2.1fr) repeat(2,minmax(140px,1.05fr)) repeat(3,minmax(84px,.68fr)) auto;gap:10px;align-items:end;background:#fff;border:1px solid var(--nbs-line,#dfe7e2);border-radius:22px;padding:12px;box-shadow:0 18px 46px rgba(14,42,27,.09)}
.nbs20-search.compact{grid-template-columns:1fr 1fr;box-shadow:none;border:0;padding:0;background:transparent;border-radius:0}.nbs20-search.compact .nbs20-field:nth-of-type(n+3){grid-column:auto}.nbs20-search.compact .nbs20-search-submit{grid-column:1/-1}
.nbs20-field{min-width:0;position:relative}.nbs20-field label{display:block;font-size:.74rem;line-height:1.2;font-weight:800;color:#53635a;margin:0 0 6px}.nbs20-field input,.nbs20-field select{width:100%;height:48px;min-height:48px;background:#fbfcfb}.nbs20-search-submit{height:48px;padding-inline:24px;white-space:nowrap}
.nbs20-dirty{margin-top:10px;border:1px solid #f2d397;background:#fff8e8;color:#6c4c00;border-radius:14px;padding:10px 12px;font-weight:700;font-size:.87rem}
.nbs20-results{padding-block:26px 60px}.nbs20-results-head{display:flex;justify-content:space-between;align-items:end;gap:18px;margin-bottom:20px}.nbs20-results-head h1{font-size:clamp(1.8rem,3.5vw,2.7rem);letter-spacing:-.035em;margin:.18em 0}.nbs20-results-head p{color:var(--nbs-muted,#64736b);margin:0}.nbs20-filter-toggle{display:none}
.nbs20-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:22px;align-items:start}.nbs20-filter-panel{position:sticky;top:92px}.nbs20-filters{display:grid;gap:14px;background:#fff;border:1px solid var(--nbs-line,#dfe7e2);border-radius:18px;padding:16px;box-shadow:0 9px 26px rgba(14,42,27,.05)}.nbs20-filters label{display:block;font-size:.75rem;font-weight:800;color:#53635a;margin-bottom:5px}.nbs20-filters input,.nbs20-filters select{width:100%}.nbs20-filters .btn{width:100%}
.nbs20-list{display:grid;gap:16px}.nbs20-hotel-card{display:grid;grid-template-columns:245px minmax(0,1fr) 205px;min-height:245px;overflow:hidden;background:#fff;border:1px solid var(--nbs-line,#dfe7e2);border-radius:20px;box-shadow:0 10px 30px rgba(14,42,27,.06);transition:transform .18s ease,box-shadow .18s ease}.nbs20-hotel-card:hover{transform:translateY(-2px);box-shadow:0 18px 48px rgba(14,42,27,.11)}
.nbs20-hotel-photo{display:block;background:#eef3ef;overflow:hidden}.nbs20-hotel-photo img{width:100%;height:100%;min-height:245px;object-fit:cover;transition:transform .3s ease}.nbs20-hotel-card:hover .nbs20-hotel-photo img{transform:scale(1.025)}.nbs20-photo-placeholder{height:100%;min-height:190px;display:grid;place-items:center;background:linear-gradient(135deg,#e4eee7,#f8faf8);color:#0b5d37;font-weight:900;letter-spacing:.04em}
.nbs20-hotel-main{padding:22px;min-width:0}.nbs20-kicker,.nbs20-breadcrumb,.nbs20-property .eyebrow{color:#147447;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;font-weight:850}.nbs20-hotel-main h2{font-size:clamp(1.35rem,2.3vw,1.8rem);letter-spacing:-.03em;margin:.35em 0}.nbs20-hotel-main h2 a{color:inherit;text-decoration:none}.nbs20-hotel-main p{color:#526159;line-height:1.55}.nbs20-rating{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:.83rem}.nbs20-stars{color:#9a6700;letter-spacing:.05em;font-weight:850}.nbs20-score{display:inline-flex;align-items:center;padding:5px 8px;border-radius:9px;background:#eaf5ee;color:#075b35;font-weight:850}
.nbs20-tags,.nbs20-chip-grid,.nbs20-room-facts{display:flex;flex-wrap:wrap;gap:7px}.nbs20-tags span,.nbs20-chip-grid span,.nbs20-room-facts span{display:inline-flex;align-items:center;border-radius:999px;padding:6px 9px;background:#f1f6f2;color:#3d5146;font-size:.78rem;font-weight:700}
.nbs20-price{border-left:1px solid var(--nbs-line,#dfe7e2);padding:22px 18px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right}.nbs20-price small,.nbs20-room-price small{color:#67766e}.nbs20-price strong,.nbs20-room-price strong{font-size:1.45rem;margin:8px 0 2px}.nbs20-price>span,.nbs20-room-price>span{color:#7a8880;font-size:.78rem}.nbs20-price .btn{margin-top:16px;width:100%}
.nbs20-empty{margin-block:34px 70px;padding:clamp(34px,7vw,76px);text-align:center;background:#fff;border:1px dashed #cddbd2;border-radius:22px}.nbs20-empty.compact{margin:0;padding:46px 24px}.nbs20-empty h1,.nbs20-empty h2{letter-spacing:-.035em}.nbs20-empty p{max-width:620px;margin-inline:auto;color:#64736b}.nbs20-empty-icon{font-size:2rem;color:#147447}

.nbs20-property{padding-block:24px 68px}.nbs20-breadcrumb{margin:4px 0 14px;text-transform:none;letter-spacing:0}.nbs20-breadcrumb a{text-decoration:none;color:#147447}.nbs20-gallery{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:210px 210px;gap:8px;border-radius:22px;overflow:hidden;background:#e8efe9}.nbs20-gallery-item{border:0;padding:0;border-radius:0;overflow:hidden;cursor:zoom-in;min-height:0;background:#eef3ef}.nbs20-gallery-item.hero{grid-row:1/3}.nbs20-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .25s ease}.nbs20-gallery-item:hover img{transform:scale(1.02)}.nbs20-gallery-empty{grid-column:1/-1;grid-row:1/3;display:grid;place-items:center;font-size:2rem;font-weight:900;color:#0b5d37;background:linear-gradient(135deg,#e3eee6,#f7faf8)}
.nbs20-property-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:34px;align-items:start;margin-top:30px}.nbs20-property h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1;letter-spacing:-.05em;margin:.25em 0}.nbs20-property-meta{display:flex;flex-wrap:wrap;gap:9px;align-items:center;color:#53635a;font-size:.86rem}.nbs20-property-meta>span:first-child{font-weight:800;color:#122019}.nbs20-lead{font-size:1.04rem;line-height:1.75;color:#46584e;max-width:820px}.nbs20-info-section{padding-block:20px;border-top:1px solid var(--nbs-line,#dfe7e2);margin-top:22px}.nbs20-info-section h2{letter-spacing:-.03em}.nbs20-info-section h3{margin-top:20px}
.nbs20-practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.nbs20-practical-grid>div{border:1px solid var(--nbs-line,#dfe7e2);border-radius:15px;background:#fff;padding:14px}.nbs20-practical-grid small{display:block;color:#6b7971;margin-bottom:5px}
.nbs20-stay-card{position:sticky;top:92px;background:#fff;border:1px solid var(--nbs-line,#dfe7e2);border-radius:20px;padding:20px;box-shadow:0 18px 46px rgba(14,42,27,.1)}.nbs20-stay-card h2{margin-top:0}.nbs20-stay-card>p{color:#64736b;font-size:.9rem;line-height:1.5}
.nbs20-map-card{margin-top:24px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center;text-decoration:none;color:inherit;background:#edf6f0;border:1px solid #d6e8dc;border-radius:18px;padding:16px}.nbs20-map-card small{display:block;color:#607168;margin-top:3px}.nbs20-map-pin{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#0b5d37;color:#fff;font-size:1.3rem}
.nbs20-rooms{margin-top:42px}.nbs20-room-card{display:grid;grid-template-columns:210px minmax(0,1fr) 235px;overflow:hidden;background:#fff;border:1px solid var(--nbs-line,#dfe7e2);border-radius:18px;margin-top:14px}.nbs20-room-photo img{width:100%;height:100%;min-height:210px;object-fit:cover}.nbs20-room-info{padding:20px}.nbs20-room-info h3{font-size:1.25rem;margin:0 0 8px}.nbs20-room-info p{color:#607168;line-height:1.55}.nbs20-room-price{padding:20px;border-left:1px solid var(--nbs-line,#dfe7e2);display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right}.nbs20-room-price .btn{margin-top:14px;width:100%}.nbs20-unavailable{margin-top:12px;color:#a33;font-weight:800;font-size:.86rem}
.nbs20-lightbox{position:fixed;z-index:9999;inset:0;background:rgba(3,18,10,.94);display:grid;place-items:center;padding:28px}.nbs20-lightbox[hidden]{display:none}.nbs20-lightbox img{max-width:min(1200px,96vw);max-height:90vh;object-fit:contain}.nbs20-lightbox button{position:absolute;right:20px;top:20px;width:48px;height:48px;border:0;border-radius:50%;background:#fff;color:#122019;font-size:2rem;cursor:pointer}
body.nbs20-loading .nbs20-list{opacity:.58;pointer-events:none}body.nbs20-loading .nbs20-search-submit span{visibility:hidden}body.nbs20-loading .nbs20-search-submit:after{content:"…";position:absolute}

@media(max-width:1050px){.nbs20-search{grid-template-columns:2fr 1fr 1fr repeat(3,.72fr);}.nbs20-search-submit{grid-column:1/-1}.nbs20-layout{grid-template-columns:220px minmax(0,1fr)}.nbs20-hotel-card{grid-template-columns:210px minmax(0,1fr)}.nbs20-price{grid-column:2;border-left:0;border-top:1px solid var(--nbs-line,#dfe7e2);display:grid;grid-template-columns:1fr auto;align-items:center;text-align:left;gap:6px 18px}.nbs20-price .btn{grid-column:2;grid-row:1/4;margin:0;min-width:160px}.nbs20-property-grid{grid-template-columns:minmax(0,1fr) 330px}}
@media(max-width:820px){.nbs20-search{grid-template-columns:1fr 1fr}.nbs20-destination{grid-column:1/-1}.nbs20-search-submit{grid-column:1/-1}.nbs20-filter-toggle{display:inline-flex}.nbs20-layout{display:block}.nbs20-filter-panel{position:fixed;z-index:300;left:0;right:0;bottom:0;top:auto;padding:16px;background:rgba(6,34,20,.25);backdrop-filter:blur(3px);transform:translateY(110%);transition:transform .22s ease}.nbs20-filter-panel.open{transform:translateY(0)}.nbs20-filters{border-radius:22px 22px 14px 14px;max-height:78vh;overflow:auto}.nbs20-hotel-card{grid-template-columns:190px minmax(0,1fr)}.nbs20-property-grid{grid-template-columns:1fr}.nbs20-stay-card{position:static;order:-1}.nbs20-gallery{grid-template-rows:170px 170px}.nbs20-room-card{grid-template-columns:180px minmax(0,1fr)}.nbs20-room-price{grid-column:2;border-left:0;border-top:1px solid var(--nbs-line,#dfe7e2);align-items:flex-start;text-align:left}.nbs20-room-price .btn{width:auto}.nbs20-results-head{align-items:center}}
@media(max-width:620px){.market-hero .hero-inner{padding-block:42px 54px}.nbs20-search-shell{padding-top:14px}.nbs20-search{grid-template-columns:1fr 1fr;padding:10px;border-radius:18px}.nbs20-search.compact{grid-template-columns:1fr 1fr}.nbs20-destination{grid-column:1/-1}.nbs20-search .nbs20-field:nth-of-type(4),.nbs20-search .nbs20-field:nth-of-type(5),.nbs20-search .nbs20-field:nth-of-type(6){grid-column:auto}.nbs20-results{padding-top:18px}.nbs20-results-head{align-items:flex-start;flex-direction:column}.nbs20-hotel-card{display:block}.nbs20-hotel-photo{height:220px}.nbs20-hotel-photo img{min-height:0;height:220px}.nbs20-price{display:flex;align-items:stretch;text-align:left;border-top:1px solid var(--nbs-line,#dfe7e2);padding:17px 20px}.nbs20-price .btn{width:100%;margin-top:13px}.nbs20-gallery{grid-template-columns:1fr 1fr;grid-template-rows:240px 110px}.nbs20-gallery-item.hero{grid-column:1/-1;grid-row:1}.nbs20-gallery-item:nth-child(n+4){display:none}.nbs20-property{padding-top:12px}.nbs20-property-grid{margin-top:22px;gap:20px}.nbs20-practical-grid{grid-template-columns:1fr}.nbs20-room-card{display:block}.nbs20-room-photo{height:205px}.nbs20-room-photo img{min-height:0;height:205px}.nbs20-room-price{border-left:0;align-items:stretch;text-align:left}.nbs20-room-price .btn{width:100%}.nbs20-lightbox{padding:14px}}
@media(max-width:390px){.nbs20-search{grid-template-columns:1fr}.nbs20-search.compact{grid-template-columns:1fr}.nbs20-destination,.nbs20-search .nbs20-field,.nbs20-search-submit{grid-column:1}.nbs20-gallery{grid-template-rows:220px 96px}.nbs20-hotel-main{padding:18px}.nbs20-price{padding:16px 18px}}
@media(prefers-reduced-motion:reduce){.nbs20-filter-panel,.nbs20-gallery-item img,.nbs20-hotel-card,.nbs20-hotel-photo img{transition:none!important}}

/* ==========================================================
   NIMBASTAY_EXPERIENCE_2_PHASE20_V3_PUBLIC_PREMIUM
   Refonte publique intégrale — présentation uniquement.
   ========================================================== */

:root{
  --x2-green-950:#06351f;
  --x2-green-900:#07462a;
  --x2-green-800:#0a5b36;
  --x2-green-700:#137246;
  --x2-orange:#f36b2c;
  --x2-orange-hover:#d9551e;
  --x2-bg:#f6f8f6;
  --x2-card:#fff;
  --x2-ink:#12221a;
  --x2-muted:#65746c;
  --x2-line:#dde6e0;
  --x2-soft:#eef6f1;
  --x2-radius:18px;
  --x2-radius-lg:26px;
  --x2-shadow:0 14px 40px rgba(15,48,30,.08);
  --x2-shadow-lg:0 24px 70px rgba(15,48,30,.14);
  --x2-max:1220px;
}

body.context-public{background:var(--x2-bg);color:var(--x2-ink)}
body.context-public main{min-height:58vh}
body.context-public .site-container{width:min(var(--x2-max),calc(100% - 36px));margin-inline:auto}
body.context-public .section{padding-block:34px}
body.context-public .section+.section{padding-top:12px}

body.context-public .public-nav{
  position:sticky;top:0;z-index:90;
  min-height:70px;background:rgba(255,255,255,.95);
  backdrop-filter:blur(14px) saturate(150%);
  border-bottom:1px solid var(--x2-line);
  box-shadow:0 4px 18px rgba(14,42,27,.035)
}
body.context-public .public-nav .nav-inner,
body.context-public .public-nav>.site-container{width:min(var(--x2-max),calc(100% - 36px));margin:auto}
body.context-public .public-nav a{font-weight:700}
body.context-public .public-nav .brand img{max-height:46px;width:auto}

body.context-public .market-hero{
  background:
    radial-gradient(circle at 88% 12%,rgba(255,255,255,.12),transparent 24%),
    linear-gradient(135deg,var(--x2-green-950),var(--x2-green-700));
  color:#fff;padding:54px 0 58px
}
body.context-public .hero-inner{display:grid;gap:28px}
body.context-public .hero-copy{max-width:780px}
body.context-public .hero-copy h1{font-size:clamp(2.35rem,5vw,4.65rem);line-height:.98;letter-spacing:-.05em;margin:.4rem 0 1rem}
body.context-public .hero-copy p{font-size:clamp(1rem,1.6vw,1.18rem);max-width:700px;opacity:.9}
body.context-public .trust-chip{display:inline-flex;padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.94);color:var(--x2-green-900);font-weight:800;font-size:.8rem}

body.context-public .ota-search,
body.context-public .search-panel,
body.context-public form[data-search-form]{
  background:#fff;border:1px solid rgba(255,255,255,.5);border-radius:20px;
  padding:10px;box-shadow:var(--x2-shadow-lg)
}
body.context-public .ota-search label,
body.context-public .search-panel label{font-size:.76rem;font-weight:800;color:#526159}
body.context-public input,
body.context-public select,
body.context-public textarea{
  border:1px solid var(--x2-line);border-radius:13px;background:#fff;min-height:46px
}
body.context-public input:focus,
body.context-public select:focus,
body.context-public textarea:focus{outline:3px solid rgba(19,114,70,.14);border-color:var(--x2-green-700)}
body.context-public .btn.primary,
body.context-public .search-cta{background:var(--x2-orange);border-color:var(--x2-orange);font-weight:800;min-height:46px;border-radius:13px}
body.context-public .btn.primary:hover,
body.context-public .search-cta:hover{background:var(--x2-orange-hover);transform:translateY(-1px)}

body.context-public .pagehead,
body.context-public .section-head,
body.context-public .results-toolbar{align-items:end;gap:20px}
body.context-public .pagehead h1,
body.context-public .results-toolbar h1{letter-spacing:-.03em}
body.context-public .muted{color:var(--x2-muted)}

body.context-public .hotel-result-list{display:grid;gap:18px}
body.context-public .hotel-result-card{
  display:grid;grid-template-columns:minmax(250px,31%) 1fr minmax(190px,22%);
  background:var(--x2-card);border:1px solid var(--x2-line);border-radius:var(--x2-radius-lg);
  overflow:hidden;box-shadow:var(--x2-shadow);min-height:245px
}
body.context-public .hotel-result-card:hover{box-shadow:var(--x2-shadow-lg);transform:translateY(-2px)}
body.context-public .hotel-image-wrap{display:block;min-height:245px;background:#e7eee9;overflow:hidden}
body.context-public .hotel-image-wrap img{width:100%;height:100%;min-height:245px;max-height:310px;object-fit:cover;display:block}
body.context-public .hotel-result-main{padding:24px 26px;display:flex;flex-direction:column;justify-content:center}
body.context-public .hotel-result-main h2{font-size:clamp(1.35rem,2vw,1.85rem);margin:.3rem 0 .55rem}
body.context-public .hotel-result-main h2 a{color:var(--x2-ink);text-decoration:none}
body.context-public .hotel-result-main .rating-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:.1rem 0 .7rem}
body.context-public .hotel-result-main .hotel-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}
body.context-public .hotel-result-card .hotel-result-price,
body.context-public .hotel-result-card .hotel-price,
body.context-public .hotel-result-card .price-column{
  padding:24px;border-left:1px solid var(--x2-line);display:flex;flex-direction:column;
  justify-content:center;align-items:flex-end;text-align:right;gap:8px
}
body.context-public .hotel-result-card strong.price,
body.context-public .hotel-result-card .hotel-result-price strong,
body.context-public .hotel-result-card .price-column strong{font-size:1.55rem;letter-spacing:-.025em}
body.context-public .badge{border-radius:999px}
body.context-public .empty-state{background:#fff;border:1px dashed #cfdcd4;border-radius:22px;padding:50px 24px;text-align:center}

body.context-public .hotel-detail-hero{
  width:min(var(--x2-max),calc(100% - 36px));margin:26px auto 18px;
  height:clamp(300px,46vw,570px);border-radius:var(--x2-radius-lg);
  overflow:hidden;background:#e9efeb;box-shadow:var(--x2-shadow);cursor:zoom-in
}
body.context-public .hotel-detail-hero img{width:100%;height:100%;object-fit:cover;display:block}
body.context-public .hotel-detail-grid{
  width:min(var(--x2-max),calc(100% - 36px));margin:0 auto 34px;
  display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);gap:26px;align-items:start
}
body.context-public .hotel-detail-grid>div,
body.context-public .hotel-detail-grid>aside{min-width:0}
body.context-public .hotel-detail-grid .card,
body.context-public .hotel-detail-grid .panel{border-radius:var(--x2-radius);box-shadow:var(--x2-shadow);border-color:var(--x2-line)}
body.context-public .hotel-detail-grid h1{font-size:clamp(2rem,4vw,3.25rem);letter-spacing:-.045em;line-height:1.02}
body.context-public .hotel-detail-grid .stars{font-size:1rem}
body.context-public .hotel-detail-grid .hotel-tags,
body.context-public .hotel-detail-grid .amenity-list{display:flex;flex-wrap:wrap;gap:8px}

body.context-public #rooms{width:min(var(--x2-max),calc(100% - 36px));margin:0 auto 50px}
body.context-public #rooms>h2{font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.03em}
body.context-public .room-public-card,
body.context-public .room-card{
  display:grid;grid-template-columns:minmax(210px,30%) 1fr minmax(180px,23%);
  gap:0;background:#fff;border:1px solid var(--x2-line);border-radius:22px;overflow:hidden;
  box-shadow:var(--x2-shadow);margin:16px 0
}
body.context-public .room-public-card>img,
body.context-public .room-card>img,
body.context-public .room-public-card .room-image img,
body.context-public .room-card .room-image img{
  width:100%;height:100%;min-height:230px;max-height:300px;object-fit:cover;display:block;background:#edf2ef
}
body.context-public .room-public-card>div,
body.context-public .room-card>div{padding:22px}
body.context-public .room-public-card .btn,
body.context-public .room-card .btn{align-self:center}

body.context-public .destination-grid{gap:12px}
body.context-public .destination-card{background:#fff;border:1px solid var(--x2-line);border-radius:16px;box-shadow:0 7px 24px rgba(15,48,30,.04)}
body.context-public .trust-strip{border:1px solid var(--x2-line);border-radius:20px;background:#fff;overflow:hidden}

body.context-public .site-footer{background:var(--x2-green-950);color:#fff;margin-top:30px}
body.context-public .site-footer a{color:#fff}

/* La source de données peut contenir des placeholders internes.
   Ils sont neutralisés côté JS, mais ces classes assurent aussi un rendu discret. */
body.context-public .nbs-public-placeholder{display:none!important}

/* Lightbox */
.nbs-x2-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(3,18,10,.94);display:grid;place-items:center;padding:24px}
.nbs-x2-lightbox[hidden]{display:none}
.nbs-x2-lightbox img{max-width:min(94vw,1500px);max-height:88vh;object-fit:contain;border-radius:14px}
.nbs-x2-lightbox button{position:absolute;top:20px;right:20px;width:48px;height:48px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem}
.nbs-x2-room-jump{display:none}

@media(max-width:980px){
  body.context-public .hotel-result-card{grid-template-columns:260px 1fr}
  body.context-public .hotel-result-card .hotel-result-price,
  body.context-public .hotel-result-card .hotel-price,
  body.context-public .hotel-result-card .price-column{
    grid-column:2;border-left:0;border-top:1px solid var(--x2-line);align-items:flex-start;text-align:left
  }
  body.context-public .hotel-detail-grid{grid-template-columns:1fr}
  body.context-public .room-public-card,
  body.context-public .room-card{grid-template-columns:220px 1fr}
}

@media(max-width:700px){
  body.context-public .site-container,
  body.context-public .hotel-detail-grid,
  body.context-public #rooms,
  body.context-public .hotel-detail-hero{width:calc(100% - 22px)}
  body.context-public .section{padding-block:24px}
  body.context-public .market-hero{padding:38px 0 42px}
  body.context-public .hero-copy h1{font-size:clamp(2.2rem,11vw,3.15rem)}
  body.context-public .ota-search,
  body.context-public form[data-search-form]{grid-template-columns:1fr!important;border-radius:18px}
  body.context-public .hotel-result-card{grid-template-columns:1fr;border-radius:20px}
  body.context-public .hotel-image-wrap{min-height:0;aspect-ratio:16/10}
  body.context-public .hotel-image-wrap img{min-height:0;max-height:none;aspect-ratio:16/10}
  body.context-public .hotel-result-main{padding:19px}
  body.context-public .hotel-result-card .hotel-result-price,
  body.context-public .hotel-result-card .hotel-price,
  body.context-public .hotel-result-card .price-column{
    grid-column:auto;border-left:0;border-top:1px solid var(--x2-line);padding:18px 19px;align-items:stretch
  }
  body.context-public .hotel-detail-hero{height:270px;margin-top:16px;border-radius:20px}
  body.context-public .hotel-detail-grid{gap:16px;margin-bottom:24px}
  body.context-public .room-public-card,
  body.context-public .room-card{grid-template-columns:1fr;border-radius:18px}
  body.context-public .room-public-card>img,
  body.context-public .room-card>img,
  body.context-public .room-public-card .room-image img,
  body.context-public .room-card .room-image img{height:220px;min-height:220px;max-height:220px}
  body.context-public .nbs-x2-room-jump{
    display:flex;position:fixed;z-index:85;left:12px;right:12px;bottom:12px;
    min-height:52px;align-items:center;justify-content:center;border-radius:999px;
    background:var(--x2-orange);color:#fff;text-decoration:none;font-weight:850;
    box-shadow:0 14px 38px rgba(0,0,0,.22)
  }
  body.context-public .site-footer{padding-bottom:76px}
}

@media(prefers-reduced-motion:reduce){
  body.context-public *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* ==========================================================
   NIMBASTAY_PHASE20_FINAL_CONSOLIDATED_CSS
   Classes réelles du routeur public canonique.
   ========================================================== */
body.context-public .hotel-public-page{padding-top:24px}
body.context-public .hotel-gallery-hero{
  height:clamp(300px,42vw,560px);
  overflow:hidden;
  border-radius:26px;
  background:#e7eee9;
  box-shadow:0 18px 52px rgba(15,48,30,.12);
  cursor:zoom-in;
  margin-bottom:24px
}
body.context-public .hotel-gallery-hero img{
  width:100%;height:100%;display:block;object-fit:cover;object-position:center;
}
body.context-public .hotel-detail-grid{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);
  gap:28px;align-items:start
}
body.context-public .hotel-detail-main{min-width:0}
body.context-public .hotel-detail-main h1{
  font-size:clamp(2rem,4vw,3.45rem);line-height:1;letter-spacing:-.045em;margin:.25rem 0 .8rem
}
body.context-public .hotel-description{font-size:1.05rem;line-height:1.75;max-width:78ch}
body.context-public .stay-card{
  position:sticky;top:92px;border:1px solid #dde6e0;border-radius:20px;
  box-shadow:0 14px 40px rgba(15,48,30,.08);padding:22px;background:#fff
}
body.context-public .stay-card form{display:grid;gap:10px}
body.context-public .stay-card .grid{gap:8px}
body.context-public .hotel-practical{margin-top:26px}
body.context-public .info-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px
}
body.context-public .info-grid>div{
  background:#f4f8f5;border:1px solid #e0e8e3;border-radius:14px;padding:14px
}
body.context-public .info-grid small{display:block;color:#65746c;margin-bottom:4px}
body.context-public .hotel-rooms-section{margin-top:34px}
body.context-public .room-list{display:grid;gap:16px}
body.context-public .room-offer{
  display:grid;grid-template-columns:minmax(220px,30%) minmax(0,1fr) minmax(190px,23%);
  overflow:hidden;background:#fff;border:1px solid #dde6e0;border-radius:22px;
  box-shadow:0 12px 34px rgba(15,48,30,.07);min-height:230px
}
body.context-public .room-offer-media{overflow:hidden;background:#e7eee9}
body.context-public .room-offer-media img{
  width:100%;height:100%;min-height:230px;display:block;object-fit:cover;object-position:center;cursor:zoom-in
}
body.context-public .room-info{padding:22px;display:flex;flex-direction:column;justify-content:center;min-width:0}
body.context-public .room-info h3{font-size:1.35rem;margin:0 0 .55rem}
body.context-public .room-price{
  padding:22px;border-left:1px solid #dde6e0;display:flex;flex-direction:column;
  justify-content:center;align-items:flex-end;text-align:right;gap:8px
}
body.context-public .room-price strong{font-size:1.5rem;letter-spacing:-.025em}
body.context-public .room-price .btn{margin-top:6px}
body.context-public .map-section{margin-top:34px}
body.context-public .map-section iframe{
  width:100%;height:min(420px,60vh);border:0;border-radius:20px;background:#edf2ef
}
body.context-public .nbs-p20-room-jump{display:none}

.nbs-p20-lightbox{
  position:fixed;inset:0;z-index:10000;background:rgba(3,18,10,.95);
  display:grid;place-items:center;padding:24px
}
.nbs-p20-lightbox[hidden]{display:none}
.nbs-p20-lightbox img{max-width:94vw;max-height:88vh;object-fit:contain;border-radius:14px}
.nbs-p20-lightbox button{
  position:absolute;top:18px;right:18px;width:48px;height:48px;border-radius:999px;
  border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;font-size:1.6rem
}

@media(max-width:920px){
  body.context-public .hotel-detail-grid{grid-template-columns:1fr}
  body.context-public .stay-card{position:static}
  body.context-public .room-offer{grid-template-columns:220px 1fr}
  body.context-public .room-price{
    grid-column:2;border-left:0;border-top:1px solid #dde6e0;align-items:flex-start;text-align:left
  }
}
@media(max-width:700px){
  body.context-public .hotel-public-page{padding-top:12px}
  body.context-public .hotel-gallery-hero{height:260px;border-radius:18px;margin-bottom:18px}
  body.context-public .hotel-detail-grid{gap:16px}
  body.context-public .info-grid{grid-template-columns:1fr}
  body.context-public .room-offer{grid-template-columns:1fr;border-radius:18px}
  body.context-public .room-offer-media{height:220px}
  body.context-public .room-offer-media img{height:220px;min-height:220px}
  body.context-public .room-info{padding:18px}
  body.context-public .room-price{
    grid-column:auto;border-left:0;border-top:1px solid #dde6e0;padding:18px;align-items:stretch;text-align:left
  }
  body.context-public .nbs-p20-room-jump{
    display:flex;position:fixed;z-index:86;left:12px;right:12px;bottom:12px;
    min-height:52px;align-items:center;justify-content:center;border-radius:999px;
    background:#f36b2c;color:#fff;text-decoration:none;font-weight:850;
    box-shadow:0 14px 38px rgba(0,0,0,.22)
  }
}


/* NIMBASTAY_EXPERIENCE_2_PHASE22_TRAVELER_ACCOUNT_CSS */
body.context-account:has(.traveler-app-v22){background:#f5f8f6;color:#13251b}
.traveler-app-v22{min-height:100vh;background:#f5f8f6}
.traveler-sidebar{background:#083b25;border-right:0;color:#fff;width:260px;padding:22px 16px}
.traveler-sidebar .workspace-logo{display:block;padding:4px 10px 20px}
.traveler-sidebar .workspace-logo img{max-height:52px;width:auto;filter:brightness(0) invert(1)}
.traveler-side-identity{display:flex;gap:11px;align-items:center;padding:13px;border-radius:16px;background:rgba(255,255,255,.08);margin-bottom:16px}
.traveler-side-identity .avatar,.traveler-top-identity .avatar{display:grid;place-items:center;width:42px;height:42px;border-radius:999px;background:#fff;color:#0a5b36;font-weight:900}
.traveler-side-identity div,.traveler-top-identity div{display:grid;min-width:0}
.traveler-side-identity small{color:rgba(255,255,255,.7);overflow:hidden;text-overflow:ellipsis}
.traveler-side-nav{display:grid;gap:4px}
.traveler-side-nav .workspace-link{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:8px;padding:11px 12px;border-radius:13px;color:rgba(255,255,255,.82);text-decoration:none;font-weight:750}
.traveler-side-nav .workspace-link:hover,.traveler-side-nav .workspace-link.active{background:#fff;color:#083b25}
.traveler-nav-icon{font-size:1rem;text-align:center}
.traveler-nav-badge{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#f36b2c;color:#fff;font-size:.72rem}
.traveler-side-bottom{margin-top:auto;padding:18px 10px 4px;display:grid;gap:10px}
.traveler-side-bottom a,.traveler-side-bottom button{background:none;border:0;color:rgba(255,255,255,.78);padding:0;text-align:left;text-decoration:none;font:inherit;cursor:pointer}
.traveler-content{padding-bottom:30px}
.traveler-topbar{min-height:72px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);border-bottom:1px solid #e1e8e3;position:sticky;top:0;z-index:45}
.traveler-mobile-logo{display:none}
.traveler-top-identity{display:flex;gap:9px;align-items:center}
.traveler-top-identity small{color:#708078}
.traveler-app-v22 .workspace-page{max-width:1180px;margin:0 auto;padding:30px 28px 50px}
.traveler-app-v22 .pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:22px}
.traveler-app-v22 .pagehead h1{font-size:clamp(2rem,3.5vw,3.1rem);line-height:1;letter-spacing:-.04em;margin:.3rem 0 .6rem}
.traveler-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:12px;margin-bottom:20px}
.traveler-metrics a{display:grid;gap:3px;background:#fff;border:1px solid #dfe7e2;border-radius:18px;padding:18px;text-decoration:none;color:#173023;box-shadow:0 8px 26px rgba(15,48,30,.045)}
.traveler-metrics strong{font-size:1.65rem;letter-spacing:-.03em}.traveler-metrics span{color:#718077;font-size:.85rem}
.traveler-next{display:grid;grid-template-columns:1fr minmax(260px,38%);overflow:hidden;border-radius:24px;background:linear-gradient(135deg,#083b25,#0a6a3e);color:#fff;box-shadow:0 18px 48px rgba(8,59,37,.18);margin-bottom:28px}
.traveler-next>div{padding:30px;align-self:center}.traveler-next h2{font-size:clamp(1.65rem,3vw,2.45rem);letter-spacing:-.03em;margin:.35rem 0 .7rem}.traveler-next p{color:rgba(255,255,255,.83)}.traveler-next img{width:100%;height:100%;min-height:250px;object-fit:cover}.traveler-next-empty{grid-template-columns:1fr}
.traveler-section{margin-top:28px}.traveler-section .section-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:14px}.traveler-section .section-head h2{margin:0 0 4px}.traveler-section .section-head>a{font-weight:800;color:#0a5b36;text-decoration:none}
.traveler-booking-list{display:grid;gap:14px}
.traveler-booking-card{display:grid;grid-template-columns:220px minmax(0,1fr) minmax(210px,25%);background:#fff;border:1px solid #dfe7e2;border-radius:22px;overflow:hidden;box-shadow:0 10px 32px rgba(15,48,30,.055)}
.traveler-booking-photo{display:block;background:#e7eee9;overflow:hidden}.traveler-booking-photo img{width:100%;height:100%;min-height:225px;object-fit:cover;display:block}
.traveler-booking-main{padding:20px 22px;min-width:0}.traveler-booking-main h2{font-size:1.35rem;margin:.45rem 0 .25rem}.traveler-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.traveler-card-top small{color:#728078}
.traveler-trip-facts{display:grid;grid-template-columns:auto 22px auto;align-items:center;justify-content:start;gap:7px;margin:14px 0}.traveler-trip-facts span{display:grid}.traveler-trip-facts small{color:#76857d}.traveler-trip-facts>span:nth-child(2){display:block;color:#9aaba1}
.traveler-pref-chips{display:flex;flex-wrap:wrap;gap:6px}.traveler-pref-chips span,.traveler-doc-mask{display:inline-flex;background:#f0f6f2;border:1px solid #dce8e0;border-radius:999px;padding:5px 8px;color:#466052;font-size:.78rem}.traveler-doc-mask{margin-top:7px}
.traveler-booking-side{border-left:1px solid #e4ebe6;padding:20px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;text-align:right;gap:8px}.traveler-total{font-size:1.45rem;letter-spacing:-.025em}.traveler-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:7px;margin-top:7px}.traveler-actions form{margin:0}
.traveler-tabs{display:flex;gap:6px;overflow:auto;padding-bottom:3px;margin:0 0 18px}.traveler-tabs a{white-space:nowrap;text-decoration:none;color:#52665b;background:#fff;border:1px solid #dce5df;padding:9px 13px;border-radius:999px;font-weight:800}.traveler-tabs a.active{background:#083b25;color:#fff;border-color:#083b25}
.traveler-trust-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.traveler-trust-row>div{background:#fff;border:1px solid #dfe7e2;border-radius:16px;padding:15px;display:grid;gap:4px}.traveler-trust-row span{font-size:.82rem;color:#6b7b72}
.traveler-favorite-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.traveler-favorite-card{background:#fff;border:1px solid #dfe7e2;border-radius:20px;overflow:hidden;box-shadow:0 9px 28px rgba(15,48,30,.05)}.traveler-favorite-photo{display:block;aspect-ratio:4/3;overflow:hidden;background:#e8efea}.traveler-favorite-photo img{width:100%;height:100%;object-fit:cover}.traveler-favorite-body{padding:18px}.traveler-favorite-body h2{font-size:1.25rem;margin:.4rem 0 .55rem}
.traveler-profile-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,34%);gap:20px;align-items:start}.traveler-profile-form{display:grid;gap:18px}.traveler-profile-form h2{font-size:1.15rem;margin:6px 0 -4px;padding-top:14px;border-top:1px solid #e7ece9}.traveler-profile-form h2:first-of-type{border-top:0;padding-top:0}.traveler-profile-form input,.traveler-profile-form select{min-height:48px}.traveler-profile-grid aside{display:grid;gap:14px}.traveler-privacy-card{background:#f0f7f2!important;border-color:#d6e7dc!important}.traveler-completeness{display:grid;text-align:right}.traveler-completeness strong{font-size:1.65rem;color:#0a5b36}.traveler-completeness span{color:#6f7f76;font-size:.8rem}
.traveler-review-form{max-width:760px;display:grid;gap:18px}.traveler-review-form fieldset{border:0;padding:0;margin:0}.traveler-review-form legend{font-weight:850;margin-bottom:8px}.traveler-rating{display:flex;flex-wrap:wrap;gap:8px}.traveler-rating input{position:absolute;opacity:0}.traveler-rating span{display:block;padding:10px 14px;border:1px solid #dce5df;border-radius:999px;cursor:pointer}.traveler-rating input:checked+span{background:#083b25;color:#fff;border-color:#083b25}.traveler-review-form textarea{min-height:150px}
.traveler-mobile-bottom{display:none}
@media(max-width:1050px){.traveler-booking-card{grid-template-columns:190px 1fr}.traveler-booking-side{grid-column:2;border-left:0;border-top:1px solid #e4ebe6;align-items:flex-start;text-align:left}.traveler-actions{justify-content:flex-start}.traveler-favorite-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.traveler-sidebar{display:none}.traveler-top-identity{display:none}.traveler-mobile-logo{display:block}.traveler-mobile-logo img{height:42px;width:auto}.traveler-content{width:100%;padding-bottom:82px}.traveler-app-v22 .workspace-page{padding:22px 16px 38px}.traveler-metrics{grid-template-columns:1fr 1fr}.traveler-next{grid-template-columns:1fr}.traveler-next img{max-height:240px}.traveler-profile-grid{grid-template-columns:1fr}.traveler-mobile-bottom{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;z-index:90;left:8px;right:8px;bottom:8px;padding:7px;background:rgba(255,255,255,.96);border:1px solid #dce5df;border-radius:20px;box-shadow:0 18px 48px rgba(0,0,0,.16);backdrop-filter:blur(14px)}.traveler-mobile-bottom a{display:grid;place-items:center;gap:2px;color:#68786f;text-decoration:none;padding:6px 3px;border-radius:13px}.traveler-mobile-bottom a.active{background:#edf6f0;color:#083b25}.traveler-mobile-bottom span{font-size:1.05rem}.traveler-mobile-bottom small{font-size:.67rem;white-space:nowrap}}
@media(max-width:620px){.traveler-app-v22 .pagehead{align-items:flex-start;flex-direction:column}.traveler-app-v22 .pagehead>.btn{width:100%}.traveler-booking-card{grid-template-columns:1fr}.traveler-booking-photo{aspect-ratio:16/9}.traveler-booking-photo img{min-height:0}.traveler-booking-side{grid-column:auto;border-top:1px solid #e4ebe6}.traveler-favorite-grid{grid-template-columns:1fr}.traveler-trust-row{grid-template-columns:1fr}.traveler-metrics a{padding:14px}.traveler-next>div{padding:22px}.traveler-profile-form .grid-2{grid-template-columns:1fr!important}.traveler-completeness{text-align:left}}


/* NIMBASTAY_EXPERIENCE_2_PHASE23_HOTEL_EXTRANET_CSS */
body.context-hotel{background:#f4f7f5;color:#14251d}
.hotel-v23-app{min-height:100vh;background:#f4f7f5}
.hotel-v23-side{width:260px;background:#073b24;color:#fff;border-right:0;padding:20px 15px}
.hotel-v23-side .workspace-logo{display:block;padding:4px 10px 18px}.hotel-v23-side .workspace-logo img{max-height:50px;width:auto;filter:brightness(0) invert(1)}
.hotel-v23-side .workspace-title{display:grid;gap:3px;margin:0 7px 15px;padding:13px;background:rgba(255,255,255,.08);border-radius:15px}.hotel-v23-side .workspace-title strong{font-size:.95rem}.hotel-v23-side .workspace-title small{color:rgba(255,255,255,.68)}
.hotel-v23-side-nav{display:grid;gap:3px}.hotel-v23-nav-link{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:center;padding:10px 11px;border-radius:12px;color:rgba(255,255,255,.82);text-decoration:none;font-weight:750;font-size:.88rem}.hotel-v23-nav-link:hover,.hotel-v23-nav-link.active{background:#fff;color:#073b24}.hotel-v23-nav-icon{text-align:center;font-size:1rem}
.hotel-v23-side .workspace-back{margin-top:auto;color:rgba(255,255,255,.72);padding:16px 10px 5px}
.hotel-v23-content{padding-bottom:36px}
.hotel-v23-topbar{min-height:72px;background:rgba(255,255,255,.95);border-bottom:1px solid #dfe6e1;backdrop-filter:blur(14px);position:sticky;top:0;z-index:60;display:grid;grid-template-columns:minmax(180px,1fr) minmax(250px,420px) auto;gap:15px;align-items:center}
.hotel-v23-property{display:grid;min-width:0}.hotel-v23-property strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hotel-v23-property small{color:#6a7a71;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.78rem}
.hotel-v23-quick-search{display:grid;grid-template-columns:1fr auto;border:1px solid #d8e2dc;border-radius:999px;background:#f7f9f8;overflow:hidden}.hotel-v23-quick-search input{border:0;background:transparent;min-height:42px;padding:0 14px;outline:0}.hotel-v23-quick-search button{border:0;background:#0a5b36;color:#fff;padding:0 16px;font-weight:800}
.hotel-v23-switcher{position:relative}.hotel-v23-switcher summary{cursor:pointer;font-weight:750;list-style:none}.hotel-v23-switcher>div{position:absolute;right:0;top:calc(100% + 10px);width:260px;padding:7px;background:#fff;border:1px solid #dce5df;border-radius:15px;box-shadow:0 18px 48px rgba(20,45,30,.16);z-index:80}.hotel-v23-switcher a{display:grid;gap:2px;padding:9px;border-radius:10px;text-decoration:none;color:#173025}.hotel-v23-switcher a.active,.hotel-v23-switcher a:hover{background:#edf5f0}.hotel-v23-switcher small{color:#728078}
.hotel-v23-context-strip{max-width:1220px;margin:12px auto 0;padding:0 24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hotel-v23-context-strip a{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #dfe7e2;border-radius:14px;padding:10px 12px;text-decoration:none;color:#193226;min-width:0}.hotel-v23-context-strip strong{font-size:1.2rem}.hotel-v23-context-strip span{font-size:.76rem;color:#6c7d73}
.hotel-v23-app .workspace-page{max-width:1220px;margin:0 auto;padding:26px 24px 50px}.hotel-v23-app .pagehead{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:20px}.hotel-v23-app .pagehead h1{font-size:clamp(2rem,3.5vw,3.1rem);line-height:1;letter-spacing:-.04em;margin:.3rem 0 .5rem}
.hotel-v23-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:22px}.hotel-v23-metrics a{display:grid;gap:2px;background:#fff;border:1px solid #dce5df;border-radius:18px;padding:16px;text-decoration:none;color:#173025;box-shadow:0 7px 24px rgba(13,49,29,.045)}.hotel-v23-metrics span{font-size:.8rem;color:#65756c}.hotel-v23-metrics strong{font-size:1.75rem;letter-spacing:-.035em}.hotel-v23-metrics small{color:#88958e}
.hotel-v23-quick{margin:20px 0 26px}.hotel-v23-quick h2{font-size:1rem;margin-bottom:10px}.hotel-v23-quick>div{display:flex;gap:8px;flex-wrap:wrap}.hotel-v23-quick a{display:flex;align-items:center;gap:8px;border:1px solid #dce5df;background:#fff;color:#183426;border-radius:999px;padding:9px 13px;text-decoration:none}.hotel-v23-quick a span{font-size:1.05rem}.hotel-v23-quick a:hover{border-color:#0a5b36;background:#edf7f1}
.hotel-v23-alerts{margin:24px 0}.hotel-v23-alert{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px;border-radius:14px;text-decoration:none;margin:8px 0}.hotel-v23-alert>div{display:grid;gap:2px}.hotel-v23-alert span{font-size:.84rem}.hotel-v23-alert.warning{background:#fff8e7;border:1px solid #f3dda3;color:#684f13}.hotel-v23-alert.danger{background:#fff0ef;border:1px solid #f0c8c4;color:#7d251f}.hotel-v23-alert.info{background:#edf7f1;border:1px solid #cee5d6;color:#155b35}
.hotel-v23-next .section-head{display:flex;justify-content:space-between;align-items:end;gap:14px;margin-bottom:12px}.hotel-v23-next .section-head h2{margin:0 0 3px}.hotel-v23-next .section-head>a{font-weight:800;color:#0a5b36;text-decoration:none}
.hotel-v23-arrival-list{display:grid;gap:9px}.hotel-v23-arrival-card{display:grid;grid-template-columns:145px minmax(0,1fr) auto;gap:16px;align-items:center;background:#fff;border:1px solid #dce5df;border-radius:17px;padding:14px 16px}.hotel-v23-time{display:grid}.hotel-v23-time span{font-size:.78rem;color:#718178}.hotel-v23-arrival-main h3{margin:0 0 3px;font-size:1rem}.hotel-v23-arrival-main p{margin:0 0 5px;color:#66766d;font-size:.84rem}.hotel-v23-arrival-actions{display:flex;gap:6px}.hotel-v23-ok,.hotel-v23-soft,.hotel-v23-chip{display:inline-flex;border-radius:999px;padding:4px 7px;font-size:.72rem}.hotel-v23-ok{background:#e9f8ef;color:#0a6a3c}.hotel-v23-soft,.hotel-v23-chip{background:#f0f4f1;color:#52665b}
.hotel-v23-filterbar{display:grid;grid-template-columns:minmax(300px,1fr) 170px 180px auto;gap:8px;align-items:center;margin-bottom:15px}.hotel-v23-search-wide{display:grid;grid-template-columns:1fr auto;border:1px solid #d8e2dc;border-radius:14px;background:#fff;overflow:hidden}.hotel-v23-search-wide input{border:0;min-height:46px;padding:0 13px;outline:0}.hotel-v23-filterbar select{min-height:46px}.hotel-v23-unpaid{display:flex!important;align-items:center;gap:6px;white-space:nowrap;background:#fff;border:1px solid #d8e2dc;border-radius:14px;min-height:46px;padding:0 12px}.hotel-v23-unpaid input{width:18px!important;min-height:18px!important}
.hotel-v23-booking-list{display:grid;gap:10px}.hotel-v23-booking-card{display:grid;grid-template-columns:minmax(0,1fr) 235px;background:#fff;border:1px solid #dce5df;border-radius:19px;overflow:hidden;box-shadow:0 8px 25px rgba(15,48,30,.04)}.hotel-v23-booking-main{padding:17px 19px;min-width:0}.hotel-v23-booking-top{display:flex;justify-content:space-between;align-items:center;gap:10px}.hotel-v23-booking-top small{color:#718078}.hotel-v23-booking-main h2{font-size:1.2rem;margin:.45rem 0 .25rem}.hotel-v23-stayline{display:flex;align-items:center;gap:12px;margin:12px 0}.hotel-v23-stayline span{display:grid}.hotel-v23-stayline small{color:#738178;font-size:.72rem}.hotel-v23-stayline b{color:#a0aea6}.hotel-v23-chips{display:flex;flex-wrap:wrap;gap:5px}
.hotel-v23-booking-side{padding:17px 19px;border-left:1px solid #e2e9e4;display:flex;flex-direction:column;justify-content:center;align-items:flex-end;text-align:right;gap:7px}.hotel-v23-booking-side>strong{font-size:1.28rem}.hotel-v23-payment{font-size:.78rem;color:#62736a}.hotel-v23-card-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.hotel-v23-mobile-bottom{display:none}
.hotel-v23-app .card,.hotel-v23-app .wizard-card,.hotel-v23-app .scanner-panel,.hotel-v23-app .bulk-inventory{border-radius:18px;border-color:#dce5df;box-shadow:0 8px 28px rgba(15,48,30,.045)}
.hotel-v23-app .filterbar{background:#fff;border:1px solid #dce5df;border-radius:16px;padding:10px}
.hotel-v23-app .tablewrap{border:1px solid #dce5df;border-radius:17px;background:#fff}
.hotel-v23-app table th{background:#f3f7f4;color:#4c6256}
.hotel-v23-app .operation-card{border-radius:16px;border:1px solid #dce5df;background:#fff}
.hotel-v23-app .fast-checkin-form,.hotel-v23-app .qr-fast-checkin{border-radius:16px}
.hotel-v23-app .scanner-panel{max-width:780px;margin-inline:auto}.hotel-v23-app .camera-box{border-radius:20px;overflow:hidden}
.hotel-v23-app .inventory-table{overflow-x:auto}.hotel-v23-app .inventory-table table{min-width:800px}
.hotel-v23-app .form-section{background:#fff;border:1px solid #e0e7e2;border-radius:16px;padding:18px;margin:12px 0}
.hotel-v23-app .sticky-actions{background:rgba(244,247,245,.94);backdrop-filter:blur(12px);border-top:1px solid #dce5df;padding:10px;bottom:0}
@media(max-width:1080px){.hotel-v23-metrics{grid-template-columns:repeat(3,1fr)}.hotel-v23-filterbar{grid-template-columns:1fr 1fr}.hotel-v23-search-wide{grid-column:1/-1}.hotel-v23-context-strip{grid-template-columns:repeat(2,1fr)}}
@media(max-width:860px){
 .hotel-v23-side{display:none}.hotel-v23-content{width:100%;padding-bottom:82px}.hotel-v23-topbar{grid-template-columns:1fr auto;padding-inline:14px}.hotel-v23-property small{display:none}.hotel-v23-quick-search{display:none}.hotel-v23-switcher{display:none}
 .hotel-v23-context-strip{padding:0 14px;margin-top:10px}.hotel-v23-app .workspace-page{padding:20px 14px 38px}
 .hotel-v23-mobile-bottom{display:flex;position:fixed;z-index:95;left:8px;right:8px;bottom:8px;min-height:64px;background:rgba(255,255,255,.97);border:1px solid #dce5df;border-radius:20px;box-shadow:0 18px 48px rgba(0,0,0,.16);backdrop-filter:blur(14px);padding:6px;justify-content:space-around}
 .hotel-v23-mobile-bottom>a,.hotel-v23-mobile-more>summary{display:grid;place-items:center;gap:2px;min-width:62px;padding:6px;color:#66776d;text-decoration:none;border-radius:13px;list-style:none}.hotel-v23-mobile-bottom>a.active{background:#edf6f0;color:#073b24}.hotel-v23-mobile-bottom small{font-size:.66rem}.hotel-v23-mobile-more{position:relative}.hotel-v23-mobile-more>div{position:absolute;right:0;bottom:calc(100% + 12px);width:245px;padding:8px;background:#fff;border:1px solid #dce5df;border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.18)}.hotel-v23-mobile-more .hotel-v23-nav-link{color:#173025}
 .hotel-v23-booking-card{grid-template-columns:1fr}.hotel-v23-booking-side{border-left:0;border-top:1px solid #e2e9e4;align-items:flex-start;text-align:left}.hotel-v23-card-actions{justify-content:flex-start}
}
@media(max-width:620px){
 .hotel-v23-context-strip{display:flex;overflow-x:auto}.hotel-v23-context-strip a{min-width:150px}
 .hotel-v23-app .pagehead{align-items:flex-start;flex-direction:column}.hotel-v23-app .pagehead>.btn{width:100%}
 .hotel-v23-metrics{grid-template-columns:1fr 1fr}.hotel-v23-metrics a{padding:13px}.hotel-v23-metrics strong{font-size:1.5rem}
 .hotel-v23-arrival-card{grid-template-columns:1fr}.hotel-v23-arrival-actions{justify-content:flex-start}
 .hotel-v23-filterbar{grid-template-columns:1fr}.hotel-v23-search-wide{grid-column:auto}.hotel-v23-filterbar select,.hotel-v23-unpaid{width:100%}
 .hotel-v23-stayline{flex-wrap:wrap}.hotel-v23-card-actions .btn{flex:1}
 .hotel-v23-app input,.hotel-v23-app select,.hotel-v23-app textarea{font-size:16px}
}


/* NIMBASTAY_EXPERIENCE_2_PHASE24_ADMIN_CSS */
body.context-admin{background:#f4f7f5;color:#14251d}
.admin-v24-app{min-height:100vh;background:#f4f7f5}
.admin-v24-side{width:266px;background:#092f20;color:#fff;border-right:0;padding:18px 14px}
.admin-v24-side .workspace-logo{display:block;padding:4px 10px 15px}.admin-v24-side .workspace-logo img{max-height:48px;width:auto;filter:brightness(0) invert(1)}
.admin-v24-side-title{display:grid;gap:2px;margin:0 7px 13px;padding:12px;background:rgba(255,255,255,.075);border-radius:14px}.admin-v24-side-title small{color:rgba(255,255,255,.65)}
.admin-v24-side nav{display:grid;gap:10px;overflow:auto;padding-right:2px}.admin-v24-nav-group{display:grid;gap:2px}.admin-v24-nav-group>small{text-transform:uppercase;letter-spacing:.08em;font-size:.62rem;color:rgba(255,255,255,.46);padding:6px 10px 3px}
.admin-v24-nav-link{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:center;padding:9px 10px;border-radius:11px;color:rgba(255,255,255,.8);text-decoration:none}.admin-v24-nav-link b{font-size:.83rem}.admin-v24-nav-link:hover,.admin-v24-nav-link.active{background:#fff;color:#092f20}
.admin-v24-side .workspace-back{margin-top:auto;color:rgba(255,255,255,.7);padding:14px 10px 4px}
.admin-v24-content{padding-bottom:36px}
.admin-v24-topbar{min-height:72px;background:rgba(255,255,255,.95);backdrop-filter:blur(14px);border-bottom:1px solid #dfe6e1;position:sticky;top:0;z-index:60;display:grid;grid-template-columns:minmax(280px,620px) auto;gap:16px;align-items:center}
.admin-v24-search{display:grid;grid-template-columns:auto 1fr auto;align-items:center;border:1px solid #d8e1db;background:#f7f9f8;border-radius:999px;overflow:hidden;padding-left:13px}.admin-v24-search span{color:#74847a}.admin-v24-search input{border:0;background:transparent;min-height:42px;padding:0 9px;outline:0}.admin-v24-search button{border:0;background:#0a5b36;color:#fff;align-self:stretch;padding:0 17px;font-weight:800}
.admin-v24-app .workspace-page{max-width:1240px;margin:0 auto;padding:28px 24px 52px}.admin-v24-app .pagehead{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:20px}.admin-v24-app .pagehead h1{font-size:clamp(2rem,3.5vw,3.1rem);line-height:1;letter-spacing:-.045em;margin:.3rem 0 .5rem}
.admin-v24-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:25px}.admin-v24-metrics a{display:grid;gap:3px;background:#fff;border:1px solid #dce5df;border-radius:18px;padding:16px;text-decoration:none;color:#173025;box-shadow:0 7px 24px rgba(13,49,29,.04)}.admin-v24-metrics span{font-size:.77rem;color:#65756c}.admin-v24-metrics strong{font-size:1.75rem;letter-spacing:-.04em}.admin-v24-metrics small{color:#8a9690;font-size:.7rem}
.admin-v24-priority{margin:25px 0}.admin-v24-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.admin-v24-action{display:grid;grid-template-columns:38px 1fr auto;gap:10px;align-items:center;background:#fff;border:1px solid #dce5df;border-radius:16px;padding:13px;text-decoration:none;color:#173025}.admin-v24-action-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;background:#edf5f0}.admin-v24-action div{display:grid}.admin-v24-action div small{color:#627269}.admin-v24-action div strong{font-size:1.25rem}.admin-v24-action b{font-size:.76rem;color:#0a5b36}.admin-v24-action.urgent{border-color:#efc1bd;background:#fff7f6}.admin-v24-action.urgent .admin-v24-action-icon{background:#fee9e7;color:#9e2b21}.admin-v24-action.important{border-color:#ead9a8;background:#fffaf0}.admin-v24-clear{display:flex;gap:11px;align-items:center;background:#edf8f1;border:1px solid #cae7d4;border-radius:16px;padding:15px}.admin-v24-clear>span{display:grid;place-items:center;width:38px;height:38px;border-radius:999px;background:#0a6a3d;color:#fff}.admin-v24-clear>div{display:grid}.admin-v24-clear small{color:#687970}
.admin-v24-two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:20px 0}.admin-v24-two-col .card{border-radius:19px;border-color:#dce5df}.admin-v24-two-col .section-head{display:flex;justify-content:space-between;align-items:end;gap:10px}.admin-v24-two-col .section-head h2{margin:0 0 3px}.admin-v24-two-col .section-head>a{font-weight:800;color:#0a5b36;text-decoration:none}
.admin-v24-queue{display:grid;margin-top:10px}.admin-v24-queue-row,.admin-v24-res-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:11px 2px;border-top:1px solid #e8edea;text-decoration:none;color:#183125}.admin-v24-queue-row:first-child,.admin-v24-res-row:first-child{border-top:0}.admin-v24-queue-row>div,.admin-v24-res-row>div:first-child{display:grid}.admin-v24-queue-row small,.admin-v24-res-row small{color:#718077}.admin-v24-queue-row>span{font-size:.78rem;font-weight:800;color:#0a5b36}.admin-v24-res-row>div:last-child{display:flex;align-items:center;gap:7px;text-align:right}
.admin-v24-health{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.admin-v24-health a{display:flex;gap:10px;align-items:center;background:#fff;border:1px solid #dce5df;border-radius:15px;padding:13px;text-decoration:none;color:#183125}.admin-v24-health a>span{font-size:1.15rem}.admin-v24-health a>div{display:grid}.admin-v24-health small{color:#6b7a71}.admin-v24-health .warn{border-color:#efc9ad;background:#fff8f1}.admin-v24-health .ok{border-color:#cfe4d6;background:#f2faf5}
.admin-v24-search-results{background:#fff;border:1px solid #dce5df;border-radius:19px;padding:18px;margin-bottom:18px}.admin-v24-search-results section{margin-top:13px}.admin-v24-search-results section h3{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:#738279}.admin-v24-search-results section a{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-top:1px solid #edf1ee;text-decoration:none;color:#173025}.admin-v24-search-results section a span{display:grid}.admin-v24-search-results section a small{color:#6f7e76}
.admin-v24-filterbar{display:grid;grid-template-columns:minmax(320px,1fr) 190px 190px;gap:8px;margin-bottom:15px}.admin-v24-filterbar>div{display:grid;grid-template-columns:1fr auto;border:1px solid #d8e1db;border-radius:14px;background:#fff;overflow:hidden}.admin-v24-filterbar input{border:0;padding:0 13px;outline:0}.admin-v24-filterbar select{min-height:46px}
.admin-v24-booking-list{display:grid;gap:9px}.admin-v24-booking-card{display:grid;grid-template-columns:minmax(0,1fr) 220px;background:#fff;border:1px solid #dce5df;border-radius:18px;overflow:hidden}.admin-v24-booking-card>div:first-child{padding:16px 18px}.admin-v24-booking-top{display:flex;align-items:center;justify-content:space-between;gap:9px}.admin-v24-booking-card h2{font-size:1.08rem;margin:.5rem 0 .2rem}.admin-v24-booking-card p{margin:.2rem 0;color:#607168}.admin-v24-booking-card small{color:#7b8982}.admin-v24-booking-side{padding:16px 18px;border-left:1px solid #e3e9e5;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:6px;text-align:right}.admin-v24-booking-side>strong{font-size:1.2rem}
.admin-v24-app .card,.admin-v24-app .panel{border-radius:18px;border-color:#dce5df;box-shadow:0 8px 28px rgba(15,48,30,.04)}
.admin-v24-app .tablewrap{border:1px solid #dce5df;border-radius:17px;background:#fff;overflow:auto}.admin-v24-app table{min-width:720px}.admin-v24-app table th{background:#f2f6f3;color:#4d6257;position:sticky;top:0}.admin-v24-app .verification-flow,.admin-v24-app .admin-flow{border-radius:16px}
.admin-v24-app .editor-layout{gap:16px}.admin-v24-app .editor-layout .card{border-radius:18px}.admin-v24-app .form-section{background:#fff;border:1px solid #dce5df;border-radius:16px;padding:17px}
.admin-v24-app .quick-actions{display:flex;gap:7px;flex-wrap:wrap}.admin-v24-app .search-admin-row{border-radius:12px}
.admin-v24-mobile-bottom{display:none}
@media(max-width:1120px){.admin-v24-metrics{grid-template-columns:repeat(3,1fr)}.admin-v24-action-grid{grid-template-columns:1fr 1fr}}
@media(max-width:880px){
 .admin-v24-side{display:none}.admin-v24-content{width:100%;padding-bottom:82px}.admin-v24-topbar{padding-inline:14px;grid-template-columns:1fr auto}.admin-v24-topbar .notification-menu{display:none}
 .admin-v24-app .workspace-page{padding:21px 14px 40px}.admin-v24-two-col{grid-template-columns:1fr}
 .admin-v24-mobile-bottom{display:flex;position:fixed;left:8px;right:8px;bottom:8px;z-index:95;min-height:64px;padding:6px;background:rgba(255,255,255,.97);border:1px solid #dce5df;border-radius:20px;box-shadow:0 18px 48px rgba(0,0,0,.16);backdrop-filter:blur(14px);justify-content:space-around}
 .admin-v24-mobile-bottom>a,.admin-v24-mobile-more>summary{display:grid;place-items:center;gap:2px;min-width:60px;padding:6px;border-radius:13px;text-decoration:none;color:#67776e;list-style:none}.admin-v24-mobile-bottom>a.active{background:#edf5f0;color:#092f20}.admin-v24-mobile-bottom small{font-size:.65rem}
 .admin-v24-mobile-more{position:relative}.admin-v24-mobile-more>div{position:absolute;right:0;bottom:calc(100% + 11px);width:245px;max-height:65vh;overflow:auto;padding:8px;background:#fff;border:1px solid #dce5df;border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.18)}.admin-v24-mobile-more .admin-v24-nav-link{color:#173025}
 .admin-v24-filterbar{grid-template-columns:1fr 1fr}.admin-v24-filterbar>div{grid-column:1/-1}
}
@media(max-width:620px){
 .admin-v24-app .pagehead{align-items:flex-start;flex-direction:column}.admin-v24-app .pagehead>.btn{width:100%}
 .admin-v24-topbar{grid-template-columns:1fr}.admin-v24-topbar .topbar-actions{display:none}.admin-v24-search{width:100%}
 .admin-v24-metrics{grid-template-columns:1fr 1fr}.admin-v24-metrics a{padding:13px}.admin-v24-metrics strong{font-size:1.5rem}
 .admin-v24-action-grid{grid-template-columns:1fr}.admin-v24-health{grid-template-columns:1fr}
 .admin-v24-filterbar{grid-template-columns:1fr}.admin-v24-filterbar>div{grid-column:auto}
 .admin-v24-booking-card{grid-template-columns:1fr}.admin-v24-booking-side{border-left:0;border-top:1px solid #e3e9e5;align-items:flex-start;text-align:left}
 .admin-v24-app input,.admin-v24-app select,.admin-v24-app textarea{font-size:16px}
}


/* NIMBASTAY_EXPERIENCE_2_PHASE25_ACCESSIBILITY_PERFORMANCE */
.skip-link{
  position:fixed;z-index:9999;left:12px;top:10px;transform:translateY(-160%);
  background:#fff;color:#073b24;border:2px solid #073b24;border-radius:10px;
  padding:10px 14px;font-weight:900;text-decoration:none;box-shadow:0 10px 30px rgba(0,0,0,.18)
}
.skip-link:focus{transform:none}
#main-content:focus{outline:none}
:focus-visible{outline:3px solid #d96b2d!important;outline-offset:3px!important}
.alert[role="alert"],.alert[role="status"]{scroll-margin-top:90px}
img{max-width:100%}
.hotel-v23-booking-card,.hotel-v23-arrival-card,.traveler-booking-card,.traveler-favorite-card,.admin-v24-booking-card{
  content-visibility:auto;
  contain-intrinsic-size:260px
}
@media(pointer:coarse){
  .btn,button,summary,input[type="checkbox"],input[type="radio"]{min-height:44px}
  a.hotel-v23-nav-link,a.admin-v24-nav-link,.traveler-side-nav .workspace-link{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto!important}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important
  }
}
@media(forced-colors:active){
  .btn,button,input,select,textarea,summary,a{forced-color-adjust:auto}
  :focus-visible{outline:3px solid CanvasText!important}
}


/* GanGanStay R4 — compte professionnel dynamique */
.professional-account-v40,.professional-account-v41{max-width:1240px;margin:0 auto}.professional-account-metrics{grid-template-columns:repeat(4,minmax(0,1fr))}.professional-account-metrics .metric.small-metric{font-size:1.45rem;line-height:1.15}.professional-access-grid{align-items:start}.professional-access-card{display:grid;gap:14px}.professional-access-card.pending{border-style:dashed}.professional-role-block{display:grid;gap:7px}.position-chips{display:flex;flex-wrap:wrap;gap:7px}.position-chip{background:#eef6f0}.professional-permissions{border-top:1px solid var(--ns-line,#e4e9e6);border-bottom:1px solid var(--ns-line,#e4e9e6);padding:10px 0}.professional-permissions summary{cursor:pointer;font-weight:850;color:var(--ns-forest,#174b2c)}.permission-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:13px}.permission-group{padding:12px;border-radius:12px;background:#f8faf9}.permission-group strong{display:block;margin-bottom:7px}.permission-group ul{list-style:none;margin:0;padding:0;display:grid;gap:6px}.permission-group li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.9rem}.professional-card-actions{display:flex;gap:8px;flex-wrap:wrap}.professional-security-notice{margin:0 0 18px}.professional-security-notice.success{border-left-color:var(--ns-leaf,#246b3e);background:#eef8f1}.professional-security-notice a{text-decoration:underline;font-weight:850}.professional-model-card{margin-top:20px}.professional-principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.professional-principles>div{display:grid;gap:4px;padding:14px;border:1px solid var(--ns-line,#e4e9e6);border-radius:13px;background:#fafcfb}.professional-principles span{color:var(--muted);font-size:.9rem}.professional-access-card .owner-badges{justify-content:flex-end}.badge.soft{background:#f3f6f4;color:#496157}
@media(max-width:1000px){.professional-account-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.professional-principles{grid-template-columns:repeat(2,minmax(0,1fr))}.permission-grid{grid-template-columns:1fr}}
@media(max-width:620px){.professional-account-metrics{grid-template-columns:1fr 1fr}.professional-principles{grid-template-columns:1fr}.professional-access-grid{grid-template-columns:1fr}.professional-account-v40 .pagehead>.btn{width:100%}.professional-access-card .card-head{display:grid}.professional-access-card .owner-badges{justify-content:flex-start}}
@media(max-width:390px){.professional-account-metrics{grid-template-columns:1fr}}


.nav-login-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:7px 14px;border:1px solid var(--ns-line);border-radius:12px;background:#fff;color:var(--ns-text);font-size:14px;font-weight:800}
.nav-login-link:hover{background:#f8fbf9}
.auth-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:8px}
.auth-page-head h1{margin:6px 0 0}
.auth-switch-link{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 11px;border:1px solid var(--ns-line);border-radius:999px;background:#f8fbf9;color:var(--ns-forest);font-size:12px;font-weight:800;white-space:nowrap}
.auth-switch-link:hover{background:#f1f7f3}
.auth-steps{margin:0 0 18px 18px;padding:0;color:var(--ns-muted)}
.auth-steps li{margin:0 0 8px}
.auth-actions-stack{display:grid;gap:14px;margin-top:16px}
.auth-inline-link{display:inline-flex;align-items:center;justify-content:center;margin-top:10px;color:var(--ns-forest);font-size:13px;font-weight:700}
.auth-inline-link:hover{text-decoration:underline}
@media(max-width:600px){
  .auth-page-head{flex-direction:column;align-items:flex-start}
  .nav-right.open{align-items:flex-start}
}

/* GanGanStay R4.4 — Équipe & postes / propriétaire juridique */
.owner-configuration-card{display:grid;gap:16px;margin-bottom:20px;border-top:4px solid var(--ns-forest)}
.owner-configuration-card .card-head{align-items:flex-start}
.owner-authority-notice{margin:0;background:#f5faf6}
.owner-position-form{margin-top:4px}
.team-section{display:grid;gap:16px;margin-top:20px}
.team-members-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}
.team-member-card{display:grid;gap:12px}
.team-assignment-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--ns-line)}
.team-assignment-row form{margin:0}
.team-assign-form{display:grid;grid-template-columns:minmax(170px,1.3fr) minmax(150px,1fr) minmax(150px,1fr) auto;gap:8px;align-items:end;margin-top:8px}
.coverage-list{display:grid;gap:10px;padding-left:20px}
.coverage-action{margin-top:8px}
.position-admin{display:grid;gap:12px;margin-top:24px}
.position-admin-card>summary{cursor:pointer}
@media(max-width:900px){.team-members-grid{grid-template-columns:1fr}.team-assign-form{grid-template-columns:1fr 1fr}.team-assign-form .btn{width:100%}}
@media(max-width:600px){.team-assign-form{grid-template-columns:1fr}.team-assignment-row{align-items:flex-start;flex-direction:column}.team-assignment-row form,.team-assignment-row .btn{width:100%}}


/* GanGanStay R4.4.1 - stabilisation impression/PDF de l'espace hotel
   Cause corrigee : en media print, la sidebar etait masquee mais .hotel-app
   conservait sa grille 260px + contenu. Le contenu restant etait alors place
   dans la premiere colonne de 260px, produisant des cartes tres etroites et
   de grandes zones blanches dans les PDF. */
@media print{
  .account-app,.hotel-app,.admin-app{
    display:block!important;
    grid-template-columns:none!important;
    min-height:0!important;
    width:100%!important;
    background:#fff!important;
  }
  .workspace-sidebar,.workspace-topbar,.workspace-mobile-nav,
  .public-header,.public-footer,.top,.footer,footer,
  .action-bar,.workspace-back,.menu{
    display:none!important;
  }
  .workspace-content{
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
  .workspace-page{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:16px 18px!important;
  }
  .workspace-page .pagehead,
  .workspace-page .section-head{
    break-after:avoid;
  }
  .owner-configuration-card,.team-member-card,.position-admin-card,
  .coverage-list li,.empty-state{
    break-inside:avoid;
  }
  .team-section>.grid.grid-2{
    grid-template-columns:1fr!important;
  }
  .team-members-grid{
    grid-template-columns:1fr!important;
  }
  .team-assign-form{
    grid-template-columns:minmax(210px,1fr) minmax(170px,.8fr) minmax(170px,.8fr)!important;
  }
  .team-assign-form .btn{
    display:none!important;
  }
  .card{
    box-shadow:none!important;
  }
}

/* NIMBASTAY_R5_5_STAY_EXPERIENCE */
.traveler-stay-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}
.traveler-stay-metrics>div{display:grid;gap:4px;background:#fff;border:1px solid #dfe7e2;border-radius:18px;padding:18px}
.traveler-stay-metrics span{color:#718077;font-size:.82rem}.traveler-stay-metrics strong{font-size:1.25rem}
.traveler-request-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid #e6ece8}.traveler-request-row:last-child{border-bottom:0}.traveler-request-row>div{display:grid;gap:3px}.traveler-request-row small{color:#6e7e75}
@media(max-width:760px){.traveler-stay-metrics{grid-template-columns:1fr 1fr}.traveler-request-row{grid-template-columns:1fr}.traveler-request-row form{justify-self:start}}

/* ==========================================================
   NIMBASTAY_R5_7_PROPERTY_IDENTITY_CATEGORY_BRANDING
   ========================================================== */
body.context-public .hotel-identity-hero{
  display:grid;grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr);gap:22px;align-items:stretch;margin-bottom:28px
}
body.context-public .hotel-identity-hero .hotel-gallery-hero{height:auto;min-height:430px;margin:0}
body.context-public .hotel-identity-panel{
  background:#fff;border:1px solid #dde6e0;border-radius:26px;padding:28px;box-shadow:0 18px 52px rgba(15,48,30,.09);display:flex;flex-direction:column;justify-content:center;min-width:0
}
body.context-public .hotel-identity-panel h1{font-size:clamp(2rem,3.7vw,3.35rem);line-height:1.02;letter-spacing:-.045em;margin:.35rem 0 .8rem}
body.context-public .hotel-identity-logo{display:block;max-width:150px;max-height:76px;object-fit:contain;object-position:left center;margin:0 0 18px}
body.context-public .hotel-identity-facts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:20px}
body.context-public .hotel-identity-facts>div{border:1px solid #e1e9e4;background:#f7faf8;border-radius:14px;padding:12px;min-width:0}
body.context-public .hotel-identity-facts small{display:block;color:#697970;font-size:.7rem;font-weight:800;margin-bottom:4px}
body.context-public .hotel-identity-facts strong{display:block;font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}
body.context-public .hotel-identity-facts a{color:#0a623b}

.establishment-identity-card{display:grid;grid-template-columns:minmax(240px,36%) minmax(0,1fr);background:#fff;border:1px solid var(--ns-line);border-radius:20px;overflow:hidden;box-shadow:var(--ns-shadow);margin:0 0 18px}
.establishment-identity-photo{min-height:260px;background:#e7eee9}.establishment-identity-photo img{width:100%;height:100%;min-height:260px;display:block;object-fit:cover}
.establishment-identity-info{padding:24px;display:flex;flex-direction:column;justify-content:center;min-width:0}.establishment-identity-info h2{font-size:clamp(1.8rem,3vw,2.5rem);margin:.25rem 0 1rem}
.establishment-identity-logo{max-width:140px;max-height:70px;object-fit:contain;object-position:left center;margin-bottom:14px}
.establishment-identity-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.establishment-identity-facts span{display:block;padding:10px 12px;border-radius:12px;background:#f5f8f6;overflow-wrap:anywhere}.establishment-identity-facts strong{display:block;font-size:.7rem;color:var(--ns-muted);margin-bottom:3px;text-transform:uppercase;letter-spacing:.03em}
.hotel-logo-preview{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:12px 0}.hotel-logo-preview img{max-width:180px;max-height:90px;object-fit:contain;padding:10px;background:#fff;border:1px solid var(--ns-line);border-radius:12px}
[data-geolocate-status]{display:block;margin-top:7px}.geo-success{color:#176b3b}.geo-error{color:#a52d2d}

@media(max-width:920px){body.context-public .hotel-identity-hero{grid-template-columns:1fr}body.context-public .hotel-identity-hero .hotel-gallery-hero{min-height:340px}.establishment-identity-card{grid-template-columns:1fr}.establishment-identity-photo,.establishment-identity-photo img{min-height:240px;height:240px}}
@media(max-width:600px){body.context-public .hotel-identity-panel{padding:20px;border-radius:18px}body.context-public .hotel-identity-facts{grid-template-columns:1fr}body.context-public .hotel-identity-hero .hotel-gallery-hero{min-height:250px;height:250px}.establishment-identity-info{padding:18px}.establishment-identity-facts{grid-template-columns:1fr}}
.receipt-brand-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:12px}.receipt-hotel-logo{display:block;max-width:160px;max-height:78px;object-fit:contain}.receipt-document .pagehead{margin-top:0}@media(max-width:600px){.receipt-brand-row{align-items:flex-start;flex-direction:column}.receipt-hotel-logo{max-width:140px;max-height:68px}}@media print{.receipt-hotel-logo{max-width:140px;max-height:65px}}

/* ==========================================================
   NIMBASTAY_R5_8_PHOTO_STUDIO
   ========================================================== */
.nbs-photo-open{overflow:hidden!important}
.nbs-photo-modal{position:fixed;inset:0;z-index:100000;background:rgba(7,28,18,.72);display:grid;place-items:center;padding:18px;overflow:auto}
.nbs-photo-modal[hidden]{display:none!important}
.nbs-photo-dialog{width:min(920px,100%);background:#fff;border-radius:24px;box-shadow:0 26px 90px rgba(0,0,0,.32);padding:22px;max-height:calc(100vh - 36px);overflow:auto}
.nbs-photo-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.nbs-photo-head h2{margin:.2rem 0 0}.nbs-photo-close{border:1px solid #dce5df;background:#fff;border-radius:999px;width:42px;height:42px;font-size:1.7rem;line-height:1;cursor:pointer;color:#173827}
.nbs-photo-help{color:#66776e;margin:.7rem 0 14px;max-width:760px}
.nbs-photo-stage{background:#102419;border-radius:18px;overflow:hidden;display:grid;place-items:center;user-select:none;touch-action:none}
.nbs-photo-stage canvas{display:block;width:100%;height:auto;max-height:62vh;object-fit:contain;cursor:grab;touch-action:none}.nbs-photo-stage canvas.is-dragging{cursor:grabbing}
.nbs-photo-controls{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:14px 0 4px;flex-wrap:wrap;color:#5f7167}.nbs-photo-controls label{display:flex;align-items:center;gap:10px;font-weight:700}.nbs-photo-controls input[type=range]{width:min(320px,58vw)}
.nbs-photo-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}
.nbs-photo-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:7px;font-size:.82rem;color:#176b3b}.nbs-photo-summary .btn{padding:.35rem .6rem;min-height:auto}
@media(max-width:640px){.nbs-photo-modal{padding:0;place-items:stretch}.nbs-photo-dialog{border-radius:0;min-height:100vh;max-height:none;padding:16px}.nbs-photo-stage canvas{max-height:52vh}.nbs-photo-actions{display:grid;grid-template-columns:1fr 1fr}.nbs-photo-actions [data-photo-apply]{grid-column:1/-1}.nbs-photo-actions .btn{width:100%}}

/* Impression de la fiche publique : ne pas scinder la photo principale du bloc identité. */
@media print{
  body.context-public .hotel-identity-hero{break-inside:avoid!important;page-break-inside:avoid!important;grid-template-columns:1.1fr .9fr!important;gap:14px!important;margin-bottom:18px!important}
  body.context-public .hotel-identity-hero .hotel-gallery-hero{min-height:300px!important;height:300px!important;break-inside:avoid!important}
  body.context-public .hotel-identity-panel{padding:18px!important;box-shadow:none!important;break-inside:avoid!important}
  body.context-public .hotel-identity-panel h1{font-size:2.1rem!important}
  body.context-public .hotel-identity-facts{gap:6px!important;margin-top:12px!important}
  body.context-public .hotel-identity-facts>div{padding:9px!important}
}

/* ==========================================================
   GanGanStay R6.3 — EXPÉRIENCE PUBLIQUE
   Destinations par préfectures, recherche simplifiée,
   favoris, prix / nuit, avis et bénéfices voyageurs.
   ========================================================== */
body.context-public .public-home-search{
  grid-template-columns:minmax(280px,1.8fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(210px,1.05fr) auto;
  gap:10px;align-items:end
}
body.context-public .public-home-search .search-destination{grid-column:auto}
body.context-public .public-home-search .search-cta{height:50px;min-width:145px;font-size:1rem;padding-inline:24px}
body.context-public .home-search-more{grid-column:1/-1;border-top:1px solid #edf1ee;margin-top:2px;padding-top:4px;overflow:visible!important}
body.context-public .home-search-more>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:8px 4px 4px;font-size:.78rem;font-weight:800;color:#496057;list-style:none}
body.context-public .home-search-more>summary::-webkit-details-marker{display:none}
body.context-public .home-search-more>summary:after{content:'+';display:grid;place-items:center;width:24px;height:24px;border-radius:999px;background:#edf6f0;color:#0b5d37;font-size:1rem}
body.context-public .home-search-more[open]>summary:after{content:'−'}
body.context-public .home-search-more>summary span{margin-left:auto;font-weight:650;color:#7a877f}
body.context-public .home-search-more>div{display:grid;grid-template-columns:minmax(220px,360px);padding:8px 0 2px}

body.context-public .public-resume-search{margin-top:18px;background:#fff;border:1px solid var(--x2-line,#dfe7e2);border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 8px 24px rgba(15,48,30,.05)}
body.context-public .public-resume-search[hidden]{display:none}
body.context-public .public-resume-search>div{display:grid;gap:2px;min-width:0;flex:1}
body.context-public .public-resume-search span{font-size:.86rem;color:var(--x2-muted,#64736b);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.context-public .public-resume-close{border:0;background:transparent;color:#65756c;font-size:1.35rem;min-width:36px;padding:0}

body.context-public .destination-prefecture-grid{display:flex;flex-wrap:wrap;gap:10px}
body.context-public .destination-prefecture{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 18px;border-radius:999px;font-weight:850;box-shadow:none!important;background:#fff}
body.context-public .destination-prefecture:hover{background:#eef7f1;border-color:#b9d6c4;transform:translateY(-1px)}
body.context-public .destination-list-prefectures{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
body.context-public .destination-list-prefectures .destination-list-item{justify-content:center;text-align:center;font-weight:850;min-height:54px}

body.context-public .public-featured-section .hotel-result-list{gap:16px}
body.context-public .public-card-media{position:relative;min-width:0;background:#e8efea}
body.context-public .public-card-media .hotel-image-wrap{height:100%}
body.context-public .public-favorite-form{position:absolute;top:12px;right:12px;z-index:4;margin:0}
body.context-public .public-favorite-btn{position:absolute;top:12px;right:12px;z-index:4;width:42px;height:42px;min-height:42px;padding:0;border-radius:999px;border:1px solid rgba(18,65,39,.12);background:rgba(255,255,255,.94);color:#174b2c;font-size:1.35rem;box-shadow:0 7px 22px rgba(0,0,0,.12);backdrop-filter:blur(8px)}
body.context-public .public-favorite-form .public-favorite-btn{position:static}
body.context-public .public-favorite-btn.is-saved{background:#fff0f2;color:#a12f4d;border-color:#f0c4cf}
body.context-public .hotel-result-price .price-unit,body.context-public .smart-room-footer .price-unit{font-size:.72em;font-weight:750;color:#6c7b73}
body.context-public .availability-low{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff3e8;color:#9b4e1c;font-size:.77rem;font-weight:850}
body.context-public .section-link{font-weight:850;color:#0b5d37}

body.context-public .public-benefit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
body.context-public .public-benefit-grid article{display:grid;gap:7px;background:#fff;border:1px solid var(--x2-line,#dfe7e2);border-radius:18px;padding:20px;box-shadow:0 7px 24px rgba(15,48,30,.04)}
body.context-public .public-benefit-grid strong{font-size:1.02rem}
body.context-public .public-benefit-grid span{font-size:.9rem;line-height:1.5;color:var(--x2-muted,#64736b)}

body.context-public .public-review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
body.context-public .public-review-card{display:grid;gap:13px;background:#fff;border:1px solid var(--x2-line,#dfe7e2);border-radius:20px;padding:21px;box-shadow:0 8px 28px rgba(15,48,30,.05)}
body.context-public .public-review-card p{font-size:1rem;line-height:1.6;margin:0;color:#2f4037}
body.context-public .public-review-score{display:inline-flex;width:max-content;padding:6px 9px;border-radius:10px;background:#eaf5ee;color:#075b35;font-weight:900}
body.context-public .public-review-card>div:last-child{display:grid;gap:2px}
body.context-public .public-review-card>div:last-child span{font-size:.78rem;color:#6b7a72}

body.context-public .public-install-section{display:flex;align-items:center;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#073d24,#0f6b40);color:#fff;border-radius:24px;padding:30px 32px;margin-top:18px;box-shadow:0 20px 52px rgba(8,66,38,.16)}
body.context-public .public-install-section>div{max-width:760px}
body.context-public .public-install-section h2{margin:.28rem 0 .45rem;color:#fff}
body.context-public .public-install-section p{margin:0;opacity:.9}
body.context-public .public-install-section .eyebrow{color:#c8ead5}
body.context-public .public-install-section .btn{flex:0 0 auto}

body.context-public .public-trust-strip{margin-top:34px;grid-template-columns:repeat(3,1fr)}
body.context-public .public-trust-strip>div{padding:20px}
body.context-public .public-trust-strip span{display:block;margin-top:4px;color:#65756d;font-size:.88rem}

.nbs63-toast{position:fixed;left:50%;bottom:24px;z-index:10050;transform:translate(-50%,18px);opacity:0;pointer-events:none;background:#123b25;color:#fff;padding:11px 16px;border-radius:999px;font-weight:800;box-shadow:0 12px 32px rgba(0,0,0,.22);transition:.2s ease}
.nbs63-toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:1050px){
  body.context-public .public-home-search{grid-template-columns:1.4fr 1fr 1fr}
  body.context-public .public-home-search .search-destination{grid-column:1/-1}
  body.context-public .public-home-search .search-cta{grid-column:1/-1}
  body.context-public .public-benefit-grid{grid-template-columns:1fr 1fr}
  body.context-public .public-review-grid{grid-template-columns:1fr 1fr}
  body.context-public .destination-list-prefectures{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:700px){
  body.context-public .public-home-search{grid-template-columns:1fr!important}
  body.context-public .public-home-search>*{grid-column:1!important}
  body.context-public .home-search-more>div{grid-template-columns:1fr}
  body.context-public .destination-prefecture-grid{display:grid;grid-template-columns:1fr 1fr}
  body.context-public .destination-prefecture{border-radius:14px;justify-content:flex-start}
  body.context-public .public-benefit-grid,body.context-public .public-review-grid{grid-template-columns:1fr}
  body.context-public .public-install-section{align-items:flex-start;flex-direction:column;padding:24px 20px;border-radius:20px}
  body.context-public .public-install-section .btn{width:100%}
  body.context-public .public-resume-search{align-items:flex-start;flex-wrap:wrap}
  body.context-public .public-resume-search .btn{order:3;width:100%}
  body.context-public .public-trust-strip{grid-template-columns:1fr}
  body.context-public .destination-list-prefectures{grid-template-columns:1fr 1fr}
}
@media(max-width:420px){
  body.context-public .destination-prefecture-grid,body.context-public .destination-list-prefectures{grid-template-columns:1fr}
}
body.context-public .public-section-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:700px){body.context-public .public-section-actions{width:100%;justify-content:flex-start}body.context-public .public-section-actions .smart-location-btn{flex:1 1 auto}}
body.context-public .hotel-identity-panel{position:relative}
body.context-public .hotel-identity-panel>.public-favorite-form,body.context-public .hotel-identity-panel>.public-favorite-btn{top:16px;right:16px}
body.context-public .room-price .price-unit{font-size:.68em;font-weight:750;color:#6c7b73}

/* ==========================================================
   GanGanStay R6.4 — FINALISATION PUBLIQUE HUMAINE
   Actions visibles, langage commercial et rendu PDF fidèle.
   ========================================================== */
body.context-public .public-home-search{
  grid-template-columns:minmax(300px,1.8fr) minmax(150px,.9fr) minmax(150px,.9fr) minmax(220px,1.05fr);
}
body.context-public .public-home-search .search-cta{
  grid-column:1/-1!important;
  width:100%;
  min-height:56px;
  font-size:1.05rem;
  letter-spacing:.01em;
}
body.context-public .public-install-inline{
  margin-top:18px;
  min-width:190px;
}
body.context-public .public-destinations-section .destination-prefecture-grid{
  align-items:stretch;
}
body.context-public .public-destinations-section .destination-prefecture{
  border:1px solid var(--x2-line,#dfe7e2);
}
body.context-public .public-featured-section .hotel-result-price .btn{
  min-width:170px;
}
body.context-public .smart-location-btn{
  font-weight:850;
}
@media(max-width:1050px){
  body.context-public .public-home-search{grid-template-columns:1fr 1fr}
  body.context-public .public-home-search .search-destination{grid-column:1/-1}
  body.context-public .public-home-search .search-cta{grid-column:1/-1!important}
}
@media(max-width:700px){
  body.context-public .public-home-search{grid-template-columns:1fr!important}
}
@media print{
  body.context-public .public-home-search .search-cta,
  body.context-public .public-home-hotel-card .btn,
  body.context-public .smart-room-card .btn,
  body.context-public .public-install-section .btn{
    display:inline-flex!important;
  }
  body.context-public .public-home-search .search-cta{width:100%!important}
  body.context-public .public-install-inline{margin-top:14px!important}
}

/* ==========================================================
   GanGanStay R6.4.1 — FINITION PUBLIQUE
   Préfectures compactes, preuve sociale stricte et PDF propre.
   ========================================================== */
body.context-public .public-destinations-section .destination-prefecture-grid{
  gap:8px;
}
body.context-public .public-destinations-section .destination-prefecture{
  min-height:40px;
  padding:8px 14px;
  font-size:.9rem;
  line-height:1.1;
}
body.context-public .public-home-hotel-card .hotel-tags{
  row-gap:7px;
}
body.context-public .public-home-hotel-card .hotel-result-main>.eyebrow,
body.context-public .nbs-search-result-card .hotel-result-main>.eyebrow{
  letter-spacing:.045em;
}
@media(max-width:700px){
  body.context-public .public-destinations-section .destination-prefecture{
    min-height:42px;
    padding:9px 12px;
    font-size:.88rem;
  }
}
@media print{
  body.context-public .market-hero{
    min-height:0!important;
    padding:14px 0 18px!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.context-public .market-hero .hero-inner{
    padding-block:14px!important;
    gap:14px!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.context-public .market-hero .hero-copy{
    max-width:760px!important;
  }
  body.context-public .market-hero .hero-copy h1{
    font-size:34px!important;
    line-height:1.02!important;
    margin:6px 0 8px!important;
  }
  body.context-public .market-hero .hero-copy p{
    font-size:14px!important;
    margin:0!important;
  }
  body.context-public .public-home-search{
    margin-top:10px!important;
    padding:9px!important;
    gap:7px!important;
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
  body.context-public .public-home-search input,
  body.context-public .public-home-search select{
    min-height:40px!important;
  }
  body.context-public .public-home-search .search-cta{
    min-height:44px!important;
  }
  body.context-public .home-search-more{
    padding-top:2px!important;
  }
  body.context-public .home-search-more>summary{
    padding:5px 3px 2px!important;
  }
  body.context-public .public-destinations-section,
  body.context-public .public-home-hotel-card,
  body.context-public .public-why-section,
  body.context-public .public-install-section,
  body.context-public .public-trust-strip{
    break-inside:avoid!important;
    page-break-inside:avoid!important;
  }
}

/* ==========================================================
   GanGanStay R6.4.2 — CONTOURS RECHERCHE & DATES
   Renforce visuellement les zones essentielles du moteur public.
   ========================================================== */
body.context-public .public-home-search{
  border:1.5px solid #b9cbbf;
  box-shadow:0 22px 50px rgba(4,37,20,.24),0 0 0 1px rgba(18,69,40,.04);
}
body.context-public .public-home-search .search-destination>input:not([type="hidden"]),
body.context-public .public-home-search input[type="date"]{
  border:2px solid #9eb5a7;
  background:#fff;
  box-shadow:0 1px 0 rgba(18,69,40,.04);
}
body.context-public .public-home-search .search-destination>input:not([type="hidden"]):hover,
body.context-public .public-home-search input[type="date"]:hover{
  border-color:#789985;
}
body.context-public .public-home-search .search-destination>input:not([type="hidden"]):focus,
body.context-public .public-home-search input[type="date"]:focus{
  border-color:#17613a;
  box-shadow:0 0 0 3px rgba(23,97,58,.12);
}
@media print{
  body.context-public .public-home-search{
    border:1.5px solid #9eb5a7!important;
  }
  body.context-public .public-home-search .search-destination>input:not([type="hidden"]),
  body.context-public .public-home-search input[type="date"]{
    border:1.5px solid #8ea596!important;
  }
}
