:root {
    --bg: #f6f7f9;
    --surface: #fff;
    --text: #111827;
    --muted: #6b7280;
    --border: #e5e7eb;
    --accent: #2563eb;
    --accent-hover: #1d4ed8;
    --success: #059669;
    --success-bg: #ecfdf5;
    --warning: #d97706;
    --warning-bg: #fffbeb;
    --radius: 14px;
    --shadow: none;
    --focus-ring: 0 0 0 3px rgba(37, 99, 235, 0.28);
    --surface-muted: #f9fafb;
    --surface-subtle: #f3f4f6;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Inter, system-ui, sans-serif;
    color: var(--text);
    background: var(--bg);
    line-height: 1.5;
}
a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); }
.wrap { max-width: 1080px; margin-inline: auto; width: 100%; box-sizing: border-box; padding-inline: 20px; }
.main { min-height: 60vh; }

.site-header, .site-footer {
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}
.site-footer { border-top: 1px solid var(--border); border-bottom: 0; margin-top: 48px; }
.header-row, .footer-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 64px;
    flex-wrap: wrap;
}
.logo {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 700;
    color: var(--text);
}
.logo-text { display: grid; gap: 2px; line-height: 1.2; }
.logo-text strong { font-size: 15px; font-weight: 700; }
.logo-tagline { font-size: 12px; font-weight: 400; color: var(--muted); }
.logo-mark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--accent);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}
.nav { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.inline-form { display: inline; }

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border-radius: 10px;
    border: 1px solid transparent;
    padding: 10px 16px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
}
.btn-primary { background: var(--accent); color: #fff; }
.btn-primary:hover { background: var(--accent-hover); color: #fff; }
.btn-secondary { background: var(--surface); border-color: var(--border); color: var(--text); }
.btn-ghost { background: transparent; border-color: transparent; color: var(--muted); }
.btn-lg { padding: 14px 22px; }
.btn-sm { padding: 6px 10px; font-size: 14px; }
.btn-block { width: 100%; }

.hero { padding: 56px 0 32px; }
.hero-grid {
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 32px;
    align-items: center;
}
.hero h1 { font-size: clamp(32px, 5vw, 48px); line-height: 1.08; margin: 12px 0 16px; letter-spacing: -0.03em; }
.lead { font-size: 18px; color: var(--muted); max-width: 520px; }
.eyebrow, .section-label { color: var(--muted); font-weight: 400; font-size: 14px; }
.landing-eyebrow { margin-bottom: 18px; }
.landing-copy h1 {
    font-size: 32px;
    font-weight: 600;
    line-height: 1.15;
    letter-spacing: -0.03em;
    margin: 0 0 16px;
}
.landing-copy .lead { font-size: 15px; line-height: 1.6; max-width: 400px; }
.benefit-head { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.benefit-head h3 { margin: 0; font-size: 17px; }
.benefit-swatch { width: 10px; height: 10px; border-radius: 999px; flex-shrink: 0; }
.benefit-swatch--blue { background: #2563eb; }
.benefit-swatch--purple { background: #9333ea; }
.benefit-swatch--green { background: #059669; }
.benefit-swatch--yellow { background: #ca8a04; }
.benefit-swatch--orange { background: #ea580c; }
.benefit-swatch--red { background: #dc2626; }
.benefit-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    --icon-size: 20px;
}
.benefit-icon--blue { background: #eff6ff; color: #2563eb; }
.benefit-icon--purple { background: #f3e8ff; color: #9333ea; }
.benefit-icon--green { background: #ecfdf5; color: #059669; }
.benefit-icon--orange { background: #fff7ed; color: #ea580c; }

.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: var(--icon-size, 20px);
    height: var(--icon-size, 20px);
    flex-shrink: 0;
    color: inherit;
    line-height: 0;
}
.icon-svg {
    display: block;
    stroke: currentColor;
    fill: none;
}
.btn-with-icon,
.pill-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.btn-with-icon { justify-content: center; }
.pill-with-icon { gap: 5px; }
.btn-lg.btn-with-icon { gap: 8px; }
.btn-label,
.btn-with-icon > span:not(.icon) {
    display: inline-block;
    line-height: 1.35;
    flex-shrink: 0;
}
.btn-primary,
.btn-primary.btn-with-icon > span:not(.icon),
.btn-primary.btn-with-icon .icon {
    color: #fff;
}
.btn-secondary.btn-with-icon .icon {
    color: var(--accent);
}
.btn-ghost.btn-with-icon .icon {
    color: currentColor;
}

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
}
.empty-state--inline {
    flex-direction: row;
    text-align: left;
    align-items: flex-start;
}
.empty-state-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 16px;
    background: #f1f5f9;
    color: #94a3b8;
    flex-shrink: 0;
}
.empty-state--inline .empty-state-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
}
.empty-state-title {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--text);
}
.empty-state-body {
    display: grid;
    gap: 12px;
    justify-items: center;
}
.empty-state--inline .empty-state-body {
    justify-items: start;
    flex: 1;
    min-width: 0;
}
.empty-state-body p { margin: 0; }

.kpi-card { position: relative; }
.kpi-card-icon {
    position: absolute;
    top: 14px;
    right: 14px;
    color: #cbd5e1;
}
.kpi-card--accent .kpi-card-icon { color: #93c5fd; }
.kpi-card-icon--success { color: #6ee7b7; }

.onboarding-nudge-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.72);
    color: var(--accent);
    flex-shrink: 0;
    --icon-size: 20px;
}
.error-page-icon {
    margin: 0 auto 4px;
    background: #f1f5f9;
    border-radius: 20px;
}
.testimonial-label { margin: 0 0 10px; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 28px 0; }
.hero-stats { display: flex; gap: 28px; }
.hero-stats strong { display: block; font-size: 24px; }
.hero-stats span { color: var(--muted); font-size: 14px; }
.hero-card, .tariff-card, .auth-card, .form-card, .object-card, .kpi-card {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
}
.hero-card { padding: 20px; }
.shield, .shield-panel {
    background: var(--surface-muted);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 18px;
    margin-bottom: 16px;
}
.shield-panel--ok { border-color: var(--accent); }
.shield-panel--warn { border-color: #fcd34d; }
.shield-head-action { margin-left: auto; }
.mini-calendar-title { font-weight: 600; margin-bottom: 10px; }
.mini-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
    font-size: 12px;
}
.dow { color: var(--muted); text-align: center; }
.day {
    aspect-ratio: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    background: #f3f4f6;
}
.day.booked { background: #dbeafe; color: #1d4ed8; font-weight: 600; }
.day.free { background: #ecfdf5; color: #047857; }
.day.pending { background: #fef3c7; color: #b45309; }
.day.blocked { background: #fee2e2; color: #b91c1c; }
.day-empty { visibility: hidden; }
.calendar-panel-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.platform-integration-meta { margin: 4px 0 0; font-size: 12px; }
.migration-list { display: grid; gap: 10px; margin-top: 16px; }
.migration-row { display: flex; gap: 14px; align-items: center; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.migration-row--done { background: #f9fafb; }
.migration-actions { display: flex; gap: 10px; margin-top: 20px; flex-wrap: wrap; }
.offboarding-list { margin: 8px 0 0; padding-left: 20px; color: var(--muted); line-height: 1.45; display: grid; gap: 6px; }
.offboarding-list > li { margin: 0; }

.calendar-alert {
    display: flex; justify-content: space-between; align-items: center; gap: 16px;
    padding: 14px 18px; margin-bottom: 16px; border-radius: 12px;
    background: var(--warning-bg); border: 1px solid #fde68a;
}
.calendar-alert.callout-with-icon {
    align-items: flex-start;
}
.calendar-alert.callout-with-icon .callout-icon {
    background: #fef3c7;
    color: #b45309;
}
.calendar-alert.callout-with-icon > div { flex: 1; min-width: 0; }
.calendar-alert--inline { margin-top: 0; }
.safety-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 0; }
.safety-warnings { display: grid; gap: 12px; margin-top: 12px; }
.safety-warning-row { display: flex; gap: 12px; align-items: center; padding: 12px 0; border-bottom: 1px solid var(--border); }
.safety-warning-row:last-child { border-bottom: 0; }
.guarantee-list { margin: 0; padding-left: 20px; line-height: 1.45; color: var(--muted); display: grid; gap: 6px; }
.guarantee-list > li { margin: 0; }
.oauth-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 6px; }
.oauth-scope { margin: 12px 0; padding-left: 20px; line-height: 1.45; color: var(--muted); display: grid; gap: 6px; }
.oauth-scope > li { margin: 0; }
.oauth-actions { display: flex; gap: 10px; margin-top: 16px; }

@media (max-width: 900px) {
    .safety-grid { grid-template-columns: 1fr; }
}

.calendar-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 16px;
}
.calendar-panel-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}
.calendar-panel-head h2 { margin: 0 0 4px; font-size: 18px; }
.calendar-panel .mini-calendar {
    background: var(--bg);
    border-radius: 12px;
    padding: 16px;
}
.calendar-foot { margin: 12px 0 0; font-size: 13px; }
.smart-pricing-card {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    padding: 16px 18px;
    margin-bottom: 16px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: linear-gradient(135deg, #faf5ff 0%, #f5f3ff 100%);
}
.smart-pricing-card > div { flex: 1; min-width: 0; }
.smart-pricing-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #ede9fe;
    color: #7c3aed;
    --icon-size: 20px;
}
.smart-pricing-card strong { display: block; margin-bottom: 4px; }
.ical-hint { margin: 0; font-size: 14px; line-height: 1.45; }

.platforms, .features, .tariffs { padding-block: 32px; }
.platform-row { display: flex; flex-wrap: wrap; gap: 10px; }
.platform-chip {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 8px 14px;
    font-size: 14px;
    font-weight: 500;
}
.platform-chip--orange { border-color: #fdba74; background: #fff7ed; color: #c2410c; }
.platform-chip--purple { border-color: #d8b4fe; background: #faf5ff; color: #7e22ce; }
.platform-chip--blue { border-color: #93c5fd; background: #eff6ff; color: #1d4ed8; }
.platform-chip--green { border-color: #86efac; background: #ecfdf5; color: #047857; }
.platform-chip--yellow { border-color: #fde047; background: #fefce8; color: #a16207; }
.platform-chip--red { border-color: #fca5a5; background: #fef2f2; color: #b91c1c; }
.feature-grid, .tariff-grid, .kpi-grid {
    display: grid;
    gap: 16px;
}
.feature-grid { grid-template-columns: repeat(3, 1fr); }
.tariff-grid { grid-template-columns: repeat(3, 1fr); margin-top: 0; gap: 16px; }
.feature-grid article, .tariff-card { padding: 22px; }
.tariff-card.featured { border-color: var(--accent); border-width: 2px; padding: 21px; }
.price { font-size: 32px; font-weight: 700; margin: 12px 0; }
.price span { font-size: 16px; color: var(--muted); font-weight: 500; }
.tariff-card ul { padding-left: 18px; color: var(--muted); min-height: 0; }

.pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 12px;
    font-weight: 600;
}
.pill-success { background: var(--success-bg); color: var(--success); }
.pill-info { background: #eff6ff; color: #1d4ed8; }
.pill-warning { background: var(--warning-bg); color: var(--warning); }

.auth-wrap { display: flex; justify-content: center; padding-block: 48px; }
.auth-card { width: 100%; max-width: 440px; padding: 28px; }
.auth-card h1 { font-size: 28px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 8px; }
.form-stack { display: grid; gap: 12px; }
.form-stack label, .form-card label { display: block; margin-bottom: 0; }
.form-stack span, .form-card span { display: block; font-size: 14px; margin-bottom: 6px; color: var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=number] {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 11px 12px;
    font: inherit;
    background: #fff;
}
.form-error { color: #dc2626; font-size: 14px; margin: -8px 0 10px; }
.auth-switch { margin-top: 18px; color: var(--muted); }
.checkbox-row { display: flex !important; align-items: center; gap: 8px; }

.page-cabinet { background: var(--bg); }
.cabinet-shell { display: grid; grid-template-columns: 240px 1fr; min-height: 100vh; }
.cabinet-sidebar {
    background: var(--surface-muted);
    border-right: 1px solid var(--border);
    padding: 22px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cabinet-plan-card {
    margin-top: auto;
    padding: 16px;
    border-radius: 14px;
    background: var(--surface);
    border: 1px solid var(--border);
}
.cabinet-plan-meta { margin: 10px 0 0; font-size: 13px; }
.cabinet-plan-meta--warn { color: #b45309; font-weight: 500; }
.cabinet-plan-card--over { border-color: #fcd34d; background: #fffbeb; }
.cabinet-plan-card .btn { margin-top: 10px; }
.cabinet-nav { display: flex; flex-direction: column; gap: 2px; }
.cabinet-nav-section {
    margin: 14px 0 6px;
    padding: 0 12px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--muted);
}
.cabinet-nav-section:first-child { margin-top: 0; }
.cabinet-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    color: var(--text);
    text-decoration: none;
}
.cabinet-nav a.active, .cabinet-nav a:hover { background: var(--surface); color: var(--text); box-shadow: var(--shadow); }
.cabinet-nav a.active { font-weight: 600; }
.cabinet-header h1 { font-size: 22px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 4px; line-height: 1.25; }
.cabinet-header .muted { margin: 0; }
.cabinet-main { padding: 0; display: flex; flex-direction: column; min-width: 0; }
.cabinet-content { padding-block: 32px; flex: 1; min-width: 0; }
.cabinet-content--flush { padding-block: 0; padding-inline: 0; }
.cabinet-alert {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 12px 28px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
    font-size: 14px;
}
.cabinet-alert--ok { box-shadow: inset 4px 0 0 #059669; }
.cabinet-alert--warn { box-shadow: inset 4px 0 0 #d97706; }
.cabinet-alert-body { flex: 1; min-width: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.cabinet-alert-text { margin: 0; color: var(--text); line-height: 1.45; }
.cabinet-alert-text--muted { color: var(--muted); }
.pill-alert-ok { background: #059669; color: #fff; }
.pill-alert-warn { background: #b45309; color: #fff; }
.cabinet-alert-action { flex-shrink: 0; }
.shield-panel { margin-bottom: 0; border-radius: 16px; overflow: hidden; }
.kpi-card, .form-card { box-shadow: none; }
.tariff-card.featured { border-color: var(--accent); border-width: 2px; }
.cabinet-plan-card { border-radius: 14px; box-shadow: var(--shadow); }
.cabinet-page {
    max-width: 960px;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.cabinet-page.narrow { max-width: 640px; }
.cabinet-page > * { margin-top: 0; margin-bottom: 0; }
.section-stack { display: grid; gap: 24px; }
.form-section { margin-top: 36px; padding-top: 32px; border-top: 1px solid var(--border); }
.form-section:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.form-section h2 { margin: 0 0 14px; font-size: 18px; font-weight: 600; letter-spacing: -0.01em; }
.form-section > .muted { margin: 0 0 18px; line-height: 1.45; }
.form-section--actions { padding-top: 24px; }
.form-actions-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.form-details { margin-top: 12px; }
.form-details summary { cursor: pointer; }
.form-details label { margin-top: 10px; }
.integrations-grid { gap: 20px; align-items: stretch; margin-bottom: 0; }
.automation-header h1 { font-size: 22px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 4px; }
.dashboard-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    align-items: start;
}
.dashboard-split h2 { margin: 0 0 10px; font-size: 15px; font-weight: 600; }
.onboarding-nudge {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    padding: 12px 16px;
    border-radius: 12px;
    border: 1px solid var(--border);
    background: var(--surface);
}
.onboarding-nudge p { margin: 0; font-size: 14px; line-height: 1.45; }
.onboarding-nudge-progress { font-weight: 600; color: var(--accent); }
.dashboard-subtitle { margin-top: 2px; font-size: 14px; }
.cabinet-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    margin-bottom: 0;
}
.kpi-grid { grid-template-columns: repeat(3, 1fr); margin-bottom: 0; gap: 12px; }
.kpi-grid--4 { grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 0; }
.kpi-card {
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-height: 0;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}
.kpi-card strong { display: block; font-size: 24px; font-weight: 600; margin: 0; line-height: 1.1; letter-spacing: -0.02em; }
.kpi-card span { display: block; color: var(--muted); font-size: 13px; line-height: 1.35; }
.kpi-card small { display: block; color: var(--muted); font-size: 13px; margin-top: 0; padding-top: 0; }
.kpi-card--accent { border-color: var(--border); border-left: 3px solid var(--accent); padding: 18px 20px; }
.object-card {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 18px;
    margin-top: 12px;
    align-items: flex-start;
}
.object-card-main { flex: 1; min-width: 0; }
.object-meta {
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: right;
    font-size: 14px;
    flex-shrink: 0;
}
.platform-form { margin-top: 16px; }
.platform-form-label {
    font-size: 14px;
    font-weight: 600;
    margin: 0 0 10px;
    color: var(--text);
}
.platform-toggle-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 12px;
}
.platform-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--border);
    border-radius: 999px;
    background: #fff;
    font-size: 14px;
    cursor: pointer;
}
.platform-toggle input { accent-color: var(--accent); }
.empty-state {
    padding: 28px;
    border: 1px dashed var(--border);
    border-radius: var(--radius);
    background: var(--surface);
}
.form-card { padding: 28px; }
.form-card--narrow { max-width: 640px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.radio-group { border: 0; padding: 0; margin: 0 0 18px; }
.radio-group legend { font-weight: 600; margin-bottom: 10px; }
.radio-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    margin-bottom: 8px;
}
.form-actions { display: flex; gap: 10px; margin-top: 18px; }
.alert { padding: 12px 14px; border-radius: 10px; margin-bottom: 16px; }
.alert-success { background: var(--success-bg); color: #065f46; border: 1px solid #bbf7d0; }
.alert-error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }
.legal-page { padding-block: 48px; max-width: 760px; margin-inline: auto; }
.legal-body { margin-top: 24px; color: var(--muted); }
.legal-body h2 { color: var(--text); font-size: 18px; margin: 28px 0 10px; }
.legal-body ul { padding-left: 20px; }

.onboarding-panel {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 18px 20px;
    margin-bottom: 0;
    box-shadow: none;
}
.onboarding-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; }
.onboarding-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 6px; }
.onboarding-step {
    display: flex;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface-muted);
}
.onboarding-step.done { border-color: var(--border); background: var(--surface-muted); }
.onboarding-marker {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #eff6ff;
    color: var(--accent);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    flex-shrink: 0;
}
.onboarding-step.done .onboarding-marker { background: #d1fae5; color: var(--success); }

.object-card-compact { align-items: center; }
.object-card-compact h3 a { color: var(--text); text-decoration: none; }
.object-card-compact h3 a:hover { color: var(--accent); }

.settings-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.settings-grid .form-card { max-width: none; }
.settings-plan-list { color: var(--muted); padding-left: 18px; line-height: 1.45; display: grid; gap: 6px; }
.settings-plan-list > li { margin: 0; }

.property-actions { margin-bottom: 20px; }
.maintenance-form { display: inline-block; }
.room-list { display: flex; flex-wrap: wrap; gap: 8px; }
.room-chip {
    padding: 8px 12px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: #fff;
    font-size: 14px;
}
.platform-detail-form { max-width: 720px; }
.platform-row-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 10px 16px;
    padding: 16px 0;
    border-bottom: 1px solid var(--border);
}
.platform-row-card:last-of-type { border-bottom: 0; }
.platform-url-field { grid-column: 1 / -1; }
.platform-url-field span { display: block; font-size: 14px; color: var(--muted); margin-bottom: 6px; }
.billing-grid { margin-top: 0; }
.billing-test-hint { margin-bottom: 20px; }
.billing-test-hint code { background: #fff; padding: 2px 6px; border-radius: 6px; }

.cabinet-mobile-bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: var(--surface);
    border-bottom: 1px solid var(--border);
}

@media (max-width: 900px) {
    .hero-grid, .feature-grid, .tariff-grid, .kpi-grid, .cabinet-shell, .form-row, .settings-grid,
    .landing-hero-grid, .benefits-grid, .testimonial-grid, .object-layout, .object-panels,
    .analytics-grid, .documents-layout, .task-row,
    .guest-preview-grid, .guest-panels-grid, .mobile-preview-layout,
    .kyc-upload-grid, .onboarding-page-grid, .integrations-grid {
        grid-template-columns: 1fr;
    }
    .cabinet-shell { display: flex; flex-direction: column; }
    .cabinet-mobile-bar { order: 1; display: flex; }
    .logo--sidebar { display: none; }
    .cabinet-main { order: 2; flex: 1; min-width: 0; }
    .cabinet-sidebar {
        order: 3;
        border-right: 0;
        border-bottom: 0;
        padding: 0;
        background: transparent;
    }
    .cabinet-shell:not(.nav-open) .cabinet-sidebar { display: none; }
    .cabinet-shell.nav-open::before {
        content: '';
        position: fixed;
        inset: 0;
        top: 57px;
        background: rgba(17, 24, 39, 0.45);
        z-index: 35;
    }
    .cabinet-shell.nav-open .cabinet-sidebar {
        display: flex;
        flex-direction: column;
        position: fixed;
        top: 57px;
        left: 0;
        bottom: 0;
        width: min(320px, 88vw);
        z-index: 40;
        padding: 16px;
        background: var(--surface-muted);
        box-shadow: 8px 0 24px rgba(17, 24, 39, 0.12);
        overflow-y: auto;
    }
    .cabinet-nav {
        display: flex;
        max-height: none;
        overflow-y: visible;
        padding-bottom: 8px;
    }
    .page-cabinet .cabinet-content:not(.cabinet-content--flush) {
        padding-block: var(--c-gutter-y);
    }
    .page-cabinet .cabinet-content--flush {
        padding-block: 0;
        padding-inline: 0;
    }
    .cabinet-user { padding-top: 12px; border-top: 1px solid var(--border); margin-top: auto; }
    .cabinet-alert {
        flex-direction: column;
        align-items: stretch;
        padding-block: 14px;
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
        gap: 12px;
    }
    .cabinet-alert-action { align-self: flex-start; }
    .cabinet-header { flex-direction: column; align-items: flex-start; }
    .cabinet-header-actions { width: 100%; }
    .cabinet-header-actions .btn { flex: 1; }
    .featured-object-link { grid-template-columns: 1fr; }
    .dashboard-split { grid-template-columns: 1fr; }
    .hotel-rooms-grid { grid-template-columns: 1fr; }
    .object-row { grid-template-columns: 56px 1fr; }
    .object-row .pill { grid-column: 1 / -1; justify-self: start; }
    .booking-row { grid-template-columns: 40px 1fr; grid-template-areas: "avatar main" "side side"; }
    .booking-side { justify-items: start; text-align: left; grid-template-columns: 1fr auto; grid-auto-flow: column; align-items: center; }
    .kpi-grid, .kpi-grid--4 { grid-template-columns: 1fr 1fr; }
    .shield-grid, .shield-panel--compact .shield-grid { grid-template-columns: 1fr 1fr; }
    .object-layout { grid-template-columns: 1fr; min-height: 0; }
    .object-sidebar { position: static; max-height: none; border-right: 0; border-bottom: 1px solid var(--border); }
    .page-cabinet .object-main {
        padding-block: var(--c-gutter-y);
    }
    .object-panels { grid-template-columns: 1fr; }
    .nav-public { display: none; }
}

.hero-photo { border-radius: 16px; position: relative; overflow: hidden; min-height: 160px; }
.hero-photo--blue { background: #dbeafe; }
.hero-photo--green { background: #d1fae5; }
.hero-photo--orange { background: #ffedd5; }
.hero-photo--purple { background: #ede9fe; }
.hero-photo--yellow { background: #fef9c3; }
.hero-photo--lg { min-height: 200px; margin-bottom: 0; }
.hero-photo--sm { min-height: 64px; width: 64px; flex-shrink: 0; }
.hero-photo-badge { position: absolute; left: 12px; bottom: 12px; background: rgba(255,255,255,.92); padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; }

/* Cabinet */
.cabinet-header-actions { display: flex; gap: 10px; }
.shield-head { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin-bottom: 12px; }
.shield-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.shield-panel--compact .shield-grid { grid-template-columns: repeat(2, 1fr); }
.shield-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: var(--surface); border: 1px solid var(--border); border-radius: 10px; font-size: 14px; }
.dot { width: 8px; height: 8px; border-radius: 50%; }
.dot-ok { background: var(--success); }
.dot-warn { background: var(--warning); }
.featured-object,
.objects-section { display: grid; gap: 8px; }
.objects-section h2 { margin: 0 0 4px; }
.featured-object-link { display: grid; grid-template-columns: 1.15fr 1fr; border: 2px solid var(--accent); border-radius: 16px; overflow: hidden; background: var(--surface); color: inherit; text-decoration: none; }
.featured-object-body { padding: 24px; display: flex; flex-direction: column; gap: 14px; }
.featured-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.featured-top .pill-row { flex: 1; min-width: 0; }
.featured-title { margin: 0; font-size: 20px; font-weight: 600; line-height: 1.3; letter-spacing: -0.02em; }
.featured-subtitle { margin: 0; font-size: 14px; line-height: 1.4; }
.featured-stats-row { margin-top: 4px; }
.featured-open-btn { align-self: flex-start; margin-top: 4px; }
.hotel-rooms-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.hotel-room-card {
    display: grid;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
    color: inherit;
    text-decoration: none;
    box-shadow: var(--shadow);
}
.hotel-room-card:hover { border-color: var(--accent); }
.hotel-room-head { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; }
.hotel-room-head strong { font-size: 15px; line-height: 1.3; }
.hotel-room-head .muted { font-size: 13px; white-space: nowrap; }
.hotel-room-stats { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: center; }
.hotel-room-stats .muted { display: block; font-size: 13px; line-height: 1.35; margin-bottom: 4px; }
.hotel-room-stats strong { display: block; font-size: 15px; line-height: 1.2; }
.object-row {
    display: grid;
    grid-template-columns: 64px 1fr auto;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface-muted);
    margin-top: 0;
    color: inherit;
    text-decoration: none;
    box-shadow: none;
}
.object-row-body { min-width: 0; display: grid; gap: 4px; }
.object-row strong { display: block; font-size: 15px; line-height: 1.3; }
.object-row .muted { font-size: 13px; line-height: 1.35; }
.booking-list { display: grid; gap: 0; }
.booking-row {
    display: grid;
    grid-template-columns: 40px 1fr auto;
    grid-template-areas: "avatar main side";
    gap: 12px 14px;
    align-items: center;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: var(--shadow);
}
.booking-row:has(.booking-actions) { grid-template-columns: 40px 1fr auto; grid-template-areas: "avatar main side" "actions actions actions"; }
.booking-avatar {
    grid-area: avatar;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 700;
    flex-shrink: 0;
}
.booking-main { grid-area: main; }
.booking-side { grid-area: side; display: grid; justify-items: end; gap: 6px; text-align: right; }
.booking-actions { grid-area: actions; display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px; border-top: 1px solid var(--border); margin-top: 2px; }
.onboarding-step > div { flex: 1; min-width: 0; display: grid; gap: 6px; align-content: start; }
.onboarding-step strong { font-size: 15px; line-height: 1.35; }
.onboarding-step .pill { width: fit-content; }
.onboarding-step p { margin: 0; line-height: 1.45; }
.onboarding-step .btn { width: fit-content; }
.tariff-card {
    display: flex;
    flex-direction: column;
    gap: 0;
    height: 100%;
    padding: 24px;
}
.tariff-card h3 { margin: 0 0 10px; font-size: 20px; }
.tariff-card > .pill { margin-bottom: 10px; }
.tariff-card > .pill + h3 { margin-top: 0; }
.tariff-card .tariff-price { margin: 14px 0 6px; }
.tariff-card .tariff-features,
.tariff-card ul { flex: 1; margin: 10px 0 12px; display: grid; gap: 8px; line-height: 1.45; }
.tariff-card .tariff-features > li,
.tariff-card ul > li { margin: 0; }
.tariff-card .btn { margin-top: auto; }
.form-card h2,
.onboarding-panel h2,
.bookings-preview h2,
.objects-section h2,
.hotel-rooms-panel h2 {
    margin: 0 0 14px;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.form-card h3 { margin: 0 0 12px; font-size: 16px; font-weight: 600; }
.form-card > .muted,
.form-card > p.muted { margin: 0 0 18px; line-height: 1.45; }
.form-card > .data-table { margin-top: 0; }
.form-card .form-divider { margin: 22px 0; }
.form-card .guarantee-list { margin: 0 0 10px; }
.form-card .btn:not(.btn-sm) { margin-top: 4px; }
.section-head-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.section-head-row h2 { margin: 0; }
.shield-item { min-height: 44px; line-height: 1.35; }
.object-settings-details { margin-top: 0; border: 1px solid var(--border); border-radius: 14px; background: var(--surface-muted); }
.object-settings-details summary { cursor: pointer; padding: 16px 20px; font-weight: 600; list-style: none; }
.object-settings-details summary::-webkit-details-marker { display: none; }
.object-settings-stack { padding-block-end: 20px; display: grid; gap: 16px; }
.tariff-features { padding-left: 18px; color: var(--muted); min-height: 0; margin: 8px 0 0; }
.room-pill { display: inline-flex; align-items: center; gap: 6px; }
.room-pill .benefit-swatch { width: 8px; height: 8px; border-radius: 999px; flex-shrink: 0; }
.pill-row { display: flex; flex-wrap: wrap; gap: 6px; }
.pill-neutral { background: var(--surface-subtle); color: var(--text); }
.occupancy-ring--sm { --size: 54px; }
.empty-state--inline { padding: 20px; margin-top: 12px; }
.onboarding-num { width: 28px; font-weight: 700; color: var(--accent); flex-shrink: 0; }
.flash { background: #eff6ff; border: 1px solid #bfdbfe; padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; }

/* Object page */
.object-layout { display: grid; grid-template-columns: 248px 1fr; min-height: calc(100vh - 160px); align-items: start; }
.object-main { padding-block: 24px 32px; max-width: none; }
.object-sidebar { align-self: start; max-height: none; overflow-y: visible; }
.object-sidebar { padding: 16px; border-right: 1px solid var(--border); background: var(--surface-muted); }
.object-picker { display: block; padding: 10px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); margin-bottom: 10px; color: inherit; text-decoration: none; }
.object-picker.active { border-color: var(--accent); border-width: 2px; padding: 9px; }
.platform-table-name { display: inline-flex; align-items: center; gap: 8px; }
.object-header { display: grid; grid-template-columns: 1fr auto; gap: 16px; align-items: center; margin-top: 0; }
.object-header-main { min-width: 0; }
.object-header-stats { display: flex; align-items: center; gap: 20px; justify-self: end; }
.object-maintenance-form { grid-column: 1 / -1; }
.object-stat { display: grid; gap: 2px; }
.object-stat strong { font-size: 18px; font-weight: 600; }
.object-stat--success strong { color: var(--success, #059669); }
.occupancy-ring { --size: 68px; width: var(--size); height: var(--size); border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--accent) calc(var(--occupancy, 0) * 1%), var(--surface-subtle) 0); position: relative; flex-shrink: 0; }
.occupancy-ring::before { content: ""; position: absolute; inset: 6px; border-radius: 50%; background: var(--surface); }
.occupancy-ring span { position: relative; font-size: 14px; font-weight: 600; }
.room-selector { position: relative; }
.room-cat-input { position: absolute; opacity: 0; width: 0; height: 0; }
.room-tabs-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.room-tab { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); cursor: pointer; }
.room-tab strong { display: block; font-size: 14px; }
.room-tab .muted { display: block; font-size: 12px; }
.room-cat-panel { display: none; }
.room-cat-panels { margin-top: 4px; }
.room-stats-row { display: flex; flex-wrap: wrap; gap: 24px; padding: 4px 0 8px; }
.room-cat-input:nth-of-type(1):checked ~ .room-tabs-row .room-tab:nth-of-type(1),
.room-cat-input:nth-of-type(2):checked ~ .room-tabs-row .room-tab:nth-of-type(2),
.room-cat-input:nth-of-type(3):checked ~ .room-tabs-row .room-tab:nth-of-type(3),
.room-cat-input:nth-of-type(4):checked ~ .room-tabs-row .room-tab:nth-of-type(4),
.room-cat-input:nth-of-type(5):checked ~ .room-tabs-row .room-tab:nth-of-type(5),
.room-cat-input:nth-of-type(6):checked ~ .room-tabs-row .room-tab:nth-of-type(6) { border-color: var(--accent); border-width: 2px; padding: 9px 13px; background: var(--surface-subtle); }
.room-cat-input:nth-of-type(1):checked ~ .room-cat-panels .room-cat-panel:nth-child(1),
.room-cat-input:nth-of-type(2):checked ~ .room-cat-panels .room-cat-panel:nth-child(2),
.room-cat-input:nth-of-type(3):checked ~ .room-cat-panels .room-cat-panel:nth-child(3),
.room-cat-input:nth-of-type(4):checked ~ .room-cat-panels .room-cat-panel:nth-child(4),
.room-cat-input:nth-of-type(5):checked ~ .room-cat-panels .room-cat-panel:nth-child(5),
.room-cat-input:nth-of-type(6):checked ~ .room-cat-panels .room-cat-panel:nth-child(6) { display: block; }
.object-header h1 { font-size: 24px; font-weight: 600; letter-spacing: -0.02em; margin: 0 0 6px; }
.object-panels { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 0; }
.platform-row-form { padding: 14px 0; border-bottom: 1px solid var(--border); display: grid; gap: 8px; }
.platform-row-head { display: flex; align-items: flex-start; gap: 10px; }
.platform-row-head > div { flex: 1; min-width: 0; }
.platform-row-head .benefit-swatch { margin-top: 5px; }
.rooms-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.room-card { padding: 16px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); display: grid; gap: 4px; }
.room-card-head { display: flex; align-items: center; gap: 8px; }
.room-allotment { font-size: 18px; font-weight: 600; color: var(--accent); }
.notification-prefs-table .checkbox-row { justify-content: center; }
.documents-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.documents-list { display: grid; gap: 0; }
.document-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--border); }
.document-preview-panel { background: #f9fafb; }
.doc-divider { border: none; border-top: 1px solid var(--border); margin: 12px 0; }
.document-preview-body { display: grid; gap: 8px; line-height: 1.55; }
.document-preview-actions { display: flex; gap: 8px; margin-top: 16px; }
.reviews-list { display: grid; gap: 10px; margin-top: 0; }
.review-row { display: grid; grid-template-columns: 100px 1fr auto auto auto auto; gap: 12px; align-items: center; padding: 14px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.review-channel { width: 100px; }
.review-last { white-space: nowrap; }
.billing-usage-card { margin-top: 0; background: var(--surface-muted); }
.cabinet-page > p.muted { margin: 0; line-height: 1.45; }
.billing-usage-card--over { border-color: #fcd34d; }
.billing-usage-note { margin: 10px 0 0; font-size: 13px; }
.billing-usage-head { display: flex; justify-content: space-between; margin-bottom: 12px; }
.billing-usage-bar { height: 8px; border-radius: 4px; background: #e5e7eb; overflow: hidden; }
.billing-usage-bar span { display: block; height: 100%; width: var(--bar-width, 0%); background: var(--accent); border-radius: 4px; }
.billing-usage-bar--warn span { background: #f59e0b; }
.analytics-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.bar-chart { display: grid; gap: 10px; margin-top: 12px; }
.bar-chart-row { display: grid; grid-template-columns: 90px 1fr 56px; gap: 10px; align-items: center; font-size: 14px; }
.bar-chart-track { height: 10px; background: #e5e7eb; border-radius: 999px; overflow: hidden; }
.bar-chart-track .bar-fill,
.bar-chart-track span { display: block; height: 100%; width: var(--bar-width, 0%); background: var(--accent); border-radius: 999px; }
.bar-chart-value { text-align: right; color: var(--muted); }
.analytics-footnote { margin-top: 10px; font-size: 13px; }
.occupancy-trend { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; align-items: end; min-height: 180px; margin-top: 12px; }
.occupancy-trend-col { display: grid; gap: 6px; justify-items: center; align-content: end; height: 180px; }
.occupancy-trend-bar { width: 100%; max-width: 36px; height: var(--trend-height, 8%); background: #86efac; border-radius: 6px 6px 0 0; align-self: end; }
.occupancy-trend-col span { font-size: 12px; color: var(--muted); }
.occupancy-trend-col strong { font-size: 13px; }
.analytics-export-row { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; margin-top: 14px; }
.analytics-tip { display: flex; gap: 12px; align-items: flex-start; margin-top: 20px; background: var(--surface-subtle); border: 1px solid var(--border); }
.analytics-tip p { margin: 0; }
.data-table .row-total td { font-weight: 600; border-top: 2px solid var(--border); }
.billing-tabs { display: flex; gap: 8px; margin-bottom: 0; flex-wrap: wrap; }
.billing-tab { padding: 10px 16px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: inherit; text-decoration: none; }
.billing-tab.active { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.billing-pay-panel { margin-bottom: 0; }
.billing-invoice-actions { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; }
.tasks-list { display: grid; gap: 10px; }
.task-row { display: grid; grid-template-columns: 1fr auto auto; gap: 12px; align-items: center; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); }
.task-row--done { opacity: .72; }
.help-list { display: grid; gap: 10px; }
.help-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface); color: inherit; text-decoration: none; }
.help-row:hover { border-color: var(--accent); }
.help-list--compact .help-row { padding: 12px 16px; }
.help-article-body ol { padding-left: 20px; line-height: 1.45; display: grid; gap: 6px; }
.help-article-body ol > li { margin: 0; }
.team-invite-form { max-width: 420px; }
.inline-form { display: inline; }
.activity-log { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.guest-tabs, .billing-tabs { display: flex; gap: 8px; margin-bottom: 0; flex-wrap: wrap; }
.guest-tab, .billing-tab { padding: 10px 16px; border-radius: 999px; border: 1px solid var(--border); background: var(--surface); color: inherit; text-decoration: none; }
.guest-tab.active, .billing-tab.active { border-color: var(--accent); color: var(--accent); font-weight: 600; }
.guest-preview-grid, .guest-panels-grid, .mobile-preview-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.guest-steps { padding-left: 20px; line-height: 1.45; display: grid; gap: 6px; }
.guest-steps > li { margin: 0; }
.guest-message-preview { line-height: 1.55; margin: 12px 0; }
.booking-widget { padding: 24px; border: 1px solid var(--border); border-radius: 14px; background: var(--surface); max-width: 360px; }
.widget-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-bottom: 12px; }
.widget-dates input { width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 10px; }
.widget-price-row { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.widget-footnote { text-align: center; font-size: 13px; margin-top: 10px; }
.embed-code { padding: 12px; background: var(--surface-subtle); border-radius: 10px; font-size: 13px; overflow-x: auto; }
.phone-frame { width: 320px; margin: 0 auto; padding: 14px; border-radius: 28px; border: 8px solid #111827; background: #111827; }
.phone-frame-inner { border-radius: 18px; background: var(--surface); overflow: hidden; min-height: 420px; }
.phone-app, .phone-portal { padding: 18px; }
.phone-app-head { display: flex; align-items: center; gap: 8px; margin-bottom: 12px; }
.phone-kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.phone-kpi { padding: 12px; border: 1px solid var(--border); border-radius: 12px; }
.phone-kpi span { display: block; font-size: 12px; color: var(--muted); }
.phone-section-title { font-size: 14px; margin: 16px 0 8px; }
.phone-message-card { margin-top: 16px; padding: 14px; border: 1px solid var(--accent); border-radius: 12px; background: #eff6ff; }
.phone-portal-block { margin: 12px 0; padding: 12px; background: #f9fafb; border-radius: 10px; }
.phone-footnote { font-size: 12px; text-align: center; margin-top: 12px; }
.mobile-preview-layout { align-items: start; }
.help-eyebrow, .status-eyebrow { font-size: 13px; color: var(--accent); margin-bottom: 8px; }
.help-eyebrow a { color: inherit; }
.billing-annual-toggle { margin-bottom: 0; }
.toggle-row { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.toggle-row input { width: 18px; height: 18px; }
.tariff-annual-note { font-size: 13px; margin-top: -4px; }
.kyc-row--active { background: #eff6ff; }
.kyc-table .pill { margin-left: 8px; }
.page-guest-portal {
    --s-pad-x: clamp(24px, 4vw, 40px);
    --s-accent: #2563eb;
    --s-border: #e2e8f0;
    --s-muted: #64748b;
    --s-text: #0f172a;
    --s-shadow-md: 0 4px 6px rgba(15, 23, 42, 0.03), 0 12px 32px rgba(15, 23, 42, 0.07);
    background:
        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(37, 99, 235, 0.08) 0%, transparent 55%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(99, 102, 241, 0.06) 0%, transparent 50%),
        linear-gradient(180deg, #eef2ff 0%, #f8fafc 48%, #f1f5f9 100%);
    min-height: 100vh;
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
    color: var(--s-text);
    -webkit-font-smoothing: antialiased;
}
.page-guest-portal .guest-portal-page {
    max-width: 420px;
    margin: 0 auto;
    padding-block: clamp(24px, 5vw, 40px) clamp(32px, 6vw, 56px);
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}
.page-guest-portal .callout-centered {
    margin-bottom: 16px;
    border-radius: 14px;
    box-shadow: var(--s-shadow-md);
}
.page-guest-portal .guest-portal-lang { display: flex; gap: 8px; margin-bottom: 12px; }
.page-guest-portal .guest-portal-lang .guest-tab {
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 999px;
    border: 1px solid var(--s-border);
    background: rgba(255, 255, 255, 0.88);
}
.page-guest-portal .guest-portal-lang .guest-tab.active {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: var(--s-accent);
}
.page-guest-portal .guest-portal-frame {
    border-radius: 32px;
    border: 8px solid #0f172a;
    background: #0f172a;
    box-shadow:
        0 24px 48px rgba(15, 23, 42, 0.2),
        0 8px 16px rgba(15, 23, 42, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.08);
}
.page-guest-portal .phone-frame-inner {
    border-radius: 22px;
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}
.page-guest-portal .phone-portal { padding: 18px 16px 20px; }
.page-guest-portal .guest-portal-head { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 8px; }
.page-guest-portal .guest-portal-head-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: #2563eb;
    border: 1px solid #bfdbfe;
    --icon-size: 22px;
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-guest-portal .guest-portal-dates { margin: 0 0 12px; font-size: 14px; line-height: 1.45; color: var(--s-muted); }
.page-guest-portal .phone-portal-block {
    margin: 10px 0;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid var(--s-border);
    background: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
}
.page-guest-portal .phone-portal-block--icon {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.page-guest-portal .phone-portal-block-icon {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #f8fafc 0%, #eff6ff 100%);
    border: 1px solid #e2e8f0;
    color: var(--s-accent);
    --icon-size: 16px;
}
.page-guest-portal .guest-portal-compose { margin-top: 12px; }
.page-guest-portal .guest-portal-hint {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 600;
    color: var(--s-text);
}
.page-guest-portal .guest-portal-brand {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 16px auto 0;
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--s-border);
    background: rgba(255, 255, 255, 0.88);
    box-shadow: var(--s-shadow-md);
    font-size: 13px;
}
.page-guest-portal .phone-footnote {
    margin: 12px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--s-muted);
    text-align: center;
}

.page-owner-portal {
    --s-max: 1120px;
    --s-pad-x: clamp(24px, 4vw, 48px);
    --s-border: #e2e8f0;
    --s-muted: #64748b;
    --s-text: #0f172a;
    --s-accent: #2563eb;
    --s-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05), 0 0 0 1px rgba(15, 23, 42, 0.02);
    --s-shadow-md: 0 4px 6px rgba(15, 23, 42, 0.03), 0 12px 32px rgba(15, 23, 42, 0.07);
    background:
        radial-gradient(ellipse 80% 50% at 100% 0%, rgba(37, 99, 235, 0.04) 0%, transparent 55%),
        radial-gradient(ellipse 60% 40% at 0% 100%, rgba(99, 102, 241, 0.03) 0%, transparent 50%),
        #f8fafc;
    min-height: 100vh;
    font-family: "Plus Jakarta Sans", system-ui, sans-serif;
    color: var(--s-text);
    -webkit-font-smoothing: antialiased;
}
.page-owner-portal .wrap {
    max-width: var(--s-max);
    margin-inline: auto;
    width: 100%;
    box-sizing: border-box;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}
.page-owner-portal .owner-portal-header {
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(226, 232, 240, 0.85);
    box-shadow: var(--s-shadow-sm);
}
.page-owner-portal .owner-portal-bar { display: flex; align-items: center; gap: 16px; padding-block: 14px; flex-wrap: wrap; }
.page-owner-portal .owner-portal-brand { display: inline-flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.page-owner-portal .owner-portal-brand .logo-mark {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: linear-gradient(145deg, #3b82f6 0%, #2563eb 55%, #1d4ed8 100%);
    box-shadow: 0 2px 8px rgba(37, 99, 235, 0.32);
}
.page-owner-portal .owner-portal-user { margin-left: auto; }
.page-owner-portal .owner-portal-logout { margin-left: 0; }
.page-owner-portal .owner-portal-main { padding-block: 28px 56px; display: grid; gap: 20px; }
.page-owner-portal .owner-portal-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}
.page-owner-portal .owner-portal-head h1 {
    margin: 0 0 6px;
    font-size: clamp(22px, 3vw, 26px);
    font-weight: 700;
    letter-spacing: -0.03em;
}
.page-owner-portal .owner-portal-head .cabinet-page-head-icon {
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
.page-owner-portal .owner-portal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.page-owner-portal .owner-portal-card {
    border-radius: 16px;
    border: 1px solid rgba(226, 232, 240, 0.85);
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.75);
    padding: 22px;
}
.page-owner-portal .owner-portal-kpis .kpi-card { position: relative; box-shadow: var(--s-shadow-sm); }
.page-owner-portal .owner-portal-kpis .kpi-card-icon {
    position: absolute;
    top: 12px;
    right: 12px;
    color: #94a3b8;
    --icon-size: 18px;
}
.page-owner-portal .owner-portal-kpis .kpi-card--featured {
    border-left: 3px solid var(--s-accent);
    background: linear-gradient(90deg, rgba(239, 246, 255, 0.95) 0%, rgba(255, 255, 255, 0.92) 38%);
}
.page-owner-portal .owner-portal-kpis .kpi-card-icon {
    color: var(--s-accent);
}
.page-owner-portal .owner-portal-card .data-table {
    border-radius: 12px;
    border: 1px solid var(--s-border);
    overflow: hidden;
}
.page-owner-portal .owner-portal-card .empty-state {
    border-radius: 14px;
    border: 1px dashed var(--s-border);
    background: #f8fafc;
}

.form-stack--inline { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; align-items: end; }
.guarantee-list--compact { font-size: 13px; }
.kpi-grid--compact { grid-template-columns: repeat(3, 1fr); }
.webhook-test-grid { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.webhook-test-section {
    display: grid;
    gap: 8px;
    margin-top: 12px;
}
.pwa-status-row { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.team-session-banner { margin-bottom: 12px; }
.kyc-upload-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 20px; }
.kyc-submission-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.kyc-submission-list li { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 12px; border: 1px solid var(--border); border-radius: 10px; }
.auth-team-hint { margin-top: 12px; font-size: 13px; }
.roomb-widget-live { max-width: 360px; }
.onboarding-page-grid, .integrations-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-bottom: 0; align-items: start; }
.onboarding-side-stack { display: grid; gap: 16px; }
.status-incident-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--border); }
.api-token-row { margin-top: 16px; }
.landing-annual-toggle { margin-bottom: 16px; }
select { width: 100%; border: 1px solid var(--border); border-radius: 10px; padding: 11px 12px; font: inherit; }
.callout { padding: 16px 18px; border-radius: 12px; margin-bottom: 0; }
.callout-warning { background: var(--warning-bg); border: 1px solid #fde68a; }
.status-incident-banner { margin-bottom: 20px; }
.data-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.data-table th, .data-table td { padding: 10px 8px; border-bottom: 1px solid var(--border); text-align: left; }
.status-list { margin-top: 24px; display: grid; gap: 12px; }
.status-row { display: grid; grid-template-columns: auto 1fr 2fr auto; gap: 12px; align-items: center; padding: 14px; background: var(--surface); border: 1px solid var(--border); border-radius: 12px; }
.messages-empty { padding: 48px; text-align: center; background: var(--surface); border: 1px dashed var(--border); border-radius: var(--radius); }

.inbox-layout { display: grid; grid-template-columns: 320px 1fr; min-height: calc(100vh - 160px); margin: 0; }
.inbox-sidebar { border-right: 1px solid var(--border); background: var(--surface-muted); }
.inbox-sidebar-head { padding: 20px 16px; border-bottom: 1px solid var(--border); }
.inbox-sidebar-head h1 { margin: 0 0 4px; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
.inbox-search { display: block; margin-top: 12px; }
.inbox-search input { width: 100%; }
.inbox-thread-list { display: flex; flex-direction: column; }
.inbox-thread {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 14px 16px;
    border-bottom: 1px solid var(--border);
    color: inherit;
}
.inbox-thread:hover, .inbox-thread.active { background: var(--surface); }
.inbox-thread-body { flex: 1; min-width: 0; display: grid; gap: 4px; }
.inbox-thread-top { display: flex; justify-content: space-between; gap: 8px; }
.inbox-thread-meta, .inbox-thread-preview { font-size: 13px; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.inbox-chat { display: flex; flex-direction: column; background: var(--surface); }
.inbox-chat-head { display: flex; gap: 12px; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--border); }
.inbox-chat-head-copy { flex: 1; min-width: 0; }
.inbox-chat-head-action { flex-shrink: 0; margin-left: auto; }
.inbox-messages { flex: 1; padding: 20px; background: var(--surface-muted); overflow-y: auto; }
.chat-bubble { max-width: 420px; padding: 12px 14px; border-radius: 12px 12px 12px 4px; background: var(--surface); border: 1px solid var(--border); margin-bottom: 12px; }
.chat-bubble--host { margin-left: auto; border-radius: 12px 12px 4px 12px; background: #dbeafe; border-color: #93c5fd; }
.chat-bubble p { margin: 0; font-size: 14px; line-height: 1.45; }
.chat-time { display: block; margin-top: 6px; font-size: 12px; color: var(--muted); }
.inbox-compose { display: flex; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--border); }
.inbox-compose input { flex: 1; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.booking-main { flex: 1; min-width: 0; display: grid; gap: 4px; }
.booking-main strong { display: block; }
.booking-amount { white-space: nowrap; }
.booking-avatar--lg { width: 44px; height: 44px; }

.automation-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 20px; }
.automation-flow { margin-bottom: 24px; }
.automation-steps { margin: 8px 0; padding-left: 20px; color: var(--muted); line-height: 1.45; display: grid; gap: 6px; }
.automation-steps > li { margin: 0; }
.automation-rule {
    display: flex; justify-content: space-between; align-items: center; gap: 16px;
    padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; margin-bottom: 8px; background: #f9fafb;
}
.automation-rule-body { display: grid; gap: 4px; flex: 1; }
.automation-rule-title { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.guest-messages-panel { margin-top: 24px; }
.guest-messages-list { display: grid; gap: 12px; margin-top: 16px; }
.guest-message-card { padding: 14px 16px; border: 1px solid var(--border); border-radius: 12px; background: #f9fafb; }
.guest-message-head { display: flex; justify-content: space-between; gap: 10px; margin-bottom: 6px; }

@media (max-width: 900px) {
    .inbox-layout { grid-template-columns: 1fr; margin: 0; }
    .inbox-sidebar { border-right: 0; border-bottom: 1px solid var(--border); }
}

@media (min-width: 901px) {
    .cabinet-mobile-bar { display: none; }
}
.cabinet-nav-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: var(--surface);
    padding: 8px 12px;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    color: var(--text);
}
.cabinet-nav-toggle-icon { --icon-size: 18px; }
.logo--compact { font-size: 15px; }
.production-user-banner { border-color: #bbf7d0; }
.error-page {
    max-width: 520px;
    margin: 72px auto;
    padding: 32px 20px;
    text-align: center;
}
.error-page h1 { margin-bottom: 12px; font-size: 28px; font-weight: 600; letter-spacing: -0.02em; }
.error-page-actions { justify-content: center; margin-top: 24px; }

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
.cabinet-nav a:focus-visible {
    outline: none;
    box-shadow: var(--focus-ring);
}
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    border-color: var(--accent);
}
.btn:focus-visible { outline: none; box-shadow: var(--focus-ring); }

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

.pre-wrap { white-space: pre-wrap; font-size: 13px; margin: 0; }
.callout-centered { max-width: 420px; margin: 0 auto 16px; }
.brand-logo-preview { max-height: 40px; }
.pagination-row { margin-top: 12px; }
.cabinet-header--compact { margin-bottom: 0; }
.hero-photo--inline { margin: 0; }
.actions-row { display: flex; gap: 8px; flex-wrap: wrap; }

/* Cabinet layout & components — single source of truth */
.page-cabinet {
    --c-gap: 24px;
    --c-list: 8px;
    --c-bullet: 6px;
    --c-pad: 20px;
    --c-row-y: 12px;
    --c-gutter-x: clamp(24px, 4vw, 40px);
    --c-gutter-y: clamp(20px, 3vw, 36px);
}
.page-cabinet .cabinet-page,
.page-cabinet .section-stack { gap: var(--c-gap); }
.page-cabinet .cabinet-page > * { margin: 0; }

.page-cabinet .integrations-grid,
.page-cabinet .onboarding-page-grid,
.page-cabinet .analytics-grid,
.page-cabinet .documents-layout,
.page-cabinet .object-panels,
.page-cabinet .guest-preview-grid,
.page-cabinet .guest-panels-grid,
.page-cabinet .mobile-preview-layout,
.page-cabinet .safety-grid,
.page-cabinet .kyc-upload-grid,
.page-cabinet .dashboard-split { gap: 20px; margin: 0; }

.page-cabinet .form-card,
.page-cabinet .onboarding-panel,
.page-cabinet .calendar-panel,
.page-cabinet .kpi-card,
.page-cabinet .tariff-card,
.page-cabinet .hotel-room-card,
.page-cabinet .booking-widget,
.page-cabinet .cabinet-plan-card,
.page-cabinet .onboarding-nudge {
    box-shadow: var(--c-shadow-sm, 0 1px 2px rgba(15, 23, 42, 0.04));
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--surface);
}

.page-cabinet .form-card,
.page-cabinet .onboarding-panel,
.page-cabinet .onboarding-nudge,
.page-cabinet .form-section {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.page-cabinet .form-card,
.page-cabinet .onboarding-panel,
.page-cabinet .calendar-panel { padding: var(--c-pad); }
.page-cabinet .form-card .form-card,
.page-cabinet .review-template-card {
    padding: 14px;
    background: var(--surface-muted);
    border-radius: 10px;
    margin: 0;
}
.page-cabinet .tariff-card { padding: var(--c-pad); }
.page-cabinet .tariff-card.featured {
    border: 2px solid transparent;
    background:
        linear-gradient(180deg, #fff 0%, #f8faff 100%) padding-box,
        linear-gradient(135deg, #93c5fd 0%, #2563eb 45%, #6366f1 100%) border-box;
}

.page-cabinet .form-section {
    margin: 0;
    padding-top: 18px;
    border-top: 1px solid var(--border);
}
.page-cabinet .form-section:first-child { padding-top: 0; border-top: 0; }
.page-cabinet .form-section > h2,
.page-cabinet .form-section > .muted,
.page-cabinet .form-card > h2,
.page-cabinet .form-card > h3,
.page-cabinet .form-card > .muted,
.page-cabinet .form-card > p.muted,
.page-cabinet .onboarding-panel h2,
.page-cabinet .objects-section h2,
.page-cabinet .bookings-preview h2,
.page-cabinet .hotel-rooms-panel h2,
.page-cabinet .calendar-panel-head h2 { margin: 0; }

.page-cabinet .cabinet-header h1,
.page-cabinet .automation-header h1,
.page-cabinet .cabinet-page-head h1 { font-size: 22px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.25; }
.page-cabinet .form-card h2,
.page-cabinet .onboarding-panel h2,
.page-cabinet .objects-section h2,
.page-cabinet .bookings-preview h2,
.page-cabinet .hotel-rooms-panel h2 { font-size: 15px; font-weight: 600; }
.page-cabinet .form-card h3 { font-size: 14px; font-weight: 600; }
.page-cabinet .section-head-row { margin: 0; }
.page-cabinet .callout { padding: 14px 16px; margin: 0; }

.page-cabinet .guarantee-list,
.page-cabinet .guest-steps,
.page-cabinet .automation-steps,
.page-cabinet .offboarding-list,
.page-cabinet .oauth-scope,
.page-cabinet .settings-plan-list,
.page-cabinet .help-article-body ol,
.page-cabinet .tariff-features,
.page-cabinet .tariff-card ul,
.page-cabinet .form-card ul:not([class]),
.page-cabinet .form-card ol:not([class]) {
    line-height: 1.45;
    display: grid;
    gap: var(--c-bullet);
    margin: 0;
}
.page-cabinet .guarantee-list > li,
.page-cabinet .guest-steps > li,
.page-cabinet .automation-steps > li,
.page-cabinet .offboarding-list > li,
.page-cabinet .oauth-scope > li,
.page-cabinet .settings-plan-list > li,
.page-cabinet .help-article-body ol > li,
.page-cabinet .tariff-features > li,
.page-cabinet .tariff-card ul > li,
.page-cabinet .form-card ul:not([class]) > li,
.page-cabinet .form-card ol:not([class]) > li { margin: 0; }
.page-cabinet .form-card ul:not([class]),
.page-cabinet .form-card ol:not([class]) { padding-left: 20px; }

.page-cabinet .onboarding-list { gap: var(--c-bullet); }
.page-cabinet .onboarding-step { padding: 10px 12px; background: var(--surface-muted); border-radius: 10px; }
.page-cabinet .onboarding-step.done { background: var(--surface-muted); border-color: var(--border); }
.page-cabinet .onboarding-step > div { gap: 4px; }
.page-cabinet .onboarding-head { margin: 0 0 16px; }

.page-cabinet .booking-list { gap: 0; }
.page-cabinet .booking-list .booking-row,
.page-cabinet .form-card > .booking-row {
    grid-template-columns: 36px 1fr auto;
    gap: 12px;
    padding: var(--c-row-y) 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    box-shadow: none;
}
.page-cabinet .booking-list .booking-row:last-child,
.page-cabinet .form-card > .booking-row:last-of-type { border-bottom: 0; }
.page-cabinet .booking-actions { border-top: 1px solid var(--border); margin-top: 8px; padding-top: 8px; }

.page-cabinet .objects-section { gap: var(--c-list); }
.page-cabinet .object-row { background: var(--surface-muted); }

.page-cabinet .hotel-room-card { padding: 14px; gap: 12px; background: var(--surface-muted); }
.page-cabinet .hotel-rooms-grid { gap: 12px; }

.page-cabinet .help-list { gap: 0; }
.page-cabinet .help-row {
    padding: var(--c-row-y) 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
}
.page-cabinet .help-list .help-row:last-child { border-bottom: 0; }

.page-cabinet .tasks-list,
.page-cabinet .reviews-list { gap: 0; }
.page-cabinet .task-row,
.page-cabinet .review-row {
    padding: var(--c-row-y) 0;
    border: 0;
    border-radius: 0;
    border-bottom: 1px solid var(--border);
    background: transparent;
    box-shadow: none;
}
.page-cabinet .tasks-list .task-row:last-child,
.page-cabinet .reviews-list .review-row:last-child { border-bottom: 0; }

.page-cabinet .migration-list,
.page-cabinet .guest-messages-list,
.page-cabinet .kyc-submission-list { gap: var(--c-list); margin: 0; }
.page-cabinet .migration-row,
.page-cabinet .automation-rule,
.page-cabinet .guest-message-card {
    padding: 12px 14px;
    margin: 0;
    background: var(--surface-muted);
    border-radius: 10px;
}
.page-cabinet .form-card form:has(.automation-rule) { display: grid; gap: var(--c-list); }

.page-cabinet .safety-warnings { gap: 0; margin: 0; }
.page-cabinet .safety-warning-row { padding: 10px 0; margin: 0; }

.page-cabinet .status-row { padding: 12px; background: var(--surface-muted); box-shadow: none; }
.page-cabinet .data-table th,
.page-cabinet .data-table td { padding: 8px; vertical-align: top; }

.page-cabinet .kpi-grid,
.page-cabinet .kpi-grid--4,
.page-cabinet .tariff-grid { gap: 12px; margin: 0; }
.page-cabinet .kpi-card { min-height: 0; padding: 18px 20px; }
.page-cabinet .kpi-card--accent { border-left: 3px solid var(--accent); }
.page-cabinet .kpi-card strong { font-size: 24px; font-weight: 600; }

.page-cabinet .empty-state { padding: 20px; margin: 0; }
.page-cabinet .empty-state--inline { padding: 16px; }
.page-cabinet .messages-empty { padding: 32px 20px; }

.page-cabinet .tariff-card .tariff-features,
.page-cabinet .tariff-card ul { margin: 0; min-height: 0; }

.page-cabinet .inbox-thread { padding: 12px 16px; }
.page-cabinet .chat-bubble { margin-bottom: 8px; padding: 10px 12px; }
.page-cabinet .guest-tab,
.page-cabinet .billing-tab { padding: 8px 14px; }

.page-cabinet .form-stack label { margin-bottom: 0; }
.page-cabinet .form-card .form-divider { margin: 0; }
.page-cabinet .form-card .btn:not(.btn-sm) { margin-top: 0; }
.page-cabinet .billing-usage-bar { margin: 0; }
.page-cabinet .analytics-grid,
.page-cabinet .guest-preview-grid,
.page-cabinet .guest-panels-grid,
.page-cabinet .mobile-preview-layout,
.page-cabinet .object-panels,
.page-cabinet .kyc-upload-grid,
.page-cabinet .automation-header,
.page-cabinet .automation-flow,
.page-cabinet .guest-messages-panel { margin: 0; }

/* Cabinet design system — flat surfaces per canvas concept */
.page-cabinet {
    --c-text: #0f172a;
    --c-muted: #64748b;
    --c-border: #e2e8f0;
    --c-surface: #fff;
    --c-bg: #f8fafc;
    --c-sidebar: #f8fafc;
    --c-accent: #2563eb;
    --c-accent-deep: #1d4ed8;
    --c-radius-lg: 16px;
    --c-shadow-sm: none;
    --c-shadow-md: none;
    --c-shadow-lg: none;
    --c-glow-accent: none;
    font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif;
    color: var(--c-text);
    background: var(--c-bg);
    -webkit-font-smoothing: antialiased;
}

.page-cabinet .logo-mark {
    background: var(--c-accent);
    box-shadow: none;
}

.page-cabinet .cabinet-sidebar {
    background: var(--c-sidebar);
    border-right: 1px solid var(--c-border);
    box-shadow: none;
    padding: 24px 14px;
    gap: 20px;
}
@media (min-width: 901px) {
    .page-cabinet .cabinet-sidebar {
        position: relative;
    }
    .page-cabinet .cabinet-sidebar::before {
        display: none;
    }
}

.page-cabinet .cabinet-nav-section {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: #94a3b8;
    margin: 16px 0 6px;
}

.page-cabinet .cabinet-nav a {
    position: relative;
    font-size: 14px;
    font-weight: 500;
    color: var(--c-muted);
    border-radius: 10px;
    transition: background 0.15s ease, color 0.15s ease;
    padding: 9px 12px 9px 10px;
}
.page-cabinet .cabinet-nav-icon {
    color: #94a3b8;
    transition: color 0.15s ease;
}
.page-cabinet .cabinet-nav a:hover .cabinet-nav-icon,
.page-cabinet .cabinet-nav a.active .cabinet-nav-icon {
    color: var(--c-accent);
}
.page-cabinet .cabinet-nav-cta {
    margin-top: 6px;
    border: 1px dashed var(--c-border);
    background: #fafbfc;
}
.page-cabinet .cabinet-nav-cta:hover {
    border-color: #bfdbfe;
    background: #eff6ff;
}
.page-cabinet .cabinet-nav-cta.active {
    border-style: solid;
    border-color: #bfdbfe;
}
.page-cabinet .cabinet-nav a:hover {
    background: #f1f5f9;
    color: var(--c-text);
    box-shadow: none;
}
.page-cabinet .cabinet-nav a.active {
    background: #eff6ff;
    color: var(--c-accent);
    font-weight: 600;
    box-shadow: none;
}
.page-cabinet .cabinet-nav a.active::before {
    content: "";
    position: absolute;
    left: 0;
    top: 7px;
    bottom: 7px;
    width: 3px;
    border-radius: 0 3px 3px 0;
    background: var(--c-accent);
}

.page-cabinet .cabinet-plan-card {
    border-color: var(--c-border);
    border-radius: var(--c-radius-lg);
}
.page-cabinet .cabinet-plan-card--over {
    border-color: #fde68a;
    background: #fffbeb;
}

.page-cabinet .cabinet-user {
    padding-top: 4px;
    border-top: 1px solid var(--c-border);
}
.page-cabinet .cabinet-user strong { font-weight: 600; letter-spacing: -0.01em; }

.page-cabinet .cabinet-content {
    padding-block: var(--c-gutter-y);
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}

.page-cabinet .cabinet-header h1,
.page-cabinet .automation-header h1,
.page-cabinet .cabinet-page-head h1 {
    font-size: clamp(22px, 2.5vw, 26px);
    font-weight: 700;
    letter-spacing: -0.03em;
}

.page-cabinet .cabinet-header .muted,
.page-cabinet .dashboard-subtitle { color: var(--c-muted); font-size: 14px; }

.page-cabinet .btn {
    border-radius: 11px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.page-cabinet .btn-primary {
    background: var(--c-accent);
    color: #fff;
}
.page-cabinet .btn-primary .icon {
    color: #fff;
}
.page-cabinet .btn-primary:hover {
    background: var(--c-accent-deep);
    color: #fff;
}
.page-cabinet .btn-secondary {
    background: var(--c-surface);
    border-color: var(--c-border);
    color: var(--c-text);
}
.page-cabinet .btn-secondary .icon {
    color: var(--c-accent);
}
.page-cabinet .btn-secondary:hover {
    border-color: #cbd5e1;
    color: var(--c-text);
}
.page-cabinet .btn-ghost {
    color: var(--c-muted);
}
.page-cabinet .btn-ghost:hover {
    background: #f1f5f9;
    color: var(--c-text);
}
.page-cabinet .cabinet-plan-card .btn-ghost,
.page-cabinet .cabinet-user .btn-ghost {
    color: var(--c-muted);
}
.page-cabinet .cabinet-plan-card .btn-ghost:hover,
.page-cabinet .cabinet-user .btn-ghost:hover {
    color: var(--c-text);
}

.page-cabinet input[type=text],
.page-cabinet input[type=email],
.page-cabinet input[type=password],
.page-cabinet input[type=number],
.page-cabinet select,
.page-cabinet textarea {
    border-color: var(--c-border);
    border-radius: 11px;
    padding: 11px 13px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.page-cabinet input:focus,
.page-cabinet select:focus,
.page-cabinet textarea:focus {
    border-color: var(--c-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
    outline: none;
}

.page-cabinet .form-card,
.page-cabinet .onboarding-panel,
.page-cabinet .calendar-panel,
.page-cabinet .kpi-card,
.page-cabinet .tariff-card,
.page-cabinet .hotel-room-card,
.page-cabinet .booking-widget,
.page-cabinet .onboarding-nudge,
.page-cabinet .shield-panel {
    border-color: var(--c-border);
    border-radius: var(--c-radius-lg);
}

.page-cabinet .kpi-card {
    transition: border-color 0.15s ease;
}
.page-cabinet .kpi-card:hover {
    border-color: #cbd5e1;
}
.page-cabinet .kpi-card strong {
    font-weight: 700;
    letter-spacing: -0.03em;
    font-variant-numeric: tabular-nums;
}
.page-cabinet .kpi-card--accent {
    border-left: 3px solid var(--c-accent);
    background: var(--c-surface);
}

.page-cabinet .onboarding-nudge {
    background: #eff6ff;
    border-color: #bfdbfe;
    gap: 14px;
}
.page-cabinet .onboarding-nudge p { flex: 1; min-width: 0; }
.page-cabinet .onboarding-nudge-progress { color: var(--c-accent); font-weight: 700; }

.page-cabinet .kpi-card-icon {
    position: absolute;
    top: 14px;
    right: 14px;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #f8fafc;
    border: 1px solid var(--c-border);
    color: #94a3b8;
    --icon-size: 16px;
}
.page-cabinet .kpi-card--accent .kpi-card-icon {
    background: #eff6ff;
    border-color: #bfdbfe;
    color: var(--c-accent);
}
.page-cabinet .kpi-card-icon--success {
    background: #ecfdf5;
    border-color: #a7f3d0;
    color: #059669;
}

.page-cabinet .empty-state {
    align-items: center;
    text-align: center;
    gap: 12px;
}
.page-cabinet .empty-state--inline {
    flex-direction: row;
    text-align: left;
    align-items: flex-start;
}
.page-cabinet .empty-state-icon {
    background: #f8fafc;
    border: 1px solid var(--c-border);
    color: #94a3b8;
}
.page-cabinet .empty-state-body { color: var(--c-muted); }
.page-cabinet .empty-state-body .btn { margin-top: 4px; }

.page-cabinet .onboarding-num {
    font-size: 0;
    line-height: 0;
}
.page-cabinet .onboarding-num .icon { --icon-size: 16px; }
.page-cabinet .onboarding-step.done .onboarding-num {
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
    border-color: #6ee7b7;
    color: #047857;
}

.page-cabinet .booking-widget {
    box-shadow: var(--c-shadow-md);
    border-radius: var(--c-radius-lg);
}
.page-cabinet .guest-message-preview {
    padding: 14px 16px;
    border-radius: var(--c-radius-lg);
    border: 1px solid var(--c-border);
    background: linear-gradient(180deg, #fafbfc 0%, #f8fafc 100%);
    margin: 0;
}
.page-cabinet .guest-message-preview.callout-with-icon {
    align-items: flex-start;
}
.page-cabinet .guest-message-preview .callout-icon {
    background: #eff6ff;
    color: var(--c-accent);
}
.page-cabinet .guest-message-preview p {
    margin: 0 0 10px;
    line-height: 1.55;
}
.page-cabinet .guest-steps--numbered {
    counter-reset: guest-step;
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0;
}
.page-cabinet .guest-steps--numbered > li {
    position: relative;
    padding: 12px 0 12px 36px;
    border-bottom: 1px solid var(--c-border);
    line-height: 1.5;
    color: var(--c-text);
}
.page-cabinet .guest-steps--numbered > li:last-child { border-bottom: 0; }
.page-cabinet .guest-steps--numbered > li::before {
    counter-increment: guest-step;
    content: counter(guest-step);
    position: absolute;
    left: 0;
    top: 12px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--c-accent);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}
.page-cabinet .guarantee-list--checks {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 8px;
}
.page-cabinet .guarantee-check-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--c-muted);
    line-height: 1.45;
    font-size: 14px;
}
.page-cabinet .guarantee-check-item .icon {
    color: #34d399;
    flex-shrink: 0;
    margin-top: 2px;
}
.page-cabinet .guest-portal-links {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 12px 0;
}
.page-cabinet .object-settings-stack .form-section-head {
    margin-top: 0;
}
.page-cabinet .rooms-panel > .form-section-head {
    margin-bottom: 4px;
}
.page-cabinet .guest-portal-head {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}
.page-cabinet .guest-portal-head-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: #2563eb;
    border: 1px solid #bfdbfe;
    --icon-size: 22px;
}
.page-cabinet .guest-portal-dates {
    margin: 0 0 10px;
    font-size: 13px;
    line-height: 1.45;
}
.page-cabinet .phone-portal-block--icon {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 8px;
}
.page-cabinet .phone-portal-block-icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #f8fafc;
    border: 1px solid var(--c-border);
    color: #64748b;
    --icon-size: 14px;
}
.page-cabinet .guest-portal-head--compact {
    margin-bottom: 6px;
}
.page-cabinet .guest-portal-head--compact .guest-portal-head-icon {
    width: 36px;
    height: 36px;
    --icon-size: 18px;
}
.page-cabinet .guest-portal-head--compact strong {
    display: block;
    font-size: 15px;
}
.page-cabinet .guest-portal-head--compact .muted {
    font-size: 12px;
    margin: 0;
}
.page-cabinet .guest-preview-grid .form-card,
.page-cabinet .guest-panels-grid .form-card {
    box-shadow: var(--c-shadow-sm);
}

.page-site .empty-state-icon,
.page-site .error-page-icon {
    background: #f1f5f9;
    color: #94a3b8;
}
.page-site .error-page-icon {
    width: 72px;
    height: 72px;
    border-radius: 20px;
    margin-bottom: 8px;
}

.page-cabinet .featured-object-link {
    border-radius: var(--c-radius-lg);
    border: 2px solid var(--c-accent);
    background: #fff;
}
.page-cabinet .featured-object-link:hover {
    border-color: var(--c-accent-deep);
}
.page-cabinet .featured-title { font-weight: 700; letter-spacing: -0.02em; }

.page-cabinet .object-row {
    border-color: var(--c-border);
    border-radius: 12px;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.22s ease, transform 0.22s ease;
}
.page-cabinet .object-row:hover {
    border-color: #bfdbfe;
    background: #f8faff;
}

.page-cabinet .booking-list .booking-row,
.page-cabinet .form-card > .booking-row {
    border-bottom-color: var(--c-border);
    transition: background 0.12s ease;
}
.page-cabinet .booking-list .booking-row:hover,
.page-cabinet .form-card > .booking-row:hover {
    background: #f8fafc;
    margin-inline: -8px;
    padding-inline: 8px;
    border-radius: 8px;
}

.page-cabinet .callout {
    border-radius: var(--c-radius-lg);
    border: 1px solid transparent;
}
.page-cabinet .callout-info {
    background: #eff6ff;
    border-color: #bfdbfe;
}
.page-cabinet .callout-warning {
    background: #fffbeb;
    border-color: #fde68a;
}
.page-cabinet .callout-success {
    background: #ecfdf5;
    border-color: #a7f3d0;
}

.page-cabinet .pill {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .pill-success { border: 1px solid #a7f3d0; }
.page-cabinet .pill-info { border: 1px solid #bfdbfe; }
.page-cabinet .pill-warning { border: 1px solid #fde68a; }

.page-cabinet .cabinet-alert {
    background: #fff;
    border-bottom-color: var(--c-border);
}

.page-cabinet .cabinet-mobile-bar {
    background: #fff;
    border-bottom: 1px solid var(--c-border);
}

.page-cabinet .form-card h2,
.page-cabinet .objects-section h2,
.page-cabinet .bookings-preview h2,
.page-cabinet .dashboard-split h2 {
    font-weight: 700;
    letter-spacing: -0.02em;
}

.page-cabinet .empty-state {
    border-radius: var(--c-radius-lg);
    border: 1px dashed var(--c-border);
    background: #fafbfc;
    color: var(--c-muted);
}

.page-cabinet .tariff-card.featured {
    border: 2px solid var(--c-accent);
    background: #fff;
}
.page-cabinet .tariff-card.featured:hover {
    border-color: var(--c-accent-deep);
}
.page-cabinet .tariff-card:not(.featured) {
    transition: border-color 0.15s ease;
}
.page-cabinet .tariff-card:not(.featured):hover {
    border-color: #cbd5e1;
}
.page-cabinet .tariff-price {
    font-size: clamp(28px, 3vw, 34px);
    font-weight: 800;
    letter-spacing: -0.04em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.page-cabinet .tariff-price .tariff-price-period {
    font-size: 14px;
    font-weight: 600;
    color: var(--c-muted);
    letter-spacing: 0;
}

/* Settings · Integrations · Billing */
.page-cabinet .cabinet-page.narrow { max-width: 640px; }
.page-cabinet .section-stack { gap: 20px; }
.page-cabinet .form-section {
    border-top-color: var(--c-border);
    padding-top: 20px;
    gap: 14px;
}
.page-cabinet .form-section h2 {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--c-text);
}
.page-cabinet .form-stack label span,
.page-cabinet .form-card label span {
    font-size: 13px;
    font-weight: 600;
    color: var(--c-text);
    margin-bottom: 6px;
}
.page-cabinet .embed-code,
.page-cabinet pre.embed-code {
    border: 1px solid var(--c-border);
    background: #f8fafc;
    border-radius: 11px;
    padding: 12px 14px;
    font-size: 13px;
    max-width: 100%;
    overflow-x: auto;
    word-break: break-all;
}
.page-cabinet .object-main code {
    word-break: break-all;
}
.page-cabinet .form-details summary {
    font-size: 14px;
    color: var(--c-muted);
    cursor: pointer;
}

.page-cabinet .data-table { font-size: 14px; border-collapse: collapse; }
.page-cabinet .data-table thead th {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
    border-bottom: 1px solid var(--c-border);
    padding: 10px 12px;
    background: #f8fafc;
}
.page-cabinet .data-table tbody td {
    padding: 12px;
    border-bottom: 1px solid var(--c-border);
    vertical-align: top;
}
.page-cabinet .data-table tbody tr:last-child td { border-bottom: 0; }
.page-cabinet .data-table tbody tr:hover td { background: #f8fafc; }
.page-cabinet .platform-table-name {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .notification-prefs-table .checkbox-row { justify-content: center; }

.page-cabinet .billing-tabs,
.page-cabinet .guest-tabs {
    gap: 6px;
    margin-bottom: 16px;
    padding: 4px;
    background: #f1f5f9;
    border-radius: 12px;
    border: 1px solid var(--c-border);
    width: fit-content;
    max-width: 100%;
}
.page-cabinet .guest-tabs .guest-tab {
    padding: 8px 14px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--c-muted);
    text-decoration: none;
    border: 1px solid transparent;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.page-cabinet .guest-tabs .guest-tab:hover {
    color: var(--c-text);
    background: rgba(255, 255, 255, 0.6);
}
.page-cabinet .guest-tabs .guest-tab.active {
    background: var(--c-surface);
    color: var(--c-accent);
    border-color: var(--c-border);
    box-shadow: var(--c-shadow-sm);
}

.page-cabinet .tariff-features--checks,
.page-cabinet .tariff-card .tariff-features--checks {
    list-style: none;
    padding: 0;
    margin: 10px 0 12px;
    display: grid;
    gap: 8px;
}
.page-cabinet .tariff-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--c-muted);
    line-height: 1.45;
    font-size: 14px;
}
.page-cabinet .tariff-feature-item .icon {
    color: #34d399;
    flex-shrink: 0;
    margin-top: 2px;
}

.page-cabinet .form-card > .form-section-head:first-child,
.page-cabinet .form-card > h2.form-section-head {
    margin-top: 0;
}
.page-cabinet .operations-checklist-num {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: var(--c-accent);
    font-size: 12px;
    font-weight: 700;
}
.page-cabinet .billing-tab,
.page-cabinet .guest-tab {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    border-color: var(--c-border);
    background: var(--c-surface);
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}
.page-cabinet .billing-tab:hover,
.page-cabinet .guest-tab:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}
.page-cabinet .billing-tab.active,
.page-cabinet .guest-tab.active {
    background: #eff6ff;
    border-color: var(--c-accent);
    color: var(--c-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}
.page-cabinet .billing-annual-toggle .toggle-row { font-size: 14px; color: var(--c-muted); }
.page-cabinet .billing-usage-card {
    background: linear-gradient(180deg, #f8fafc 0%, var(--c-surface) 100%);
    border-color: var(--c-border);
}
.page-cabinet .billing-usage-bar {
    height: 10px;
    border-radius: 999px;
    background: #e2e8f0;
}
.page-cabinet .billing-usage-bar span {
    background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
    border-radius: 999px;
}
.page-cabinet .billing-usage-bar--warn span {
    background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%);
}
.page-cabinet .billing-pay-panel { border-radius: var(--c-radius-lg); }
.page-cabinet .cabinet-lead { font-size: 15px; color: var(--c-muted); margin: 0; }

/* Object detail */
.page-cabinet .cabinet-content--flush { padding-block: 0; padding-inline: 0; }
.page-cabinet .object-layout {
    display: grid;
    grid-template-columns: minmax(220px, 248px) minmax(0, 1fr);
    min-height: calc(100vh - 120px);
    min-width: 0;
    width: 100%;
    max-width: 100%;
    background: var(--c-bg);
}
.page-cabinet .object-sidebar {
    background: var(--c-surface);
    border-right: 1px solid var(--c-border);
}
.page-cabinet .object-sidebar .section-label {
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #94a3b8;
    margin: 0 0 12px;
}
.page-cabinet .object-picker {
    display: grid;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    gap: 2px 10px;
    align-items: center;
    padding: 12px;
    margin-bottom: 8px;
    border-radius: 12px;
    border: 1px solid var(--c-border);
    background: var(--c-surface);
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.page-cabinet .object-picker .hero-photo {
    grid-row: 1 / span 2;
    margin: 0;
}
.page-cabinet .object-picker strong {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.3;
}
.page-cabinet .object-picker .muted { font-size: 12px; }
.page-cabinet .object-picker:hover {
    border-color: #cbd5e1;
    background: #f8fafc;
}
.page-cabinet .object-picker.active {
    border: 2px solid var(--c-accent);
    padding: 11px;
    background: #eff6ff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
}
.page-cabinet .object-main {
    padding-block: var(--c-gutter-y);
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    max-width: none;
}
.page-cabinet .object-main .hero-photo--lg {
    border-radius: var(--c-radius-lg);
    box-shadow: var(--c-shadow-md);
    min-height: clamp(160px, 22vw, 220px);
}
.page-cabinet .object-header h1 {
    font-size: clamp(22px, 2.5vw, 26px);
    font-weight: 700;
    letter-spacing: -0.03em;
}
.page-cabinet .object-header {
    grid-template-columns: auto 1fr auto;
    gap: 14px 16px;
    padding: 16px 18px;
    margin-top: 16px;
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    background: var(--c-surface);
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .object-header-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--c-accent);
    align-self: start;
}
.page-cabinet .object-maintenance-form {
    grid-column: 1 / -1;
    padding-top: 4px;
    border-top: 1px solid var(--c-border);
    margin-top: 4px;
}
.page-cabinet .occupancy-ring {
    background: conic-gradient(var(--c-accent) calc(var(--occupancy, 0) * 1%), #e2e8f0 0);
}
.page-cabinet .object-stat strong {
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
}
.page-cabinet .room-tab {
    border-color: var(--c-border);
    border-radius: 12px;
    transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}
.page-cabinet .room-tab:hover { border-color: #cbd5e1; background: #f8fafc; }
.page-cabinet .room-cat-input:nth-of-type(1):checked ~ .room-tabs-row .room-tab:nth-of-type(1),
.page-cabinet .room-cat-input:nth-of-type(2):checked ~ .room-tabs-row .room-tab:nth-of-type(2),
.page-cabinet .room-cat-input:nth-of-type(3):checked ~ .room-tabs-row .room-tab:nth-of-type(3),
.page-cabinet .room-cat-input:nth-of-type(4):checked ~ .room-tabs-row .room-tab:nth-of-type(4),
.page-cabinet .room-cat-input:nth-of-type(5):checked ~ .room-tabs-row .room-tab:nth-of-type(5),
.page-cabinet .room-cat-input:nth-of-type(6):checked ~ .room-tabs-row .room-tab:nth-of-type(6) {
    border-color: var(--c-accent);
    background: #eff6ff;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.08);
    padding: 9px 13px;
}
.page-cabinet .rooms-panel,
.page-cabinet .object-panels { margin-top: 0; }
.page-cabinet .object-panels { gap: 16px; }
.page-cabinet .calendar-panel {
    box-shadow: var(--c-shadow-sm);
    border-color: var(--c-border);
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}
.page-cabinet .calendar-panel .mini-calendar,
.page-cabinet .calendar-panel .mini-calendar--cabinet {
    border-radius: var(--c-radius-lg);
    border: 1px solid rgba(226, 232, 240, 0.9);
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 18px;
    box-shadow:
        0 1px 2px rgba(15, 23, 42, 0.04),
        0 12px 32px rgba(15, 23, 42, 0.07),
        inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.page-cabinet .calendar-panel .mini-calendar-title {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 12px;
}
.page-cabinet .calendar-panel .mini-calendar-grid .day {
    border-radius: 9px;
    font-weight: 600;
    font-size: 12px;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.page-cabinet .calendar-panel .mini-calendar-grid .day.booked {
    background: linear-gradient(180deg, #dbeafe 0%, #bfdbfe 100%);
    color: #1d4ed8;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.45);
}
.page-cabinet .calendar-panel .mini-calendar-grid .day.free {
    background: linear-gradient(180deg, #ecfdf5 0%, #d1fae5 100%);
    color: #047857;
}
.page-cabinet .calendar-panel .mini-calendar-grid .day.pending {
    background: linear-gradient(180deg, #fef3c7 0%, #fde68a 100%);
    color: #b45309;
}
.page-cabinet .platform-row-form {
    border-bottom-color: var(--c-border);
    padding: 16px 0;
}
.page-cabinet .platform-row-head strong { font-weight: 600; letter-spacing: -0.01em; }
.page-cabinet .object-settings-details {
    border-color: var(--c-border);
    border-radius: var(--c-radius-lg);
    background: #f8fafc;
}
.page-cabinet .object-settings-details summary {
    font-weight: 600;
    letter-spacing: -0.01em;
}

/* Messages · Analytics · Help · Onboarding · Status strip */
.page-cabinet .cabinet-alert {
    padding-block: 10px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    gap: 12px;
    min-height: 0;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.page-cabinet .cabinet-alert--ok {
    background: linear-gradient(90deg, rgba(236, 253, 245, 0.94) 0%, rgba(255, 255, 255, 0.88) 46%);
    box-shadow: inset 3px 0 0 #059669, inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .cabinet-alert--warn {
    background: linear-gradient(90deg, rgba(255, 251, 235, 0.96) 0%, rgba(255, 255, 255, 0.9) 50%);
    box-shadow: inset 3px 0 0 #d97706, inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .cabinet-alert-body { gap: 8px 12px; }
.page-cabinet .cabinet-alert-text {
    font-size: 14px;
    line-height: 1.4;
}
.page-cabinet .cabinet-alert-text--muted { font-size: 13px; }
.page-cabinet .pill-alert-ok,
.page-cabinet .pill-alert-warn {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 4px 10px;
    border-radius: 999px;
}
.page-cabinet .cabinet-alert-action { margin-left: auto; }

.page-cabinet .inbox-layout {
    display: grid;
    grid-template-columns: minmax(280px, 320px) minmax(0, 1fr);
    min-height: calc(100vh - 112px);
    min-width: 0;
    width: 100%;
    max-width: 100%;
    background: var(--c-bg);
}
.page-cabinet .inbox-sidebar {
    background: linear-gradient(180deg, #fff 0%, #f8fafc 100%);
    border-right-color: var(--c-border);
    min-width: 0;
}
.page-cabinet .inbox-chat {
    min-width: 0;
    max-width: 100%;
}
.page-cabinet .inbox-sidebar-head {
    padding-block: 20px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    border-bottom-color: var(--c-border);
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}
.page-cabinet .inbox-thread-list {
    padding-block: 6px 12px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}
.page-cabinet .inbox-thread {
    padding: 12px 14px;
    border-bottom-color: transparent;
    border-radius: 12px;
    margin-bottom: 2px;
    transition: background 0.12s ease, box-shadow 0.12s ease;
    text-decoration: none;
}
.page-cabinet .inbox-thread:hover {
    background: rgba(255, 255, 255, 0.92);
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .inbox-thread.active {
    background: linear-gradient(90deg, #eff6ff 0%, rgba(255, 255, 255, 0.95) 38%);
    box-shadow: var(--c-shadow-sm), inset 3px 0 0 var(--c-accent);
}
.page-cabinet .inbox-thread .pill {
    align-self: center;
    min-width: 24px;
    justify-content: center;
    font-variant-numeric: tabular-nums;
    box-shadow: 0 1px 3px rgba(37, 99, 235, 0.18);
}
.page-cabinet .inbox-thread .booking-avatar {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--c-accent);
    font-size: 11px;
    font-weight: 700;
    border: 1px solid #bfdbfe;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .inbox-sidebar-head-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 14px;
}
.page-cabinet .inbox-sidebar-head-copy { flex: 1; min-width: 0; }
.page-cabinet .inbox-sidebar-unread { flex-shrink: 0; }
.page-cabinet .inbox-sidebar-head h1 {
    font-size: 22px;
    font-weight: 700;
    letter-spacing: -0.03em;
}
.page-cabinet .inbox-search input {
    border-radius: 11px;
    background: #f8fafc;
    border-color: var(--c-border);
}
.page-cabinet .inbox-search--with-icon {
    position: relative;
    display: block;
}
.page-cabinet .inbox-search--with-icon .inbox-search-icon {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    pointer-events: none;
    --icon-size: 16px;
}
.page-cabinet .inbox-search--with-icon input {
    width: 100%;
    padding-left: 36px;
}
.page-cabinet .inbox-empty-page {
    max-width: 640px;
    margin: 0 auto;
    padding-block: var(--c-gutter-y);
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}
.page-cabinet .inbox-empty-page .empty-state {
    margin-top: 8px;
}
.page-cabinet .inbox-translation-hint {
    margin: 0 24px 12px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid var(--c-border);
}
.page-cabinet .inbox-translation-hint.callout-with-icon {
    align-items: flex-start;
}
.page-cabinet .inbox-translation-hint .callout-icon {
    background: #eff6ff;
    color: var(--c-accent);
}
.page-cabinet .inbox-compose .btn-with-icon {
    flex-shrink: 0;
}
.page-cabinet .section-head-row .form-section-head {
    margin-bottom: 0;
}
.page-cabinet .inbox-search input:focus {
    background: var(--c-surface);
    border-color: var(--c-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
}
.page-cabinet .inbox-thread-top strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .inbox-messages {
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
    padding-block: 24px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.page-cabinet .chat-bubble {
    max-width: min(420px, 85%);
    padding: 12px 14px;
    border-radius: 16px 16px 16px 6px;
    background: var(--c-surface);
    border-color: var(--c-border);
    box-shadow: var(--c-shadow-sm);
    margin-bottom: 0;
}
.page-cabinet .chat-bubble--host {
    margin-left: auto;
    border-radius: 16px 16px 6px 16px;
    background: linear-gradient(180deg, #eff6ff 0%, #dbeafe 100%);
    border-color: #bfdbfe;
}
.page-cabinet .chat-bubble p { line-height: 1.5; }
.page-cabinet .chat-time {
    font-size: 11px;
    font-variant-numeric: tabular-nums;
}
.page-cabinet .inbox-compose {
    background: var(--c-surface);
    border-top-color: var(--c-border);
    padding-block: 16px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    gap: 12px;
}
.page-cabinet .inbox-compose input { border-radius: 12px; }
.page-cabinet .inbox-translation-hint {
    margin-block: 0 16px;
    margin-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    border-radius: var(--c-radius-lg);
    border-color: var(--c-border);
    background: linear-gradient(90deg, #eff6ff 0%, var(--c-surface) 55%);
}

.page-cabinet .analytics-grid { gap: 16px; }
.page-cabinet .bar-chart { gap: 12px; }
.page-cabinet .bar-chart-row { font-size: 13px; }
.page-cabinet .bar-chart-label,
.page-cabinet .bar-chart-row > span:first-child {
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--c-text);
}
.page-cabinet .bar-chart-track {
    height: 12px;
    background: #e2e8f0;
    border-radius: 999px;
}
.page-cabinet .bar-chart-track .bar-fill,
.page-cabinet .bar-chart-track span {
    background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
    border-radius: 999px;
}
.page-cabinet .bar-chart-value {
    font-variant-numeric: tabular-nums;
    font-size: 13px;
    font-weight: 600;
    color: var(--c-text);
}
.page-cabinet .occupancy-trend {
    gap: 10px;
    min-height: 168px;
    padding-top: 8px;
}
.page-cabinet .occupancy-trend-col { height: 168px; }
.page-cabinet .occupancy-trend-bar {
    max-width: 40px;
    background: linear-gradient(180deg, #93c5fd 0%, #2563eb 100%);
    border-radius: 8px 8px 0 0;
    box-shadow: 0 -2px 8px rgba(37, 99, 235, 0.15);
}
.page-cabinet .occupancy-trend-col strong {
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--c-text);
}
.page-cabinet .analytics-tip {
    border-radius: var(--c-radius-lg);
    border-color: var(--c-border);
    background: linear-gradient(90deg, #eff6ff 0%, var(--c-surface) 58%);
    padding: 16px 18px;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .analytics-tip.callout-with-icon {
    align-items: flex-start;
}
.page-cabinet .analytics-tip .callout-icon {
    background: #dbeafe;
    color: var(--c-accent);
}
.page-cabinet .analytics-tip .pill { margin-bottom: 6px; }
.page-cabinet .analytics-tip p { line-height: 1.5; color: var(--c-text); margin: 0; }
.page-cabinet .analytics-export-row { margin-top: 16px; gap: 10px; }
.page-cabinet .calendar-panel-head {
    align-items: center;
}
.page-cabinet .calendar-panel-head-copy .form-section-head {
    margin-bottom: 4px;
}
.page-cabinet .calendar-panel-head-copy .muted {
    margin: 0;
    font-size: 13px;
}
.page-cabinet .calendar-panel-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
.page-cabinet .objects-section > .form-section-head,
.page-cabinet .bookings-preview .section-head-row .form-section-head {
    margin-bottom: 0;
}
.page-cabinet .hotel-rooms-panel .section-head-row .form-section-head {
    margin-bottom: 0;
}
.page-cabinet .onboarding-head .form-section-head {
    margin-bottom: 0;
}
.page-cabinet .kpi-grid--4 .kpi-card {
    position: relative;
}
.page-cabinet .data-table .row-total td {
    background: #f8fafc;
    font-weight: 700;
    border-top: 2px solid var(--c-border);
}

.page-cabinet .help-list:not(.help-list--compact) {
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    overflow: hidden;
    background: var(--c-surface);
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .help-list:not(.help-list--compact) .help-row {
    padding: 16px 20px;
    transition: background 0.12s ease;
}
.page-cabinet .help-list:not(.help-list--compact) .help-row:hover {
    background: #f8fafc;
}
.page-cabinet .help-row strong {
    font-weight: 600;
    letter-spacing: -0.01em;
    display: block;
    margin-bottom: 4px;
}
.page-cabinet .help-row .muted { font-size: 13px; line-height: 1.45; }
.page-cabinet .help-list--compact .help-row:hover { color: var(--c-accent); }
.page-cabinet .help-article-body {
    line-height: 1.55;
    color: var(--c-text);
}

.page-cabinet .onboarding-panel {
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    background: var(--c-surface);
    padding: 20px;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .onboarding-head h2 {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 0;
}
.page-cabinet .onboarding-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 16px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--c-border);
}
.page-cabinet .onboarding-head-copy {
    flex: 1;
    min-width: 0;
}
.page-cabinet .onboarding-head-copy .form-section-head {
    margin-bottom: 4px;
}
.page-cabinet .onboarding-head-copy .muted {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
}
.onboarding-progress-ring {
    --ring-size: 52px;
    width: var(--ring-size);
    height: var(--ring-size);
    border-radius: 999px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    background: conic-gradient(var(--c-accent, #2563eb) calc(var(--onboarding-progress, 0) * 1%), #e2e8f0 0);
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.14);
    position: relative;
}
.onboarding-progress-ring::before {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 999px;
    background: var(--c-surface, #fff);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.onboarding-progress-ring span {
    position: relative;
    z-index: 1;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: -0.02em;
    font-variant-numeric: tabular-nums;
    color: var(--c-text, #0f172a);
}
.page-cabinet .onboarding-list { gap: 8px; }
.page-cabinet .onboarding-step {
    padding: 14px 16px;
    border-color: var(--c-border);
    border-radius: var(--c-radius-lg);
    background: #fafbfc;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.page-cabinet .onboarding-step:hover {
    border-color: #cbd5e1;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .onboarding-step:not(.done) {
    border-left: 3px solid #bfdbfe;
    background: linear-gradient(90deg, #f8faff 0%, #fafbfc 32%);
}
.page-cabinet .onboarding-step.done {
    background: linear-gradient(90deg, #ecfdf5 0%, #fafbfc 40%);
    border-color: #a7f3d0;
    border-left: 3px solid #34d399;
}
.page-cabinet .inbox-chat-head {
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-bottom-color: var(--c-border);
    padding-block: 16px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .inbox-chat-head .booking-avatar--lg {
    width: 44px;
    height: 44px;
    font-size: 13px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .onboarding-num {
    width: 32px;
    height: 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--c-accent);
    font-size: 13px;
    border: 1px solid #bfdbfe;
}
.page-cabinet .onboarding-step.done .onboarding-num {
    background: linear-gradient(135deg, #d1fae5 0%, #a7f3d0 100%);
    color: #047857;
    border-color: #6ee7b7;
}
.page-cabinet .onboarding-step strong {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .onboarding-side-stack { gap: 16px; }
.page-cabinet .status-incident-row {
    padding: 10px 0;
    border-bottom-color: var(--c-border);
}
.page-cabinet .status-incident-row:last-of-type { border-bottom: 0; }

.page-cabinet .task-row,
.page-cabinet .review-row {
    transition: background 0.12s ease;
}
.page-cabinet .task-row:hover,
.page-cabinet .review-row:hover {
    background: #f8fafc;
}
.page-cabinet .task-row strong,
.page-cabinet .review-row strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .task-row--done { opacity: 0.65; }
.page-cabinet .migration-row--done {
    background: linear-gradient(90deg, #ecfdf5 0%, var(--c-surface-muted, #f8fafc) 45%);
    border-color: #a7f3d0;
}

.page-cabinet .review-row {
    grid-template-columns: 120px 1fr auto auto auto auto;
    gap: 14px;
    align-items: center;
}
.page-cabinet .review-channel {
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--c-text);
}
.page-cabinet .review-last { font-size: 13px; }

.page-cabinet .documents-layout { gap: 16px; }
.page-cabinet .document-row {
    padding: 14px 0;
    border-bottom-color: var(--c-border);
    transition: background 0.12s ease;
}
.page-cabinet .document-row:hover { background: #f8fafc; }
.page-cabinet .document-row.active {
    background: #eff6ff;
    box-shadow: inset 3px 0 0 var(--c-accent);
    padding-left: 12px;
    margin-left: -12px;
    padding-right: 12px;
    margin-right: -12px;
    border-radius: 8px;
}
.page-cabinet .document-row strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-cabinet .document-preview-panel {
    background: linear-gradient(180deg, #fafbfc 0%, #f8fafc 100%);
    border-color: var(--c-border);
}
.page-cabinet .document-preview-body strong {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.page-cabinet .automation-rule {
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    background: #fafbfc;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.page-cabinet .automation-rule:hover {
    border-color: #cbd5e1;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .automation-rule-title strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.page-cabinet .safety-warning-row {
    padding: 12px 0;
    border-bottom-color: var(--c-border);
    transition: background 0.12s ease;
}
.page-cabinet .safety-warning-row:hover { background: #f8fafc; }
.page-cabinet .safety-warning-row strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.callout-with-icon {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}
.callout-with-icon > div,
.callout-with-icon > .callout-body { flex: 1; min-width: 0; }
.callout-with-icon > div p,
.callout-with-icon > .callout-body p { margin: 4px 0 0; }
.callout-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 10px;
    flex-shrink: 0;
    --icon-size: 20px;
}
.page-cabinet .callout-warning .callout-icon {
    background: #fef3c7;
    color: #b45309;
}
.page-cabinet .callout-info .callout-icon {
    background: #dbeafe;
    color: var(--c-accent);
}

.inline-link-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    color: var(--c-accent);
    text-decoration: none;
    font-weight: 500;
}
.inline-link-with-icon:hover { color: #1d4ed8; }
.page-site .inline-link-with-icon { color: var(--s-accent); }

.embed-code-label {
    margin: 0 0 8px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--c-muted);
}

.page-cabinet .kpi-grid--compact { gap: 12px; }
.page-cabinet .kpi-grid--compact .kpi-card {
    padding: 16px 18px;
    min-height: 0;
}
.page-cabinet .kpi-grid--compact .kpi-card-icon {
    top: 12px;
    right: 12px;
}

.page-cabinet .activity-log li {
    padding: 8px 0;
    border-bottom: 1px solid var(--c-border);
    line-height: 1.45;
}
.page-cabinet .activity-log li:last-child { border-bottom: 0; }
.page-cabinet .activity-log--premium { gap: 0; }
.page-cabinet .activity-log-row {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--c-border);
}
.page-cabinet .activity-log-row:last-child { border-bottom: 0; }
.page-cabinet .activity-log-icon {
    width: 24px;
    height: 24px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #eff6ff;
    color: var(--c-accent);
    --icon-size: 8px;
    margin-top: 2px;
}
.page-cabinet .activity-log-body { flex: 1; min-width: 0; }
.page-cabinet .activity-log-body p { margin: 4px 0 0; }
.page-cabinet .activity-log-time { font-size: 12px; }

.page-cabinet .smart-pricing-card {
    border-color: #ddd6fe;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .billing-usage-head .form-section-head {
    margin-bottom: 0;
}
.page-cabinet .billing-usage-head {
    align-items: center;
    gap: 12px;
}

.help-row-action {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
    font-size: 14px;
    font-weight: 600;
    color: var(--muted);
    white-space: nowrap;
}
.page-cabinet .help-row-action {
    color: var(--c-muted);
}
.page-cabinet .help-row:hover .help-row-action,
.page-cabinet .help-row:hover .help-row-action .icon {
    color: var(--c-accent);
}

.featured-object-link .featured-open-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    align-self: flex-start;
    padding: 6px 10px;
    border-radius: 11px;
    border: 1px solid var(--c-border, var(--border));
    background: var(--c-surface, var(--surface));
    color: var(--c-text, var(--text));
    font-size: 14px;
    font-weight: 600;
    pointer-events: none;
}
.featured-object-link .featured-open-btn .icon {
    color: var(--c-accent, var(--accent));
}

.page-cabinet .object-settings-details summary.btn {
    width: fit-content;
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.page-cabinet .object-settings-details summary.btn::-webkit-details-marker {
    display: none;
}

.webhook-test-grid .btn code {
    color: inherit;
    background: transparent;
    padding: 0;
    font-size: 12px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.callout-body {
    flex: 1;
    min-width: 0;
}
.callout-body p:last-child {
    margin-bottom: 0;
}

.calendar-alert-body {
    flex: 1;
    min-width: 0;
}
.calendar-alert-body p {
    margin: 4px 0 0;
}

.page-cabinet .object-settings-details summary.btn-with-icon {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.page-cabinet .object-settings-details summary.btn-with-icon .icon {
    color: var(--c-accent);
}

.page-cabinet .team-invite-form { max-width: 480px; }
.page-cabinet .integrations-grid .form-card,
.page-cabinet .guest-panels-grid .form-card {
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .migration-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}
.page-cabinet .migration-list .migration-row strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.section-title-with-icon {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0 0 14px;
}
.section-title-with-icon .icon { color: var(--c-accent); }

.page-cabinet .automation-steps--numbered {
    list-style: none;
    padding: 0;
    margin: 12px 0;
    counter-reset: auto-step;
}
.page-cabinet .automation-steps--numbered > li {
    position: relative;
    padding: 12px 0 12px 36px;
    margin: 0;
    border-bottom: 1px solid var(--c-border);
    color: var(--c-text);
    line-height: 1.5;
}
.page-cabinet .automation-steps--numbered > li:last-child { border-bottom: 0; }
.page-cabinet .automation-steps--numbered > li::before {
    counter-increment: auto-step;
    content: counter(auto-step);
    position: absolute;
    left: 0;
    top: 12px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--c-accent);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.page-cabinet .automation-rule input[type=checkbox] {
    width: 18px;
    height: 18px;
    accent-color: var(--c-accent);
    flex-shrink: 0;
}
.page-cabinet .guest-message-card {
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    background: #fafbfc;
    transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.page-cabinet .guest-message-card:hover {
    border-color: #cbd5e1;
    box-shadow: var(--c-shadow-sm);
}
.page-cabinet .guest-message-head strong {
    font-weight: 600;
    letter-spacing: -0.01em;
}

.page-cabinet .safety-grid { gap: 16px; align-items: start; }
.page-cabinet .safety-warning-row {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 12px;
    align-items: start;
    padding: 14px 0;
}
.page-cabinet .safety-warning-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}
.page-cabinet .guarantee-list li {
    padding-left: 0;
    position: relative;
}
.page-cabinet .kyc-row--active td {
    background: #eff6ff;
    font-weight: 600;
}

.page-cabinet .shield-panel {
    border-radius: var(--c-radius-lg);
    overflow: hidden;
}
.page-cabinet .shield-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
}
.page-cabinet .shield-head-action { margin-left: auto; }
.page-cabinet .shield-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 8px 16px;
}
.page-cabinet .shield-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--c-muted);
}

.form-section-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--c-text);
}
.form-section-head .icon { color: var(--c-accent); }
.form-section-head--inline {
    margin: 0;
    font-size: inherit;
    font-weight: inherit;
}

.cabinet-page-head {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin-bottom: 8px;
}
.cabinet-page-head--article { margin-bottom: 16px; }
.cabinet-page-head > div { flex: 1; min-width: 0; }
.cabinet-page-head h1 { margin: 0 0 4px; }
.cabinet-page-head .muted { margin: 0; line-height: 1.45; }
.cabinet-page-head-action {
    margin-left: auto;
    align-self: center;
    flex-shrink: 0;
}
.cabinet-page-head--toolbar {
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 16px;
}
.cabinet-page-head--toolbar > .cabinet-header-actions,
.cabinet-page-head--toolbar > .pill {
    margin-left: auto;
    align-self: center;
}
.cabinet-page-head-icon--warm {
    background: linear-gradient(135deg, #fff7ed 0%, #ffedd5 100%);
    color: #ea580c;
    border-color: #fed7aa;
}
.cabinet-page-head-icon--violet {
    background: linear-gradient(135deg, #faf5ff 0%, #ede9fe 100%);
    color: #7c3aed;
    border-color: #ddd6fe;
}
.cabinet-page-head-icon {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--c-accent);
    border: 1px solid #bfdbfe;
    --icon-size: 24px;
}
.cabinet-page-head-icon--oauth {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    color: #059669;
    border-color: #a7f3d0;
}
.cabinet-page-head-icon--compact {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    --icon-size: 20px;
}

.oauth-scope--checks {
    list-style: none;
    padding: 0;
    margin: 12px 0 20px;
    gap: 0;
}
.oauth-scope--checks li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--c-border);
    color: var(--c-text);
    line-height: 1.45;
}
.oauth-scope--checks li:last-child { border-bottom: 0; }
.oauth-scope--checks .icon { color: #34d399; flex-shrink: 0; margin-top: 1px; }

.callout-icon--success {
    background: #d1fae5;
    color: #047857;
}
.page-cabinet .callout-success .callout-icon--success {
    background: #d1fae5;
    color: #047857;
}

.help-eyebrow-link {
    color: var(--c-accent);
    text-decoration: none;
    font-size: 13px;
    font-weight: 600;
}
.help-related-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin: 20px 0 0;
}
.help-list--related .help-row {
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    text-decoration: none;
    color: inherit;
}
.help-list--related .help-row .icon { color: #94a3b8; flex-shrink: 0; }
.help-list--related .help-row:hover .icon { color: var(--c-accent); }

.page-cabinet .help-article-body ol {
    counter-reset: article-step;
    list-style: none;
    padding: 0;
    margin: 0;
}
.page-cabinet .help-article-body ol > li {
    position: relative;
    padding: 14px 0 14px 36px;
    border-bottom: 1px solid var(--c-border);
    margin: 0;
    line-height: 1.55;
    color: var(--c-text);
}
.page-cabinet .help-article-body ol > li:last-child { border-bottom: 0; }
.page-cabinet .help-article-body ol > li::before {
    counter-increment: article-step;
    content: counter(article-step);
    position: absolute;
    left: 0;
    top: 14px;
    width: 24px;
    height: 24px;
    border-radius: 999px;
    background: #eff6ff;
    color: var(--c-accent);
    font-size: 12px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
}

.import-preview-note {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f8fafc;
    border: 1px solid var(--c-border);
    margin: 0;
}
.import-preview-note .icon { color: var(--c-accent); flex-shrink: 0; margin-top: 1px; }

.page-cabinet .phone-frame {
    box-shadow: 0 24px 48px rgba(15, 23, 42, 0.16), 0 8px 16px rgba(15, 23, 42, 0.08);
}
.page-cabinet .phone-kpi {
    background: #f8fafc;
    border: 1px solid var(--c-border);
    border-radius: 12px;
    padding: 10px 12px;
}
.page-cabinet .phone-kpi strong {
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.page-cabinet .phone-message-card {
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    padding: 14px;
    background: linear-gradient(180deg, #fafbfc 0%, #f8fafc 100%);
    margin-top: 12px;
    display: grid;
    gap: 6px;
}
.page-cabinet .mobile-preview-layout .form-card {
    box-shadow: var(--c-shadow-sm);
}

/* Premium elevation — cards, panels, micro-interactions */
.page-cabinet .form-card,
.page-cabinet .onboarding-panel,
.page-cabinet .calendar-panel,
.page-cabinet .hotel-room-card,
.page-cabinet .onboarding-nudge,
.page-cabinet .shield-panel {
    transition: box-shadow 0.22s ease, transform 0.22s ease, border-color 0.22s ease;
}
.page-cabinet .form-card:hover,
.page-cabinet .onboarding-panel:hover,
.page-cabinet .calendar-panel:hover {
    box-shadow: var(--c-shadow-md);
    border-color: #cbd5e1;
}
.page-cabinet .cabinet-plan-card {
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--c-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.page-cabinet .onboarding-nudge {
    box-shadow: var(--c-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .onboarding-nudge-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    color: var(--c-accent);
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .shield-panel {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.96) 0%, rgba(248, 250, 252, 0.92) 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--c-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.page-cabinet .shield-panel--ok {
    border-color: #bfdbfe;
    background:
        linear-gradient(180deg, rgba(239, 246, 255, 0.95) 0%, rgba(255, 255, 255, 0.92) 100%);
}
.page-cabinet .shield-panel--warn {
    border-color: #fde68a;
    background:
        linear-gradient(180deg, rgba(255, 251, 235, 0.96) 0%, rgba(255, 255, 255, 0.92) 100%);
}
.page-cabinet .pill-alert-ok,
.page-cabinet .pill-alert-warn {
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.12), inset 0 1px 0 rgba(255, 255, 255, 0.2);
}
.page-cabinet .callout-with-icon {
    box-shadow: var(--c-shadow-sm);
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}
.page-cabinet .cabinet-page-head-icon {
    box-shadow: 0 2px 10px rgba(37, 99, 235, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.6);
}
.page-cabinet .billing-tabs,
.page-cabinet .guest-tabs {
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.05);
    background: linear-gradient(180deg, #f8fafc 0%, #f1f5f9 100%);
}
.page-cabinet .form-card > .data-table,
.page-cabinet .form-card .table-scroll {
    border-radius: 12px;
    border: 1px solid var(--c-border);
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
}
.page-cabinet .object-row {
    box-shadow: var(--c-shadow-sm);
    background: var(--c-surface);
}
.page-cabinet .object-row:hover {
    box-shadow: var(--c-shadow-md);
    transform: translateY(-1px);
}
.page-cabinet .pill-success,
.page-cabinet .pill-info,
.page-cabinet .pill-warning {
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

@media (max-width: 900px) {
    .page-cabinet .featured-object-link:hover { transform: none; }
    .page-cabinet .kpi-card:hover { box-shadow: var(--c-shadow-sm); transform: none; }
    .page-cabinet .tariff-card:hover,
    .page-cabinet .tariff-card.featured:hover { transform: none; }
    .page-cabinet .object-row:hover { transform: none; }
    .page-cabinet .form-card:hover,
    .page-cabinet .onboarding-panel:hover,
    .page-cabinet .calendar-panel:hover { box-shadow: var(--c-shadow-sm); }
    .page-cabinet .btn-primary:hover,
    .page-cabinet .btn-secondary:hover { transform: none; }
    .page-cabinet .cabinet-shell.nav-open::before {
        backdrop-filter: blur(6px);
        -webkit-backdrop-filter: blur(6px);
        background: rgba(15, 23, 42, 0.42);
    }
    .page-cabinet .cabinet-shell.nav-open .cabinet-sidebar {
        background: rgba(255, 255, 255, 0.97);
        backdrop-filter: blur(18px);
        -webkit-backdrop-filter: blur(18px);
        box-shadow: 12px 0 40px rgba(15, 23, 42, 0.14);
    }
    .page-cabinet .data-table tbody tr:hover td { background: transparent; }
    .page-cabinet .object-picker:hover { background: var(--c-surface); }
    .page-cabinet .inbox-layout { min-height: auto; }
    .page-cabinet .inbox-sidebar { border-bottom-color: var(--c-border); }
    .page-cabinet .inbox-messages {
        padding-block: 16px;
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    }
    .page-cabinet .inbox-compose {
        padding-block: 12px;
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    }
    .page-cabinet .inbox-sidebar-head {
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    }
    .page-cabinet .chat-bubble { max-width: 92%; }
    .page-cabinet .cabinet-mobile-bar {
        padding-block: 10px;
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
        gap: 10px;
    }
    .page-cabinet .cabinet-nav-toggle {
        padding: 8px 12px;
        border-radius: 10px;
        border: 1px solid var(--c-border);
        background: var(--c-surface);
    }
    .page-cabinet .safety-warning-row {
        grid-template-columns: 1fr;
    }
    .page-cabinet .safety-warning-row .btn { justify-self: start; }
    .page-cabinet .cabinet-page-head { flex-wrap: wrap; }
    .page-cabinet .cabinet-page-head--toolbar > .cabinet-header-actions,
    .page-cabinet .cabinet-page-head--toolbar > .pill {
        margin-left: 0;
        width: 100%;
    }
    .page-cabinet .guest-tabs {
        width: 100%;
        overflow-x: auto;
        flex-wrap: nowrap;
    }
    .owner-portal-grid { grid-template-columns: 1fr; }
    .owner-portal-user { margin-left: 0; }
}

/* ================================================================
   PUBLIC SITE — marketing, auth, legal, status
   ================================================================ */
.page-site {
    --s-max: 1120px;
    --s-pad-x: clamp(24px, 4vw, 48px);
    --s-section-y: clamp(48px, 6vw, 72px);
    --s-gap: 28px;
    --s-text: #0f172a;
    --s-muted: #64748b;
    --s-border: #e2e8f0;
    --s-surface: #fff;
    --s-bg: #f8fafc;
    --s-accent: #2563eb;
    --s-accent-deep: #1d4ed8;
    --s-radius: 14px;
    --s-radius-lg: 16px;
    --s-shadow-sm: none;
    --s-shadow-md: none;
    --s-shadow-lg: none;
    font-family: "Plus Jakarta Sans", Inter, system-ui, sans-serif;
    color: var(--s-text);
    background: var(--s-bg);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.page-site .site-header {
    position: relative;
    z-index: 10;
    background: var(--s-surface);
    border-bottom: 1px solid var(--s-border);
}
.page-site .site-footer .site-bar {
    max-width: var(--s-max);
    margin: 0 auto;
}
.page-site .site-footer {
    background: var(--s-surface);
    border-top: 1px solid var(--s-border);
}
html.site-root { scroll-behavior: smooth; }
.page-site .site-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    max-width: var(--s-max);
    margin: 0 auto;
    width: 100%;
    box-sizing: border-box;
    padding-block: 18px;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}
.page-site .site-bar--footer { padding-top: 28px; padding-bottom: 28px; }
.page-site .site-footer-copy { color: var(--s-muted); font-size: 14px; }
.page-site .logo--site { font-weight: 700; font-size: 17px; letter-spacing: -0.02em; }
.page-site .logo--site .logo-mark {
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--s-accent);
}
.page-site .nav-public { gap: 24px; }
.page-site .nav-public a {
    font-size: 14px;
    font-weight: 500;
    color: var(--s-muted);
    text-decoration: none;
    transition: color 0.15s ease;
}
.page-site .nav-public a:hover { color: var(--s-text); }
.page-site .nav-footer a { font-size: 14px; color: var(--s-muted); transition: color 0.15s ease; }
.page-site .nav-footer a:hover { color: var(--s-text); }

.page-site .btn {
    border-radius: 12px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}
.page-site .btn-primary {
    background: var(--s-accent);
    color: #fff;
}
.page-site .btn-primary .icon,
.page-site .btn-primary > span:not(.icon) {
    color: #fff;
}
.page-site .btn-primary:hover {
    background: var(--s-accent-deep);
    color: #fff;
}
.page-site .btn-secondary {
    background: var(--s-surface);
    border-color: var(--s-border);
    color: var(--s-text);
}
.page-site .btn-secondary:hover {
    border-color: #cbd5e1;
    color: var(--s-text);
}
.page-site .btn-ghost { color: var(--s-muted); }
.page-site .btn-ghost:hover { color: var(--s-text); background: rgba(15, 23, 42, 0.04); }
.page-site .btn-lg { padding: 14px 24px; font-size: 15px; }

.page-site .section-label {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--s-muted);
}
.page-site .pill {
    font-weight: 600;
    letter-spacing: -0.01em;
}
.page-site .pill-success { background: #ecfdf5; color: #047857; border: 1px solid #a7f3d0; }
.page-site .pill-info { background: #eff6ff; color: #1d4ed8; border: 1px solid #bfdbfe; }
.page-site .main { min-height: calc(100vh - 140px); }
.page-site .wrap {
    max-width: var(--s-max);
    margin-inline: auto;
    width: 100%;
    box-sizing: border-box;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}
.page-site .flash {
    margin: 16px auto 0;
    max-width: var(--s-max);
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    box-sizing: border-box;
}

.page-site.page-home .main { min-height: 0; }

/* Landing hero */
.page-site .landing-hero {
    background: #fff;
    border-bottom: 1px solid var(--s-border);
    overflow: hidden;
}
.page-site .landing-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    max-width: var(--s-max);
    margin: 0 auto;
}
.page-site .landing-copy {
    padding-block: clamp(48px, 7vw, 72px) clamp(40px, 6vw, 56px);
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}
.page-site .landing-copy h1 {
    font-size: clamp(34px, 4.8vw, 46px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -0.035em;
    margin: 0;
}
.page-site .landing-eyebrow { margin: 0 0 20px; }
.page-site .landing-copy .lead {
    margin: 20px 0 0;
    font-size: 16px;
    line-height: 1.65;
    max-width: 420px;
    color: var(--s-muted);
}
.page-site .hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin: 32px 0 0; }
.page-site .hero-actions--center { justify-content: center; margin-top: 24px; }
.page-site .hero-stats {
    display: flex;
    gap: 0;
    margin-top: 44px;
    padding-top: 24px;
    border-top: 1px solid var(--s-border);
    flex-wrap: wrap;
}
.page-site .hero-stat {
    padding-right: 32px;
    margin-right: 32px;
    border-right: 1px solid var(--s-border);
}
.page-site .hero-stat:last-child {
    border-right: 0;
    margin-right: 0;
    padding-right: 0;
}
.page-site .hero-stats strong {
    display: block;
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.page-site .hero-stats span { color: var(--s-muted); font-size: 13px; margin-top: 6px; display: block; }

.page-site .landing-visual {
    border-left: 1px solid var(--s-border);
    background: #f8fafc;
    padding: 0;
    display: flex;
    flex-direction: column;
}
.page-site .landing-visual .hero-photo {
    min-height: clamp(220px, 28vw, 280px);
    border-radius: 0;
    width: 100%;
}
.page-site .landing-visual .hero-photo--blue {
    background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 45%, #93c5fd 100%);
}
.page-site .landing-visual .hero-photo::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0) 35%, rgba(255,255,255,0.25) 100%);
    pointer-events: none;
}
.page-site .hero-photo-badge {
    background: #fff;
    border: 1px solid var(--s-border);
}
.page-site .landing-visual-body {
    padding-block: 16px 20px;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}
.page-site .hero-sync { display: flex; gap: 8px; align-items: center; margin-top: 0; flex-wrap: wrap; }
.page-site .hero-sync .muted { font-size: 13px; color: var(--s-muted); }
.page-site .landing-visual .mini-calendar {
    margin-top: 16px;
    background: var(--s-surface);
    border: 1px solid var(--s-border);
    border-radius: var(--s-radius-lg);
    padding: 18px;
}
.page-site .mini-calendar--floating {
    margin-top: 16px;
    padding: 18px;
    background: var(--s-surface);
    border: 1px solid var(--s-border);
    border-radius: var(--s-radius-lg);
}
.page-site .landing-visual:hover .mini-calendar--floating {
    transform: none;
}
.page-site .mini-calendar--floating .mini-calendar-title {
    font-size: 14px;
    font-weight: 700;
    letter-spacing: -0.02em;
    margin-bottom: 12px;
}

.page-site .platform-marquee {
    overflow: hidden;
    padding: 20px 0;
    border-top: 1px solid var(--s-border);
    border-bottom: 1px solid var(--s-border);
    background: var(--s-surface);
}
.page-site .platform-marquee-track {
    display: flex;
    width: max-content;
    animation: platform-marquee 42s linear infinite;
}
.page-site .platform-marquee-group {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 12px;
    flex-shrink: 0;
}
@keyframes platform-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
.page-site .platform-marquee-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--s-text);
    padding: 8px 14px;
    border-radius: 999px;
    border: 1px solid var(--s-border);
    background: #fff;
    white-space: nowrap;
}
.page-site .platform-marquee-item .benefit-swatch { width: 8px; height: 8px; }

.page-site .benefits { padding-block: var(--s-section-y); }
.page-site .benefits .section-label { margin: 0 0 20px; }
.page-site .benefits-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    margin-top: 16px;
}
.page-site .benefits-grid .benefit-item,
.page-site .benefits-grid article {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.page-site .benefits-grid h3 { margin: 0; font-size: 16px; font-weight: 600; letter-spacing: -0.02em; }
.page-site .benefit-head { margin-bottom: 10px; gap: 8px; align-items: center; }
.page-site .benefits-grid p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--s-muted); }

.page-site .testimonial {
    padding-block: var(--s-section-y);
    background: #f8fafc;
    border-top: 1px solid var(--s-border);
    border-bottom: 1px solid var(--s-border);
}
.page-site .testimonial-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 32px;
    align-items: center;
}
.page-site .testimonial-copy .section-label { margin: 0 0 10px; }
.page-site .testimonial-text {
    margin: 0;
    font-size: 17px;
    line-height: 1.55;
    max-width: 480px;
    color: var(--s-text);
}
.page-site .testimonial-author {
    margin: 12px 0 0;
    font-size: 14px;
    color: var(--s-muted);
}
.page-site .testimonial .kpi-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.page-site .testimonial .kpi-card {
    padding: 18px 20px;
    min-height: 0;
    border-radius: var(--s-radius);
    border: 1px solid var(--s-border);
    background: #fff;
}
.page-site .testimonial .kpi-card--accent {
    border-left: 3px solid var(--s-accent);
}

.page-site .tariffs { padding-block: var(--s-section-y); }
.page-site .tariffs .section-label { margin: 0 0 10px; }
.page-site .tariffs h2 { margin: 0; font-size: clamp(22px, 3vw, 28px); font-weight: 700; letter-spacing: -0.03em; }
.page-site .tariffs-lead { margin: 10px 0 24px; font-size: 15px; line-height: 1.55; max-width: 560px; color: var(--s-muted); }
.page-site .landing-annual-toggle { margin-bottom: 24px; }
.page-site .landing-annual-toggle .toggle-row { font-size: 14px; color: var(--s-muted); }
.page-site .tariff-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
.page-site .tariff-card,
.page-site .auth-card,
.page-site .form-card { box-shadow: none; }
.page-site .tariff-card {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding: 26px;
    border-radius: var(--s-radius-lg);
    height: 100%;
    background: var(--s-surface);
    border: 1px solid var(--s-border);
    transition: border-color 0.15s ease;
}
.page-site .tariff-card:hover {
    border-color: #cbd5e1;
}
.page-site .tariff-card > .pill { margin-bottom: 10px; width: fit-content; }
.page-site .tariff-card.featured {
    border: 2px solid var(--s-accent);
    padding: 25px;
    background: #fff;
}
.page-site .tariff-card.featured:hover {
    border-color: var(--s-accent-deep);
}
.page-site .tariff-card h3 { margin: 0 0 8px; font-size: 18px; font-weight: 700; letter-spacing: -0.02em; }
.page-site .tariff-meta {
    margin: 0 0 4px;
    font-size: 13px;
    color: var(--s-muted);
}
.page-site .tariff-features--checks,
.page-site .tariff-card .tariff-features--checks {
    list-style: none;
    padding: 0;
    display: grid;
    gap: 8px;
    margin: 14px 0 18px;
    flex: 1;
}
.page-site .tariff-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    color: var(--s-muted);
    line-height: 1.45;
    font-size: 14px;
}
.page-site .tariff-feature-item .icon {
    color: #34d399;
    flex-shrink: 0;
    margin-top: 2px;
}
.page-site .tariff-card ul {
    display: grid;
    gap: 8px;
    margin: 14px 0 18px;
    padding-left: 18px;
    line-height: 1.5;
    color: var(--s-muted);
    flex: 1;
}
.page-site .tariff-card ul > li { margin: 0; }
.page-site .tariff-card .btn { margin-top: auto; }
.page-site .tariff-price {
    margin: 10px 0 0;
    font-size: 32px;
    font-weight: 700;
    letter-spacing: -0.03em;
    color: var(--s-text);
    font-variant-numeric: tabular-nums;
}
.page-site .tariff-price .tariff-price-period { font-size: 15px; font-weight: 500; color: var(--s-muted); }
.page-site .tariff-annual-note { margin: 4px 0 0; font-size: 13px; color: var(--s-muted); }

.page-site .landing-cta {
    padding-block: clamp(48px, 6vw, 64px) clamp(56px, 7vw, 72px);
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    text-align: center;
    border-top: 1px solid var(--s-border);
    background: #fff;
}
.page-site .landing-cta h2 {
    margin: 0;
    font-size: clamp(20px, 3vw, 26px);
    font-weight: 700;
    letter-spacing: -0.03em;
    max-width: 640px;
    margin-inline: auto;
}
.page-site .landing-cta .muted { margin: 10px auto 0; font-size: 15px; max-width: 520px; color: var(--s-muted); }

/* Auth */
.page-site.page-auth .main {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-block: 48px;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    min-height: calc(100vh - 140px);
    background: var(--s-bg);
}
.page-site .auth-shell { width: 100%; max-width: 440px; }
.page-site .auth-card {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 32px;
    border-radius: var(--s-radius-lg);
    border: 1px solid var(--s-border);
    background: #fff;
}
.page-site .auth-card h1 { margin: 0; font-size: 24px; font-weight: 700; letter-spacing: -0.03em; }
.page-site .auth-head {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 12px;
}
.page-site .auth-head > div { display: grid; gap: 6px; }
.page-site .auth-head-icon {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eff6ff;
    color: var(--s-accent);
    border: 1px solid #bfdbfe;
    --icon-size: 24px;
}
.page-site .auth-head-icon--register {
    background: #ecfdf5;
    color: #059669;
    border-color: #a7f3d0;
}
.page-site .auth-head-icon--owner {
    background: #f3e8ff;
    color: #9333ea;
    border-color: #d8b4fe;
}
.page-site .auth-card > .muted:not(.auth-switch):not(.auth-team-hint),
.page-site .auth-card .auth-head .muted {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    color: var(--s-muted);
}
.page-site .auth-card .form-stack { gap: 16px; margin-top: 6px; }
.page-site .auth-card .form-stack label span { margin-bottom: 6px; font-size: 13px; font-weight: 600; color: var(--s-text); }
.page-site .auth-card .checkbox-row { align-items: flex-start; }
.page-site .auth-card .checkbox-row span { margin-bottom: 0; color: var(--s-text); line-height: 1.45; }
.page-site .auth-card .form-error { margin: -8px 0 0; }
.page-site .auth-switch,
.page-site .auth-team-hint { margin: 0; font-size: 14px; line-height: 1.45; color: var(--s-muted); }
.page-site input[type=text],
.page-site input[type=email],
.page-site input[type=password],
.page-site input[type=number] {
    border-color: var(--s-border);
    border-radius: 12px;
    padding: 12px 14px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.page-site input:focus {
    border-color: var(--s-accent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);
    outline: none;
}

/* Legal, status, 404 */
.page-site .legal-page {
    padding-block: var(--s-section-y) 64px;
    max-width: 720px;
}
.page-site .legal-page h1 {
    margin: 8px 0 16px;
    font-size: clamp(28px, 4vw, 34px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
}
.page-site .legal-page-head h1 { margin: 0 0 6px; }
.page-site .legal-page > .muted { margin: 0 0 24px; font-size: 15px; line-height: 1.55; color: var(--s-muted); }
.page-site .legal-page .section-label { margin: 0; }
.page-site .legal-page-head {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 24px;
}
.page-site .legal-page-head > div { flex: 1; min-width: 0; }
.page-site .legal-page-head h1 {
    margin: 0 0 6px;
    font-size: clamp(28px, 4vw, 34px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
}
.page-site .legal-page-head .muted {
    margin: 0;
    font-size: 15px;
    line-height: 1.55;
    color: var(--s-muted);
}
.page-site .legal-page-icon {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    color: var(--s-accent);
    border: 1px solid #bfdbfe;
    --icon-size: 28px;
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.14), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-site .legal-page-icon--status {
    background: linear-gradient(135deg, #ecfdf5 0%, #d1fae5 100%);
    color: #059669;
    border-color: #a7f3d0;
}
.page-site .status-incident-banner.callout-with-icon {
    padding: 16px 18px;
    margin-top: 0;
}
.page-site .status-incident-banner .callout-icon {
    background: #fef3c7;
    color: #b45309;
}
.page-site .legal-body {
    color: var(--s-muted);
    line-height: 1.6;
    font-size: 15px;
    padding: 28px;
    border-radius: var(--s-radius-xl);
    border: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.page-site .legal-body > p { margin: 0 0 16px; }
.page-site .legal-body h2 { color: var(--s-text); font-size: 18px; font-weight: 700; margin: 32px 0 12px; letter-spacing: -0.02em; }
.page-site .legal-section-head {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--s-text);
    font-size: 18px;
    font-weight: 700;
    margin: 32px 0 12px;
    letter-spacing: -0.02em;
}
.page-site .legal-section-head .icon {
    color: var(--s-accent);
    flex-shrink: 0;
}
.page-site .legal-page .form-card > .form-section-head:first-child {
    margin-top: 0;
}
.page-site .legal-body ul { padding-left: 20px; display: grid; gap: 8px; margin: 0 0 16px; }
.page-site .legal-body li { margin: 0; }

.page-site .status-list {
    display: grid;
    gap: 0;
    margin-top: 24px;
    border: 1px solid rgba(226, 232, 240, 0.85);
    border-radius: var(--s-radius-lg);
    overflow: hidden;
    background: rgba(255, 255, 255, 0.92);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.page-site .status-row {
    display: grid;
    grid-template-columns: auto 1fr 2fr auto;
    gap: 14px;
    align-items: center;
    padding: 14px 18px;
    border-bottom: 1px solid var(--s-border);
    background: transparent;
    font-size: 14px;
    transition: background 0.15s ease;
    min-width: 0;
}
.page-site .status-row .muted {
    min-width: 0;
    line-height: 1.45;
}
.page-site .status-row:hover { background: #f8fafc; }
.page-site .status-row strong { font-weight: 600; letter-spacing: -0.01em; }
.page-site .status-row:last-child { border-bottom: 0; }
.page-site .status-incident-banner {
    margin-top: 24px;
    border-radius: var(--s-radius-lg);
    border: 1px solid #fde68a;
    background: linear-gradient(90deg, rgba(255, 251, 235, 0.96) 0%, rgba(255, 255, 255, 0.92) 50%);
    box-shadow: var(--s-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-site .status-incident-banner p { margin: 6px 0 0; }
.page-site .legal-page .form-card {
    margin-top: 28px;
    padding: 22px;
    border-radius: var(--s-radius-lg);
    border: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.page-site .legal-page .form-card h2 { margin: 0 0 14px; font-size: 18px; font-weight: 700; }

.page-site .error-page {
    max-width: 520px;
    margin: 80px auto;
    padding-block: 40px;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    text-align: center;
    border-radius: var(--s-radius-xl);
    border: 1px solid rgba(226, 232, 240, 0.85);
    background: rgba(255, 255, 255, 0.9);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.75);
}
.page-site .error-page h1 { margin: 8px 0 12px; font-size: 32px; font-weight: 700; letter-spacing: -0.03em; }
.page-site .error-page .section-label { margin: 0; }
.page-site .error-page-actions { justify-content: center; margin-top: 24px; }

.page-site .callout {
    padding: 16px 18px;
    border-radius: var(--s-radius-lg);
    border: 1px solid transparent;
}

/* Public site — mobile nav, auth split, trust strip */
.site-nav-toggle {
    display: none;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border-radius: 11px;
    border: 1px solid var(--s-border);
    background: var(--s-surface);
    color: var(--s-text);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    flex-shrink: 0;
}
.site-nav-drawer {
    display: none;
    position: fixed;
    inset: 0;
    top: var(--site-header-h, 64px);
    z-index: 95;
    background: rgba(15, 23, 42, 0.35);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.site-shell.nav-open .site-nav-drawer { display: block; }
.site-nav-drawer-panel {
    background: rgba(255, 255, 255, 0.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom: 1px solid var(--s-border);
    box-shadow: var(--s-shadow-lg);
    padding: 16px max(var(--s-pad-x), env(safe-area-inset-left, 0px)) 20px max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    max-height: calc(100vh - var(--site-header-h, 64px));
    overflow-y: auto;
}
.site-nav-drawer-nav {
    display: grid;
    gap: 4px;
    margin-bottom: 16px;
}
.site-nav-drawer-link {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 12px;
    color: var(--s-text);
    text-decoration: none;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: background 0.12s ease, color 0.12s ease;
}
.site-nav-drawer-link .icon { color: var(--s-accent); flex-shrink: 0; }
.site-nav-drawer-link:hover,
.site-nav-drawer-link:focus-visible {
    background: #f8fafc;
    color: var(--s-accent);
}
.site-nav-drawer-actions {
    display: grid;
    gap: 10px;
    padding-top: 16px;
    border-top: 1px solid var(--s-border);
}

.page-site.page-auth-register .main {
    align-items: flex-start;
    padding-block: clamp(32px, 5vw, 56px);
}
.page-site .auth-shell--split {
    display: grid;
    grid-template-columns: minmax(0, 440px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 32px);
    width: 100%;
    max-width: 920px;
    align-items: start;
}
.page-site .auth-perks {
    padding: clamp(24px, 3vw, 32px);
    border-radius: var(--s-radius-xl);
    border: 1px solid rgba(226, 232, 240, 0.85);
    background:
        linear-gradient(180deg, rgba(239, 246, 255, 0.72) 0%, rgba(255, 255, 255, 0.92) 42%),
        linear-gradient(135deg, rgba(255, 255, 255, 0.95) 0%, rgba(248, 250, 252, 0.9) 100%);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: var(--s-shadow-md), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.page-site .auth-perks-title {
    margin: 8px 0 10px;
    font-size: clamp(22px, 3vw, 26px);
    font-weight: 700;
    letter-spacing: -0.03em;
    line-height: 1.15;
}
.page-site .auth-perks-lead {
    margin: 0 0 20px;
    font-size: 14px;
    line-height: 1.55;
}
.page-site .auth-perk-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 12px;
}
.page-site .auth-perk-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(226, 232, 240, 0.75);
    background: rgba(255, 255, 255, 0.82);
    box-shadow: var(--s-shadow-sm);
}
.page-site .auth-perk-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    color: var(--s-accent);
    --icon-size: 18px;
}
.page-site .auth-perk-item strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    margin-bottom: 2px;
}
.page-site .auth-perk-item .muted {
    display: block;
    font-size: 13px;
    line-height: 1.45;
}
.page-site .auth-perks-foot {
    margin: 18px 0 0;
    font-size: 13px;
    line-height: 1.45;
}

.page-site .auth-trust-strip {
    list-style: none;
    padding: 14px 0 0;
    margin: 6px 0 0;
    border-top: 1px solid var(--s-border);
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    justify-content: center;
}
.page-site .auth-trust-strip li {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--s-muted);
}
.page-site .auth-trust-strip .icon { color: var(--s-accent); flex-shrink: 0; }
.page-site .auth-trust-strip--compact { justify-content: flex-start; }

.page-site a { color: var(--s-accent); }
.page-site a:hover { color: var(--s-accent-deep); }

@media (max-width: 900px) {
    .page-site .landing-hero-grid,
    .page-site .benefits-grid,
    .page-site .testimonial-grid,
    .page-site .tariff-grid { grid-template-columns: 1fr; }
    .page-site .landing-visual { border-left: 0; border-top: 1px solid var(--s-border); }
    .page-site .nav-public { display: none; }
    .page-site .site-nav-toggle { display: inline-flex; }
    .page-site .site-bar-actions .site-bar-login { display: none; }
    .page-site .site-bar {
        --site-header-h: 64px;
        display: grid;
        grid-template-columns: auto 1fr auto;
        grid-template-areas: "toggle logo actions";
        align-items: center;
    }
    .page-site .site-nav-toggle { grid-area: toggle; }
    .page-site .logo--site { grid-area: logo; justify-self: start; }
    .page-site .site-bar-actions { grid-area: actions; justify-self: end; }
    .page-site .auth-shell--split {
        grid-template-columns: 1fr;
        max-width: 440px;
    }
    .page-site .auth-perks { order: -1; }
    .page-site .status-row { grid-template-columns: 1fr 1fr; }
    .page-site .status-list .status-row {
        grid-template-columns: auto 1fr;
        grid-template-rows: auto auto auto;
        gap: 6px 12px;
        align-items: start;
    }
    .page-site .status-list .status-row > .pill { grid-row: 1; }
    .page-site .status-list .status-row > strong {
        grid-column: 2;
        grid-row: 1;
        align-self: center;
    }
    .page-site .status-list .status-row > .muted:nth-child(3) {
        grid-column: 1 / -1;
        grid-row: 2;
    }
    .page-site .status-list .status-row > .muted:nth-child(4) {
        grid-column: 1 / -1;
        grid-row: 3;
        font-size: 12px;
    }
    .page-site .legal-body { padding: 22px 20px; }
    .page-site .testimonial .kpi-grid { grid-template-columns: 1fr; }
    .page-site .site-bar { gap: 12px; max-width: none; }
    .page-site .hero-stat {
        padding-right: 20px;
        margin-right: 20px;
        margin-bottom: 12px;
    }
    .page-site .hero-stat:nth-child(2) {
        border-right: 0;
        margin-right: 0;
        padding-right: 0;
    }
    .page-site .hero-stat:last-child {
        width: 100%;
        border-right: 0;
        margin-right: 0;
        padding-right: 0;
        padding-top: 12px;
        border-top: 1px solid var(--s-border);
    }
    .page-site .benefits-grid article { padding: 18px; }
    .page-site .tariff-card:hover { transform: none; }
    .page-site .benefits-grid article:hover { transform: none; }
    .page-site .landing-visual:hover .mini-calendar--floating,
    .page-site .mini-calendar--floating { transform: none; }
    .page-site .platform-marquee-track { animation: none; flex-wrap: wrap; width: auto; justify-content: center; }
    .page-site .platform-marquee { mask-image: none; -webkit-mask-image: none; padding: 18px var(--s-pad-x); }
    .page-site .platform-marquee-group[aria-hidden="true"] { display: none; }
    .page-site .platform-marquee-group { flex-wrap: wrap; justify-content: center; padding-right: 0; }
    .page-site .testimonial-quote { padding: 22px 20px 20px; }
    .page-site .testimonial-quote-mark { font-size: 56px; top: 4px; left: 12px; }
    .page-site .testimonial .kpi-card:hover { transform: none; }
}

/* Content & Data surfaces — Help, Analytics, Platforms */
.page-cabinet .help-index-label {
    margin: 0 0 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--c-muted);
}
.page-cabinet .help-list:not(.help-list--compact) {
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--c-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, 0.8);
}
.page-cabinet .help-list:not(.help-list--compact) .help-row {
    align-items: flex-start;
    gap: 14px;
}
.page-cabinet .help-list:not(.help-list--compact) .help-row:hover {
    background: linear-gradient(90deg, #f8faff 0%, #fff 42%);
    box-shadow: inset 3px 0 0 var(--c-accent);
}
.page-cabinet .help-row-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    color: var(--c-accent);
    --icon-size: 18px;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .help-row > div:first-of-type { flex: 1; min-width: 0; }
.page-cabinet .help-article-meta {
    margin: -8px 0 18px;
    font-size: 13px;
}
.page-cabinet .help-article-body.form-card {
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--c-shadow-md);
}
.page-cabinet .help-article-body ol > li::before {
    background: linear-gradient(135deg, #eff6ff 0%, #dbeafe 100%);
    border: 1px solid #bfdbfe;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}
.page-cabinet .help-support-card {
    margin-top: 24px;
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
}
.page-cabinet .help-support-card .data-table {
    border-radius: 12px;
    border: 1px solid var(--c-border);
    overflow: hidden;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.03);
}

.page-cabinet .analytics-grid .form-card {
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
}
.page-cabinet .analytics-grid .form-card > .form-section-head:first-child {
    margin-block-start: calc(-1 * var(--c-pad, 20px));
    margin-block-end: 4px;
    margin-inline: 0;
    padding: 14px var(--c-pad, 20px);
    border-bottom: 1px solid var(--c-border);
    background: linear-gradient(90deg, rgba(239, 246, 255, 0.55) 0%, transparent 72%);
    border-radius: 14px 14px 0 0;
}
.page-cabinet .analytics-grid .form-card > .data-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
}
.page-cabinet .bar-chart-track {
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.06);
}
.page-cabinet .bar-chart-row:nth-child(1) .bar-fill { background: linear-gradient(90deg, #60a5fa 0%, #2563eb 100%); }
.page-cabinet .bar-chart-row:nth-child(2) .bar-fill { background: linear-gradient(90deg, #fb923c 0%, #ea580c 100%); }
.page-cabinet .bar-chart-row:nth-child(3) .bar-fill { background: linear-gradient(90deg, #4ade80 0%, #16a34a 100%); }
.page-cabinet .bar-chart-row:nth-child(4) .bar-fill { background: linear-gradient(90deg, #c084fc 0%, #9333ea 100%); }
.page-cabinet .bar-chart-row:nth-child(5) .bar-fill { background: linear-gradient(90deg, #f472b6 0%, #db2777 100%); }
.page-cabinet .bar-chart-row:nth-child(6) .bar-fill { background: linear-gradient(90deg, #2dd4bf 0%, #0d9488 100%); }
.page-cabinet .analytics-pnl.form-card {
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--c-shadow-md);
}
.page-cabinet .analytics-pnl .data-table tbody tr:not(.row-total):hover td {
    background: #f8fafc;
}
.page-cabinet .analytics-empty-experiment {
    margin-top: 4px;
}
.page-cabinet .analytics-empty-experiment .empty-state {
    margin: 0;
    border: 1px dashed #cbd5e1;
    border-radius: var(--c-radius-lg);
    background: linear-gradient(180deg, #f8fafc 0%, #fff 100%);
}

.page-cabinet .form-stack .platform-row-form.platform-row-card {
    padding: 18px 20px;
    margin-bottom: 12px;
    border: 1px solid var(--c-border);
    border-radius: var(--c-radius-lg);
    background: linear-gradient(180deg, #fff 0%, #fafbfc 100%);
    box-shadow: var(--c-shadow-sm);
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    min-width: 0;
    max-width: 100%;
}
.page-cabinet .form-stack .platform-row-form.platform-row-card:last-of-type {
    margin-bottom: 0;
}
.page-cabinet .platform-row-form.platform-row-card:hover {
    border-color: #cbd5e1;
    box-shadow: var(--c-shadow-md);
}
.page-cabinet .platform-row-head .benefit-swatch {
    width: 12px;
    height: 12px;
    border-radius: 999px;
    flex-shrink: 0;
    margin-top: 4px;
    box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.85), 0 1px 4px rgba(15, 23, 42, 0.12);
}

@media (prefers-reduced-motion: reduce) {
    .page-site .platform-marquee-track { animation: none; }
    .page-cabinet .kpi-card,
    .page-cabinet .tariff-card,
    .page-cabinet .featured-object-link,
    .page-cabinet .object-row,
    .page-cabinet .form-card,
    .page-site .tariff-card,
    .page-site .benefits-grid article,
    .page-site .testimonial .kpi-card { transition: none; }
}

/* ================================================================
   MOBILE LAYOUT — cascade repair
   The first @media (max-width: 900px) block sits above many base
   grid rules; later desktop columns were winning on small screens.
   ================================================================ */
@media (max-width: 900px) {
    .page-cabinet,
    .page-site {
        overflow-x: clip;
    }

    .page-cabinet .cabinet-shell,
    .page-cabinet .cabinet-main,
    .page-cabinet .cabinet-content,
    .page-cabinet .cabinet-page {
        min-width: 0;
        max-width: 100%;
    }

    .hotel-rooms-grid,
    .rooms-grid,
    .featured-object-link,
    .dashboard-split,
    .object-layout,
    .object-panels,
    .documents-layout,
    .analytics-grid,
    .guest-preview-grid,
    .guest-panels-grid,
    .mobile-preview-layout,
    .onboarding-page-grid,
    .integrations-grid,
    .owner-portal-grid,
    .kyc-upload-grid,
    .feature-grid,
    .tariff-grid,
    .form-row,
    .settings-grid {
        grid-template-columns: 1fr;
    }

    .object-header {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .shield-grid {
        grid-template-columns: 1fr 1fr;
    }

    .kpi-grid,
    .kpi-grid--4 {
        grid-template-columns: 1fr 1fr;
    }

    .hotel-room-card,
    .featured-object-link,
    .tariff-card,
    .kpi-card,
    .object-row,
    .cabinet-page > * {
        min-width: 0;
    }

    .hotel-room-head .muted {
        white-space: normal;
    }

    .page-cabinet .cabinet-page-head--toolbar {
        display: grid;
        grid-template-columns: auto 1fr;
        grid-template-areas:
            "icon copy"
            "actions actions";
        gap: 12px 14px;
        align-items: start;
    }
    .page-cabinet .cabinet-page-head--toolbar > .cabinet-page-head-icon {
        grid-area: icon;
    }
    .page-cabinet .cabinet-page-head--toolbar > div:not(.cabinet-header-actions) {
        grid-area: copy;
        min-width: 0;
    }
    .page-cabinet .cabinet-page-head--toolbar .cabinet-header-actions {
        grid-area: actions;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
        width: 100%;
        margin-left: 0;
    }

    .page-cabinet .cabinet-page-head--toolbar .cabinet-header-actions .btn {
        min-width: 0;
    }

    .page-cabinet .cabinet-page-head--toolbar .cabinet-header-actions .btn-primary {
        grid-column: 1 / -1;
    }

    .page-site .landing-hero-grid,
    .page-site .landing-visual,
    .page-site .landing-copy {
        min-width: 0;
        max-width: 100%;
    }

    .page-site .hero-stats {
        width: 100%;
    }

    .page-site .platform-marquee {
        overflow: hidden;
        mask-image: none;
        -webkit-mask-image: none;
        padding: 18px var(--s-pad-x);
    }
    .page-site .platform-marquee-track {
        display: flex;
        flex-wrap: wrap;
        width: 100%;
        max-width: 100%;
        justify-content: center;
        animation: none;
        gap: 8px;
    }
    .page-site .platform-marquee-group {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 8px;
        padding-right: 0;
        width: 100%;
        max-width: 100%;
    }
    .page-site .platform-marquee-group[aria-hidden="true"] {
        display: none;
    }

    /* Page gutter — align alerts, content, flush layouts on mobile */
    .page-cabinet .cabinet-content:not(.cabinet-content--flush),
    .page-cabinet .cabinet-content--flush .object-main,
    .page-cabinet .cabinet-content--flush .inbox-empty-page {
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    }

    .page-cabinet .cabinet-alert,
    .page-cabinet .cabinet-mobile-bar {
        padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
    }

    /* Public site — page gutter repair */
    .page-site .wrap,
    .page-site .flash,
    .page-site .site-bar,
    .page-site .landing-copy,
    .page-site .landing-visual-body,
    .page-site .landing-cta,
    .page-site.page-auth .main,
    .page-site .error-page {
        padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
    }

    .page-site .error-page {
        margin-block: 48px 64px;
        margin-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px));
        max-width: calc(100% - 2 * max(var(--s-pad-x), env(safe-area-inset-left, 0px)));
    }

    .page-owner-portal .owner-portal-grid {
        grid-template-columns: 1fr;
    }

    .page-owner-portal .owner-portal-bar {
        gap: 10px;
    }

    .page-owner-portal .owner-portal-user {
        margin-left: 0;
    }

    .page-cabinet .platform-row-card,
    .page-cabinet .platform-row-form.platform-row-card {
        grid-template-columns: 1fr;
    }

    .page-cabinet .platform-row-form.platform-row-card .checkbox-row {
        justify-self: start;
    }
}

@media (max-width: 480px) {
    .kpi-grid,
    .kpi-grid--4,
    .page-cabinet .kpi-grid,
    .page-cabinet .kpi-grid--4,
    .page-site .testimonial .kpi-grid {
        grid-template-columns: 1fr;
    }

    .shield-grid,
    .shield-panel--compact .shield-grid {
        grid-template-columns: 1fr;
    }

    .page-cabinet .cabinet-page-head--toolbar .cabinet-header-actions {
        grid-template-columns: 1fr;
    }

    .page-cabinet .platform-row-card,
    .page-cabinet .platform-row-form.platform-row-card {
        grid-template-columns: 1fr;
    }

    .page-cabinet .platform-row-form.platform-row-card .checkbox-row {
        justify-self: start;
    }
}

/* ================================================================
   LAYOUT CONTRACT v2 — width, gutters, grid overflow (wins cascade)
   ================================================================ */
.page-site,
.page-cabinet,
.page-guest-portal,
.page-owner-portal {
    overflow-x: clip;
}

.page-site .wrap,
.page-site .flash,
.page-site .site-bar,
.page-site .landing-copy,
.page-site .landing-visual-body,
.page-site .landing-cta,
.page-site.page-auth .main,
.page-site .error-page,
.page-site .legal-page,
.page-site .platform-marquee {
    box-sizing: border-box;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}

.page-site .site-bar {
    width: 100%;
}

.page-cabinet .cabinet-content:not(.cabinet-content--flush),
.page-cabinet .cabinet-alert,
.page-cabinet .cabinet-mobile-bar {
    box-sizing: border-box;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}

.page-guest-portal .guest-portal-page,
.page-owner-portal .wrap {
    box-sizing: border-box;
    padding-inline: max(var(--s-pad-x), env(safe-area-inset-left, 0px)) max(var(--s-pad-x), env(safe-area-inset-right, 0px));
}

.page-site .main,
.page-site .main > section,
.page-site .landing-hero,
.page-site .platform-marquee,
.page-site .benefits,
.page-site .testimonial,
.page-site .tariffs,
.page-site .landing-cta {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.page-site .wrap {
    width: 100%;
    max-width: var(--s-max);
    margin-inline: auto;
    box-sizing: border-box;
}

.page-cabinet .cabinet-shell,
.page-cabinet .cabinet-main,
.page-cabinet .cabinet-content,
.page-cabinet .cabinet-page,
.page-cabinet .inbox-layout,
.page-cabinet .inbox-sidebar,
.page-cabinet .inbox-chat,
.page-cabinet .object-layout,
.page-cabinet .object-sidebar,
.page-cabinet .object-main {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.page-cabinet .cabinet-content--flush {
    padding: 0;
}

.page-cabinet .cabinet-content--flush .object-main,
.page-cabinet .cabinet-content--flush .inbox-empty-page,
.page-cabinet .inbox-sidebar-head,
.page-cabinet .inbox-chat-head,
.page-cabinet .inbox-messages,
.page-cabinet .inbox-compose,
.page-cabinet .inbox-thread-list,
.page-cabinet .inbox-translation-hint {
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}

.page-cabinet .object-sidebar {
    padding-block: 20px;
    padding-inline: max(var(--c-gutter-x), env(safe-area-inset-left, 0px)) max(var(--c-gutter-x), env(safe-area-inset-right, 0px));
}

.page-cabinet .form-card,
.page-cabinet .analytics-pnl,
.page-cabinet .analytics-grid > *,
.page-cabinet .kpi-grid > *,
.page-cabinet .form-stack input,
.page-cabinet .form-stack textarea,
.page-cabinet .form-stack select,
.page-cabinet .form-card input,
.page-cabinet .form-card textarea,
.page-cabinet .form-card select {
    max-width: 100%;
    min-width: 0;
}

.page-cabinet .form-card .data-table,
.page-cabinet .analytics-grid .form-card > .data-table {
    width: 100%;
    max-width: 100%;
    table-layout: fixed;
}

@media (max-width: 900px) {
    .page-cabinet .inbox-layout,
    .page-cabinet .object-layout {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .page-cabinet .inbox-sidebar,
    .page-cabinet .inbox-chat,
    .page-cabinet .object-sidebar,
    .page-cabinet .object-main {
        width: 100%;
        max-width: 100%;
    }
}

/* ================================================================
   DESIGN RESET — canvas concept (roomb-concept.canvas.tsx)
   Premium = typography, spacing, flat surfaces — NOT elevation gimmicks
   ================================================================ */
.page-site,
.page-cabinet,
.page-guest-portal,
.page-owner-portal {
    --s-shadow-sm: none;
    --s-shadow-md: none;
    --s-shadow-lg: none;
    --c-shadow-sm: none;
    --c-shadow-md: none;
    --c-shadow-lg: none;
    --c-glow-accent: none;
}

.page-site {
    background: var(--s-bg);
}

.page-cabinet {
    background: var(--c-bg);
}

.page-guest-portal {
    background: #f8fafc;
}

.page-owner-portal {
    background: #f8fafc;
}

/* Static chrome — concept header is a plain bar, not sticky glass */
.page-site .site-header,
.page-owner-portal .owner-portal-header,
.page-cabinet .cabinet-mobile-bar,
.object-sidebar {
    position: relative;
    top: auto;
    z-index: auto;
}

.page-site .site-header,
.page-owner-portal .owner-portal-header,
.page-cabinet .cabinet-alert,
.page-cabinet .cabinet-mobile-bar,
.page-cabinet .inbox-chat-head {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #fff;
    box-shadow: none;
}

.page-site .site-header {
    border-bottom: 1px solid var(--s-border);
}

.page-owner-portal .owner-portal-header {
    border-bottom: 1px solid var(--s-border);
}

/* Flat brand mark — solid accent, no gradient glow */
.page-site .logo--site .logo-mark,
.page-cabinet .logo-mark,
.page-owner-portal .owner-portal-brand .logo-mark,
.logo-mark {
    background: var(--s-accent, #2563eb);
    box-shadow: none;
}

/* Flat buttons — no lift, no colored shadow stacks */
.page-site .btn,
.page-cabinet .btn,
.page-owner-portal .btn {
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.page-site .btn-primary,
.page-cabinet .btn-primary {
    background: var(--s-accent, #2563eb);
    box-shadow: none;
}

.page-site .btn-primary:hover,
.page-cabinet .btn-primary:hover {
    background: var(--s-accent-deep, #1d4ed8);
    box-shadow: none;
    transform: none;
}

.page-site .btn-secondary,
.page-cabinet .btn-secondary {
    box-shadow: none;
}

.page-site .btn-secondary:hover,
.page-cabinet .btn-secondary:hover {
    box-shadow: none;
    transform: none;
}

/* Cabinet sidebar — flat panel like AppSidebar in concept */
.page-cabinet .cabinet-sidebar {
    background: #f8fafc;
    box-shadow: none;
}

.page-cabinet .cabinet-sidebar::before {
    display: none;
}

/* KPI / cards — border-only surfaces (see KpiCard in concept) */
.page-cabinet .kpi-card,
.page-cabinet .form-card,
.page-cabinet .calendar-panel,
.page-cabinet .onboarding-panel,
.page-cabinet .shield-panel,
.page-cabinet .hotel-room-card,
.page-cabinet .booking-widget,
.page-cabinet .tariff-card,
.page-cabinet .cabinet-plan-card,
.page-cabinet .object-card,
.page-site .benefits-grid article,
.page-site .testimonial-quote,
.page-site .tariff-card,
.page-site .auth-card,
.page-site .legal-page,
.page-site .status-card,
.page-owner-portal .owner-portal-card,
.page-guest-portal .callout-centered,
.page-guest-portal .phone-portal-block {
    box-shadow: none;
    background: #fff;
}

.page-cabinet .kpi-card {
    transition: border-color 0.15s ease;
}

.page-cabinet .kpi-card:hover {
    box-shadow: none;
    transform: none;
}

.page-cabinet .kpi-card--accent,
.page-owner-portal .owner-portal-kpis .kpi-card--featured {
    border-left: 3px solid var(--c-accent, #2563eb);
    background: #fff;
    box-shadow: none;
}

.page-cabinet .kpi-card-icon,
.page-cabinet .kpi-card--accent .kpi-card-icon,
.page-cabinet .kpi-card-icon--success {
    background: #f8fafc;
    box-shadow: none;
}

.page-cabinet .kpi-card--accent .kpi-card-icon {
    background: #eff6ff;
}

.page-cabinet .kpi-card-icon--success {
    background: #ecfdf5;
}

.page-cabinet .tariff-card.featured,
.page-site .tariff-card.featured {
    border: 2px solid var(--s-accent, #2563eb);
    background: #fff;
    transform: none;
    box-shadow: none;
}

.page-cabinet .tariff-card.featured:hover,
.page-site .tariff-card.featured:hover,
.page-cabinet .tariff-card:not(.featured):hover,
.page-site .tariff-card:hover {
    box-shadow: none;
    transform: none;
}

.page-cabinet .featured-object-link {
    border: 2px solid var(--c-accent, #2563eb);
    background: #fff;
    box-shadow: none;
}

.page-cabinet .featured-object-link:hover {
    box-shadow: none;
    transform: none;
}

.page-owner-portal .owner-portal-card {
    background: #fff;
    box-shadow: none;
}

/* Landing — flat sections like LandingMock */
.page-site .landing-hero {
    background: #fff;
}

.page-site .landing-visual {
    background: #f8fafc;
}

.page-site .landing-visual .mini-calendar,
.page-site .mini-calendar--floating {
    background: #fff;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
    transform: none;
}

.page-site .landing-visual:hover .mini-calendar--floating {
    box-shadow: none;
    transform: none;
}

.page-site .hero-photo-badge {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #fff;
    border: 1px solid var(--s-border);
    box-shadow: none;
}

.page-site .benefits-grid article {
    background: #fff;
    border: 1px solid var(--s-border);
}

.page-site .benefits-grid article:hover {
    box-shadow: none;
    transform: none;
}

.page-site .testimonial {
    background: #f8fafc;
}

.page-site .platform-marquee-item {
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    background: #fff;
    box-shadow: none;
}

.page-site .platform-marquee {
    background: var(--s-surface);
    mask-image: none;
    -webkit-mask-image: none;
}

/* Inbox / onboarding — no glass heads */
.page-cabinet .onboarding-step:not(.done) {
    background: #fafbfc;
}

.page-cabinet .onboarding-step.done {
    background: #fafbfc;
}

.page-cabinet .onboarding-step:hover {
    box-shadow: none;
}

.page-cabinet .onboarding-num {
    background: #eff6ff;
}

.page-cabinet .onboarding-step.done .onboarding-num {
    background: #ecfdf5;
}

.page-cabinet .onboarding-nudge {
    background: #eff6ff;
}

.page-cabinet .cabinet-plan-card--over {
    background: #fffbeb;
}

.page-cabinet .document-preview-panel {
    background: #fafbfc;
}

.page-cabinet .migration-row--done {
    background: #fafbfc;
}

.page-cabinet .guest-preview-grid .form-card,
.page-cabinet .guest-panels-grid .form-card {
    box-shadow: none;
}

.page-guest-portal .guest-portal-head-icon,
.page-guest-portal .guest-portal-brand {
    box-shadow: none;
}

.page-guest-portal .guest-portal-frame {
    box-shadow: none;
}

/* Hover lift removal on interactive rows/cards */
.page-cabinet .calendar-panel:hover,
.page-cabinet .object-row:hover,
.page-cabinet .platform-row-card:hover {
    box-shadow: none;
    transform: none;
}
