/* HotelPreflight unified shell v0.28.0 — presentation only.
   One visual system for public landing, Pricing, Affiliate, Preflight and PMS. */
:root{--hpf-cover:url('hotelpreflight-pms-cover.webp');--hpf-shell-navy:#0b2345;--hpf-shell-blue:#2f67ff;--hpf-shell-line:#dbe5f2;}

/* ---------- shared photographic top cover ---------- */
.hotelpreflight-homepage-v2 #authScreen .landing-sticky-head{
  position:sticky;top:0;z-index:20;isolation:isolate;overflow:hidden;
  background:transparent!important;border-bottom:1px solid rgba(210,224,241,.76);
  box-shadow:0 10px 30px rgba(17,48,91,.08);
}
.hotelpreflight-homepage-v2 #authScreen .landing-sticky-head::before{
  content:"";position:absolute;inset:0;z-index:-2;
  background:var(--hpf-cover) center 45%/cover no-repeat;
  transform:scale(1.01);
}
.hotelpreflight-homepage-v2 #authScreen .landing-sticky-head::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(249,252,255,.97) 0%,rgba(249,252,255,.89) 36%,rgba(246,250,255,.61) 62%,rgba(238,247,255,.28) 100%);
}
.hotelpreflight-homepage-v2 #authScreen .landing-ticker.slogan-ticker{
  background:linear-gradient(90deg,rgba(10,34,69,.93),rgba(19,61,112,.82),rgba(10,34,69,.91))!important;
  border-bottom:1px solid rgba(255,255,255,.16);box-shadow:none;backdrop-filter:blur(2px);
}
.hotelpreflight-homepage-v2 #authScreen .landing-public-header{
  background:linear-gradient(90deg,rgba(255,255,255,.72),rgba(255,255,255,.32));
  backdrop-filter:blur(5px);min-height:82px;
}
.hotelpreflight-homepage-v2 #authScreen .landing-data-credit{
  background:rgba(255,255,255,.50);backdrop-filter:blur(5px);border-top:1px solid rgba(255,255,255,.42);
}
.hotelpreflight-homepage-v2 #authScreen .landing-live-pill,
.hotelpreflight-homepage-v2 #authScreen .landing-language-control{
  background:rgba(255,255,255,.82)!important;backdrop-filter:blur(8px);box-shadow:0 8px 22px rgba(17,48,91,.06);
}

/* ---------- authenticated app: same cover spans topbar + ticker + page heading ---------- */
#appShell{position:relative;isolation:isolate;}
#appShell::before{
  content:"";position:absolute;z-index:0;pointer-events:none;
  left:var(--sidebar-width);right:0;top:0;height:330px;
  background:
    linear-gradient(90deg,rgba(249,252,255,.97) 0%,rgba(249,252,255,.89) 34%,rgba(241,248,255,.55) 63%,rgba(229,243,255,.18) 100%),
    var(--hpf-cover) center 45%/cover no-repeat;
  border-bottom:1px solid rgba(205,221,240,.62);
}
#appShell>.rea-sidebar,#appShell>.topbar,#appShell>.slogan-ticker,#appShell>.page{position:relative;z-index:1;}
#appShell .topbar{
  background:rgba(255,255,255,.72)!important;backdrop-filter:blur(9px);box-shadow:none;border-bottom:1px solid rgba(207,221,239,.65);
}
#appShell>.slogan-ticker{
  display:flex!important;
  background:linear-gradient(90deg,rgba(10,34,69,.91),rgba(18,59,108,.78),rgba(10,34,69,.91))!important;
  box-shadow:none;border-bottom:1px solid rgba(255,255,255,.14);backdrop-filter:blur(2px);
}
#appShell .page{background:transparent;}
#appShell.pms-mode .pms-page-heading,
#appShell:not(.pms-mode) .app-page-hero{
  background:linear-gradient(90deg,rgba(255,255,255,.82),rgba(255,255,255,.58),rgba(255,255,255,.30))!important;
  border:1px solid rgba(201,219,241,.78)!important;backdrop-filter:blur(4px);
  box-shadow:0 14px 36px rgba(20,57,105,.09)!important;
}
#appShell.pms-mode .pms-page-heading>div{max-width:min(780px,70%)!important;}
#appShell.pms-mode .pms-page-heading h2,#appShell:not(.pms-mode) .app-page-hero h1{color:#08285b;text-shadow:0 1px 0 rgba(255,255,255,.40);}
#appShell.pms-mode .pms-page-heading .muted,#appShell:not(.pms-mode) .app-page-hero .muted{color:#49698f;}

/* ---------- public Pricing / Affiliate use the same landing shell ---------- */
body.public-unified-page{margin:0;min-height:100vh;background:#f3f7fc;color:#11233f;}
body.public-unified-page .landing-main.public-unified-main{max-width:1180px;padding:42px 34px 54px;}
body.public-unified-page .public-unified-hero{
  margin:0 0 22px;padding:34px 36px;border:1px solid #dbe5f2;border-radius:24px;background:rgba(255,255,255,.94);
  box-shadow:0 18px 48px rgba(11,35,69,.09);
}
body.public-unified-page .public-unified-hero .eyebrow{margin:0;color:#2f67ff;font-size:12px;font-weight:900;letter-spacing:.13em;}
body.public-unified-page .public-unified-hero h1{margin:10px 0 14px;max-width:940px;color:#0b2345;font-size:clamp(36px,5vw,60px);line-height:1.04;letter-spacing:-.04em;}
body.public-unified-page .public-unified-hero .lead{max-width:900px;color:#62748c;font-size:18px;line-height:1.65;}
body.public-unified-page .public-unified-hero .badge{margin-top:18px;}
body.public-unified-page .public-unified-content{display:grid;gap:20px;}
body.public-unified-page .public-unified-content>.section,
body.public-unified-page .public-unified-content>.affiliate-form,
body.public-unified-page .public-unified-content>.grid{margin-top:0;}
body.public-unified-page .plans{margin-top:28px;}
body.public-unified-page .plan{background:#fff;border-color:#dbe5f2;box-shadow:0 10px 28px rgba(11,35,69,.055);}
body.public-unified-page .section,body.public-unified-page .affiliate-form,body.public-unified-page .card{border-color:#dbe5f2;box-shadow:0 10px 30px rgba(11,35,69,.045);}
body.public-unified-page .public-shell-footer{
  margin-top:26px;padding:18px 4px 0;border-top:1px solid rgba(207,221,239,.82);color:#7587a1;font-size:12px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
}
body.public-unified-page .public-shell-footer .footer-links{display:flex;gap:12px;align-items:center;flex-wrap:wrap;}
body.public-unified-page .public-shell-footer a{color:inherit;}

/* ---------- subtle REA attribution, shared on public surfaces ---------- */
.hpf-powered-by-rea{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:4px 9px 4px 6px;border:1px solid rgba(150,174,207,.32);border-radius:10px;background:rgba(255,255,255,.70);color:#36577f;font-size:12px;font-weight:850;text-decoration:none;}
.hpf-powered-by-rea img{width:36px;height:23px;object-fit:contain;border-radius:5px;}
.hotelpreflight-homepage-v2 #authScreen .landing-legal-footer .hpf-powered-by-rea{margin-left:auto;}


.hotelpreflight-homepage-v2 #authScreen .landing-legal-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap;border-top:1px solid rgba(207,221,239,.78);margin-top:18px;}
.hotelpreflight-homepage-v2 #authScreen .landing-legal-footer nav{display:flex;gap:12px;flex-wrap:wrap;}
.hotelpreflight-homepage-v2 #authScreen .landing-legal-footer p{margin:0;}

/* ---------- keep shell width/spacing identical while browsing ---------- */
body.public-unified-page .landing-sidebar{display:flex;flex-direction:column;}
body.public-unified-page .landing-stage{min-width:0;}
body.public-unified-page .landing-nav-link.active{background:rgba(47,103,255,.26)!important;color:#fff!important;}
body.public-unified-page .landing-sidebar-bottom{margin-top:auto!important;}

@media(max-width:900px){
  body.public-unified-page .landing-main.public-unified-main{padding:28px 20px 44px;}
  body.public-unified-page .public-unified-hero{padding:28px 24px;border-radius:20px;}
  #appShell::before{height:300px;}
  #appShell.pms-mode .pms-page-heading>div{max-width:84%!important;}
}
@media(max-width:780px){
  #appShell::before{left:0;top:56px;height:310px;}
}
@media(max-width:700px){
  body.public-unified-page .public-unified-hero{padding:24px 18px;}
  body.public-unified-page .public-unified-hero h1{font-size:36px;}
  body.public-unified-page .public-shell-footer{align-items:flex-start;}
}

/* HotelPreflight unified single-shell v0.29.0 */
/* Make the shared cover visibly span ticker + context/topbar + title area. */
.hotelpreflight-homepage-v2 #authScreen .landing-sticky-head::after{
  background:linear-gradient(90deg,rgba(248,252,255,.90) 0%,rgba(248,252,255,.72) 34%,rgba(239,248,255,.30) 64%,rgba(220,239,255,.08) 100%);
}
.hotelpreflight-homepage-v2 #authScreen .landing-public-header{
  background:linear-gradient(90deg,rgba(255,255,255,.58),rgba(255,255,255,.18));
}
.hotelpreflight-homepage-v2 #authScreen .landing-data-credit{background:rgba(255,255,255,.30);}
#appShell::before{
  background:
    linear-gradient(90deg,rgba(248,252,255,.90) 0%,rgba(248,252,255,.70) 33%,rgba(235,246,255,.28) 62%,rgba(214,237,255,.07) 100%),
    var(--hpf-cover) center 42%/cover no-repeat;
}
#appShell .topbar{background:rgba(255,255,255,.55)!important;}
#appShell.pms-mode .pms-page-heading,
#appShell:not(.pms-mode) .app-page-hero{
  background:linear-gradient(90deg,rgba(255,255,255,.72),rgba(255,255,255,.42),rgba(255,255,255,.16))!important;
}

/* Same-shell Affiliate section */
.landing-affiliate-section{display:grid;gap:22px;}
.landing-affiliate-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px;}
.landing-affiliate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;}
.landing-affiliate-card,.landing-affiliate-earnings,.landing-affiliate-form-wrap{
  border:1px solid #dbe5f2;border-radius:20px;background:rgba(255,255,255,.92);box-shadow:0 12px 30px rgba(11,35,69,.055);padding:24px;
}
.landing-affiliate-card h3,.landing-affiliate-earnings h3,.landing-affiliate-form-wrap h3{margin:0 0 8px;color:#0b2345;font-size:20px;}
.landing-affiliate-card p,.landing-affiliate-earnings p,.landing-affiliate-form-wrap p{color:#62748c;line-height:1.6;}
.landing-affiliate-card code{display:block;margin-top:14px;padding:13px 14px;border-radius:12px;background:#0d2445;color:#fff;overflow:auto;}
.landing-affiliate-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.landing-affiliate-form label{display:grid;gap:7px;color:#17345f;font-weight:750;}
.landing-affiliate-form input{width:100%;min-height:48px;padding:11px 13px;border:1px solid #d5e0ee;border-radius:12px;background:#fff;color:#102b52;font:inherit;}
.landing-affiliate-terms{grid-template-columns:auto 1fr!important;align-items:flex-start!important;margin:18px 0!important;font-weight:600!important;line-height:1.5;}
.landing-affiliate-terms input{width:auto!important;min-height:0!important;margin-top:4px;}
.landing-affiliate-terms a{color:#245fe7;}
.landing-affiliate-section .affiliate-message{margin-top:12px;padding:12px 14px;border-radius:12px;}
.landing-affiliate-section .affiliate-message.success{background:#e9f9ef;color:#0d7431;}
.landing-affiliate-section .affiliate-message.error{background:#fff0f0;color:#a51e26;}
.landing-affiliate-section .earnings-table{width:100%;border-collapse:collapse;margin-top:12px;}
.landing-affiliate-section .earnings-table th,.landing-affiliate-section .earnings-table td{padding:12px;border-bottom:1px solid #e5edf7;text-align:left;vertical-align:top;}
.landing-affiliate-section .earnings-table th{color:#506b91;font-size:12px;text-transform:uppercase;letter-spacing:.05em;}

/* Anchors should land below the sticky photographic header. */
#landingHome,#landingPreflight,#landingPms,#landingPricing,#landingAffiliate,#landingContact{scroll-margin-top:190px;}

@media(max-width:800px){
  .landing-affiliate-grid,.landing-affiliate-form-grid{grid-template-columns:1fr;}
}

/* HotelPreflight v0.29.1 — shared live local context inside authenticated PMS/Preflight shell. */
#appShell .app-topbar{
  height:auto!important;
  min-height:118px;
  flex-wrap:wrap;
  align-content:center;
  row-gap:10px;
  padding-top:12px;
  padding-bottom:12px;
}
#appShell .app-topbar>.workspace-context,
#appShell .app-topbar>.app-top-actions{align-self:center;}
#appShell .app-local-context{
  order:3;
  flex:0 0 100%;
  width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  min-width:0;
}
#appShell .app-live-bar{
  width:auto;
  max-width:100%;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}
#appShell .app-live-bar .landing-live-pill{
  min-height:38px;
  background:rgba(255,255,255,.78)!important;
  border:1px solid rgba(195,214,238,.78);
  backdrop-filter:blur(9px);
  box-shadow:0 7px 18px rgba(17,48,91,.055);
}
#appShell .app-live-bar .landing-live-fx{max-width:min(100%,390px);}
#appShell::before{height:420px;}

@media(max-width:1000px){
  #appShell .app-topbar{min-height:130px;}
  #appShell .app-local-context{justify-content:flex-start;}
  #appShell .app-live-bar{justify-content:flex-start;}
}
@media(max-width:780px){
  #appShell .app-topbar{min-height:0;padding:10px 12px;}
  #appShell .app-local-context{overflow-x:auto;padding-bottom:2px;}
  #appShell .app-live-bar{flex-wrap:nowrap;min-width:max-content;}
  #appShell::before{height:470px;}
}

/* HotelPreflight v0.29.2 — compact PMS live context + ticker directly below CORE. */
#appShell .app-global-ticker{display:none!important;}

#appShell .app-topbar{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "workspace actions"
    "context context";
  align-items:center!important;
  gap:10px 18px!important;
  min-height:0!important;
  height:auto!important;
  padding:14px 28px 12px!important;
  background:linear-gradient(90deg,rgba(255,255,255,.80),rgba(255,255,255,.48),rgba(255,255,255,.30))!important;
  backdrop-filter:blur(5px);
}
#appShell .app-topbar>.workspace-context{grid-area:workspace;min-width:0;}
#appShell .app-topbar>.app-top-actions{grid-area:actions;justify-self:end;align-self:center;}
#appShell .app-local-context{
  grid-area:context;
  width:100%;
  min-width:0;
  display:flex!important;
  align-items:center;
  justify-content:flex-end!important;
  padding:0!important;
  margin:0!important;
}
#appShell .app-live-bar{
  width:auto!important;
  max-width:100%;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:nowrap!important;
  padding:0!important;
  margin:0!important;
  white-space:nowrap;
}
#appShell .app-live-bar .landing-live-pill{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:40px!important;
  height:40px!important;
  padding:0 12px!important;
  margin:0!important;
  border:1px solid rgba(190,209,234,.82)!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.86)!important;
  color:#17345f!important;
  box-shadow:0 7px 18px rgba(17,48,91,.05)!important;
  backdrop-filter:blur(10px)!important;
  font-size:14px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:hidden;
}
#appShell .app-live-bar .landing-live-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;color:#2f67ff;}
#appShell .app-live-bar .landing-live-fx{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
  width:auto!important;
  min-width:360px!important;
  max-width:440px!important;
  overflow:visible!important;
}
#appShell .app-live-bar .landing-live-fx-base{
  display:inline-flex!important;
  align-items:center!important;
  gap:5px!important;
  flex:0 0 auto;
  color:#667994!important;
  font-size:12px!important;
  text-transform:none!important;
}
#appShell .app-live-bar .landing-live-fx-base strong{color:#17345f!important;font-size:14px!important;}
#appShell .app-live-bar .landing-live-fx select{
  flex:1 1 170px!important;
  min-width:170px!important;
  max-width:220px!important;
  height:34px!important;
  padding:0 28px 0 10px!important;
  border:0!important;
  border-left:1px solid #dbe5f2!important;
  border-right:1px solid #dbe5f2!important;
  border-radius:0!important;
  background:transparent!important;
  color:#17345f!important;
  font:inherit!important;
  outline:none!important;
}
#appShell .app-live-bar .landing-live-fx #appFxRate{
  flex:0 0 auto!important;
  min-width:max-content!important;
  font-weight:700!important;
  color:#17345f!important;
  white-space:nowrap!important;
}

/* The slogan belongs immediately below the CORE/hero block. */
#appShell .core-slogan-ticker{
  width:100%;
  margin:10px 0 18px!important;
  border-radius:12px!important;
  overflow:hidden;
  background:linear-gradient(90deg,rgba(10,34,69,.97),rgba(24,72,126,.94),rgba(10,34,69,.97))!important;
  border:1px solid rgba(255,255,255,.16)!important;
  box-shadow:0 8px 22px rgba(11,35,69,.10)!important;
}
#appShell .core-slogan-ticker .slogan-ticker-track{min-height:36px;}
#appShell .core-slogan-ticker .slogan-ticker-text,
#appShell .core-slogan-ticker .slogan-ticker-brand{color:#fff!important;}

/* Keep the photo behind topbar + CORE, then let normal content begin after ticker. */
#appShell::before{height:410px!important;}
#appShell.pms-mode .pms-page-heading,
#appShell:not(.pms-mode) .app-page-hero{
  margin-bottom:0!important;
  background:linear-gradient(90deg,rgba(255,255,255,.76),rgba(255,255,255,.45),rgba(255,255,255,.18))!important;
  backdrop-filter:blur(4px);
}

@media(max-width:1180px){
  #appShell .app-live-bar{overflow-x:auto!important;justify-content:flex-start!important;padding-bottom:2px!important;}
  #appShell .app-local-context{justify-content:flex-start!important;}
  #appShell .app-live-bar .landing-live-fx{min-width:340px!important;}
}
@media(max-width:820px){
  #appShell .app-topbar{
    grid-template-columns:1fr;
    grid-template-areas:"workspace" "actions" "context";
    padding:12px!important;
  }
  #appShell .app-topbar>.app-top-actions{justify-self:start;max-width:100%;}
  #appShell .app-live-bar{width:100%!important;max-width:100%!important;}
  #appShell .app-live-bar .landing-live-fx{min-width:320px!important;}
  #appShell .core-slogan-ticker{border-radius:10px!important;margin-top:8px!important;}
  #appShell::before{height:500px!important;}
}
