:root{--blue:#0A2A66;--orange:#FFB020;--green:#22C55E;--red:#EF4444;--bg:#F8FAFC;--text:#10213f;--muted:#64748b}*{box-sizing:border-box}body{margin:0;font-family:Poppins,Arial,sans-serif;background:var(--bg);color:var(--text)}.topbar{background:#fff;border-bottom:1px solid #e5e7eb;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5}.brand{font-weight:800;color:var(--blue);font-size:24px}.brand span{color:var(--orange)}.nav a,.nav button{margin-left:12px;text-decoration:none;border:0;background:transparent;color:var(--blue);font-weight:700;cursor:pointer}.hero{padding:48px 24px;background:linear-gradient(135deg,#0A2A66,#123c86);color:white}.hero h1{font-size:42px;margin:0 0 8px}.search-card{background:#fff;color:var(--text);padding:16px;border-radius:18px;display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:22px;box-shadow:0 18px 45px #0002}.search-card input,.search-card select,.form-card input,.form-card select,.form-card textarea{padding:13px;border:1px solid #dbe3ef;border-radius:12px;width:100%}.btn{background:var(--blue);color:white;border:0;border-radius:12px;padding:12px 16px;font-weight:800;cursor:pointer}.btn.orange{background:var(--orange);color:#1b1b1b}.btn.red{background:var(--red)}.container{padding:24px;max-width:1180px;margin:auto}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.card{background:white;border:1px solid #e5e7eb;border-radius:18px;padding:18px;box-shadow:0 8px 25px #0f172a0d}.hotel-card h3{margin:0 0 8px}.price{font-size:20px;font-weight:800;color:var(--blue)}.chip{display:inline-block;padding:6px 10px;border-radius:999px;background:#eaf2ff;color:var(--blue);font-size:12px;font-weight:700}.room{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid #edf2f7;padding:12px 0}.muted{color:var(--muted)}.form-card{background:#fff;border-radius:18px;padding:18px;border:1px solid #e5e7eb}.toast-container{position:fixed;right:18px;top:18px;z-index:99}.toast{display:flex;gap:12px;align-items:flex-start;background:white;border-left:5px solid var(--green);box-shadow:0 12px 35px #0002;border-radius:14px;padding:12px;margin-bottom:10px;min-width:280px}.toast-error{border-left-color:var(--red)}.toast-warning{border-left-color:var(--orange)}.toast button{margin-left:auto;border:0;background:transparent;font-size:20px;cursor:pointer}.table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}.table th,.table td{padding:12px;border-bottom:1px solid #edf2f7;text-align:left}.status{font-weight:800}.pending{color:#d97706}.confirmed{color:#2563eb}.checked_in{color:#16a34a}.checked_out{color:#475569}.cancelled{color:#dc2626}@media(max-width:800px){.search-card{grid-template-columns:1fr}.hero h1{font-size:30px}.topbar{display:block}.nav{margin-top:10px}}
.landing-nav{background:#fff}.landing-hero{min-height:560px;padding:70px 7vw;background:radial-gradient(circle at top right,#1e5eea 0,#0A2A66 42%,#071b43 100%);display:grid;grid-template-columns:1.3fr .7fr;gap:36px;align-items:center;color:white}.landing-hero h1{font-size:56px;line-height:1.02;margin:18px 0}.landing-hero p{font-size:18px;color:#dbeafe;max-width:680px}.landing-badge{display:inline-flex;background:rgba(255,176,32,.16);color:#FFB020;border:1px solid rgba(255,176,32,.35);padding:9px 13px;border-radius:999px;font-weight:900;font-size:12px;text-transform:uppercase;letter-spacing:.06em}.landing-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.btn.ghost{background:transparent;border:1px solid rgba(255,255,255,.45);color:white;text-decoration:none}.landing-actions .btn{text-decoration:none}.landing-card{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);border-radius:26px;padding:26px;backdrop-filter:blur(10px);box-shadow:0 20px 55px #0004}.step{display:flex;gap:12px;align-items:center;background:rgba(255,255,255,.12);border-radius:18px;padding:14px;margin-top:12px}.step strong{background:#FFB020;color:#111827;border-radius:13px;width:34px;height:34px;display:grid;place-items:center}.landing-features{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.hero-content{max-width:1120px;margin:auto}.auth-shell{min-height:calc(100vh - 76px);display:grid;place-items:center;padding:28px;background:linear-gradient(135deg,#F8FAFC,#eaf2ff)}.auth-card{width:min(520px,100%);background:#fff;border:1px solid #e5e7eb;border-radius:26px;padding:30px;box-shadow:0 24px 60px #0f172a1a}.auth-card h1{margin:14px 0 8px;font-size:34px}.auth-form{display:grid;gap:13px;margin-top:18px}.auth-form input{padding:14px 16px;border:1px solid #dbe3ef;border-radius:14px}@media(max-width:900px){.landing-hero{grid-template-columns:1fr;padding:44px 24px}.landing-hero h1{font-size:38px}.landing-features{grid-template-columns:1fr}}
/* Patch UI cliente/landing/anónimo/bar */
.hero-mini{padding:42px 24px;background:linear-gradient(135deg,#0A2A66,#1d4ed8);color:white}.hero-mini h1{margin:0;font-size:38px}.hero-mini p{color:#dbeafe}.hotel-cover{height:150px;border-radius:16px;background:linear-gradient(135deg,#0A2A66,#2563eb);display:flex;align-items:end;padding:16px;color:#fff;margin:-4px -4px 14px}.hotel-cover strong{font-size:22px}.hotel-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.filter-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.filter-row label{display:flex;align-items:center;gap:6px;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:8px 12px;font-weight:700;color:#334155}.qr-box{width:220px;height:220px;border-radius:20px;background:#fff;border:1px solid #dbe3ef;margin:14px 0;display:grid;place-items:center;box-shadow:0 16px 35px #0f172a18;overflow:hidden}.qr-box img{width:210px;height:210px}.code-card{background:#f8fafc;border:1px dashed #94a3b8;border-radius:18px;padding:16px;font-size:20px;font-weight:900;letter-spacing:.08em}.booking-success{display:grid;grid-template-columns:1fr 260px;gap:20px;align-items:start}.cart-line{display:grid;grid-template-columns:1fr 90px 100px;gap:10px;align-items:center;border-top:1px solid #e5e7eb;padding:12px 0}.cart-line input{padding:10px;border:1px solid #dbe3ef;border-radius:12px}.bar-product{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e5e7eb;border-radius:16px;padding:14px;margin-bottom:10px}.bar-product strong{display:block}.bar-total{font-size:24px;font-weight:900;color:var(--blue);text-align:right}.pill-ok{display:inline-flex;background:#dcfce7;color:#166534;border-radius:999px;padding:6px 10px;font-weight:900}.pill-warn{display:inline-flex;background:#fef3c7;color:#92400e;border-radius:999px;padding:6px 10px;font-weight:900}@media(max-width:760px){.booking-success{grid-template-columns:1fr}.cart-line{grid-template-columns:1fr}.qr-box{width:180px;height:180px}.qr-box img{width:170px;height:170px}}

.partner-form textarea{min-height:90px}.booking-products{margin-top:16px}.product-choice{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid #e2e8f0;border-radius:16px;padding:12px;margin-bottom:10px}.product-choice input{width:80px}.invoice-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin-top:12px}.logo-img{height:42px}

/* Patch: extras/factura/reserva - UI melhorada */
.extras-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px}
.extras-header h3,.extras-header h2{margin:0 0 6px;color:var(--blue)}
.extras-total-pill{background:#eef6ff;border:1px solid #cfe2ff;color:var(--blue);border-radius:999px;padding:10px 16px;font-weight:800;white-space:nowrap;box-shadow:0 8px 20px #0a2a6610}
.extras-total-pill strong{font-size:20px;margin-left:8px;color:#001a3d}
.products-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}
.product-choice{display:flex;justify-content:space-between;gap:14px;align-items:center;border:1px solid #dbe6f3;border-radius:18px;padding:16px;background:#fff;box-shadow:0 8px 20px #0f172a0a;transition:.18s ease}
.product-choice:hover{transform:translateY(-1px);border-color:#b7cef4;box-shadow:0 14px 28px #0f172a12}
.product-info strong{display:block;font-size:18px;color:var(--blue);letter-spacing:.02em}
.product-info small{display:inline-flex;margin-top:6px;background:#f1f5f9;color:#475569;border-radius:999px;padding:4px 9px;font-weight:700;text-transform:capitalize}
.product-buy{display:grid;grid-template-columns:auto auto;gap:12px;align-items:center;text-align:right}
.product-price{font-weight:900;font-size:20px;color:#001a3d;white-space:nowrap;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:8px 12px}
.product-buy label{font-size:12px;font-weight:800;color:#64748b;text-align:left;text-transform:uppercase;letter-spacing:.04em}
.product-choice input{width:86px;padding:10px 12px;border:1px solid #cbd5e1;border-radius:12px;font-size:18px;font-weight:800;text-align:center;color:var(--blue);outline:none;background:#fff}
.product-choice input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}
.invoice-box{display:flex;align-items:center;justify-content:space-between;gap:16px;background:linear-gradient(135deg,#f8fafc,#eef6ff);border:1px solid #dbe6f3;border-radius:18px;padding:18px;margin-top:16px}
.invoice-box strong,.invoice-box span{font-size:22px;color:var(--blue);font-weight:900}
.btn-wide{min-width:260px;text-align:center;font-size:16px;border-radius:16px;padding:15px 18px}
.extras-empty{display:grid;gap:10px}.extras-empty h3{margin:0;color:var(--blue)}
.rooms-card{margin-top:18px}.room-reserve{border:1px solid #e2e8f0;border-radius:18px;padding:16px;margin-bottom:12px;background:#fff;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:18px}
.room-price-box{text-align:right}.room-price{display:block;font-size:22px;font-weight:900;color:var(--blue)}.room-price-box small{color:#64748b;font-weight:700}.reserve-btn{background:#22C55E;color:white;border-radius:16px;padding:14px 22px;box-shadow:0 10px 22px #22c55e30}.reserve-btn:hover{filter:brightness(.95)}
@media(max-width:760px){.extras-header,.invoice-box{display:grid}.products-grid{grid-template-columns:1fr}.product-buy{grid-template-columns:1fr}.room-reserve{grid-template-columns:1fr}.room-price-box{text-align:left}.btn-wide{min-width:100%}}

/* Patch: extras compactos com pesquisa/filtro/carrinho */
.extras-compact{display:grid;gap:14px}
.compact-header{align-items:center}
.extras-toolbar{display:grid;grid-template-columns:minmax(240px,360px) 1fr;gap:12px;align-items:center;margin-bottom:4px}
.extras-toolbar input[type="search"]{width:100%;padding:13px 16px;border:1px solid #dbe6f3;border-radius:16px;font-weight:700;outline:none;background:#fff}
.extras-toolbar input[type="search"]:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}
.category-filter{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.category-filter button{border:1px solid #dbe6f3;background:#fff;color:#334155;border-radius:999px;padding:9px 13px;font-weight:900;text-transform:capitalize;cursor:pointer}
.category-filter button.active{background:var(--blue);color:#fff;border-color:var(--blue)}
.extras-layout{display:grid;grid-template-columns:1fr 330px;gap:16px;align-items:start}
.compact-products{max-height:390px;overflow:auto;padding-right:6px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.compact-product{padding:12px;border-radius:16px;margin:0;min-height:112px;display:grid;grid-template-columns:1fr;align-content:space-between;gap:10px}
.compact-product.selected{border-color:#22C55E;background:#f0fdf4;box-shadow:0 10px 25px #22c55e18}
.compact-product .product-info strong{font-size:16px;line-height:1.1}
.compact-product .product-info small{font-size:11px;padding:3px 8px;margin-top:5px}
.compact-buy{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left}
.compact-buy .product-price{font-size:17px;padding:7px 10px;border-radius:12px}
.qty-stepper{display:inline-grid;grid-template-columns:34px 48px 34px;border:1px solid #cbd5e1;border-radius:14px;overflow:hidden;background:#fff}
.qty-stepper button{border:0;background:#f8fafc;color:var(--blue);font-size:20px;font-weight:900;cursor:pointer}
.qty-stepper button:hover{background:#eaf2ff}
.qty-stepper input{width:48px!important;border:0!important;border-left:1px solid #e2e8f0!important;border-right:1px solid #e2e8f0!important;border-radius:0!important;padding:8px 4px!important;font-size:16px!important;box-shadow:none!important}
.compact-invoice{position:sticky;top:86px;display:grid;gap:14px;margin-top:0;background:linear-gradient(135deg,#f8fafc,#eef6ff)}
.compact-invoice small{display:block;color:#64748b;font-weight:800;text-transform:uppercase;letter-spacing:.04em;margin-bottom:4px}
.compact-invoice strong{display:block;font-size:28px;color:var(--blue)}
.compact-invoice p{font-size:13px;margin:8px 0 0}
.extras-empty-line{border:1px dashed #cbd5e1;border-radius:16px;padding:18px;color:#64748b;font-weight:800;background:#fff}
@media(max-width:980px){.extras-layout{grid-template-columns:1fr}.compact-products{max-height:none}.compact-invoice{position:static}.extras-toolbar{grid-template-columns:1fr}.category-filter{justify-content:flex-start}}

/* PATCH: Modal detalhe da reserva/factura */
.booking-modal{position:fixed;inset:0;background:rgba(2,6,23,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px}.booking-modal.show{display:flex}.booking-modal-card{width:min(760px,96vw);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:28px;box-shadow:0 30px 80px rgba(2,6,23,.35);position:relative;color:#071a3a}.modal-close{position:absolute;right:18px;top:14px;border:0;background:#f1f5f9;border-radius:12px;font-size:26px;width:42px;height:42px;cursor:pointer}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.detail-grid p{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:14px;margin:0}.detail-grid small{display:block;color:#64748b;margin-bottom:4px}.invoice-line,.invoice-total{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid #e2e8f0}.invoice-total{font-size:24px;border-bottom:0;margin-top:10px;background:#eff6ff;border-radius:16px;padding:18px}.booking-actions{display:flex;gap:8px;flex-wrap:wrap}.booking-actions button,.btn-primary{border:0;border-radius:12px;padding:10px 16px;font-weight:800;cursor:pointer}.booking-actions .primary,.btn-primary{background:#2563eb;color:#fff}.booking-actions .success{background:#22c55e;color:#fff}.booking-actions .danger{background:#ef4444;color:#fff}@media(max-width:720px){.detail-grid{grid-template-columns:1fr}.booking-modal{padding:10px}.booking-modal-card{padding:20px}}

/* TXEQUE patch: modal de pagamento e alertas */
.commission-modal label{display:block;font-weight:800;margin-top:14px;color:#0A2A66}
.commission-modal input,.commission-modal select{width:100%;padding:16px 18px;border:1px solid #dbe4f0;border-radius:16px;font-size:16px;margin-top:6px}
.commission-modal .btn{margin-top:18px;width:100%;background:#22C55E;color:#fff;border:none;border-radius:18px;padding:16px;font-weight:900}


/* PATCH: reserva anónima + extras compactos */
.privacy-note{display:flex;gap:14px;align-items:flex-start;background:#eff6ff;border:1px solid #bfdbfe;border-radius:18px;padding:14px 16px;margin:14px 0;color:#0a2a66}
.privacy-note strong{white-space:nowrap}
.privacy-note span{color:#475569}
.anon-final-card .search-card{align-items:end}

/* PATCH: botões de reserva lado a lado/empilhados */
.room-action-stack{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-items:center}
.room-action-stack .btn{white-space:nowrap}
@media(max-width:800px){.room-action-stack{justify-content:stretch}.room-action-stack .btn{width:100%}}


/* PATCH: sucesso modo discreto */
.discrete-success-modal{position:fixed;inset:0;background:rgba(10,42,102,.55);display:none;align-items:center;justify-content:center;z-index:9999;padding:24px;backdrop-filter:blur(5px)}
.discrete-success-modal.show{display:flex}
.discrete-success-card{width:min(620px,96vw);background:#fff;border-radius:28px;padding:34px;text-align:center;box-shadow:0 30px 80px rgba(15,23,42,.25);color:#0A2A66}
.success-icon{width:76px;height:76px;margin:0 auto 16px;border-radius:24px;background:#ECFDF5;display:flex;align-items:center;justify-content:center;font-size:38px}
.discrete-success-card h2{font-size:34px;margin:8px 0 10px;color:#0A2A66}
.discrete-success-card p{font-size:18px;line-height:1.45;color:#475569}
.success-code{margin:22px auto;padding:18px 24px;border:2px dashed #0A2A66;border-radius:18px;background:#F8FAFC;font-size:30px;font-weight:900;letter-spacing:1px;color:#0A2A66}
.success-total{font-size:22px;margin:8px 0 22px;color:#0f172a}
.success-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:16px}
.room-action-stack{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.room-action-stack .btn{white-space:nowrap}


/* PATCH: SMS da reserva discreta */
.sms-box{margin:18px 0;padding:16px;border:1px solid #dbe6f3;background:#f8fafc;border-radius:18px;text-align:left}
.sms-box h3{margin:0 0 6px;color:#0A2A66}
.sms-box p{font-size:14px!important;margin:0 0 12px!important;color:#64748b!important}
.sms-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.sms-row input{padding:14px 16px;border:1px solid #cbd5e1;border-radius:14px;font-size:16px;outline:none}
.sms-row input:focus{border-color:#2563eb;box-shadow:0 0 0 4px #2563eb1a}
.sms-row button:disabled{opacity:.7;cursor:not-allowed}
.sms-box.compact{max-width:520px}
@media(max-width:640px){.sms-row{grid-template-columns:1fr}.sms-row button{width:100%}}


/* ===== TXEQUE PATCH: Bar / Room Service compacto ===== */
.hero-mini.bar-hero{
  padding:34px 7vw;
  background:linear-gradient(135deg,#0A2A66,#123c86);
  color:white;
  border-bottom:1px solid #dbe3ef;
}
.hero-mini.bar-hero h1{font-size:42px;margin:12px 0 8px}
.hero-mini.bar-hero p{color:#dbeafe;font-size:18px;margin:0}
.bar-page{max-width:1360px}
.bar-booking-panel{margin-bottom:18px}
.bar-panel-title{display:flex;align-items:center;justify-content:space-between;gap:14px}
.bar-booking-grid{display:grid;grid-template-columns:1fr 1fr auto;gap:14px;align-items:end}
.bar-booking-grid label{display:block;font-weight:800;color:var(--blue);margin-bottom:7px}
.booking-info-card,.order-context{
  margin-top:14px;
  border:1px dashed #bfd0e7;
  background:#f8fbff;
  border-radius:16px;
  padding:14px 16px;
}
.booking-info-card strong,.order-context strong{color:var(--blue)}
.booking-info-card.ok{border-style:solid;background:#eef8ff;color:#10213f}
.bar-layout{display:grid;grid-template-columns:minmax(0,1.4fr) 420px;gap:22px;align-items:start}
.bar-products-panel,.bar-cart-panel{
  background:white;
  border:1px solid #dbe3ef;
  border-radius:22px;
  box-shadow:0 12px 34px rgba(15,23,42,.08);
  padding:22px;
}
.bar-cart-panel{position:sticky;top:92px}
.bar-products-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:14px}
.bar-products-head h2,.bar-cart-panel h2{margin:0 0 4px}
.bar-toolbar{display:grid;grid-template-columns:1.3fr .7fr;gap:12px;margin-bottom:16px}
.bar-products-grid{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(190px,1fr));
  gap:12px;
  max-height:620px;
  overflow:auto;
  padding-right:6px;
}
.bar-product-compact{
  border:1px solid #dbe3ef;
  border-radius:18px;
  padding:14px;
  background:#fff;
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:172px;
}
.bar-product-compact:hover{box-shadow:0 10px 26px rgba(10,42,102,.10);transform:translateY(-1px)}
.bar-product-title{font-weight:900;color:#0A2A66;line-height:1.1}
.bar-product-cat{align-self:flex-start;background:#eef2f7;color:#475569;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:800;text-transform:capitalize}
.bar-product-price{font-size:24px;font-weight:900;color:#0A2A66;margin-top:auto}
.bar-product-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}
.qty-mini{display:flex;align-items:center;border:1px solid #dbe3ef;border-radius:999px;overflow:hidden;background:#f8fafc}
.qty-mini button{border:0;background:#fff;color:#0A2A66;font-size:18px;font-weight:900;width:34px;height:34px;cursor:pointer}
.qty-mini span{min-width:30px;text-align:center;font-weight:900}
.bar-add-btn{border:0;border-radius:999px;background:#0A2A66;color:white;font-weight:900;padding:9px 12px;cursor:pointer}
.bar-cart-list{margin:16px 0;display:flex;flex-direction:column;gap:10px}
.cart-line{
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:10px;
  align-items:center;
  border:1px solid #dbe3ef;
  border-radius:14px;
  padding:10px;
  background:#fbfdff;
}
.cart-line strong{color:#0A2A66}
.cart-line input{width:70px!important;text-align:center;font-weight:900}
.cart-line span{font-weight:900}
.bar-total-box{
  display:flex;
  align-items:center;
  justify-content:space-between;
  background:#eef6ff;
  border:1px solid #bfdbfe;
  border-radius:18px;
  padding:16px;
  margin:14px 0;
}
.bar-total-box span{font-weight:900;color:#64748b}
.bar-total-box strong{font-size:30px;color:#0A2A66}
.bar-manual-guest{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}
.bar-manual-guest.hidden{display:none}
.btn.full{width:100%;margin-top:12px}
.empty-state{padding:22px;border:1px dashed #cbd5e1;border-radius:18px;background:#f8fafc;color:#64748b;text-align:center}
@media(max-width:1000px){
  .bar-layout{grid-template-columns:1fr}
  .bar-cart-panel{position:static}
  .bar-booking-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .bar-toolbar{grid-template-columns:1fr}
  .bar-products-grid{grid-template-columns:1fr;max-height:none}
  .bar-manual-guest{grid-template-columns:1fr}
}

/* =========================================================
   PATCH TXEQUE - Dashboard Cliente consolidado com Landing
   Não remove funcionalidades: mantém IDs q, city, neighborhood,
   sort, hotelList e funções existentes do client.js.
   ========================================================= */
.client-dashboard-page{background:#F8FAFC;font-family:Poppins,Arial,sans-serif;color:#0F172A;min-height:100vh}.client-topbar{height:82px;padding:0 38px;background:#fff;border-bottom:1px solid #E5E7EB;box-shadow:0 10px 30px rgba(15,23,42,.05)}.txq-brand{font-size:30px;letter-spacing:-.05em;text-decoration:none}.txq-brand span{color:#FF8A00}.client-nav{display:flex;align-items:center;gap:18px}.client-nav a,.client-nav button{font-size:17px;color:#0A2A66;font-weight:800}.client-hero{background:linear-gradient(135deg,#0A2A66,#123D88);color:#fff;padding:68px 38px 54px}.client-hero-inner{max-width:1320px;margin:0 auto}.client-badge{display:inline-flex;align-items:center;border:1px solid rgba(255,176,32,.45);background:rgba(255,176,32,.14);color:#FFB020;border-radius:999px;padding:11px 18px;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.client-hero h1{font-size:clamp(34px,5vw,58px);line-height:1.08;letter-spacing:-.055em;margin:10px 0 18px;max-width:1080px}.client-hero p{font-size:20px;line-height:1.6;margin:0 0 28px;color:rgba(255,255,255,.92)}.client-search-card{background:#fff;border-radius:23px;padding:18px;display:grid;grid-template-columns:1.15fr 1fr 1.6fr .9fr 1fr auto auto;gap:12px;box-shadow:0 28px 80px rgba(0,0,0,.18)}.client-search-card input,.client-search-card select{height:58px;border:1px solid #DDE6F2;border-radius:15px;padding:0 17px;font-size:16px;outline:none;background:#fff;color:#0F172A}.client-search-card input:focus,.client-search-card select:focus{border-color:#FF8A00;box-shadow:0 0 0 4px rgba(255,138,0,.13)}.client-search-card .btn{height:58px;border-radius:15px;font-size:17px;padding:0 22px}.gps-btn{background:#22C55E;color:#fff}.client-dashboard-shell{max-width:1320px;margin:0 auto;padding:28px 38px;display:grid;grid-template-columns:.92fr 1.08fr;gap:24px}.client-map-card,.client-hotels-card{background:#fff;border:1px solid #E5EAF2;border-radius:26px;padding:26px;box-shadow:0 18px 45px rgba(15,23,42,.06)}.client-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:20px}.client-card-head h2{font-size:30px;line-height:1.08;color:#0A2A66;letter-spacing:-.04em;margin:0}.client-card-head p{margin:6px 0 0;color:#64748B;font-size:17px;line-height:1.4}.radius-pill,.count-badge{display:inline-flex;align-items:center;justify-content:center;background:#EAF2FF;color:#0A2A66;border-radius:999px;padding:10px 16px;font-weight:800;min-width:56px}.client-map-placeholder{height:370px;border-radius:22px;background:linear-gradient(135deg,#EAF2FF,#F8FAFC);border:1px solid #D9E6F8;display:grid;place-items:center;text-align:center;color:#64748B;padding:28px}.client-map-placeholder .map-pin{width:62px;height:62px;border-radius:20px;background:#fff;display:grid;place-items:center;font-size:30px;box-shadow:0 18px 40px rgba(10,42,102,.12)}.client-map-placeholder strong{display:block;color:#0A2A66;font-size:20px}.client-hotel-list{display:grid;gap:16px}.client-hotel-list .card,.client-hotels-card .hotel-card{border:1px solid #E5EAF2;border-radius:22px;padding:22px;box-shadow:none;transition:.22s ease;background:#fff}.client-hotel-list .card:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,23,42,.08);border-color:#FFD8A3}.client-hotels-card .hotel-card{position:relative;overflow:hidden}.client-hotels-card .hotel-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#FF8A00}.client-hotels-card .hotel-card h3{font-size:26px;color:#0A2A66;letter-spacing:-.035em;margin:12px 0}.client-hotels-card .hotel-card p{font-size:16px;line-height:1.55}.client-hotels-card .hotel-card .chip{background:#EAF2FF;color:#0A2A66;text-transform:lowercase;font-size:13px}.client-hotels-card .hotel-card .price{color:#0A2A66;font-size:22px}.client-hotels-card .hotel-card .btn{background:#0A2A66;border-radius:14px;margin-top:10px}.txq-hotel-meta{display:flex;gap:10px;flex-wrap:wrap;margin:10px 0}.txq-hotel-meta span{display:inline-flex;align-items:center;gap:5px;background:#F8FAFC;border:1px solid #E5EAF2;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700;color:#475569}.gps-pending{background:#DCFCE7!important;color:#166534!important;border-color:#BBF7D0!important}@media(max-width:1100px){.client-search-card{grid-template-columns:1fr 1fr}.client-dashboard-shell{grid-template-columns:1fr}.client-map-placeholder{height:280px}}@media(max-width:768px){.client-topbar{height:auto;padding:18px 20px;display:flex;align-items:flex-start;gap:12px}.client-nav{flex-wrap:wrap;gap:10px}.client-nav a,.client-nav button{font-size:14px}.txq-brand{font-size:25px}.client-hero{padding:42px 20px}.client-hero h1{font-size:34px}.client-hero p{font-size:16px}.client-search-card{grid-template-columns:1fr;border-radius:18px}.client-dashboard-shell{padding:20px;gap:18px}.client-map-card,.client-hotels-card{padding:20px;border-radius:20px}.client-card-head{display:block}.radius-pill,.count-badge{margin-top:12px}.client-card-head h2{font-size:25px}}

/* =========================================================
   TXEQUE CLIENT DASHBOARD MODERNO
   Apenas visual/layout. IDs e funções existentes preservados.
   ========================================================= */
.txq-modern-dashboard{
  background:#F5F6FA;
  color:#1A1A1A;
  min-height:100vh;
  padding:32px;
}
.txq-modern-dashboard .topbar,
.txq-modern-dashboard .client-hero,
.txq-modern-dashboard .client-dashboard-shell{display:none!important}
.dashboard-frame{
  width:min(1180px,100%);
  min-height:720px;
  margin:0 auto;
  background:#FFFFFF;
  border:1px solid #E8E8E8;
  border-radius:18px;
  box-shadow:0 18px 55px rgba(18,24,40,.08);
  overflow:hidden;
  display:grid;
  grid-template-columns:180px 1fr;
}
.dashboard-sidebar{
  background:#FFFFFF;
  border-right:1px solid #E8E8E8;
  padding:18px 12px;
  display:flex;
  flex-direction:column;
  min-height:720px;
}
.sidebar-logo{
  display:flex;
  align-items:center;
  gap:7px;
  text-decoration:none;
  color:#0A2A66;
  margin:0 0 24px;
  padding:0 4px;
}
.logo-mark{
  width:22px;height:22px;border-radius:6px;
  display:grid;place-items:center;
  background:#0A2A66;color:#FFB020;
  font-size:13px;font-weight:800;
  box-shadow:0 3px 8px rgba(10,42,102,.18);
}
.logo-text{font-size:18px;font-weight:800;letter-spacing:-.04em;line-height:1}
.logo-text span,.logo-text b{color:#D85A30}.logo-text b{font-size:20px}
.sidebar-menu{display:flex;flex-direction:column;gap:7px}
.sidebar-item,
.sidebar-logout{
  display:flex;align-items:center;gap:10px;
  width:100%;border:0;background:transparent;
  padding:10px 9px;border-radius:8px;
  text-decoration:none;color:#555;
  font-size:13px;font-weight:500;
  cursor:pointer;font-family:Poppins,Arial,sans-serif;
}
.sidebar-item span,.sidebar-logout span{width:18px;text-align:center;color:#777;font-size:15px}
.sidebar-item.active{background:#FFF0E8;color:#D85A30;font-weight:600}
.sidebar-item.active span{color:#D85A30}
.sidebar-logout{margin-top:auto;color:#E53935}.sidebar-logout span{color:#E53935}
.dashboard-content{background:#FFFFFF;padding:24px 26px 28px;overflow:auto}
.dashboard-title-block h1{font-size:22px;line-height:1.25;margin:0 0 4px;font-weight:700;color:#1A1A1A}
.dashboard-title-block p{margin:0 0 20px;color:#888;font-size:14px}
.welcome-card{
  background:#FFFFFF;border:1px solid #E8E8E8;border-radius:12px;
  padding:18px;box-shadow:0 10px 26px rgba(18,24,40,.04);
}
.welcome-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:18px}
.welcome-head h2{font-size:20px;margin:0 0 3px;font-weight:700;color:#1A1A1A}
.welcome-head p{margin:0;color:#888;font-size:14px}
.location-badge{
  display:inline-flex;align-items:center;gap:6px;white-space:nowrap;
  border:1px solid #E8E8E8;background:#fff;border-radius:8px;
  padding:8px 12px;color:#1A1A1A;font-size:12px;font-weight:600;
}
.dashboard-searchbar{display:grid;grid-template-columns:1.45fr .9fr .7fr auto;gap:12px;align-items:end;margin-bottom:14px}
.dashboard-searchbar label{display:block}
.dashboard-searchbar label span{display:block;color:#555;font-size:12px;font-weight:600;margin-bottom:6px}
.dashboard-searchbar input,
.dashboard-searchbar select{
  width:100%;height:44px;border:1px solid #E8E8E8;border-radius:8px;background:#fff;
  padding:0 12px;color:#1A1A1A;font-family:Poppins,Arial,sans-serif;font-size:13px;outline:none;
}
.dashboard-searchbar input:focus,.dashboard-searchbar select:focus{border-color:#D85A30;box-shadow:0 0 0 3px rgba(216,90,48,.10)}
.search-main-btn{height:44px;border:0;border-radius:8px;padding:0 22px;background:#D85A30;color:white;font-weight:700;font-family:Poppins,Arial,sans-serif;cursor:pointer}
.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.feature-badges{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}
.feature-badge{display:flex;align-items:center;gap:10px;border:1px solid #E8E8E8;border-radius:8px;background:#fff;padding:12px;min-height:58px}
.feature-badge>span{color:#777;font-size:18px;width:22px;text-align:center}.feature-badge strong{display:block;color:#1A1A1A;font-size:13px;font-weight:700}.feature-badge small{display:block;color:#888;font-size:11px;margin-top:2px}
.compact-map{margin-top:14px;border:1px dashed #E8E8E8;border-radius:10px;background:#F9FAFC;padding:12px;min-height:auto;display:flex;align-items:center;gap:10px;color:#888;font-size:12px}
.compact-map strong{color:#1A1A1A}.compact-map em{margin-left:auto;font-style:normal;color:#D85A30}
.dashboard-section{margin-top:22px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.section-head h3{font-size:15px;margin:0;color:#1A1A1A;font-weight:700}.section-head a{color:#D85A30;text-decoration:none;font-size:12px;font-weight:600}.count-badge{min-width:28px;height:28px;border-radius:999px;background:#EEF4FF;color:#0A2A66;display:grid;place-items:center;font-weight:800;font-size:13px}
.recent-booking-card{display:grid;grid-template-columns:74px 1fr auto;align-items:center;gap:14px;border:1px solid #E8E8E8;border-radius:12px;background:#fff;padding:12px}.recent-booking-card img{width:74px;height:74px;border-radius:8px;object-fit:cover}.booking-info strong{display:block;font-size:13px;color:#1A1A1A}.booking-info span,.booking-info small{display:block;color:#888}.booking-info span{font-size:12px;margin:3px 0}.booking-info small{font-size:11px}.booking-status-box{text-align:right;display:grid;gap:4px;justify-items:end}.confirmed-pill{background:#E8F5E9;color:#2E7D32;border-radius:20px;padding:4px 12px;font-size:11px;font-weight:700}.booking-status-box small{color:#888;font-size:11px}.booking-status-box strong{font-size:14px;color:#1A1A1A}
.recommended-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.recommended-grid img{width:100%;height:86px;border-radius:8px;object-fit:cover;border:1px solid #E8E8E8}
.live-results-section{border-top:1px solid #E8E8E8;padding-top:18px}.client-hotel-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.txq-modern-dashboard .hotel-card{border-radius:12px;box-shadow:none;padding:14px}.txq-modern-dashboard .hotel-card h3{font-size:16px}.txq-modern-dashboard .chip{background:#FFF0E8;color:#D85A30}.txq-modern-dashboard .gps-pending{background:#E8F5E9;color:#2E7D32}.txq-modern-dashboard .price{color:#1A1A1A;font-size:16px}.txq-modern-dashboard .btn{background:#D85A30;border-radius:8px;padding:10px 14px}
@media(max-width:900px){.txq-modern-dashboard{padding:0}.dashboard-frame{border-radius:0;grid-template-columns:1fr}.dashboard-sidebar{min-height:auto;border-right:0;border-bottom:1px solid #E8E8E8}.sidebar-menu{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-logout{margin-top:12px}.dashboard-searchbar{grid-template-columns:1fr}.feature-badges,.recommended-grid,.client-hotel-list{grid-template-columns:1fr 1fr}.recent-booking-card{grid-template-columns:64px 1fr}.booking-status-box{grid-column:1/-1;text-align:left;justify-items:start}.welcome-head{display:block}.location-badge{margin-top:12px}}
@media(max-width:560px){.dashboard-content{padding:18px}.feature-badges,.recommended-grid,.client-hotel-list,.sidebar-menu{grid-template-columns:1fr}.dashboard-frame{min-height:100vh}.dashboard-sidebar{min-height:auto}.recent-booking-card{grid-template-columns:1fr}.recent-booking-card img{width:100%;height:150px}.compact-map{display:block}.compact-map em{display:block;margin-top:6px}}

/* =========================================================
   PATCH TXEQUE - Menus funcionais no dashboard cliente
   Mantém o mesmo layout, sem desaparecer a sidebar.
   ========================================================= */
.txq-modern-dashboard{padding:8px;background:#F5F6FA!important;overflow-x:hidden}.txq-app-shell{width:calc(100vw - 16px);max-width:none;min-height:calc(100vh - 16px);grid-template-columns:190px minmax(0,1fr);border-radius:18px}.txq-app-shell .dashboard-content{padding:28px 28px 34px;overflow:auto}.dashboard-tab{display:none}.dashboard-tab.active{display:block}.sidebar-logo.active{background:transparent!important}.sidebar-menu .sidebar-item{cursor:pointer}.full-height-section{min-height:560px}.hidden-table{display:none!important}.recent-bookings-list,.bookings-list{display:grid;gap:14px}.compact-booking-card{margin-bottom:0}.recent-booking-card{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:14px;align-items:center}.recent-booking-card img{width:76px;height:76px;object-fit:cover;border-radius:10px}.booking-info{display:flex;flex-direction:column;gap:3px;min-width:0}.booking-info strong{font-size:14px;color:#1A1A1A}.booking-info span,.booking-info small{color:#888;font-size:12px}.booking-status-box{display:flex;flex-direction:column;align-items:flex-end;gap:5px;min-width:130px}.booking-status-box small{color:#777;font-size:12px}.booking-status-box strong{font-size:16px;color:#1A1A1A}.confirmed-pill{background:#E8F5E9;color:#2E7D32;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:800}.status-pill-pending{background:#FFF7E6;color:#B26A00}.status-pill-cancelled{background:#FDECEC;color:#E53935}.status-pill-checked_in{background:#E8F5E9;color:#2E7D32}.status-pill-checked_out{background:#EEF2F7;color:#475569}.booking-actions-inline{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.mini-action{border:0;background:#D85A30;color:#fff;border-radius:9px;padding:8px 12px;font-weight:800;cursor:pointer;text-decoration:none;font-size:12px}.mini-action.danger{background:#E53935}.section-head .mini-action{margin-left:auto}.empty-state{border:1px dashed #E8E8E8;background:#FAFAFB;border-radius:14px;padding:22px;color:#888;text-align:center}.empty-state.big{min-height:240px;display:grid;place-content:center;gap:8px}.empty-state strong{display:block;color:#1A1A1A;font-size:18px}.empty-state span{display:block;color:#888}.payment-line{background:#fff;border:1px solid #E8E8E8;border-radius:12px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:14px}.payment-line div{display:flex;flex-direction:column;gap:3px}.payment-line strong{color:#1A1A1A}.payment-line span,.payment-line small{font-size:12px;color:#888}.payment-line b{font-size:16px;color:#1A1A1A}.profile-card{border:1px solid #E8E8E8;border-radius:14px;background:#fff;overflow:hidden}.profile-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 18px;border-bottom:1px solid #E8E8E8}.profile-row:last-child{border-bottom:0}.profile-row span{color:#888}.profile-row strong{color:#1A1A1A}.settings-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.settings-card{border:1px solid #E8E8E8;border-radius:14px;background:#fff;padding:18px;display:flex;flex-direction:column;gap:8px}.settings-card strong{color:#1A1A1A}.settings-card span{color:#888;font-size:13px;line-height:1.5}.dashboard-section .section-head a{color:#D85A30!important;font-weight:700}.search-main-btn,.mini-action{background:#D85A30!important}.sidebar-logout{margin-top:auto}.dashboard-searchbar input:focus,.dashboard-searchbar select:focus{border-color:#D85A30!important;box-shadow:0 0 0 4px rgba(216,90,48,.10)}
@media(max-width:900px){.txq-modern-dashboard{padding:0}.txq-app-shell{width:100vw;min-height:100vh;border-radius:0;grid-template-columns:1fr}.txq-app-shell .dashboard-sidebar{position:sticky;top:0;z-index:10;min-height:auto;border-right:0;border-bottom:1px solid #E8E8E8;display:block;overflow:auto;white-space:nowrap}.sidebar-menu{display:flex;gap:8px;overflow:auto;padding-bottom:6px}.sidebar-menu .sidebar-item{min-width:max-content}.sidebar-logout{display:none}.txq-app-shell .dashboard-content{padding:20px}.recent-booking-card{grid-template-columns:64px 1fr}.recent-booking-card img{width:64px;height:64px}.booking-status-box{grid-column:1/-1;align-items:flex-start}.settings-grid{grid-template-columns:1fr}.payment-line,.profile-row{align-items:flex-start;flex-direction:column}.dashboard-searchbar,.feature-badges{grid-template-columns:1fr!important}}

/* =========================================================
   PATCH TXEQUE - Detalhes funcionais modernos
   ========================================================= */
.txq-detail-loading,.txq-rooms-loading{background:#fff;border:1px solid #E8E8E8;border-radius:18px;padding:32px;text-align:center;color:#888;font-weight:600}
.txq-detail-hero-card,.txq-detail-card{background:#fff;border:1px solid #E8E8E8;border-radius:18px;overflow:hidden;margin:0 0 18px;box-shadow:0 16px 40px rgba(17,24,39,.05)}
.txq-detail-cover{height:240px;background-size:cover;background-position:center}
.txq-detail-body{padding:26px 32px}.txq-detail-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start}.txq-back-link{display:inline-flex;color:#D85A30;text-decoration:none;font-weight:800;margin-bottom:12px}.txq-detail-head h1{margin:0 0 8px;font-size:34px;color:#0A2A66;letter-spacing:-.03em}.txq-detail-head p{font-size:15px;line-height:1.65}.txq-detail-price-box{min-width:160px;background:#FFF0E8;border:1px solid #FFD8C9;border-radius:16px;padding:16px;text-align:right}.txq-detail-price-box span,.txq-detail-price-box small{display:block;color:#888;font-size:12px}.txq-detail-price-box strong{display:block;color:#D85A30;font-size:24px;line-height:1.2}.txq-detail-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.txq-detail-chips span,.txq-live-pill,.txq-rating-pill{display:inline-flex;align-items:center;background:#F8FAFC;border:1px solid #E8E8E8;border-radius:999px;padding:9px 14px;color:#334155;font-weight:800;font-size:13px}.txq-detail-chips span:first-child{background:#FFF0E8;color:#D85A30;border-color:#FFD8C9}.txq-detail-card{padding:28px 32px}.txq-detail-card h2{margin:0 0 14px;font-size:24px;color:#0A2A66}.txq-section-title-row{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.txq-section-title-row h2{margin:0}.txq-live-pill{background:#E8F5E9;color:#2E7D32;border-color:#C8E6C9}.txq-rating-pill{background:#FFF7E6;color:#B26A00;border-color:#FFE2A8}.txq-availability-form{display:grid;grid-template-columns:1.1fr .9fr .8fr .8fr auto;gap:14px;align-items:end}.txq-availability-form label span{display:block;margin:0 0 7px;color:#888;font-size:13px}.txq-availability-form input,.txq-availability-form select{width:100%;height:48px;border:1px solid #DDE5F2;border-radius:12px;background:#fff;padding:0 14px;font-size:15px;outline:none;font-family:Poppins,Arial,sans-serif}.txq-availability-form input:focus,.txq-availability-form select:focus{border-color:#D85A30;box-shadow:0 0 0 4px rgba(216,90,48,.10)}.txq-primary-action,.txq-secondary-action{height:48px;border:0;border-radius:12px;padding:0 22px;background:#D85A30;color:#fff;font-weight:900;font-family:Poppins,Arial,sans-serif;cursor:pointer;white-space:nowrap}.txq-primary-action:disabled{opacity:.65;cursor:not-allowed}.txq-secondary-action{background:#0A2A66}.txq-products-detail{margin-bottom:18px}.txq-rooms-target{scroll-margin-top:24px}.txq-room-results-card{padding:28px 32px}.txq-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.txq-room-option{display:grid;grid-template-columns:116px minmax(0,1fr) auto;gap:14px;align-items:center;border:1px solid #E8E8E8;border-radius:16px;padding:14px;background:#fff}.txq-room-img{width:116px;height:94px;border-radius:12px;background-size:cover;background-position:center}.txq-room-chip{display:inline-flex;width:max-content;background:#FFF0E8;color:#D85A30;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.txq-room-info h3{margin:8px 0 4px;color:#0A2A66}.txq-room-info p{margin:0 0 8px}.txq-room-info strong{font-size:20px;color:#111827}.txq-room-actions{display:flex;flex-direction:column;gap:8px}.txq-room-actions button{height:42px;border-radius:10px;padding:0 14px}.txq-empty-rooms{text-align:center}.txq-review-line{border-top:1px solid #E8E8E8;padding:12px 0;display:grid;grid-template-columns:70px 1fr auto;gap:12px;align-items:center}.txq-review-line small{color:#888}.txq-review-line:first-of-type{border-top:0}
@media(max-width:1000px){.txq-availability-form{grid-template-columns:1fr 1fr}.txq-availability-form .txq-primary-action{grid-column:1/-1}.txq-room-grid{grid-template-columns:1fr}.txq-detail-head{flex-direction:column}.txq-detail-price-box{text-align:left;width:100%}}
@media(max-width:640px){.txq-detail-body,.txq-detail-card{padding:20px}.txq-detail-head h1{font-size:26px}.txq-detail-cover{height:190px}.txq-availability-form{grid-template-columns:1fr}.txq-room-option{grid-template-columns:1fr}.txq-room-img{width:100%;height:170px}.txq-room-actions{flex-direction:column}.txq-review-line{grid-template-columns:1fr}}


/* TXEQUE - modal bonito de avaliação */
.txq-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.48);display:flex;align-items:center;justify-content:center;z-index:99999;padding:20px;backdrop-filter:blur(4px)}
.txq-modal-card{width:min(500px,100%);background:#fff;border:1px solid #E8E8E8;border-radius:24px;padding:28px;box-shadow:0 28px 80px rgba(15,23,42,.24);text-align:center;animation:txqModalPop .18s ease}
@keyframes txqModalPop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}
.txq-modal-icon{width:58px;height:58px;border-radius:20px;background:#FFF0E8;color:#D85A30;display:grid;place-items:center;margin:0 auto 14px;font-size:28px}.txq-modal-card h2{margin:0 0 8px;color:#1A1A1A}.txq-modal-card p{margin:0 0 18px;color:#888;line-height:1.5}.txq-stars{display:flex;justify-content:center;gap:8px;margin:12px 0 18px}.txq-stars button{border:0;background:#F1F5F9;color:#CBD5E1;width:48px;height:48px;border-radius:15px;font-size:26px;cursor:pointer}.txq-stars button.active{background:#FFF0E8;color:#D85A30}.txq-modal-card textarea{width:100%;border:1px solid #E8E8E8;border-radius:16px;padding:14px;resize:vertical;outline:none}.txq-modal-card textarea:focus{border-color:#D85A30;box-shadow:0 0 0 4px rgba(216,90,48,.12)}.txq-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.txq-modal-actions .btn{border:0}.txq-modal-actions .btn[disabled]{opacity:.55;cursor:not-allowed}.btn.light{background:#F1F5F9;color:#334155}


/* TXEQUE - imagens reais vindas do superadmin/gestor */
.hotel-cover-img{width:100%;height:170px;object-fit:cover;border-radius:18px;margin-bottom:14px;background:#F1F5F9;border:1px solid #E5EAF2}.details-cover-img{width:100%;height:330px;object-fit:cover;border-radius:24px;margin-bottom:22px;background:#F1F5F9;border:1px solid #E5EAF2}.details-hero-card{overflow:hidden}@media(max-width:768px){.hotel-cover-img{height:150px}.details-cover-img{height:220px}}

/* =========================================================
   TXEQUE PATCH - Imagens reais / galeria no cliente
   ========================================================= */
.recommended-grid .recommended-photo{
  appearance:none;border:0;background:transparent;padding:0;margin:0;text-align:left;cursor:pointer;position:relative;overflow:hidden;border-radius:12px;min-height:92px;
}
.recommended-grid .recommended-photo img{
  width:100%;height:100%;min-height:92px;display:block;object-fit:cover;border-radius:12px;border:1px solid #E8E8E8;transition:transform .22s ease, filter .22s ease;
}
.recommended-grid .recommended-photo span{
  position:absolute;left:10px;right:10px;bottom:10px;background:rgba(10,42,102,.82);color:#fff;font-size:12px;font-weight:700;border-radius:999px;padding:5px 9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.recommended-grid .recommended-photo:hover img{transform:scale(1.04);filter:saturate(1.08)}
.txq-gallery-card{overflow:hidden}.txq-gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px}.txq-gallery-grid button{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;border-radius:14px;overflow:hidden}.txq-gallery-grid img{width:100%;height:130px;object-fit:cover;border-radius:14px;border:1px solid #E8E8E8;display:block;transition:transform .2s ease}.txq-gallery-grid button:hover img{transform:scale(1.04)}
.txq-image-preview{position:fixed;inset:0;background:rgba(0,0,0,.76);display:none;align-items:center;justify-content:center;z-index:99999;padding:30px}.txq-image-preview.show{display:flex}.txq-image-preview img{max-width:min(1050px,96vw);max-height:88vh;border-radius:18px;box-shadow:0 24px 80px rgba(0,0,0,.35);object-fit:contain;background:#fff}.txq-image-preview button{position:absolute;right:28px;top:22px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#0A2A66;font-size:28px;font-weight:800;cursor:pointer;line-height:1}
@media(max-width:900px){.txq-gallery-grid{grid-template-columns:repeat(2,1fr)}.txq-gallery-grid img{height:120px}}
@media(max-width:560px){.txq-gallery-grid{grid-template-columns:1fr}.txq-gallery-grid img{height:180px}}


/* TXEQUE PATCH: mapa real no dashboard do cliente */
.client-map-placeholder{display:block;padding:0;overflow:hidden;background:#fff}.txq-live-map{display:grid;grid-template-rows:1fr auto;height:100%;min-height:370px}.txq-live-map iframe{width:100%;height:250px;border:0;display:block;border-radius:18px 18px 0 0}.txq-map-list{display:grid;gap:8px;padding:12px;background:#fff}.txq-map-row{width:100%;border:1px solid #E5EAF2;background:#F8FAFC;border-radius:14px;padding:10px 12px;display:flex;justify-content:space-between;align-items:center;text-align:left;color:#0A2A66;font-weight:800;cursor:pointer}.txq-map-row strong{color:#D85A30}.txq-map-row.user{background:#FFF0E8;border-color:#FFD5C6;color:#0F172A;cursor:default}.map-empty{height:100%;min-height:330px;display:grid;place-items:center;text-align:center;padding:28px}.hotel-actions{display:flex;gap:10px;flex-wrap:wrap}.btn.light{background:#F3F4F6!important;color:#0A2A66!important}.details-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-top:14px}.details-gallery img{width:100%;height:130px;object-fit:cover;border-radius:14px;border:1px solid #E5EAF2}
@media(max-width:768px){.txq-live-map{min-height:280px}.txq-live-map iframe{height:210px}.txq-map-row{display:block}.txq-map-row strong{display:block;margin-top:4px}}

/* PATCH TXEQUE: mapa amplo e lista escalável */
.client-dashboard-shell{grid-template-columns:1fr!important;max-width:1480px!important}
.client-map-card{grid-column:1/-1!important;padding:22px!important}
.client-map-placeholder{height:560px!important;min-height:560px!important;width:100%!important;border-radius:24px!important;overflow:hidden!important;background:#fff!important;display:block!important;padding:0!important}
.txq-live-map-wide{position:relative;height:100%;min-height:560px;display:block;background:#fff;border-radius:24px;overflow:hidden}
.txq-live-map-wide iframe{width:100%!important;height:100%!important;min-height:560px!important;border:0!important;border-radius:24px!important;display:block}
.txq-map-floating-card{position:absolute;left:22px;top:22px;z-index:3;background:rgba(255,255,255,.96);border:1px solid #E5EAF2;border-radius:20px;box-shadow:0 20px 60px rgba(15,23,42,.18);padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:320px;backdrop-filter:blur(8px)}
.txq-map-floating-card strong{display:block;color:#0A2A66;font-size:18px;font-weight:900}.txq-map-floating-card span{display:block;color:#64748B;font-size:13px;margin-top:2px}.txq-map-floating-actions{display:flex;gap:8px;flex-wrap:wrap}.txq-map-floating-actions button{border:0;border-radius:12px;background:#D85A30;color:#fff;font-weight:900;padding:10px 12px;cursor:pointer}.txq-map-floating-actions button:first-child{background:#0A2A66}
.txq-map-drawer{position:absolute;right:22px;top:22px;bottom:22px;width:min(390px,calc(100% - 44px));z-index:4;background:#fff;border:1px solid #E5EAF2;border-radius:22px;box-shadow:0 28px 80px rgba(15,23,42,.22);padding:16px;display:none;flex-direction:column;gap:12px}.txq-map-drawer.open{display:flex}.txq-map-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.txq-map-drawer-head strong{display:block;color:#0A2A66;font-size:18px}.txq-map-drawer-head span{display:block;color:#64748B;font-size:12px;margin-top:2px}.txq-map-drawer-head button{border:0;background:#F3F4F6;color:#0A2A66;border-radius:12px;width:34px;height:34px;font-size:24px;line-height:1;cursor:pointer}.txq-map-search{height:44px;border:1px solid #DDE6F2;border-radius:14px;padding:0 13px;font-size:14px;outline:none}.txq-map-search:focus{border-color:#D85A30;box-shadow:0 0 0 4px rgba(216,90,48,.12)}.txq-map-drawer-list{overflow:auto;display:grid;gap:8px;padding-right:4px}.txq-map-drawer-row{width:100%;border:1px solid #E5EAF2;background:#F8FAFC;border-radius:14px;padding:11px 12px;display:flex;justify-content:space-between;align-items:center;gap:12px;text-align:left;cursor:pointer}.txq-map-drawer-row span b{display:block;color:#0A2A66;font-size:14px}.txq-map-drawer-row span small{display:block;color:#64748B;margin-top:3px;max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txq-map-drawer-row strong{color:#D85A30;font-size:13px;white-space:nowrap}.txq-map-empty-wide{height:100%;min-height:560px}
.client-hotels-card{width:100%}.client-hotel-list{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
@media(max-width:768px){.client-map-placeholder,.txq-live-map-wide,.txq-live-map-wide iframe{height:420px!important;min-height:420px!important}.txq-map-floating-card{left:12px;right:12px;top:12px;min-width:0;display:block}.txq-map-floating-actions{margin-top:10px}.txq-map-drawer{left:12px;right:12px;top:12px;bottom:12px;width:auto}.client-hotel-list{grid-template-columns:1fr}}


/* =========================================================
   TXEQUE HOTFIX - Mapa ocupar TODO o espaço disponível
   Remove herança do compact-map e força o iframe a preencher o card.
   ========================================================= */
#clientMap,
#clientMap.txq-full-map-host,
#clientMap.client-map-placeholder{
  width:100% !important;
  max-width:none !important;
  min-width:0 !important;
  height:620px !important;
  min-height:620px !important;
  display:block !important;
  align-items:initial !important;
  justify-content:initial !important;
  gap:0 !important;
  padding:0 !important;
  margin-top:18px !important;
  overflow:hidden !important;
  position:relative !important;
  border-radius:24px !important;
  background:#fff !important;
}
#clientMap > .txq-live-map,
#clientMap > .txq-live-map-wide{
  position:relative !important;
  display:block !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  min-height:620px !important;
  overflow:hidden !important;
  border-radius:24px !important;
}
#clientMap iframe,
#clientMap .txq-live-map-wide iframe{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  max-width:none !important;
  height:100% !important;
  min-height:620px !important;
  border:0 !important;
  display:block !important;
  border-radius:24px !important;
}
#clientMap .txq-map-floating-card{
  left:22px !important;
  top:22px !important;
}
@media(max-width:768px){
  #clientMap,
  #clientMap.txq-full-map-host,
  #clientMap.client-map-placeholder,
  #clientMap > .txq-live-map,
  #clientMap > .txq-live-map-wide,
  #clientMap iframe,
  #clientMap .txq-live-map-wide iframe{
    height:460px !important;
    min-height:460px !important;
  }
}


/* PATCH TXEQUE - capas consistentes no cliente */
.details-cover-img{
  width:100%;
  height:320px !important;
  max-height:320px !important;
  object-fit:cover !important;
  object-position:center center !important;
  border-radius:24px;
  display:block;
  background:#F1F5F9;
}
.hotel-cover-img,
.recommended-grid .recommended-photo img{
  object-fit:cover;
  object-position:center center;
}
@media(max-width:768px){
  .details-cover-img{
    height:220px !important;
    max-height:220px !important;
  }
}

/* TXEQUE - perfil editável do cliente */
.client-profile-form{display:flex;flex-direction:column;gap:0}
.client-profile-form .profile-row{display:grid;grid-template-columns:220px 1fr;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid #e5e7eb}
.client-profile-form .profile-row input{width:100%;border:1px solid #dbe3ef;border-radius:14px;padding:14px 16px;font:inherit;font-weight:700;color:#0A2A66;background:#fff;outline:none}
.client-profile-form .profile-row input:focus{border-color:#0A2A66;box-shadow:0 0 0 4px rgba(10,42,102,.08)}
.client-profile-form .profile-actions{display:flex;justify-content:flex-end;padding:18px 20px}
@media(max-width:700px){.client-profile-form .profile-row{grid-template-columns:1fr;gap:8px}.client-profile-form .profile-actions{justify-content:stretch}.client-profile-form .profile-actions button{width:100%}}


/* TXEQUE - Página Reserva Anónima Moderna */
.txq-anon-modern-page{
  background:#F8FAFC;
  color:#0A2A66;
  font-family:Poppins,Arial,sans-serif;
}

.anon-modern-nav{
  height:78px;
  background:#fff;
  border-bottom:1px solid #E5E7EB;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 7vw;
  position:sticky;
  top:0;
  z-index:20;
}

.anon-brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}

.anon-modern-nav nav{
  display:flex;
  align-items:center;
  gap:18px;
}

.anon-modern-nav nav a{
  text-decoration:none;
  color:#0A2A66;
  font-weight:800;
}

.login-pill{
  background:#0A2A66;
  color:#fff!important;
  padding:10px 18px;
  border-radius:999px;
}

.anon-modern-shell{
  width:min(1180px,92vw);
  margin:34px auto;
}

.anon-hero-card{
  background:linear-gradient(135deg,#0A2A66,#123D88);
  color:#fff;
  border-radius:28px;
  padding:44px;
  display:grid;
  grid-template-columns:1.4fr .6fr;
  gap:28px;
  align-items:center;
  box-shadow:0 24px 70px rgba(10,42,102,.22);
}

.anon-badge{
  display:inline-flex;
  background:rgba(255,176,32,.16);
  border:1px solid rgba(255,176,32,.4);
  color:#FFB020;
  padding:9px 14px;
  border-radius:999px;
  font-size:12px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.anon-hero-card h1{
  font-size:46px;
  line-height:1.06;
  margin:18px 0;
  color:#fff;
}

.anon-hero-card p{
  font-size:18px;
  line-height:1.55;
  color:#DBEAFE;
}

.anon-phone-preview{
  background:#fff;
  color:#0A2A66;
  border-radius:24px;
  padding:26px;
  box-shadow:0 18px 50px rgba(0,0,0,.18);
}

.anon-phone-preview small{
  color:#64748B;
  font-weight:700;
}

.anon-phone-preview strong{
  display:block;
  font-size:24px;
  margin:8px 0 16px;
}

.anon-phone-preview span{
  display:inline-flex;
  background:#DCFCE7;
  color:#166534;
  padding:8px 12px;
  border-radius:999px;
  font-weight:900;
}

.anon-panel{
  background:#fff;
  border:1px solid #E5E7EB;
  border-radius:24px;
  padding:28px;
  margin-top:24px;
  box-shadow:0 14px 40px rgba(15,23,42,.06);
}

.anon-headline h2{
  margin:0;
  font-size:28px;
  color:#0A2A66;
}

.anon-search-grid{
  display:grid;
  grid-template-columns:1.4fr .8fr .7fr .8fr .7fr auto;
  gap:14px;
  align-items:end;
}

.anon-search-grid label span{
  display:block;
  font-size:13px;
  font-weight:800;
  color:#64748B;
  margin-bottom:7px;
}

.anon-search-grid input,
.anon-search-grid select{
  width:100%;
  height:48px;
  border:1px solid #DDE6F2;
  border-radius:14px;
  padding:0 14px;
  font-family:Poppins,Arial,sans-serif;
  outline:none;
}

.anon-search-grid input:focus,
.anon-search-grid select:focus{
  border-color:#D85A30;
  box-shadow:0 0 0 4px rgba(216,90,48,.12);
}

.anon-primary-btn{
  height:48px;
  border:0;
  border-radius:14px;
  padding:0 22px;
  background:#D85A30;
  color:#fff;
  font-weight:900;
  font-family:Poppins,Arial,sans-serif;
  cursor:pointer;
}

.anon-results-space{
  margin-top:24px;
}

.lookup-panel{
  display:grid;
  grid-template-columns:1fr auto;
  gap:20px;
  align-items:center;
}

.lookup-form{
  display:flex;
  gap:10px;
}

.lookup-form input{
  height:48px;
  min-width:280px;
  border:1px solid #DDE6F2;
  border-radius:14px;
  padding:0 14px;
}

@media(max-width:900px){
  .anon-modern-nav{
    padding:16px 20px;
    height:auto;
    display:block;
  }

  .anon-modern-nav nav{
    margin-top:14px;
    flex-wrap:wrap;
  }

  .anon-hero-card{
    grid-template-columns:1fr;
    padding:28px;
  }

  .anon-hero-card h1{
    font-size:34px;
  }

  .anon-search-grid{
    grid-template-columns:1fr;
  }

  .lookup-panel{
    grid-template-columns:1fr;
  }

  .lookup-form{
    flex-direction:column;
  }

  .lookup-form input{
    min-width:0;
    width:100%;
  }
}