
:root {
  color-scheme: light;
  --plhp-radius-4: 4px;
  --plhp-radius-5: 5px;
  --plhp-radius-6: 6px;
  --plhp-radius-7: 7px;
  --plhp-radius-8: 8px;
  --plhp-radius-9: 9px;
  --plhp-radius-10: 10px;
  --plhp-radius-12: 12px;
  --plhp-radius-14: 14px;
  --pl-purple: var(--plhp-color-primary, #760076);
  --pl-purple-dark: color-mix(in srgb, var(--pl-purple) 72%, #111827);
  --pl-purple-soft: color-mix(in srgb, var(--pl-purple) 9%, #ffffff);
  --ink: var(--plhp-color-text, #201d22);
  --muted: var(--plhp-color-text-muted, #716a75);
  --border: var(--plhp-color-border, #e8e4e9);
  --surface: var(--plhp-color-surface, #ffffff);
  --page: var(--plhp-color-background, #f7f6f8);
  --success: #147a50;
  --warning: #9a6510;
  --danger: #b43a3a;
  font-family: var(--plhp-font-body, "Trebuchet MS", Arial, sans-serif);
  font-size: var(--plhp-font-size-base, 16px);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html, body, #app, .app-root { margin: 0; min-height: 100%; }
body { margin: 0; color: var(--ink); background: var(--page); }
button, input, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
sup { font-size: .58em; vertical-align: super; }
.loading-screen { min-height: 100vh; display: grid; place-items: center; align-content: center; gap: 18px; background: radial-gradient(circle at 50% 35%, #fff 0, #f8f4f8 48%, #eee8ef 100%); color: var(--muted); }
.brand-mark { width: 38px; height: 38px; position: relative; transform: rotate(30deg) skewY(-4deg); }
.brand-mark span { position: absolute; inset: 0; border: 2px solid var(--pl-purple); border-radius: var(--plhp-radius-5, 5px); }
.brand-mark span:nth-child(2) { transform: translate(7px, -7px); opacity: .7; }
.brand-mark span:nth-child(3) { transform: translate(14px, -14px); opacity: .35; }
.brand-mark.large { width: 52px; height: 52px; }
.login-page { --pl-purple: var(--plhp-color-primary, #760076); --pl-purple-dark: color-mix(in srgb, var(--pl-purple) 72%, #140a22); --pl-purple-soft: color-mix(in srgb, var(--pl-purple) 9%, white); min-height: 100vh; display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(420px, .82fr); background: #fff; }
.login-hero { position: relative; overflow: hidden; padding: clamp(34px, 6vw, 84px); color: #fff; background: linear-gradient(145deg, color-mix(in srgb, var(--pl-purple) 45%, #0f0c16) 0%, color-mix(in srgb, var(--pl-purple) 80%, #25102d) 55%, var(--pl-purple) 100%); display: flex; flex-direction: column; justify-content: space-between; min-height: 100vh; }
.login-hero::after { content: ""; position: absolute; width: 45vw; height: 45vw; border: 1px solid rgb(255 255 255 / 15%); border-radius: 50%; right: -15vw; top: 15vh; box-shadow: 0 0 0 7vw rgb(255 255 255 / 3%), 0 0 0 14vw rgb(255 255 255 / 2%); }
.brand-lockup { display: flex; align-items: center; gap: 20px; position: relative; z-index: 2; }
.login-hero .brand-mark span { border-color: #fff; }
.brand-name { font-size: 1.15rem; font-weight: 700; margin: 0; }
.brand-subtitle { margin: 2px 0 0; opacity: .72; font-size: .92rem; }
.hero-copy { position: relative; z-index: 2; max-width: 780px; margin: auto 0; }
.eyebrow, .kicker { margin: 0 0 10px; color: var(--pl-purple); font-size: .77rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.login-hero .eyebrow { color: rgb(255 255 255 / 72%); }
.hero-copy h1 { margin: 0 0 22px; font-size: clamp(2.6rem, 5vw, 5.3rem); line-height: .98; letter-spacing: -.045em; max-width: 14ch; }
.hero-copy > p:last-child { max-width: 58ch; line-height: 1.65; opacity: .8; font-size: 1.05rem; }
.hero-grid { position: absolute; inset: auto 4vw 3vh auto; display: grid; grid-template-columns: repeat(6, 22px); gap: 7px; opacity: .16; transform: rotate(-12deg); }
.hero-grid span { aspect-ratio: 1; border: 1px solid #fff; border-radius: var(--plhp-radius-4, 4px); }
.login-panel { display: grid; place-items: center; padding: clamp(28px, 6vw, 76px); background: linear-gradient(#fff, #fcfbfc); }
.login-card { width: min(430px, 100%); }
.login-card h2 { margin: 0 0 8px; font-size: 2.2rem; letter-spacing: -.035em; }
.muted { color: var(--muted); }
.login-card > .muted { margin: 0 0 32px; line-height: 1.5; }
.login-card label { display: block; margin: 0 0 18px; }
.login-card label > span, .surface-select > span, .context-selectors label > span { display: block; margin-bottom: 7px; font-size: .78rem; font-weight: 700; color: #564f59; }
input, select { width: 100%; min-height: 45px; border: 1px solid #dcd6de; background: #fff; color: var(--ink); border-radius: var(--plhp-radius-8, 8px); padding: 10px 12px; outline: none; transition: border-color .15s, box-shadow .15s; box-sizing: border-box; }
select { height: 45px; block-size: 45px; -webkit-appearance: menulist-button; }
input:focus, select:focus { border-color: var(--pl-purple); box-shadow: 0 0 0 3px color-mix(in srgb, var(--pl-purple) 10%, transparent); }
.primary-button, .secondary-button { border-radius: var(--plhp-radius-8, 8px); border: 1px solid transparent; padding: 11px 16px; font-weight: 800; transition: transform .15s, box-shadow .15s, background .15s; }
.primary-button { color: var(--plhp-color-on-primary, #fff); background: var(--pl-purple); box-shadow: 0 8px 24px color-mix(in srgb, var(--pl-purple) 16%, transparent); }
.primary-button:hover:not(:disabled) { background: var(--pl-purple-dark); transform: translateY(-1px); }
.secondary-button { color: var(--pl-purple); background: #fff; border-color: #d9c8d9; }
.secondary-button:hover:not(:disabled) { background: var(--pl-purple-soft); }
.primary-button.full { width: 100%; min-height: 48px; margin-top: 2px; }
.primary-button.small, .secondary-button { padding: 8px 12px; font-size: .82rem; }
.security-note { margin-top: 20px; text-align: center; color: #88808b; font-size: .76rem; }
.dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 7px; background: #aaa; }
.dot.secure { background: var(--success); box-shadow: 0 0 0 4px rgb(20 122 80 / 10%); }
.alert { border-radius: var(--plhp-radius-8, 8px); padding: 12px 14px; font-size: .88rem; line-height: 1.45; }
.alert.error { color: #8c2828; background: #fff2f2; border: 1px solid #f2d0d0; margin: 8px 0 16px; }
.alert.info { color: #523452; background: #fbf5fb; border: 1px solid #eadbea; margin: 0 0 20px; }
.mobile-brand { display: none; }
.platform-shell { min-height: 100vh; display: grid; grid-template-columns: 250px minmax(0, 1fr); }
.sidebar { --sidebar-ink: var(--plhp-color-on-secondary, #fff); position: fixed; inset: 0 auto 0 0; width: 250px; z-index: 30; background: var(--plhp-color-secondary, #211d22); color: var(--sidebar-ink); display: flex; flex-direction: column; padding: 22px 15px 16px; }
.sidebar-head { display: flex; align-items: center; gap: 12px; padding: 2px 9px 24px; }
.sidebar .brand-mark { width: 28px; height: 28px; flex: 0 0 auto; }
.sidebar .brand-mark span { border-color: var(--sidebar-ink); }
.sidebar-brand { min-width: 0; display: grid; }
.sidebar-brand strong { font-size: .9rem; white-space: nowrap; }
.sidebar-brand span { margin-top: 3px; color: var(--sidebar-ink); opacity: .72; font-size: .7rem; }
.main-nav { display: grid; gap: 4px; }
.main-nav button { display: flex; align-items: center; gap: 11px; width: 100%; border: 0; border-radius: var(--plhp-radius-8, 8px); padding: 10px 11px; color: var(--sidebar-ink); background: transparent; text-align: left; font-size: .88rem; }
.main-nav button span { width: 18px; text-align: center; color: var(--sidebar-ink); opacity: .85; }
.main-nav button:hover { background: color-mix(in srgb, var(--sidebar-ink) 13%, transparent); color: var(--sidebar-ink); }
.main-nav button.active { background: var(--pl-purple); color: var(--plhp-color-on-primary, #fff); box-shadow: 0 8px 24px color-mix(in srgb, var(--pl-purple) 25%, transparent); }
.main-nav button.active span { color: var(--plhp-color-on-primary, #fff); }
.nav-caption { margin: 12px 11px 3px; color: var(--sidebar-ink); opacity: .7; font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; }
.nav-collapsible { border-top: 1px solid color-mix(in srgb, var(--sidebar-ink) 20%, transparent); margin-top: 14px; padding-top: 9px; }
.nav-collapsible > summary { list-style: none; cursor: pointer; padding: 11px; border-radius: var(--plhp-radius-8, 8px); color: var(--sidebar-ink); font-size: .82rem; font-weight: 700; display: flex; align-items: center; justify-content: space-between; }
.nav-collapsible > summary::-webkit-details-marker { display: none; }
.nav-collapsible > summary:hover, .nav-collapsible > summary:focus-visible { background: color-mix(in srgb, var(--sidebar-ink) 13%, transparent); }
.nav-collapsible[open] > summary span { transform: rotate(180deg); }
.nav-admin-actions { display: grid; gap: 3px; padding-top: 4px; }
.nav-admin-actions button { font-size: .79rem; padding-inline-start: 18px; }
.main-nav button:focus-visible, .nav-collapsible > summary:focus-visible { outline: 2px solid var(--sidebar-ink); outline-offset: 2px; }
.sidebar .main-nav { overflow-y: auto; min-height: 0; overscroll-behavior: contain; scrollbar-width: thin; }
.sidebar-foot { margin-top: auto; display: flex; justify-content: space-between; gap: 8px; padding: 14px 9px 2px; border-top: 1px solid color-mix(in srgb, var(--sidebar-ink) 20%, transparent); color: var(--sidebar-ink); opacity: .72; font-size: .7rem; }

.main-nav button { display: flex; align-items: center; gap: 11px; width: 100%; border: 0; border-radius: var(--plhp-radius-8, 8px); padding: 10px 11px; color: #c9c1cc; background: transparent; text-align: left; font-size: .88rem; }
.main-nav button span { width: 18px; text-align: center; color: #9d929f; }
.main-nav button:hover { background: #302a31; color: #fff; }
.main-nav button.active { background: var(--pl-purple); color: #fff; box-shadow: 0 8px 24px rgb(118 0 118 / 25%); }
.main-nav button.active span { color: #fff; }
.business-subnav { margin: 1px 4px 10px 18px; padding: 7px 6px 8px 10px; border-left: 2px solid #a579a5; display: grid; gap: 2px; }
.business-subnav-title { display: block; color: #cbb6cd; font-size: .65rem; font-weight: 800; letter-spacing: .035em; padding: 4px 7px; }
.main-nav .business-subnav button { padding: 8px 9px; color: #e4dce6; font-size: .76rem; border-radius: 7px; line-height: 1.25; }
.main-nav .business-subnav button:hover, .main-nav .business-subnav button:focus-visible { color: white; background: #514052; }
.business-quick-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; padding: 12px 14px; background: #fcf9fc; border: 1px solid #e7dce8; border-radius: 12px; margin-bottom: 14px; }
.business-quick-actions span { color: var(--muted); font-size: .73rem; flex: 1 1 200px; }
#stay-rooms, #stay-room-editor, #stay-dashboard, #stay-guest-operations, #stay-ota-channels, #stay-payment-settings, #restaurant-reservations, #restaurant-services, #restaurant-tables, #restaurant-menu { scroll-margin-top: 100px; }

.sidebar-foot { margin-top: auto; display: flex; justify-content: space-between; gap: 8px; padding: 14px 9px 2px; border-top: 1px solid #373139; color: #8e858f; font-size: .7rem; }
.environment { text-transform: uppercase; letter-spacing: .06em; }
.workspace-shell { grid-column: 2; min-width: 0; }
.topbar { position: sticky; top: 0; z-index: 20; min-height: 72px; background: rgb(255 255 255 / 94%); backdrop-filter: blur(14px); border-bottom: 1px solid var(--border); display: flex; align-items: center; gap: 18px; padding: 10px clamp(18px, 3vw, 38px); }
.context-selectors { display: flex; gap: 10px; align-items: flex-end; min-width: 0; }
.context-selectors label { margin: 0; }
.context-selectors label:first-child { width: 220px; }
.context-selectors label:last-child { width: min(340px, 31vw); }
.context-selectors select { min-height: 45px; padding: 10px 12px; font-size: .82rem; }
.user-menu { margin-left: auto; display: flex; align-items: center; gap: 10px; min-width: 0; }
.avatar { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--pl-purple-soft); color: var(--pl-purple); font-weight: 900; }
.user-copy { display: grid; line-height: 1.2; }
.user-copy strong { font-size: .82rem; }
.user-copy span { margin-top: 4px; color: var(--muted); font-size: .68rem; }
.text-button, .icon-button { border: 0; background: transparent; color: var(--muted); }
.text-button { padding: 8px; font-size: .78rem; }
.text-button:hover { color: var(--pl-purple); }
.icon-button { width: 38px; height: 38px; border-radius: var(--plhp-radius-8, 8px); }
.icon-button:hover { background: #f3f0f3; }
.menu-button, .mobile-close { display: none; }
.workspace { max-width: 1440px; margin: 0 auto; padding: clamp(24px, 4vw, 48px); }
.page-section { display: grid; gap: 24px; }
.page-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 2px; }
.page-heading h1 { margin: 0 0 8px; max-width: 25ch; font-size: clamp(2rem, 3.6vw, 3.5rem); line-height: 1.02; letter-spacing: -.045em; }
.page-heading.compact h1 { font-size: clamp(2rem, 3vw, 2.8rem); }
.page-heading p:not(.eyebrow) { margin: 0; color: var(--muted); line-height: 1.5; }
.status-pill { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; border-radius: 999px; padding: 6px 10px; font-size: .72rem; font-weight: 800; background: #f1eff1; color: #625b64; }
.status-pill i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.status-pill.success, .status-pill.enabled { color: var(--success); background: #eaf6f0; }
.status-pill.draft { color: var(--warning); background: #fff6df; }
.status-pill.disabled { color: #7d757f; background: #f1eff1; }
.metric-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metric-card, .panel, .setting-card, .module-row, .property-card, .role-card, .system-card, .language-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--plhp-radius-12, 12px); }
.metric-card { padding: 20px; display: grid; gap: 7px; }
.metric-card span { color: var(--muted); font-size: .78rem; }
.metric-card strong { font-size: 2rem; line-height: 1; letter-spacing: -.04em; }
.metric-card small { color: #9b939d; font-size: .7rem; }
.content-grid { display: grid; gap: 16px; }
.content-grid.two-thirds { grid-template-columns: minmax(0, 1.4fr) minmax(300px, .8fr); }
.panel { padding: 22px; }
.panel-head { display: flex; justify-content: space-between; align-items: flex-start; }
.panel h2, .panel h3 { margin: 0 0 12px; }
.detail-list { margin: 4px 0 0; display: grid; }
.detail-list > div { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 16px; padding: 11px 0; border-bottom: 1px solid #f0edf0; }
.detail-list > div:last-child { border: 0; }
.detail-list dt { color: var(--muted); font-size: .77rem; }
.detail-list dd { margin: 0; font-size: .86rem; font-weight: 700; }
.action-panel { background: linear-gradient(145deg, #fff, #fbf6fb); border-color: #e4d4e4; }
.action-panel > p:not(.kicker) { color: var(--muted); line-height: 1.65; }
.mini-roadmap { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 20px; font-size: .7rem; }
.mini-roadmap span { padding: 6px 8px; border-radius: var(--plhp-radius-6, 6px); background: #f2eff2; }
.mini-roadmap .done { color: var(--success); background: #eaf6f0; }
.mini-roadmap .current { color: var(--pl-purple); background: var(--pl-purple-soft); font-weight: 800; }
.property-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.property-card { display: grid; grid-template-columns: 44px 1fr auto; align-items: center; gap: 13px; padding: 17px; text-align: left; color: inherit; }
.property-card:hover, .property-card.selected { border-color: #cfaecf; box-shadow: 0 10px 30px rgb(37 25 38 / 5%); }
.property-card.selected { background: #fdf9fd; }
.property-icon, .module-icon { width: 42px; height: 42px; border-radius: var(--plhp-radius-10, 10px); display: grid; place-items: center; background: var(--pl-purple-soft); color: var(--pl-purple); font-weight: 900; }
.property-card div:nth-child(2), .module-copy { min-width: 0; display: grid; gap: 5px; }
.property-card strong { font-size: .9rem; }
.property-card span:not(.chevron) { color: var(--muted); font-size: .73rem; }
.business-area-panel { margin-top: 18px; }
.business-area-grid { display: grid; gap: 10px; margin-top: 14px; }
.business-area-card { display: grid; grid-template-columns: 38px minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 13px 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.business-area-card.inactive { opacity: .58; }
.business-area-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: var(--plhp-radius-8, 8px); background: #f7eff7; color: var(--brand); font-weight: 800; }
.business-area-card > div:nth-child(2) { display: grid; gap: 3px; min-width: 0; }
.business-area-card span, .business-area-card small { color: var(--muted); font-size: .75rem; }
.business-area-actions { display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.business-area-editor { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--border); }
.business-area-editor-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.chevron { color: #b8b0ba; font-size: 1.6rem; }
.helper { margin: 0; color: var(--muted); font-size: .76rem; }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.role-card { min-height: 155px; padding: 18px; display: grid; grid-template-columns: 1fr auto; align-content: space-between; gap: 12px; }
.role-card.super { border-color: #d6b7d6; background: linear-gradient(145deg, #fff, #fbf4fb); }
.role-card h3 { margin: 8px 0 5px; font-size: 1rem; }
.role-card p { margin: 0; color: var(--muted); font-size: .75rem; line-height: 1.45; }
.role-card > strong { align-self: end; font-size: 1.5rem; color: var(--pl-purple); }
.role-card > small { grid-column: 2; color: var(--muted); font-size: .65rem; }
.role-badge { font-size: .62rem; color: var(--pl-purple); background: var(--pl-purple-soft); border-radius: var(--plhp-radius-5, 5px); padding: 4px 6px; font-weight: 900; }
.security-panel { display: flex; gap: 14px; align-items: center; }
.security-panel h3, .security-panel p { margin: 0; }
.security-panel p { margin-top: 5px; color: var(--muted); font-size: .82rem; line-height: 1.5; }
.security-icon { width: 36px; height: 36px; flex: 0 0 auto; border-radius: 50%; display: grid; place-items: center; color: var(--success); background: #eaf6f0; font-weight: 900; }
.module-category-groups { display: grid; gap: 12px; }
.module-category-group { background: var(--surface); border: 1px solid var(--border); border-radius: var(--plhp-radius-12, 12px); overflow: hidden; }
.module-category-heading { display: flex; align-items: center; gap: 12px; padding: 15px 17px; cursor: pointer; list-style: none; }
.module-category-heading::-webkit-details-marker { display:none; }
.module-category-heading strong { flex: 1; min-width: 0; }
.module-category-heading small { color:var(--muted); font-variant-numeric:tabular-nums; }
.module-group-chevron { font-size:1.3rem; line-height:1; transition:transform .15s; }
.module-category-group[open] .module-group-chevron { transform:rotate(180deg); }
.module-category-group > .module-list { padding: 0 12px 12px; }
.module-category-group > .module-list .module-row { background:var(--surface); }
.module-list { display: grid; gap: 9px; }
.module-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) minmax(100px, auto); align-items: center; gap: 14px; padding: 12px 14px; }
.module-state-button { display: inline-flex; align-items: center; justify-content: center; gap: 9px; min-height: 44px; padding: 9px 17px; border: 1px solid #b5aeba; border-radius: 999px; background: #f5f3f6; color: #68616c; font: inherit; font-weight: 750; cursor: pointer; }
.module-state-button.is-enabled { border-color: #83c3a2; background: #eaf6f0; color: #137e50; }
.module-state-button-dot { display: inline-block; width: 9px; height: 9px; border-radius: 100%; background: currentColor; }
.module-state-button:focus-visible { outline: 3px solid var(--primary, #760076); outline-offset: 2px; }
.module-state-button:disabled { cursor: not-allowed; opacity: .63; }
.module-copy strong { font-size: .86rem; }
.module-copy span { color: var(--muted); font-size: .69rem; }
.module-row select { min-height: 45px; padding: 6px 9px; font-size: .75rem; }
.settings-list { display: grid; gap: 10px; }
.setting-card { padding: 16px 18px; display: grid; grid-template-columns: minmax(260px, 1.1fr) minmax(320px, .9fr); gap: 24px; align-items: center; }
.setting-copy h3 { margin: 0 0 5px; font-size: .94rem; }
.setting-copy code { color: var(--pl-purple); font-size: .67rem; background: #faf5fa; padding: 3px 5px; border-radius: var(--plhp-radius-4, 4px); }
.setting-copy p { margin: 8px 0 0; color: var(--muted); font-size: .73rem; line-height: 1.45; }
.setting-control { display: grid; gap: 9px; }
.setting-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; }
.draft-tag { margin-right: auto; color: var(--warning); background: #fff7e4; border-radius: var(--plhp-radius-5, 5px); padding: 4px 7px; font-size: .67rem; font-weight: 800; }
.surface-select { width: min(320px, 40vw); }
.design-preview { font-family: var(--preview-font); font-size: var(--preview-font-size); min-height: 250px; display: grid; grid-template-columns: 180px 1fr; overflow: hidden; border: 1px solid var(--border); border-radius: var(--plhp-radius-14, 14px); background: var(--preview-bg); color: var(--preview-text); }
.preview-sidebar { padding: 24px 18px; background: var(--preview-secondary); color: var(--preview-on-secondary); display: grid; align-content: start; gap: 10px; }
.preview-sidebar span { color: inherit; opacity: .9; font-size: .72rem; }
.preview-sidebar i { display: block; height: 27px; margin-top: 8px; border-radius: var(--plhp-radius-6, 6px); background: rgb(255 255 255 / 7%); }
.preview-sidebar i:first-of-type { background: var(--preview-primary); }
.preview-main { margin: 25px; padding: clamp(24px, 4vw, 46px); align-self: center; background: var(--preview-surface); border-radius: var(--preview-radius); box-shadow: 0 18px 50px rgb(0 0 0 / 8%); }
.preview-main h3 { margin: 7px 0 9px; font-size: 1.8rem; letter-spacing: -.035em; font-family: var(--preview-heading-font); }
.preview-main p { max-width: 58ch; line-height: 1.55; color: var(--preview-muted); }
.preview-main button { margin-top: 8px; border: 0; border-radius: var(--preview-radius); padding: 10px 14px; background: var(--preview-primary); color: var(--preview-on-primary); font-weight: 800; }
.preview-kicker { color: var(--preview-text); font-size: .68rem; font-weight: 900; text-transform: uppercase; letter-spacing: .1em; }
.color-control { display: grid; grid-template-columns: 46px 1fr; gap: 8px; }
.color-control input[type="color"] { padding: 4px; }
.asset-placeholder { display: block; border: 1px dashed #d7d0d8; border-radius: var(--plhp-radius-8, 8px); padding: 11px; color: var(--muted); font-size: .76rem; text-align: center; }
.asset-upload-control { display: grid; gap: 7px; }
.asset-file-input { position: absolute; inline-size: 1px; block-size: 1px; opacity: 0; pointer-events: none; }
.asset-upload-button { width: fit-content; cursor: pointer; }
.asset-upload-control small { color: var(--muted); overflow-wrap: anywhere; }
.switch { display: flex; justify-content: flex-end; }
.switch input { display: none; }
.switch span { width: 48px; height: 27px; border-radius: 999px; padding: 3px; background: #d6d0d7; position: relative; transition: background .15s; }
.switch span::after { content: ""; position: absolute; width: 21px; height: 21px; border-radius: 50%; background: #fff; box-shadow: 0 2px 8px rgb(0 0 0 / 16%); transition: transform .15s; }
.switch input:checked + span { background: var(--pl-purple); }
.switch input:checked + span::after { transform: translateX(21px); }
.language-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.language-card { min-height: 105px; padding: 14px; display: grid; align-content: start; gap: 5px; }
.language-card > span { width: fit-content; color: var(--pl-purple); background: var(--pl-purple-soft); border-radius: var(--plhp-radius-5, 5px); padding: 3px 6px; font-size: .65rem; font-weight: 900; }
.language-card strong { margin-top: 6px; font-size: .84rem; }
.language-card small { color: var(--muted); font-size: .66rem; }
.system-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.system-card { padding: 15px; display: grid; gap: 8px; }
.system-card span { color: var(--muted); text-transform: capitalize; font-size: .69rem; }
.system-card strong { overflow-wrap: anywhere; font-size: .88rem; }
.build-note { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.build-note h3, .build-note p { margin: 0; }
.build-note p:last-child { margin-top: 6px; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.empty-state { min-height: 60vh; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }
.empty-state h2 { margin: 28px 0 4px; color: var(--ink); }
.scrim { display: none; }


.restaurant-layout { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(360px, 1.1fr); gap: 14px; }
.panel-head-actions { display: flex; align-items: center; gap: 8px; }
.panel-head-actions > span { color: var(--pl-purple); font-weight: 900; font-size: 1.25rem; }
.service-stack { display: grid; gap: 9px; }
.service-select-card { width: 100%; display: grid; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; color: inherit; overflow: hidden; }
.service-select-card:hover, .service-select-card.selected { border-color: #cfaecf; background: #fdf9fd; }
.service-select-card.archived { opacity: .68; }
.service-main-button { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 14px; border: 0; background: transparent; color: inherit; text-align: left; }
.service-main-button > div { display: grid; gap: 5px; min-width: 0; }
.service-main-button strong { font-size: .88rem; }
.service-main-button > div > span { color: var(--muted); font-size: .7rem; }
.service-card-actions { display: flex; flex-wrap: wrap; gap: 2px; padding: 4px 7px 7px; border-top: 1px solid #f0edf1; }
.service-card-actions .text-button { font-size: .68rem; padding: 6px 7px; }
.danger-text { color: var(--danger) !important; }
.service-editor-panel { display: grid; gap: 18px; border-color: #d9c5d9; background: linear-gradient(160deg, #fff, #fdfafd); }
.service-editor-head { gap: 18px; }
.service-editor-head > div { min-width: 0; }
.service-editor-head .muted { margin: -5px 0 0; max-width: 78ch; line-height: 1.5; font-size: .78rem; }
.publication-banner { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #f7fbf8; }
.publication-banner.draft { background: #fffaf0; border-color: #ead8ad; }
.publication-banner > div { display: grid; gap: 3px; }
.publication-banner strong { font-size: .78rem; }
.publication-banner span { color: var(--muted); font-size: .68rem; line-height: 1.4; }
.service-preview-card { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 8px; padding: 12px; border: 1px solid #eadfea; border-radius: var(--plhp-radius-9, 9px); background: #fff; }
.service-preview-card > div { display: grid; gap: 3px; padding: 9px; background: #fbf8fb; border-radius: var(--plhp-radius-7, 7px); }
.service-preview-card span { color: var(--muted); font-size: .62rem; }
.service-preview-card strong { font-size: .78rem; }
.service-editor-basics { display: grid; grid-template-columns: repeat(5, minmax(135px, 1fr)); gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.service-editor-basics-modern .wide { grid-column: span 2; }
.service-editor-basics-modern .full { grid-column: 1 / -1; }
.service-editor-basics label, .schedule-editor-grid label, .schedule-service-grid label, .schedule-reservation-grid label, .slot-rule-row label, .service-term-editor-grid label, .service-translation-grid label { display: grid; gap: 5px; align-content: start; }
.service-editor-basics label > span, .schedule-editor-grid label > span, .schedule-service-grid label > span, .schedule-reservation-grid label > span, .slot-rule-row label > span, .service-term-editor-grid label > span, .service-translation-grid label > span { color: var(--muted); font-size: .65rem; font-weight: 800; }
.service-editor-basics label small, .schedule-reservation-grid label small { color: var(--muted); font-size: .6rem; line-height: 1.35; }
.service-state-toggle { align-self: end; min-height: 45px; padding: 9px 10px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fbfafb; }
.context-note { padding: 11px 13px; border-left: 3px solid var(--pl-purple); background: #fbf6fb; color: #5d4d5d; border-radius: var(--plhp-radius-6, 6px); font-size: .72rem; line-height: 1.5; }
.service-translation-box { display: grid; gap: 10px; padding: 12px; border: 1px solid #eee6ee; border-radius: var(--plhp-radius-9, 9px); background: #fdfbfd; }
.service-translation-box summary { cursor: pointer; color: var(--pl-purple); font-size: .72rem; font-weight: 800; }
.service-translation-grid { display: grid; grid-template-columns: repeat(3, minmax(145px, 1fr)); gap: 9px; margin-top: 10px; }
.service-term-action { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 10px 12px; border: 1px dashed #dccbdc; border-radius: var(--plhp-radius-8, 8px); background: #fff; font-size: .68rem; }
.technical-details { padding: 10px 12px; border: 1px dashed #ddd6de; border-radius: var(--plhp-radius-8, 8px); background: #fbfafb; }
.technical-details summary { cursor: pointer; color: var(--muted); font-size: .68rem; font-weight: 800; }
.technical-details > div { display: grid; grid-template-columns: 140px minmax(0,1fr); gap: 10px; padding-top: 8px; font-size: .66rem; }
.technical-details code { overflow-wrap: anywhere; color: #5f415f; }
.service-term-editor-panel { display: grid; gap: 16px; border-color: #d9c5d9; }
.service-term-editor-grid { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 10px; }
.service-term-editor-grid .wide { grid-column: auto; }
.service-editor-basics input, .service-editor-basics select, .schedule-editor-grid input, .schedule-editor-grid select, .schedule-service-grid input, .schedule-reservation-grid input, .schedule-reservation-grid select, .slot-rule-row input, .service-term-editor-grid input, .service-term-editor-grid select, .service-translation-grid input { min-height: 45px; padding: 10px 12px; font-size: .75rem; }
.editor-toggle { display: flex !important; grid-template-columns: auto 1fr; align-items: center !important; gap: 8px !important; }
.editor-toggle input { width: 16px; height: 16px; min-height: 16px; }
.editor-toggle > span { color: var(--ink) !important; font-size: .72rem !important; }
.editor-toggle.compact { align-self: end; min-height: 45px; }
.weekly-editor { display: grid; gap: 10px; }
.weekly-editor-heading { display: flex; justify-content: space-between; align-items: end; gap: 16px; }
.weekly-editor-heading h3 { margin-bottom: 0; }
.weekday-editor { border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; overflow: hidden; }
.weekday-editor-head { min-height: 54px; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 10px 12px; background: #faf8fb; }
.weekday-editor-head > div { display: grid; gap: 3px; }
.weekday-editor-head strong { color: var(--pl-purple); font-size: .82rem; }
.weekday-editor-head span { color: var(--muted); font-size: .64rem; }
.schedule-editor-row { padding: 12px; border-top: 1px solid var(--border); display: grid; gap: 10px; }
.schedule-service-block, .schedule-reservation-block { display: grid; gap: 10px; padding: 11px; border: 1px solid #eee8ee; border-radius: var(--plhp-radius-8, 8px); background: #fff; }
.schedule-reservation-block { background: #fcf9fc; }
.schedule-reservation-block.disabled { opacity: .68; }
.schedule-block-title { display: grid; gap: 3px; }
.schedule-block-title strong { color: var(--ink); font-size: .75rem; }
.schedule-block-title span { color: var(--muted); font-size: .64rem; line-height: 1.4; }
.schedule-service-grid { display: grid; grid-template-columns: 140px 140px minmax(180px, 1fr) auto; gap: 8px; align-items: end; }
.schedule-reservation-grid { display: grid; grid-template-columns: repeat(5, minmax(125px, 1fr)); gap: 8px; align-items: end; }
.schedule-reservation-grid .wide { grid-column: span 2; }
.calculated-field { min-height: 45px; display: grid; gap: 2px; align-content: center; padding: 7px 10px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #f7f4f7; }
.calculated-field > span { color: var(--muted); font-size: .6rem; font-weight: 800; }
.calculated-field strong { font-size: .74rem; }
.calculated-field small { color: var(--muted); font-size: .56rem; }
.schedule-editor-grid { display: grid; grid-template-columns: repeat(7, minmax(92px, 1fr)); gap: 8px; align-items: end; }
.schedule-editor-grid label small { color: var(--muted); font-size: .58rem; }
.schedule-flags { min-height: 38px; display: flex; flex-wrap: wrap; gap: 8px 12px; align-items: center; align-content: center; padding: 6px 8px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); }
.schedule-flags label { display: flex; flex-direction: row; align-items: center; gap: 5px; color: var(--muted); font-size: .64rem; }
.schedule-flags input { width: 14px; height: 14px; min-height: 14px; }
.inline-warning { width: 100%; color: var(--warning); font-size: .6rem; font-weight: 800; }
.slot-rule-editor { padding: 9px 10px; border-radius: var(--plhp-radius-8, 8px); background: #fbf8fb; border: 1px solid #eee6ee; }
.slot-rule-editor summary { cursor: pointer; color: var(--pl-purple); font-size: .7rem; font-weight: 800; }
.slot-rule-editor > .helper { margin: 8px 0; }
.slot-rule-row { display: grid; grid-template-columns: 120px 100px minmax(130px, 1fr) minmax(130px, 1fr) auto; gap: 8px; align-items: end; padding: 8px 0; border-top: 1px solid #eee7ee; }
.slot-rule-row:first-of-type { border-top: 0; }
.schedule-editor-footer { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.service-editor-actions { display: flex; justify-content: flex-end; gap: 9px; padding-top: 2px; }
.schedule-list { display: grid; gap: 7px; }
.schedule-row { display: grid; grid-template-columns: 92px minmax(150px, .9fr) minmax(180px, 1.4fr) minmax(120px, .7fr); align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid #f0edf1; font-size: .76rem; }
.schedule-row:last-child { border-bottom: 0; }
.schedule-row strong { color: var(--pl-purple); }
.schedule-row span { color: #5f5961; }
.schedule-row small { margin-left: 4px; color: var(--muted); }
.weekday-label { white-space: nowrap; }
.weekday-label-short { display: none; }
.resource-inventory-panel { display: grid; gap: 14px; }
.inventory-intro { margin: -2px 0 2px; line-height: 1.55; font-size: .78rem; }
.resource-inventory-grid { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(300px, .75fr); gap: 16px; }
.inventory-column, .inventory-editor { display: grid; gap: 12px; align-content: start; }
.inventory-subhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: .78rem; }
.inventory-subhead span { color: var(--muted); font-size: .68rem; }
.resource-list { display: grid; gap: 7px; }
.resource-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fff; }
.resource-row > input { width: 17px; min-height: 17px; height: 17px; }
.resource-row.inactive { opacity: .6; }
.resource-main { display: grid; gap: 3px; min-width: 0; }
.resource-main strong { font-size: .79rem; }
.resource-main small { color: var(--muted); font-size: .65rem; line-height: 1.4; }
.inventory-link-state { color: var(--muted); font-size: .63rem; white-space: nowrap; }
.inventory-link-state.linked { color: var(--success); font-weight: 800; }
.combination-list { margin-top: 4px; display: grid; gap: 7px; }
.combination-row { display: grid; gap: 3px; padding: 9px 10px; background: #faf8fb; border-radius: var(--plhp-radius-8, 8px); }
.combination-row strong { font-size: .75rem; }
.combination-row span { color: var(--muted); font-size: .65rem; }
.inventory-editor { padding-left: 16px; border-left: 1px solid var(--border); }
.mini-form { display: grid; gap: 8px; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fcfbfc; }
.mini-form .kicker { margin-bottom: 0; }
.mini-form input, .mini-form select { min-height: 45px; padding: 10px 12px; font-size: .75rem; }
.mini-form select[multiple] { min-height: 92px; }
.mini-form label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: .64rem; font-weight: 800; }
.mini-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.checkbox-pair { display: flex; flex-wrap: wrap; gap: 12px; }
.checkbox-pair label { display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: .68rem; }
.checkbox-pair input { width: 15px; height: 15px; min-height: 15px; }
.resource-recommendation { color: var(--success) !important; font-weight: 800; }
.resource-warning { color: var(--danger) !important; font-weight: 800; }
.assignment-panel { display: grid; gap: 14px; }
.assignment-list { display: grid; gap: 8px; }
.assignment-row { display: grid; grid-template-columns: 78px minmax(220px, 1fr) minmax(300px, .9fr); gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; }
.assignment-time { display: grid; gap: 2px; }
.assignment-time strong { color: var(--pl-purple); font-size: 1rem; }
.assignment-time span { color: var(--muted); font-size: .68rem; }
.assignment-copy { display: grid; gap: 4px; min-width: 0; }
.assignment-title { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.assignment-title > strong { font-size: .78rem; }
.assignment-copy > span, .assignment-copy small { color: var(--muted); font-size: .66rem; overflow-wrap: anywhere; }
.assignment-copy small b { color: var(--ink); }
.assignment-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; align-items: center; }
.assignment-control select { min-height: 45px; padding: 10px 12px; font-size: .72rem; }
.assignment-readonly { color: var(--muted); font-size: .68rem; }
.policy-editor-panel { display: grid; gap: 18px; border-color: #d9c5d9; background: linear-gradient(180deg, #fff 0%, #fffafd 100%); }
.policy-section { display: grid; gap: 12px; }
.policy-section + .policy-section { border-top: 1px solid var(--border); padding-top: 18px; }
.policy-section-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; }
.policy-basics-grid { display: grid; grid-template-columns: repeat(3, minmax(150px, 1fr)); gap: 10px; }
.policy-basics-grid label, .policy-tier-row label, .date-exception-grid label, .date-window-card label { display: grid; gap: 5px; }
.policy-basics-grid label > span, .policy-tier-row label > span, .date-exception-grid label > span, .date-window-card label > span { color: var(--muted); font-size: .66rem; font-weight: 800; }
.policy-tier-list, .date-window-list, .date-slot-rule-list { display: grid; gap: 8px; }
.policy-tier-row { display: grid; grid-template-columns: repeat(5, minmax(105px, 1fr)) minmax(145px, auto) auto; gap: 8px; align-items: end; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; }
.date-exception-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.date-exception-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.date-exception-grid { display: grid; grid-template-columns: 150px 190px 120px minmax(220px, 1fr); gap: 8px; flex: 1; }
.date-exception-grid .reason-field { min-width: 0; }
.date-window-card { display: grid; gap: 10px; padding: 10px; border: 1px dashed var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fcfcfc; }
.date-window-service-grid { display: grid; grid-template-columns: 140px 140px minmax(180px, 1fr) auto; gap: 8px; align-items: end; }
.date-window-reservation-grid { display: grid; grid-template-columns: repeat(5, minmax(120px, 1fr)); gap: 8px; align-items: end; }
.date-window-reservation-grid .wide { grid-column: span 2; }
.policy-note, .policy-slot-note { color: var(--pl-purple) !important; font-weight: 800; }
.availability-panel { display: grid; gap: 18px; }
.availability-controls { display: grid; grid-template-columns: minmax(180px, 1fr) minmax(120px, .5fr) auto; gap: 10px; align-items: end; }
.availability-controls label { display: grid; gap: 6px; }
.availability-controls label > span { color: var(--muted); font-size: .69rem; font-weight: 800; }
.availability-result { display: grid; gap: 14px; }
.availability-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: baseline; }
.availability-meta > span { color: var(--muted); font-size: .72rem; }
.availability-meta .warning-copy { width: 100%; color: var(--warning); }
.slot-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.slot-card { min-height: 86px; padding: 12px; border: 1px solid #cfe8dc; border-radius: var(--plhp-radius-9, 9px); background: #f6fbf8; display: grid; gap: 4px; align-content: center; }
.slot-card strong { font-size: 1.02rem; color: var(--success); }
.slot-card span { font-size: .7rem; font-weight: 800; }
.slot-card small { color: var(--muted); font-size: .65rem; }
.slot-card.unavailable { border-color: #ead2d2; background: #fff7f7; }
.slot-card.unavailable strong { color: var(--danger); }



.guest-crm-panel, .guest-editor-panel, .guest-history-panel { display: grid; gap: 14px; }
.guest-filterbar { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 10px; align-items: end; }
.guest-list { display: grid; gap: 8px; }
.guest-row { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.guest-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: #f7edf7; color: var(--pl-purple); font-weight: 900; }
.guest-main { min-width: 0; display: grid; gap: 3px; }
.guest-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.guest-main > span, .guest-main > small { color: var(--muted); overflow-wrap: anywhere; }
.guest-main > small { font-size: .64rem; }
.guest-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.guest-editor-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.guest-subsection { display: grid; gap: 10px; padding-top: 12px; border-top: 1px solid #eee7ee; }
.guest-address-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.guest-address-grid .wide { grid-column: span 2; }
.guest-notes { display: grid; gap: 5px; }
.relationship-list { display: grid; gap: 7px; }
.relationship-row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid #f0edf1; }
.compact-head { margin-bottom: 0; }
.operation-guest-link { grid-column: span 2; }
.operation-guest-link small { margin-top: 4px; color: var(--muted); font-size: .58rem; line-height: 1.35; }

.operations-panel { display: grid; gap: 16px; }
.operations-filterbar { display: grid; grid-template-columns: 145px minmax(150px, .8fr) 150px minmax(240px, 1.4fr) auto; gap: 10px; align-items: end; }
.operations-filterbar label, .operation-editor-grid label { display: grid; gap: 5px; }
.operations-filterbar label > span, .operation-editor-grid label > span { color: var(--muted); font-size: .66rem; font-weight: 800; }
.operations-columns { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(320px, .75fr); gap: 14px; }
.operations-column { min-width: 0; display: grid; gap: 8px; align-content: start; }
.operation-list { display: grid; gap: 8px; }
.operation-row { display: grid; grid-template-columns: 62px minmax(0, 1fr) minmax(150px, auto); gap: 12px; align-items: center; padding: 11px 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; }
.operation-row.hold-row { background: #fffcf6; }
.operation-time { display: grid; gap: 1px; text-align: center; }
.operation-time strong { color: var(--pl-purple); font-size: .92rem; }
.operation-time small { color: var(--muted); font-size: .62rem; }
.operation-main { min-width: 0; display: grid; gap: 3px; }
.operation-main > span, .operation-main > small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operation-main > span { font-size: .7rem; color: var(--text); }
.operation-main > small { font-size: .64rem; color: var(--muted); }
.operation-title { display: flex; gap: 8px; align-items: center; justify-content: space-between; min-width: 0; }
.operation-title strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.operation-title .status-pill { flex: 0 0 auto; }
.operation-actions { display: flex; justify-content: flex-end; gap: 6px; flex-wrap: wrap; }
.operation-actions .text-button { font-size: .65rem; }
.operation-editor-panel, .operation-history-panel { display: grid; gap: 14px; border-color: #d9c5d9; background: linear-gradient(180deg, #fff 0%, #fffafd 100%); }
.walkin-qr-overlay { position: fixed; inset: 0; z-index: 1200; display: grid; place-items: center; padding: 20px; background: rgba(24, 13, 24, .58); backdrop-filter: blur(8px); }
.walkin-qr-card { width: min(420px, 100%); display: grid; gap: 14px; padding: 20px; border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(33, 8, 33, .28); }
.walkin-qr-card p, .walkin-qr-card small { margin: 0; }
.walkin-qr-code { width: min(248px, 100%); aspect-ratio: 1; display: grid; place-items: center; justify-self: center; padding: 10px; border: 1px solid #eaddea; border-radius: 14px; background: #fff; }
.walkin-qr-code svg { display: block; width: 100%; height: auto; max-width: 248px; }
.operation-editor-grid { display: grid; grid-template-columns: repeat(4, minmax(130px, 1fr)); gap: 10px; }
.operation-editor-grid .operation-notes { grid-column: span 2; }
.operation-editor-grid textarea { width: 100%; resize: vertical; min-height: 76px; }
.history-list { display: grid; gap: 7px; }
.history-row { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(180px, auto) minmax(150px, auto); gap: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fff; align-items: center; }
.history-row span, .history-row small { color: var(--muted); font-size: .68rem; }

.operations-metrics { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.operations-metric { min-width: 0; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; display: grid; gap: 4px; }
.operations-metric span { color: var(--muted); font-size: .64rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; }
.operations-metric strong { color: var(--pl-purple); font-size: 1.55rem; line-height: 1; }
.operations-metric small { color: var(--muted); font-size: .62rem; line-height: 1.35; }
.service-day-summary, .operations-hints { display: grid; gap: 8px; }
.service-day-table-wrap { overflow-x: auto; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fff; }
.service-day-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.service-day-table th, .service-day-table td { padding: 9px 10px; border-bottom: 1px solid var(--border); text-align: center; font-size: .67rem; white-space: nowrap; }
.service-day-table th:first-child, .service-day-table td:first-child { text-align: left; }
.service-day-table th { color: var(--muted); font-size: .61rem; text-transform: uppercase; letter-spacing: .035em; background: #fbf8fb; }
.service-day-table tbody tr:last-child td { border-bottom: 0; }
.service-day-table td strong { color: var(--text); }
.service-day-table td small { color: var(--muted); }
.operations-hint-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.operations-hint { display: grid; gap: 4px; padding: 10px 12px; border: 1px solid var(--border); border-left-width: 3px; border-radius: var(--plhp-radius-8, 8px); background: #fff; }
.operations-hint strong { font-size: .7rem; }
.operations-hint span { color: var(--muted); font-size: .64rem; line-height: 1.4; }
.operations-hint.attention { border-left-color: #b36b00; background: #fffaf1; }
.operations-hint.active { border-left-color: var(--pl-purple); background: #fff9ff; }
.operations-hint.info { border-left-color: #6f7691; }
.operations-all-clear { margin: 0; }


.communication-page { display: grid; gap: 18px; }
.communication-grid { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(420px, 1.18fr); gap: 14px; }
.communication-settings-grid { display: grid; grid-template-columns: minmax(340px, 1fr) minmax(420px, 1fr); gap: 14px; }
.communication-inbox-panel, .communication-thread-panel, .communication-provider-panel, .communication-template-panel { min-width: 0; }
.conversation-list { display: grid; gap: 7px; max-height: 640px; overflow: auto; padding-right: 3px; }
.conversation-row { width: 100%; display: grid; grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fff; color: inherit; text-align: left; }
.conversation-row:hover, .conversation-row.selected { border-color: #cfaecf; background: #fdf9fd; }
.conversation-avatar { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 50%; background: var(--pl-purple-soft); color: var(--pl-purple); font-weight: 900; }
.conversation-copy { min-width: 0; display: grid; gap: 3px; }
.conversation-copy > div { display: flex; align-items: center; gap: 7px; min-width: 0; }
.conversation-copy strong, .conversation-copy span, .conversation-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.conversation-copy strong { font-size: .79rem; }
.conversation-copy > span { color: var(--muted); font-size: .63rem; }
.conversation-copy small { color: #6c646e; font-size: .68rem; }
.unread-badge { min-width: 18px; height: 18px; display: inline-grid; place-items: center; padding: 0 5px; border-radius: 999px; background: var(--pl-purple); color: #fff; font-size: .58rem; font-weight: 900; }
.communication-thread { min-height: 540px; display: grid; grid-template-rows: auto auto minmax(250px, 1fr) auto; gap: 12px; }
.communication-thread-head .muted { margin: 4px 0 0; font-size: .68rem; }
.automation-toolbar { display: flex; flex-wrap: wrap; gap: 7px; padding: 9px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #faf8fb; }
.message-thread { min-height: 280px; max-height: 520px; overflow: auto; display: flex; flex-direction: column; gap: 8px; padding: 10px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fcfbfc; }
.message-bubble { width: min(82%, 560px); display: grid; gap: 5px; padding: 9px 11px; border-radius: var(--plhp-radius-10, 10px); border: 1px solid var(--border); background: #fff; }
.message-bubble.outbound { align-self: flex-end; background: #fbf2fb; border-color: #e6d4e6; }
.message-bubble.inbound { align-self: flex-start; }
.message-bubble.system { align-self: center; background: #f6f5f6; }
.message-bubble p { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; font-size: .78rem; line-height: 1.45; }
.message-bubble small { color: var(--muted); font-size: .58rem; }
.message-composer { display: grid; gap: 8px; }
.message-composer textarea { min-height: 80px; resize: vertical; }
.message-composer button { justify-self: end; }
.communication-empty-thread { min-height: 500px; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }
.communication-empty-thread > span { font-size: 2rem; color: var(--pl-purple); }
.communication-empty-thread h3 { margin: 12px 0 0; color: var(--ink); }
.communication-empty-thread p { margin: 5px 0 0; max-width: 42ch; font-size: .75rem; }
.provider-list, .template-mapping-list { display: grid; gap: 7px; margin: 12px 0; max-height: 250px; overflow: auto; }
.provider-row, .template-mapping-row { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 10px 11px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fff; color: inherit; text-align: left; }
.provider-row:hover, .provider-row.selected, .template-mapping-row:hover, .template-mapping-row.selected { border-color: #cfaecf; background: #fdf9fd; }
.provider-row > div, .template-mapping-row > div { min-width: 0; display: grid; gap: 3px; }
.provider-row strong, .template-mapping-row strong { font-size: .75rem; }
.provider-row span, .template-mapping-row span { color: var(--muted); font-size: .64rem; }
.provider-row small { color: var(--muted); font-size: .59rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.provider-editor, .template-editor { display: grid; gap: 10px; margin-top: 12px; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-9, 9px); background: #fcfbfc; }
.provider-editor label, .template-editor label { display: grid; gap: 5px; }
.provider-editor label > span, .template-editor label > span { color: var(--muted); font-size: .64rem; font-weight: 800; }
.provider-editor input, .provider-editor select, .provider-editor textarea, .template-editor input, .template-editor select, .template-editor textarea { min-height: 45px; padding: 10px 12px; font-size: .74rem; }
.knowledge-language-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.knowledge-language-grid textarea { min-height:110px; resize:vertical; }
.provider-flags { display: flex; flex-wrap: wrap; gap: 12px; }
.provider-flags label { display: flex; grid-template-columns: auto 1fr; align-items: center; gap: 6px; color: var(--muted); font-size: .66rem; }
.provider-flags input { width: 15px; height: 15px; min-height: 15px; }
.webhook-box { display: grid; gap: 8px; padding: 10px; border-radius: var(--plhp-radius-8, 8px); background: #f7f3f8; }
.webhook-box code { display: block; padding: 7px 8px; border-radius: var(--plhp-radius-5, 5px); background: #fff; border: 1px solid var(--border); color: #5a335a; overflow-wrap: anywhere; font-size: .62rem; }

@media (max-width: 1100px) {
  .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .language-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .system-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .content-grid.two-thirds { grid-template-columns: 1fr; }
  .restaurant-layout { grid-template-columns: 1fr; }
  .service-editor-basics { grid-template-columns: repeat(3, minmax(130px, 1fr)); }
  .schedule-editor-grid { grid-template-columns: repeat(4, minmax(110px, 1fr)); }
  .policy-tier-row { grid-template-columns: repeat(3, minmax(110px, 1fr)); }
  .date-exception-grid { grid-template-columns: repeat(2, minmax(150px, 1fr)); }
  .date-window-service-grid, .date-window-reservation-grid { grid-template-columns: repeat(3, minmax(100px, 1fr)); }
  .resource-inventory-grid { grid-template-columns: 1fr; }
  .operations-columns { grid-template-columns: 1fr; }
  .operations-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .operations-hint-list { grid-template-columns: 1fr; }

  .guest-filterbar, .guest-editor-grid, .guest-address-grid { grid-template-columns: 1fr; }
  .guest-row { grid-template-columns: 38px minmax(0, 1fr); }
  .guest-actions { grid-column: 2; justify-content: flex-start; }
  .guest-address-grid .wide, .operation-guest-link { grid-column: auto; }

  .operations-filterbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .operations-filterbar .operations-search { grid-column: span 2; }
  .operation-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .communication-grid, .communication-settings-grid { grid-template-columns: 1fr; }
  .assignment-row { grid-template-columns: 72px minmax(0, 1fr); }
  .assignment-control, .assignment-readonly { grid-column: 1 / -1; }
  .inventory-editor { padding-left: 0; border-left: 0; border-top: 1px solid var(--border); padding-top: 14px; }
  .setting-card { grid-template-columns: 1fr; gap: 14px; }
}

@media (max-width: 860px) {
  .service-editor-basics-modern .wide, .schedule-reservation-grid .wide, .date-window-reservation-grid .wide { grid-column: auto; }
  .service-preview-card { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .login-page { grid-template-columns: 1fr; }
  .login-hero { display: none; }
  .login-panel { min-height: 100vh; padding: 30px 22px; background: radial-gradient(circle at 50% 0, #fbf4fb, #fff 42%); }
  .mobile-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 58px; color: var(--pl-purple); }
  .mobile-brand .brand-mark { width: 28px; height: 28px; }
  .platform-shell { display: block; }
  .workspace-shell { grid-column: auto; }
  .sidebar { transform: translateX(-102%); transition: transform .2s ease; box-shadow: 20px 0 50px rgb(0 0 0 / 18%); }
  .sidebar.open { transform: translateX(0); }
  .mobile-close { display: grid; place-items: center; margin-left: auto; color: var(--sidebar-ink); font-size: 1.4rem; }
  .scrim { display: block; position: fixed; z-index: 25; inset: 0; background: rgb(0 0 0 / 35%); }
  .menu-button { display: grid; place-items: center; flex: 0 0 auto; }
  .topbar { padding: 9px 14px; }
  .context-selectors { flex: 1; }
  .context-selectors label:first-child { display: none; }
  .context-selectors label:last-child { width: 100%; }
  .user-copy, .user-menu .text-button { display: none; }
  .workspace { padding: 24px 16px 40px; }
  .availability-controls { grid-template-columns: 1fr 1fr; }
  .communication-grid, .communication-settings-grid { grid-template-columns: 1fr; }
  .operation-row { grid-template-columns: 58px minmax(0, 1fr); }
  .operation-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .service-editor-basics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .schedule-editor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .policy-basics-grid, .policy-tier-row, .date-window-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .date-exception-head { flex-direction: column; }
  .date-exception-grid { width: 100%; }
  .slot-rule-row { grid-template-columns: 1fr 1fr; }
  .slot-rule-row .text-button { grid-column: 1 / -1; justify-self: start; }
  .availability-controls button { grid-column: 1 / -1; }
  .page-heading { align-items: flex-start; }
  .property-grid { grid-template-columns: 1fr; }
  .business-area-editor-grid { grid-template-columns: 1fr; }
  .business-area-card { grid-template-columns: 34px minmax(0,1fr); }
  .business-area-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .module-row { grid-template-columns: 42px minmax(0, 1fr) auto; }
  .module-row > .module-state-button { grid-column: 2 / -1; justify-self: start; }
  .design-preview { grid-template-columns: 100px 1fr; }
  .preview-sidebar { padding: 18px 10px; }
  .preview-main { margin: 14px; padding: 22px; }
  .preview-main h3 { font-size: 1.35rem; }
}

@media (max-width: 620px) {
  .service-editor-basics, .schedule-editor-grid, .schedule-service-grid, .schedule-reservation-grid, .slot-rule-row, .policy-basics-grid, .policy-tier-row, .date-exception-grid, .date-window-service-grid, .date-window-reservation-grid, .service-term-editor-grid, .service-translation-grid, .operations-filterbar, .operation-editor-grid, .mini-form-grid { grid-template-columns: 1fr; }
  .conversation-row { grid-template-columns: 34px minmax(0, 1fr); }
  .conversation-row > .status-pill { grid-column: 2; justify-self: start; }
  .message-bubble { width: 92%; }
  .operations-filterbar .operations-search, .operation-editor-grid .operation-notes { grid-column: auto; }
  .operations-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .history-row { grid-template-columns: 1fr; }
  .policy-section-head { align-items: stretch; flex-direction: column; }
  .weekly-editor-heading, .weekday-editor-head, .schedule-editor-footer { align-items: stretch; flex-direction: column; }
  .service-editor-actions { flex-direction: column-reverse; }
  .service-editor-actions button { width: 100%; }
  .page-heading { display: grid; }
  .page-heading h1 { font-size: 2.05rem; }
  .status-pill { justify-self: start; }
  .metric-grid, .role-grid, .language-grid, .system-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 118px; }
  .detail-list > div { grid-template-columns: 1fr; gap: 4px; }
  .setting-actions { flex-wrap: wrap; justify-content: stretch; }
  .setting-actions button { flex: 1 1 120px; }
  .draft-tag { width: 100%; margin: 0; }
  .surface-select { width: 100%; }
  .design-preview { display: block; }
  .preview-sidebar { display: none; }
  .preview-main { margin: 0; border-radius: 0; box-shadow: none; }
  .module-row { grid-template-columns: 38px minmax(0, 1fr); }
  .module-row .status-pill { grid-column: 2; justify-self: start; }
  .module-row > .module-state-button { grid-column: 2; }
  .module-icon { width: 38px; height: 38px; }
  .build-note { align-items: flex-start; flex-direction: column; }
  .schedule-row { grid-template-columns: 36px 1fr; }
  .weekday-label-long { display: none; }
  .weekday-label-short { display: inline; }
  .schedule-row span:nth-child(3), .schedule-row span:nth-child(4), .schedule-row span:nth-child(5) { grid-column: 2; }
  .availability-controls { grid-template-columns: 1fr; }
  .availability-controls button { grid-column: auto; }
}


.stay-arrival-operations { display: grid; gap: 10px; }
.stay-arrival-request-list { display: grid; gap: 8px; }
.stay-arrival-request-row { display: grid; grid-template-columns: minmax(260px,1fr) minmax(145px,.35fr) auto; gap: 12px; align-items: end; padding: 12px; border: 1px solid #e8dfe8; border-radius: var(--plhp-radius-8, 8px); background: #fff; }
.stay-arrival-request-main { display: grid; gap: 3px; min-width: 0; }
.stay-arrival-request-main span,.stay-arrival-request-main small { color: var(--muted); font-size: .68rem; }
.stay-arrival-request-row label { display: grid; gap: 5px; }
.stay-arrival-request-row label > span { color: var(--muted); font-size: .64rem; font-weight: 800; }
.stay-arrival-request-row input { min-height: 42px; }
.stay-arrival-request-actions { display: flex; align-items: center; gap: 8px; }
.stay-module-gate { display: flex; align-items: center; justify-content: space-between; gap: 22px; border-color: #d8c5d8; background: linear-gradient(145deg, #fff, #fdf9fd); }
.stay-module-gate h2 { margin: 2px 0 7px; }
.stay-module-gate p:last-child { margin: 0; max-width: 80ch; color: var(--muted); font-size: .76rem; line-height: 1.5; }
.ota-ical-grid { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); gap: 14px; align-items: start; }
.ota-ical-list { display: grid; gap: 10px; }
.ota-ical-card { padding: 14px; }
.ota-ical-card label.wide, .ota-ical-editor label.wide { grid-column: 1 / -1; }
.ota-ical-card input[readonly] { width: 100%; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.stay-layout { display: grid; grid-template-columns: minmax(280px, .68fr) minmax(620px, 1.32fr); gap: 14px; align-items: start; }
.stay-service-list { min-width: 0; }
.stay-service-stack { max-height: 72vh; overflow: auto; padding-right: 2px; }
.stay-service-summary { display: flex; justify-content: space-between; gap: 10px; padding: 8px 14px; border-top: 1px solid #f0edf1; color: var(--muted); font-size: .66rem; }
.stay-service-summary strong { color: var(--ink); font-size: .7rem; }
.stay-empty-state { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 8px; text-align: center; color: var(--muted); }
.stay-empty-state strong { color: var(--ink); }
.stay-empty-state span { max-width: 38ch; font-size: .72rem; line-height: 1.45; }
.stay-empty-state button { margin-top: 8px; }
.stay-editor-panel { display: grid; gap: 16px; border-color: #d9c5d9; background: linear-gradient(160deg, #fff, #fdfafd); }
.stay-editor-head { align-items: flex-start; }
.stay-basics-grid { display: grid; grid-template-columns: minmax(180px, 2fr) minmax(135px, 1fr) minmax(110px, .8fr) minmax(100px, .7fr) minmax(120px, .8fr); gap: 10px; padding: 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.stay-basics-grid label, .stay-policy-grid label, .stay-resource-row label, .stay-rate-plan-basics label { display: grid; gap: 5px; align-content: start; }
.stay-basics-grid label > span, .stay-policy-grid label > span, .stay-resource-row label > span, .stay-rate-plan-basics label > span { color: var(--muted); font-size: .64rem; font-weight: 800; }
.stay-basics-grid input, .stay-basics-grid select, .stay-policy-grid input, .stay-policy-grid select, .stay-resource-row input, .stay-resource-row select, .stay-rate-plan-basics input, .stay-rate-plan-basics select, .stay-tier-row input, .stay-tier-row select { min-height: 45px; padding: 10px 12px; font-size: .74rem; }
.stay-config-block { display: grid; gap: 11px; padding: 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; }
.stay-block-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.stay-block-head h3 { margin: 1px 0 0; font-size: 1rem; }
.stay-block-head > span { color: var(--muted); font-size: .63rem; }
.stay-policy-grid { display: grid; grid-template-columns: repeat(4, minmax(115px, 1fr)); gap: 10px; }
.stay-resource-list { display: grid; gap: 8px; }
.stay-resource-row { display: grid; grid-template-columns: 28px minmax(160px, 1.7fr) minmax(130px, 1.2fr) 82px 82px 105px 110px auto; gap: 8px; align-items: end; padding: 10px; border: 1px solid #ece7ed; border-radius: var(--plhp-radius-8, 8px); background: #fdfcfd; }
.stay-row-index { width: 24px; height: 24px; align-self: center; display: grid; place-items: center; border-radius: 50%; background: var(--pl-purple-soft); color: var(--pl-purple); font-size: .64rem; font-weight: 900; }
.stay-resource-row .text-button { align-self: center; }
.stay-rate-plan-list { display: grid; gap: 12px; }
.stay-rate-plan-card { display: grid; gap: 10px; padding: 12px; border: 1px solid #e4dbe4; border-radius: var(--plhp-radius-9, 9px); background: #fcfbfc; }
.stay-rate-plan-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.stay-rate-plan-head > div:first-child { display: flex; align-items: center; gap: 8px; }
.rate-index { padding: 3px 6px; border-radius: var(--plhp-radius-5, 5px); background: var(--pl-purple-soft); color: var(--pl-purple); font-size: .58rem; font-weight: 900; text-transform: uppercase; }
.stay-rate-actions { display: flex; align-items: center; gap: 8px; }
.stay-rate-plan-basics { display: grid; grid-template-columns: minmax(180px, 1.8fr) minmax(130px, 1.2fr) 90px 110px; gap: 9px; }
.stay-tier-table { display: grid; gap: 6px; }
.stay-tier-head, .stay-tier-row { display: grid; grid-template-columns: 100px 100px minmax(150px, 1fr) 110px 34px; gap: 7px; align-items: center; }
.stay-tier-head { padding: 0 4px; color: var(--muted); font-size: .58rem; font-weight: 900; text-transform: uppercase; letter-spacing: .03em; }
.stay-tier-row { padding: 7px; border: 1px solid #ece7ed; border-radius: var(--plhp-radius-7, 7px); background: #fff; }
.money-input { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px; }
.money-input span { color: var(--muted); font-size: .65rem; font-weight: 800; }
.add-tier-button { justify-self: start; margin-top: 3px; }
.stay-editor-footer { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding-top: 2px; }
.stay-editor-footer p { margin: 0; max-width: 72ch; color: var(--muted); font-size: .68rem; line-height: 1.45; }
.stay-editor-placeholder { min-height: 420px; display: grid; place-items: center; align-content: center; text-align: center; color: var(--muted); }
.stay-editor-placeholder h2 { margin: 12px 0 0; color: var(--ink); }
.stay-editor-placeholder p { max-width: 50ch; margin: 6px 0 0; font-size: .75rem; line-height: 1.5; }

@media (max-width: 1280px) {
  .ota-ical-grid { grid-template-columns: 1fr; }
  .stay-layout { grid-template-columns: 1fr; }
  .stay-service-stack { max-height: none; }
  .stay-resource-row { grid-template-columns: 28px repeat(3, minmax(105px, 1fr)); }
  .stay-resource-row .wide { grid-column: span 2; }
  .stay-resource-row .text-button { justify-self: start; }
}
@media (max-width: 860px) {
  .service-editor-basics-modern .wide, .schedule-reservation-grid .wide, .date-window-reservation-grid .wide { grid-column: auto; }
  .service-preview-card { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .stay-module-gate, .stay-block-head, .stay-editor-footer, .stay-rate-plan-head { align-items: stretch; flex-direction: column; }
  .stay-basics-grid, .stay-policy-grid, .stay-rate-plan-basics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stay-basics-grid .wide, .stay-rate-plan-basics .wide { grid-column: span 2; }
  .stay-tier-head { display: none; }
  .stay-tier-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .stay-tier-row > .text-button { justify-self: start; }
}
@media (max-width: 620px) {
  .stay-basics-grid, .stay-policy-grid, .stay-resource-row, .stay-rate-plan-basics, .stay-tier-row { grid-template-columns: 1fr; }
  .stay-resource-row .wide, .stay-basics-grid .wide, .stay-rate-plan-basics .wide { grid-column: auto; }
  .stay-row-index { display: none; }
  .stay-editor-head .panel-head-actions { width: 100%; justify-content: space-between; }
  .stay-rate-actions { flex-wrap: wrap; }
}

/* DEV Environment Guard: external stylesheet rules are required by CSP style-src 'self'. */
.plhp-environment-banner {
  position: fixed;
  z-index: 2147483647;
  top: 0; left: 0; right: 0;
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  padding: 8px 14px;
  background: #7a0019;
  color: #fff;
  font: 800 13px/1.25 Arial, sans-serif;
  letter-spacing: .055em;
  text-align: center;
  box-shadow: 0 2px 10px rgb(0 0 0 / 25%);
}
.plhp-environment-banner + #app { padding-top: 36px; }
.plhp-environment-banner ~ #app .sidebar { top: 36px; }
.plhp-environment-banner ~ #app .topbar { top: 36px; }

/* WIP.8.3.7 — restaurant service/kitchen/reservation controls */
.service-editor-panel input:not([type="checkbox"]):not([type="radio"]),
.service-editor-panel select,
.service-term-editor-panel input:not([type="checkbox"]):not([type="radio"]),
.service-term-editor-panel select,
.policy-editor-panel input:not([type="checkbox"]):not([type="radio"]),
.policy-editor-panel select {
  box-sizing: border-box;
  height: 45px;
  min-height: 45px;
  padding: 0 12px;
  border-radius: var(--plhp-radius-8, 8px);
  line-height: 43px;
  vertical-align: middle;
}
.schedule-service-block, .schedule-kitchen-block, .schedule-reservation-block {
  display: grid; gap: 10px; padding: 12px; border: 1px solid var(--border); border-radius: var(--plhp-radius-8, 8px); background: #fff;
}
.schedule-kitchen-grid, .date-window-kitchen-grid {
  display: grid; grid-template-columns: repeat(3, minmax(120px, 1fr)); gap: 10px; align-items: end;
}
.schedule-kitchen-grid label, .date-window-kitchen-grid label { display: grid; gap: 5px; }
.schedule-kitchen-grid label > span, .date-window-kitchen-grid label > span { color: var(--muted); font-size: .64rem; font-weight: 800; }
.service-schedule-summary { grid-template-columns: minmax(115px,.8fr) repeat(4,minmax(145px,1fr)); align-items: center; }
.schedule-reservation-block.disabled { opacity: .58; }
@media (max-width: 980px) {
  .service-schedule-summary, .schedule-kitchen-grid, .date-window-kitchen-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 620px) {
  .service-schedule-summary, .schedule-kitchen-grid, .date-window-kitchen-grid { grid-template-columns: 1fr; }
}

.concierge-experience-panel { display: grid; gap: 14px; border-color: #decfde; background: linear-gradient(155deg, #fff, #fdf9fd); }
.concierge-experience-panel .panel-head p.helper { margin: 5px 0 0; max-width: 80ch; }
.concierge-experience-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.concierge-experience-option { min-height: 116px; display: grid; grid-template-columns: 128px minmax(0, 1fr); align-items: center; gap: 16px; padding: 14px; border: 1px solid var(--border); border-radius: var(--plhp-radius-10, 10px); background: #fff; color: var(--ink); text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.concierge-experience-option:hover { transform: translateY(-1px); border-color: #cda9cd; }
.concierge-experience-option.selected { border: 2px solid var(--pl-purple); box-shadow: 0 10px 28px color-mix(in srgb, var(--pl-purple) 8%, transparent); }
.concierge-experience-option > span:last-child { display: grid; gap: 5px; }
.concierge-experience-option strong { color: var(--pl-purple); font-size: .88rem; }
.concierge-experience-option small { color: var(--muted); font-size: .68rem; line-height: 1.45; }
.experience-preview { height: 82px; display: grid; align-content: center; gap: 7px; padding: 10px; border-radius: var(--plhp-radius-8, 8px); background: #faf7fa; border: 1px solid #eee6ee; overflow: hidden; }
.experience-preview i { display: block; height: 12px; border-radius: 4px; background: #d9c6d9; }
.experience-preview.classic i:nth-child(2) { width: 84%; }.experience-preview.classic i:nth-child(3) { width: 66%; }
.experience-preview.animated { grid-template-columns: 42% 1fr; grid-template-rows: 1fr 1fr; gap: 7px; }
.experience-preview.animated i:first-child { grid-row: 1 / 3; height: auto; background: color-mix(in srgb, var(--pl-purple) 20%, white); }
.experience-preview.animated i:nth-child(2), .experience-preview.animated i:nth-child(3) { height: auto; background: color-mix(in srgb, var(--pl-purple) 38%, white); }
.concierge-experience-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding-top: 3px; }
.concierge-bridge-note { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:12px 14px; border:1px solid #e4d5e4; border-radius:8px; background:#fbf7fb; }
.concierge-bridge-note > div { display:grid; gap:3px; }
.concierge-bridge-note strong { color:var(--pl-purple); font-size:.78rem; }
.concierge-bridge-note small { color:var(--muted); font-size:.66rem; line-height:1.45; max-width:88ch; }
.concierge-bridge-actions { flex-wrap:wrap; justify-content:flex-end; }
.concierge-developer-bridge { border:1px solid #ece5ec; border-radius:8px; padding:9px 12px; background:#fff; }
.concierge-developer-bridge summary { cursor:pointer; color:var(--muted); font-size:.72rem; font-weight:700; }
.concierge-developer-bridge-body { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:10px; }
@media (max-width: 860px) { .concierge-experience-options { grid-template-columns: 1fr; } .concierge-developer-bridge-body { align-items:stretch; flex-direction:column; } }
@media (max-width: 620px) { .concierge-experience-option { grid-template-columns: 94px minmax(0,1fr); } .concierge-experience-footer, .concierge-bridge-note { align-items: stretch; flex-direction: column; } }


/* WIP.9.5 — Breakfast + Whirlpool operations/configuration */
.stay-experience-panel { display:grid; gap:14px; border-color:#e4d5e4; background:linear-gradient(155deg,#fff,#fdfafd); }
.stay-experience-panel > .panel-head .panel-head-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.stay-experience-panel > .panel-head select { min-width:220px; }
.stay-experience-policy-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; padding-top:12px; }
.stay-experience-policy-grid label, .stay-experience-editor-row label, .stay-experience-product-row label, .stay-experience-ops-head label, .stay-whirlpool-decision-grid label { display:grid; gap:5px; }
.stay-experience-policy-grid label > span, .stay-experience-editor-row label > span, .stay-experience-product-row label > span, .stay-experience-ops-head label > span, .stay-whirlpool-decision-grid label > span { color:var(--muted); font-size:.66rem; font-weight:800; }
.stay-experience-editor-list, .stay-experience-product-list, .stay-experience-ops-section { display:grid; gap:10px; padding-top:12px; }
.stay-experience-editor-row { display:grid; grid-template-columns:minmax(120px,.8fr) minmax(180px,1.4fr) repeat(3,minmax(105px,.7fr)) auto auto; gap:10px; align-items:end; padding:11px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.stay-experience-editor-row .wide { min-width:0; }
.stay-experience-product-row { display:grid; gap:10px; padding:12px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.stay-experience-product-main { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:10px; }
.stay-experience-product-pricing { display:grid; grid-template-columns:repeat(4,minmax(100px,1fr)); gap:10px; }
.stay-breakfast-week-grid { display:grid; gap:8px; padding:12px 0; }
.stay-breakfast-week-row { display:grid; grid-template-columns:minmax(110px,.8fr) minmax(120px,.8fr) 120px auto 120px; gap:10px; align-items:center; padding:9px 11px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.stay-experience-ops-head { display:flex; align-items:end; gap:10px; padding:12px 0; }
.stay-breakfast-operation-row, .stay-whirlpool-operation-row { display:grid; gap:10px; padding:12px; border:1px solid var(--border); border-radius:8px; background:#fff; }
.stay-operation-summary { display:grid; gap:3px; }
.stay-operation-summary strong { color:var(--ink); }
.stay-operation-summary span, .stay-operation-summary small { color:var(--muted); }
.stay-breakfast-order-list { display:grid; gap:7px; }
.stay-breakfast-order-list > div { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(100px,.55fr) minmax(0,2fr); gap:8px; padding:8px 10px; border-radius:7px; background:#faf7fa; }
.stay-breakfast-order-list span, .stay-breakfast-order-list small { color:var(--muted); }
.stay-operation-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.stay-whirlpool-decision-grid { display:grid; grid-template-columns:150px 120px repeat(3,auto); gap:8px; align-items:end; }
@media (max-width:1100px) { .stay-experience-policy-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .stay-experience-editor-row { grid-template-columns:repeat(3,minmax(0,1fr)); } .stay-experience-product-pricing { grid-template-columns:repeat(2,minmax(0,1fr)); } .stay-whirlpool-decision-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:720px) { .stay-experience-policy-grid, .stay-experience-editor-row, .stay-experience-product-main, .stay-experience-product-pricing, .stay-whirlpool-decision-grid { grid-template-columns:1fr; } .stay-breakfast-week-row { grid-template-columns:1fr 1fr; } .stay-breakfast-order-list > div { grid-template-columns:1fr; } .stay-experience-ops-head { align-items:stretch; flex-direction:column; } }


.stay-housekeeping-panel{display:grid;gap:14px}.stay-housekeeping-week-grid{display:grid;gap:8px}.stay-housekeeping-week-row,.stay-housekeeping-date-row{display:grid;grid-template-columns:minmax(90px,.7fr) repeat(5,minmax(120px,1fr)) minmax(160px,1.4fr) auto;gap:8px;align-items:end;padding:10px;border:1px solid var(--line,#e8e0e8);border-radius:10px;background:#fff}.stay-housekeeping-date-row{grid-template-columns:minmax(140px,.9fr) minmax(120px,.8fr) repeat(3,minmax(120px,.8fr)) minmax(160px,1.2fr) auto}.stay-turnover-operation-row,.stay-housekeeping-operation-row{display:grid;gap:10px;padding:12px 0;border-bottom:1px solid var(--line,#eee6ee)}.stay-turnover-timeline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.stay-turnover-timeline>span{display:grid;gap:2px;padding:8px 10px;border-radius:8px;background:#f5f2f5;color:#746b75}.stay-turnover-timeline>span.done{background:#edf7ef;color:#3b6845}.stay-turnover-timeline small{font-size:11px;color:inherit}.stay-green-override{margin-left:auto;min-width:190px}.stay-green-override span{display:block;font-size:11px;color:#817782;margin-bottom:2px}@media(max-width:1000px){.stay-housekeeping-week-row,.stay-housekeeping-date-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-turnover-timeline{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.stay-housekeeping-week-row,.stay-housekeeping-date-row,.stay-turnover-timeline{grid-template-columns:1fr}.stay-green-override{margin-left:0;width:100%}}

.stay-minibar-panel{display:grid;gap:14px}.stay-minibar-config-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.stay-minibar-editor-list,.stay-minibar-stock-list,.stay-minibar-stay-list{display:grid;gap:10px}.stay-minibar-editor-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;padding:12px;border:1px solid var(--line,#e8e0e8);border-radius:10px;background:#fff}.stay-minibar-editor-row label,.stay-minibar-stock-actions label,.stay-minibar-warehouse-editors label,.stay-minibar-order-box label{display:grid;gap:4px}.stay-minibar-editor-row label>span,.stay-minibar-stock-actions label>span,.stay-minibar-warehouse-editors label>span,.stay-minibar-order-box label>span{font-size:11px;color:#817782}.stay-minibar-editor-row .wide{grid-column:span 3}.stay-minibar-stock-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line,#e8e0e8);border-radius:10px}.stay-minibar-stock-card .stay-block-head>div{display:grid;gap:2px}.stay-minibar-stock-card .stay-block-head small{color:#817782}.stay-minibar-location-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px}.stay-minibar-location-grid>div{display:grid;gap:2px;padding:9px 10px;border-radius:8px;background:#f6f3f6}.stay-minibar-location-grid span,.stay-minibar-location-grid small{font-size:11px;color:#817782}.stay-minibar-stock-actions{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr)) auto;gap:8px;align-items:end}.stay-minibar-stay-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#eee6ee)}.stay-minibar-consumption-controls{display:grid;grid-template-columns:minmax(160px,1fr) 70px auto;gap:7px}.stay-minibar-warehouse-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.stay-minibar-warehouse-summary>div{display:grid;gap:3px;padding:10px;border:1px solid var(--line,#e8e0e8);border-radius:8px}.stay-minibar-warehouse-summary>div.warning{border-color:#c58a2b;background:#fff9eb}.stay-minibar-warehouse-summary span,.stay-minibar-warehouse-summary small{font-size:11px;color:#817782}.stay-minibar-warehouse-editors{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.stay-minibar-warehouse-editors>section,.stay-minibar-order-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;padding:12px;border:1px solid var(--line,#e8e0e8);border-radius:10px}.stay-minibar-warehouse-editors h3,.stay-minibar-order-box h3{grid-column:1/-1;margin:0}.stay-minibar-order-box{grid-template-columns:repeat(4,minmax(0,1fr)) auto;margin-top:12px;align-items:end}.stay-minibar-order-box>small{grid-column:1/-1;color:#817782}.stay-minibar-receipts{display:grid;gap:8px;margin-top:14px}.stay-minibar-receipts>article{display:grid;grid-template-columns:minmax(150px,1fr) auto 90px 140px minmax(130px,auto) auto;gap:8px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line,#eee6ee)}.stay-minibar-expiry-list,.stay-minibar-lot-list{display:grid;gap:6px}.stay-minibar-expiry-row{display:grid;grid-template-columns:minmax(120px,1fr) 140px auto 140px 130px auto;gap:7px;align-items:center;padding:7px 8px;border:1px solid var(--line,#e8e0e8);border-radius:7px}.stay-minibar-expiry-row.status-expired,.stay-minibar-expiry-row.status-today,.stay-minibar-expiry-row.status-missing,.stay-minibar-lot-list>article.warning{background:#fff9eb;border-color:#c58a2b}.stay-minibar-expiry-row>span{display:grid}.stay-minibar-expiry-row small{color:#817782}.stay-minibar-correction-row{display:grid;grid-template-columns:80px 135px minmax(140px,1fr) auto;gap:6px;margin-top:7px}.stay-minibar-lot-list>article{display:grid;grid-template-columns:minmax(180px,1fr) 75px minmax(120px,1fr) auto;gap:6px;align-items:center;padding:6px;border:1px solid var(--line,#e8e0e8);border-radius:6px}

.stay-invoice-operation-list{display:grid;gap:8px}.stay-invoice-operation-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#eee6ee)}.stay-invoice-operation-row>div:first-child{display:grid;gap:3px}.stay-invoice-operation-row span,.stay-invoice-operation-row small{font-size:11px;color:#817782}.stay-invoice-operation-row small{overflow-wrap:anywhere}.stay-invoice-operation-actions{display:flex;gap:7px;align-items:center}
@media(max-width:1000px){.stay-minibar-expiry-row,.stay-minibar-correction-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-minibar-editor-row{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-minibar-editor-row .wide{grid-column:1/-1}.stay-minibar-stock-actions,.stay-minibar-order-box{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-minibar-stay-row{grid-template-columns:1fr}.stay-minibar-receipts{overflow-x:auto}.stay-minibar-receipts>article{min-width:850px}}@media(max-width:640px){.stay-invoice-operation-row{grid-template-columns:1fr}.stay-invoice-operation-actions{align-items:stretch;flex-direction:column}.stay-minibar-expiry-row,.stay-minibar-correction-row,.stay-minibar-lot-list>article{grid-template-columns:1fr}.stay-minibar-config-head{align-items:stretch;flex-direction:column}.stay-minibar-editor-row,.stay-minibar-stock-actions,.stay-minibar-warehouse-editors,.stay-minibar-order-box,.stay-minibar-consumption-controls{grid-template-columns:1fr}.stay-minibar-editor-row .wide{grid-column:auto}}


/* WIP.9.13 — consolidated Stay Day Dashboard */
.stay-day-dashboard-panel{display:grid;gap:14px;border-color:#decfde;background:linear-gradient(150deg,#fff,#fdf9fd)}
.stay-day-dashboard-head .panel-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stay-day-dashboard-head select{min-width:210px}.stay-day-dashboard-head input[type=date]{min-width:145px}
.stay-day-dashboard{display:grid;gap:14px}.stay-day-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(100px,1fr));gap:8px}.stay-day-summary-grid>div{display:grid;gap:2px;padding:11px 12px;border:1px solid var(--line,#e8e0e8);border-radius:8px;background:#fff}.stay-day-summary-grid>div.attention{border-color:#c58a2b;background:#fff9eb}.stay-day-summary-grid strong{font-size:1.1rem;color:var(--pl-purple)}.stay-day-summary-grid span{font-size:11px;color:#817782}
.stay-day-focus{display:grid;gap:9px;padding:12px;border:1px solid #e6d2be;border-radius:10px;background:#fffaf3}.stay-day-focus.clear{border-color:#cfe2d2;background:#f7fcf8}.stay-day-action-list{display:grid;gap:7px}.stay-day-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 10px;border-radius:8px;background:#fff;border:1px solid #eadfce}.stay-day-action-row>div{display:grid;gap:2px}.stay-day-action-row span,.stay-day-action-row small{font-size:11px;color:#817782}
.stay-day-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.stay-day-columns.compact{padding-top:10px}.stay-day-columns>section{min-width:0}.stay-day-columns h4{margin:0 0 8px;font-size:.76rem;color:var(--pl-purple)}
.stay-day-stay-row{display:grid;gap:8px;padding:10px 0;border-bottom:1px solid var(--line,#eee6ee)}.stay-day-stay-main{display:grid;gap:2px}.stay-day-stay-main span,.stay-day-stay-main small{font-size:11px;color:#817782}.stay-day-state-chips{display:flex;gap:5px;flex-wrap:wrap}.stay-day-state-chips>span{padding:4px 7px;border-radius:999px;background:#f3eff3;color:#7d737e;font-size:10px;font-weight:700}.stay-day-state-chips>span.done{background:#edf7ef;color:#3b6845}.stay-day-state-chips>span.warning{background:#fff2df;color:#8a5d1d}
.stay-day-detail{border-color:#ece5ec}.stay-day-inline-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:8px;padding-top:10px}.stay-day-inline-list>article,.stay-day-mini-row{display:grid;gap:2px;padding:9px 10px;border:1px solid var(--line,#e8e0e8);border-radius:8px;background:#fff}.stay-day-inline-list span,.stay-day-inline-list small,.stay-day-mini-row span{font-size:11px;color:#817782}.stay-day-metrics{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:8px}.stay-day-metrics>span{padding:6px 8px;border-radius:7px;background:#f6f2f6;font-size:11px;color:#817782}.stay-day-mini-row+ .stay-day-mini-row{margin-top:6px}
@media(max-width:1050px){.stay-day-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.stay-day-columns{grid-template-columns:1fr}}
@media(max-width:640px){.stay-day-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stay-day-dashboard-head .panel-head-actions{align-items:stretch;flex-direction:column}.stay-day-dashboard-head select,.stay-day-dashboard-head input[type=date]{width:100%;min-width:0}.stay-day-action-row{grid-template-columns:1fr}.stay-day-inline-list{grid-template-columns:1fr}}

/* 1.001 — central restaurant menu / notification / no-show administration */
.menu-admin-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:16px;align-items:start}.menu-admin-editor{position:sticky;top:88px}.menu-admin-copy{display:grid;gap:3px;min-width:0;flex:1}.menu-admin-thumb{width:72px;height:58px;object-fit:cover;border-radius:8px;border:1px solid var(--border);flex:0 0 auto}.menu-admin-preview{width:min(100%,420px);max-height:260px;object-fit:cover;border-radius:9px;border:1px solid var(--border);margin-top:10px}.menu-allergen-box{display:grid;gap:8px;padding:11px 0;border-top:1px solid var(--border)}.checkbox-chip-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:6px}.checkbox-chip-grid label,.menu-flags label{display:flex;align-items:center;gap:7px;font-size:.75rem;color:#625a64}.checkbox-chip-grid input,.menu-flags input{width:auto;min-height:auto}.json-preview{max-height:420px;overflow:auto;padding:12px;border:1px solid var(--border);border-radius:8px;background:#faf8fa;font-size:.72rem;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:980px){.menu-admin-layout{grid-template-columns:1fr}.menu-admin-editor{position:static}}


/* 1.007 — Manager-first room cockpit + minibar target hierarchy */
.stay-manager-room-cockpit{display:grid;gap:10px;padding:13px;border:1px solid #d9c7d9;border-radius:10px;background:#fcf9fc}.stay-manager-room-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:10px}.stay-manager-room-card{display:grid;gap:10px;padding:12px;border:1px solid var(--line,#e8e0e8);border-left:5px solid #7f7480;border-radius:9px;background:#fff}.stay-manager-room-card.tone-ready{border-left-color:#477a52}.stay-manager-room-card.tone-occupied{border-left-color:#326d9e}.stay-manager-room-card.tone-reserved{border-left-color:#8c68a0}.stay-manager-room-card.tone-attention,.stay-manager-room-card.tone-blocked{border-left-color:#b66f18;background:#fffaf3}.stay-manager-room-head{display:flex;justify-content:space-between;gap:10px;align-items:start}.stay-manager-room-head>div{display:grid;gap:2px}.stay-manager-room-head small{color:#817782}.stay-manager-room-head>span{padding:5px 7px;border-radius:6px;background:#f2eef2;font-size:10px;font-weight:850;text-align:right}.stay-manager-room-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.stay-manager-room-facts>div{display:grid;gap:2px;padding:8px;border-radius:7px;background:#f8f5f8}.stay-manager-room-facts small,.stay-manager-room-facts span{font-size:10px;color:#817782}.stay-manager-room-facts strong{font-size:12px}.stay-minibar-target-manager{display:grid;gap:12px;padding:12px 0}.stay-minibar-target-scope{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stay-minibar-target-scope label,.stay-minibar-target-products label{display:grid;gap:4px}.stay-minibar-target-scope label>span,.stay-minibar-target-products label>span{font-size:11px;color:#817782}.stay-minibar-target-products{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}.stay-minibar-target-products label{padding:8px;border:1px solid var(--line,#e8e0e8);border-radius:7px;background:#fff}.stay-minibar-daily-editor{display:grid;gap:12px;padding:12px 0}.stay-minibar-room-selector{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1fr);gap:10px;align-items:end}.stay-minibar-room-selector label{display:grid;gap:4px}.stay-minibar-room-selector label>span{font-size:11px;color:#817782}.stay-minibar-room-context{display:grid;gap:3px;padding:9px 10px;border:1px solid var(--line,#e8e0e8);border-radius:8px;background:#f8f5f8}.stay-minibar-room-context span{font-size:11px;color:#817782}.stay-minibar-count-grid{display:grid;border:1px solid var(--line,#e8e0e8);border-radius:10px;overflow:hidden}.stay-minibar-count-grid>label{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:12px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line,#eee6ee);background:#fff}.stay-minibar-count-grid>label:last-child{border-bottom:0}.stay-minibar-count-grid>label.has-gap{background:#fffaf0}.stay-minibar-count-copy{display:grid;gap:2px}.stay-minibar-count-copy small{color:#817782}.stay-minibar-count-input{display:grid;grid-template-columns:auto minmax(55px,1fr);gap:6px;align-items:center}.stay-minibar-count-input small{font-size:11px;color:#817782;font-weight:800}.stay-minibar-count-input input{min-height:42px;text-align:center}.stay-minibar-daily-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}@media(max-width:720px){.stay-manager-room-facts,.stay-minibar-target-scope,.stay-minibar-room-selector{grid-template-columns:1fr}.stay-minibar-count-grid>label{grid-template-columns:1fr 100px}.stay-manager-room-head{align-items:stretch;flex-direction:column}.stay-manager-room-head>span{text-align:left}}


.stay-minibar-bulk-target{display:flex;gap:8px;align-items:end;flex-wrap:wrap;padding:9px 10px;border:1px solid var(--line,#e8e0e8);border-radius:8px;background:#faf7fa}.stay-minibar-bulk-target label{display:grid;gap:4px;min-width:180px}.stay-minibar-bulk-target label>span{font-size:11px;color:#817782}.stay-minibar-bulk-target input{max-width:110px}@media(max-width:640px){.stay-minibar-bulk-target{align-items:stretch;flex-direction:column}.stay-minibar-bulk-target input{max-width:none;width:100%}}


/* On mobile the topbar user-menu logout is hidden; provide one reachable action in the drawer. */
.mobile-sidebar-logout { display:none; }
@media (max-width: 860px) {
  .sidebar-foot { flex-wrap:wrap; }
  .mobile-sidebar-logout { display:block; flex:1 0 100%; border:1px solid currentColor; background:transparent; color:inherit; border-radius:var(--plhp-radius-8,8px); padding:10px; min-height:44px; margin-top:10px; text-align:left; cursor:pointer; }
}

.module-prerequisite-warning{color:#9e4c00!important;font-weight:700}.module-prerequisite-warning button{margin-left:6px;text-decoration:underline;cursor:pointer}

/* Native PLHP outline icons at every navigation level. */
.main-nav { overflow-y:auto; overflow-x:hidden; min-height:0; scrollbar-width:thin; }
.main-nav .nav-icon { display:block; width:19px; height:19px; flex:0 0 19px; color:#cbb8cf; }
.main-nav button.active .nav-icon, .main-nav .business-subnav button.is-current .nav-icon { color:white; }
.main-nav button .nav-label { width:auto; text-align:left; flex:1; min-width:0; color:inherit; }
.main-nav .business-subnav button { gap:10px; min-height:38px; }
.main-nav .business-subnav .nav-icon { height:17px; width:17px; flex-basis:17px; }
.main-nav .business-subnav button.is-current { background:#57435a; color:#fff; font-weight:700; }
.sidebar-foot { flex:0 0 auto; }



/* Access administration polish 2026-10-07 */
.access-admin-heading{align-items:flex-start}.access-main-actions{min-width:360px}.access-action-button{min-width:168px;min-height:44px;padding:10px 16px!important;font-size:.82rem!important;display:inline-flex;align-items:center;justify-content:center}.platform-admin-card{margin-bottom:16px}.access-overview-grid{align-items:start}.access-role-card{min-height:168px}.access-role-card p{margin:6px 0;color:var(--muted);line-height:1.45}.access-role-card small{color:#786d79}.access-member-row{align-items:flex-start;gap:12px}.access-role-assignment{display:grid;gap:6px;min-width:260px}.access-editor-panel{scroll-margin-top:92px;border-color:#dbc7db;box-shadow:0 12px 36px color-mix(in srgb, var(--pl-purple) 8%, transparent)}.access-scope-card{padding:12px;border:1px solid var(--border);border-radius:10px;background:#fcfafc;margin:10px 0}.access-section{display:grid;gap:10px;padding:14px 0;border-top:1px solid var(--border)}.access-section-title{display:grid;gap:3px}.access-section-title span,.access-permission-intro span{font-size:.78rem;color:var(--muted);line-height:1.45}.access-role-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.access-choice-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.permission-choice{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--ink)!important;font-size:.8rem!important;line-height:1.35}.permission-choice:hover{border-color:#cbaacb;background:#fffafd}.permission-choice.compact{padding:8px 10px}.permission-choice input{width:17px!important;height:17px!important;min-height:17px!important;flex:0 0 17px;margin:2px 0 0;padding:0!important;accent-color:var(--pl-purple)}.permission-choice span{display:grid;gap:3px;min-width:0}.permission-choice strong{font-size:.82rem;color:var(--ink)}.permission-choice small{font-size:.72rem;color:var(--muted);line-height:1.4}.permission-choice em{font-style:normal;font-size:.67rem;font-weight:800;color:var(--pl-purple);background:var(--pl-purple-soft);width:max-content;padding:2px 6px;border-radius:999px}.access-permission-intro{display:grid;gap:4px;margin-top:14px;padding:12px 14px;border-radius:9px;background:var(--pl-purple-soft);border:1px solid #e6cfe6}.permission-group{border:1px solid var(--border);border-radius:10px;margin-top:9px;background:#fff;overflow:hidden}.permission-group summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#fcfafc}.permission-group summary::-webkit-details-marker{display:none}.permission-group summary>span:first-child{display:grid;gap:2px}.permission-group summary strong{font-size:.87rem}.permission-group summary small{font-size:.72rem;color:var(--muted)}.permission-group[open] summary{border-bottom:1px solid var(--border)}.permission-group-actions{display:flex;align-items:center;gap:8px;padding:10px 12px 0}.permission-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;padding:10px 12px 12px}.checkbox-chip-grid input,.menu-flags input{width:17px!important;height:17px!important;min-height:17px!important;padding:0!important;accent-color:var(--pl-purple)}
@media(max-width:900px){.access-main-actions{min-width:0;width:100%}.access-action-button{flex:1 1 160px}.permission-list,.access-role-options{grid-template-columns:1fr}.access-role-assignment{min-width:0;width:100%}}

/* PLHP module administration + personal interface locale */
.ui-locale-control { margin: 0 0 0 auto; min-width: 155px; }
.ui-locale-control > span { display: block; margin-bottom: 7px; font-size: .72rem; font-weight: 700; color: #564f59; white-space: nowrap; }
.ui-locale-control select { min-height: 45px; padding: 8px 10px; font-size: .76rem; }
.ui-locale-control + .user-menu { margin-left: 0; }
.module-copy { gap: 3px; }
.module-copy .module-category { color: var(--pl-purple); font-size: .68rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; }
.module-copy small { display: block; color: var(--muted); font-size: .72rem; line-height: 1.4; max-width: 70ch; }
.module-state-button:disabled { opacity: .62; }
@media (max-width: 1050px) { .ui-locale-control { min-width: 130px; } .ui-locale-control > span { display: none; } }
@media (max-width: 760px) { .ui-locale-control { min-width: 0; width: 110px; } .ui-locale-control select { min-height: 40px; font-size: .72rem; padding: 6px 8px; } }

/* PLHP Buchhaltung — organisation-wide accounting cockpit */
.finance-page { gap: 16px; }
.finance-activation-panel { border-color: #dbc7db; background: linear-gradient(155deg,#fff,#fcf8fc); }
.finance-current-book { border-left: 5px solid var(--pl-purple); }
.finance-entity-card { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.finance-entity-card > div { display:grid; gap:4px; min-width:0; }
.finance-entity-card small { color:var(--muted); line-height:1.45; }
.finance-editor-panel { border-color:#dbc7db; box-shadow:0 12px 36px color-mix(in srgb, var(--pl-purple) 7%, transparent); }
.finance-property-chooser { display:grid; gap:8px; margin:14px 0; padding:12px; border:1px solid var(--border); border-radius:10px; background:#fcfafc; }
.finance-property-chooser > strong { color:var(--pl-purple); font-size:.78rem; }
.finance-property-chooser .editor-toggle { display:flex; align-items:center; gap:9px; padding:7px 8px; border-radius:7px; background:#fff; }
.finance-property-chooser input { width:17px; height:17px; min-height:17px; padding:0; accent-color:var(--pl-purple); }
.finance-area-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:10px; }
.finance-area-card { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; min-height:104px; }
.finance-area-card > div { display:grid; gap:5px; }
.finance-area-card small { color:var(--muted); line-height:1.45; }
.finance-parallel-metrics { margin:12px 0; }
@media(max-width:720px){ .finance-entity-card,.finance-area-card { align-items:stretch; flex-direction:column; } }
/* Accessible design preview */
.design-contrast-errors{padding:12px 16px;border:1px solid currentColor;border-radius:8px;color:var(--plhp-color-danger,#B91C1C);margin:10px 0}
.design-contrast-errors p{margin:4px 0;font-size:.8rem}
.design-contrast-ok{font-size:.8rem;color:var(--plhp-color-text-muted,#555);margin:8px 0}
.design-palette-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:10px 0}
.design-palette-actions span{font-size:.77rem;color:var(--muted)}


/* Moduleeinrichtung v1.011: Betriebsgruppen und Abhaengigkeiten */
.module-category-groups{display:grid;gap:12px}
.module-category-group{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.module-category-heading{display:flex;align-items:center;gap:12px;padding:15px 17px;cursor:pointer;list-style:none}
.module-category-heading::-webkit-details-marker{display:none}
.module-category-heading strong{flex:1;min-width:0}
.module-category-heading small{color:var(--muted);font-variant-numeric:tabular-nums}
.module-group-chevron{font-size:1.3rem;line-height:1;transition:transform .15s}
.module-category-group[open] .module-group-chevron{transform:rotate(180deg)}
.module-category-group>.module-list{padding:0 12px 12px}
.module-category-group>.module-list .module-row{background:var(--surface)}
.module-prerequisite-warning{color:#9e4c00!important;font-weight:700}
.module-prerequisite-warning button{margin-left:6px;text-decoration:underline;cursor:pointer}
.module-group-setup{padding:12px 16px;border-bottom:1px solid #ece5eb}
.module-setup-panel{display:grid;gap:10px;margin-top:10px;padding:14px;border:1px solid #e9dfe9;border-radius:12px}
.module-setup-panel p{margin:0;color:#655967;font-size:.92rem}
.module-setup-choice{display:flex;align-items:center;gap:9px;padding:6px 2px}
.module-setup-choice input{accent-color:#760076}
.module-setup-panel small{color:#74697a}


/* PLHP concierge invitation */
body.plhp-invite-page{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 12% 8%,rgba(75,85,99,.08),transparent 32%),
    linear-gradient(180deg,#fbf8fb 0%,#f5f1f5 100%);
  color:#211d21;
  font-family:"Arial",Arial,sans-serif;
  -webkit-font-smoothing:antialiased
}
.plhp-invite-page *{box-sizing:border-box}
.plhp-invite-shell{min-height:100vh;border-top:8px solid #4B5563}
.plhp-invite-wrap{min-height:calc(100vh - 8px);display:grid;place-items:center;padding:38px 20px}
.plhp-invite-card{
  width:min(100%,680px);
  background:#fff;
  border:1px solid #eadfea;
  border-radius:24px;
  box-shadow:0 24px 70px rgba(77,31,77,.12);
  padding:34px;
  position:relative;
  overflow:hidden
}
.plhp-invite-card:before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:5px;
  background:linear-gradient(90deg,#4B5563,#a4349f)
}
.plhp-invite-brand{display:flex;align-items:center;gap:13px;margin-bottom:34px}
.plhp-invite-brandmark{
  width:48px;height:48px;border-radius:15px;background:#4B5563;
  display:grid;place-items:center;box-shadow:0 8px 18px rgba(75,85,99,.18)
}
.plhp-invite-brandmark-inner{color:#fff;font-weight:800;font-size:18px;letter-spacing:-.04em}
.plhp-invite-brandcopy{display:flex;flex-direction:column;line-height:1.05}
.plhp-invite-brandcopy strong{font-size:19px;font-weight:800}
.plhp-invite-brandcopy span{margin-top:5px;font-size:13px;color:#756b75}
.plhp-invite-hero{margin-bottom:26px}
.plhp-invite-kicker{
  margin:0 0 8px;color:#4B5563;font-size:12px;font-weight:800;
  letter-spacing:.11em;text-transform:uppercase
}
.plhp-invite-hero h1{
  margin:0;font-family:"Arial",Arial,sans-serif;
  font-size:clamp(31px,5vw,46px);line-height:1.02;letter-spacing:-.035em
}
.plhp-invite-lead{margin:14px 0 0;color:#6d646d;font-size:17px;line-height:1.55;max-width:560px}
.plhp-invite-account{
  margin:0 0 26px;padding:16px 18px;border-radius:15px;
  border:1px solid #eadfea;background:#fbf8fb;
  display:grid;gap:4px
}
.plhp-invite-account-label{font-size:11px;font-weight:800;color:#4B5563;text-transform:uppercase;letter-spacing:.1em}
.plhp-invite-account strong{font-size:16px}
.plhp-invite-account span:last-child{font-size:14px;color:#6d646d;overflow-wrap:anywhere}
.plhp-invite-alert{
  display:grid;gap:4px;margin:0 0 22px;padding:14px 16px;
  border:1px solid #e6b9c7;background:#fff4f7;color:#8d1738;border-radius:13px
}
.plhp-invite-alert strong{font-size:14px}.plhp-invite-alert span{font-size:13px}
.plhp-invite-form{display:grid;gap:18px}
.plhp-invite-field{display:grid;gap:7px}
.plhp-invite-field label{font-size:15px;font-weight:800}
.plhp-invite-field input{
  width:100%;height:52px;padding:0 15px;border-radius:13px;
  border:1px solid #cfc3cf;background:#fff;color:#211d21;
  font:inherit;font-size:16px;outline:none;transition:border .15s,box-shadow .15s
}
.plhp-invite-field input:focus{border-color:#4B5563;box-shadow:0 0 0 4px rgba(75,85,99,.09)}
.plhp-invite-field small{font-size:12px;color:#776d77}
.plhp-invite-primary{
  min-height:54px;border:0;border-radius:13px;background:#4B5563;color:#fff;
  padding:0 20px;font:inherit;font-size:16px;font-weight:800;cursor:pointer;
  box-shadow:0 10px 24px rgba(75,85,99,.18);transition:transform .15s,background .15s
}
.plhp-invite-primary:hover{background:#374151}.plhp-invite-primary:active{transform:translateY(1px)}
.plhp-invite-trust{
  margin-top:22px;padding-top:18px;border-top:1px solid #eee5ee;
  display:flex;align-items:center;justify-content:center;gap:8px;
  color:#756b75;font-size:12px
}
.plhp-invite-trust-dot{width:8px;height:8px;border-radius:50%;background:#2c9b67;box-shadow:0 0 0 4px rgba(44,155,103,.10)}
@media(max-width:640px){
  .plhp-invite-wrap{padding:18px 12px}
  .plhp-invite-card{padding:24px 20px;border-radius:18px}
  .plhp-invite-brand{margin-bottom:28px}
  .plhp-invite-lead{font-size:16px}
}


/* PLHP account invitation master-logo + password visibility */
.plhp-invite-brand-master{
  display:flex;
  align-items:center;
  margin-bottom:30px;
  min-height:64px;
}
.plhp-invite-master-logo{
  display:block;
  width:min(100%,420px);
  height:auto;
  object-fit:contain;
  object-position:left center;
}
.plhp-password-input-wrap{
  position:relative;
}
.plhp-password-input-wrap input{
  padding-right:54px;
}
.plhp-password-toggle{
  position:absolute;
  top:50%;
  right:8px;
  width:40px;
  height:40px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  background:transparent;
  color:#6d646d;
  cursor:pointer;
  transition:background .15s,color .15s,box-shadow .15s;
}
.plhp-password-toggle:hover{
  background:#f6edf6;
  color:#4B5563;
}
.plhp-password-toggle:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(75,85,99,.14);
  color:#4B5563;
}
.plhp-password-toggle svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.plhp-password-toggle .plhp-eye-hide{display:none}
.plhp-password-toggle[aria-pressed="true"] .plhp-eye-show{display:none}
.plhp-password-toggle[aria-pressed="true"] .plhp-eye-hide{display:block}
@media(max-width:640px){
  .plhp-invite-brand-master{margin-bottom:24px}
  .plhp-invite-master-logo{width:min(100%,340px)}
}



/* PLHP brand registration mark */
.plhp-brand-r{
  font-size:.56em;
  line-height:0;
  vertical-align:super;
  position:relative;
  top:-.03em;
}



/* Stage 19: a translated-offscreen drawer can still expose keyboard focus
   and, during transitions, remain visible to assistive navigation. */
@media (max-width: 860px) {
  #plhp-mobile-sidebar:not(.open) { visibility: hidden; pointer-events: none; }
  #plhp-mobile-sidebar.open { visibility: visible; pointer-events: auto; }
}


/* PLHP R5 · Property-aware hospitality identity. Published CSS tokens override all fallback colours. */
:root {
  --pl-purple: var(--plhp-color-primary, #760076);
  --pl-purple-dark: color-mix(in srgb, var(--pl-purple) 74%, #160a20);
  --pl-purple-soft: color-mix(in srgb, var(--pl-purple) 9%, #ffffff);
  font-family: var(--plhp-font-body, "Trebuchet MS", Arial, sans-serif);
}
h1, h2, h3, h4, .page-heading { font-family: var(--plhp-font-heading, "Trebuchet MS", Arial, sans-serif); }
.login-page { --pl-purple: var(--plhp-color-primary, #760076); --pl-purple-dark: color-mix(in srgb, var(--pl-purple) 74%, #160a20); --pl-purple-soft: color-mix(in srgb, var(--pl-purple) 9%, #fff); }
.login-hero { background: linear-gradient(145deg, color-mix(in srgb, var(--pl-purple) 45%, #0f0c16) 0%, color-mix(in srgb, var(--pl-purple) 80%, #25102d) 55%, var(--pl-purple) 100%); padding: clamp(32px, 4vw, 66px); gap: 32px; }
.login-hero::after { pointer-events: none; }
.login-platform-logo { display:block; width: min(420px, 100%); height: auto; object-fit: contain; background: #fff; padding: 12px 18px; border-radius: 16px; box-shadow: 0 18px 45px rgba(0,0,0,.15); }
.hero-copy { margin: auto 0 0; max-width: 650px; }
.hero-copy h1 { max-width: 18ch; font-size: clamp(2.3rem, 3.5vw, 4.4rem); line-height: 1.06; letter-spacing: -.035em; }
.hero-copy > p:last-child { opacity: .9; max-width: 58ch; margin: 0; }
.hospitality-modules { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: clamp(8px, 1.4vw, 16px); max-width: 665px; position: relative; z-index: 2; }
.hospitality-modules img { display:block; width: 100%; aspect-ratio: 1/1; object-fit: contain; background: white; border-radius: 15px; box-shadow: 0 12px 28px rgba(13,9,21,.19); padding: 6px; }
.login-panel { background: #fff; }
.login-card .kicker { color: var(--pl-purple); }
.login-card input:focus-visible, .login-card button:focus-visible { outline: 2px solid var(--pl-purple); outline-offset: 2px; }
.mobile-brand img { display:block; max-width: 210px; height:auto; }
/* No legacy charcoal background or inherited plum leftovers in the sidebar. */
.sidebar { background: var(--plhp-color-primary, #760076); --sidebar-ink: var(--plhp-color-on-primary, #ffffff); }
.sidebar-logo { width: 42px; height: 42px; object-fit: contain; border-radius: 11px; background: #fff; padding: 4px; flex: 0 0 auto; }
.sidebar-head { align-items: flex-start; }
.sidebar-brand strong { white-space: normal; overflow-wrap: anywhere; font-size:.82rem; line-height:1.3; }
.sidebar .main-nav button, .sidebar .main-nav button span, .sidebar .main-nav .business-subnav button { color: var(--sidebar-ink); }
.sidebar .main-nav button:hover, .sidebar .main-nav .business-subnav button:hover, .sidebar .main-nav .business-subnav button:focus-visible { background: color-mix(in srgb, var(--sidebar-ink) 16%, transparent); }
.sidebar .main-nav button.active, .sidebar .main-nav button.is-current { background: color-mix(in srgb, var(--sidebar-ink) 21%, transparent); color: var(--sidebar-ink); box-shadow: inset 3px 0 0 var(--sidebar-ink); }
.sidebar .main-nav button.active span, .sidebar .main-nav button.is-current span { color: var(--sidebar-ink); }
.sidebar .business-subnav { border-left-color: color-mix(in srgb, var(--sidebar-ink) 48%, transparent); }
.sidebar .business-subnav-title { color: var(--sidebar-ink); opacity: .75; }
.sidebar .sidebar-foot { color: var(--sidebar-ink); border-top:1px solid color-mix(in srgb,var(--sidebar-ink) 20%,transparent); }
.sidebar .nav-collapsible, .sidebar .nav-caption { color: var(--sidebar-ink); }
.sidebar .sidebar-brand span { color:var(--sidebar-ink); }
.main-nav button.active { box-shadow: 0 8px 24px color-mix(in srgb, var(--pl-purple) 25%, transparent); }
.business-quick-actions { background: color-mix(in srgb, var(--pl-purple) 3%, white); border-color: color-mix(in srgb, var(--pl-purple) 18%, white); }
@media (max-width: 920px) {
 .login-hero { display:flex; min-height:auto; padding: 22px 24px; gap: 18px; }
 .login-hero .hero-copy { display:none; }
 .login-hero .hospitality-modules { display:none; }
 .login-hero .login-platform-logo { width: min(240px, 100%); padding: 6px 12px; }
 .login-panel { padding: 28px 22px; }
 .mobile-brand { display:none; }
}
@media (min-width: 921px) and (max-height: 760px) {
 .login-hero { gap: 17px; }
 .hero-copy h1 { font-size: clamp(2rem, 3vw, 3.2rem); margin-bottom: 12px; }
 .hospitality-modules { max-width: 480px; }
}

/* PLHP R6 · Concept C / Brand Hero. Actual login controls remain Vue-authenticated.
   Property themes can override --plhp-color-primary, --plhp-font-body and
   --plhp-login-hero-image through the already published scoped theme variables. */
.login-page {
  --pl-purple: var(--plhp-color-primary, #760076);
  --pl-purple-dark: color-mix(in srgb, var(--pl-purple) 74%, #180d1d);
  --pl-purple-soft: color-mix(in srgb, var(--pl-purple) 9%, #fff);
  display: grid;
  grid-template-columns: minmax(0, 60%) minmax(0, 40%);
  min-height: 100dvh;
  font-family: var(--plhp-font-body, "Trebuchet MS", Arial, sans-serif);
  background: #fff;
}
.login-page .login-hero.login-hero-r6 {
  position: relative; isolation: isolate;
  min-height: 100dvh;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: clamp(25px, 3.65vw, 58px) clamp(24px, 4.4vw, 70px) clamp(25px, 3.5vw, 54px);
  gap: clamp(10px, 2.3vh, 24px);
  background-color: var(--pl-purple);
  background-image: linear-gradient(90deg, color-mix(in srgb, var(--pl-purple) 55%, #17051b) 0%, color-mix(in srgb, var(--pl-purple) 35%, transparent) 64%, color-mix(in srgb, var(--pl-purple) 20%, transparent) 100%), var(--plhp-login-hero-image, url('/build/assets/brand/hospitality-lounge-r6.webp'));
  background-position: center; background-size: cover;
  overflow: hidden;
  color: #fff;
}
.login-page .login-hero.login-hero-r6::after { content: none !important; box-shadow: none; display: none; }
.login-page .login-hero.login-hero-r6::before {
  content: ''; pointer-events: none; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg, rgba(19,4,23,.14), transparent 33%, color-mix(in srgb, var(--pl-purple) 24%, #17091a) 100%);
}
.login-brand-r6 { flex: 0 0 auto; display: flex; align-items: center; gap: 14px; min-width: 0; }
.login-brand-tile {
  display: inline-flex; align-items: center; justify-content: center;
  width: 61px; height: 61px; flex: none;
  background: var(--pl-purple); border: 1px solid rgba(255,255,255,.85);
  border-radius: 17px; color: #fff;
  font-weight: 700; font-size: 39px; letter-spacing: -.12em;
  line-height: 1; box-shadow: 0 6px 22px rgba(0,0,0,.13);
  padding-right: 4px;
}
.login-brand-tile span { border-left: 2px solid #fff; margin-left: 4px; padding-left: 5px; line-height: 1; }
.login-brand-text { color: white; font-size: clamp(1.15rem,2.1vw,2rem); letter-spacing: -.06em; line-height: 1.02; white-space: nowrap; font-weight: 400; }
.login-brand-text strong { font-weight: 800; }
.login-brand-text sup { font-size:.48em; vertical-align:top; position: relative; top:.1em; }
.login-brand-text small { display:block; font-size:.47em; font-weight:400; letter-spacing: .19em; margin-top: 6px; }
.login-art { position: relative; z-index: 1; flex: 1 1 auto; min-height: 160px; max-height: 45vh; display:flex; justify-content:center; align-items:center; margin: 0; }
.login-hospitality-mark {
  display:block; width: min(48%, 375px); max-height: 100%; height: auto;
  object-fit:contain; border-radius: 22%;
  box-shadow: 0 13px 38px rgba(13, 0, 17, .32), 0 0 52px color-mix(in srgb, var(--pl-purple) 38%, transparent);
  filter: drop-shadow(0 9px 10px rgba(22,0,22,.12));
}
.login-page .login-hero-r6 .hero-copy { flex: 0 0 auto; position:relative; z-index:2; margin: 0; max-width: 620px; }
.login-page .login-hero-r6 .hero-copy h1 { display:flex;flex-direction:column; max-width:none; margin: 0 0 15px; font-size:clamp(2.25rem,3.7vw,4.2rem); line-height:1.02; letter-spacing:-.043em; }
.login-page .login-hero-r6 .hero-copy h1 strong {font-weight:800;}
.login-page .login-hero-r6 .hero-copy h1 span {font-weight:400;letter-spacing:-.048em;}
.login-page .login-hero-r6 .hero-copy p { margin: 0; max-width: 46ch; color:rgb(255 255 255 / 89%); font-size: clamp(.92rem,1.25vw,1.18rem); line-height: 1.48; }
.login-page .login-hero-r6 .hospitality-modules { flex: 0 0 auto; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin-top: clamp(12px,2vh,23px); gap:0; max-width: 100%; position: relative; z-index:2; }
.login-page .login-hero-r6 .login-module { display:flex; align-items:center; justify-content:center; gap:8px; padding: 0 clamp(3px,.7vw,13px); border-right:1px solid rgb(255 255 255 / 37%); min-width:0; }
.login-page .login-hero-r6 .login-module:first-child {justify-content:flex-start;padding-left:0;}
.login-page .login-hero-r6 .login-module:last-child {border:0;padding-right:0;}
.login-page .login-hero-r6 .hospitality-modules img { flex:none; display:block; object-fit:contain; width: 24px; height:24px; padding:0; border:0; border-radius:0; background:transparent; box-shadow:none; aspect-ratio:auto; }
.login-module span { font-size:clamp(.66rem,.92vw,.85rem); line-height:1.25; color:#fff; }
.login-page .login-panel { background:#fff; padding: clamp(28px,5.2vw,85px); min-width:0; display:grid; place-items:center; }
.login-page .login-card { width: min(440px,100%); }
.login-page .login-card .kicker {color: var(--pl-purple); letter-spacing:.2em; font-size:.79rem; font-weight:800; margin:0 0 19px;}
.login-page .login-card h2 { color:#151321; font-size:clamp(2rem,2.5vw,3rem); line-height:1.05; margin:0 0 17px; letter-spacing:-.044em; }
.login-page .login-card > .muted { color:#777282; margin:0 0 39px; line-height:1.5; font-size:1.01rem; max-width:32ch; }
.login-page .login-card label { display:block; position:relative; margin-bottom:23px; }
.login-page .login-card label > span:first-child { display:block; font-weight:700; color:#242232; margin-bottom:9px; font-size:.84rem; }
.login-page .login-card input {min-height:59px; border:1px solid #dcd8e2; border-radius:10px; background:#fff; padding:12px 50px; font-size:1rem; width:100%; box-shadow:0 1px 2px rgba(10,8,25,.025);}
.login-page .login-card input:focus {outline:2px solid var(--pl-purple);outline-offset:1px;box-shadow:0 0 0 4px color-mix(in srgb,var(--pl-purple) 10%,transparent);}
.login-page .login-email-field::before,.login-page .login-password-field::before {pointer-events:none; position:absolute; top:43px; left:18px; color:#77718c; font-size:1.33rem; line-height:1; z-index:1;}
.login-page .login-email-field::before {content:'✉';}
.login-page .login-password-field::before {content:'♙';font-size:1.38rem;}
.login-page .login-card .login-password-reveal { position:absolute;right:12px;bottom:8px;width:43px;height:43px;background:transparent;border:0;border-radius:8px;color:#746b86;font-size:1.55rem;line-height:1;display:grid;place-items:center;}
.login-page .login-card .login-password-reveal:focus-visible{outline:2px solid var(--pl-purple);outline-offset:0;}
.login-page .login-card .primary-button.full {height:61px;margin:2px 0 13px;border-radius:10px;font-size:1.08rem;background:var(--pl-purple);font-weight:700;}
.login-page .login-card .primary-button.full::after{content:'→';margin-left:17px;font-size:1.25em;}
.login-page .login-card .secondary-button.full {width:100%;min-height:58px;border-radius:10px;border:1px solid color-mix(in srgb,var(--pl-purple) 40%,#e6e0eb);background:#fff;color:var(--pl-purple);font-size:1rem;font-weight:700;}
.login-page .login-card .secondary-button.full::before {content:'⚿';margin-right:13px;font-size:1.25em;}
.login-page .login-card .security-note { margin-top:32px; font-size:.74rem; white-space:normal;color:#817b8b;line-height:1.55; }
.login-page .login-card .dot.secure { background:#19865a; }
@media(max-width:1150px) and (min-width:921px) {
  .login-page{grid-template-columns:minmax(0,55%) minmax(0,45%);}
  .login-page .login-hero-r6 .login-module{flex-direction:column;text-align:center;gap:4px;}
  .login-page .login-hero-r6 .login-module:first-child{justify-content:center;}
  .login-module span{font-size:.66rem;}
}
@media(max-width:920px) {
  .login-page {display:flex; flex-direction:column; min-height:100dvh;}
  .login-page .login-hero.login-hero-r6 { display:flex; min-height:auto; padding:20px 24px 22px; gap:10px; }
  .login-brand-r6 {gap:9px;}
  .login-brand-tile {width:44px;height:44px;font-size:28px;border-radius:12px;}
  .login-brand-text {font-size:1.28rem;}
  .login-page .login-hero-r6 .login-art { display:none; }
  .login-page .login-hero-r6 .hero-copy { display:block; margin:7px 0 0; }
  .login-page .login-hero-r6 .hero-copy h1 {font-size:clamp(1.35rem,4vw,1.95rem);margin:0;}
  .login-page .login-hero-r6 .hero-copy h1 strong, .login-page .login-hero-r6 .hero-copy h1 span {display:inline;}
  .login-page .login-hero-r6 .hero-copy p {display:none;}
  .login-page .login-hero-r6 .hospitality-modules {display:none;}
  .login-page .login-panel {padding:clamp(32px,7vw,72px) 23px;flex:1;}
  .login-page .login-card {max-width:480px;}
  .login-page .login-card > .muted { margin-bottom:27px; }
}
@media(prefers-reduced-motion:reduce){.login-page .primary-button,.login-page .secondary-button {transition:none;transform:none;}}

/* PLHP R8 · Terrassen-/See-Login mit leuchtendem Signet auf dem Tisch.
   Verbindliche Standard-Navigation in PL Purple #760076. */
.login-page .login-hero.login-hero-r6 {
  background-image:
    linear-gradient(104deg, color-mix(in srgb, var(--pl-purple) 58%, #18071d) 0%, color-mix(in srgb, var(--pl-purple) 28%, transparent) 42%, rgba(21, 7, 30, .12) 67%, rgba(11, 4, 19, .22) 100%),
    linear-gradient(180deg, rgba(118, 0, 118, .13) 0%, rgba(118, 0, 118, .05) 34%, rgba(14, 6, 24, .24) 100%),
    var(--plhp-login-hero-image, url('/build/assets/brand/hospitality-lake-login-r8.webp'));
  background-position: center;
  background-size: cover;
}
.login-page .login-hero.login-hero-r6::before {
  background: linear-gradient(180deg, rgba(19,4,23,.16), transparent 31%, rgba(12, 3, 17, .28) 100%);
}
.login-page .login-hero-r6 .login-art {
  position: absolute;
  left: 57%;
  bottom: 5.5%;
  transform: translateX(-50%);
  width: clamp(185px, 30vw, 430px);
  min-height: 0;
  max-height: none;
  display: flex;
  justify-content: center;
  align-items: flex-end;
  z-index: 1;
  pointer-events: none;
  margin: 0;
}
.login-page .login-hero-r6 .login-hospitality-mark {
  width: 100%;
  height: auto;
  max-height: none;
  border-radius: 0;
  box-shadow: 0 18px 46px rgba(15, 2, 20, .32), 0 0 60px color-mix(in srgb, var(--pl-purple) 50%, transparent);
  filter: drop-shadow(0 16px 22px rgba(14, 3, 18, .25));
  animation: plhp-sign-pulse 4.8s ease-in-out infinite alternate;
}
.login-page .login-hero-r6 .hero-copy {
  position: relative;
  z-index: 2;
  margin-top: auto;
  max-width: 560px;
  padding-bottom: clamp(92px, 9vw, 136px);
}
.login-page .login-hero-r6 .hospitality-modules {
  position: relative;
  z-index: 2;
  margin-top: 16px;
}
.sidebar {
  background: var(--plhp-color-primary, #760076) !important;
  --sidebar-ink: var(--plhp-color-on-primary, #ffffff) !important;
}
.sidebar .main-nav button.active,
.sidebar .main-nav button.is-current {
  background: color-mix(in srgb, var(--sidebar-ink) 21%, transparent) !important;
  color: var(--sidebar-ink) !important;
  box-shadow: inset 3px 0 0 var(--sidebar-ink);
}
@keyframes plhp-sign-pulse {
  from {
    transform: translateY(0) scale(1);
    filter: drop-shadow(0 16px 22px rgba(14, 3, 18, .23)) brightness(1);
  }
  to {
    transform: translateY(-3px) scale(1.012);
    filter: drop-shadow(0 20px 28px rgba(14, 3, 18, .32)) brightness(1.07);
  }
}
@media (max-width: 980px) {
  .login-page .login-hero-r6 .login-art {
    left: 55%;
    bottom: 4.4%;
    width: clamp(170px, 37vw, 305px);
  }
  .login-page .login-hero-r6 .hero-copy {
    padding-bottom: clamp(72px, 14vw, 108px);
  }
}
@media (max-width: 840px) {
  .login-page .login-hero-r6 .login-art {
    display: none;
  }
  .login-page .login-hero-r6 .hero-copy {
    padding-bottom: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .login-page .login-hero-r6 .login-hospitality-mark {
    animation: none;
  }
}


/* R9 - tabletop anchoring and legibility; the source scene remains its own editable asset.
   Centre-on-table crop is intentionally biased right to preserve the round tabletop.
   Theme values stay scoped to the authenticated selected establishment. */
.login-page .login-hero.login-hero-r6 {
  background-position: 62% center;
}
.login-page .login-hero-r6 .login-art {
  left: 77%;
  bottom: 22%;
  width: clamp(190px, 20.5vw, 315px);
}
.login-page .login-hero-r6 .login-hospitality-mark {
  box-shadow: none;
  filter: drop-shadow(0 11px 15px rgba(32, 4, 29, .4));
  animation: plhp-sign-glow-r9 5.2s ease-in-out infinite alternate;
}
@keyframes plhp-sign-glow-r9 {
  from { opacity: .96; filter: brightness(.98) drop-shadow(0 11px 15px rgba(32, 4, 29, .4)); }
  to { opacity: 1; filter: brightness(1.065) drop-shadow(0 12px 19px rgba(65, 0, 55, .5)); }
}
.login-page .login-hero-r6 .hero-copy {
  margin-top: auto;
  padding-bottom: clamp(76px, 8vw, 115px);
  max-width: min(480px, 56%);
  text-shadow: 0 2px 16px rgba(25, 5, 31, .55);
}
.login-page .login-hero-r6 .hospitality-modules { text-shadow: 0 1px 8px rgba(25, 5, 31, .6); }
@media (max-width: 1080px) and (min-width: 841px) {
 .login-page .login-hero-r6 .login-art { left: 76%; bottom: 23%; width: clamp(145px, 20vw, 250px); }
 .login-page .login-hero-r6 .hero-copy { padding-bottom: 90px; max-width: 56%; }
}
@media (max-width: 840px) {
 .login-page .login-hero.login-hero-r6 { background-position: 60% 60%; }
 .login-page .login-hero-r6 .login-art { display: none; }
 .login-page .login-hero-r6 .hero-copy { padding-bottom: 0; }
}
@media (prefers-reduced-motion: reduce) {
 .login-page .login-hero-r6 .login-hospitality-mark { animation: none; }
}


/* R18.2 – image-accurate original identity and independently configurable navigation.
   Does not inherit a previously published grey primary or secondary. */
.sidebar {
  background: var(--plhp-color-navigation, #760076) !important;
  --sidebar-ink: var(--plhp-color-on-navigation, #ffffff) !important;
}
.login-page .login-hero-r6 .login-brand-r6 { width: min(365px, 95%); display: block; z-index: 4; }
.login-page .login-hero-r6 .login-brand-original {
  width: 100%; height: auto; object-fit: contain; display: block;
  border-radius: 11px; background: #fff; padding: 5px 7px;
  box-shadow: 0 6px 22px rgb(20 5 22 / 21%);
}
.login-page .login-hero-r6 .login-art {
  left: 78%; bottom: 10.5%; width: clamp(230px, 23vw, 370px);
  transform: translate(-50%, -74px);
}
.login-page .login-hero-r6 .login-hospitality-mark {
  filter: none; box-shadow: none; border-radius: 0;
  animation: none; /* preserves the original contact/base shadow exactly */
}
@media (max-width: 1080px) and (min-width: 841px) {
  .login-page .login-hero-r6 .login-art { left: 77%; bottom: 10%; width: clamp(190px, 25vw, 290px); }
}
@media (max-width: 840px) {
  .login-page .login-hero-r6 .login-art { display: none; }
  .login-page .login-hero-r6 .login-brand-r6 { width: min(290px, 85%); }
}



/* R19.7.8 – Stay admin: full-width, legible room setup across DEV and LIVE.
   Only presentation is changed; stay-service validation and booking rules remain intact. */
.stay-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;width:100%;min-width:0}
.stay-layout>.stay-service-list,.stay-layout>.stay-editor-panel{width:100%;max-width:none;min-width:0;grid-column:1/-1}
.stay-service-list{padding:18px 22px}
.stay-service-list .stay-service-stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;max-height:none;overflow:visible}
.stay-service-list .stay-service-stack>article{min-width:0}
.stay-editor-panel{display:grid;gap:20px;padding:22px 26px}
.stay-editor-panel .stay-editor-head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.stay-editor-panel .stay-editor-head .panel-head-actions{display:flex;flex-wrap:wrap;gap:10px}
.stay-editor-panel .stay-basics-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px}
.stay-editor-panel .stay-basics-grid>.wide{grid-column:span 2}
.stay-editor-panel .stay-policy-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.stay-editor-panel .stay-resource-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:start;padding:20px}
.stay-editor-panel .stay-resource-row .stay-row-index{grid-column:1/-1;align-self:start;width:auto;height:auto;justify-self:start;padding:5px 12px;border-radius:9px;font-size:.76rem}
.stay-editor-panel .stay-resource-row label.wide{grid-column:span 2}
.stay-editor-panel .stay-resource-row>.text-button{justify-self:start;align-self:end}
.stay-editor-panel .stay-rate-plan-basics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.stay-editor-panel .stay-rate-plan-basics>.wide{grid-column:span 2}
.stay-editor-panel .stay-config-block{gap:16px;padding:20px}
.stay-editor-panel .stay-config-block>.stay-block-head{align-items:center;flex-wrap:wrap}
.stay-editor-panel .stay-config-block .helper{line-height:1.5;max-width:100ch}
.stay-editor-panel :is(.stay-basics-grid,.stay-policy-grid,.stay-resource-row,.stay-rate-plan-basics) label{min-width:0;gap:7px}
.stay-editor-panel :is(.stay-basics-grid,.stay-policy-grid,.stay-resource-row,.stay-rate-plan-basics) label>span{font-size:.77rem;line-height:1.35;overflow-wrap:anywhere}
.stay-editor-panel :is(.stay-basics-grid,.stay-policy-grid,.stay-resource-row,.stay-rate-plan-basics) input,
.stay-editor-panel :is(.stay-basics-grid,.stay-policy-grid,.stay-resource-row,.stay-rate-plan-basics) select,
.stay-editor-panel textarea{box-sizing:border-box;width:100%;max-width:100%;min-width:0;font-size:.9rem;line-height:1.3}
.stay-editor-panel textarea{min-height:90px;resize:vertical}
.stay-editor-panel .stay-config-block:has(.stay-policy-grid){background:#fbf9fc}
.stay-entry-shortcut{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:12px 0 18px;padding:14px 16px;border:1px solid #d9bfdc;border-radius:12px;background:#faf4fb}
.stay-entry-shortcut a{display:inline-flex;align-items:center;justify-content:center;border-radius:9px;background:#760076;color:white;text-decoration:none;font-weight:800;padding:10px 16px;font-size:.9rem}
.stay-entry-shortcut span{color:#3d3044;font-size:.86rem;line-height:1.5}
@media(max-width:960px){
  .stay-editor-panel .stay-basics-grid,.stay-editor-panel .stay-policy-grid,.stay-editor-panel .stay-rate-plan-basics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stay-editor-panel .stay-resource-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stay-editor-panel .stay-resource-row label.wide{grid-column:1/-1}
}
@media(max-width:620px){
  .stay-service-list,.stay-editor-panel{padding:14px}
  .stay-editor-panel .stay-basics-grid,.stay-editor-panel .stay-policy-grid,.stay-editor-panel .stay-resource-row,.stay-editor-panel .stay-rate-plan-basics{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px}
  .stay-editor-panel .stay-basics-grid>.wide,.stay-editor-panel .stay-resource-row label.wide,.stay-editor-panel .stay-rate-plan-basics>.wide{grid-column:1/-1}
  .stay-editor-panel .stay-resource-row .stay-row-index{display:inline-flex}
  .stay-editor-panel .stay-config-block{padding:14px}
  .stay-entry-shortcut{align-items:stretch;flex-direction:column}
}
  .login-page .login-hero-r6 .hero-copy h1 strong, .login-page .login-hero-r6 .hero-copy h1 span {display:inline;}
  .login-page .login-hero-r6 .hero-copy p {display:none;}
  .login-page .login-hero-r6 .hospitality-modules {display:none;}
  .login-page .login-panel {padding:clamp(32px,7vw,72px) 23px;flex:1;}
  .login-page .login-card {max-width:480px;}
  .login-page .login-card > .muted { margin-bottom:27px; }
}
@media(prefers-reduced-motion:reduce){.login-page .primary-button,.login-page .secondary-button {transition:none;transform:none;}}

/* R19.7.32 – consistent form control typography in restaurant service editor. */
.service-editor-panel input:not([type="checkbox"]):not([type="radio"]),
.service-editor-panel select,
.service-editor-panel textarea,
.service-term-editor-panel input:not([type="checkbox"]):not([type="radio"]),
.service-term-editor-panel select,
.service-term-editor-panel textarea {
  font-family: inherit;
  font-size: .875rem;
  line-height: 1.4;
}
.service-editor-panel input::placeholder,
.service-term-editor-panel input::placeholder { font-size: inherit; }
.schedule-copy-control { display: flex; flex-wrap: wrap; align-items: end; gap: 8px; }
.schedule-copy-control label { display: grid; gap: 4px; }
.schedule-copy-control label > span { font-size: .75rem; font-weight: 700; }


/* R19.7.34: Consistent grid field alignment / no shifted input controls */
.service-editor-panel .service-editor-basics,
.service-editor-panel .schedule-reservation-grid,
.policy-editor-panel .policy-basics-grid,
.policy-editor-panel .policy-tier-row,
.policy-editor-panel .date-exception-grid {align-items:start;}
.service-editor-panel .service-editor-basics > label,
.service-editor-panel .schedule-reservation-grid > label,
.policy-editor-panel .policy-basics-grid > label,
.policy-editor-panel .policy-tier-row > label,
.policy-editor-panel .date-exception-grid > label,
.policy-editor-panel .date-exception-grid .plhp-exception-date-label {align-content:start;min-width:0;grid-template-rows:2.4em 46px auto;gap:5px;}
.service-editor-panel .service-editor-basics > label > span:first-child,
.service-editor-panel .schedule-reservation-grid > label > span:first-child,
.policy-editor-panel .policy-basics-grid > label > span:first-child,
.policy-editor-panel .policy-tier-row > label > span:first-child,
.policy-editor-panel .date-exception-grid > label > span:first-child,
.policy-editor-panel .plhp-exception-date-label > span:first-child {display:flex;align-items:end;line-height:1.2;min-height:2.4em;}
.service-editor-panel .service-editor-basics input:not([type=checkbox]), .service-editor-panel .service-editor-basics select,
.service-editor-panel .schedule-reservation-grid input:not([type=checkbox]), .service-editor-panel .schedule-reservation-grid select,
.policy-editor-panel .policy-basics-grid input, .policy-editor-panel .policy-basics-grid select,
.policy-editor-panel .date-exception-grid input:not([type=checkbox]), .policy-editor-panel .date-exception-grid select,
.policy-editor-panel .policy-tier-row input:not([type=checkbox]), .policy-editor-panel .policy-tier-row select {height:46px;min-height:46px;font-size:.82rem;box-sizing:border-box;}
.policy-editor-panel .policy-basics-grid label small {align-self:start;}
.policy-editor-panel .date-exception-grid {grid-template-columns:minmax(230px,1.2fr) minmax(190px,.8fr) minmax(160px,.6fr) minmax(220px,1.4fr);align-items:start;gap:12px;}
.policy-editor-panel .date-exception-grid:has(.plhp-exception-date-label:nth-child(2)) {grid-template-columns:minmax(230px,1fr) minmax(230px,1fr) minmax(180px,.8fr) minmax(150px,.6fr) minmax(190px,1fr);}
.plhp-exception-date-group {display:grid;align-content:start;gap:7px;min-width:0;}
.plhp-date-triple {display:grid;grid-template-columns:minmax(52px,.7fr) minmax(68px,1fr) minmax(78px,1fr);gap:4px;min-width:0;}
.plhp-date-triple select {padding:6px 4px!important;min-width:0;background-color:#fff;color:var(--ink);}
.plhp-date-range-switch {display:flex!important;align-items:center!important;grid-template-rows:none!important;gap:7px!important;color:var(--pl-purple);font-size:.7rem;white-space:normal;min-height:26px;}
.plhp-date-range-switch input {width:16px;height:16px;min-height:16px;flex-shrink:0;}
.plhp-date-range-switch > span {min-height:unset!important;display:inline!important;font-size:.7rem!important;}
.plhp-field-error-host {position:relative;overflow:visible!important;z-index:4;}
.plhp-error-control {outline:2px solid #760076!important;outline-offset:2px;border-color:#760076!important;box-shadow:0 0 0 4px rgba(118,0,118,.12)!important;}
.plhp-field-error-bubble {position:relative;margin-top:11px;min-width:220px;padding:12px 14px;display:flex;align-items:flex-start;gap:9px;background:#fff;border:1px solid #aa65a9;border-left:4px solid #760076;border-radius:11px;box-shadow:0 8px 22px rgba(62,14,62,.13);color:#3d243d;font-size:.75rem;line-height:1.4;text-align:left;z-index:20;}
.plhp-field-error-bubble:before {content:'';position:absolute;top:-8px;left:20px;width:14px;height:14px;background:#fff;transform:rotate(45deg);border-top:1px solid #aa65a9;border-left:1px solid #aa65a9;}
.plhp-field-error-icon {display:inline-flex;justify-content:center;align-items:center;flex:none;width:20px;height:20px;background:#760076;color:#fff;border-radius:50%;font-weight:900;}
@media(max-width:1200px){.policy-editor-panel .date-exception-grid,.policy-editor-panel .date-exception-grid:has(.plhp-exception-date-label:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:650px){.policy-editor-panel .date-exception-grid,.policy-editor-panel .date-exception-grid:has(.plhp-exception-date-label:nth-child(2)){grid-template-columns:1fr;}.plhp-field-error-bubble{min-width:0;width:100%;}}

/* R19.7.35: aligned, stable form baselines and visually legible controls */
.service-editor-basics, .schedule-service-grid, .schedule-reservation-grid,
.schedule-kitchen-grid, .policy-basics-grid, .mini-form-grid,
.operations-filterbar, .plhp-kitchen-extension-grid, .plhp-kitchen-day-fields { align-items:start !important; }
.service-editor-basics > label:not(.editor-toggle), .schedule-service-grid > label:not(.editor-toggle),
.schedule-reservation-grid > label:not(.editor-toggle), .schedule-kitchen-grid > label:not(.editor-toggle),
.policy-basics-grid > label:not(.editor-toggle), .mini-form-grid > label:not(.editor-toggle),
.operations-filterbar > label:not(.editor-toggle), .plhp-kitchen-extension-grid > label,
.plhp-kitchen-day-fields > label { display:grid !important; grid-template-rows:48px 45px auto; gap:5px; align-content:start; min-width:0; }
.service-editor-basics > label > span:first-child, .schedule-service-grid > label > span:first-child,
.schedule-reservation-grid > label > span:first-child, .schedule-kitchen-grid > label > span:first-child,
.policy-basics-grid > label > span:first-child, .mini-form-grid > label > span:first-child,
.operations-filterbar > label > span:first-child, .plhp-kitchen-extension-grid label > span:first-child,
.plhp-kitchen-day-fields label > span:first-child { align-self:end; }
.service-editor-basics label :is(input:not([type=checkbox]),select),
.schedule-service-grid label :is(input:not([type=checkbox]),select),
.schedule-reservation-grid label :is(input:not([type=checkbox]),select),
.schedule-kitchen-grid label :is(input:not([type=checkbox]),select),
.policy-basics-grid label :is(input:not([type=checkbox]),select),
.mini-form-grid label :is(input:not([type=checkbox]),select),
.operations-filterbar label :is(input:not([type=checkbox]),select),
.plhp-kitchen-extension-grid label :is(input,select),
.plhp-kitchen-day-fields label :is(input:not([type=checkbox]),select) {height:45px;min-height:45px;box-sizing:border-box;width:100%;font-size:.75rem;}
.plhp-kitchen-extension-config {display:grid;gap:12px;padding:16px;border:1px solid #e4d2e4;border-radius:12px;background:#fdf9fd;}
.plhp-kitchen-extension-config > div > strong{color:#760076;font-size:.84rem;}
.plhp-kitchen-extension-grid {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
.plhp-kitchen-day-fields {display:grid;grid-template-columns:minmax(140px,.8fr) minmax(210px,1fr) minmax(260px,2fr);gap:14px;}
.plhp-kitchen-day-action {display:grid;align-content:center;gap:8px;}
.plhp-admin-shortcuts {display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-inline-end:auto;}
.plhp-admin-shortcuts button {min-height:38px;}
@media(max-width:900px){.plhp-kitchen-extension-grid,.plhp-kitchen-day-fields{grid-template-columns:repeat(2,minmax(0,1fr));}.plhp-kitchen-day-action{grid-column:1/-1;}}
@media(max-width:620px){.plhp-kitchen-extension-grid,.plhp-kitchen-day-fields{grid-template-columns:1fr;}}


/* R19.7.35: Three intentionally reserved tracks in every editor cell.
   Label / control / helper each own a row. Missing helper text is an empty
   row; it NEVER changes the vertical line shared by adjacent inputs. */
:where(.golden-master-policy-grid,.service-editor-basics,.schedule-reservation-grid,
 .schedule-service-grid,.schedule-kitchen-grid,.policy-tier-row,.service-term-editor-grid,
 .service-translation-grid,.mini-form-grid) > label:not(.editor-toggle) {
  display:grid!important;
  grid-template-rows:2.85rem 2.9rem minmax(2.55rem, auto)!important;
  gap:.35rem!important;
  align-content:start!important;
  min-width:0;
}
:where(.golden-master-policy-grid,.service-editor-basics,.schedule-reservation-grid,
 .schedule-service-grid,.schedule-kitchen-grid,.policy-tier-row,.service-term-editor-grid,
 .service-translation-grid,.mini-form-grid) > label:not(.editor-toggle) > span:first-child {
  grid-row:1;
  min-width:0;
  align-self:end!important;
  display:block;
  line-height:1.24;
  overflow-wrap:break-word;
}
:where(.golden-master-policy-grid,.service-editor-basics,.schedule-reservation-grid,
 .schedule-service-grid,.schedule-kitchen-grid,.policy-tier-row,.service-term-editor-grid,
 .service-translation-grid,.mini-form-grid) > label:not(.editor-toggle) > :is(input:not([type=checkbox]),select) {
  grid-row:2;
  width:100%;
  height:2.9rem!important;
  min-height:2.9rem!important;
  box-sizing:border-box;
  align-self:stretch;
}
:where(.golden-master-policy-grid,.service-editor-basics,.schedule-reservation-grid,
 .schedule-service-grid,.schedule-kitchen-grid,.policy-tier-row,.service-term-editor-grid,
 .service-translation-grid,.mini-form-grid) > label:not(.editor-toggle) > small {
  grid-row:3;
  display:block;
  align-self:start;
  min-height:2.55rem;
  margin:0;
  line-height:1.35;
}
:where(.golden-master-policy-grid,.service-editor-basics,.schedule-reservation-grid,
 .schedule-service-grid,.schedule-kitchen-grid,.policy-tier-row,.service-term-editor-grid,
 .service-translation-grid,.mini-form-grid) > label:not(.editor-toggle):not(:has(> small))::after {
  content:'';
  display:block;
  grid-row:3;
  min-height:2.55rem;
  pointer-events:none;
}
.golden-master-policy-grid > label > .plhp-form-helper-empty { visibility:hidden; }


/* R19.7.36 – full-width navigation, 35/65 admin layout, no card overflow */
.plhp-service-admin-navigation { display:grid;gap:12px;margin:14px 0 16px;min-width:0; }
.plhp-admin-shortcuts { display:flex;flex-wrap:wrap;gap:8px;align-items:center;min-width:0; }
.plhp-admin-shortcuts > button {max-width:100%;white-space:normal;}
.plhp-hours-admin-tabs { display:flex;flex-wrap:wrap;gap:8px;margin:0;min-width:0; }
.plhp-hours-admin-tabs > button {display:inline-flex;align-items:center;justify-content:center;min-height:43px;min-width:0;padding:10px 16px;background:#fff;color:#760076;border:1px solid #d7c9d9;border-radius:10px;font:inherit;font-size:.86rem;font-weight:750;line-height:1.25;white-space:normal;text-align:center;cursor:pointer;}
.plhp-hours-admin-tabs > button.is-current {background:#760076;color:white;border-color:#760076;}
.restaurant-layout {grid-template-columns:minmax(0,35fr) minmax(0,65fr)!important;align-items:start;gap:16px;min-width:0;}
.restaurant-layout > .panel {min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;}
.restaurant-layout > .plhp-opening-hours-admin {grid-column:1 / -1;min-width:0;}
.restaurant-layout .panel-head {display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;}
.restaurant-layout .panel-head > * {min-width:0;}
.restaurant-layout .panel-head-actions {flex-wrap:wrap;max-width:100%;}
.restaurant-layout .schedule-list {max-width:100%;min-width:0;}
.restaurant-layout .service-schedule-summary {display:grid;grid-template-columns:minmax(84px,.65fr) minmax(0,1.7fr) minmax(120px,1fr);align-items:start;gap:10px;min-width:0;max-width:100%;}
.restaurant-layout .service-schedule-summary > * {min-width:0;overflow-wrap:anywhere;}
.plhp-service-schedule-description {display:grid;gap:4px;min-width:0;}
.plhp-service-schedule-description > strong {font-size:.8rem;font-weight:700;}
.plhp-service-schedule-description > small {display:block;color:var(--muted);font-size:.71rem;line-height:1.45;}
.plhp-service-online-state {font-size:.76rem;line-height:1.4;text-align:right;}
.plhp-hours-week-list {border:1px solid var(--border);border-radius:10px;overflow:hidden;}
.plhp-opening-preview-day {display:grid;grid-template-columns:minmax(116px,180px) minmax(0,1fr);gap:16px;padding:11px 14px;align-items:center;min-width:0;border-bottom:1px solid #eee5ee;}
.plhp-opening-preview-day:last-child {border-bottom:0;}
.plhp-opening-preview-day > * {min-width:0;overflow-wrap:anywhere;}
.plhp-hours-date-preview {display:grid;gap:15px;margin:8px 0;border:1px solid #e6d8e6;border-radius:12px;padding:18px;background:#fff;min-width:0;}
.plhp-hours-date-preview-head {display:flex;align-items:end;justify-content:space-between;flex-wrap:wrap;gap:16px;min-width:0;}
.plhp-hours-date-preview-head > * {min-width:0;}
.plhp-hours-date-preview-head .plhp-hours-date-label {width:min(100%,270px);}
.plhp-hours-guest-card {background:#fbf8fb;border:1px solid #e8d6e8;border-radius:11px;padding:18px;display:grid;gap:9px;min-width:0;}
.plhp-hours-guest-card > strong {font-size:clamp(1.15rem,2vw,1.6rem);overflow-wrap:anywhere;}
.plhp-hours-internal-details {border:1px solid #e6dce6;border-radius:11px;padding:12px 15px;min-width:0;}
.plhp-hours-internal-details summary {cursor:pointer;font-weight:700;color:#760076;}
.plhp-hours-effective-row {min-width:0;}
@media(max-width:1110px){.restaurant-layout{grid-template-columns:minmax(0,1fr)!important;}.restaurant-layout .service-schedule-summary{grid-template-columns:minmax(90px,.5fr) minmax(0,1.3fr) minmax(125px,.7fr);}}
@media(max-width:620px){.restaurant-layout .service-schedule-summary{grid-template-columns:minmax(0,1fr);gap:6px}.plhp-service-online-state{text-align:left}.plhp-opening-preview-day{grid-template-columns:minmax(0,1fr);gap:4px}.plhp-hours-date-preview{padding:12px}}


/* R19.7.37 – aligned admin service/event table studio; no content escapes a tile */
.plhp-table-context,.plhp-event-admin {display:grid;gap:16px;min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;}
.plhp-table-mode-tabs {display:flex;flex-wrap:wrap;gap:8px;min-width:0;}
.plhp-table-mode-tabs>button {background:white;border:1px solid #d7c9d9;border-radius:10px;padding:10px 16px;color:#760076;font:inherit;font-size:.9rem;font-weight:700;min-width:0;cursor:pointer;}
.plhp-table-mode-tabs>button.is-current {background:#760076;border-color:#760076;color:white;}
.plhp-table-context-grid,.plhp-event-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;align-items:start;min-width:0;}
.plhp-table-context-grid>*,.plhp-event-fields>* {min-width:0;max-width:100%;}
.plhp-table-context-grid>label,.plhp-event-fields>label {display:grid;grid-template-rows:minmax(36px,auto) minmax(42px,auto) minmax(42px,auto);align-content:start;gap:4px;min-width:0;max-width:100%;}
.plhp-table-context-grid>label>small,.plhp-event-fields>label>small {font-size:.73rem;line-height:1.3;color:var(--muted);min-height:0;}
.plhp-table-context-grid input,.plhp-table-context-grid select,.plhp-event-fields input,.plhp-event-fields select,.plhp-event-fields textarea {width:100%;min-width:0;max-width:100%;box-sizing:border-box;font:inherit;}
.plhp-event-fields>label.wide {grid-column:1/-1;}
.plhp-table-copy-actions {display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:8px;min-width:0;}
.plhp-event-list {display:flex;flex-wrap:wrap;gap:8px;min-width:0;}
.plhp-event-list button {display:grid;gap:4px;max-width:100%;min-width:170px;text-align:left;border:1px solid #d6cad8;border-radius:11px;padding:10px 14px;background:white;color:inherit;cursor:pointer;}
.plhp-event-list button.is-current {border:2px solid #760076;background:#fcf7fc;}
.plhp-event-list button span {font-size:.74rem;color:var(--muted);}
.plhp-event-form,.plhp-event-table-config {display:grid;gap:14px;min-width:0;padding-top:16px;border-top:1px solid #e9e2e9;}
.plhp-event-actions {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;min-width:0;}
.plhp-event-tables {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;min-width:0;}
.plhp-event-tables .resource-row {min-width:0;max-width:100%;overflow-wrap:anywhere;}
.resource-inventory-grid {grid-template-columns:minmax(0,1fr)!important;min-width:0;max-width:100%;}
.resource-inventory-grid>*,.resource-list,.resource-row,.inventory-editor,.golden-resource-card {min-width:0;max-width:100%;box-sizing:border-box;}
.resource-inventory-panel,.assignment-panel {min-width:0;max-width:100%;box-sizing:border-box;overflow-wrap:anywhere;}
@media(max-width:740px){.plhp-table-context-grid,.plhp-event-fields,.plhp-event-tables {grid-template-columns:minmax(0,1fr);}.plhp-event-fields>label.wide{grid-column:auto}.plhp-event-list button{width:100%;}}


/* R19.7.37: only the service catalog and its weekly timetable form a 35/65 pair;
   every other administrative/operational tile spans the full available width. */
.restaurant-layout > :not(.service-catalog-panel):not(.plhp-service-weekly-panel) {grid-column:1/-1;min-width:0;max-width:100%;box-sizing:border-box;}
.plhp-service-weekly-panel {min-width:0;max-width:100%;}
.restaurant-layout > .plhp-table-context,.restaurant-layout > .plhp-event-admin {grid-column:1/-1;}
.plhp-event-admin .plhp-event-fields > label {min-width:0;max-width:100%;}

/* R19.7.38: Gästeöffnungszeiten nur im eigenen Admin-Reiter; Service-Editor kompakt. */
.plhp-hours-preview-link {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:16px 18px;border:1px solid #e4d8e5;border-radius:12px;background:#fbf8fc;min-width:0;max-width:100%;box-sizing:border-box;}
.plhp-hours-preview-link > div {flex:1 1 260px;min-width:0;}
.plhp-hours-preview-link > div > strong {font-weight:700;display:block;}
.plhp-hours-preview-link p {margin:5px 0 0;}
.plhp-hours-preview-link > button {flex:0 0 auto;white-space:normal;max-width:100%;}
.plhp-opening-hours-admin {gap:18px;}
.plhp-hours-week-overview {min-width:0;max-width:100%;box-sizing:border-box;}
.plhp-hours-week-overview > h3 {margin:2px 0 6px;}
.plhp-hours-week-overview > .helper {margin:0 0 12px;}
.plhp-opening-hours-admin .plhp-hours-date-preview {margin:0;border-color:#dfc7df;background:#fcf8fc;}
.plhp-opening-hours-admin .plhp-opening-preview-day {grid-template-columns:minmax(120px,200px) minmax(0,1fr);padding:13px 16px;column-gap:20px;}
.plhp-opening-hours-admin .plhp-opening-preview-day > span {font-variant-numeric:tabular-nums;font-weight:600;}
.plhp-opening-hours-admin .plhp-hours-week-list {background:#fff;}
@media(max-width:620px){.plhp-opening-hours-admin .plhp-opening-preview-day {grid-template-columns:minmax(0,1fr);gap:4px;}.plhp-hours-preview-link > button {width:100%;}}

/* R19.7.40: consistent service controls, fixed icon and time input sizing. */
.restaurant-layout .service-select-card .plhp-sort-controls{display:inline-flex;align-items:center;gap:6px;padding:12px 14px 3px;min-width:0;flex-wrap:nowrap;}
.restaurant-layout .service-select-card .plhp-sort-controls :is(button,.plhp-sort-handle){width:36px;height:36px;min-width:36px;min-height:36px;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;border:1px solid #d8c6dd;border-radius:8px;padding:0;background:#faf7fc;color:#760076;font-size:19px;line-height:1;}
.restaurant-layout .service-select-card .plhp-sort-controls .plhp-sort-handle{cursor:grab;background:#f0e3f1;outline-offset:2px;touch-action:none;}
.restaurant-layout .service-select-card .plhp-sort-controls button:disabled{opacity:.28;}
.plhp-danger-button{border-color:#e9bbbb!important;color:#ae2630!important;background:#fff6f6!important;display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;}
.plhp-danger-button:hover{background:#ffeaea!important;}
.plhp-schedule-time{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;}
.plhp-dynamic-clock{width:23px;height:23px;flex:0 0 23px;color:#760076;}
.plhp-table-copy-actions .compact-check,.plhp-kitchen-extension-config .editor-toggle,.schedule-service-grid .editor-toggle{display:flex!important;align-items:center!important;min-height:44px!important;gap:11px!important;line-height:1.4;}
.plhp-table-copy-actions .compact-check input,.plhp-kitchen-extension-config .editor-toggle input,.schedule-service-grid .editor-toggle input{appearance:auto;flex:none;width:18px!important;height:18px!important;min-width:18px!important;min-height:18px!important;margin:0!important;}
.plhp-field-error-host{min-width:0;}
