/* MY-PMS Design System — Wave B
   Дизайн перенесён из визуальной концепции (живой командный пункт):
   тёмный сайдбар, светлые карточки, скругления, статусные цвета,
   бары-брони в шахматке. Фирменный знак (медь) сохранён. */

@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600;700&display=swap");

:root {
  /* Ink & surfaces */
  --ink: #14161A;
  --ink-2: #2A2E35;
  --mute: #5E6570;
  --mute-2: #8B919A;
  --bg: #F4F5F6;
  --card: #FFFFFF;
  --line: #E4E6E9;
  --line-2: #D6D9DE;

  /* Accent — emerald (действие) */
  --ac: var(--cu);                   /* copper — единый акцент (лендинг + приложение) */
  --ac-hover: var(--mp-copper-hover);
  --ac-soft: var(--mp-copper-soft);

  /* Status */
  --teal: #0D9488;       --teal-soft: #E6F5F3;
  --emerald: #059669;    --emerald-soft: #E7F6EF;
  --amber: #B45309;      --amber-soft: #FBF0DA;
  --rose: #E11D48;       --rose-soft: #FCE8EE;
  --slate: #64748B;      --slate-soft: #EEF1F4;
  --olive: #5A6A4A;
  --danger: #DC2626;     --danger-soft: #FEECEC;
  --warn: #B45309;

  /* Booking status (шахматка) */
  --st-confirmed: var(--teal);
  --st-inhouse: var(--emerald);
  --st-inquiry: #9AA6B5;
  --st-block: var(--ink);

  /* Type */
  --font-sans: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;
  --font-mono: "IBM Plex Mono", ui-monospace, monospace;
  --fs-xs: 11px;
  --fs-sm: 13px;
  --fs-md: 15px;
  --fs-lg: 18px;
  --fs-xl: 22px;
  --fs-2xl: 28px;

  /* Space & shape */
  --sp-1: 4px; --sp-2: 8px; --sp-3: 12px; --sp-4: 16px;
  --sp-5: 24px; --sp-6: 32px;
  --r-sm: 0;
  --r-md: 0;
  --r-lg: 0;
  --shadow-1: 0 1px 2px rgba(20, 22, 26, 0.05);
  --shadow-2: 0 4px 16px rgba(20, 22, 26, 0.07);
  --side-w: 236px;
  --side-bg: #14161A;
  --side-fg: #B9BEC7;
  --shell: 1280px;

  /* Legacy aliases */
  --mp-ink: var(--ink);
  --mp-ink-2: var(--ink-2);
  --mp-mute: var(--mute);
  --mp-mute-2: var(--mute-2);
  --mp-paper: var(--bg);
  --mp-panel: var(--card);
  --mp-line: var(--line);
  --mp-line-strong: var(--ink);
  --mp-copper: #B85A2A;
  --mp-copper-hover: #9A4A22;
  --mp-copper-soft: #F6E7DD;
  --mp-ok: var(--emerald);
  --mp-ok-soft: var(--emerald-soft);
  --mp-warn: var(--warn);
  --mp-warn-soft: var(--amber-soft);
  --mp-danger: var(--danger);
  --mp-danger-soft: var(--danger-soft);
  --mp-info: #475569;
  --mp-info-soft: var(--slate-soft);

  /* Brand copper — единый токен бренда (лендинг + приложение) */
  --cu: #B85A2A;
  --cu-soft: rgba(184, 90, 42, 0.14);
}

/* ——— Reset-ish ——— */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  font-size: var(--fs-md);
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
}
h1, h2, h3 { line-height: 1.25; margin: 0 0 var(--sp-3); }
h1 { font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
h2 { font-size: var(--fs-lg); font-weight: 700; }
h3 { font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--ink-2); }
p { margin: 0 0 var(--sp-3); }
a { color: var(--ac); text-decoration: none; }
a:hover { color: var(--ac-hover); text-decoration: underline; }
.eyebrow {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: var(--fs-xs);
  font-weight: 700;
  color: var(--ac);
  margin: 0 0 var(--sp-2);
}
.lead { max-width: 38rem; color: var(--mute); font-size: 16px; margin: 0 0 var(--sp-5); }
.muted { color: var(--mute); }
.mono { font-family: var(--font-mono); }
code {
  font-family: var(--font-mono);
  font-size: 12px;
  background: #F6F7F8;
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 2px 6px;
}
.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;
}
::selection { background: var(--ac-soft); }
:focus-visible { outline: 2px solid var(--ac); outline-offset: 2px; border-radius: 0; }

/* ——— App shell ——— */
.app { display: flex; min-height: 100vh; }

.side {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--side-w);
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
  padding: var(--sp-4) var(--sp-3);
  background: var(--side-bg);
  color: var(--side-fg);
  overflow-y: auto;
  z-index: 40;
}
.side .mark {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 4px 8px 14px;
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.12em;
  font-size: 14px;
  text-decoration: none !important;
}
.mark-logo rect { fill: var(--mp-copper); }
.mark-logo path { fill: #fff; }

.side-search {
  position: relative;
  margin: 0 0 var(--sp-2);
}
.side-search input {
  width: 100%;
  background: rgba(255, 255, 255, 0.07);
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  color: #fff;
  padding: 8px 10px 8px 30px;
  font-size: var(--fs-sm);
}
.side-search input::placeholder { color: #7E848E; }
.side-search input:focus { border-color: var(--ac); outline: none; box-shadow: 0 0 0 3px rgba(184, 90, 42, 0.25); }
.ss-ico {
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  stroke: #7E848E;
  fill: none;
  stroke-width: 1.8;
  stroke-linecap: round;
  pointer-events: none;
}

.side-nav { display: flex; flex-direction: column; gap: 2px; }
.side-nav a {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 0;
  color: #B9BEC7;
  font-size: var(--fs-sm);
  font-weight: 500;
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s;
}
.side-nav a svg {
  width: 17px;
  height: 17px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.side-nav a:hover { background: rgba(255, 255, 255, 0.06); color: #fff; }
.side-nav a[aria-current="page"] {
  background: rgba(184, 90, 42, 0.24);
  color: #F0B48A;
  box-shadow: inset 3px 0 0 var(--cu);
}
.side-more a { padding: 6px 10px; font-size: 12px; color: #8B919A; }
.side-more a:hover { color: #fff; }
.side-more a[aria-current="page"] { color: #F0B48A; }

/* Wave C: живые бейджи сайдбара */
.side-badge {
  margin-left: auto;
  min-width: 20px;
  padding: 1px 7px;
  border-radius: 0;
  text-align: center;
  font-size: 10.5px;
  font-weight: 700;
  line-height: 1.5;
  font-variant-numeric: tabular-nums;
}
.side-badge.b-amber { background: #F0C46B; color: #53300A; }
.side-badge.b-rose { background: #E96F8B; color: #4C0619; }
.side-badge.b-emerald { background: rgba(110, 231, 183, 0.28); color: #A7F3D0; }

.side-sep {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: var(--sp-3) 8px var(--sp-1);
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #6B7280;
}
.side-sep::after { content: ""; flex: 1; height: 1px; background: rgba(255, 255, 255, 0.09); }

.app-main {
  flex: 1 1 auto;
  min-width: 0;
  margin-left: var(--side-w);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: var(--sp-3);
  min-height: 56px;
  padding: 8px var(--sp-5);
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
}
.burger {
  display: none;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: #fff;
  color: var(--ink);
  cursor: pointer;
}
.burger svg { fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; }
.topbar-mark { display: none; }
.topbar .top-search { flex: 1 1 auto; max-width: 460px; }
.top-right { margin-left: auto; display: flex; align-items: center; gap: var(--sp-3); }

/* ——— Legacy top header (публичные страницы) ——— */
.top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  min-height: 58px;
  padding: 8px var(--sp-5);
  background: #fff;
  border-bottom: 1px solid var(--line);
  position: sticky;
  top: 0;
  z-index: 30;
}
.top .mark {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--ink);
  text-decoration: none !important;
}
.nav-wrap { display: flex; align-items: center; gap: var(--sp-3); }
.nav-primary { display: flex; align-items: center; gap: 4px; }
.nav-primary a {
  padding: 7px 12px;
  border-radius: 0;
  color: var(--ink-2);
  font-weight: 600;
  font-size: var(--fs-sm);
  text-decoration: none !important;
}
.nav-primary a:hover { background: var(--slate-soft); color: var(--ink); }
.nav-primary a[aria-current="page"] { background: var(--ac-soft); color: var(--ac-hover); }
.top-search input {
  width: 100%;
  min-width: 220px;
  padding: 8px 28px 8px 0;
  border: 0;
  border-radius: 0;
  font-size: var(--fs-sm);
  background: transparent;
}
.top-search input::placeholder { color: var(--mute-2); }
.top-search input:focus { outline: none; box-shadow: none; }

/* ——— Shell & footer ——— */
.shell {
  width: 100%;
  max-width: var(--shell);
  margin: 0 auto;
  padding: var(--sp-5);
  flex: 1 1 auto;
}
.foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-2);
  padding: var(--sp-4) var(--sp-5);
  border-top: 1px solid var(--line);
  color: var(--mute-2);
  font-size: var(--fs-sm);
  background: transparent;
}
.foot a { color: var(--mute); }
.foot a:hover { color: var(--ink); }

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--ac);
  color: #fff;
  padding: 8px 12px;
  border-radius: 0;
  z-index: 100;
  text-decoration: none !important;
}
.skip-link:focus { left: 0; top: 0; }

/* ——— Messages & alerts ——— */
.msgs { list-style: none; padding: 0; margin: 0 0 var(--sp-4); }
.msgs li {
  padding: 12px 16px;
  border: 1px solid var(--ac);
  background: var(--ac-soft);
  border-radius: 0;
  color: #065F46;
  font-weight: 500;
  box-shadow: var(--shadow-1);
}
.alert {
  padding: 12px 16px;
  border: 1px solid var(--amber);
  background: var(--amber-soft);
  border-radius: 0;
  color: var(--amber);
}

/* ——— Buttons ——— */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid transparent;
  border-radius: 0;
  background: var(--ac);
  color: #fff !important;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 600;
  cursor: pointer;
  text-decoration: none !important;
  transition: background 0.15s, border-color 0.15s, box-shadow 0.15s;
}
.btn:hover { background: var(--ac-hover); box-shadow: var(--shadow-1); }
.btn:disabled, .btn[aria-disabled="true"] {
  opacity: 0.45;
  cursor: not-allowed;
  box-shadow: none;
}
.btn.ghost {
  background: #fff;
  border-color: var(--line-2);
  color: var(--ink) !important;
}
.btn.ghost:hover { border-color: var(--ink-2); background: #FAFAFB; box-shadow: none; }
.btn.sm { min-height: 30px; padding: 0 12px; font-size: var(--fs-xs); border-radius: 0; }
.btn.danger {
  background: var(--rose);
  color: #fff !important;
}
.btn.danger:hover { background: #BE123C; box-shadow: none; }
.btn-block { width: 100%; }

/* ——— Surfaces ——— */
.tile, .card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: var(--sp-4);
  box-shadow: var(--shadow-1);
}
.tile p, .card p { margin: 0; color: var(--mute); font-size: var(--fs-sm); }
.tile.link { transition: border-color 0.15s, box-shadow 0.15s; }
.tile.link:hover { border-color: var(--ac); box-shadow: var(--shadow-2); text-decoration: none !important; }
.tile.link:hover h3 { color: var(--ac-hover); }
.tile-warn { border-color: #F5C6CE; background: linear-gradient(0deg, #FFF7F8, #FFF7F8); }
.tile-warn h3 { color: var(--rose); }
.empty-state {
  padding: var(--sp-5);
  text-align: center;
  border: 1.5px dashed var(--line-2);
  border-radius: 0;
  background: #FAFAFB;
  color: var(--mute);
}

/* ——— KPI ——— */
.kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(128px, 1fr));
  gap: var(--sp-2);
  margin: 0 0 var(--sp-4);
}
.kpi {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 12px 14px;
  box-shadow: var(--shadow-1);
}
.kpi-n {
  display: block;
  font-family: var(--font-mono);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.kpi-l {
  display: block;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--mute);
  margin-top: 3px;
}
.kpi-v { display: block; font-family: var(--font-mono); font-size: var(--fs-lg); font-weight: 600; }
.kpi-warn { border-color: #F0D9A8; background: var(--amber-soft); }
.kpi-warn .kpi-n { color: var(--warn); }
.kpi-n a { color: inherit; text-decoration: none; }
.kpi-n a:hover { color: var(--ac-hover); }
.kpi-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
  gap: var(--sp-2);
  margin: var(--sp-3) 0 var(--sp-4);
}

/* ——— Page header bar & layout helpers ——— */
.bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-3);
  margin: 0 0 var(--sp-4);
}
.bar h1 { margin: 0; font-size: 20px; }
/* Wave DS: медная нить бренда — квадрат-маркер у заголовка раздела */
.bar h1::before {
  content: "";
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 10px;
  background: var(--cu);
}
.row { display: flex; flex-wrap: wrap; gap: var(--sp-2); align-items: center; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-4); align-items: start; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-3); align-items: start; }
.h2-tight { margin: var(--sp-5) 0 var(--sp-3); }


/* ——— Wave V: сегмент-вкладки (медная активная вкладка) ——— */
.seg {
  display: inline-flex;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: var(--card);
  overflow: hidden;
  box-shadow: var(--shadow-1);
}
.seg a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 16px;
  font-size: var(--fs-sm);
  font-weight: 600;
  color: var(--mute);
  text-decoration: none !important;
  border-left: 1px solid var(--line);
}
.seg a:first-child { border-left: 0; }
.seg a:hover { color: var(--ink); background: #FAFAFB; }
.seg a.on { background: var(--cu); color: #fff; }
:root[data-theme="dark"] .seg a:hover { background: #20242B; }
:root[data-theme="dark"] .seg a.on { color: #14161A; }

/* ——— Wave DS: единый ритм и утилиты (замена inline-хаков) ——— */
.mt-1 { margin-top: var(--sp-1); }
.mt-2 { margin-top: var(--sp-2); }
.mt-3 { margin-top: var(--sp-3); }
.mt-4 { margin-top: var(--sp-4); }
.mt-5 { margin-top: var(--sp-5); }
.mb-2 { margin-bottom: var(--sp-2); }
.mb-3 { margin-bottom: var(--sp-3); }
.mb-4 { margin-bottom: var(--sp-4); }
.mb-5 { margin-bottom: var(--sp-5); }
.mr-2 { margin-right: var(--sp-2); }
.inline-form { display: inline; }
.fs-sm { font-size: var(--fs-sm); }
.brk { word-break: break-all; }
.txt-ok { color: var(--mp-ok); font-weight: 600; }
.txt-bad { color: var(--mp-danger); font-weight: 600; }
.alert-ok { border-color: var(--mp-ok); background: var(--mp-ok-soft); }
.w-60 { width: 60px; }
.w-70 { width: 70px; }
.w-100 { width: 100px; }
.w-110 { width: 110px; }
.w-120 { width: 120px; }
.w-130 { width: 130px; }
.minw-110 { min-width: 110px; }
.minw-120 { min-width: 120px; }
.minw-130 { min-width: 130px; }
.minw-180 { min-width: 180px; }
.check { display: inline-flex; flex-direction: row; align-items: center; gap: 8px; font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ink); }
.check input[type="checkbox"] { width: auto; min-height: 0; height: 15px; margin: 0; accent-color: var(--ac); }
.form-grid--bare { margin-top: var(--sp-3); border: 0; padding: 0; background: transparent; }
.unit-pick { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; margin-top: 6px; }

/* Периоды (7/14/30) и chip-toggle */
.bar .row > a:not(.btn) {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 14px;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: #fff;
  color: var(--ink-2);
  font-weight: 600;
  font-size: var(--fs-sm);
  text-decoration: none !important;
  transition: background 0.15s, color 0.15s, border-color 0.15s;
}
.bar .row > a:not(.btn):hover { border-color: var(--ink-2); color: var(--ink); }
.bar .row > a:not(.btn).on {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff !important;
}

/* ——— Tables ——— */
.table {
  width: 100%;
  border-collapse: collapse;
  font-size: var(--fs-sm);
  background: var(--card);
}
.table th, .table td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid var(--line);
  vertical-align: middle;
}
.table th {
  font-size: 10.5px;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--mute);
  font-weight: 700;
  background: #FAFAFB;
}
.table tbody tr:hover td { background: #F7FAF8; }
.table tr:last-child td { border-bottom: 0; }
.row-hot td { background: var(--amber-soft) !important; }

/* ——— Forms ——— */
input, select, textarea {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--line-2);
  border-radius: 0;
  padding: 8px 10px;
  min-height: 38px;
}
textarea { min-height: 74px; width: 100%; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: var(--ac);
  outline: none;
  box-shadow: 0 0 0 3px rgba(184, 90, 42, 0.16);
}
label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--mute);
}
.form { display: flex; flex-direction: column; gap: var(--sp-3); }
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: var(--sp-3);
  align-items: end;
}
.form-grid .full { grid-column: 1 / -1; }
.form-grid .btn { width: auto; }
.form-grid label { display: flex; }
.filters { display: flex; flex-wrap: wrap; gap: var(--sp-2); margin: 0 0 var(--sp-4); }
.filters a {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: #fff;
  color: var(--ink-2);
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none !important;
}
.filters a:hover { border-color: var(--ink-2); }
.filters a.on { background: var(--ink); border-color: var(--ink); color: #fff !important; }
.check {
  flex-direction: row;
  align-items: center;
  gap: 6px;
  text-transform: none;
  letter-spacing: 0;
  font-size: var(--fs-sm);
  color: var(--ink);
  font-weight: 500;
}
.check input { width: auto; min-height: auto; }
.check-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--sp-2);
  margin: var(--sp-3) 0;
}
.prop-select { margin-bottom: var(--sp-4); }
.prop-select select { width: auto; min-width: 240px; }
.code-area {
  width: 100%;
  font-family: var(--font-mono);
  font-size: 12px;
  min-height: 96px;
  padding: 10px 12px;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: #fff;
  resize: vertical;
}

/* ——— Tags / chips ——— */
.tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 10px;
  border-radius: 0;
  border: 1px solid var(--line-2);
  background: var(--slate-soft);
  color: var(--ink-2);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}
.tag.ok { background: var(--emerald-soft); border-color: #A7DCC4; color: #065F46; }
.tag.warn { background: var(--amber-soft); border-color: #E8CE9A; color: var(--warn); }
.tag.danger { background: var(--rose-soft); border-color: #F3B7C6; color: #9F1239; }
.tag.st-checked_in { background: var(--emerald-soft); border-color: #A7DCC4; color: #065F46; }
.tag.st-confirmed { background: var(--teal-soft); border-color: #9AD9D3; color: #0F6A62; }
.tag.st-inquiry { background: var(--slate-soft); border-color: var(--line-2); color: var(--slate); }
.tag.st-cancelled, .tag.st-no_show { background: var(--rose-soft); border-color: #F3B7C6; color: #9F1239; }
.tag.st-checked_out { background: var(--slate-soft); border-color: var(--line-2); color: var(--mute); }
.tag.st-pay-paid, .tag.st-pay-completed { background: var(--emerald-soft); border-color: #A7DCC4; color: #065F46; }
.tag.st-pay-pending { background: var(--amber-soft); border-color: #E8CE9A; color: var(--warn); }
.tag.st-pay-failed { background: var(--danger-soft); border-color: #F5B8B8; color: #991B1B; }

.money-debt { color: var(--rose); font-weight: 700; font-family: var(--font-mono); font-variant-numeric: tabular-nums; }
.money-ok { color: var(--emerald); font-family: var(--font-mono); font-variant-numeric: tabular-nums; }

ul.plain { list-style: none; padding: 0; margin: 0; }
ul.plain li { padding: 8px 0; border-bottom: 1px solid var(--line); font-size: var(--fs-sm); }
ul.plain li:last-child { border-bottom: 0; }

/* ——— Внимание (dashboard) ——— */
.att { border-left: 3px solid var(--amber); }
.att-list { list-style: none; margin: 0; padding: 0; }
.att-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  font-size: var(--fs-sm);
}
.att-item:last-child { border-bottom: 0; }
.att-tag {
  flex: 0 0 auto;
  min-width: 96px;
  text-align: center;
  padding: 3px 10px;
  border-radius: 0;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.att-danger .att-tag { background: var(--rose-soft); color: #9F1239; }
.att-warn .att-tag { background: var(--amber-soft); color: var(--warn); }
.att-info .att-tag { background: var(--slate-soft); color: var(--slate); }
.att-text { flex: 1 1 auto; min-width: 0; }
.att-act { flex: 0 0 auto; font-weight: 600; white-space: nowrap; }
.all-clear {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #065F46;
  font-weight: 600;
  border: 1px solid #A7DCC4;
  background: var(--emerald-soft);
  border-radius: 0;
  padding: 12px 16px;
  margin: 0 0 var(--sp-4);
}

/* ——— Уборка: чипы ——— */
.hk-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 12px;
  border-radius: 0;
  font-weight: 600;
  font-size: var(--fs-sm);
  white-space: nowrap;
}
.hk-danger { background: var(--rose-soft); color: #9F1239; }
.hk-ok { background: var(--emerald-soft); color: #065F46; }

/* ——— Шахматка ——— */
.slot-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4);
  margin-bottom: var(--sp-3);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: var(--shadow-1);
}
.slot-stat {
  display: flex;
  flex-direction: column;
  min-width: 72px;
  padding-right: var(--sp-3);
  border-right: 1px solid var(--line);
}
.slot-stat:last-of-type { border-right: 0; }
.slot-n {
  font-family: var(--font-mono);
  font-size: var(--fs-xl);
  font-weight: 600;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.slot-l {
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--mute);
  margin-top: 4px;
}
.slot-stat.free .slot-n { color: var(--emerald); }
.slot-stat.busy .slot-n { color: var(--teal); }
.slot-hint { margin: 0 0 0 auto; font-size: var(--fs-sm); color: var(--mute); }
.cal-msg {
  padding: 10px 14px;
  border: 1px solid var(--ac);
  background: var(--ac-soft);
  border-radius: 0;
  margin-bottom: var(--sp-3);
  font-weight: 500;
  color: #065F46;
}
.cal-msg.err { border-color: var(--rose); background: var(--rose-soft); color: #9F1239; }
.cal-msg.ok { border-color: var(--mp-ok); background: var(--mp-ok-soft); }

.cal-wrap {
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--card);
  box-shadow: var(--shadow-1);
  max-height: calc(100vh - 250px);
}
.table.cal {
  border: 0;
  min-width: 640px;
  font-size: 12px;
  background: var(--card);
}
.table.cal th, .table.cal td {
  padding: 4px;
  text-align: center;
  min-width: 52px;
  height: 42px;
  vertical-align: middle;
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
}
.table.cal th:last-child, .table.cal td:last-child { border-right: 0; }
.table.cal th.sticky, .table.cal td.sticky {
  position: sticky;
  left: 0;
  z-index: 3;
  background: #FAFAFB;
  text-align: left;
  min-width: 96px;
  padding-left: 12px;
  border-right: 2px solid var(--line-2);
}
.table.cal thead th {
  position: sticky;
  top: 0;
  z-index: 4;
  background: #FAFAFB;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0;
  color: var(--mute);
}
.table.cal thead th.sticky { z-index: 5; }
.table.cal th.th-today {
  color: var(--ac-hover);
  box-shadow: inset 0 -3px 0 var(--ac);
  font-weight: 700;
}
.table.cal .row-free-summary td {
  background: #F6F7F8;
  font-family: var(--font-mono);
  font-weight: 600;
  font-size: 11px;
  color: var(--ink-2);
}
.table.cal .sum-zero { color: var(--rose); }
.table.cal .cell-free { background: #F2FBF6; }

/* Wave X: dark-шахматка — светлые фоны доски подчиняются тёмной теме */
:root[data-theme="dark"] .table.cal thead th { background: #1B1F26; }
:root[data-theme="dark"] .table.cal th.sticky { background: #171A20; }
:root[data-theme="dark"] .table.cal .cell-free { background: rgba(52, 211, 153, 0.08); }
:root[data-theme="dark"] .table.cal .row-free-summary td { background: #171A20; }
:root[data-theme="dark"] .lg-free::before { background: rgba(52, 211, 153, 0.14); }
:root[data-theme="dark"] .table.cal th.sticky,
:root[data-theme="dark"] .table.cal td.sticky { background: #171A20; }
.table.cal .cell-busy {
  background: transparent;
  border-left-color: transparent;
  border-right-color: transparent;
  padding: 3px;
}
.table.cal .cell-stop {
  background: repeating-linear-gradient(-45deg, #2A2E35, #2A2E35 3px, #43474E 3px, #43474E 6px);
  color: #fff;
  font-size: 10px;
  font-weight: 600;
}
.stop-mark { color: #fff; font-weight: 700; }
.table.cal .cell-dirty { box-shadow: inset 0 0 0 2px var(--warn); border-radius: 0; }

.table.cal .cal-booking {
  display: flex;
  align-items: center;
  height: 100%;
  min-height: 34px;
  padding: 4px 9px;
  background: var(--st-confirmed);
  color: #fff !important;
  font-weight: 600;
  font-size: 11px;
  line-height: 1.15;
  cursor: grab;
  border-radius: 0;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
  text-decoration: none !important;
  transition: filter 0.12s, box-shadow 0.12s;
}
.table.cal .cal-booking:hover { filter: brightness(1.08); box-shadow: var(--shadow-1); }
.table.cal .cal-booking.bar-start { border-radius: 0; padding-left: 10px; }
.table.cal .cal-booking.bar-end { border-radius: 0; padding-right: 10px; }
.table.cal .cal-booking.bar-start.bar-end { border-radius: 0; }
.table.cal td.st-checked_in .cal-booking { background: var(--st-inhouse); }
.table.cal td.st-inquiry .cal-booking { background: var(--st-inquiry); }
.table.cal .cal-booking.is-hourly { background: var(--olive); }
.table.cal .slot-link {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  min-height: 34px;
  border-radius: 0;
  color: var(--emerald) !important;
  font-weight: 700;
  font-size: 14px;
  text-decoration: none !important;
  opacity: 0.5;
  transition: opacity 0.12s, background 0.12s;
}
.table.cal .slot-link:hover { opacity: 1; background: var(--emerald-soft); }
.table.cal td.drag-over {
  outline: 2px solid var(--ac);
  outline-offset: -2px;
  background: var(--ac-soft) !important;
}

/* Легенда шахматки */
.cal-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 var(--sp-3);
  font-size: 11px;
  color: var(--mute);
}
.cal-legend .lg { display: inline-flex; align-items: center; gap: 6px; }
.cal-legend .lg::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 0;
  display: inline-block;
  flex: 0 0 auto;
}
.lg-inhouse::before { background: var(--st-inhouse); }
.lg-confirmed::before { background: var(--st-confirmed); }
.lg-inquiry::before { background: var(--st-inquiry); }
.lg-hourly::before { background: var(--olive); }
.lg-stop::before { background: repeating-linear-gradient(-45deg, #2A2E35, #2A2E35 2px, #555 2px, #555 4px); }
.lg-dirty::before { background: #fff; box-shadow: inset 0 0 0 2px var(--warn); }
.lg-free::before { background: #F2FBF6; box-shadow: inset 0 0 0 1px var(--line); }

/* ——— Auth ——— */
.auth-card {
  max-width: 420px;
  margin: var(--sp-6) auto;
  padding: var(--sp-5);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: var(--shadow-2);
}
.auth-card h1 { margin-bottom: var(--sp-2); }
.auth-lead { margin: 0 0 var(--sp-4); color: var(--mute); }
.auth-form { display: flex; flex-direction: column; gap: var(--sp-3); }
.auth-form .btn { margin-top: var(--sp-2); }
.auth-form p { margin: 0 0 var(--sp-3); }
.auth-form p label { display: flex; flex-direction: column; gap: 6px; }
.auth-form p input { width: 100%; }
.auth-err, .field-err {
  color: var(--danger);
  font-size: var(--fs-sm);
  font-weight: 500;
}
.auth-err {
  padding: 10px 14px;
  border: 1px solid var(--danger);
  background: var(--danger-soft);
  border-radius: 0;
}
.auth-links {
  display: flex;
  justify-content: space-between;
  margin-top: var(--sp-4);
  font-size: var(--fs-sm);
  gap: var(--sp-3);
}
.auth-card--wide { max-width: 540px; }
.doc-sheet { max-width: 700px; }

/* ——— Hero (публичные) ——— */
.hero { padding: var(--sp-6) 0 var(--sp-5); }
.hero h1 { font-size: clamp(1.7rem, 4vw, 2.6rem); margin-bottom: var(--sp-3); letter-spacing: -0.02em; }

/* ——— Responsive ——— */
@media (max-width: 800px) {
  .grid2, .grid3 { grid-template-columns: 1fr; }
}
@media (max-width: 1024px) {
  .side {
    transform: translateX(-100%);
    transition: transform 0.22s ease;
    box-shadow: 0 0 0 100vmax rgba(20, 22, 26, 0);
    width: min(var(--side-w), 84vw);
  }
  .side.open {
    transform: translateX(0);
    box-shadow: 0 0 60px rgba(20, 22, 26, 0.45);
  }
  .app-main { margin-left: 0; }
  .burger { display: inline-flex; }
  .topbar-mark { display: inline-flex; }
  .topbar { padding: 8px var(--sp-3); }
}
@media (max-width: 720px) {
  .shell { padding: var(--sp-3); }
  .kpis { grid-template-columns: repeat(2, 1fr); }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .table { font-size: 12px; }
  .table th, .table td { padding: 8px; }
  .top .nav-primary a { padding: 6px 10px; }
  .top-search { display: none !important; }
  .att-item { flex-wrap: wrap; gap: 6px; }
  .att-text { flex-basis: 100%; order: 3; }
  .cal-legend { gap: 8px; }
  .bar h1 { font-size: 17px; }
  .foot { padding: var(--sp-3); }
}
@media (max-width: 640px) {
  .top { flex-wrap: wrap; height: auto; padding: 10px 12px; }
  .nav-wrap { width: 100%; justify-content: flex-start; }
}

/* ——— Motion ——— */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
}

/* ——— Print ——— */
@media print {
  .side, .top, .topbar, .foot, .no-print, .skip-link, .msgs, .btn, .burger { display: none !important; }
  .app-main, .shell { margin: 0; max-width: none; padding: 0; }
  body { background: #fff; color: #000; }
  .tile, .table, .card { border-color: #ccc !important; box-shadow: none !important; }
  a { color: #000 !important; text-decoration: none !important; }
}

/* ——— Wave D: карточки-секции, финансы, HK-доска, уведомления ——— */
.grid-2 { display: grid; grid-template-columns: 1.2fr 1fr; gap: var(--sp-4); align-items: start; }
@media (max-width: 900px) { .grid-2 { grid-template-columns: 1fr; } }
.card { min-width: 0; }
.card-title { margin: 0 0 10px; font-size: 15px; font-weight: 600; color: var(--ink); }
.card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.card-head .card-title { margin: 0; }
.row.nowrap { flex-wrap: nowrap; }

/* мини-тэги состояний HK */
.tag-mini { font-size: 10px; padding: 1px 7px; margin-left: 6px; }
.tag.st-amber { background: var(--amber-soft); border-color: #E8CE9A; color: var(--warn); }
.tag.st-teal { background: var(--teal-soft); border-color: #9AD9D3; color: #0F6A62; }
.tag.st-emerald { background: var(--emerald-soft); border-color: #A7DCC4; color: #065F46; }

/* HK-доска: задания на сегодня */
.hk-board { display: flex; flex-direction: column; gap: 8px; max-height: 420px; overflow-y: auto; padding-right: 4px; }
.hk-row {
  display: grid;
  grid-template-columns: minmax(64px, auto) minmax(60px, auto) minmax(110px, 1fr) minmax(110px, 1.2fr) auto;
  gap: 8px; align-items: center;
  border: 1px solid var(--line); border-radius: 0;
  padding: 8px 10px; background: #FCFCFD;
}
.hk-note input { min-height: 30px; font-size: var(--fs-xs); width: 100%; min-width: 0; }
@media (max-width: 1399px) {
  .hk-row { grid-template-columns: auto 1fr auto; }
  .hk-room { grid-row: 1; }
  .hk-state { grid-column: 2; grid-row: 1; }
  .hk-actions { grid-column: 3; grid-row: 1; }
  .hk-who, .hk-note { grid-column: 1 / -1; }
}
.hk-row.is-done { opacity: 0.62; background: #F7FAF8; }
.hk-room { display: flex; align-items: center; white-space: nowrap; }
.hk-room b { font-family: var(--font-mono); }
.hk-state { white-space: nowrap; }
.hk-who select { min-height: 30px; font-size: var(--fs-xs); }
.hk-actions { display: flex; justify-content: flex-end; }


/* бары динамики оплат */
.spark {
  display: block; height: 8px; border-radius: 0;
  background: var(--slate-soft); overflow: hidden; min-width: 60px;
}
.spark-fill {
  display: block; height: 100%;
  background: linear-gradient(90deg, var(--teal), var(--emerald));
  border-radius: 0;
}

/* план/факт: прогресс сбора */
.meter {
  display: inline-block; vertical-align: middle;
  width: 74px; height: 8px; border-radius: 0;
  background: var(--slate-soft); overflow: hidden; margin-right: 6px;
}
.meter-fill { display: block; height: 100%; background: var(--teal); border-radius: 0; }
.meter-fill.ok { background: var(--emerald); }
.meter-fill.low { background: var(--rose); }

/* активная кнопка состояния номера */
.btn.ghost.on { border-color: var(--ac); color: var(--ac-hover); background: var(--ac-soft); }


/* переключатель темы */
.theme-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; border-radius: 0;
  background: transparent; border: 1px solid #2A2E35;
  color: #B9BEC7; cursor: pointer; padding: 0;
}
.theme-toggle:hover { color: #fff; border-color: #3D434C; }
.ic-sun, .ic-moon { display: none; }
:root[data-theme="light"] .ic-moon { display: block; }
:root[data-theme="dark"] .ic-sun { display: block; }
/* колокольчик уведомлений */
.notif { position: relative; }
.notif summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 0;
  color: var(--ink-2); position: relative;
  border: 1px solid transparent;
  transition: background 0.15s, border-color 0.15s;
}
.notif summary::-webkit-details-marker { display: none; }
.notif summary:hover { background: #F1F2F4; border-color: var(--line); }
.notif[data-live="1"] summary { color: var(--warn); }
.notif-count {
  position: absolute; top: -3px; right: -4px;
  min-width: 16px; height: 16px; padding: 0 4px;
  border-radius: 0; background: var(--rose); color: #fff;
  font-size: 10px; font-weight: 700; line-height: 16px; text-align: center;
  font-family: var(--font-mono);
}
.notif-panel {
  position: absolute; right: 0; top: calc(100% + 8px);
  width: min(400px, calc(100vw - 32px));
  background: var(--card); border: 1px solid var(--line);
  border-radius: 0; box-shadow: var(--shadow-2);
  z-index: 60; overflow: hidden;
}
.notif-head {
  padding: 10px 14px; font-size: 10px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute);
  border-bottom: 1px solid var(--line); background: #FAFAFB;
}
.notif-item {
  display: flex; gap: 10px; align-items: flex-start;
  padding: 10px 14px; font-size: var(--fs-sm); color: var(--ink);
  border-bottom: 1px solid var(--line); text-decoration: none;
}
.notif-item:last-child { border-bottom: 0; }
.notif-item:hover { background: #FAFAFB; }
.notif-dot { flex: 0 0 8px; width: 8px; height: 8px; border-radius: 0; margin-top: 6px; background: var(--slate); }
.n-danger .notif-dot { background: var(--rose); }
.n-warn .notif-dot { background: var(--amber, #D97706); }
.n-info .notif-dot { background: var(--teal); }
.notif-label {
  display: inline-block; font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: 0.06em;
  color: var(--mute); margin-right: 6px;
}
@media print { .notif { display: none !important; } }

/* ——— Wave E: тёмная тема (data-theme="dark", фикс в localStorage) ——— */
:root[data-theme="dark"] {
  --ink: #E8EAED;
  --ink-2: #CDD2D8;
  --mute: #9AA1AB;
  --mute-2: #7E848E;
  --bg: #0F1114;
  --card: #171A20;
  --line: #262A31;
  --line-2: #343941;
  --ac: var(--cu);
  --ac-hover: #E2A87A;
  --ac-soft: var(--cu-soft);
  --teal: #2DD4BF;      --teal-soft: rgba(45, 212, 191, 0.14);
  --emerald: #34D399;   --emerald-soft: rgba(52, 211, 153, 0.14);
  --amber: #FBBF24;     --amber-soft: rgba(251, 191, 36, 0.14);
  --rose: #FB7185;      --rose-soft: rgba(251, 113, 133, 0.14);
  --slate: #94A3B8;     --slate-soft: rgba(148, 163, 184, 0.14);
  --danger: #F87171;    --danger-soft: rgba(248, 113, 113, 0.14);
  --warn: #FBBF24;
  --shadow-1: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-2: 0 4px 16px rgba(0, 0, 0, 0.5);
  --cu: #D08A57;
  --cu-soft: rgba(208, 138, 87, 0.15);
}
:root[data-theme="dark"] body { color-scheme: dark; }
:root[data-theme="dark"] input,
:root[data-theme="dark"] select,
:root[data-theme="dark"] textarea { background: #1B1F26; border-color: var(--line-2); }
:root[data-theme="dark"] .btn.ghost { background: transparent; }
:root[data-theme="dark"] .btn.ghost:hover { background: #20242B; border-color: #3D434C; }
:root[data-theme="dark"] .topbar { background: rgba(15, 17, 20, 0.86); border-color: var(--line); }
:root[data-theme="dark"] .top { background: #12151A; border-color: var(--line); }
:root[data-theme="dark"] .notif summary:hover { background: #20242B; border-color: var(--line); }
:root[data-theme="dark"] .notif-head { background: #1B1F26; }
:root[data-theme="dark"] .notif-item:hover { background: #1B1F26; }
:root[data-theme="dark"] .hk-row { background: #1A1E24; }
:root[data-theme="dark"] .hk-row.is-done { background: #17201B; }
:root[data-theme="dark"] .empty-state { background: #16191F; }
:root[data-theme="dark"] .table th { background: #1B1F26; }
:root[data-theme="dark"] .row-hot td { background: rgba(251, 191, 36, 0.08) !important; }
:root[data-theme="dark"] .tag.st-confirmed { color: #5EEAD4; }
:root[data-theme="dark"] .tag.st-checked_in, :root[data-theme="dark"] .tag.st-emerald { color: #6EE7B7; }
:root[data-theme="dark"] .tag.st-pay-paid, :root[data-theme="dark"] .tag.st-pay-completed { color: #6EE7B7; }
:root[data-theme="dark"] .tag.warn, :root[data-theme="dark"] .tag.st-pay-pending { color: #FCD34D; }
:root[data-theme="dark"] .tag.danger, :root[data-theme="dark"] .tag.st-cancelled, :root[data-theme="dark"] .tag.st-no_show { color: #FDA4AF; }
:root[data-theme="dark"] .meter-fill { background: #2DD4BF; }
:root[data-theme="dark"] .meter-fill.ok { background: #34D399; }
:root[data-theme="dark"] .spark-fill { background: linear-gradient(90deg, #2DD4BF, #34D399); }
:root[data-theme="dark"] .side-badge.b-emerald { color: #A7F3D0; }
:root[data-theme="dark"] { --side-bg: #12151A; }
:root[data-theme="dark"] .bar .row > a:not(.btn).on,
:root[data-theme="dark"] .filters a.on { background: var(--ac); border-color: var(--ac); color: #0F1114 !important; }

/* печатное фолио */
.folio-doc {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  box-shadow: var(--shadow-1);
  padding: 28px 32px;
  max-width: 780px;
  margin: 0 auto;
}
.folio-head { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; border-bottom: 2px solid var(--ink); padding-bottom: 14px; margin-bottom: 16px; }
.folio-brand { font-size: 20px; font-weight: 700; letter-spacing: -0.01em; }
.folio-meta { text-align: right; }
.folio-meta h2 { margin: 0; font-size: 16px; text-transform: uppercase; letter-spacing: 0.08em; }
.folio-meta p { margin: 2px 0; font-size: var(--fs-sm); }
.folio-parties { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.folio-parties h3, .folio-sec { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--mute); margin: 0 0 6px; }
.folio-parties p { margin: 2px 0; }
.folio-sec { margin: 18px 0 8px; }
.folio-table { margin: 0; }
.folio-table tfoot th { text-align: left; border-top: 2px solid var(--ink); }
.folio-table .num { text-align: right; font-variant-numeric: tabular-nums; }
.folio-total {
  display: flex; justify-content: space-between; align-items: center;
  margin-top: 18px; padding: 14px 16px;
  border: 1.5px solid var(--ink); border-radius: 0;
  font-size: var(--fs-md);
}
.folio-total span { color: var(--mute); text-transform: uppercase; font-size: 11px; letter-spacing: 0.08em; }
.folio-total b { font-family: var(--font-mono); font-size: 22px; }
.folio-total b.ok { color: var(--emerald); }
.folio-foot { display: flex; justify-content: space-between; gap: 12px; margin-top: 22px; }
.folio-foot p { margin: 0; font-size: var(--fs-xs); }
@media (max-width: 720px) { .folio-doc { padding: 18px; } .folio-head, .folio-parties, .folio-foot { grid-template-columns: 1fr; flex-direction: column; } .folio-meta { text-align: left; } }
@media print {
  .folio-doc { border: 0; box-shadow: none; max-width: none; background: #fff; }
  .folio-total { border-color: #000; }
}

/* ——— Wave F: чек-лист уборки, борд сотрудников, исходящие письма ——— */
.hk-check {
  grid-column: 1 / -1;
  min-width: 0;
  display: flex; flex-wrap: wrap; gap: 6px;
  border-top: 1px dashed var(--line);
  margin-top: 2px; padding-top: 6px;
}
.hk-step-form { display: inline-flex; margin: 0; max-width: 100%; }
.hk-step {
  font-size: 11px; line-height: 1; font-weight: 500;
  padding: 5px 10px; border-radius: 0;
  border: 1px solid var(--line); background: #fff;
  color: var(--mute); cursor: pointer;
  transition: border-color .15s, color .15s, background .15s;
}
.hk-step:hover { border-color: var(--ac); color: var(--ac-hover); }
.hk-step.ok { background: var(--emerald-soft); border-color: #A7DCC4; color: #065F46; }
:root[data-theme="dark"] .hk-step { background: #20252C; border-color: #2E343C; color: #A6ACB6; }
:root[data-theme="dark"] .hk-step.ok { background: rgba(16,185,129,.14); border-color: #2C5A46; color: #6EE7B7; }
:root[data-theme="dark"] .hk-check { border-top-color: #2A2F37; }

/* борд сотрудников: чипы заданий */
.tag.board-chip { margin: 0 4px 4px 0; display: inline-block; }
@media (max-width: 720px) { .staff-phone { display: none; } }

/* ——— Wave G: главный экран по концепции ——— */
/* KPI-полоса: 6 карточек с дельтами */
.kpis-6 { grid-template-columns: repeat(6, 1fr); }
.kpis-6 .kpi-l { text-transform: none; letter-spacing: 0.01em; font-size: 11.5px; font-weight: 500; }
.kpis-6 .kpi-n { font-size: 22px; }
@media (max-width: 1100px) { .kpis-6 { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .kpis-6 { grid-template-columns: repeat(2, 1fr); } }
.kpi-d { display: block; margin-top: 2px; font-size: 11px; font-weight: 600; letter-spacing: 0; }
.kpi-d.up { color: var(--mp-ok); }
.kpi-d.down { color: var(--rose); }
.kpi-d.warn { color: var(--warn); }
.kpi-d.danger { color: var(--rose); }
.kpi-d.muted-d { color: var(--mute); font-weight: 500; }

/* карточки-тревоги */
.alerts-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 0 0 16px; }
@media (max-width: 1100px) { .alerts-row { grid-template-columns: 1fr; } }
.alert-card { display: flex; align-items: center; gap: 12px; padding: 13px 16px; border-radius: 0; border: 1px solid; }
.ac-amber { background: var(--amber-soft); border-color: #E8CE9A; }
.ac-rose { background: var(--rose-soft); border-color: #F2C4C4; }
.ac-ico { flex: 0 0 34px; height: 34px; border-radius: 0; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 15px; }
.ac-amber .ac-ico { background: #F5E1B8; color: var(--warn); }
.ac-rose .ac-ico { background: #F6CBD6; color: #9F1239; }
.ac-body { min-width: 0; flex: 1; }
.ac-body h3 { margin: 0; font-size: 13.5px; font-weight: 700; color: var(--ink); }
.ac-body p { margin: 2px 0 0; font-size: 12px; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-act { flex: 0 0 auto; font-size: 12.5px; font-weight: 700; color: var(--ac-hover); text-decoration: none; white-space: nowrap; }
.ac-act:hover { text-decoration: underline; }

/* топбар: поиск — иконка и ⌘K внутри поля, минипрофиль справа */
.topbar .top-search {
  position: relative;
  display: flex;
  align-items: center;
  height: 36px;
  padding: 0 30px 0 34px;
  border: 1px solid var(--line-2);
  background: #fff;
}
.topbar .top-search .ts-ico {
  position: absolute; left: 11px; top: 50%; transform: translateY(-50%);
  color: var(--mute); pointer-events: none;
}
.topbar .top-search .kbd {
  position: absolute; right: 9px; top: 50%; transform: translateY(-50%);
  background: transparent; pointer-events: none;
}
.topbar .top-search input { flex: 1 1 auto; min-width: 0; }
.topbar .top-search:focus-within { border-color: var(--ac); box-shadow: 0 0 0 3px rgba(184, 90, 42, 0.18); }
.topbar .top-search:focus-within .ts-ico { color: var(--ac); }
@media (min-width: 1100px) {
  .topbar .top-search { width: min(560px, 40vw); max-width: none; }
}
.topbar .top-theme { width: 32px; height: 32px; color: var(--mute); border-color: var(--line-2); }
.topbar .top-theme:hover { color: var(--ink); border-color: var(--ink); background: transparent; }
:root[data-theme="dark"] .topbar .top-search { background: #161A20; border-color: #2A2E35; }
:root[data-theme="dark"] .topbar .top-theme { color: #B9BEC7; border-color: #2A2E35; }
:root[data-theme="dark"] .topbar .top-theme:hover { color: #fff; border-color: #3D434C; }

/* Wave AF2: шапка страницы профиля */
.profile-head { display: flex; align-items: center; gap: 12px; margin: 4px 0 12px; }
.uc-ava-lg { width: 44px; height: 44px; font-size: 18px; flex: 0 0 44px; }
.msg-err { background: var(--rose-soft, #FEF2F4); border: 1px solid #F2C4C4; color: #9F1239; padding: 9px 12px; font-size: 13px; margin: 0 0 var(--sp-4); }
.kbd { font-family: var(--font-mono); font-size: 10px; padding: 2px 6px; border: 1px solid var(--line-2); border-bottom-width: 2px; border-radius: 0; color: var(--mute); background: #FAFAFB; }
.user-chip { display: inline-flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px; border-radius: 0; text-decoration: none !important; }
.user-chip:hover { background: #F1F2F4; }
.uc-ava { width: 30px; height: 30px; border-radius: 0; background: var(--ac); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; flex: 0 0 30px; }
.uc-meta { display: flex; flex-direction: column; line-height: 1.15; text-align: left; }
.uc-meta b { font-size: 12.5px; color: var(--ink); font-weight: 600; white-space: nowrap; }
.uc-meta i { font-style: normal; font-size: 10.5px; color: var(--mute); }
@media (max-width: 900px) { .uc-meta, .kbd { display: none; } }

/* статус-бар футера */
.status-bar {
  margin-top: auto; position: sticky; bottom: 0; z-index: 20;
  display: flex; justify-content: space-between; align-items: center; gap: 12px;
  padding: 7px var(--sp-5); border-top: 1px solid var(--line);
  background: var(--card); font-size: 12px; color: var(--mute);
}
.status-bar b { font-family: var(--font-mono); color: var(--ink); }
.status-bar .sb-ok { color: var(--mp-ok); }
.status-bar .sb-warn { color: var(--warn); }
.sb-sep { margin: 0 8px; color: var(--line-2); }
@media (max-width: 720px) { .sb-right { display: none; } }

/* шахматка: выходные, сегодня, группы, статус-точки */
.th-we { background: #FAFAFB; color: var(--mute); }
.td-we { background: rgba(148, 163, 184, 0.07); }
.cell-today { box-shadow: inset 0 0 0 2px rgba(13, 148, 136, 0.4); border-radius: 0; }
.cal-group td { font-size: 10px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--mute); font-weight: 700; padding: 8px 8px 2px; border-bottom: 0; background: transparent; }
.hk-dot { display: inline-block; width: 8px; height: 8px; border-radius: 0; margin-right: 6px; vertical-align: 1px; }
.hk-dot.hk-clean { background: var(--emerald); }
.hk-dot.hk-dirty { background: var(--rose); }
.hk-dot.hk-inspect { background: #D97706; }
.hk-dot.hk-oo { background: #94A3B8; }
.room-sub { display: block; font-size: 10px; margin-top: 1px; }

/* dark overrides */
:root[data-theme="dark"] .alert-card.ac-amber { background: rgba(217, 119, 6, 0.12); border-color: #5C4318; }
:root[data-theme="dark"] .alert-card.ac-rose { background: rgba(225, 29, 72, 0.12); border-color: #5B2530; }
:root[data-theme="dark"] .ac-amber .ac-ico { background: rgba(217, 119, 6, 0.2); color: #FBBF24; }
:root[data-theme="dark"] .ac-rose .ac-ico { background: rgba(225, 29, 72, 0.2); color: #FDA4AF; }
:root[data-theme="dark"] .status-bar { background: #12151A; }
:root[data-theme="dark"] .user-chip:hover { background: #20242B; }

/* Wave AF2: минипрофиль-меню и язык в шапке */
.user-menu { position: relative; }
.user-menu summary { list-style: none; cursor: pointer; }
.user-menu summary::-webkit-details-marker { display: none; }
.user-menu .um-chev { color: var(--mute); transition: transform 0.15s; flex: 0 0 auto; }
.user-menu[open] .um-chev { transform: rotate(180deg); }
.user-menu[open] .user-chip { background: #F1F2F4; }
:root[data-theme="dark"] .user-menu[open] .user-chip { background: #20242B; }
.user-panel { width: min(280px, calc(100vw - 32px)); }
.user-panel-id { padding: 10px 14px; border-bottom: 1px solid var(--line); display: flex; flex-direction: column; gap: 2px; }
.user-panel-id b { font-size: 13px; color: var(--ink); }
.user-panel-id i { font-style: normal; font-size: 11.5px; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.user-panel .notif-item { align-items: center; }
.user-panel .notif-item svg { flex: 0 0 auto; color: var(--mute); }
.user-panel .notif-item:hover svg { color: var(--ink); }
.topbar .top-lang { flex: 0 0 auto; }
:root[data-theme="dark"] .lang-btn { color: #B9BEC7; border-color: #2A2E35; }
:root[data-theme="dark"] .lang-btn:hover { color: #fff; border-color: #3D434C; }
@media (max-width: 720px) {
  .top-right { gap: var(--sp-2); }
  .topbar .btn.sm { display: none; }
  .top-lang .lang-btn { padding: 3px 5px; }
}
:root[data-theme="dark"] .kbd { background: #1B1F26; border-color: #2E343C; }
:root[data-theme="dark"] .td-we { background: rgba(148, 163, 184, 0.05); }
:root[data-theme="dark"] .th-we { background: #16191F; }

/* ——— Wave H: слайд-овер карточки брони на шахматке ——— */
.sov { position: fixed; inset: 0; z-index: 70; pointer-events: none; }
.sov.open { pointer-events: auto; }
.sov-back { position: absolute; inset: 0; background: rgba(20,22,26,0.45); opacity: 0; transition: opacity 0.22s; }
.sov-panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(430px, 94vw);
  background: var(--card); border-left: 1px solid var(--line);
  box-shadow: -12px 0 40px rgba(20, 22, 26, 0.16);
  transform: translateX(103%); transition: transform 0.24s ease;
  display: flex; flex-direction: column; overflow-y: auto;
  pointer-events: auto;
}
.sov.open .sov-back { opacity: 1; }
.sov.open .sov-panel { transform: translateX(0); }
.sov-head {
  display: flex; align-items: center; gap: 10px;
  padding: 18px 20px; border-bottom: 1px solid var(--line);
  position: sticky; top: 0; background: var(--card); z-index: 2;
}
.sov-title { font-size: 18px; font-weight: 700; font-family: var(--font-mono); letter-spacing: 0.02em; margin-right: auto; }
.sov-close {
  width: 34px; height: 34px; border-radius: 0;
  border: 1px solid var(--line); background: transparent;
  color: var(--mute); font-size: 18px; cursor: pointer; line-height: 1;
  transition: background 0.15s, color 0.15s;
}
.sov-close:hover { background: var(--slate-soft); color: var(--ink); }
.sov-body { padding: 16px 20px 24px; display: flex; flex-direction: column; gap: 16px; }
.sov-load { padding: 32px 20px; color: var(--mute); font-size: 13px; }
.sov-sec { display: flex; flex-direction: column; gap: 6px; }
.sov-kv { display: flex; gap: 12px; font-size: 13px; align-items: baseline; }
.sov-kv span { width: 92px; flex: 0 0 92px; color: var(--mute); }
.sov-kv b { font-weight: 600; color: var(--ink); min-width: 0; overflow-wrap: anywhere; }
.sov-kv a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.sov-money { border-top: 1px dashed var(--line-2); padding-top: 12px; }
.sov-bal { margin-top: 8px; font-size: 13px; font-weight: 700; padding: 10px 12px; border-radius: 0; }
.sov-bal-rose { background: var(--rose-soft); color: var(--rose); }
.sov-bal-ac { background: var(--ac-soft); color: var(--ac); }
.sov-note { background: var(--slate-soft); border-radius: 0; padding: 10px 12px; font-size: 12px; color: var(--ink-2); }
.sov-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.sov-actions form { margin: 0; }
.sov-links { display: flex; flex-wrap: wrap; gap: 8px; border-top: 1px solid var(--line); padding-top: 14px; }

/* ——— Wave H: линия текущего времени в колонке «сегодня» ——— */
.cal td.cell-today { position: relative; }
.now-line {
  position: absolute; top: 0; bottom: 0; width: 0;
  border-left: 2px solid var(--rose);
  pointer-events: none; z-index: 3; opacity: 0.85;
}
.now-line-lab {
  position: absolute; top: 1px; left: 1px;
  background: var(--rose); color: #fff;
  font-size: 9px; font-family: var(--font-mono); font-weight: 600;
  line-height: 1; padding: 2px 4px; border-radius: 0; white-space: nowrap;
}

/* ——— Wave H: цветные теги статусов (слайд-овер, интеграции) ——— */
.tag.st-teal { background: var(--teal-soft); color: var(--teal); }
.tag.st-emerald { background: var(--emerald-soft); color: var(--emerald); }
.tag.st-slate { background: var(--slate-soft); color: var(--slate); }
.tag.st-rose { background: var(--rose-soft); color: var(--rose); }

:root[data-theme="dark"] .sov-back { background: rgba(0, 0, 0, 0.6); }
:root[data-theme="dark"] .sov-panel { box-shadow: -12px 0 40px rgba(0, 0, 0, 0.5); }
:root[data-theme="dark"] .now-line { border-color: #FB7185; }
:root[data-theme="dark"] .now-line-lab { background: #E11D48; }

@media (max-width: 640px) {
  .sov-panel { width: 100vw; }
  .sov-kv span { width: 80px; flex-basis: 80px; }
}

/* ——— Wave I: слайд-овер быстрой брони из пустой ячейки ——— */
.qk-form { display: flex; flex-direction: column; gap: 12px; }
.qk-when {
  font-size: 12px; font-weight: 700; color: var(--ac);
  background: var(--ac-soft); border-radius: 0; padding: 9px 12px;
  font-family: var(--font-mono); letter-spacing: 0.02em;
}
.qk-f { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 600; color: var(--mute); }
.qk-f input {
  font-size: 14px; padding: 10px 12px; border: 1px solid var(--line-2);
  border-radius: 0; background: var(--bg); color: var(--ink); width: 100%;
  font-weight: 500;
}
.qk-f input:focus { outline: 2px solid var(--ac-soft); border-color: var(--ac); }
.qk-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.qk-actions { margin-top: 4px; }
.qk-actions .btn { flex: 1; justify-content: center; }
:root[data-theme="dark"] .qk-f input { background: var(--bg-2, #12151A); }
:root[data-theme="dark"] .qk-when { background: rgba(14, 124, 102, 0.14); color: #34B39B; }

@media (max-width: 640px) {
  .qk-2col { grid-template-columns: 1fr; }
}

/* ===== Wave J: сезонные цены — слайд-овер в строке тарифов ===== */
.rs-strip { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; }
.rs-cell {
  display: flex; flex-direction: column; align-items: center; gap: 1px;
  padding: 6px 2px 5px; border-radius: 0;
  background: var(--slate-soft); font-size: 10px; color: var(--mute);
  font-family: var(--font-mono); letter-spacing: 0.02em;
}
.rs-cell b { font-size: 12px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.rs-cell.rs-we { background: var(--ac-soft); color: var(--ac); }
.rs-cell.rs-we b { color: var(--ac); }
.rs-cell.rs-empty b { color: var(--mute); font-weight: 500; }
.season-nights { font-size: 12px; font-weight: 600; color: var(--mute); font-family: var(--font-mono); }
.season-form .btn { width: 100%; justify-content: center; }
.qk-check { display: flex; flex-direction: row; align-items: center; gap: 8px; font-size: 12px; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--ink-2); cursor: pointer; }
.qk-check input { accent-color: var(--ac); width: 15px; height: 15px; }
:root[data-theme="dark"] .rs-cell { background: #171B21; color: #8A93A0; }
:root[data-theme="dark"] .rs-cell b { color: #E8ECF1; }
:root[data-theme="dark"] .rs-cell.rs-we { background: rgba(14, 124, 102, 0.2); color: #34B39B; }
:root[data-theme="dark"] .rs-cell.rs-we b { color: #34B39B; }
:root[data-theme="dark"] .qk-check { color: #C7CDD6; }
@media (max-width: 640px) {
  .rs-strip { grid-template-columns: repeat(7, 1fr); gap: 3px; }
  .rs-cell b { font-size: 11px; }
}

/* ===== Wave K: drag-диапазон на шахматке + недельная загрузка горничной ===== */
td.cell-free.range-hi {
  background: var(--ac-soft);
  box-shadow: inset 0 0 0 1px var(--ac);
}
td.cell-free.range-hi .slot-link { opacity: 0.35; }
:root[data-theme="dark"] td.cell-free.range-hi { background: rgba(14, 124, 102, 0.22); }

.hkw-btn {
  background: none; border: none; padding: 0; cursor: pointer;
  font: inherit; font-weight: 700; color: var(--ink);
  text-decoration: underline; text-decoration-style: dotted; text-underline-offset: 3px;
}
.hkw-btn:hover { color: var(--ac); }

.hkw { display: flex; flex-direction: column; gap: 12px; }
.hkw-sum { display: flex; gap: 14px; font-size: 12px; font-weight: 600; color: var(--mute); flex-wrap: wrap; }
.hkw-sum b { font-family: var(--font-mono); color: var(--ink); }
.hkw-ok b { color: var(--mp-ok); }
.hkw-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 5px; }
.hkw-day {
  display: flex; flex-direction: column; gap: 4px; min-height: 90px; min-width: 0;
  background: var(--slate-soft); border-radius: 0; padding: 6px 5px;
}
.hkw-day.hkw-today { outline: 1.5px solid var(--ac); }
.hkw-d {
  font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em;
  color: var(--mute); display: flex; flex-direction: column; align-items: flex-start; gap: 1px;
  font-family: var(--font-mono);
}
.hkw-task {
  font-size: 11px; font-weight: 600; padding: 4px 4px; border-radius: 0;
  background: #fff; color: var(--ink); overflow: hidden; white-space: nowrap;
  text-overflow: ellipsis;
}
.hkw-task.hkw-doing { background: var(--ac-soft); color: var(--ac); }
.hkw-task.hkw-done { background: var(--emerald-soft, rgba(5,150,105,0.12)); color: var(--emerald, #0B7A5B); text-decoration: line-through; }
.hkw-note { display: block; font-size: 10px; font-weight: 500; color: var(--mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hkw-empty { font-size: 11px; color: var(--mute); font-family: var(--font-mono); }
:root[data-theme="dark"] .hkw-day { background: #171B21; }
:root[data-theme="dark"] .hkw-task { background: #10141A; color: #E8ECF1; }
:root[data-theme="dark"] .hkw-task.hkw-doing { background: rgba(14, 124, 102, 0.2); color: #34B39B; }
:root[data-theme="dark"] .hkw-task.hkw-done { background: rgba(11, 154, 116, 0.16); color: #34B39B; }
@media (max-width: 640px) {
  .hkw-grid { grid-template-columns: repeat(2, 1fr); }
  .hkw-day { min-height: 0; }
}

/* —— Wave L: плавающая подсказка цены при drag-выделении шахматки —— */
.drag-tip {
  position: fixed; z-index: 95; pointer-events: none;
  background: #14181D; color: #E8ECF1;
  border: 1px solid rgba(184, 90, 42, 0.55);
  font-size: 12px; font-weight: 600; font-family: var(--font-mono);
  padding: 7px 10px; border-radius: 0;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28);
  white-space: nowrap;
}
.drag-tip b { color: #E8912F; font-weight: 700; }

/* —— Wave L: кнопка «Сезон» в тарифной строке шахматки —— */
.th-act { width: 1%; }
.rs-act { white-space: nowrap; }
.rs-act .btn { padding: 3px 10px; font-size: 12px; }

/* ===== Wave M: правый клик — цена прямо на доске + экспорт CSV ===== */
td.cell-free.range-hi-r {
  background: var(--ac-soft);
  box-shadow: inset 0 0 0 1.5px var(--ac);
  cursor: context-menu;
}
:root[data-theme="dark"] td.cell-free.range-hi-r { background: rgba(184, 90, 42, 0.28); }
.pcell-hint { font-size: 11px; color: var(--mute); margin: 4px 0 0; }

/* ===== Wave N: стоп-продажа прямо с доски ===== */
.stop-quick-form { padding: 0 20px 20px; margin: 0; }
.stop-quick-form .btn { width: 100%; }
td.cell-stop[data-stop] { cursor: pointer; }

/* ——— Wave O: экспорт занятости + батч-слайд-овер ——— */
.slot-export { flex: 0 0 auto; }
.sov-kv.sov-types b { font-weight: 500; line-height: 1.45; }

/* ——— Wave P: стоп на весь объект + слайд-овер стопа ——— */
.stop-prop-form { border-top: 1px solid var(--line); margin-top: 14px; padding-top: 16px; }
/* Wave R: переключатель языка RU/EN */
.lang-form { display: inline-flex; gap: 3px; }
.lang-btn { border: 1px solid var(--line); background: transparent; color: var(--muted); font: inherit; font-size: 10.5px; font-weight: 600; letter-spacing: .04em; padding: 3px 7px; border-radius: 0; cursor: pointer; line-height: 1.4; }
.lang-btn:hover { color: var(--ink); border-color: var(--ink); }
.lang-btn.on { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.nav-wrap .lang-form { margin-left: 10px; }
.stop-del-form { margin-top: 2px; }
/* ——— Wave S: коммерческий лендинг ——— */
.hero + .grid3 { margin-top: var(--sp-2); }
.band { margin-top: var(--sp-5); border: 1px solid var(--line); background: var(--card); padding: var(--sp-5); }
.band h2 { margin: 0 0 var(--sp-2); font-size: var(--fs-xl); letter-spacing: -0.01em; }
.band p { margin: 0; color: var(--mute); max-width: 46rem; }
.band .row { margin-top: var(--sp-4); }
.band-cta { border-left: 3px solid var(--ac); }
@media (max-width: 640px) { .band { padding: var(--sp-4); } }

/* ——— Wave S: стоп по дням недели + фильтр истории стопов ——— */
.wk-days { display: flex; gap: var(--sp-3); flex-wrap: wrap; align-items: center; }
.wk-days label { display: inline-flex; flex-direction: row; align-items: center; gap: 5px; white-space: nowrap; font-size: var(--fs-sm); font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ink); }
.wk-days input[type="checkbox"] { min-height: 0; height: 15px; width: 15px; margin: 0; accent-color: var(--ac); }
.form-grid .wk-days { grid-column: 1 / -1; padding: 2px 0; }
.acts-filter { display: flex; gap: var(--sp-2); flex-wrap: wrap; align-items: flex-end; margin: 0 0 var(--sp-3); }
.acts-filter label { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-xs); color: var(--mute); }
.acts-filter .cnt { align-self: flex-end; font-size: var(--fs-sm); color: var(--mute); margin-left: auto; }
/* ——— Лендинг 3.0 (land3): медная нить бренда + тёмные секции + тарифы из БД ——— */
/* Все классы с префиксом lp-. Цвета — через var(--…), медь — токены --cu/--cu-soft из :root. Классы mypms.css вне lp- не затрагиваются. */


/* ——— Hero ——— */
.lp-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: center;
  padding-top: clamp(6px, 1.6vw, 22px);
}
.lp-hero::before {
  content: "";
  position: absolute;
  /* inset: 0, а не отрицательный — псевдоэлемент с вылетом за правый край создаёт горизонтальный скролл на мобильных */
  inset: 0;
  background-image:
    linear-gradient(rgba(20, 22, 26, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(20, 22, 26, 0.05) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(#000 52%, transparent 96%);
  mask-image: linear-gradient(#000 52%, transparent 96%);
  pointer-events: none;
}
.lp-hero > * { position: relative; }

.lp-kicker {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 16px;
  font-family: var(--font-mono);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--cu);
}
.lp-kick-sq { width: 8px; height: 8px; flex: none; background: var(--cu); }

.lp-hero h1 {
  margin: 0 0 18px;
  font-size: clamp(33px, 4.2vw, 48px);
  line-height: 1.07;
  letter-spacing: -0.022em;
  font-weight: 700;
}
.lp-hero h1 em { font-style: normal; color: var(--cu); }
.lp-lead { margin: 0; max-width: 34rem; font-size: 17px; line-height: 1.6; color: var(--mute); }
.lp-hero .lp-cta { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-start; margin-top: 28px; }
.lp-browser { margin: 14px 0 0; font-size: 13px; color: var(--mute-2); }
.lp-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 22px 0 0;
  padding: 0;
  list-style: none;
}
.lp-facts li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 12px;
  border: 1px solid var(--line-2);
  border-radius: 0;
  background: var(--card);
  font-family: var(--font-mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.lp-facts li::before { content: ""; width: 6px; height: 6px; flex: none; background: var(--cu); }

/* ——— Мокап шахматки ——— */
.lp-mock-zone { position: relative; min-width: 0; }
.lp-mock {
  position: relative;
  background: var(--card);
  border: 1.5px solid var(--ink);
  border-radius: 0;
  overflow: hidden;
  box-shadow: 12px 12px 0 var(--cu-soft);
}
.lp-mock-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 14px;
  border-bottom: 1px solid var(--line);
}
.lp-mock-brand {
  font-family: var(--font-mono);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.14em;
  color: var(--mute);
}
.lp-mock-lights { display: inline-flex; gap: 5px; }
.lp-mock-lights i { width: 8px; height: 8px; border-radius: 0; background: var(--line-2); }
.lp-mock-lights i:first-child { background: var(--cu); }

.lp-mock-board {
  position: relative;
  display: grid;
  grid-template-columns: 86px repeat(7, minmax(0, 1fr));
  gap: 6px;
  padding: 14px;
}
.lp-mock-row { display: contents; }
.lp-mock-head .lp-mock-day {
  font-family: var(--font-mono);
  font-size: 9.5px;
  letter-spacing: 0.06em;
  text-align: center;
  padding: 4px 0 8px;
  color: var(--mute);
}
.lp-mock-day.is-we { color: var(--mute-2); }
.lp-mock-day.is-today { color: var(--ac); }
.lp-mock-today-lab { display: block; font-size: 8px; letter-spacing: 0.12em; color: var(--cu); font-weight: 600; }
.lp-mock-room {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 1px;
  padding-right: 6px;
}
.lp-mock-num { font-size: 12px; font-weight: 700; line-height: 1.2; }
.lp-mock-cat { font-size: 9.5px; color: var(--mute-2); }
.lp-mock-cell { height: 30px; border: 1px solid var(--line); border-radius: 0; background: var(--bg); }
.lp-mock-bk {
  display: flex;
  align-items: center;
  height: 30px;
  padding: 0 10px;
  border-radius: 0;
  color: #fff;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.01em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.lp-span2 { grid-column: span 2; }
.lp-span3 { grid-column: span 3; }
.lp-span4 { grid-column: span 4; }
.lp-bk-teal { background: #0D9488; }
.lp-bk-emerald { background: #059669; }
.lp-bk-amber { background: #B45309; }
.lp-bk-slate { background: #64748B; }
.lp-mock-now {
  position: absolute;
  top: 10px;
  bottom: 10px;
  /* центр 4-й дневной колонки (ЧТ 06): 14px паддинг + 86px колонка номеров + 6px зазор + половина дневной зоны */
  left: calc(124px + (100% - 156px) / 2);
  width: 2px;
  background: var(--cu);
  opacity: 0.75;
  pointer-events: none;
}

.lp-float {
  position: absolute;
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 13px;
  background: var(--card);
  border: 1px solid var(--line-2);
  border-radius: 0;
  box-shadow: var(--shadow-2);
  font-size: 12px;
  font-weight: 600;
  color: var(--ink);
}
.lp-float-arr { top: -15px; right: -10px; }
/* float-позиции считаются от .lp-mock-zone (включает легенду 38px + ~26px): низ рамки = zone_bottom − 64px */
.lp-float-chk { bottom: 50px; left: -12px; }
.lp-float-chk svg { color: var(--ac); flex: none; }
.lp-float-dot { width: 8px; height: 8px; flex: none; border-radius: 0; }

.lp-mock-legend { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 38px; }
.lp-mock-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 11px;
  border: 1px solid var(--line);
  border-radius: 0;
  background: var(--card);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  color: var(--mute);
}
.lp-mock-chip i { width: 7px; height: 7px; flex: none; border-radius: 0; }
.d-amber { background: #B45309; }
.d-emerald { background: #059669; }
.d-mute { background: var(--mute-2); }

/* ——— Секции и заголовки ——— */
.lp-section { margin-top: clamp(56px, 9vw, 112px); }
.lp-sec-head { margin-bottom: clamp(24px, 4vw, 38px); }
.lp-h2 {
  margin: 0;
  font-size: clamp(26px, 3.2vw, 37px);
  line-height: 1.14;
  letter-spacing: -0.018em;
  font-weight: 700;
}
.lp-sub { margin: 12px 0 0; max-width: 42rem; font-size: 15.5px; line-height: 1.6; color: var(--mute); }
.lp-more { color: var(--ac); font-weight: 600; text-decoration: none; border-bottom: 1px solid transparent; }
.lp-more:hover { border-bottom-color: var(--ac); }
.lp-center { text-align: center; }
.lp-center .lp-kicker { justify-content: center; }
.lp-center .lp-sub { margin-left: auto; margin-right: auto; }

/* ——— Возможности: карточки с медными индексами ——— */
.lp-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.lp-card {
  position: relative;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 22px 22px 20px;
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
}
.lp-card::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 22px;
  width: 26px;
  height: 3px;
  background: var(--line-2);
  transition: background 0.18s ease;
}
.lp-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); border-color: var(--line-2); }
.lp-card:hover::before { background: var(--cu); }
.lp-idx {
  position: absolute;
  top: 16px;
  right: 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--mute-2);
  transition: color 0.18s ease;
}
.lp-card:hover .lp-idx { color: var(--cu); }
.lp-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  margin-bottom: 14px;
  border-radius: 0;
  background: var(--ac-soft);
  color: var(--ac);
}
.lp-ico.i-amber { background: var(--amber-soft); color: var(--amber); }
.lp-ico.i-teal { background: var(--teal-soft); color: var(--teal); }
.lp-card h3 { margin: 0 0 7px; font-size: 16px; letter-spacing: -0.01em; }
.lp-card p { margin: 0; font-size: 14px; line-height: 1.55; color: var(--mute); }

/* ——— Тёмная секция: шаги и финальный CTA ——— */
.lp-dark-wrap { margin-top: clamp(56px, 9vw, 112px); }
.lp-dark {
  position: relative;
  overflow: hidden;
  background: #14161A;
  color: #F4F5F6;
  border: 1px solid #262A31;
  border-radius: 0;
  padding: clamp(30px, 5vw, 60px);
  box-shadow: 0 24px 48px -32px rgba(20, 22, 26, 0.55);
}
.lp-dark::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: 42px 42px;
  -webkit-mask-image: linear-gradient(115deg, #000 30%, transparent 78%);
  mask-image: linear-gradient(115deg, #000 30%, transparent 78%);
  pointer-events: none;
}
.lp-dark::after {
  content: "";
  position: absolute;
  top: 0;
  left: clamp(30px, 5vw, 60px);
  width: 64px;
  height: 3px;
  background: var(--cu);
}
.lp-dark > * { position: relative; }
.lp-dark .lp-kicker { color: #D08A57; }
.lp-dark .lp-h2 { color: #F4F5F6; }
.lp-dark .lp-sub { color: #9AA1AB; }

.lp-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px;
  margin: 6px 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px dashed rgba(255, 255, 255, 0.24);
}
.lp-step { position: relative; padding-top: 26px; }
.lp-step-num {
  position: absolute;
  top: -11px;
  left: 0;
  padding-right: 12px;
  background: #14161A;
  font-family: var(--font-mono);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: #D08A57;
}
.lp-step h3 { margin: 0 0 8px; font-size: 16.5px; color: #F4F5F6; }
.lp-step p { margin: 0; font-size: 14px; line-height: 1.6; color: #9AA1AB; }

.lp-fin { text-align: center; }
.lp-fin .lp-h2 { font-size: clamp(27px, 3.6vw, 40px); }
.lp-fin p { margin: 14px auto 26px; max-width: 36rem; font-size: 15.5px; line-height: 1.6; color: #9AA1AB; }
.lp-fin .lp-cta { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.lp-ghost-light {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 0 16px;
  border: 1px solid #3D434C;
  border-radius: 0;
  color: #F4F5F6 !important;
  font-size: var(--fs-sm);
  font-weight: 600;
  text-decoration: none !important;
  transition: background 0.15s, border-color 0.15s;
}
.lp-ghost-light:hover { background: rgba(255, 255, 255, 0.06); border-color: #565D66; }

/* ——— Тарифы (данные из БД) ——— */
.lp-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.lp-plan {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 24px 22px 22px;
}
.lp-plan.is-hi { border-color: var(--cu); box-shadow: 10px 10px 0 var(--cu-soft); }
.lp-plan-name {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.lp-plan-price {
  margin: 12px 0 10px;
  font-family: var(--font-mono);
  font-size: 30px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.lp-plan-per { font-size: 13px; font-weight: 400; color: var(--mute); }
.lp-plan-limit { margin: 0; font-size: 14px; color: var(--ink-2); }
.lp-plan-comm { margin: 7px 0 0; font-size: 14px; color: var(--mute); }
.lp-plan-comm b { color: var(--ink); }
.lp-plans-note {
  margin: 18px 0 0;
  font-family: var(--font-mono);
  font-size: 12px;
  letter-spacing: 0.02em;
  color: var(--mute-2);
}

/* ——— Для кого ——— */
.lp-who { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.lp-who-card {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 0;
  padding: 20px;
  transition: transform 0.18s ease, box-shadow 0.18s ease;
}
.lp-who-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-2); }
.lp-who-ico {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  margin-bottom: 12px;
  border-radius: 0;
  background: var(--cu-soft);
  color: var(--cu);
}
.lp-who-card h3 { margin: 0 0 6px; font-size: 15.5px; letter-spacing: -0.01em; }
.lp-who-card p { margin: 0; font-size: 13.5px; line-height: 1.55; color: var(--mute); }

/* ——— Статус продукта ——— */
.lp-status { display: grid; grid-template-columns: 1.25fr 1fr; gap: 18px; align-items: start; }
.lp-panel { background: var(--card); border: 1px solid var(--line); border-radius: 0; padding: 24px; }
.lp-panel-head { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; }
.lp-panel-head h3 { margin: 0; font-size: 16px; }
.lp-dot { width: 9px; height: 9px; flex: none; border-radius: 0; background: var(--ac); box-shadow: 0 0 0 4px var(--ac-soft); }
.lp-wip-tag {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 0;
  background: var(--amber-soft);
  color: var(--amber);
  font-family: var(--font-mono);
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.lp-done { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; margin: 0; padding: 0; list-style: none; }
.lp-done li { display: flex; align-items: center; gap: 9px; font-size: 14px; color: var(--ink-2); }
.lp-done svg { color: var(--ac); flex: none; }
.lp-wip p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--mute); }

/* ——— FAQ ——— */
.lp-faq { display: flex; flex-direction: column; gap: 12px; max-width: 780px; margin: 0 auto; }
.lp-faq details { background: var(--card); border: 1px solid var(--line); border-radius: 0; transition: border-color 0.18s ease; }
.lp-faq details[open] { border-color: var(--ac); }
.lp-faq summary {
  position: relative;
  padding: 16px 46px 16px 20px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  list-style: none;
  transition: color 0.18s ease;
}
.lp-faq summary::-webkit-details-marker { display: none; }
.lp-faq summary:hover { color: var(--ac); }
.lp-faq summary::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 20px;
  width: 9px;
  height: 9px;
  border-right: 1.8px solid var(--mute);
  border-bottom: 1.8px solid var(--mute);
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.18s ease, border-color 0.18s ease;
}
.lp-faq details[open] summary::after { transform: translateY(-30%) rotate(225deg); border-color: var(--ac); }
.lp-faq-a { margin: 0; padding: 0 20px 18px; font-size: 14.5px; line-height: 1.6; color: var(--mute); }

/* ——— Появление при скролле (только при наличии JS) ——— */
.lp-js .lp-reveal { opacity: 0; transform: translateY(14px); transition: opacity 0.55s ease, transform 0.55s ease; }
.lp-js .lp-reveal.in { opacity: 1; transform: none; }
.lp-js .lp-mock-zone.lp-reveal { transition-delay: 0.08s; }

/* ——— Адаптив ——— */
@media (max-width: 1080px) {
  .lp-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lp-who { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 920px) {
  .lp-float { display: none; }
  .lp-mock-legend { margin-top: 20px; }
  .lp-hero { grid-template-columns: 1fr; gap: 40px; }
  .lp-mock-zone { max-width: 580px; }
  .lp-plans { grid-template-columns: 1fr; }
  .lp-plan.is-hi { box-shadow: none; }
  .lp-steps { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 768px) {
  .lp-status { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .lp-cards, .lp-who { grid-template-columns: 1fr; }
  .lp-lead { font-size: 15.5px; }
  .lp-mock { box-shadow: 8px 8px 0 var(--cu-soft); }
  .lp-mock-board { grid-template-columns: 62px repeat(7, minmax(0, 1fr)); gap: 4px; padding: 10px; }
  .lp-mock-now { left: calc(88px + (100% - 110px) / 2); }
  .lp-mock-num { font-size: 10px; }
  .lp-mock-cat { font-size: 9px; }
  .lp-mock-day { font-size: 8.5px; padding: 2px 0 6px; }
  .lp-mock-today-lab { display: none; }
  .lp-mock-bk { font-size: 10px; padding: 0 6px; height: 26px; }
  .lp-mock-cell { height: 26px; }
}

/* ——— Тёмная тема ——— */
:root[data-theme="dark"] .lp-hero::before {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
}
:root[data-theme="dark"] .lp-mock { border-color: #3A4048; box-shadow: 12px 12px 0 rgba(208, 138, 87, 0.13); }
:root[data-theme="dark"] .lp-dark { background: #0B0D10; }
:root[data-theme="dark"] .lp-step-num { background: #0B0D10; }
:root[data-theme="dark"] .lp-float { background: #171A20; }
@media (max-width: 640px) {
  :root[data-theme="dark"] .lp-mock { box-shadow: 8px 8px 0 rgba(208, 138, 87, 0.13); }
}

/* ——— Доступность: Reduced motion ——— */
@media (prefers-reduced-motion: reduce) {
  .lp-js .lp-reveal { opacity: 1 !important; transform: none !important; transition: none !important; }
  .lp-card, .lp-who-card, .lp-faq details, .lp-faq summary::after { transition: none; }
  .lp-card:hover, .lp-who-card:hover { transform: none; }
}

/* ——— Wave S2 fix: подпись активного языка читаема в обеих темах ——— */
/* Ранее: color: var(--paper) — токен не существует, текст сливался с плашкой var(--ink). */
.lang-btn.on { color: var(--bg); }

/* ——— Wave T: действия в строке стопа ——— */
.row-actions { display: flex; gap: 6px; align-items: center; justify-content: flex-end; flex-wrap: wrap; }
.row-actions form { margin: 0; }

/* ---------- Wave Y: Реквизиты (/legal/) — единая бренд-система ---------- */
.legal { max-width: 880px; margin: 0 auto; padding: clamp(30px, 5vw, 60px) 20px 72px; }
.legal h1 { font-size: clamp(27px, 3.6vw, 42px); line-height: 1.14; letter-spacing: -0.012em; margin: 12px 0 14px; }
.legal-lead { color: var(--mute); max-width: 66ch; margin: 0 0 30px; font-size: 15.5px; line-height: 1.6; }
.legal-card { border: 1px solid var(--line); background: var(--card); padding: clamp(18px, 3vw, 30px); }
.spec { display: grid; grid-template-columns: minmax(150px, 230px) 1fr; margin: 0; }
.spec dt { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--mute); padding: 11px 18px 11px 0; border-bottom: 1px solid var(--line); }
.spec dd { margin: 0; padding: 11px 0; border-bottom: 1px solid var(--line); font-weight: 500; font-variant-numeric: tabular-nums; }
.spec dt:last-of-type, .spec dd:last-of-type { border-bottom: 0; }
@media (max-width: 620px) {
  .spec { grid-template-columns: 1fr; }
  .spec dt { padding-bottom: 2px; border-bottom: 0; }
  .spec dd { padding-top: 0; }
  .spec dd:last-of-type { border-bottom: 0; }
}

/* ---------- Wave AA: юридические документы (offer/privacy/refund) ---------- */
.legal-meta { display: flex; flex-wrap: wrap; gap: 6px 20px; color: var(--mute); font-size: 13.5px; margin: 0 0 26px; }
.legal-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; margin: 0 0 34px; }
.legal-nav a { display: block; border: 1px solid var(--line); background: var(--card); padding: 18px 20px; text-decoration: none; color: inherit; transition: border-color .15s ease; }
.legal-nav a:hover { border-color: var(--ac); }
.legal-nav h3 { margin: 0 0 7px; font-size: 16px; letter-spacing: -0.01em; }
.legal-nav p { margin: 0; color: var(--mute); font-size: 13.5px; line-height: 1.55; }
.legal-doc h2 { font-size: 19px; letter-spacing: -0.01em; margin: 34px 0 12px; }
.legal-doc h3 { font-size: 15.5px; margin: 0 0 10px; }
.legal-doc ul { margin: 10px 0 16px; padding-left: 20px; }
.legal-doc li { font-size: 14.5px; line-height: 1.65; margin: 7px 0; }
.legal-doc p { font-size: 14.5px; line-height: 1.65; }
.legal-doc .legal-card { margin: 16px 0; }
.legal-top { display: inline-block; margin-top: 32px; font-size: 13.5px; color: var(--ac); text-decoration: none; }
.legal-top:hover { text-decoration: underline; }

/* Wave AD: подписка — баннер, карточка в биллинге, тарифные карточки */
.sub-banner{display:flex;gap:16px;align-items:center;justify-content:space-between;margin:0 0 16px;padding:12px 16px;border:1px solid var(--mp-line);border-left:3px solid var(--mp-copper);background:var(--mp-panel)}
.sub-banner.sub-grace{border-left-color:var(--mp-warn);background:var(--mp-warn-soft)}
.sub-banner.sub-expired{border-left-color:var(--mp-danger);background:var(--mp-danger-soft)}
.sub-banner .btn{white-space:nowrap}
.sub-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.sub-card{margin-bottom:16px}
.plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0}
.plan-card h2{margin:0 0 4px;font-size:20px}
.plan-feats{margin:8px 0 12px;padding-left:18px;color:var(--mp-mute)}
.plan-feats li{margin:2px 0}
.sub-tag-grace,.sub-tag-expired{color:var(--mp-danger);border-color:var(--mp-danger)}
@media(max-width:640px){.sub-banner{flex-direction:column;align-items:flex-start}}
/* Wave AD: мобильный скролл широких таблиц */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}


/* ——— Wave AF: переключатель объекта в шапке ——— */
.propsw { position: relative; }
.propsw summary {
  list-style: none; cursor: pointer;
  display: inline-flex; align-items: center; gap: 8px;
  height: 34px; padding: 0 10px;
  border: 1px solid var(--line); background: var(--card);
  color: var(--ink); font-size: var(--fs-sm); font-weight: 600;
  transition: border-color 0.15s, background 0.15s;
}
.propsw summary::-webkit-details-marker { display: none; }
.propsw summary:hover { border-color: var(--line-2); background: #FAFAFB; }
:root[data-theme="dark"] .propsw summary:hover { background: #1D2128; }
.propsw summary svg { fill: none; stroke: currentColor; stroke-width: 1.8; flex: 0 0 auto; }
.propsw .pw-name { max-width: 200px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.propsw .pw-chev { transition: transform 0.15s; }
.propsw[open] .pw-chev { transform: rotate(180deg); }
.propsw-panel { left: 0; right: auto; width: min(320px, calc(100vw - 32px)); }
.propsw-panel .notif-item.pw-cur { background: #FAFAFB; font-weight: 600; }
.propsw-panel .notif-item.pw-cur .notif-dot { background: var(--ac); }
@media (max-width: 720px) {
  .propsw .pw-name { max-width: 110px; }
}

/* ——— Wave AF: блок «Поддержка» внизу сайдбара ——— */
.side-support {
  margin-top: auto;
  padding: 10px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.03);
  font-size: 12px;
}
.side-support .ss-head { display: flex; align-items: center; gap: 8px; color: #E8EAED; }
.side-support .ss-head b { font-size: 12px; letter-spacing: 0.02em; }
.side-support .ss-head svg { fill: none; stroke: currentColor; stroke-width: 1.7; flex: 0 0 auto; }
.side-support .ss-hint { margin: 6px 0 10px; color: #8B919A; line-height: 1.45; }
.side-support .ss-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.side-support .btn.sm { padding: 5px 10px; font-size: 12px; }

/* ——— Wave AF: тикеты поддержки ——— */
.tk-thread { display: flex; flex-direction: column; gap: 10px; }
.tk-msg { border: 1px solid var(--line); background: var(--card); padding: 10px 12px; }
.tk-msg.tk-staff { border-left: 3px solid var(--ac); }
.tk-msg.tk-user { border-left: 3px solid var(--line-2); }
.tk-head { display: flex; align-items: center; gap: 8px; font-size: 12px; margin-bottom: 6px; flex-wrap: wrap; }
.tk-body { font-size: var(--fs-sm); line-height: 1.5; }
.tag.st-answered { background: var(--teal-soft, rgba(45, 212, 191, 0.14)); color: var(--teal, #0D9488); }
.tag.st-closed { background: var(--line, #E5E7EB); color: var(--mute); }
.tag.st-open { background: var(--ac-soft, rgba(184, 90, 42, 0.14)); color: var(--ac, #B85A2A); }
.tag.st-in_progress { background: var(--amber-soft, rgba(217, 119, 6, 0.14)); color: #B45309; }

/* ——— Wave AV: прямые продажи — промо-страница, поиск, бронь, виджет ——— */
.bk2-hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.bk2-hero-img{position:absolute;inset:0;background-size:cover;background-position:center;transform:scale(1.02)}
.bk2-hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,22,26,.30) 0%,rgba(20,22,26,.55) 55%,rgba(20,22,26,.88) 100%)}
.bk2-hero-in{position:relative;padding:54px 24px 50px}
.bk2-kicker{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:#fff}
.bk2-kicker::before{content:"";width:10px;height:10px;background:var(--cu);flex:none}
.bk2-hero h1{color:#fff;margin:12px 0 8px;font-size:clamp(1.8rem,4.5vw,2.9rem);line-height:1.12;letter-spacing:-.02em}
.bk2-meta{color:rgba(255,255,255,.92);font-size:var(--fs-md);margin:2px 0}
.bk2-phone{display:inline-block;margin-top:14px;padding:8px 16px;border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.12);color:#fff !important;text-decoration:none !important;font-weight:600;font-size:var(--fs-sm)}
.bk2-phone:hover{background:rgba(255,255,255,.24)}
.bk2-wrap{max-width:980px;margin:0 auto;padding:0 16px 48px;width:100%}
.bk2-search{position:relative;z-index:2;margin-top:-30px;background:var(--card);border:1px solid var(--line);border-top:3px solid var(--cu);box-shadow:var(--shadow-2);padding:16px}
.bk2-search--flat{margin-top:14px}
.bk2-search-grid{display:grid;grid-template-columns:1fr 1fr 130px auto;gap:12px;align-items:end}
.bk2-search-grid input{min-height:40px}
.bk2-nights{margin:10px 2px 0;color:var(--mute);font-size:var(--fs-sm)}
.bk2-sec{margin-top:32px}
.bk2-h2{font-size:20px;margin:0 0 12px;display:flex;align-items:center;gap:10px}
.bk2-h2::before{content:"";width:10px;height:10px;background:var(--cu);flex:none}
.bk2-desc{color:var(--mute);font-size:var(--fs-md);line-height:1.65;margin:0;max-width:70ch}
.bk2-amen{display:flex;flex-wrap:wrap;gap:8px}
.bk2-amen span{border:1px solid var(--line-2);background:#fff;color:var(--ink-2);padding:6px 12px;font-size:var(--fs-sm);font-weight:600}
.bk2-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.bk2-card{display:flex;flex-direction:column;gap:6px;background:var(--card);border:1px solid var(--line);padding:16px;transition:border-color .15s,box-shadow .15s}
.bk2-card:hover{border-color:var(--ac);box-shadow:var(--shadow-2)}
.bk2-card h3{margin:0;font-size:17px}
.bk2-card-img{display:block;height:130px;background-size:cover;background-position:center;margin:-16px -16px 8px;border-bottom:1px solid var(--line)}
.bk2-cap{color:var(--mute);font-size:var(--fs-sm);margin:0}
.bk2-price{margin:10px 0 12px;padding-top:12px;border-top:1px solid var(--line);display:flex;align-items:baseline;gap:6px}
.bk2-price b{font-family:var(--font-mono);font-size:22px;color:var(--ink)}
.bk2-price span{color:var(--mute);font-size:var(--fs-sm)}
.bk2-card .btn{margin-top:auto;align-self:flex-start}
.bk2-trust{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:32px}
.bk2-trust div{border:1px solid var(--line);background:var(--card);padding:14px;font-size:var(--fs-sm);display:flex;gap:10px;align-items:flex-start}
.bk2-trust .sq{width:8px;height:8px;background:var(--cu);flex:none;margin-top:5px}
.bk2-trust p{margin:0;color:var(--mute)}
.bk2-trust b{display:block;color:var(--ink);margin-bottom:2px}
.bk2-footnote{margin-top:28px;text-align:center;color:var(--mute);font-size:var(--fs-sm)}
.bk2-footnote .btn{margin:0 4px}
.bk2-page{padding-top:12px}
.bk2-title{margin:4px 0 4px;font-size:clamp(1.5rem,3.5vw,2.1rem);letter-spacing:-.02em}
.bk2-when{margin:14px 2px 18px;color:var(--ink-2);font-size:var(--fs-md)}
.bk2-res{display:grid;grid-template-columns:1fr auto;gap:6px 18px;background:var(--card);border:1px solid var(--line);padding:16px;margin-bottom:12px}
.bk2-res-img{height:150px;background-size:cover;background-position:center;grid-column:1/-1;border-bottom:1px solid var(--line);margin:-16px -16px 2px}
.bk2-res h3{margin:0 0 4px;font-size:17px}
.bk2-free{display:inline-block;margin-top:8px;padding:4px 10px;background:var(--emerald-soft);color:var(--emerald);font-weight:700;font-size:var(--fs-xs)}
.bk2-res-price{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:2px;min-width:160px}
.bk2-per{margin:0}
.bk2-per b{font-family:var(--font-mono);font-size:22px;color:var(--ink)}
.bk2-total{margin:0;color:var(--mute);font-size:var(--fs-sm)}
.bk2-book{grid-column:1/-1;margin-top:4px;display:flex;flex-direction:column;align-items:flex-start}
.bk2-book summary{list-style:none}
.bk2-book summary::-webkit-details-marker{display:none}
.bk2-book summary.btn{min-width:170px}
.bk2-book summary.btn::after{content:"\25BE";font-size:10px;margin-left:6px}
.bk2-book[open] summary.btn{background:var(--ac-hover)}
.bk2-guestform{margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.bk2-guestform .btn.full{margin-top:4px}
.bk2-empty{margin-top:18px}
.bk2-empty h3{margin:0 0 6px}
.bk2-done-hero{text-align:center;padding:30px 0 6px}
.bk2-done-hero h1{margin:8px 0 6px;font-size:clamp(1.6rem,4vw,2.4rem);letter-spacing:-.02em}
.bk2-check{width:52px;height:52px;border-radius:50%;background:var(--emerald-soft);display:inline-flex;align-items:center;justify-content:center;margin-bottom:4px}
.bk2-sub{color:var(--mute);margin:0 0 18px}
.bk2-done-card{max-width:640px;margin:0 auto}
.bk2-rows{margin:0}
.bk2-rows > div{display:grid;grid-template-columns:170px 1fr;padding:9px 0;border-bottom:1px solid var(--line)}
.bk2-rows > div:last-child{border-bottom:0}
.bk2-rows dt{color:var(--mute);font-size:var(--fs-sm);font-weight:600}
.bk2-rows dd{margin:0;color:var(--ink);font-size:var(--fs-md)}
.bk2-actions{margin-top:16px}
.copy-row{display:flex;gap:10px;align-items:flex-start;margin:8px 0 6px}
.copy-row .code-area{flex:1;min-height:0}
.bk2-prev iframe{width:100%;border:1px solid var(--line);background:#fff}
/* embed-режим (виджет в iframe на чужом сайте) */
body[data-embed="1"] header.top,
body[data-embed="1"] footer.foot,
body[data-embed="1"] .skip-link{display:none !important}
body[data-embed="1"] main.shell{padding:12px 12px 24px}
body[data-embed="1"] .bk2-hero-in{padding:32px 20px 30px}
body[data-embed="1"] .bk2-page{padding-top:4px}
@media (max-width:760px){
  .bk2-search-grid{grid-template-columns:1fr 1fr}
  .bk2-search-grid button{grid-column:1/-1;min-height:44px}
  .bk2-res{grid-template-columns:1fr}
  .bk2-res-img{height:130px}
  .bk2-res-price{text-align:left;align-items:flex-start}
  .bk2-trust{grid-template-columns:1fr}
  .bk2-rows > div{grid-template-columns:130px 1fr}
  .copy-row{flex-direction:column}
  .copy-row .btn{align-self:flex-start}
  .bk2-hero-in{padding:36px 18px 34px}
  .bk2-wrap{padding:0 12px 40px}
  .bk2-book summary.btn{width:100%}
}
@media print{
  header.top,footer.foot,.skip-link,.bk2-actions,.bk2-footnote .btn{display:none !important}
  body{background:#fff}
  .tile{border-color:#ddd;box-shadow:none}
}
