/* Bid2Stay Release 12.8.3.42 — Visual Hierarchy & Consistency
   Additive UI refinement. Gold remains an accent; no data or workflow changes. */
:root{
  --b2s42-ink:#111214;
  --b2s42-muted:#667085;
  --b2s42-line:#e6e8ec;
  --b2s42-soft:#f7f8fa;
  --b2s42-gold:#f5b800;
  --b2s42-gold-dark:#a96d00;
  --b2s42-radius:14px;
  --b2s42-card-pad:18px;
  --b2s42-control-h:42px;
  --b2s42-shadow:0 8px 24px rgba(16,24,40,.055);
  --b2s42-shadow-hover:0 12px 30px rgba(16,24,40,.085);
  --b2s42-success-bg:#ecfdf3;
  --b2s42-success-fg:#087443;
  --b2s42-success-line:#abefc6;
  --b2s42-warning-bg:#fff8e8;
  --b2s42-warning-fg:#8a5700;
  --b2s42-warning-line:#f4d48a;
  --b2s42-danger-bg:#fff1f0;
  --b2s42-danger-fg:#b42318;
  --b2s42-danger-line:#f7b7b2;
  --b2s42-info-bg:#eff8ff;
  --b2s42-info-fg:#175cd3;
  --b2s42-info-line:#b2ddff;
  --b2s42-neutral-bg:#f2f4f7;
  --b2s42-neutral-fg:#475467;
  --b2s42-neutral-line:#d0d5dd;
}

/* Clear, consistent page hierarchy */
:where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header{
  align-items:center!important;
  gap:16px!important;
  margin:0 0 18px!important;
  padding:0 0 15px!important;
  border-bottom:1px solid var(--b2s42-line)!important;
}
:where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header > :first-child{min-width:0;flex:1 1 auto}
:where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header h1{
  margin:0!important;
  color:var(--b2s42-ink)!important;
  font-size:clamp(27px,3vw,34px)!important;
  line-height:1.08!important;
  letter-spacing:-.035em!important;
}
:where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header h2{
  margin:0!important;
  color:var(--b2s42-ink)!important;
  font-size:20px!important;
  line-height:1.2!important;
  letter-spacing:-.018em!important;
}
:where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header p{
  margin:6px 0 0!important;
  color:var(--b2s42-muted)!important;
  font-size:12.5px!important;
  line-height:1.55!important;
  max-width:760px;
}
.b2s-heading-icon{display:inline-flex;vertical-align:-3px;margin-left:7px;color:var(--b2s42-gold-dark)}
.b2s-heading-icon svg{width:20px;height:20px;stroke-width:1.8}

/* Standard card rhythm without turning gold into a surface colour */
:where(.card,.guest-card,.hotel-card,.admin-card,.analytics-card,.market-card,.detail-card){
  padding:var(--b2s42-card-pad)!important;
  border:1px solid var(--b2s42-line)!important;
  border-radius:var(--b2s42-radius)!important;
  background:#fff!important;
  box-shadow:var(--b2s42-shadow)!important;
}
:where(.card,.guest-card,.hotel-card,.admin-card,.analytics-card,.market-card,.detail-card) + :where(.card,.guest-card,.hotel-card,.admin-card,.analytics-card,.market-card,.detail-card){margin-top:14px}
:where(.guest-shell,.hotel-shell,.admin-shell,.market-shell) > section{margin-bottom:14px!important}
:where(.guest-shell,.hotel-shell,.admin-shell,.market-shell) > :last-child{margin-bottom:0!important}
:where(.card,.guest-card,.hotel-card,.admin-card,.analytics-card,.market-card,.detail-card) h2{line-height:1.25!important;letter-spacing:-.015em!important}

/* One control height and disciplined button hierarchy */
:where(.btn,a.btn,button.btn,input[type="submit"].btn){
  min-height:var(--b2s42-control-h)!important;
  height:auto!important;
  padding:0 15px!important;
  border-radius:10px!important;
  gap:8px!important;
  font-size:10px!important;
  line-height:1.2!important;
  font-weight:850!important;
  letter-spacing:.055em!important;
  box-shadow:none!important;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease!important;
}
:where(.btn,a.btn,button.btn):hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 16px rgba(16,24,40,.09)!important}
:where(.btn,a.btn,button.btn):active:not(:disabled){transform:translateY(0);box-shadow:none!important}
:where(.btn,a.btn,button.btn):focus-visible{outline:3px solid rgba(245,184,0,.28)!important;outline-offset:2px!important}
:where(.btn.primary,a.btn.primary,button.btn.primary){background:var(--b2s42-gold)!important;color:#111!important;border-color:#dda600!important}
:where(.btn.primary,a.btn.primary,button.btn.primary):hover{background:#ffc62e!important}
:where(.btn.light,a.btn.light,button.btn.light){background:#fff!important;color:#1d2939!important;border-color:#d0d5dd!important}
:where(.btn.dark,a.btn.dark,button.btn.dark){background:#111214!important;color:#fff!important;border-color:#111214!important}
:where(.btn.danger,a.btn.danger,button.btn.danger){background:#fff!important;color:var(--b2s42-danger-fg)!important;border-color:#f0b8b4!important}
.b2s-ui-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px}
.b2s-ui-icon svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.mobile-toggle .b2s-ui-icon,.mobile-toggle .b2s-ui-icon svg{width:21px;height:21px}

/* Unified status palette */
:where(.badge,.pill,.status,.guest-status,.hotel-badge,.admin-badge,[class*="status-pill"]).b2s-status-token{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  min-height:25px!important;padding:4px 9px!important;border:1px solid transparent!important;
  border-radius:999px!important;font-size:9px!important;font-weight:850!important;
  line-height:1.15!important;letter-spacing:.045em!important;text-transform:uppercase!important;
}
.b2s-status--success{background:var(--b2s42-success-bg)!important;color:var(--b2s42-success-fg)!important;border-color:var(--b2s42-success-line)!important}
.b2s-status--warning{background:var(--b2s42-warning-bg)!important;color:var(--b2s42-warning-fg)!important;border-color:var(--b2s42-warning-line)!important}
.b2s-status--danger{background:var(--b2s42-danger-bg)!important;color:var(--b2s42-danger-fg)!important;border-color:var(--b2s42-danger-line)!important}
.b2s-status--info{background:var(--b2s42-info-bg)!important;color:var(--b2s42-info-fg)!important;border-color:var(--b2s42-info-line)!important}
.b2s-status--neutral{background:var(--b2s42-neutral-bg)!important;color:var(--b2s42-neutral-fg)!important;border-color:var(--b2s42-neutral-line)!important}

/* Compact data tables */
:where(.table-wrap,.hotel-table-wrap,.admin-table-wrap){border:1px solid var(--b2s42-line)!important;border-radius:12px!important;background:#fff!important;box-shadow:none!important}
:where(.table,.hotel-table,.admin-table){border-collapse:separate!important;border-spacing:0!important}
:where(.table,.hotel-table,.admin-table) th{
  padding:9px 11px!important;background:#f9fafb!important;color:#475467!important;
  border-bottom:1px solid var(--b2s42-line)!important;font-size:9px!important;line-height:1.3!important;
  letter-spacing:.075em!important;text-transform:uppercase!important;white-space:nowrap;
}
:where(.table,.hotel-table,.admin-table) td{
  padding:10px 11px!important;color:#344054!important;border-bottom:1px solid #eef0f3!important;
  font-size:11px!important;line-height:1.45!important;vertical-align:middle!important;
}
:where(.table,.hotel-table,.admin-table) tbody tr:last-child td{border-bottom:0!important}
:where(.table,.hotel-table,.admin-table) tbody tr{transition:background-color .15s ease}
:where(.table,.hotel-table,.admin-table) tbody tr:hover{background:#fffbef!important}

/* Compact forms */
:where(input:not([type="checkbox"]):not([type="radio"]),select,textarea){border-radius:10px!important}
:where(input:not([type="checkbox"]):not([type="radio"]),select){min-height:42px!important}
:where(.form,.form-grid,.filters,.filter-row){gap:12px!important}

/* Subtle loading skeletons while live data resolves */
.b2s-skeleton-number{position:relative!important;color:transparent!important;border-radius:7px!important;overflow:hidden!important;background:#edf0f3!important;min-width:52px;min-height:25px;display:inline-block!important}
.b2s-skeleton-number::after,.b2s-skeleton-line::after,.b2s-table-skeleton-line::after{
  content:"";position:absolute;inset:0;transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.74),transparent);
  animation:b2s42-shimmer 1.25s ease-in-out infinite;
}
.b2s-table-skeleton{position:absolute;z-index:5;inset:0;background:#fff;padding:12px;display:grid;gap:9px;border-radius:11px;pointer-events:none}
.b2s-table-skeleton-row{display:grid;grid-template-columns:1.2fr 1fr .8fr .7fr;gap:12px;min-height:31px;align-items:center;border-bottom:1px solid #f0f2f4}
.b2s-table-skeleton-line{position:relative;height:10px;border-radius:999px;background:#edf0f3;overflow:hidden}
.b2s-loading-shell{position:relative}
@keyframes b2s42-shimmer{100%{transform:translateX(100%)}}

/* Refined empty-state scale and spacing */
:where(.empty,.empty-state,.b2s-empty-state){padding:24px 18px!important;min-height:0!important}
:where(.empty,.empty-state,.b2s-empty-state) h3{font-size:16px!important;line-height:1.3!important;margin-bottom:6px!important}
:where(.empty,.empty-state,.b2s-empty-state) p{max-width:560px!important;margin-left:auto!important;margin-right:auto!important;line-height:1.55!important}

/* Mobile: readable table cards and one-hand controls */
@media(max-width:760px){
  :root{--b2s42-card-pad:14px;--b2s42-control-h:44px}
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header{
    align-items:stretch!important;gap:11px!important;margin-bottom:14px!important;padding-bottom:12px!important;
  }
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header h1{font-size:26px!important}
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header h2{font-size:18px!important}
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header > :not(:first-child){width:100%}
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header > :not(:first-child).btn,
  :where(.page-head,.guest-head,.hotel-head,.admin-head,.market-head).b2s-page-header > :not(:first-child) .btn{width:100%!important}

  :where(.table-wrap,.hotel-table-wrap,.admin-table-wrap):has(table.b2s-mobile-cards){overflow:visible!important;border:0!important;background:transparent!important}
  table.b2s-mobile-cards{display:block!important;min-width:0!important;width:100%!important;background:transparent!important}
  table.b2s-mobile-cards thead{display:none!important}
  table.b2s-mobile-cards tbody{display:grid!important;gap:10px!important;width:100%!important}
  table.b2s-mobile-cards tr{display:block!important;width:100%!important;background:#fff!important;border:1px solid var(--b2s42-line)!important;border-radius:12px!important;box-shadow:0 5px 16px rgba(16,24,40,.045)!important;overflow:hidden!important}
  table.b2s-mobile-cards td{display:grid!important;grid-template-columns:minmax(100px,38%) minmax(0,1fr)!important;gap:10px!important;width:100%!important;min-height:38px!important;padding:9px 11px!important;border-bottom:1px solid #eef0f3!important;text-align:right!important;overflow-wrap:anywhere!important}
  table.b2s-mobile-cards td::before{content:attr(data-label);color:#667085;font-size:9px;font-weight:850;letter-spacing:.065em;text-transform:uppercase;text-align:left;align-self:center}
  table.b2s-mobile-cards td:last-child{border-bottom:0!important}
  table.b2s-mobile-cards td[colspan]{display:block!important;text-align:left!important;padding:0!important;border:0!important}
  table.b2s-mobile-cards td[colspan]::before{display:none!important}
  table.b2s-mobile-cards td .btn{width:100%!important;margin:2px 0!important}
  table.b2s-mobile-cards td .badge,table.b2s-mobile-cards td .status{justify-self:end}
  .b2s-table-skeleton-row{grid-template-columns:1fr .8fr}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
