/*  Hotel interface, original green paint with previously accepted typography, layout and readable text/status colours. Load after the original application stylesheet.
   Restore original green surfaces and accents; retain readability and the complete mobile brand header.  */
:root {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  --muted-2: oklch(43% .018 65);
  --green: oklch(43% .085 150);
  --green-soft: oklch(95% .023 150);
  --blue: oklch(44% .071 244);
  --blue-soft: oklch(95% .020 244);
  --orange: oklch(46% .098 65);
  --orange-soft: oklch(95% .033 78);
  --purple: oklch(46% .070 310);
  --purple-soft: oklch(95% .017 310);
  --red: oklch(46% .132 28);
  --red-soft: oklch(96% .022 28);
  --ui-radius: 8px;
}
body { color: var(--ink); }
button, input, select, textarea, table { font-family: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible,
[tabindex]:focus-visible { outline: 3px solid var(--teal); outline-offset: 3px; }
button:active:not(:disabled) { filter: brightness(.94); }
button:disabled { opacity: .55; }
.sidebar { border-right: 1px solid var(--line); padding-inline: 16px; }
.brand { height: auto; min-height: 100px; flex-shrink: 0; padding-block: 18px; border-bottom: 1px solid var(--line); gap: 12px; }
.brand-mark { border-radius: 6px; }
.brand strong { font-size: 1rem; letter-spacing: .03em; }
.brand small { font-size: .8125rem; line-height: 1.5; }
.sidebar-close { color: var(--ink) !important; }
.property-switcher-wrap { margin-block: 20px 16px; }
.property-switcher { padding: 12px 10px; gap: 10px; border-radius: var(--ui-radius); }
.property-switcher strong { font-size: .9375rem; }
.property-switcher img, .property-image-placeholder { border-radius: 5px; }
.property-image-placeholder { color: var(--teal); }
.property-menu > button:hover, .property-menu > button.active { color: var(--teal); }
.property-menu strong { color: var(--ink); font-size: .875rem; }
.nav-group { margin-top: 20px; }
.nav-group-label { font-size: .8125rem; padding: 0 12px 8px; letter-spacing: .05em; }
.nav-group button, .sidebar-footer > button { min-height: 44px; height: auto; padding: 10px 12px; margin-bottom: 3px; border-radius: 6px; }
.nav-group button.active { font-weight: 700; }
.nav-group button svg { flex-shrink: 0; stroke-width: 1.7; }
.operator { min-height: 56px; padding: 10px 7px; border-radius: 6px; }
.avatar { color: var(--teal-dark); }
.topbar { min-height: 74px; backdrop-filter: none; padding-inline: 32px; }
.topbar-left, .topbar-right { min-width: 0; }
.business-date, .icon-button { color: var(--muted-2); }
.icon-button:hover { color: var(--ink); }
.page-content { max-width: 1600px; padding: 32px 32px 56px; }
.page-heading { margin-bottom: 28px; gap: 16px; }
.page-heading h1 { font-size: 1.75rem; line-height: 1.4; font-weight: 650; letter-spacing: .03em; color: var(--ink); }
.page-heading p { max-width: 70ch; font-size: .9375rem; line-height: 1.7; color: var(--muted); margin-top: 8px; }
.page-content :is(small, em) { font-size: .875rem; line-height: 1.6; }
.page-content :is(input, select, textarea) { font-size: 1rem; }
.page-content table :is(th, td) { font-size: 1rem; line-height: 1.6; }
.page-content table :is(th, td) :is(span, strong) { font-size: 1rem; line-height: 1.6; }
.page-content table :is(th, td) small, .page-content table .badge { font-size: .875rem; }
.page-content table th { padding-block: 14px; }
.page-content table td { padding-block: 16px; }
.control-kpis { gap: 16px; margin-bottom: 24px; }
.control-kpis > article, .control-kpis > button { min-height: 116px; padding: 18px; border-radius: var(--ui-radius); }
.control-kpis strong { font-size: 1.5rem; font-variant-numeric: tabular-nums; }
.control-kpis small, .control-kpis em { font-size: .875rem; }
.control-toolbar { margin-bottom: 20px; }
.control-brief-layout { gap: 20px; grid-template-columns: minmax(0, 1fr) 320px; }
.control-period-actions label span { font-size: .875rem; }
.control-period-actions select { height: 44px; font-size: .9375rem; color: var(--ink); }
.panel { border-radius: var(--ui-radius); overflow: clip; }
.section-header { min-height: 74px; padding: 18px 22px; gap: 16px; }
.section-header h2 { color: var(--ink); font-size: 1.1875rem; line-height: 1.45; font-weight: 650; }
.section-header p { color: var(--muted); font-size: .875rem; line-height: 1.65; }
.button, .page-content .button { min-height: 40px; padding: 8px 15px; border-radius: 6px; font-size: .875rem; line-height: 1.4; transition: background-color 180ms cubic-bezier(.22,1,.36,1), color 180ms cubic-bezier(.22,1,.36,1); }
.button-primary { color: var(--surface); }
.button-secondary { color: var(--ink); }
.button-ghost { color: var(--teal); }
.button-danger { color: var(--surface); }
.button-sm { min-height: 36px; font-size: .875rem; padding: 6px 12px; }
.button-icon { width: 40px; min-height: 40px; padding: 0; }
.badge, .page-content .badge { border-radius: 4px; padding: 4px 8px; font-size: .875rem; }
.sync-chip { font-size: .875rem; }
.control-priority-list > button { padding: 16px; }
.control-priority-list strong { font-size: .9375rem; white-space: normal; }
.control-priority-list small { font-size: .875rem; line-height: 1.65; }
.daily-operations-page .daily-hotel-strip strong { font-size: .875rem; white-space: normal; line-height: 1.55; }
.daily-operations-page .daily-hotel-strip small { font-size: .875rem; }
.daily-operations-page .daily-alert-panel li { font-size: .9375rem; }
.daily-target-fields .field > span { font-size: .875rem; }
.recharts-cartesian-axis .recharts-text { font-size: 14px; }
.badge-gray { color: var(--muted-2); }
.badge-green { color: var(--green); }
.badge-blue { color: var(--blue); }
.badge-orange { color: var(--orange); }
.badge-purple { color: var(--purple); }
.badge-red { color: var(--red); }
.badge-white { color: var(--teal-dark); }
.field { color: var(--ink); gap: 8px; }
.field input, .field select, .field textarea, .select-control select { min-height: 44px; padding: 10px 12px; color: var(--ink); border-radius: 6px; }
.tabs button, .tab-bar button, .tower-tabs button, .control-tabs button { min-height: 44px; color: var(--muted-2); }
.tabs button.active, .tab-bar button.active, .tower-tabs button.active, .control-tabs button.active { color: var(--teal-dark); }
table { font-variant-numeric: tabular-nums; }
thead th { color: var(--muted-2); font-weight: 600; }
tbody td, tbody th { color: var(--ink); }
.data-table th, .data-table td { padding-block: 15px; }
.huazhu-city-table tbody th span { font-size: 16px; font-weight: 600; line-height: 1.5; }
.empty-state { color: var(--muted); padding-block: 48px; }
.empty-state strong { color: var(--ink); font-size: 1rem; }
.empty-state p { max-width: 65ch; font-size: .9375rem; line-height: 1.75; }
.empty-icon { color: var(--teal); }
.compact-kpis strong, .report-kpis article > strong, .investment-kpi strong, .cost-control-kpis strong { color: var(--ink); font-variant-numeric: tabular-nums; font-weight: 650; }
.modal { border-radius: 10px; }
.modal-header { padding: 20px 24px; }
.modal-body { padding: 24px; }
.modal-footer { padding: 16px 24px; }
.login-brand-wordmark { color: var(--ink); }
.login-workspace { padding: 48px clamp(28px, 5vw, 80px); }
.login-heading h1 { color: var(--ink); font-size: 1.75rem; font-weight: 650; }
.login-heading > span { color: var(--teal); }
.login-heading p { color: var(--muted); font-size: .9375rem; line-height: 1.65; }
.login-field { color: var(--ink); font-size: .9375rem; gap: 9px; }
.login-field > div { height: 50px; }
.login-field input { color: var(--ink); font-size: 1rem; }
.login-submit { height: 48px; color: var(--surface); font-size: 1rem; }
.login-property-caption { border-left: 0; }
.login-property-caption small, .login-property-caption span { color: oklch(92% .015 80); }
.login-hotel-tile img { filter: saturate(.75); transition: none; }
.login-hotel-tile:hover img { transform: none; }
.login-error, .login-notice { border-left: 0; border: 1px solid currentColor; border-radius: 6px; }
.login-error { color: var(--red); }
.login-notice { color: var(--teal-dark); }
.login-consent, .login-secondary-action, .login-legal-links { color: var(--muted-2); font-size: .875rem; }
.session-loading { color: var(--ink); }
.page-module-loading { color: var(--muted); }
.legal-shell { color: var(--ink); }
.legal-title-band span, .legal-title-band p { color: oklch(94% .012 80); }
.legal-document-nav a.active { border-left: 0; color: var(--teal-dark); }
.legal-article h2 { color: var(--ink); }
.legal-article p, .legal-article li { color: var(--muted-2); }
.ownership-platform-band, .task-card, .huazhu-source-bar, .matter-card-detail { border-left-width: 1px; }
.data-import-message, .security-notice, .security-feedback, .priority-data-note,
.matter-card-warning, .matter-tracking-notice, .matter-tracking-error { border: 1px solid currentColor; border-radius: 6px; font-size: .875rem; }
@media (max-width: 1100px) {
  .topbar { padding-inline: 24px; }
  .page-content { padding: 26px 24px 48px; }
  .control-brief-layout { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .sidebar { padding-inline: 14px; }
  .topbar { min-height: 64px; padding-inline: 16px; gap: 8px; }
  .topbar-left, .topbar-right { gap: 8px; }
  .topbar .icon-button, .sidebar-close { width: 44px; height: 44px; }
  .page-content { padding: 24px 16px 40px; }
  .page-heading { margin-bottom: 24px; }
  .page-heading h1 { font-size: 1.5rem; }
  .page-heading p { font-size: .9375rem; }
  .control-kpis { gap: 10px; }
  .control-kpis > article, .control-kpis > button { padding: 12px; min-height: 132px; flex-direction: column; gap: 8px; }
  .control-kpis strong { font-size: 1.375rem; white-space: normal; }
  .section-header { padding: 16px; min-height: 68px; }
  .section-header h2 { font-size: 1.125rem; }
  .section-header p { font-size: .875rem; }
  .button, .page-content .button, .button-sm, .icon-button { min-height: 44px; }
  .button-icon, .icon-button { width: 44px; }
  .field input, .field select, .field textarea, .select-control select { font-size: 1rem; }
  .login-brand { padding-inline: 20px; }
  .login-workspace { padding: 32px 24px 44px; }
  .modal-body { padding: 16px; }
  .modal-header, .modal-footer { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
